REDROOM
PHP 7.4.33
Path:
Logout
Edit File
Size: 386.40 KB
Close
/usr/share/mysql-8.0/german/errmsg.sys
Text
Base64
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Ba8AAJGvAAAOsAAAk7AAADmxAADXsQAANbIAAJuyAAADswAAiLMAAJmzAAD2swAAMLQAAGu0AACVtAAA37QAABa1AAA4tQAAl7UAAOy1AAA1tgAAhbYAALi2AADztgAAFLcAAEu3AACWtwAACLgAAEG4AACDuAAApbgAANy4AAAWuQAAXLkAAKi5AADwuQAALLoAAMa6AABouwAA67sAAFe8AACwvAAA67wAAC69AABjvQAAl70AAK29AADJvQAAnL4AAIO/AABRwAAAJMEAAPnBAACywgAAF8MAAHjDAACIxAAAiMUAAN7FAAAIxgAARMYAAKfGAADpxgAALMcAAJTHAADQxwAACsgAAELIAAB+yAAAq8gAAM3IAAD7yAAAgckAAOLJAAAoygAAZcoAAIPKAADOygAAHMsAALbLAAD1ywAAIswAAFPMAAB6zAAAucwAAPnMAABMzQAAg80AAAfOAADEzgAAx84AAP/OAAAYzwAAX88AAIDQAAAc0QAApdEAAAfSAABE0gAAjtIAAN3SAABM0wAAmNMAANTTAAA91AAAitQAALXUAADS1AAA+dQAAHLVAADy1QAAXdYAAMzWAAAD1wAAbNcAALzXAAAJ2AAAY9gAAJnYAAB82QAAutkAANraAADI2wAAptwAACvdAABN3QAAgt0AAL/dAACE3gAAxN4AAPveAAA63wAAeN8AAPTfAAAL4AAAIuAAAMbgAABK4QAAreEAABPiAABD4gAAluIAAKviAADQ4gAA7OIAAAnjAAAt4wAASuMAAHzjAACP4wAA0uMAAOTjAAAN5AAATOQAAKXkAAAL5QAAdOUAALPlAADc5QAAReYAAHDmAACk5gAACucAAIbnAAD65wAAeOgAAMPoAAAh6QAAiOkAAKjpAADC6QAApOoAAOPqAAAm6wAAcesAANrrAAAO7AAAROwAAN/sAAAP7QAAOO0AAFftAACX7QAAyu0AAOztAAAd7gAAcu4AAL7uAADu7gAAJ+8AAEjvAABw7wAASvAAAHbwAADg8AAAIvEAAIrxAACs8QAAOfIAAHLyAACm8gAACPMAAELzAACM8wAA+PMAAEf0AACT9AAA8fQAAA71AACs9QAASPYAAKv2AADJ9gAAKvcAAH73AAC09wAACvgAADT4AADZ+AAA3foAAGT7AADO+wAA4/sAACf9AADp/QAA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WxsDAJYbAwC7GwMA4xsDABwcAwCcHAMAIh0DALwdAwDyHQMAIB4DAE4eAwBfHgMAkB4DALceAwCvHwMA5h8DAJcgAwDnIAMAjyEDAMMhAwD5IQMATCIDAIoiAwDPIgMA/iIDAIcjAwDbIwMACSQDADIkAwBwJAMArSQDABUlAwBSJQMAXyUDAKUlAwC/JQMA3CUDAJMmAwDRJgMABCcDALonAwDVJwMACigDAEwoAwCLKAMAsygDANcoAwACKQMAMikDAGkpAwCOKQMAuSkDAMwpAwDzKQMAHioDANYqAwAiKwMAUysDAL0rAwDyLAMALS0DADEtAwBkLQMAny0DAMctAwD8LQMAbC4DAPEuAwBOLwMAhi8DANwvAwAeMAMAaDADAKswAwDjMAMADDEDADAxAwB0MQMApTEDANgxAwAPMgMAYTIDAI8yAwDwMgMAIjMDAGgzAwCsMwMA5TMDADU0AwBiNAMAkzQDAMM0AwDrNAMAPzUDAI41AwDgNQMAPjYDAH42AwCnNgMAyzYDAPI2AwAmNwMAZzcDAJA3AwC4NwMA2jcDABA4AwBjOAMAtzgDAOk4AwBBOQMAazkDAMM5AwDtOQMAEjoDADY6AwBeOgMAyToDABI7AwAyOwMAVTsDAIk7AwCzOwMA2TsDACQ8AwBzPAMApDwDAMc8AwD5PAMA/zwDAFU9AwCKPQMAXD4DAKU+AwA7PwMAwD8DACNAAwBCQAMAWEADAHhAAwDTQAMAT0EDAMxBAwAnQgMAakIDAMVCAwD9QgMASEMDAHBDAwChQwMAFkQDAC5EAwCYRAMAEEUDAKFFAwBCRgMAzkYDAC9HAwBWRwMAdEcDAKhHAwCsRwMAsEcDALRHAwC4RwMAvEcDAMBHAwDhRwMAF0gDABpIAwAtSAMAi0gDANJIAwAOSQMAEUkDADtJAwBcSQMAl0kDALFJAwDESQMA5EkDAEZKAwDTSgMAGUsDAIVLAwDXSwMACkwDACRMAwBCTAMAg0wDANtMAwAGTQMAL00DAGRNAwC1TQMAAk4DAFdOAwCSTgMA6E4DABFPAwBGTwMAoU8DABdQAwCdUAMAeVEDAPtRAwA4UgMAbVIDAJZSAwCVUwMAy1MDAPZTAwAoVAMATFQDAHxUAwCCVAMApFQDAO5UAwAJVQMASlUDAItVAwCqVQMAy1UDAO1VAwAXVgMA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cxEEAKwRBADNEQQA6xEEACUSBABPEgQAdxIEAJkSBAC2EgQAQxMEAIoTBADEEwQAPRUEAMYVBAD3FQQALxYEAGkWBACFFgQAqRYEAN0WBAARFwQAPRcEAJoXBAC7FwQA3BcEAP8XBADnGAQANxkEADoZBAA9GQQAQBkEAEMZBABGGQQASRkEAEwZBABPGQQAUhkEAFUZBABYGQQAWxkEAF4ZBABhGQQAZBkEAGcZBABqGQQAbRkEAHAZBABzGQQAdhkEAHkZBAB8GQQAfxkEAIIZBACFGQQAiBkEAIsZBACOGQQAkRkEAJQZBACXGQQAmhkEAJ0ZBACgGQQAoxkEAKYZBACpGQQArBkEAK8ZBACyGQQAtRkEALgZBAC7GQQAvhkEAMEZBADEGQQAxxkEAMoZBADNGQQA0BkEANMZBADWGQQA2RkEAEUaBABIGgQASxoEAE4aBABRGgQAVBoEAFcaBABaGgQAXRoEAGAaBABjGgQAZhoEAGkaBABsGgQAbxoEAHIaBAB1GgQAeBoEAHsaBAB+GgQAgRoEAIQaBACHGgQAihoEAI0aBACQGgQAkxoEAJYaBACZGgQAwxoEAMYaBADJGgQAzBoEAM8aBADSGgQA1RoEANgaBADbGgQA3hoEAOEaBADkGgQA5xoEAOoaBADtGgQA8BoEAPMaBAD2GgQA+RoEAPwaBAD/GgQAAhsEAAUbBAAIGwQACxsEAA4bBAARGwQAFBsEABcbBAAaGwQAHRsEACAbBAAjGwQAJhsEACkbBAAsGwQALxsEADIbBAA1GwQAOBsEADsbBAA+GwQAQRsEAEQbBABHGwQAShsEAE0bBABQGwQAUxsEAFYbBABZGwQAXBsEAF8bBABiGwQAZRsEAGgbBABrGwQAbhsEAHEbBAB0GwQAdxsEAHobBAB9GwQAgBsEAIMbBACGGwQAiRsEAIwbBACPGwQAkhsEAJUbBACYGwQAmxsEAJ4bBAChGwQApBsEAKcbBACqGwQArRsEALAbBACzGwQAthsEALkbBAC8GwQAvxsEAMIbBADFGwQAyBsEAMsbBADOGwQA0RsEANQbBADXGwQA2hsEAN0bBADgGwQA4xsEAOYbBAA+HAQAQRwEAEQcBABHHAQAShwEAE0cBABQHAQAUxwEAFYcBABZHAQAXBwEAF8cBABiHAQAZRwEAGgcBABrHAQAbhwEAHEcBAB0HAQAdxwEAHocBAB9HAQAgBwEAIMcBACGHAQAiRwEAIwcBACPHAQAkhwEAJUcBACYHAQAmxwEAJ4cBAChHAQApBwEAKccBACqHAQArRwEALAcBACzHAQAthwEALkcBAC8HAQAvxwEAMIcBADFHAQAyBwEAMscBADOHAQA0RwEANQcBADXHAQA2hwEAN0cBADgHAQA4xwEAOYcBADpHAQA7BwEAO8cBADyHAQA9RwEAPgcBAD7HAQA/hwEAAEdBAAEHQQABx0EAAodBAANHQQAEB0EABMdBAAWHQQAGR0EABwdBAAfHQQAIh0EACUdBAAoHQQAKx0EAC4dBAAxHQQANB0EADcdBAA6HQQAPR0EAEAdBABDHQQARh0EAEkdBABMHQQAnx0EAMcdBAD7HQQARR4EAHAeBACYHgQAzx4EANIeBADVHgQA2B4EANseBADeHgQAGCAEADsgBABjIAQAtiAEABQhBAAXIQQAbCEEAL8hBAD2IQQASiIEALwiBAA+IwQAtyMEANcjBAAWJAQAVSQEAI8kBACnJAQA6iUEACQnBABWJwQAeycEAK8nBAAWKAQAGSgEABwoBAAfKAQAIigEAFYoBABZKAQAXCgEAF8oBABiKAQAZSgEAGgoBABrKAQAbigEAHEoBAB0KAQAdygEAHooBAB9KAQAgCgEAIMoBACGKAQAiSgEAIwoBACPKAQAkigEAJUoBACYKAQAmygEAJ4oBAChKAQApCgEAKcoBACqKAQArSgEALAoBACzKAQAtigEALkoBAC8KAQAvygEAMIoBADFKAQAyCgEAMsoBABuKQQAcSkEAHQpBAB3KQQAeikEAH0pBACAKQQAgykEAIYpBACJKQQAjCkEAI8pBACSKQQAlSkEALopBAC9KQQAwCkEAMMpBADGKQQAySkEAMwpBADPKQQA0ikEANUpBADYKQQA2ykEAN4pBADhKQQA5CkEAOcpBADqKQQA7SkEAPApBADzKQQA9ikEAPkpBABKKgQAnyoEAKIqBAClKgQAqCoEAKsqBACuKgQAsSoEALQqBAC3KgQAuioEAL0qBADAKgQAwyoEAMYqBADJKgQAzCoEAM8qBADSKgQA1SoEANgqBADbKgQA3ioEAOEqBADkKgQA5yoEAOoqBADtKgQA8CoEAPMqBAD2KgQA+SoEAPwqBAD/KgQAAisEAAUrBAAIKwQACysEAA4rBAARKwQAFCsEABcrBAAaKwQAHSsEACArBAAjKwQAJisEACkrBAAsKwQALysEADIrBAA1KwQAOCsEADsrBAA+KwQAQSsEAEQrBABHKwQASisEAE0rBABQKwQAUysEAFYrBABZKwQAXCsEAF8rBABiKwQAZSsEAGgrBABrKwQAbisEAHErBAB0KwQAdysEAHorBAB9KwQAgCsEAIMrBACGKwQAiSsEAIwrBACPKwQAkisEAJUrBACYKwQAmysEAJ4rBAChKwQApCsEAKcrBACqKwQArSsEALArBACzKwQAtisEALkrBAC8KwQAvysEAMIrBADFKwQAyCsEAMsrBADOKwQA0SsEANQrBADXKwQA2isEAN0rBADgKwQA4ysEAOYrBADpKwQA7CsEAO8rBADyKwQA9SsEAPgrBAD7KwQA/isEAAEsBAAELAQABywEAAosBAANLAQAECwEABMsBAAWLAQAGSwEABwsBAAfLAQAIiwEACUsBAAoLAQAKywEAC4sBAAxLAQANCwEADcsBAA6LAQAPSwEAEAsBABDLAQARiwEAEksBABMLAQATywEAFIsBABVLAQAWCwEAFssBABeLAQAYSwEAGQsBABnLAQAaiwEAG0sBABwLAQAcywEAHYsBAB5LAQAfCwEAH8sBACCLAQAhSwEAIgsBACLLAQAjiwEAJEsBACULAQAlywEAJosBACdLAQAoCwEAKMsBACmLAQAqSwEAKwsBAAGLQQACS0EAAwtBAAPLQQAEi0EABUtBAAYLQQAGy0EAB4tBAAhLQQAJC0EACctBAAqLQQALS0EADAtBAAzLQQANi0EADktBAA8LQQAPy0EAEItBABFLQQASC0EAEstBABOLQQAUS0EAFQtBABXLQQAWi0EAF0tBABgLQQAYy0EAGYtBABpLQQAbC0EAG8tBAByLQQAdS0EAHgtBAB7LQQAfi0EAIEtBACELQQAhy0EAIotBACNLQQAkC0EAJMtBACWLQQAmS0EAJwtBACfLQQAoi0EAKUtBACoLQQAqy0EAK4tBACxLQQAtC0EALctBAC6LQQAvS0EAMAtBADDLQQAxi0EAMktBADMLQQAzy0EANItBADVLQQA2C0EAE4uBABRLgQAVC4EANguBADbLgQA3i4EAOEuBADkLgQA5y4EAOouBADtLgQA8C4EAPMuBAD2LgQA+S4EAPwuBAD/LgQAAi8EAAUvBAAILwQACy8EAA4vBAARLwQAFC8EABcvBAAaLwQAHS8EACAvBACILwQAui8EAFMwBACmMAQAEzIEAE0yBAB7MgQArjIEACgzBABpMwQAmDMEAMczBADnMwQAHDQEAGc0BABqNAQAfzQEAJY0BADENAQA7jQEACk1BABoNQQAlTUEADE2BABeNgQAlDYEAME2BADuNgQAMjcEAGg3BAChNwQAODgEAI44BAC+OAQApTkEANg5BABiOgQAIDsEACM7BAAmOwQAbTsEAL07BAAlPAQAUzwEAFY8BABZPAQAcDwEAHM8BAB2PAQAeTwEAHw8BAB/PAQAgjwEAC89BACBPQQA2T0EADU+BABfPgQAkT4EAP8+BAAvPwQAZj8EAIo/BACjPwQA4D8EACNABACdQAQAtUAEAOBABAAmQQQA+0EEAHRCBACxQgQAS0MEAIVDBACuQwQA5EMEAOdDBADqQwQA7UMEAPBDBADzQwQA9kMEAPlDBAD8QwQA/0MEAAJEBAAFRAQACEQEAAtEBAAORAQAEUQEABREBAAXRAQAGkQEAB1EBAAgRAQAI0QEACZEBAApRAQALEQEAC9EBAAyRAQANUQEADhEBAA7RAQAPkQEAEFEBABERAQAR0QEAEpEBABNRAQAUEQEAFNEBABWRAQAWUQEAFxEBABfRAQAYkQEAGVEBABoRAQAa0QEAG5EBABxRAQAdEQEAHdEBAB6RAQAfUQEAIBEBACDRAQAhkQEAIlEBACMRAQAj0QEAJJEBACVRAQAmEQEAJtEBACeRAQAoUQEAKREBACnRAQAqkQEAK1EBACwRAQAs0QEALZEBAC5RAQAvEQEAL9EBADCRAQAxUQEAMhEBADLRAQAzkQEANFEBADURAQA10QEANpEBADdRAQA4EQEAONEBADmRAQA6UQEAOxEBADvRAQA8kQEAPVEBAD4RAQA+0QEAP5EBAABRQQABEUEAAdFBAAKRQQADUUEABBFBAATRQQAFkUEADVFBAA4RQQAO0UEAJ9FBACiRQQApUUEAKhFBACrRQQArkUEALFFBAC0RQQAt0UEALpFBAC9RQQAwEUEAMNFBADGRQQAyUUEAMxFBADPRQQA0kUEANVFBADYRQQA20UEAN5FBADhRQQA5EUEAOdFBADqRQQA7UUEAPBFBADzRQQA9kUEAPlFBAD8RQQA/0UEAAJGBAAFRgQACEYEAAtGBAAORgQAEUYEABRGBAAXRgQAGkYEAB1GBAAgRgQAI0YEACZGBAApRgQALEYEAC9GBAAyRgQANUYEADhGBAA7RgQAPkYEAEFGBABERgQAR0YEAEpGBABNRgQAUEYEAFNGBABWRgQAWUYEAFxGBABfRgQAYkYEAGVGBABoRgQAa0YEAG5GBABxRgQAdEYEAHdGBAB6RgQAfUYEAIBGBACDRgQAhkYEAIlGBACMRgQAj0YEAJJGBACVRgQAmEYEAJtGBACeRgQAoUYEAKRGBACnRgQAqkYEAK1GBACwRgQAs0YEALZGBAC5RgQAvEYEAL9GBADCRgQAxUYEAMhGBADLRgQAzkYEANFGBADURgQA10YEANpGBADdRgQA4EYEAONGBADmRgQA6UYEAOxGBADvRgQA8kYEAPVGBAD4RgQA+0YEAP5GBAABRwQABEcEAAdHBAAKRwQADUcEABBHBAATRwQAFkcEABlHBAAcRwQAH0cEACJHBAAlRwQAKEcEACtHBAAuRwQAMUcEADRHBAA3RwQAOkcEAD1HBABARwQAQ0cEAEZHBABJRwQATEcEAE9HBABSRwQAVUcEAFhHBABbRwQAXkcEAGFHBABkRwQAZ0cEAGpHBABtRwQAcEcEAHNHBAB2RwQAeUcEAHxHBAB/RwQAgkcEAIVHBACIRwQAi0cEAI5HBACRRwQAlEcEAJdHBACaRwQAnUcEAKBHBACjRwQApkcEAKlHBACsRwQAr0cEALJHBAC1RwQAuEcEALtHBAC+RwQAwUcEAMRHBADHRwQAykcEAM1HBADQRwQA00cEANZHBADZRwQA3EcEAN9HBADiRwQA5UcEAOhHBADrRwQA7kcEAPFHBAD0RwQAeEgEAONIBAALSQQAakkEALpJBAD6SQQAKkoEAHdKBAC1SgQA5UoEABZLBABGSwQAjUsEAKxLBADFSwQA1ksEAAdMBAA2TAQAe0wEALpMBAD7TAQAFk0EADtNBABcTQQAn00EALtNBADbTQQA/E0EAC1OBABYTgQAfE4EAL1OBAD6TgQAJU8EAIJPBACgTwQAu08EANtPBAAFUAQALFAEAI9QBADvUAQAFlEEAFJRBABxUQQA3VEEABNSBABXUgQAt1IEADNTBAB4UwQA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5KAFAI+hBQD7oQUALaIFAHiiBQCYogUACKMFAIyjBQDBowUA8qMFACakBQCzpAUAOqUFANilBQBMpgUAe6YFAKqmBQDRpgUA/qYFACunBQDapwUAeqgFAM+oBQADqQUALKkFAJSpBQDNqQUAZaoFAOaqBQDIqwUAOKwFAKCsBQCjrAUAAK0FAFStBQBoYXNoY2hrAGlzYW1jaGsATmVpbgBKYQBLYW5uIERhdGVpICclLS4yMDBzJyBuaWNodCBlcnpldWdlbiAoRmVobGVyOiAlZCAtICVzKQBLYW5uIFRhYmVsbGUgJyUtLjIwMHMnIG5pY2h0IGVyemV1Z2VuIChGZWhsZXI6ICVkIC0gJXMpAEthbm4gRGF0ZW5iYW5rICclLS4xOTJzJyBuaWNodCBlcnpldWdlbiAoRmVobGVyOiAlZCAtICVzKQBLYW5uIERhdGVuYmFuayAnJS0uMTkycycgbmljaHQgZXJ6ZXVnZW4uIERhdGVuYmFuayBleGlzdGllcnQgYmVyZWl0cwBLYW5uIERhdGVuYmFuayAnJS0uMTkycycgbmljaHQgbMO2c2NoZW47IERhdGVuYmFuayBuaWNodCB2b3JoYW5kZW4ARmVobGVyIGJlaW0gTMO2c2NoZW4gZGVyIERhdGVuYmFuayAoJyUtLjE5MnMnIGthbm4gbmljaHQgZ2Vsw7ZzY2h0IHdlcmRlbiwgRmVobGVyOiAlZCAtICVzKQBGZWhsZXIgYmVpbSBMw7ZzY2hlbiBkZXIgRGF0ZW5iYW5rIChWZXJ6ZWljaG5pcyAnJS0uMTkycycga2FubiBuaWNodCBnZWzDtnNjaHQgd2VyZGVuLCBGZWhsZXI6ICVkIC0gJXMpAEZlaGxlciBiZWltIEzDtnNjaGVuIHZvbiAnJS0uMTkycycgKEZlaGxlcjogJWQgLSAlcykARGF0ZW5zYXR6IGluIGRlciBTeXN0ZW10YWJlbGxlIG5pY2h0IGxlc2JhcgBLYW5uIFN0YXR1cyB2b24gJyUtLjIwMHMnIG5pY2h0IGVybWl0dGVsbiAoRmVobGVyOiAlZCAtICVzKQBLYW5uIEFyYmVpdHN2ZXJ6ZWljaG5pcyBuaWNodCBlcm1pdHRlbG4gKEZlaGxlcjogJWQgLSAlcykARGF0ZWkga2FubiBuaWNodCBnZXNwZXJydCB3ZXJkZW4gKEZlaGxlcjogJWQgLSAlcykAS2FubiBEYXRlaSAnJS0uMjAwcycgbmljaHQgw7ZmZm5lbiAoRmVobGVyOiAlZCAtICVzKQBLYW5uIERhdGVpICclLS4yMDBzJyBuaWNodCBmaW5kZW4gKEZlaGxlcjogJWQgLSAlcykAVmVyemVpY2huaXMgdm9uICclLS4xOTJzJyBuaWNodCBsZXNiYXIgKEZlaGxlcjogJWQgLSAlcykAS2FubiBuaWNodCBpbiBkYXMgVmVyemVpY2huaXMgJyUtLjE5MnMnIHdlY2hzZWxuIChGZWhsZXI6ICVkIC0gJXMpAERhdGVuc2F0eiBoYXQgc2ljaCBzZWl0IGRlbSBsZXR6dGVuIFp1Z3JpZmYgYXVmIFRhYmVsbGUgJyUtLjE5MnMnIGdlw6RuZGVydABGZXN0cGxhdHRlIHZvbGwgKCVzKS4gV2FydGUsIGJpcyBqZW1hbmQgUGxhdHogc2NoYWZmdCAuLi4gKEZlaGxlcjogJWQgLSAlcykAS2FubiBuaWNodCBzcGVpY2hlcm4sIEdydW5kOiBkb3BwZWx0ZXIgU2NobMO8c3NlbCBpbiBUYWJlbGxlICclLS4xOTJzJwBGZWhsZXIgYmVpbSBTY2hsaWXDn2VuIHZvbiAnJS0uMTkycycgKEZlaGxlcjogJWQgLSAlcykARmVobGVyIGJlaW0gTGVzZW4gZGVyIERhdGVpICclLS4yMDBzJyAoRmVobGVyOiAlZCAtICVzKQBGZWhsZXIgYmVpbSBVbWJlbmVubmVuIHZvbiAnJS0uMjEwcycgaW4gJyUtLjIxMHMnIChGZWhsZXI6ICVkIC0gJXMpAEZlaGxlciBiZWltIFNwZWljaGVybiBkZXIgRGF0ZWkgJyUtLjIwMHMnIChGZWhsZXI6ICVkIC0gJXMpACclLS4xOTJzJyBpc3QgZsO8ciDDhG5kZXJ1bmdlbiBnZXNwZXJydABTb3J0aWVydm9yZ2FuZyBhYmdlYnJvY2hlbgBWaWV3ICclLS4xOTJzJyBleGlzdGllcnQgZsO8ciAnJS0uMTkycycgbmljaHQARmVobGVyICVkIC0gJyUtLjE5MnMnIChTcGVpY2hlci1FbmdpbmUpAERpZXNlIE9wdGlvbiBnaWJ0IGVzIG5pY2h0IChTcGVpY2hlci1FbmdpbmUgZsO8ciAnJS0uMTkycycpAEthbm4gRGF0ZW5zYXR6IGluICclLS4xOTJzJyBuaWNodCBmaW5kZW4ARmFsc2NoZSBJbmZvcm1hdGlvbiBpbiBEYXRlaSAnJS0uMjAwcycARmVobGVyaGFmdGUgSW5kZXgtRGF0ZWkgZsO8ciBUYWJlbGxlICclLS4yMDBzJzsgdmVyc3VjaGUgenUgcmVwYXJpZXJlbgBBbHRlIEluZGV4LURhdGVpIGbDvHIgVGFiZWxsZSAnJS0uMTkycycuIEJpdHRlIHJlcGFyaWVyZW4AVGFiZWxsZSAnJS0uMTkycycgaXN0IG51ciBsZXNiYXIAS2VpbiBTcGVpY2hlciB2b3JoYW5kZW4gKCVkIEJ5dGVzIGJlbsO2dGlndCkuIEJpdHRlIFNlcnZlciBuZXUgc3RhcnRlbgBLZWluIFNwZWljaGVyIHp1bSBTb3J0aWVyZW4gdm9yaGFuZGVuLiBzb3J0X2J1ZmZlcl9zaXplIHNvbGx0ZSBpbSBTZXJ2ZXIgZXJow7ZodCB3ZXJkZW4AVW5lcndhcnRldGVzIEVuZGUgYmVpbSBMZXNlbiBkZXIgRGF0ZWkgJyUtLjE5MnMnIChGZWhsZXI6ICVkIC0gJXMpAFp1IHZpZWxlIFZlcmJpbmR1bmdlbgBLZWluIFNwZWljaGVyIG1laHIgdm9yaGFuZGVuLiBQcsO8ZmVuIFNpZSwgb2IgbXlzcWxkIG9kZXIgZWluIGFuZGVyZXIgUHJvemVzcyBkZW4gZ2VzYW10ZW4gU3BlaWNoZXIgdmVyYnJhdWNodC4gV2VubiBuaWNodCwgc29sbHRlbiBTaWUgbWl0ICd1bGltaXQnIGRhZsO8ciBzb3JnZW4sIGRhc3MgbXlzcWxkIG1laHIgU3BlaWNoZXIgYmVudXR6ZW4gZGFyZiwgb2RlciBtZWhyIFN3YXAtU3BlaWNoZXIgZWlucmljaHRlbgBLYW5uIEhvc3RuYW1lbiBmw7xyIGRpZXNlIEFkcmVzc2UgbmljaHQgZXJoYWx0ZW4AVW5nw7xsdGlnZXIgSGFuZHNoYWtlAEJlbnV0emVyICclLS40OHMnQCclLS42NHMnIGhhdCBrZWluZSBadWdyaWZmc2JlcmVjaHRpZ3VuZyBmw7xyIERhdGVuYmFuayAnJS0uMTkycycAQmVudXR6ZXIgJyUtLjQ4cydAJyUtLjY0cycgaGF0IGtlaW5lIFp1Z3JpZmZzYmVyZWNodGlndW5nICh2ZXJ3ZW5kZXRlcyBQYXNzd29ydDogJXMpAEtlaW5lIERhdGVuYmFuayBhdXNnZXfDpGhsdABVbmJla2FubnRlciBCZWZlaGwARmVsZCAnJS0uMTkycycgZGFyZiBuaWNodCBOVUxMIHNlaW4AVW5iZWthbm50ZSBEYXRlbmJhbmsgJyUtLjE5MnMnAFRhYmVsbGUgJyUtLjE5MnMnIGJlcmVpdHMgdm9yaGFuZGVuAFVuYmVrYW5udGUgVGFiZWxsZSAnJS0uMTI5cycARmVsZCAnJS0uMTkycycgaW4gJS0uMTkycyBpc3QgbmljaHQgZWluZGV1dGlnAERlciBTZXJ2ZXIgd2lyZCBoZXJ1bnRlcmdlZmFocmVuAFVuYmVrYW5udGVzIFRhYmVsbGVuZmVsZCAnJS0uMTkycycgaW4gJS0uMTkycwAnJS0uMTkycycgaXN0IG5pY2h0IGluIEdST1VQIEJZIHZvcmhhbmRlbgBHcnVwcGllcnVuZyDDvGJlciAnJS0uMTkycycgbmljaHQgbcO2Z2xpY2gARGllIFZlcndlbmR1bmcgdm9uIFN1bW1pZXJ1bmdzZnVua3Rpb25lbiB1bmQgU3BhbHRlbiBpbSBzZWxiZW4gQmVmZWhsIGlzdCBuaWNodCBlcmxhdWJ0AERpZSBBbnphaGwgZGVyIFNwYWx0ZW4gZW50c3ByaWNodCBuaWNodCBkZXIgQW56YWhsIGRlciBXZXJ0ZQBOYW1lIGRlcyBCZXplaWNobmVycyAnJS0uMTAwcycgaXN0IHp1IGxhbmcARG9wcGVsdGVyIFNwYWx0ZW5uYW1lOiAnJS0uMTkycycARG9wcGVsdGVyIE5hbWUgZsO8ciBTY2hsw7xzc2VsIHZvcmhhbmRlbjogJyUtLjE5MnMnAERvcHBlbHRlciBFaW50cmFnICclLS4xOTJzJyBmw7xyIFNjaGzDvHNzZWwgJWQARmFsc2NoZSBTcGV6aWZpa2F0aW9uIGbDvHIgRmVsZCAnJS0uMTkycycAJXMgYmVpICclLS44MHMnIGluIFplaWxlICVkAExlZXJlIEFiZnJhZ2UAVGFiZWxsZW5uYW1lL0FsaWFzICclLS4xOTJzJyBuaWNodCBlaW5kZXV0aWcARmVobGVyaGFmdGVyIFZvcmdhYmV3ZXJ0IChERUZBVUxUKSBmw7xyICclLS4xOTJzJwBNZWhyZXJlIFByaW3DpHJzY2hsw7xzc2VsIChQUklNQVJZIEtFWSkgZGVmaW5pZXJ0AFp1IHZpZWxlIFNjaGzDvHNzZWwgZGVmaW5pZXJ0LiBNYXhpbWFsICVkIFNjaGzDvHNzZWwgZXJsYXVidABadSB2aWVsZSBUZWlsc2NobMO8c3NlbCBkZWZpbmllcnQuIE1heGltYWwgJWQgVGVpbHNjaGzDvHNzZWwgZXJsYXVidABTY2hsw7xzc2VsIGlzdCB6dSBsYW5nLiBEaWUgbWF4aW1hbGUgU2NobMO8c3NlbGzDpG5nZSBiZXRyw6RndCAlZABJbiBkZXIgVGFiZWxsZSBnaWJ0IGVzIGtlaW4gU2NobMO8c3NlbGZlbGQgJyUtLjE5MnMnAEJMT0ItRmVsZCAnJS0uMTkycycga2FubiBiZWltIHZlcndlbmRldGVuIFRhYmVsbGVudHlwIG5pY2h0IGFscyBTY2hsw7xzc2VsIHZlcndlbmRldCB3ZXJkZW4ARmVsZGzDpG5nZSBmw7xyIEZlbGQgJyUtLjE5MnMnIHp1IGdyb8OfIChtYXhpbWFsICVsdSkuIEJMT0ItIG9kZXIgVEVYVC1TcGFsdGVudHlwIHZlcndlbmRlbiEARmFsc2NoZSBUYWJlbGxlbmRlZmluaXRpb24uIEVzIGRhcmYgbnVyIGVpbmUgQVVUT19JTkNSRU1FTlQtU3BhbHRlIGdlYmVuLCB1bmQgZGllc2UgbXVzcyBhbHMgU2NobMO8c3NlbCBkZWZpbmllcnQgd2VyZGVuACVzOiBCZXJlaXQgZsO8ciBWZXJiaW5kdW5nZW4uClZlcnNpb246ICclcycgIFNvY2tldDogJyVzJyAgUG9ydDogJWQAJXM6IE5vcm1hbCBoZXJ1bnRlcmdlZmFocmVuCgAlczogU2lnbmFsICVkIGVyaGFsdGVuLiBBYmJydWNoIQoAJXM6IEhlcnVudGVyZmFocmVuIGJlZW5kZXQKACVzOiBUaHJlYWQgJWxkIHp3YW5nc3dlaXNlIGJlZW5kZXQuIEJlbnV0emVyOiAnJS0uNDhzJwoAS2FubiBJUC1Tb2NrZXQgbmljaHQgZXJ6ZXVnZW4AVGFiZWxsZSAnJS0uMTkycycgYmVzaXR6dCBrZWluZW4gd2llIGRlbiBpbiBDUkVBVEUgSU5ERVggdmVyd2VuZGV0ZW4gSW5kZXguIFRhYmVsbGUgbmV1IGFubGVnZW4ARmVsZGJlZ3Jlbnplci1Bcmd1bWVudCBpc3QgbmljaHQgaW4gZGVyIGVyd2FydGV0ZW4gRm9ybS4gQml0dGUgaW0gSGFuZGJ1Y2ggbmFjaGxlc2VuAEVpbmUgZmVzdGUgWmVpbGVubMOkbmdlIGthbm4gZsO8ciBCTE9CLUZlbGRlciBuaWNodCB2ZXJ3ZW5kZXQgd2VyZGVuLiBCaXR0ZSAnZmllbGRzIHRlcm1pbmF0ZWQgYnknIHZlcndlbmRlbgBEYXRlaSAnJS0uMTI4cycgbXVzcyBpbSBEYXRlbmJhbmstVmVyemVpY2huaXMgdm9yaGFuZGVuIG9kZXIgbGVzYmFyIGbDvHIgYWxsZSBzZWluAERhdGVpICclLS4yMDBzJyBiZXJlaXRzIHZvcmhhbmRlbgBEYXRlbnPDpHR6ZTogJWxkICBHZWzDtnNjaHQ6ICVsZCAgQXVzZ2VsYXNzZW46ICVsZCAgV2FybnVuZ2VuOiAlbGQARGF0ZW5zw6R0emU6ICVsZCAgRHVwbGlrYXRlOiAlbGQARmFsc2NoZXIgVW50ZXJ0ZWlsc2NobMO8c3NlbC4gRGVyIHZlcndlbmRldGUgU2NobMO8c3NlbHRlaWwgaXN0IGVudHdlZGVyIGtlaW4gU3RyaW5nLCBkaWUgdmVyd2VuZGV0ZSBMw6RuZ2UgaXN0IGzDpG5nZXIgYWxzIGRlciBUZWlsc2NobMO8c3NlbCBvZGVyIGRpZSBTcGVpY2hlci1FbmdpbmUgdW50ZXJzdMO8dHp0IGtlaW5lIFVudGVydGVpbHNjaGzDvHNzZWwATWl0IEFMVEVSIFRBQkxFIGvDtm5uZW4gbmljaHQgYWxsZSBGZWxkZXIgYXVmIGVpbm1hbCBnZWzDtnNjaHQgd2VyZGVuLiBEYWbDvHIgRFJPUCBUQUJMRSB2ZXJ3ZW5kZW4AS2FubiAnJS0uMTkycycgbmljaHQgbMO2c2NoZW4uIEV4aXN0aWVydCBkaWUgU3BhbHRlIG9kZXIgZGVyIFNjaGzDvHNzZWw/AERhdGVuc8OkdHplOiAlbGQgIER1cGxpa2F0ZTogJWxkICBXYXJudW5nZW46ICVsZABEaWUgVmVyd2VuZHVuZyBkZXIgenUgYWt0dWFsaXNpZXJlbmRlbiBaaWVsdGFiZWxsZSAnJS0uMTkycycgaXN0IGluIGRlciBGUk9NLUtsYXVzZWwgbmljaHQgenVsw6Rzc2lnLgBVbmJla2FubnRlIFRocmVhZC1JRDogJWx1AFNpZSBzaW5kIG5pY2h0IEVpZ2VudMO8bWVyIHZvbiBUaHJlYWQgJWx1AEtlaW5lIFRhYmVsbGVuIHZlcndlbmRldABadSB2aWVsZSBTdHJpbmdzIGbDvHIgRmVsZCAlLS4xOTJzIHVuZCBTRVQgYW5nZWdlYmVuAEthbm4ga2VpbmVuIGVpbmRldXRpZ2VuIERhdGVpbmFtZW4gZsO8ciBkaWUgTG9nZGF0ZWkgJS0uMjAwcygxLTk5OSkgZXJ6ZXVnZW4KAFRhYmVsbGUgJyUtLjE5MnMnIGlzdCBtaXQgTGVzZXNwZXJyZSB2ZXJzZWhlbiB1bmQga2FubiBuaWNodCBha3R1YWxpc2llcnQgd2VyZGVuAFRhYmVsbGUgJyUtLjE5MnMnIHd1cmRlIG5pY2h0IG1pdCBMT0NLIFRBQkxFUyBnZXNwZXJydABCTE9CL1RFWFQtRmVsZCAnJS0uMTkycycgZGFyZiBrZWluZW4gVm9yZ2FiZXdlcnQgKERFRkFVTFQpIGhhYmVuAFVuZXJsYXVidGVyIERhdGVuYmFua25hbWUgJyUtLjEwMHMnAFVuZXJsYXVidGVyIFRhYmVsbGVubmFtZSAnJS0uMTAwcycARGllIEF1c2bDvGhydW5nIGRlcyBTRUxFQ1Qgd8O8cmRlIHp1IHZpZWxlIERhdGVuc8OkdHplIHVudGVyc3VjaGVuIHVuZCB3YWhyc2NoZWlubGljaCBzZWhyIGxhbmdlIGRhdWVybi4gQml0dGUgV0hFUkUtS2xhdXNlbCDDvGJlcnByw7xmZW4gdW5kIGdlZ2ViZW5lbmZhbGxzIFNFVCBTUUxfQklHX1NFTEVDVFM9MSBvZGVyIFNFVCBNQVhfSk9JTl9TSVpFPSMgdmVyd2VuZGVuAFVuYmVrYW5udGVyIEZlaGxlcgBVbmJla2FubnRlIFByb3plZHVyICclLS4xOTJzJwBGYWxzY2hlIFBhcmFtZXRlcnphaGwgZsO8ciBQcm96ZWR1ciAnJS0uMTkycycARmFsc2NoZSBQYXJhbWV0ZXIgZsO8ciBQcm96ZWR1ciAnJS0uMTkycycAVW5iZWthbm50ZSBUYWJlbGxlICclLS4xOTJzJyBpbiAnJS0uMzJzJwBGZWxkICclLS4xOTJzJyB3dXJkZSB6d2VpbWFsIGFuZ2VnZWJlbgBGYWxzY2hlIFZlcndlbmR1bmcgZWluZXIgR3J1cHBpZXJ1bmdzZnVua3Rpb24AVGFiZWxsZSAnJS0uMTkycycgdmVyd2VuZGV0IGVpbmUgRXJ3ZWl0ZXJ1bmcsIGRpZSBpbiBkaWVzZXIgTXlTUUwtVmVyc2lvbiBuaWNodCB2ZXJmw7xnYmFyIGlzdABFaW5lIFRhYmVsbGUgbXVzcyBtaW5kZXN0ZW5zIGVpbmUgU3BhbHRlIGJlc2l0emVuAFRhYmVsbGUgJyUtLjE5MnMnIGlzdCB2b2xsAFVuYmVrYW5udGVyIFplaWNoZW5zYXR6OiAnJS0uNjRzJwBadSB2aWVsZSBUYWJlbGxlbi4gTXlTUUwga2FubiBpbiBlaW5lbSBKb2luIG1heGltYWwgJWQgVGFiZWxsZW4gdmVyd2VuZGVuAFp1IHZpZWxlIEZlbGRlcgBaZWlsZW5sw6RuZ2UgenUgZ3Jvw58uIERpZSBtYXhpbWFsZSBaZWlsZW5sw6RuZ2UgZsO8ciBkZW4gdmVyd2VuZGV0ZW4gVGFiZWxsZW50eXAgKG9obmUgQkxPQi1GZWxkZXIpIGJldHLDpGd0ICVsZC4gRWluaWdlIEZlbGRlciBtw7xzc2VuIGluIEJMT0Igb2RlciBURVhUIHVtZ2V3YW5kZWx0IHdlcmRlbgBUaHJlYWQtU3RhY2stw5xiZXJsYXVmLiBCZW51dHp0OiAlbGQgdm9uICVsZCBTdGFjay4gJ215c3FsZCAtLXRocmVhZF9zdGFjaz0jJyB2ZXJ3ZW5kZW4sIHVtIGJlaSBCZWRhcmYgZWluZW4gZ3LDtsOfZXJlbiBTdGFjayBhbnp1bGVnZW4AT1VURVIgSk9JTiBlbnRow6RsdCBmZWhsZXJoYWZ0ZSBBYmjDpG5naWdrZWl0ZW4uIEluIE9OIHZlcndlbmRldGUgQmVkaW5ndW5nZW4gw7xiZXJwcsO8ZmVuAFRhYmxlIGhhbmRsZXIgZG9lc24ndCBzdXBwb3J0IE5VTEwgaW4gZ2l2ZW4gaW5kZXguIFBsZWFzZSBjaGFuZ2UgY29sdW1uICclLS4xOTJzJyB0byBiZSBOT1QgTlVMTCBvciB1c2UgYW5vdGhlciBoYW5kbGVyAEthbm4gRnVua3Rpb24gJyUtLjE5MnMnIG5pY2h0IGxhZGVuAEthbm4gRnVua3Rpb24gJyUtLjE5MnMnIG5pY2h0IGluaXRpYWxpc2llcmVuOiAlLS4xOTJzAEtlaW5lIFBmYWRlIGdlc3RhdHRldCBmw7xyIFNoYXJlZCBMaWJyYXJ5AEZ1bmt0aW9uICclLS4xOTJzJyBleGlzdGllcnQgc2Nob24AS2FubiBTaGFyZWQgTGlicmFyeSAnJS0uMTkycycgbmljaHQgw7ZmZm5lbiAoRmVobGVyOiAlZCAlLS4xMjhzKQBLYW5uIEZ1bmt0aW9uICclLS4xMjhzJyBpbiBkZXIgTGlicmFyeSBuaWNodCBmaW5kZW4ARnVua3Rpb24gJyUtLjE5MnMnIGlzdCBuaWNodCBkZWZpbmllcnQASG9zdCAnJS0uMjU1cycgYmxvY2tpZXJ0IHdlZ2VuIHp1IHZpZWxlciBWZXJiaW5kdW5nc2ZlaGxlci4gQXVmaGViZW4gZGVyIEJsb2NraWVydW5nIG1pdCAnbXlzcWxhZG1pbiBmbHVzaC1ob3N0cycASG9zdCAnJS0uMjU1cycgaGF0IGtlaW5lIEJlcmVjaHRpZ3VuZywgc2ljaCBtaXQgZGllc2VtIE15U1FMLVNlcnZlciB6dSB2ZXJiaW5kZW4AU2llIGJlbnV0emVuIE15U1FMIGFscyBhbm9ueW1lciBCZW51dHplciB1bmQgZMO8cmZlbiBkYWhlciBrZWluZSBQYXNzd8O2cnRlciDDpG5kZXJuAFNpZSBiZW7DtnRpZ2VuIGRpZSBCZXJlY2h0aWd1bmcgenVtIEFrdHVhbGlzaWVyZW4gdm9uIFRhYmVsbGVuIGluIGRlciBEYXRlbmJhbmsgJ215c3FsJywgdW0gZGllIFBhc3N3w7ZydGVyIGFuZGVyZXIgQmVudXR6ZXIgw6RuZGVybiB6dSBrw7ZubmVuAEthbm4ga2VpbmVuIHBhc3NlbmRlbiBEYXRlbnNhdHogaW4gVGFiZWxsZSAndXNlcicgZmluZGVuAERhdGVuc8OkdHplIGdlZnVuZGVuOiAlbGQgIEdlw6RuZGVydDogJWxkICBXYXJudW5nZW46ICVsZABLYW5uIGtlaW5lbiBuZXVlbiBUaHJlYWQgZXJ6ZXVnZW4gKEZlaGxlcjogJWQpLiBTb2xsdGUgbm9jaCBTcGVpY2hlciB2ZXJmw7xnYmFyIHNlaW4sIGJpdHRlIGltIEhhbmRidWNoIHdlZ2VuIG3DtmdsaWNoZXIgRmVobGVyIGltIEJldHJpZWJzc3lzdGVtIG5hY2hzY2hsYWdlbgBBbnphaGwgZGVyIEZlbGRlciBzdGltbXQgbmljaHQgbWl0IGRlciBBbnphaGwgZGVyIFdlcnRlIGluIFplaWxlICVsZCDDvGJlcmVpbgBLYW5uIFRhYmVsbGUnJS0uMTkycycgbmljaHQgZXJuZXV0IMO2ZmZuZW4AVW5lcmxhdWJ0ZSBWZXJ3ZW5kdW5nIGVpbmVzIE5VTEwtV2VydHMAcmVnZXhwIGxpZWZlcnRlIEZlaGxlciAnJS0uNjRzJwBEYXMgVmVybWlzY2hlbiB2b24gR1JPVVAtRmVsZGVybiAoTUlOKCksTUFYKCksQ09VTlQoKS4uLikgbWl0IE5pY2h0LUdST1VQLUZlbGRlcm4gaXN0IG5pY2h0IHp1bMOkc3NpZywgd2VubiBrZWluZSBHUk9VUC1CWS1LbGF1c2VsIHZvcmhhbmRlbiBpc3QARsO8ciBCZW51dHplciAnJS0uNDhzJyBhdWYgSG9zdCAnJS0uMjU1cycgZ2lidCBlcyBrZWluZSBzb2xjaGUgQmVyZWNodGlndW5nACUtLjEyOHMgQmVmZWhsIG5pY2h0IGVybGF1YnQgZsO8ciBCZW51dHplciAnJS0uNDhzJ0AnJS0uNjRzJyBhdWYgVGFiZWxsZSAnJS0uNjRzJwAlLS4xNnMgQmVmZWhsIG5pY2h0IGVybGF1YnQgZsO8ciBCZW51dHplciAnJS0uNDhzJ0AnJS0uNjRzJyB1bmQgRmVsZCAnJS0uMTkycycgaW4gVGFiZWxsZSAnJS0uMTkycycAVW56dWzDpHNzaWdlciBHUkFOVC0gb2RlciBSRVZPS0UtQmVmZWhsLiBWZXJmw7xnYmFyZSBCZXJlY2h0aWd1bmdlbiBzaW5kIGltIEhhbmRidWNoIGF1ZmdlZsO8aHJ0AERhcyBIb3N0LSBvZGVyIFVzZXItQXJndW1lbnQgZsO8ciBHUkFOVCBpc3QgenUgbGFuZwBUYWJlbGxlICclLS4xOTJzLiUtLjE5MnMnIGV4aXN0aWVydCBuaWNodABFaW5lIHNvbGNoZSBCZXJlY2h0aWd1bmcgaXN0IGbDvHIgVXNlciAnJS0uNDhzJyBhdWYgSG9zdCAnJS0uMjU1cycgYW4gVGFiZWxsZSAnJS0uMTkycycgbmljaHQgZGVmaW5pZXJ0AERlciB2ZXJ3ZW5kZXRlIEJlZmVobCBpc3QgaW4gZGllc2VyIE15U1FMLVZlcnNpb24gbmljaHQgenVsw6Rzc2lnAEZlaGxlciBpbiBkZXIgU1FMLVN5bnRheC4gQml0dGUgZGllIGtvcnJla3RlIFN5bnRheCBpbSBIYW5kYnVjaCBuYWNoc2NobGFnZW4ARGVsYXllZCBpbnNlcnQgdGhyZWFkIGNvdWxkbid0IGdldCByZXF1ZXN0ZWQgbG9jayBmb3IgdGFibGUgJS0uMTkycwBUb28gbWFueSBkZWxheWVkIHRocmVhZHMgaW4gdXNlAEFiYnJ1Y2ggZGVyIFZlcmJpbmR1bmcgJWxkIHp1ciBEYXRlbmJhbmsgJyUtLjE5MnMnLiBCZW51dHplcjogJyUtLjQ4cycgKCUtLjY0cykARW1wZmFuZ2VuZXMgUGFrZXQgaXN0IGdyw7bDn2VyIGFscyAnbWF4X2FsbG93ZWRfcGFja2V0JyBCeXRlcwBMZXNlLUZlaGxlciBiZWkgZWluZXIgVmVyYmluZHVuZ3MtUGlwZQBmY250bCgpIGxpZWZlcnRlIGVpbmVuIEZlaGxlcgBQYWtldGUgbmljaHQgaW4gZGVyIHJpY2h0aWdlbiBSZWloZW5mb2xnZSBlbXBmYW5nZW4AS29tbXVuaWthdGlvbnNwYWtldCBsw6Rzc3Qgc2ljaCBuaWNodCBlbnRwYWNrZW4ARmVobGVyIGJlaW0gTGVzZW4gZWluZXMgS29tbXVuaWthdGlvbnNwYWtldHMAWmVpdMO8YmVyc2NocmVpdHVuZyBiZWltIExlc2VuIGVpbmVzIEtvbW11bmlrYXRpb25zcGFrZXRzAEZlaGxlciBiZWltIFNjaHJlaWJlbiBlaW5lcyBLb21tdW5pa2F0aW9uc3Bha2V0cwBaZWl0w7xiZXJzY2hyZWl0dW5nIGJlaW0gU2NocmVpYmVuIGVpbmVzIEtvbW11bmlrYXRpb25zcGFrZXRzAEVyZ2VibmlzLVN0cmluZyBpc3QgbMOkbmdlciBhbHMgJ21heF9hbGxvd2VkX3BhY2tldCcgQnl0ZXMARGVyIHZlcndlbmRldGUgVGFiZWxsZW50eXAgdW50ZXJzdMO8dHp0IGtlaW5lIEJMT0ItIHVuZCBURVhULUZlbGRlcgBEZXIgdmVyd2VuZGV0ZSBUYWJlbGxlbnR5cCB1bnRlcnN0w7x0enQga2VpbmUgQVVUT19JTkNSRU1FTlQtRmVsZGVyAElOU0VSVCBERUxBWUVEIGNhbid0IGJlIHVzZWQgd2l0aCB0YWJsZSAnJS0uMTkycycgYmVjYXVzZSBpdCBpcyBsb2NrZWQgd2l0aCBMT0NLIFRBQkxFUwBGYWxzY2hlciBTcGFsdGVubmFtZSAnJS0uMTAwcycARGllIHZlcndlbmRldGUgU3BlaWNoZXItRW5naW5lIGthbm4gZGllIFNwYWx0ZSAnJS0uMTkycycgbmljaHQgaW5kaXppZXJlbgBOaWNodCBhbGxlIFRhYmVsbGVuIGluIGRlciBNRVJHRS1UYWJlbGxlIHNpbmQgZ2xlaWNoIGRlZmluaWVydABTY2hyZWliZW4gaW4gVGFiZWxsZSAnJS0uMTkycycgbmljaHQgbcO2Z2xpY2ggd2VnZW4gZWluZXIgRWluZGV1dGlna2VpdHNiZXNjaHLDpG5rdW5nICh1bmlxdWUgY29uc3RyYWludCkAQkxPQi0gb2RlciBURVhULVNwYWx0ZSAnJS0uMTkycycgd2lyZCBpbiBkZXIgU2NobMO8c3NlbGRlZmluaXRpb24gb2huZSBTY2hsw7xzc2VsbMOkbmdlbmFuZ2FiZSB2ZXJ3ZW5kZXQAQWxsZSBUZWlsZSBlaW5lcyBQUklNQVJZIEtFWSBtw7xzc2VuIGFscyBOT1QgTlVMTCBkZWZpbmllcnQgc2Vpbi4gV2VubiBOVUxMIGluIGVpbmVtIFNjaGzDvHNzZWwgYmVuw7Z0aWd0IHdpcmQsIG11c3MgZWluIFVOSVFVRS1TY2hsw7xzc2VsIHZlcndlbmRldCB3ZXJkZW4ARXJnZWJuaXMgYmVzdGVodCBhdXMgbWVociBhbHMgZWluZXIgWmVpbGUARGllc2VyIFRhYmVsbGVudHlwIGJlbsO2dGlndCBlaW5lbiBQcmltw6Ryc2NobMO8c3NlbCAoUFJJTUFSWSBLRVkpAERpZXNlIE15U1FMLVZlcnNpb24gaXN0IG5pY2h0IG1pdCBSQUlELVVudGVyc3TDvHR6dW5nIGtvbXBpbGllcnQATXlTUUwgbMOkdWZ0IGltIHNpY2hlcmVuIEFrdHVhbGlzaWVydW5nc21vZHVzIChzYWZlIHVwZGF0ZSBtb2RlKS4gU2llIGhhYmVuIHZlcnN1Y2h0LCBlaW5lIFRhYmVsbGUgenUgYWt0dWFsaXNpZXJlbiwgb2huZSBpbiBkZXIgV0hFUkUtS2xhdXNlbCBlaW4gS0VZLUZlbGQgYW56dWdlYmVuLiAlcwBTY2hsw7xzc2VsICclLS4xOTJzJyBleGlzdGllcnQgaW4gZGVyIFRhYmVsbGUgJyUtLjE5MnMnIG5pY2h0AEthbm4gVGFiZWxsZSBuaWNodCDDtmZmbmVuAERpZSBTcGVpY2hlci1FbmdpbmUgZsO8ciBkaWVzZSBUYWJlbGxlIHVudGVyc3TDvHR6dCBrZWluICVzAFNpZSBkw7xyZmVuIGRpZXNlbiBCZWZlaGwgbmljaHQgaW4gZWluZXIgVHJhbnNha3Rpb24gYXVzZsO8aHJlbgBGZWhsZXIgJWQgLSAnJS0uMTkycycgYmVpbSBDT01NSVQARmVobGVyICVkIC0gJyUtLjE5MnMnIGJlaW0gUk9MTEJBQ0sARmVobGVyICVkIGJlaSBGTFVTSF9MT0dTAEZlaGxlciAlZCBiZWkgQ0hFQ0tQT0lOVABBYmJydWNoIGRlciBWZXJiaW5kdW5nICV1IHp1ciBEYXRlbmJhbmsgJyUtLjE5MnMnLiBCZW51dHplcjogJyUtLjQ4cycsIEhvc3Q6ICclLS4yNTVzJyAoJS0uNjRzKQBEaWUgU3BlaWNoZXItRW5naW5lIGbDvHIgZGllIFRhYmVsbGUgdW50ZXJzdMO8dHp0IGtlaW5lbiBiaW7DpHJlbiBUYWJlbGxlbi1EdW1wAEJpbmxvZyBnZXNjaGxvc3Nlbi4gS2FubiBSRVNFVCBNQVNURVIgbmljaHQgYXVzZsO8aHJlbgBOZXVlcnN0ZWxsdW5nIGRlcyBJbmRleCBkZXIgRHVtcC1UYWJlbGxlICclLS4xOTJzJyBmZWhsZ2VzY2hsYWdlbgBGZWhsZXIgdm9tIE1hc3RlcjogJyUtLjY0cycATmV0emZlaGxlciBiZWltIExlc2VuIHZvbSBNYXN0ZXIATmV0emZlaGxlciBiZWltIFNjaHJlaWJlbiB6dW0gTWFzdGVyAEthbm4ga2VpbmVuIEZVTExURVhULUluZGV4IGZpbmRlbiwgZGVyIGRlciBGZWxkbGlzdGUgZW50c3ByaWNodABLYW5uIGRlbiBhbmdlZ2ViZW5lbiBCZWZlaGwgd2VnZW4gZWluZXIgYWt0aXZlbiBUYWJlbGxlbnNwZXJyZSBvZGVyIGVpbmVyIGFrdGl2ZW4gVHJhbnNha3Rpb24gbmljaHQgYXVzZsO8aHJlbgBVbmJla2FubnRlIFN5c3RlbXZhcmlhYmxlICclLS42NHMnAFRhYmVsbGUgJyUtLjE5MnMnIGlzdCBhbHMgZGVmZWt0IG1hcmtpZXJ0IHVuZCBzb2xsdGUgcmVwYXJpZXJ0IHdlcmRlbgBUYWJlbGxlICclLS4xOTJzJyBpc3QgYWxzIGRlZmVrdCBtYXJraWVydCB1bmQgZGVyIGxldHp0ZSAoYXV0b21hdGlzY2hlPykgUmVwYXJhdHVydmVyc3VjaCBzY2hsdWcgZmVobADDhG5kZXJ1bmdlbiBhbiBlaW5pZ2VuIG5pY2h0IHRyYW5zYWt0aW9uYWxlbiBUYWJlbGxlbiBrb25udGVuIG5pY2h0IHp1csO8Y2tnZXJvbGx0IHdlcmRlbgBUcmFuc2FrdGlvbmVuLCBkaWUgYXVzIG1laHJlcmVuIEJlZmVobGVuIGJlc3RlaGVuLCBiZW7DtnRpZ3RlbiBtZWhyIGFscyAnbWF4X2JpbmxvZ19jYWNoZV9zaXplJyBCeXRlcyBhbiBTcGVpY2hlci4gQnR0ZSB2ZXJncsO2c3Nlcm4gU2llIGRpZXNlIFNlcnZlci1WYXJpYWJsZSB2ZXJzdWNoZW4gU2llIGVzIG5vY2ggZWlubWFsAERpZXNlIE9wZXJhdGlvbiBrYW5uIGJlaSBlaW5lbSBha3RpdmVuIFNsYXZlIG5pY2h0IGR1cmNoZ2Vmw7xocnQgd2VyZGVuLiBCaXR0ZSB6dWVyc3QgU1RPUCBTTEFWRSBhdXNmw7xocmVuAERpZXNlIE9wZXJhdGlvbiBiZW7DtnRpZ3QgZWluZW4gYWt0aXZlbiBTbGF2ZS4gQml0dGUgU2xhdmUga29uZmlndXJpZXJlbiB1bmQgbWl0dGVscyBTVEFSVCBTTEFWRSBha3RpdmllcmVuAERlciBTZXJ2ZXIgaXN0IG5pY2h0IGFscyBTbGF2ZSBrb25maWd1cmllcnQuIEJpdHRlIGluIGRlciBLb25maWd1cmF0aW9uc2RhdGVpIG9kZXIgbWl0dGVscyBDSEFOR0UgTUFTVEVSIFRPIGJlaGViZW4AS29ubnRlIE1hc3Rlci1JbmZvLVN0cnVrdHVyIG5pY2h0IGluaXRpYWxpc2llcmVuLiBXZWl0ZXJlIEZlaGxlcm1lbGR1bmdlbiBrw7ZubmVuIGltIE15U1FMLUVycm9yLUxvZyBlaW5nZXNlaGVuIHdlcmRlbgBLb25udGUgU2xhdmUtVGhyZWFkIG5pY2h0IHN0YXJ0ZW4uIEJpdHRlIFN5c3RlbS1SZXNzb3VyY2VuIMO8YmVycHLDvGZlbgBCZW51dHplciAnJS0uNjRzJyBoYXQgbWVociBhbHMgJ21heF91c2VyX2Nvbm5lY3Rpb25zJyBha3RpdmUgVmVyYmluZHVuZ2VuAEJlaSBTRVQgZMO8cmZlbiBudXIga29uc3RhbnRlIEF1c2Ryw7xja2UgdmVyd2VuZGV0IHdlcmRlbgBCZWltIFdhcnRlbiBhdWYgZWluZSBTcGVycmUgd3VyZGUgZGllIHp1bMOkc3NpZ2UgV2FydGV6ZWl0IMO8YmVyc2Nocml0dGVuLiBCaXR0ZSB2ZXJzdWNoZW4gU2llLCBkaWUgVHJhbnNha3Rpb24gbmV1IHp1IHN0YXJ0ZW4ARGllIEdlc2FtdHphaGwgZGVyIFNwZXJyZW4gw7xiZXJzY2hyZWl0ZXQgZGllIEdyw7bDn2UgZGVyIFNwZXJydGFiZWxsZQBXw6RocmVuZCBlaW5lciBSRUFELVVOQ09NTUlUVEVELVRyYW5zYWt0aW9uIGvDtm5uZW4ga2VpbmUgVVBEQVRFLVNwZXJyZW4gYW5nZWZvcmRlcnQgd2VyZGVuAERST1AgREFUQUJBU0UgaXN0IG5pY2h0IGVybGF1YnQsIHNvbGFuZ2UgZGVyIFRocmVhZCBlaW5lIGdsb2JhbGUgTGVzZXNwZXJyZSBow6RsdABDUkVBVEUgREFUQUJBU0UgaXN0IG5pY2h0IGVybGF1YnQsIHNvbGFuZ2UgZGVyIFRocmVhZCBlaW5lIGdsb2JhbGUgTGVzZXNwZXJyZSBow6RsdABGYWxzY2hlIEFyZ3VtZW50ZSBmw7xyICVzACclLS40OHMnQCclLS42NHMnIGlzdCBuaWNodCBiZXJlY2h0aWd0LCBuZXVlIEJlbnV0emVyIGhpbnp1enVmw7xnZW4ARmFsc2NoZSBUYWJlbGxlbmRlZmluaXRpb24uIEFsbGUgTUVSR0UtVGFiZWxsZW4gbcO8c3NlbiBzaWNoIGluIGRlcnNlbGJlbiBEYXRlbmJhbmsgYmVmaW5kZW4AQmVpbSBWZXJzdWNoLCBlaW5lIFNwZXJyZSBhbnp1Zm9yZGVybiwgaXN0IGVpbiBEZWFkbG9jayBhdWZnZXRyZXRlbi4gVmVyc3VjaGVuIFNpZSwgZGllIFRyYW5zYWt0aW9uIG5ldSB6dSBzdGFydGVuAERlciB2ZXJ3ZW5kZXRlIFRhYmVsbGVudHlwIHVudGVyc3TDvHR6dCBrZWluZSBGVUxMVEVYVC1JbmRpemVzAEZyZW1kc2NobMO8c3NlbC1CZXNjaHLDpG5rdW5nIGthbm4gbmljaHQgaGluenVnZWbDvGd0IHdlcmRlbgBIaW56dWbDvGdlbiBvZGVyIEFrdHVhbGlzaWVyZW4gZWluZXMgS2luZC1EYXRlbnNhdHplcyBzY2hsdWcgYXVmZ3J1bmQgZWluZXIgRnJlbWRzY2hsw7xzc2VsLUJlc2NocsOkbmt1bmcgZmVobABMw7ZzY2hlbiBvZGVyIEFrdHVhbGlzaWVyZW4gZWluZXMgRWx0ZXJuLURhdGVuc2F0emVzIHNjaGx1ZyBhdWZncnVuZCBlaW5lciBGcmVtZHNjaGzDvHNzZWwtQmVzY2hyw6Rua3VuZyBmZWhsAEZlaGxlciBiZWkgZGVyIFZlcmJpbmR1bmcgenVtIE1hc3RlcjogJS0uMTI4cwBCZWltIEF1c2bDvGhyZW4gZWluZXIgQWJmcmFnZSBhdWYgZGVtIE1hc3RlciB0cmF0IGVpbiBGZWhsZXIgYXVmOiAlLS4xMjhzAEZlaGxlciBiZWltIEF1c2bDvGhyZW4gZGVzIEJlZmVobHMgJXM6ICUtLjEyOHMARmFsc2NoZSBWZXJ3ZW5kdW5nIHZvbiAlcyB1bmQgJXMARGllIHZlcndlbmRldGVuIFNFTEVDVC1CZWZlaGxlIGxpZWZlcm4gdW50ZXJzY2hpZWRsaWNoZSBBbnphaGxlbiB2b24gRmVsZGVybiB6dXLDvGNrAEF1Z3J1bmQgZWluZXMgUkVBRC1MT0NLLUtvbmZsaWt0cyBrYW5uIGRpZSBBYmZyYWdlIG5pY2h0IGF1c2dlZsO8aHJ0IHdlcmRlbgBEaWUgZ2xlaWNoemVpdGlnZSBWZXJ3ZW5kdW5nIHZvbiBUYWJlbGxlbiBtaXQgdW5kIG9obmUgVHJhbnNha3Rpb25zdW50ZXJzdMO8dHp1bmcgaXN0IGRlYWt0aXZpZXJ0AE9wdGlvbiAnJXMnIHdpcmQgaW0gQmVmZWhsIHp3ZWltYWwgdmVyd2VuZGV0AEJlbnV0emVyICclLS42NHMnIGhhdCBkaWUgUmVzc291cmNlbmJlc2NocsOkbmt1bmcgJyVzJyDDvGJlcnNjaHJpdHRlbiAoYWt0dWVsbGVyIFdlcnQ6ICVsZCkAS2VpbiBadWdyaWZmLiBIaWVyZsO8ciB3aXJkIGRpZSBCZXJlY2h0aWd1bmcgJS0uMTI4cyBiZW7DtnRpZ3QAVmFyaWFibGUgJyUtLjY0cycgaXN0IGVpbmUgbG9rYWxlIFZhcmlhYmxlIHVuZCBrYW5uIG5pY2h0IG1pdCBTRVQgR0xPQkFMIHZlcsOkbmRlcnQgd2VyZGVuAFZhcmlhYmxlICclLS42NHMnIGlzdCBlaW5lIGdsb2JhbGUgVmFyaWFibGUgdW5kIG11c3MgbWl0IFNFVCBHTE9CQUwgdmVyw6RuZGVydCB3ZXJkZW4AVmFyaWFibGUgJyUtLjY0cycgaGF0IGtlaW5lbiBWb3JnYWJld2VydABWYXJpYWJsZSAnJS0uNjRzJyBrYW5uIG5pY2h0IGF1ZiAnJS0uMjAwcycgZ2VzZXR6dCB3ZXJkZW4ARmFsc2NoZXIgQXJndW1lbnR0eXAgZsO8ciBWYXJpYWJsZSAnJS0uNjRzJwBWYXJpYWJsZSAnJS0uNjRzJyBrYW5uIG51ciB2ZXLDpG5kZXJ0LCBuaWNodCBnZWxlc2VuIHdlcmRlbgBGYWxzY2hlIFZlcndlbmR1bmcgb2RlciBQbGF0emllcnVuZyB2b24gJyVzJwBEaWVzZSBNeVNRTC1WZXJzaW9uIHVudGVyc3TDvHR6dCAnJXMnIG5pY2h0AFNjaHdlcmVyIEZlaGxlciAlZDogJyUtLjUxMnMgdm9tIE1hc3RlciBiZWltIExlc2VuIGRlcyBiaW7DpHJlbiBMb2dzAFNsYXZlLVNRTC1UaHJlYWQgaGF0IGRpZSBBYmZyYWdlIGF1ZmdydW5kIHZvbiByZXBsaWNhdGUtKi10YWJsZS1SZWdlbG4gaWdub3JpZXJ0AFZhcmlhYmxlICclLS4xOTJzJyBpc3QgZWluZSAlcy1WYXJpYWJsZQBGYWxzY2hlIEZyZW1kc2NobMO8c3NlbC1EZWZpbml0aW9uIGbDvHIgJyUtLjE5MnMnOiAlcwBTY2hsw7xzc2VsLSB1bmQgVGFiZWxsZW52ZXJ3ZWlzIHBhc3NlbiBuaWNodCB6dXNhbW1lbgBPcGVyYW5kIHNvbGx0ZSAlZCBTcGFsdGUobikgZW50aGFsdGVuAFVudGVyYWJmcmFnZSBsaWVmZXJ0ZSBtZWhyIGFscyBlaW5lbiBEYXRlbnNhdHogenVyw7xjawBVbmJla2FubnRlciBQcmVwYXJlZC1TdGF0ZW1lbnQtSGFuZGxlciAoJS4qcykgZsO8ciAlcyBhbmdlZ2ViZW4ARGllIEhpbGZlLURhdGVuYmFuayBpc3QgYmVzY2jDpGRpZ3Qgb2RlciBleGlzdGllcnQgbmljaHQAWnlrbGlzY2hlciBWZXJ3ZWlzIGluIFVudGVyYWJmcmFnZW4ARmVsZCAnJXMnIHdpcmQgdm9uICVzIG5hY2ggJXMgdW1nZXdhbmRlbHQAVmVyd2VpcyAnJS0uNjRzJyB3aXJkIG5pY2h0IHVudGVyc3TDvHR6dCAoJXMpAEbDvHIgamVkZSBhYmdlbGVpdGV0ZSBUYWJlbGxlIG11c3MgZWluIGVpZ2VuZXIgQWxpYXMgYW5nZWdlYmVuIHdlcmRlbgBTZWxlY3QgJXUgd3VyZGUgd8OkaHJlbmQgZGVyIE9wdGltaWVydW5nIHJlZHV6aWVydABUYWJlbGxlICclLS4xOTJzJywgZGllIGluIGVpbmVtIGRlciBTRUxFQ1QtQmVmZWhsZSB2ZXJ3ZW5kZXQgd3VyZGUsIGthbm4gbmljaHQgaW4gJS0uMzJzIHZlcndlbmRldCB3ZXJkZW4AQ2xpZW50IHVudGVyc3TDvHR6dCBkYXMgdm9tIFNlcnZlciBlcndhcnRldGUgQXV0aGVudGlmaXppZXJ1bmdzcHJvdG9rb2xsIG5pY2h0LiBCaXR0ZSBha3R1YWxpc2llcmVuIFNpZSBJaHJlbiBNeVNRTC1DbGllbnQAQWxsZSBUZWlsZSBlaW5lcyBTUEFUSUFMLUluZGV4IG3DvHNzZW4gYWxzIE5PVCBOVUxMIGRla2xhcmllcnQgc2VpbgBDT0xMQVRJT04gJyVzJyBpc3QgZsO8ciBDSEFSQUNURVIgU0VUICclcycgdW5nw7xsdGlnAFNsYXZlIGzDpHVmdCBiZXJlaXRzAFNsYXZlIHd1cmRlIGJlcmVpdHMgYW5nZWhhbHRlbgBVbmtvbXByaW1pZXJ0ZSBEYXRlbiBzaW5kIHp1IGdyb8OfLiBEaWUgbWF4aW1hbGUgR3LDtsOfZSBiZXRyw6RndCAlZCAod2FocnNjaGVpbmxpY2ggd3VyZGUgZGllIEzDpG5nZSBkZXIgdW5rb21wcmltaWVydGVuIERhdGVuIGJlc2Now6RkaWd0KQBaTElCOiBOaWNodCBnZW51ZyBTcGVpY2hlcgBaTElCOiBJbSBBdXNnYWJlcHVmZmVyIGlzdCBuaWNodCBnZW51ZyBQbGF0eiB2b3JoYW5kZW4gKHdhaHJzY2hlaW5saWNoIHd1cmRlIGRpZSBMw6RuZ2UgZGVyIHVua29tcHJpbWllcnRlbiBEYXRlbiBiZXNjaMOkZGlndCkAWkxJQjogRWluZ2FiZWRhdGVuIGJlc2Now6RkaWd0AFJvdyAldSB3YXMgY3V0IGJ5IEdST1VQX0NPTkNBVCgpAFplaWxlICVsZCBlbnRow6RsdCBuaWNodCBmw7xyIGFsbGUgRmVsZGVyIERhdGVuAFplaWxlICVsZCBnZWvDvHJ6dCwgZGllIFplaWxlIGVudGhpZWx0IG1laHIgRGF0ZW4sIGFscyBlcyBFaW5nYWJlZmVsZGVyIGdpYnQARmVsZCBhdWYgVm9yZ2FiZXdlcnQgZ2VzZXR6dCwgZGEgTlVMTCBmw7xyIE5PVC1OVUxMLUZlbGQgJyVzJyBpbiBaZWlsZSAlbGQgYW5nZWdlYmVuAE91dCBvZiByYW5nZSB2YWx1ZSBmb3IgY29sdW1uICclcycgYXQgcm93ICVsZABEYXRlbiBhYmdlc2Nobml0dGVuIGbDvHIgRmVsZCAnJXMnIGluIFplaWxlICVsZABGw7xyIFRhYmVsbGUgJyVzJyB3aXJkIFNwZWljaGVyLUVuZ2luZSAlcyBiZW51dHp0AFVuZXJsYXVidGUgTWlzY2h1bmcgdm9uIFNvcnRpZXJyZWloZW5mb2xnZW4gKCVzLCAlcykgdW5kICglcywgJXMpIGbDvHIgT3BlcmF0aW9uICclcycAS2FubiBlaW5lbiBvZGVyIG1laHJlcmUgZGVyIGFuZ2VnZWJlbmVuIEJlbnV0emVyIG5pY2h0IGzDtnNjaGVuAEthbm4gbmljaHQgYWxsZSBCZXJlY2h0aWd1bmdlbiB3aWRlcnJ1ZmVuLCBkaWUgZsO8ciBlaW5lbiBvZGVyIG1laHJlcmUgQmVudXR6ZXIgZ2V3w6RocnQgd3VyZGVuAFVuZXJsYXVidGUgTWlzY2h1bmcgdm9uIFNvcnRpZXJyZWloZW5mb2xnZW4gKCVzLCAlcyksICglcywgJXMpLCAoJXMsICVzKSBmw7xyIE9wZXJhdGlvbiAnJXMnAFVuZXJsYXVidGUgTWlzY2h1bmcgdm9uIFNvcnRpZXJyZWloZW5mb2xnZW4gZsO8ciBPcGVyYXRpb24gJyVzJwBWYXJpYWJsZSAnJS0uNjRzJyBpc3Qga2VpbmUgVmFyaWFibGVuLUtvbXBvbmVudGUgKGthbm4gbmljaHQgYWxzIFhYWFgudmFyaWFibGVuX25hbWUgdmVyd2VuZGV0IHdlcmRlbikAVW5iZWthbm50ZSBTb3J0aWVycmVpaGVuZm9sZ2U6ICclLS42NHMnAFNTTC1QYXJhbWV0ZXIgaW4gQ0hBTkdFIE1BU1RFUiB3ZXJkZW4gaWdub3JpZXJ0LCB3ZWlsIGRpZXNlciBNeVNRTC1TbGF2ZSBvaG5lIFNTTC1VbnRlcnN0w7x0enVuZyBrb21waWxpZXJ0IHd1cmRlLiBTaWUga8O2bm5lbiBhYmVyIHNww6R0ZXIgdmVyd2VuZGV0IHdlcmRlbiwgd2VubiBlaW4gTXlTUUwtU2xhdmUgbWl0IFNTTCBnZXN0YXJ0ZXQgd2lyZABTZXJ2ZXIgbMOkdWZ0IGltIE1vZHVzIC0tc2VjdXJlLWF1dGgsIGFiZXIgJyVzJ0AnJXMnIGhhdCBlaW4gUGFzc3dvcnQgaW0gYWx0ZW4gRm9ybWF0LiBCaXR0ZSBQYXNzd29ydCBpbnMgbmV1ZSBGb3JtYXQgw6RuZGVybgBGZWxkIG9kZXIgVmVyd2VpcyAnJS0uMTkycyVzJS0uMTkycyVzJS0uMTkycycgaW0gU0VMRUNULUJlZmVobCBOci4gJWQgd3VyZGUgaW0gU0VMRUNULUJlZmVobCBOci4gJWQgYXVmZ2Vsw7ZzdABGYWxzY2hlciBQYXJhbWV0ZXIgb2RlciBmYWxzY2hlIEtvbWJpbmF0aW9uIHZvbiBQYXJhbWV0ZXJuIGbDvHIgU1RBUlQgU0xBVkUgVU5USUwARXMgd2lyZCBlbXBmb2hsZW4sIG1pdCAtLXNraXAtcmVwbGljYS1zdGFydCB6dSBzdGFydGVuLCB3ZW5uIG1pdCBTVEFSVCBTTEFWRSBVTlRJTCBlaW5lIFNjaHJpdHQtZsO8ci1TY2hyaXR0LVJlcGxpa2F0aW9uIGF1c2dlZsO8aHJ0IHdpcmQuIEFuc29uc3RlbiBnaWJ0IGVzIFByb2JsZW1lLCB3ZW5uIGVpbiBTbGF2ZS1TZXJ2ZXIgdW5lcndhcnRldCBuZXUgc3RhcnRldABTUUwtVGhyZWFkIHNvbGwgbmljaHQgZ2VzdGFydGV0IHdlcmRlbi4gRGFoZXIgd2VyZGVuIFVOVElMLU9wdGlvbmVuIGlnbm9yaWVydABGYWxzY2hlciBJbmRleG5hbWUgJyUtLjEwMHMnAEZhbHNjaGVyIEthdGFsb2duYW1lICclLS4xMDBzJwDDhG5kZXJ1bmcgZGVyIFF1ZXJ5LUNhY2hlLUdyw7bDn2UgYXVmICVsdSBmZWhsZ2VzY2hsYWdlbjsgbmV1ZSBRdWVyeS1DYWNoZS1HcsO2w59lIGlzdCAlbHUARmVsZCAnJS0uMTkycycga2FubiBuaWNodCBUZWlsIGVpbmVzIEZVTExURVhULUluZGV4IHNlaW4AVW5iZWthbm50ZXIgU2NobMO8c3NlbC1DYWNoZSAnJS0uMTAwcycATXlTUUwgd3VyZGUgbWl0IC0tc2tpcC1uYW1lLXJlc29sdmUgZ2VzdGFydGV0LiBEaWVzZSBPcHRpb24gZGFyZiBuaWNodCB2ZXJ3ZW5kZXQgd2VyZGVuLCBkYW1pdCBkaWVzZSBSZWNodGV2ZXJnYWJlIG3DtmdsaWNoIGlzdABVbmJla2FubnRlIFNwZWljaGVyLUVuZ2luZSAnJXMnACclcycgaXN0IHZlcmFsdGV0LiBCaXR0ZSBiZW51dHplbiBTaWUgJyVzJwBEaWUgWmllbHRhYmVsbGUgJS0uMTAwcyB2b24gJXMgaXN0IG5pY2h0IGFrdHVhbGlzaWVyYmFyAERhcyBGZWF0dXJlICclcycgaXN0IGF1c2dlc2NoYWx0ZXQsIFNpZSBtw7xzc2VuIE15U1FMIG1pdCAnJXMnIMO8YmVyc2V0emVuLCBkYW1pdCBlcyB2ZXJmw7xnYmFyIGlzdABEZXIgTXlTUUwtU2VydmVyIGzDpHVmdCBtaXQgZGVyIE9wdGlvbiAlcyB1bmQga2FubiBkaWVzZSBBbndlaXN1bmcgZGVzd2VnZW4gbmljaHQgYXVzZsO8aHJlbgBGZWxkICclLS4xMDBzJyBoYXQgZG9wcGVsdGVuIFdlcnQgJyUtLjY0cycgaW4gJXMARmFsc2NoZXIgJS0uNjRzLVdlcnQgZ2Vrw7xyenQ6ICclLS4xMjhzJwBGZWhsZXJoYWZ0ZSBUYWJlbGxlbmRlZmluaXRpb24uIEVzIGthbm4gbnVyIGVpbmUgZWluemlnZSBUSU1FU1RBTVAtU3BhbHRlIG1pdCBDVVJSRU5UX1RJTUVTVEFNUCBhbHMgREVGQVVMVCBvZGVyIGluIGVpbmVyIE9OLVVQREFURS1LbGF1c2VsIGdlYmVuAFVuZ8O8bHRpZ2UgT04tVVBEQVRFLUtsYXVzZWwgZsO8ciBTcGFsdGUgJyUtLjE5MnMnAERpZXNlciBCZWZlaGwgd2lyZCBpbSBQcm90b2tvbGwgZsO8ciB2b3JiZXJlaXRldGUgQW53ZWlzdW5nZW4gbm9jaCBuaWNodCB1bnRlcnN0w7x0enQARmVobGVyICVkICclLS4xMDBzJyB2b24gJXMAVGVtcG9yw6RyZXIgRmVobGVyICVkICclLS4xMDBzJyB2b24gJXMAVW5iZWthbm50ZSBvZGVyIGZhbHNjaGUgWmVpdHpvbmU6ICclLS42NHMnAFVuZ8O8bHRpZ2VyIFRJTUVTVEFNUC1XZXJ0IGluIEZlbGQgJyVzJywgWmVpbGUgJWxkAFVuZ8O8bHRpZ2VyICVzLVplaWNoZW4tU3RyaW5nOiAnJS42NHMnAEVyZ2VibmlzIHZvbiAlcygpIHdhciBncsO2w59lciBhbHMgbWF4X2FsbG93ZWRfcGFja2V0ICglbGQpIEJ5dGVzIHVuZCB3dXJkZSBkZXNoYWxiIGdla8O8cnp0AFdpZGVyc3Byw7xjaGxpY2hlIERla2xhcmF0aW9uZW46ICclcyVzJyB1bmQgJyVzJXMnAEthbm4ga2VpbiAlcyBpbm5lcmhhbGIgZWluZXIgYW5kZXJlbiBnZXNwZWljaGVydGVuIFJvdXRpbmUgZXJ6ZXVnZW4AJXMgJXMgZXhpc3RpZXJ0IGJlcmVpdHMAJXMgJXMgZXhpc3RpZXJ0IG5pY2h0AERST1AgJXMgJXMgaXN0IGZlaGxnZXNjaGxhZ2VuAENSRUFURSAlcyAlcyBpc3QgZmVobGdlc2NobGFnZW4AJXMgb2huZSBwYXNzZW5kZSBNYXJrZTogJXMATmV1ZGVmaW5pdGlvbiBkZXIgTWFya2UgJXMARW5kZS1NYXJrZSAlcyBvaG5lIHp1Z2Vow7ZyaWdlbiBBbmZhbmcAWnVncmlmZiBhdWYgbmljaHRpbml0aWFsaXNpZXJ0ZSBWYXJpYWJsZSAlcwBQUk9DRURVUkUgJXMga2FubiBpbSBnZWdlYmVuZW4gS29udGV4dCBrZWluZSBFcmdlYm5pc21lbmdlIHp1csO8Y2tnZWJlbgBSRVRVUk4gaXN0IG51ciBpbm5lcmhhbGIgZWluZXIgRlVOQ1RJT04gZXJsYXVidAAlcyBpc3QgaW4gZ2VzcGVpY2hlcnRlbiBQcm96ZWR1cmVuIG5pY2h0IGVybGF1YnQARGFzIFVwZGF0ZS1Mb2cgaXN0IHZlcmFsdGV0IHVuZCB3dXJkZSBkdXJjaCBkYXMgQmluw6RyLUxvZyBlcnNldHp0LiBTRVQgU1FMX0xPR19VUERBVEUgd2lyZCBpZ25vcmllcnQuAERhcyBVcGRhdGUtTG9nIGlzdCB2ZXJhbHRldCB1bmQgd3VyZGUgZHVyY2ggZGFzIEJpbsOkci1Mb2cgZXJzZXR6dC4gU0VUIFNRTF9MT0dfVVBEQVRFIHd1cmRlIGluIFNFVCBTUUxfTE9HX0JJTiDDvGJlcnNldHp0LgBBdXNmw7xocnVuZyBkZXIgQWJmcmFnZSB3dXJkZSB1bnRlcmJyb2NoZW4ARmFsc2NoZSBBbnphaGwgdm9uIEFyZ3VtZW50ZW4gZsO8ciAlcyAlczsgZXJ3YXJ0ZSAldSwgZXJoYWx0ZSAldQBVbmRlZmluaWVydGUgQ09ORElUSU9OOiAlcwBLZWluIFJFVFVSTiBpbiBGVU5DVElPTiAlcyBnZWZ1bmRlbgBGVU5DVElPTiAlcyBlbmRldGUgb2huZSBSRVRVUk4AQ3Vyc29yLUFud2Vpc3VuZyBtdXNzIGVpbiBTRUxFQ1Qgc2VpbgBDdXJzb3ItU0VMRUNUIGRhcmYga2VpbiBJTlRPIGhhYmVuAFVuZGVmaW5pZXJ0ZXIgQ1VSU09SOiAlcwBDdXJzb3IgaXN0IHNjaG9uIGdlw7ZmZm5ldABDdXJzb3IgaXN0IG5pY2h0IGdlw7ZmZm5ldABOaWNodCBkZWtsYXJpZXJ0ZSBWYXJpYWJsZTogJXMARmFsc2NoZSBBbnphaGwgdm9uIEZFVENILVZhcmlhYmxlbgBLZWluZSBEYXRlbiAtIG51bGwgWmVpbGVuIGdlaG9sdCAoZmV0Y2gpLCBhdXNnZXfDpGhsdCBvZGVyIHZlcmFyYmVpdGV0AERvcHBlbHRlciBQYXJhbWV0ZXI6ICVzAERvcHBlbHRlIFZhcmlhYmxlOiAlcwBEb3BwZWx0ZSBCZWRpbmd1bmc6ICVzAERvcHBlbHRlciBDdXJzb3I6ICVzAEFMVEVSICVzICVzIGZlaGxnZXNjaGxhZ2VuAFN1YnF1ZXJ5LVdlcnQgd2lyZCBuaWNodCB1bnRlcnN0w7x0enQAJXMgaXN0IGluIGdlc3BlaWNoZXJ0ZW4gRnVua3Rpb25lbiB1bmQgaW4gVHJpZ2dlcm4gbmljaHQgZXJsYXVidABEZWtsYXJhdGlvbiBlaW5lciBWYXJpYWJsZW4gb2RlciBlaW5lciBCZWRpbmd1bmcgbmFjaCBkZXIgRGVrbGFyYXRpb24gZWluZXMgQ3Vyc29ycyBvZGVyIGVpbmVzIEhhbmRsZXJzAERla2xhcmF0aW9uIGVpbmVzIEN1cnNvcnMgbmFjaCBkZXIgRGVrbGFyYXRpb24gZWluZXMgSGFuZGxlcnMARmFsbCBmw7xyIENBU0UtQW53ZWlzdW5nIG5pY2h0IGdlZnVuZGVuAEtvbmZpZ3VyYXRpb25zZGF0ZWkgJyUtLjE5MnMnIGlzdCB6dSBncm/DnwBOaWNodCB3b2hsZ2Vmb3JtdGVyIERhdGVpdHlwLUhlYWRlciBpbiBEYXRlaSAnJS0uMTkycycAVW5lcndhcnRldGVzIERhdGVpZW5kZSBiZWltIFBhcnNlbiBkZXMgS29tbWVudGFycyAnJS0uMjAwcycARmVobGVyIGJlaW0gUGFyc2VuIGRlcyBQYXJhbWV0ZXJzICclLS4xOTJzJyAoWmVpbGU6ICclLS4xOTJzJykAVW5lcndhcnRldGVzIERhdGVpZW5kZSBiZWltIMOcYmVyc3ByaW5nZW4gZGVzIHVuYmVrYW5udGVuIFBhcmFtZXRlcnMgJyUtLjE5MnMnAEVYUExBSU4vU0hPVyBrYW5uIG5pY2h0IHZlcmxhbmd0IHdlcmRlbi4gUmVjaHRlIGbDvHIgenVncnVuZGUgbGllZ2VuZGUgVGFiZWxsZSBmZWhsZW4ARGF0ZWkgJyUtLjE5MnMnIGhhdCB1bmJla2FubnRlbiBUeXAgJyUtLjY0cycgaW0gSGVhZGVyACclLS4xOTJzLiUtLjE5MnMnIGlzdCBuaWNodCAlcwBGZWxkICclLS4xOTJzJyBpc3QgbmljaHQgYWt0dWFsaXNpZXJiYXIAU0VMRUNUIGRlciBWaWV3IGVudGjDpGx0IGVpbmUgU3VicXVlcnkgaW4gZGVyIEZST00tS2xhdXNlbABTRUxFQ1QgZGVyIFZpZXcgZW50aMOkbHQgZWluZSAnJXMnLUtsYXVzZWwAU0VMRUNUIGRlciBWaWV3IGVudGjDpGx0IGVpbmUgVmFyaWFibGUgb2RlciBlaW5lbiBQYXJhbWV0ZXIAU0VMRUNUIGRlciBWaWV3IHZlcndlaXN0IGF1ZiBlaW5lIHRlbXBvcsOkcmUgVGFiZWxsZSAnJS0uMTkycycAU0VMRUNULSB1bmQgRmVsZGxpc3RlIGRlciBWaWV3cyBoYWJlbiB1bnRlcnNjaGllZGxpY2hlIEFuemFobGVuIHZvbiBTcGFsdGVuAFZpZXctTWVyZ2UtQWxnb3JpdGhtdXMga2FubiBoaWVyIG1vbWVudGFuIG5pY2h0IHZlcndlbmRldCB3ZXJkZW4gKHVuZGVmaW5pZXJ0ZXIgQWxnb3JpdGhtdXMgd2lyZCBhbmdlbm9tbWVuKQBEaWUgYWt0dWFsaXNpZXJ0ZSBWaWV3IGVudGjDpGx0IG5pY2h0IGRlbiB2b2xsc3TDpG5kaWdlbiBTY2hsw7xzc2VsIGRlciB6dWdydW5kZSBsaWVnZW5kZW4gVGFiZWxsZQBWaWV3ICclLS4xOTJzLiUtLjE5MnMnIHJlZmVyZW5jZXMgaW52YWxpZCB0YWJsZShzKSBvciBjb2x1bW4ocykgb3IgZnVuY3Rpb24ocykgb3IgZGVmaW5lci9pbnZva2VyIG9mIHZpZXcgbGFjayByaWdodHMgdG8gdXNlIHRoZW0AS2FubiBlaW5lICVzIG5pY2h0IHZvbiBpbm5lcmhhbGIgZWluZXIgYW5kZXJlbiBnZXNwZWljaGVydGVuIFJvdXRpbmUgbMO2c2NoZW4gb2RlciDDpG5kZXJuAEdPVE8gaXN0IGltIEhhbmRsZXIgZWluZXIgZ2VzcGVpY2hlcnRlbiBQcm96ZWR1ciBuaWNodCBlcmxhdWJ0AFRyaWdnZXIgZXhpc3RpZXJ0IGJlcmVpdHMAVHJpZ2dlciBleGlzdGllcnQgbmljaHQAJyUtLjE5MnMnIGRlcyBUcmlnZ2VycyBpc3QgVmlldyBvZGVyIHRlbXBvcsOkcmUgVGFiZWxsZQBBa3R1YWxpc2llcmVuIGVpbmVyICVzLVplaWxlIGlzdCBpbiBlaW5lbSAlcy1UcmlnZ2VyIG5pY2h0IGVybGF1YnQARXMgZ2lidCBrZWluZSAlcy1aZWlsZSBpbSAlcy1UcmlnZ2VyAEZlbGQgJyUtLjE5MnMnIGhhdCBrZWluZW4gVm9yZ2FiZXdlcnQARGl2aXNpb24gZHVyY2ggMABGYWxzY2hlciAlLS4zMnMtV2VydDogJyUtLjEyOHMnIGbDvHIgRmVsZCAnJS4xOTJzJyBpbiBaZWlsZSAlbGQATmljaHQgenVsw6Rzc2lnZXIgJXMtV2VydCAnJS0uMTkycycgYmVpbSBQYXJzZW4gZ2VmdW5kZW4AQ0hFQ0sgT1BUSU9OIGF1ZiBuaWNodC1ha3R1YWxpc2llcmJhcmVtIFZpZXcgJyUtLjE5MnMuJS0uMTkycycAQ0hFQ0sgT1BUSU9OIGZlaGxnZXNjaGxhZ2VuOiAnJS0uMTkycy4lLS4xOTJzJwBCZWZlaGwgJS0uMTZzIG5pY2h0IHp1bMOkc3NpZyBmw7xyIEJlbnV0emVyICclLS40OHMnQCclLS42NHMnIGluIFJvdXRpbmUgJyUtLjE5MnMnAEJlcmVpbmlnZW4gYWx0ZXIgUmVsYWlzLUxvZ3MgZmVobGdlc2NobGFnZW46ICVzAFBhc3N3b3J0LUhhc2ggc29sbHRlIGVpbmUgSGV4ZGFlemltYWx6YWhsIG1pdCAlZCBTdGVsbGVuIHNlaW4AWmllbC1Mb2cgaW0gQmlubG9nLUluZGV4IG5pY2h0IGdlZnVuZGVuAEZlaGxlciBiZWltIExlc2VuIGRlciBMb2ctSW5kZXgtRGF0ZWkAU2VydmVyLUtvbmZpZ3VyYXRpb24gZXJsYXVidCBrZWluZSBCaW5sb2ctQmVyZWluaWd1bmcAZnNlZWsoKSBmZWhsZ2VzY2hsYWdlbgBTY2h3ZXJ3aWVnZW5kZXIgRmVobGVyIGJlaSBkZXIgTG9nLUJlcmVpbmlndW5nAEVpbiB6dSBiZXJlaW5pZ2VuZGVzIExvZyB3aXJkIGdlcmFkZSBiZW51dHp0LCBkYWhlciBrZWluZSBCZXJlaW5pZ3VuZwBVbmJla2FubnRlciBGZWhsZXIgYmVpIExvZy1CZXJlaW5pZ3VuZwBJbml0aWFsaXNpZXJ1bmcgZGVyIFJlbGFpcy1Mb2ctUG9zaXRpb24gZmVobGdlc2NobGFnZW46ICVzAFNpZSB2ZXJ3ZW5kZW4ga2VpbmUgQmluw6RybG9ncwBEaWUgU2NocmVpYndlaXNlICclLS42NHMnIGlzdCBmw7xyIGludGVybmUgWndlY2tlIGRlcyBNeVNRTC1TZXJ2ZXJzIHJlc2VydmllcnQAV1NBU3RhcnR1cCBmZWhsZ2VzY2hsYWdlbgBLYW5uIFByb3plZHVyZW4gbWl0IHVudGVyc2NoaWVkbGljaGVuIEdydXBwZW4gbm9jaCBuaWNodCB2ZXJhcmJlaXRlbgBTRUxFQ1QgbXVzcyBiZWkgZGllc2VyIFByb3plZHVyIGVpbiBHUk9VUCBCWSBoYWJlbgBLYW5uIGJlaSBkaWVzZXIgUHJvemVkdXIga2VpbmUgT1JERVItQlktS2xhdXNlbCB2ZXJ3ZW5kZW4AQmluw6RybG9ncyB1bmQgUmVwbGlrYXRpb24gdmVyaGluZGVybiBXZWNoc2VsIGRlcyBnbG9iYWxlbiBTZXJ2ZXJzICVzAEthbm4gRGF0ZWkgbmljaHQgYWJiaWxkZW46ICUtLjIwMHMsIEZlaGxlcjogJWQARmFsc2NoZSBtYWdpc2NoZSBaYWhsZW4gaW4gJS0uNjRzAFZvcmJlcmVpdGV0ZSBBbndlaXN1bmcgZW50aMOkbHQgenUgdmllbGUgUGxhdHpoYWx0ZXIATMOkbmdlIGRlcyBTY2hsw7xzc2VsdGVpbHMgJyUtLjE5MnMnIGthbm4gbmljaHQgMCBzZWluAFZpZXctVGV4dC1QcsO8ZnN1bW1lIGZlaGxnZXNjaGxhZ2VuAEthbm4gbmljaHQgbWVociBhbHMgZWluZSBCYXNpc3RhYmVsbGUgw7xiZXIgSm9pbi1WaWV3ICclLS4xOTJzLiUtLjE5MnMnIMOkbmRlcm4AS2FubiBuaWNodCBvaG5lIEZlbGRsaXN0ZSBpbiBKb2luLVZpZXcgJyUtLjE5MnMuJS0uMTkycycgZWluZsO8Z2VuAEthbm4gbmljaHQgYXVzIEpvaW4tVmlldyAnJS0uMTkycy4lLS4xOTJzJyBsw7ZzY2hlbgBPcGVyYXRpb24gJXMgc2NobHVnIGZlaGwgZsO8ciAlLjI1NnMAWEFFUl9OT1RBOiBVbmJla2FubnRlIFhJRABYQUVSX0lOVkFMOiBVbmfDvGx0aWdlIEFyZ3VtZW50ZSAob2RlciBuaWNodCB1bnRlcnN0w7x0enRlciBCZWZlaGwpAFhBRVJfUk1GQUlMOiBERXIgQmVmZWhsIGthbm4gbmljaHQgYXVzZ2Vmw7xocnQgd2VyZGVuLCB3ZW5uIGRpZSBnbG9iYWxlIFRyYW5zYWt0aW9uIGltIFp1c3RhbmQgJS42NHMgaXN0AFhBRVJfT1VUU0lERTogRWluaWdlIEFyYmVpdGVuIHdlcmRlbiBhdcOfZXJoYWxiIGRlciBnbG9iYWxlbiBUcmFuc2FrdGlvbiB2ZXJyaWNodGV0AFhBRVJfUk1FUlI6IFNjaHdlcndpZWdlbmRlciBGZWhsZXIgaW0gVHJhbnNha3Rpb25zendlaWcgLSBwcsO8ZmVuIFNpZSBJaHJlIERhdGVuIGF1ZiBLb25zaXN0ZW56AFhBX1JCUk9MTEJBQ0s6IFRyYW5zYWt0aW9uc3p3ZWlnIHd1cmRlIHp1csO8Y2tnZXJvbGx0AEVzIGdpYnQgZGllc2UgQmVyZWNodGlndW5nIGbDvHIgQmVudXR6ZXIgJyUtLjQ4cycgYXVmIEhvc3QgJyUtLjI1NXMnIGbDvHIgUm91dGluZSAnJS0uMTkycycgbmljaHQAR2V3w6RocnVuZyB2b24gRVhFQ1VURS0gdW5kIEFMVEVSLVJPVVRJTkUtUmVjaHRlbiBmZWhsZ2VzY2hsYWdlbgBSw7xja25haG1lIGFsbGVyIFJlY2h0ZSBmw7xyIGRpZSBnZWzDtnNjaHRlIFJvdXRpbmUgZmVobGdlc2NobGFnZW4ARGF0ZW4genUgbGFuZyBmw7xyIEZlbGQgJyVzJyBpbiBaZWlsZSAlbGQAVW5nw7xsdGlnZXIgU1FMU1RBVEU6ICclcycAJXM6IGJlcmVpdCBmw7xyIFZlcmJpbmR1bmdlbi4gVmVyc2lvbjogJyVzJyAgU29ja2V0OiAnJXMnICBQb3J0OiAlZCAgJXMAS2FubiBXZXJ0IGF1cyBEYXRlaSBtaXQgWmVpbGVuIGZlc3RlciBHcsO2w59lIG5pY2h0IGluIFZhcmlhYmxlIGxhZGVuAFNpZSBkw7xyZmVuIGtlaW5lbiBCZW51dHplciBtaXQgR1JBTlQgYW5sZWdlbgBGYWxzY2hlciAlLS4zMnMtV2VydDogJyUtLjEyOHMnIGbDvHIgRnVua3Rpb24gJS0uMzJzAFRhYmVsbGVuZGVmaW5pdGlvbiB3dXJkZSBnZcOkbmRlcnQsIGJpdHRlIHN0YXJ0ZW4gU2llIGRpZSBUcmFuc2FrdGlvbiBuZXUARG9wcGVsdGVyIEhhbmRsZXIgaW0gc2VsYmVuIEJsb2NrIGRla2xhcmllcnQAT1VULSBvZGVyIElOT1VULUFyZ3VtZW50ICVkIGbDvHIgUm91dGluZSAlcyBpc3Qga2VpbmUgVmFyaWFibGUAUsO8Y2tnYWJlIGVpbmVyIEVyZ2VibmlzbWVuZ2UgYXVzIGVpbmVyICVzIGlzdCBuaWNodCBlcmxhdWJ0AEthbm4ga2VpbiBHZW9tZXRyaWVvYmpla3QgYXVzIGRlbiBEYXRlbiBtYWNoZW4sIGRpZSBTaWUgZGVtIEdFT01FVFJZLUZlbGQgw7xiZXJnZWJlbiBoYWJlbgBFaW5lIFJvdXRpbmUsIGRpZSB3ZWRlciBOTyBTUUwgbm9jaCBSRUFEUyBTUUwgREFUQSBpbiBkZXIgRGVrbGFyYXRpb24gaGF0LCBzY2hsdWcgZmVobCB1bmQgQmluw6RybG9nZ2luZyBpc3QgYWt0aXYuIFdlbm4gTmljaHQtVHJhbnNha3Rpb25zLVRhYmVsbGVuIGFrdHVhbGlzaWVydCB3dXJkZW4sIGVudGjDpGx0IGRhcyBCaW7DpHJsb2cgaWhyZSDDhG5kZXJ1bmdlbiBuaWNodABEaWVzZSBSb3V0aW5lIGhhdCB3ZWRlciBERVRFUk1JTklTVElDLCBOTyBTUUwgbm9jaCBSRUFEUyBTUUwgREFUQSBpbiBkZXIgRGVrbGFyYXRpb24gdW5kIEJpbsOkcmxvZ2dpbmcgaXN0IGFrdGl2ICgqdmllbGxlaWNodCogc29sbHRlbiBTaWUgZGllIHdlbmlnZXIgc2ljaGVyZSBWYXJpYWJsZSBsb2dfYmluX3RydXN0X2Z1bmN0aW9uX2NyZWF0b3JzIHZlcndlbmRlbikAU2llIGhhYmVuIGtlaW5lIFNVUEVSLUJlcmVjaHRpZ3VuZyB1bmQgQmluw6RybG9nZ2luZyBpc3QgYWt0aXYgKCp2aWVsbGVpY2h0KiBzb2xsdGVuIFNpZSBkaWUgd2VuaWdlciBzaWNoZXJlIFZhcmlhYmxlIGxvZ19iaW5fdHJ1c3RfZnVuY3Rpb25fY3JlYXRvcnMgdmVyd2VuZGVuKQBTaWUga8O2bm5lbiBrZWluZSB2b3JiZXJlaXRldGUgQW53ZWlzdW5nIGF1c2bDvGhyZW4sIGRpZSBtaXQgZWluZW0gZ2XDtmZmbmV0ZW4gQ3Vyc29yIHZlcmtuw7xwZnQgaXN0LiBTZXR6ZW4gU2llIGRpZSBBbndlaXN1bmcgenVyw7xjaywgdW0gc2llIG5ldSBhdXN6dWbDvGhyZW4ARGllIEFud2Vpc3VuZyAoJWx1KSBoYXQga2VpbmVuIGdlw7ZmZm5ldGVuIEN1cnNvcgBFeHBsaXppdGVzIG9kZXIgaW1wbGl6aXRlcyBDb21taXQgaXN0IGluIGdlc3BlaWNoZXJ0ZW4gRnVua3Rpb25lbiB1bmQgaW4gVHJpZ2dlcm4gbmljaHQgZXJsYXVidABFaW4gRmVsZCBkZXIgZGVtIFZpZXcgJyUtLjE5MnMuJS0uMTkycycgenVncnVuZGVsaWVnZW5kZW4gVGFiZWxsZSBoYXQga2VpbmVuIFZvcmdhYmV3ZXJ0AFJla3Vyc2l2ZSBnZXNwZWljaGVydGUgUm91dGluZW4gdW5kIFRyaWdnZXJzIHNpbmQgbmljaHQgZXJsYXVidABadSBncm/Dn2VyIFNrYWxpZXJ1bmdzZmFrdG9yICVkIGbDvHIgRmVsZCAnJS0uMTkycycgYW5nZWdlYmVuLiBNYXhpbXVtIGlzdCAlbHUAWnUgZ3Jvw59lIEdlbmF1aWdrZWl0ICVkIGbDvHIgRmVsZCAnJS0uMTkycycgYW5nZWdlYmVuLiBNYXhpbXVtIGlzdCAlbHUARsO8ciBGTE9BVChNLEQpLCBET1VCTEUoTSxEKSBvZGVyIERFQ0lNQUwoTSxEKSBtdXNzIE0gPj0gRCBzZWluIChGZWxkICclLS4xOTJzJykAU2llIGvDtm5uZW4gU2NocmVpYnNwZXJyZW4gYXVmIGRlciBTeXN0ZW10YWJlbGxlIG5pY2h0IG1pdCBhbmRlcmVuIFRhYmVsbGVuIGtvbWJpbmllcmVuAEthbm4gbmljaHQgbWl0IEZyZW1kZGF0ZW5xdWVsbGUgdmVyYmluZGVuOiAlLjY0cwBCZWkgZGVyIFZlcmFyYmVpdHVuZyBkZXIgQWJmcmFnZSBpc3QgaW4gZGVyIEZyZW1kZGF0ZW5xdWVsbGUgZWluIFByb2JsZW0gYXVmZ2V0cmV0ZW4uIERhdGVucXVlbGxlbmZlaGxlcm1lbGR1bmc6ICUtLjY0cwBEaWUgRnJlbWRkYXRlbnF1ZWxsZSwgYXVmIGRpZSBTaWUgenVncmVpZmVuIHdvbGxlbiwgZXhpc3RpZXJ0IG5pY2h0LiBEYXRlbnF1ZWxsZW5mZWhsZXJtZWxkdW5nOiAgJS0uNjRzAEthbm4gZsO2ZGVyaWVydGUgVGFiZWxsZSBuaWNodCBlcnpldWdlbi4gRGVyIERhdGVucXVlbGxlbi1WZXJiaW5kdW5nc3N0cmluZyAnJS0uNjRzJyBoYXQga2VpbiBrb3JyZWt0ZXMgRm9ybWF0AERlciBEYXRlbnF1ZWxsZW4tVmVyYmluZHVuZ3NzdHJpbmcgJyUtLjY0cycgaGF0IGtlaW4ga29ycmVrdGVzIEZvcm1hdABLYW5uIGbDtmRlcmllcnRlIFRhYmVsbGUgbmljaHQgZXJ6ZXVnZW4uIEZyZW1kZGF0ZW5xdWVsbGVuZmVobGVybWVsZHVuZzogICUtLjY0cwBUcmlnZ2VyIGltIGZhbHNjaGVuIFNjaGVtYQBUaHJlYWQtU3RhY2stw5xiZXJsYXVmOiAlbGQgQnl0ZXMgZWluZXMgJWxkLUJ5dGUtU3RhY2tzIGluIFZlcndlbmR1bmcsIHVuZCAlbGQgQnl0ZXMgYmVuw7Z0aWd0LiBWZXJ3ZW5kZW4gU2llICdteXNxbGQgLS10aHJlYWRfc3RhY2s9IycsIHVtIGVpbmVuIGdyw7bDn2VyZW4gU3RhY2sgYW56dWdlYmVuAFJvdXRpbmVuLUJvZHkgZsO8ciAnJS0uMTAwcycgaXN0IHp1IGxhbmcARGVyIHZvcmdhYmVtw6TDn2lnZSBTY2hsw7xzc2VsLUNhY2hlIGthbm4gbmljaHQgZ2Vsw7ZzY2h0IHdlcmRlbgBBbnplaWdlYnJlaXRlIGF1w59lcmhhbGIgZGVzIHp1bMOkc3NpZ2VuIEJlcmVpY2hzIGbDvHIgU3BhbHRlICclLS4xOTJzJyAoTWF4aW11bTogJWx1KQBYQUVSX0RVUElEOiBEaWUgWElEIGV4aXN0aWVydCBiZXJlaXRzAERhdGV0aW1lLUZ1bmt0aW9uOiAlLS4zMnMgRmVsZMO8YmVybGF1ZgBLYW5uIFRhYmVsbGUgJyUtLjE5MnMnIGluIGdlc3BlaWNoZXJ0ZXIgRnVua3Rpb24gb2RlciBUcmlnZ2VyIG5pY2h0IGFrdHVhbGlzaWVyZW4sIHdlaWwgc2llIGJlcmVpdHMgdm9uIGRlciBBbndlaXN1bmcgdmVyd2VuZGV0IHdpcmQsIGRpZSBkaWVzZSBnZXNwZWljaGVydGUgRnVua3Rpb24gb2RlciBkZW4gVHJpZ2dlciBhdWZyaWVmAERpZSBEZWZpbml0aW9uIGRlciBUYWJlbGxlICclLS4xOTJzJyB2ZXJoaW5kZXJ0IGRpZSBPcGVyYXRpb24gJS4xOTJzIGF1ZiBUYWJlbGxlICclLS4xOTJzJwBEaWUgdm9yYmVyZWl0ZXRlIEFud2Vpc3VuZyBlbnRow6RsdCBlaW5lbiBBdWZydWYgZWluZXIgZ2VzcGVpY2hlcnRlbiBSb3V0aW5lLCBkaWUgYXVmIGViZW4gZGllc2VsYmUgQW53ZWlzdW5nIHZlcndlaXN0LiBFcyBpc3QgbmljaHQgZXJsYXVidCwgZWluZSB2b3JiZXJlaXRldGUgQW53ZWlzdW5nIGluIHNvbGNoIHJla3Vyc2l2ZXIgV2Vpc2UgYXVzenVmw7xocmVuAEVzIGlzdCBuaWNodCBlcmxhdWJ0LCBpbm5lcmhhbGIgZWluZXIgZ2VzcGVpY2hlcnRlbiBGdW5rdGlvbiBvZGVyIGVpbmVzIFRyaWdnZXJzIEFVVE9DT01NSVQgenUgc2V0emVuAERlZmluaWVyZXIgZGVzIFZpZXcgaXN0IG5pY2h0IHZvbGxzdMOkbmRpZyBzcGV6aWZpemllcnQAVmlldyAnJS0uMTkycycuJyUtLjE5MnMnIGhhdCBrZWluZSBEZWZpbmllcmVyLUluZm9ybWF0aW9uIChhbHRlcyBUYWJlbGxlbmZvcm1hdCkuIERlciBha3R1ZWxsZSBCZW51dHplciB3aXJkIGFscyBEZWZpbmllcmVyIHZlcndlbmRldC4gQml0dGUgZXJzdGVsbGVuIFNpZSBkZW4gVmlldyBuZXUAU2llIGJyYXVjaGVuIGRpZSBTVVBFUi1CZXJlY2h0aWd1bmcsIHVtIGVpbmVuIFZpZXcgbWl0IGRlbSBEZWZpbmllcmVyICclLS4xOTJzJ0AnJS0uMTkycycgenUgZXJ6ZXVnZW4ARGVyIGFscyBEZWZpbmllcmVyIGFuZ2VnZWJlbmUgQmVudXR6ZXIgKCclLS42NHMnQCclLS42NHMnKSBleGlzdGllcnQgbmljaHQAV2VjaHNlbCBkZXMgU2NoZW1hcyB2b24gJyUtLjE5MnMnIGF1ZiAnJS0uMTkycycgaXN0IG5pY2h0IGVybGF1YnQAS2FubiBFbHRlcm4tWmVpbGUgbmljaHQgbMO2c2NoZW4gb2RlciBha3R1YWxpc2llcmVuOiBlaW5lIEZyZW1kc2NobMO8c3NlbGJlZGluZ3VuZyBzY2hsw6RndCBmZWhsICglLjE5MnMpAEthbm4gS2luZC1aZWlsZSBuaWNodCBoaW56dWbDvGdlbiBvZGVyIGFrdHVhbGlzaWVyZW46IGVpbmUgRnJlbWRzY2hsw7xzc2VsYmVkaW5ndW5nIHNjaGzDpGd0IGZlaGwgKCUuMTkycykAVmFyaWFibGUgJyUtLjY0cycgbXVzcyBtaXQgYC4uLmAgZ2VzY2jDvHR6dCBvZGVyIGFiZXIgdW1iZW5hbm50IHdlcmRlbgBObyBkZWZpbmVyIGF0dHJpYnV0ZSBmb3IgdHJpZ2dlciAnJS0uMTkycycuJyUtLjE5MnMnLiBJdCdzIGRpc2FsbG93ZWQgdG8gY3JlYXRlIHRyaWdnZXIgd2l0aG91dCBkZWZpbmVyLgAnJS0uMTkycycgaGF0IGFsdGVzIEZvcm1hdCwgU2llIHNvbGx0ZW4gZGllICclcyctT2JqZWt0KGUpIG5ldSBlcnpldWdlbgBSZWt1cnNpb25zZ3JlbnplICVkIChkdXJjaCBWYXJpYWJsZSBtYXhfc3BfcmVjdXJzaW9uX2RlcHRoIGdlZ2ViZW4pIHd1cmRlIGbDvHIgUm91dGluZSAlLjE5MnMgw7xiZXJzY2hyaXR0ZW4AUm91dGluZSAlLS4xOTJzIGtvbm50ZSBuaWNodCBnZWxhZGVuIHdlcmRlbi4gRGllIGRhdGEgZGljdGlvbmFyeSBUYWJlbGxlIGZlaGx0LCBpc3QgYmVzY2jDpGRpZ3QsIG9kZXIgZW50aMOkbHQgZmVobGVyaGFmdGVuIERhdGVuIChpbnRlcm5lciBDb2RlOiAlZCkAVW5nw7xsdGlnZXIgUm91dGluZW5uYW1lICclLS4xOTJzJwBUYWJlbGxlbmFrdHVhbGlzaWVydW5nIGVyZm9yZGVybGljaC4gQml0dGUgenVtIFJlcGFyaWVyZW4gIlJFUEFJUiBUQUJMRSBgJS0uNjRzYCIgZWluZ2ViZW4hAEFHR1JFR0FURSB3aXJkIGJlaSBnZXNwZWljaGVydGVuIEZ1bmt0aW9uZW4gbmljaHQgdW50ZXJzdMO8dHp0AEthbm4gbmljaHQgbWVociBBbndlaXN1bmdlbiBhbHMgbWF4X3ByZXBhcmVkX3N0bXRfY291bnQgZXJ6ZXVnZW4gKGFrdHVlbGxlciBXZXJ0OiAlbHUpAGAlLS4xOTJzYC5gJS0uMTkyc2AgZW50aMOkbHQgVmlldy1SZWt1cnNpb24ASW4gZGVyICUtLjE5MnMtS2xhdXNlbCB3aXJkIGRhcyBkaWUgTmljaHQtR3J1cHBpZXJ1bmdzc3BhbHRlICclLS42NHMnIHZlcndlbmRldABEZXIgdmVyd2VuZGV0ZSBUYWJlbGxlbnR5cCB1bnRlcnN0w7x0enQga2VpbmUgU1BBVElBTC1JbmRpemVzAFRyaWdnZXIga8O2bm5lbiBuaWNodCBhdWYgU3lzdGVtdGFiZWxsZW4gZXJ6ZXVndCB3ZXJkZW4ARsO8aHJlbmRlIExlZXJ6ZWljaGVuIHdlcmRlbiBhdXMgZGVtIE5hbWVuICclcycgZW50ZmVybnQATGVzZW4gZGVzIEF1dG9pbmNyZW1lbnQtV2VydHMgdm9uIGRlciBTcGVpY2hlci1FbmdpbmUgZmVobGdlc2NobGFnZW4AQmVudXR6ZXJuYW1lAEhvc3RuYW1lAFN0cmluZyAnJS0uNzBzJyBpc3QgenUgbGFuZyBmw7xyICVzIChzb2xsdGUgbmljaHQgbMOkbmdlciBzZWluIGFscyAlZCkARGllIFppZWx0YWJlbGxlICUtLjEwMHMgdm9uICVzIGlzdCBuaWNodCBlaW5mw7xnYmFyAFRhYmVsbGUgJyUtLjY0cycgaXN0IHVudGVyc2NoaWVkbGljaCBkZWZpbmllcnQsIG5pY2h0IHZvbSBUeXAgTXlJU0FNIG9kZXIgZXhpc3RpZXJ0IG5pY2h0AFp1IHRpZWYgdmVyc2NoYWNodGVsdGUgU0VMRUNULUFud2Vpc3VuZ2VuAE5hbWUgJyUtLjY0cycgd3VyZGUgenUgJycARGFzIGVyc3RlIFplaWNoZW4gZGVyIFplaWNoZW5rZXR0ZSBGSUVMRFMgVEVSTUlOQVRFRCBpc3QgbWVocmRldXRpZzsgYml0dGUgYmVudXR6ZW4gU2llIG5pY2h0IG9wdGlvbmFsZSB1bmQgbmljaHQgbGVlcmUgRklFTERTIEVOQ0xPU0VEIEJZAERlciBlbnRmZXJudGUgU2VydmVyICVzLCBkZW4gU2llIHZlcnN1Y2hlbiB6dSBlcnpldWdlbiwgZXhpc3RpZXJ0IHNjaG9uLgBEaWUgZXh0ZXJuZSBWZXJiaW5kdW5nLCBhdWYgZGllIFNpZSB6dWdyZWlmZW4gd29sbGVuLCBleGlzdGllcnQgbmljaHQuIERhdGVucXVlbGxlbmZlaGxlcm1lbGR1bmc6ICAlLS42NHMAU3BlaWNoZXItRW5naW5lICclLS42NHMnIGRlciBUYWJlbGxlIHVudGVyc3TDvHR6dCBkaWUgT3B0aW9uICclLjY0cycgbmljaHQARmVobGVyIGluIGRlciBTUUwtU3ludGF4OiAlLS42NHMtUEFSVElUSU9OaWVydW5nIGVyZm9yZGVydCBEZWZpbml0aW9uIHZvbiBWQUxVRVMgJS0uNjRzIGbDvHIgamVkZSBQYXJ0aXRpb24ATnVyICUtLjY0cy1QQVJUSVRJT05pZXJ1bmcga2FubiBWQUxVRVMgJS0uNjRzIGluIGRlciBQYXJ0aXRpb25zZGVmaW5pdGlvbiB2ZXJ3ZW5kZW4ATUFYVkFMVUUga2FubiBudXIgZsO8ciBkaWUgRGVmaW5pdGlvbiBkZXIgbGV0enRlbiBQYXJ0aXRpb24gdmVyd2VuZGV0IHdlcmRlbgBVbnRlcnBhcnRpdGlvbmVuIGTDvHJmZW4gbnVyIEhBU0gtIG9kZXIgS0VZLVBhcnRpdGlvbmVuIHNlaW4AV2VubiBTaWUgVW50ZXJwYXJ0aXRpb25lbiBhdWYgZWluZXIgUGFydGl0aW9uIGRlZmluaWVyZW4sIG3DvHNzZW4gU2llIGRhcyBmw7xyIGFsbGUgUGFydGl0aW9uZW4gdHVuAEZhbHNjaGUgQW56YWhsIHZvbiBQYXJ0aXRpb25lbiBkZWZpbmllcnQsIHN0aW1tdCBuaWNodCBtaXQgdm9yaGVyaWdlbiBFaW5zdGVsbHVuZ2VuIMO8YmVyZWluAEZhbHNjaGUgQW56YWhsIHZvbiBVbnRlcnBhcnRpdGlvbmVuIGRlZmluaWVydCwgc3RpbW10IG5pY2h0IG1pdCB2b3JoZXJpZ2VuIEVpbnN0ZWxsdW5nZW4gw7xiZXJlaW4AS29uc3RhbnRlIG9kZXIgUmFuZG9tLUF1c2Ryw7xja2UgaW4gKFVudGVyLSlQYXJ0aXRpb25zZnVua3Rpb25lbiBzaW5kIG5pY2h0IGVybGF1YnQAQXVzZHLDvGNrZSBpbiBSQU5HRS9MSVNUIFZBTFVFUyBtw7xzc2VuIGtvbnN0YW50IHNlaW4ARmVsZGVyIGluIGRlciBGZWxkbGlzdGUgZGVyIFBhcnRpdGlvbmllcnVuZ3NmdW5rdGlvbiB3dXJkZW4gaW4gZGVyIFRhYmVsbGUgbmljaHQgZ2VmdW5kZW4ARWluZSBGZWxkbGlzdGUgaXN0IG51ciBpbiBLRVktUGFydGl0aW9uZW4gZXJsYXVidABEaWUgUGFydGl0aW9uaWVydW5nc2luZm9ybWF0aW9uZW4gaW4gZGVyIGZybS1EYXRlaSBzdGltbWVuIG5pY2h0IG1pdCBkZW0gw7xiZXJlaW4sIHdhcyBpbiBkaWUgZnJtLURhdGVpIGdlc2NocmllYmVuIHdlcmRlbiBrYW5uAERpZSAlLS4xOTJzLUZ1bmt0aW9uIGdpYnQgZWluZW4gZmFsc2NoZW4gVHlwIHp1csO8Y2sARsO8ciAlLS42NHMtUGFydGl0aW9uZW4gbXVzcyBqZWRlIFBhcnRpdGlvbiBkZWZpbmllcnQgc2VpbgBXZXJ0ZSBpbiBWQUxVRVMgTEVTUyBUSEFOIG3DvHNzZW4gZsO8ciBqZWRlIFBhcnRpdGlvbiBzdHJpa3QgYXVmc3RlaWdlbmQgc2VpbgBWQUxVRVMtV2VydGUgbcO8c3NlbiB2b20gc2VsYmVuIFR5cCB3aWUgZGllIFBhcnRpdGlvbmllcnVuZ3NmdW5rdGlvbiBzZWluAE1laHJmYWNoZGVmaW5pdGlvbiBkZXJzZWxiZW4gS29uc3RhbnRlIGJlaSBMaXN0ZW4tUGFydGl0aW9uaWVydW5nAFBhcnRpdGlvbmllcnVuZyBrYW5uIGluIGVpbmVyIEFiZnJhZ2UgbmljaHQgYWxsZWluc3RlaGVuZCBiZW51dHp0IHdlcmRlbgBEYXMgVmVybWlzY2hlbiB2b24gSGFuZGxlcm4gaW4gUGFydGl0aW9uZW4gaXN0IGluIGRpZXNlciBWZXJzaW9uIHZvbiBNeVNRTCBuaWNodCBlcmxhdWJ0AEbDvHIgZGllIHBhcnRpdGlvbmllcnRlIEVuZ2luZSBtw7xzc2VuIGFsbGUgJS0uNjRzIGRlZmluaWVydCBzZWluAEVzIHd1cmRlbiB6dSB2aWVsZW4gUGFydGl0aW9uZW4gKGVpbnNjaGxpZcOfbGljaCBVbnRlcnBhcnRpdGlvbmVuKSBkZWZpbmllcnQAUkFOR0UvTElTVC1QYXJ0aXRpb25pZXJ1bmcga2FubiBiZWkgVW50ZXJwYXJ0aXRpb25lbiBudXIgenVzYW1tZW4gbWl0IEhBU0gvS0VZLVBhcnRpdGlvbmllcnVuZyB2ZXJ3ZW5kZXQgd2VyZGVuAEVyemV1Z2VuIGVpbmVyIHNwZXppZmlzY2hlbiBIYW5kbGVyLURhdGVpIGZlaGxnZXNjaGxhZ2VuAEluIGRlciBQYXJ0aXRpb25pZXJ1bmdzZnVua3Rpb24gc2luZCBCTE9CLVNwYWx0ZW4gbmljaHQgZXJsYXVidABBICUtLjE5MnMgbXVzdCBpbmNsdWRlIGFsbCBjb2x1bW5zIGluIHRoZSB0YWJsZSdzIHBhcnRpdGlvbmluZyBmdW5jdGlvbiAocHJlZml4ZWQgY29sdW1ucyBhcmUgbm90IGNvbnNpZGVyZWQpLgBFaW5lIEFuemFobCB2b24gJS0uNjRzID0gMCBpc3Qga2VpbiBlcmxhdWJ0ZXIgV2VydABQYXJ0aXRpb25zdmVyd2FsdHVuZyBlaW5lciBuaWNodCBwYXJ0aXRpb25pZXJ0ZW4gVGFiZWxsZSBpc3QgbmljaHQgbcO2Z2xpY2gARnJlbWRzY2hsw7xzc2VsLUJlc2NocsOkbmt1bmdlbiBzaW5kIGltIFp1c2FtbWVuaGFuZyBtaXQgUGFydGl0aW9uaWVydW5nIG5pY2h0IHp1bMOkc3NpZwBGZWhsZXIgaW4gZGVyIFBhcnRpdGlvbnNsaXN0ZSBiZWkgJS0uNjRzAEVzIGxhc3NlbiBzaWNoIG5pY2h0IHPDpG10bGljaGUgUGFydGl0aW9uZW4gbMO2c2NoZW4sIGJlbnV0emVuIFNpZSBzdGF0dCBkZXNzZW4gRFJPUCBUQUJMRQBDT0FMRVNDRSBQQVJUSVRJT04ga2FubiBudXIgYXVmIEhBU0gtIG9kZXIgS0VZLVBhcnRpdGlvbmVuIGJlbnV0enQgd2VyZGVuAFJFT1JHQU5JWkUgUEFSVElUSU9OIGthbm4gbnVyIHp1ciBSZW9yZ2FuaXNhdGlvbiB2b24gUGFydGl0aW9uZW4gdmVyd2VuZGV0IHdlcmRlbiwgbmljaHQsIHVtIGlocmUgTnVtbWVybiB6dSDDpG5kZXJuAFJFT1JHQU5JWkUgUEFSVElUSU9OIG9obmUgUGFyYW1ldGVyIGthbm4gbnVyIGbDvHIgYXV0by1wYXJ0aXRpb25pZXJ0ZSBUYWJlbGxlbiB2ZXJ3ZW5kZXQgd2VyZGVuLCBkaWUgSEFTSC1QYXJ0aXRpb25pZXJ1bmcgYmVudXR6ZW4AJS0uNjRzIFBBUlRJVElPTiBrYW5uIG51ciBmw7xyIFJBTkdFLSBvZGVyIExJU1QtUGFydGl0aW9uZW4gdmVyd2VuZGV0IHdlcmRlbgBFcyB3dXJkZSB2ZXJzdWNodCwgZWluZSBvZGVyIG1laHJlcmUgUGFydGl0aW9uZW4gbWl0IGRlciBmYWxzY2hlbiBBbnphaGwgdm9uIFVudGVycGFydGl0aW9uZW4gaGluenV6dWbDvGdlbgBFcyBtdXNzIHp1bWluZGVzdCBlaW5lIFBhcnRpdGlvbiBoaW56dWdlZsO8Z3Qgd2VyZGVuAFp1bWluZGVzdCBlaW5lIFBhcnRpdGlvbiBtdXNzIG1pdCBDT0FMRVNDRSBQQVJUSVRJT04genVzYW1tZW5nZWbDvGd0IHdlcmRlbgBFcyB3dXJkZSB2ZXJzdWNodCwgbWVociBQYXJ0aXRpb25lbiBhbHMgdm9yaGFuZGVuIHp1IHJlb3JnYW5pc2llcmVuAERvcHBlbHRlciBQYXJ0aXRpb25zbmFtZTogJS0uMTkycwBFcyBlcyBuaWNodCBlcmxhdWJ0LCBiZWkgZGllc2VtIEJlZmVobCBiaW5sb2cgYWJ6dXNjaGFsdGVuAEJlaSBkZXIgUmVvcmdhbmlzYXRpb24gZWluZXMgU2F0emVzIHZvbiBQYXJ0aXRpb25lbiBtw7xzc2VuIGRpZXNlIGluIGdlb3JkbmV0ZXIgUmVpaGVuZm9sZ2Ugdm9ybGllZ2VuAERpZSBSZW9yZ2FuaXNhdGlvbiB2b24gUkFOR0UtUGFydGl0aW9uZW4ga2FubiBHZXNhbXRiZXJlaWNoZSBuaWNodCB2ZXLDpG5kZXJuLCBtaXQgQXVzbmFobWUgZGVyIGxldHp0ZW4gUGFydGl0aW9uLCBkaWUgZGVuIEJlcmVpY2ggZXJ3ZWl0ZXJuIGthbm4AUGFydGl0aW9uc2Z1bmt0aW9uIGluIGRpZXNlciBWZXJzaW9uIGRpZXNlcyBIYW5kbGVycyBuaWNodCB1bnRlcnN0w7x0enQAUGFydGl0aW9uc3p1c3RhbmQga2FubiBuaWNodCB2b24gQ1JFQVRFIG9kZXIgQUxURVIgVEFCTEUgYXVzIGRlZmluaWVydCB3ZXJkZW4ARGVyIEhhbmRsZXIgJS0uNjRzIHVudGVyc3TDvHR6dCBpbiBWQUxVRVMgbnVyIDMyLUJpdC1JbnRlZ2VycwBQbHVnaW4gJyUtLjE5MnMnIGlzdCBuaWNodCBnZWxhZGVuAEZhbHNjaGVyICUtLjMycy1XZXJ0OiAnJS0uMTI4cycAVGFiZWxsZSBoYXQgZsO8ciBkZW4gV2VydCAlLS42NHMga2VpbmUgUGFydGl0aW9uACVzIGRhcmYgbmljaHQgbWVociBhbHMgZWlubWFsIGFuZ2VnZWdlYmVuIHdlcmRlbgBBbmxlZ2VuIHZvbiAlcyBmZWhsZ2VzY2hsYWdlbgBMw7ZzY2hlbiB2b24gJXMgZmVobGdlc2NobGFnZW4ARGVyIEhhbmRsZXIgdW50ZXJzdMO8dHp0IGtlaW5lIGF1dG9tYXRpc2NoZSBFcndlaXRlcnVuZyAoQXV0b2V4dGVuZCkgdm9uIFRhYmxlc3BhY2VzAEVpbiBHcsO2w59lbi1QYXJhbWV0ZXIgd3VyZGUgdW5rb3JyZWt0IGFuZ2VnZWJlbiwgbXVzcyBlbnR3ZWRlciBaYWhsIHNlaW4gb2RlciBpbSBGb3JtYXQgMTBNAERpZSBaYWhsIGbDvHIgZGllIEdyw7bDn2Ugd2FyIGtvcnJla3QsIGFiZXIgZGVyIFphaGxhbnRlaWwgZGFyZiBuaWNodCBncsO2w59lciBhbHMgMiBNaWxsaWFyZGVuIHNlaW4Aw4RuZGVydW5nIHZvbiAlcyBmZWhsZ2VzY2hsYWdlbgBTY2hyZWliZW4gZWluZXIgWmVpbGVuIGlucyB6ZWlsZW5iYXNpZXJ0ZSBCaW7DpHJsb2cgZmVobGdlc2NobGFnZW4AVGFiZWxsZW5kZWZpbml0aW9uIGF1ZiBNYXN0ZXIgdW5kIFNsYXZlIHN0aW1tdCBuaWNodCDDvGJlcmVpbjogJXMAU2xhdmUsIGRpZSBtaXQgLS1sb2ctcmVwbGljYS11cGRhdGVzIGxhdWZlbiwgbcO8c3NlbiB6ZWlsZW5iYXNpZXJ0ZXMgTG9nZ2VuIHZlcndlbmRlbiwgdW0gemVpbGVuYmFzaWVydGUgQmluw6RybG9nLUVyZWlnbmlzc2UgbG9nZ2VuIHp1IGvDtm5uZW4ARXZlbnQgJyUtLjE5MnMnIGV4aXN0aWVydCBiZXJlaXRzAFNwZWljaGVybiB2b24gRXZlbnQgJXMgZmVobGdlc2NobGFnZW4uIEZlaGxlcmNvZGUgZGVyIFNwZWljaGVyLUVuZ2luZTogJWQAVW5iZWthbm50ZXMgRXZlbnQgJyUtLjE5MnMnAMOEbmRlcm4gZGVzIEV2ZW50cyAnJS0uMTkycycgZmVobGdlc2NobGFnZW4ATMO2c2NoZW4gdm9uICVzIGZlaGxnZXNjaGxhZ2VuAElOVEVSVkFMIGlzdCBlbnR3ZWRlciBuaWNodCBwb3NpdGl2IG9kZXIgenUgZ3Jvw58ARU5EUyBpc3QgZW50d2VkZXIgdW5nw7xsdGlnIG9kZXIgbGllZ3Qgdm9yIFNUQVJUUwBBdXNmw7xocnVuZ3N6ZWl0IGRlcyBFdmVudHMgbGllZ3QgaW4gZGVyIFZlcmdhbmdlbmhlaXQuIEV2ZW50IHd1cmRlIGRlYWt0aXZpZXJ0AMOWZmZuZW4gdm9uIG15c3FsLmV2ZW50IGZlaGxnZXNjaGxhZ2VuAEtlaW4gREFURVRJTUUtQXVzZHJ1Y2sgYW5nZWdlYmVuAFNwYWx0ZW5hbnphaGwgdm9uIG15c3FsLiVzIGZhbHNjaC4gJWQgZXJ3YXJ0ZXQsIGFiZXIgJWQgZ2VmdW5kZW4uIFRhYmVsbGUgaXN0IHdhaHJzY2hlaW5saWNoIGJlc2Now6RkaWd0AEthbm4gbXlzcWwuJXMgbmljaHQgZWlubGVzZW4uIFRhYmVsbGUgaXN0IHdhaHJzY2hlaW5saWNoIGJlc2Now6RkaWd0AEzDtnNjaGVuIGRlcyBFdmVudHMgYXVzIG15c3FsLmV2ZW50IGZlaGxnZXNjaGxhZ2VuAEZlaGxlciBiZWltIEtvbXBpbGllcmVuIGRlcyBFdmVudC1Cb2R5cwBBbHRlciB1bmQgbmV1ZXIgRXZlbnQtTmFtZSBzaW5kIGdsZWljaABEYXRlbiBkZXIgU3BhbHRlICclcycgenUgbGFuZwBLYW5uIEluZGV4ICclLS4xOTJzJyBuaWNodCBsw7ZzY2hlbjogd2lyZCBmw7xyIGVpbmUgRnJlbWRzY2hsw7xzc2VsYmVzY2hyw6Rua3VuZyBiZW7DtnRpZ3QARGllIFN5bnRheCAnJXMnIGlzdCB2ZXJhbHRldCB1bmQgd2lyZCBpbiBNeVNRTCAlcyBlbnRmZXJudC4gQml0dGUgYmVudXR6ZW4gU2llIHN0YXR0IGRlc3NlbiAlcwBFaW5lIExvZy1UYWJlbGxlIGthbm4gbmljaHQgc2NocmVpYmdlc3BlcnJ0IHdlcmRlbi4gRXMgaXN0IG9obmVoaW4gbnVyIExlc2V6dWdyaWZmIG3DtmdsaWNoAExvZy1UYWJlbGxlbiBrw7ZubmVuIG5pY2h0IGdlc3BlcnJ0IHdlcmRlbi4AVXBob2xkaW5nIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnRzIGZvciB0YWJsZSAnJS4xOTJzJywgZW50cnkgJyUtLjE5MnMnLCBrZXkgJWQgd291bGQgbGVhZCB0byBhIGR1cGxpY2F0ZSBlbnRyeQBTcGFsdGVuYW56YWhsIHZvbiBteXNxbC4lcyBmYWxzY2guICVkIGVyd2FydGV0LCBhYmVyICVkIGVyaGFsdGVuLiBFcnpldWd0IG1pdCBNeVNRTCAlZCwgamV0enQgdW50ZXIgJWQuIEJpdHRlIHZlcndlbmRlbiBTaWUgZGllIE15U1FMLVVwZ3JhZGUtUHJvemVkdXIsIHVtIGRlbiBGZWhsZXIgenUgYmVoZWJlbi4AS2FubiBuaWNodCBhdXMgZGVtIHplaWxlbmJhc2llcnRlbiBCaW7DpHJsb2ctRm9ybWF0IGhlcmF1c3dlY2hzZWxuLCB3ZW5uIGRpZSBTaXR6dW5nIG9mZmVuZSB0ZW1wb3LDpHJlIFRhYmVsbGVuIGhhdABEYXMgQmluw6RybG9nLUZvcm1hdCBrYW5uIGlubmVyaGFsYiBlaW5lciBnZXNwZWljaGVydGVuIEZ1bmt0aW9uIG9kZXIgZWluZXMgVHJpZ2dlcnMgbmljaHQgZ2XDpG5kZXJ0IHdlcmRlbgBEaWUgU3BlaWNoZXItRW5naW5lIE5EQiBDbHVzdGVyIHVudGVyc3TDvHR6dCBkYXMgw4RuZGVybiBkZXMgQmluw6RybG9nLUZvcm1hdHMgenVyIExhdWZ6ZWl0IG5vY2ggbmljaHQAQW5sZWdlbiB0ZW1wb3LDpHJlciBUYWJlbGxlbiBtaXQgUGFydGl0aW9uZW4gbmljaHQgbcO2Z2xpY2gAUGFydGl0aW9uc2tvbnN0YW50ZSBsaWVndCBhdcOfZXJoYWxiIGRlciBQYXJ0aXRpb25zZnVua3Rpb25zZG9tw6RuZQBEaWVzZSBQYXJ0aXRpb25pZXJ1bmdzZnVua3Rpb24gaXN0IG5pY2h0IGVybGF1YnQARmVobGVyIGltIERETC1Mb2cASW4gVkFMVUVTIExFU1MgVEhBTiBkw7xyZmVuIGtlaW5lIE5VTEwtV2VydGUgdmVyd2VuZGV0IHdlcmRlbgBGYWxzY2hlciBQYXJ0aXRpb25zbmFtZQBUcmFuc2FjdGlvbiBjaGFyYWN0ZXJpc3RpY3MgY2FuJ3QgYmUgY2hhbmdlZCB3aGlsZSBhIHRyYW5zYWN0aW9uIGlzIGluIHByb2dyZXNzAEFMVEVSIFRBQkxFIGbDvGhydCB6dXIgTmV1c2VxdWVuemllcnVuZyB2b24gYXV0b19pbmNyZW1lbnQsIHdvZHVyY2ggZGVyIGRvcHBlbHRlIEVpbnRyYWcgJyUtLjE5MnMnIGbDvHIgU2NobMO8c3NlbCAnJS0uMTkycycgYXVmdHJpdHQASW50ZXJuZXIgU2NoZWR1bGVyLUZlaGxlciAlZABGZWhsZXIgd8OkaHJlbmQgZGVzIFN0YXJ0ZW5zIG9kZXIgQW5oYWx0ZW4gZGVzIFNjaGVkdWxlcnMuIEZlaGxlcmNvZGUgJXUARW5naW5lIGthbm4gaW4gcGFydGl0aW9uaWVydGVuIFRhYmVsbGVuIG5pY2h0IHZlcndlbmRldCB3ZXJkZW4AS2FubiBMb2dkYXRlaSAnJS0uNjRzJyBuaWNodCBha3RpdmllcmVuAERlciBTZXJ2ZXIgd3VyZGUgbmljaHQgbWl0IHplaWxlbmJhc2llcnRlciBSZXBsaWthdGlvbiBnZWJhdXQARGVyIFNlcnZlciBoYXQga2VpbmUgemVpbGVuYmFzaWVydGUgUmVwbGlrYXRpb24AUmVrdXJzaXZpdMOkdCB2b24gRVZFTlQtRERMLUFud2Vpc3VuZ2VuIGlzdCB1bnp1bMOkc3NpZyB3ZW5uIGVpbiBIYXVwdHRlaWwgKEJvZHkpIGV4aXN0aWVydABLYW5uIG5pY2h0IHdlaXRlcm1hY2hlbiwgd2VpbCBkaWUgVGFiZWxsZW4sIGRpZSB2b24gRXZlbnRzIHZlcndlbmRldCB3ZXJkZW4sIGJlaW0gU2VydmVyc3RhcnQgYWxzIGJlc2Now6RkaWd0IG1hcmtpZXJ0IHd1cmRlbgBBbiBkaWVzZXIgU3RlbGxlIHNpbmQgbnVyIEdhbnp6YWhsZW4genVsw6Rzc2lnAERpZXNlIFNwZWljaGVyLUVuZ2luZSBrYW5uIGbDvHIgTG9ndGFiZWxsZW4gbmljaHQgdmVyd2VuZGV0IHdlcmRlbgBTaWUga8O2bm5lbiBlaW5lIExvZ3RhYmVsbGUgbmljaHQgJyVzJywgd2VubiBMb2dnZW4gYW5nZXNjaGFsdGV0IGlzdABLYW5uICclcycgbmljaHQgdW1iZW5lbm5lbi4gV2VubiBMb2dnZW4gYW5nZXNjaGFsdGV0IGlzdCwgbcO8c3NlbiB6d2VpIFRhYmVsbGVuIHVtYmVuYW5udCB3ZXJkZW46IGRpZSBMb2d0YWJlbGxlIHp1IGVpbmVyIEFyY2hpdnRhYmVsbGUsIHVuZCBlaW5lIHdlaXRlcmUgVGFiZWxsZSB6dSAnJXMnAEZhbHNjaGUgQW56YWhsIHZvbiBQYXJhbWV0ZXJuIGJlaW0gQXVmcnVmIGRlciBuYXRpdmVuIEZ1bmt0aW9uICclLS4xOTJzJwBGYWxzY2hlciBQYXJhbWV0ZXIgYmVpbSBBdWZydWYgZGVyIG5hdGl2ZW4gRnVua3Rpb24gJyUtLjE5MnMnAEZhbHNjaGUgUGFyYW1ldGVyIGJlaW0gQXVmcnVmIGRlciBnZXNwZWljaGVydGVuIEZ1bmt0aW9uICUtLjE5MnMARGllIEZ1bmt0aW9uICclLS4xOTJzJyBoYXQgZGVuc2VsYmVuIE5hbWVuIHdpZSBlaW5lIG5hdGl2ZSBGdW5rdGlvbgBEb3BwZWx0ZXIgRWludHJhZyAnJS0uNjRzJyBmw7xyIFNjaGzDvHNzZWwgJyUtLjM4NXMnAFp1IHZpZWxlIG9mZmVuZSBEYXRlaWVuLCBiaXR0ZSBmw7xocmVuIFNpZSBkZW4gQmVmZWhsIG5vY2ggZWlubWFsIGF1cwBBdXNmw7xocnVuZ3N6ZWl0IGRlcyBFdmVudHMgbGllZ3QgaW4gZGVyIFZlcmdhbmdlbmhlaXQsIHVuZCBlcyB3dXJkZSBPTiBDT01QTEVUSU9OIE5PVCBQUkVTRVJWRSBnZXNldHp0LiBEYXMgRXZlbnQgd3VyZGUgdW5taXR0ZWxiYXIgbmFjaCBFcnpldWd1bmcgZ2Vsw7ZzY2h0LgBFeGVjdXRpb24gWmVpdHB1bmt0IGRlcyBFcmVpZ25pc3NlcyBpbiBkZXIgVmVyZ2FuZ2VuaGVpdCBsaWVndCwgdW5kIGVzIHdhciBOQUNIIEFCU0NITFVTUyBTZXQgbmljaHQgZXJoYWx0ZW4uIERpZSBWZXJhbnN0YWx0dW5nIHd1cmRlIG5pY2h0IHZlcsOkbmRlcnQuIEdlYmVuIFNpZSBlaW5lbiBaZWl0cHVua3QgaW4gZGVyIFp1a3VuZnQuAERlciBWb3JmYWxsICVzIHBhc3NpZXJ0ZSBhdWYgZGVtIE1hc3Rlci4gTWVsZHVuZzogJXMAVGFiZWxsZSBoYXQgZsO8ciBlaW5pZ2UgYmVzdGVoZW5kZSBXZXJ0ZSBrZWluZSBQYXJ0aXRpb24AVW5zaWNoZXJlIEFud2Vpc3VuZyBpbnMgQmluw6RybG9nIGdlc2NocmllYmVuLCB3ZWlsIEFud2Vpc3VuZ3Nmb3JtYXQgQklOTE9HX0ZPUk1BVCA9IFNUQVRFTUVOVC4gJXMARmF0YWxlciBGZWhsZXI6ICVzAFJlbGF5bG9nLUxlc2VmZWhsZXI6ICVzAFJlbGF5bG9nLVNjaHJlaWJmZWhsZXI6ICVzAEVyemV1Z2VuIHZvbiAlcyBmZWhsZ2VzY2hsYWdlbgBNYXN0ZXItQmVmZWhsICVzIGZlaGxnZXNjaGxhZ2VuOiAlcwBCaW7DpHJsb2dnaW5nIG5pY2h0IG3DtmdsaWNoLiBNZWxkdW5nOiAlcwBWaWV3IGAlLS42NHNgLmAlLS42NHNgIGhhdCBrZWluZW4gRXJ6ZXVndW5nc2tvbnRleHQARXJ6ZXVndW5nc2tvbnRleHQgZGVzIFZpZXdzYCUtLjY0c2AuYCUtLjY0cycgaXN0IHVuZ8O8bHRpZwBFcnpldWd1bmdza29udGV4dCBkZXIgZ2VzcGVpY2hlcnRlbiBSb3V0aW5lYCUtLjY0c2AuYCUtLjY0c2AgaXN0IHVuZ8O8bHRpZwBCZXNjaMOkZGlndGUgVFJHLURhdGVpIGbDvHIgVGFiZWxsZSBgJS0uNjRzYC5gJS0uNjRzYABUcmlnZ2VyIGbDvHIgVGFiZWxsZSBgJS0uNjRzYC5gJS0uNjRzYCBoYWJlbiBrZWluZW4gRXJ6ZXVndW5nc2tvbnRleHQAVHJpZ2dlci1FcnpldWd1bmdza29udGV4dCBkZXIgVGFiZWxsZSBgJS0uNjRzYC5gJS0uNjRzYCBpc3QgdW5nw7xsdGlnAEVyemV1Z3VuZ3Nrb250ZXh0IGRlcyBFdmVudHMgYCUtLjY0c2AuYCUtLjY0c2AgaXN0IHVuZ8O8bHRpZwBLYW5uIFRhYmVsbGUgZsO8ciBkZW4gVHJpZ2dlciBgJS0uNjRzYC5gJS0uNjRzYCBuaWNodCDDtmZmbmVuAEthbm4gZ2VzcGVpY2hlcnRlIFJvdXRpbmUgYCUtLjY0c2AgbmljaHQgZXJ6ZXVnZW4uIEJlYWNodGVuIFNpZSBkaWUgV2FybnVuZ2VuAE1laHJkZXV0aWdlIEtvbWJpbmF0aW9uIHZvbiBTbGF2ZS1Nb2RpLiAlcwBEZXIgQklOTE9HLUFud2Vpc3VuZyB2b20gVHlwIGAlc2AgZ2luZyBrZWluZSBCSU5MT0ctQW53ZWlzdW5nIHp1ciBGb3JtYXRiZXNjaHJlaWJ1bmcgdm9yYW4uAEJlc2Now6RkaWd0ZXMgUmVwbGlrYXRpb25zZXJlaWduaXMgZW50ZGVja3QAVW5nw7xsdGlnZSBTcGFsdGVucmVmZXJlbnogKCUtLjY0cykgYmVpIExPQUQgREFUQQBadSBiZXJlaW5pZ2VuZGUgTG9nZGF0ZWkgJXMgd3VyZGUgbmljaHQgZ2VmdW5kZW4AWEFfUkJUSU1FT1VUOiBUcmFuc2FrdGlvbnN6d2VpZyB3dXJkZSB6dXLDvGNrZ2Vyb2xsdDogWmVpdMO8YmVyc2NocmVpdHVuZwBYQV9SQkRFQURMT0NLOiBUcmFuc2FrdGlvbnN6d2VpZyB3dXJkZSB6dXLDvGNrZ2Vyb2xsdDogRGVhZGxvY2sgZW50ZGVja3QAVm9yYmVyZWl0ZXRlIEFud2Vpc3VuZ2VuIG3DvHNzZW4gbm9jaCBlaW5tYWwgdm9yYmVyZWl0ZXQgd2VyZGVuAERpZSBERUxBWUVELU9wdGlvbiB3aXJkIGbDvHIgVGFiZWxsZSAnJS0uMTkycycgbmljaHQgdW50ZXJzdMO8dHp0AERpZSBNYXN0ZXItSW5mby1TdHJ1a3R1ciBleGlzdGllcnQgbmljaHQAT3B0aW9uIDwlLS42NHM+IGlnbm9yaWVydABFaW5nZWJhdXRlIFBsdWdpbnMga8O2bm5lbiBuaWNodCBnZWzDtnNjaHQgd2VyZGVuAFBsdWdpbiB3aXJkIHZlcndlbmRldCB1bmQgd2lyZCBlcnN0IGJlaW0gSGVydW50ZXJmYWhyZW4gZGVpbnN0YWxsaWVydAAlcyBWYXJpYWJsZSAnJXMnIGlzdCBudXIgbGVzYmFyLiBCZW51dHplbiBTaWUgU0VUICVzLCB1bSBlaW5lbiBXZXJ0IHp1enV3ZWlzZW4AU3BlaWNoZXItRW5naW5lICVzIHVudGVyc3TDvHR6dCBmw7xyIGRpZXNlIEFud2Vpc3VuZyBrZWluIFJvbGxiYWNrLiBUcmFuc2FrdGlvbiB3dXJkZSB6dXLDvGNrZ2Vyb2xsdCB1bmQgbXVzcyBuZXUgZ2VzdGFydGV0IHdlcmRlbgBVbmVyd2FydGV0ZSBEYXRlbiB2b20gSGVhcnRiZWF0IGRlcyBNYXN0ZXJzOiAlcwBUaGUgcmVxdWVzdGVkIHZhbHVlIGZvciB0aGUgaGVhcnRiZWF0IHBlcmlvZCBpcyBlaXRoZXIgbmVnYXRpdmUgb3IgZXhjZWVkcyB0aGUgbWF4aW11bSBhbGxvd2VkICglcyBzZWNvbmRzKS4ARmVobGVyaGFmdGVzIFNjaGVtYSBmw7xyIG15c3FsLm5kYl9yZXBsaWNhdGlvbiB0YWJsZS4gTWVsZHVuZzogJS0uNjRzAEZlaGxlciBiZWltIFBhcnNlbiBlaW5lciBLb25mbGlrdC1GdW5rdGlvbi4gTWVsZHVuZzogJS0uNjRzAFNjaHJlaWJlbiBpbiBBdXNuYWhtZS1UYWJlbGxlIGZlaGxnZXNjaGxhZ2VuLiBNZWxkdW5nOiAlLS4xMjhzAEtvbW1lbnRhciBmw7xyIFRhYmVsbGUgJyUtLjY0cycgaXN0IHp1IGxhbmcgKG1heCA9ICVsdSkAS29tbWVudGFyIGbDvHIgRmVsZCAnJS0uNjRzJyBpc3QgenUgbGFuZyAobWF4ID0gJWx1KQBGVU5DVElPTiAlcyBleGlzdGllcnQgbmljaHQuIEVybMOkdXRlcnVuZ2VuIGltIEFic2Nobml0dCAnRnVuY3Rpb24gTmFtZSBQYXJzaW5nIGFuZCBSZXNvbHV0aW9uJyBpbSBSZWZlcmVuemhhbmRidWNoAERhdGVuYmFuawBUYWJlbGxlAFBhcnRpdGlvbgBVbnRlcnBhcnRpdGlvbgBUZW1wb3LDpHIAVW1iZW5hbm50AFp1IHZpZWxlIGFrdGl2ZSBzaW11bHRhbmUgVHJhbnNha3Rpb25lbgBOaWNodC1BU0NJSS1UcmVubmFyZ3VtZW50ZSB3ZXJkZW4gbmljaHQgdm9sbHN0w6RuZGlnIHVudGVyc3TDvHR6dABEZWJ1ZyBTeW5jIFBvaW50IFdhcnRlemVpdCDDvGJlcnNjaHJpdHRlbgBEZWJ1ZyBTeW5jIFBvaW50IEhpdCBMaW1pdCBlcnJlaWNodABJbmZvcm1hdGlvbnNlbGVtZW50ICclcycgZsO8ciBEdXBsaWthdGJlZGluZ3VuZwBVbmJlaGFuZGVsdGUgYmVudXR6ZXJkZWZpbmllcnRlIFdhcm5iZWRpbmd1bmcAVW5iZWhhbmRlbHRlIGJlbnV0emVyZGVmaW5pZXJ0ZSBOaWNodC1nZWZ1bmRlbi1CZWRpbmd1bmcAVW5iZWhhbmRlbHRlIGJlbnV0emVyZGVmaW5pZXJ0ZSBBdXNuYWhtZWJlZGluZ3VuZwBSRVNJR05BTCBiZWkgbmljaHQgYWt0aXZlbSBIYW5kbGVyAFNJR05BTC9SRVNJR05BTCBrYW5uIG51ciBtaXQgZWluZXIgQmVkaW5ndW5nIChDT05ESVRJT04pIGJlbnV0enQgd2VyZGVuLCBkaWUgYmVpIFNRTFNUQVRFIGRlZmluaWVydCB3dXJkZQBEYXRlbiBnZWvDvHJ6dCBmw7xyIEJlZGluZ3VuZ3NlbGVtZW50ICclcycARGF0ZW4genUgbGFuZyBmw7xyIEJlZGluZ3VuZ3NlbGVtZW50ICclcycAVW5iZWthbm50ZSBMb2NhbGU6ICclLS42NHMnAERpZSBhbmdlZm9yZGVydGUgU2VydmVyLUlEICVkIHN0ZWh0IGltIEtvbmZsaWt0IG1pdCBkZXIgU3RhcnRvcHRpb24gLS1yZXBsaWNhdGUtc2FtZS1zZXJ2ZXItaWQgZsO8ciBkZW4gU2xhdmUAQWJmcmFnZW4tQ2FjaGUgaXN0IGRlYWt0aXZpZXJ0LiBTdGFydGVuIFNpZSBkZW4gU2VydmVyIG5ldSBtaXQgcXVlcnlfY2FjaGVfdHlwZT0xLCB1bSBpaG4genUgYWt0aXZpZXJlbgBQYXJ0aXRpb25zZmVsZCAnJS0uMTkycycgaXN0IGVpbiBEdXBsaWthdABJbmtvbnNpc3RlbnogYmVpIGRlciBCZW51dHp1bmcgdm9uIFNwYWx0ZW5saXN0ZW4gZsO8ciBQYXJ0aXRpb25pZXJ1bmcAUGFydGl0aW9uc3NwYWx0ZW53ZXJ0ZSBzaW5kIHZvbSBmYWxzY2hlbiBUeXAAWnUgdmllbGUgRmVsZGVyIGluICclLS4xOTJzJwBNQVhWQUxVRSBrYW5uIG5pY2h0IGFscyBXZXJ0IGluIFZBTFVFUyBJTiB2ZXJ3ZW5kZXQgd2VyZGVuAEbDvHIgZGVuIFBhcnRpb25pZXJ1bmdzdHlwICUtLjY0cyBkYXJmIGVzIG5pY2h0IG1laHIgYWxzIGVpbmVuIFdlcnQgZ2ViZW4AWmVpbGVuYXVzZHLDvGNrZSBpbiBWQUxVRVMgSU4gc2luZCBudXIgZsO8ciBNZWhyZmVsZC1TcGFsdGVucGFydGlvbmllcnVuZyBlcmxhdWJ0AEZlbGQgJyUtLjE5MnMnIGlzdCBmw7xyIGRpZXNlIEFydCB2b24gUGFydGl0aW9uaWVydW5nIHZvbiBlaW5lbSBuaWNodCB6dWzDpHNzaWdlbiBUeXAARGllIEdlc2FtdGzDpG5nZSBkZXIgUGFydGl0aW9uc2ZlbGRlciBpc3QgenUgZ3Jvw58AQ2Fubm90IGV4ZWN1dGUgc3RhdGVtZW50OiBpbXBvc3NpYmxlIHRvIHdyaXRlIHRvIGJpbmFyeSBsb2cgc2luY2UgYm90aCByb3ctaW5jYXBhYmxlIGVuZ2luZXMgYW5kIHN0YXRlbWVudC1pbmNhcGFibGUgZW5naW5lcyBhcmUgaW52b2x2ZWQuAENhbm5vdCBleGVjdXRlIHN0YXRlbWVudDogaW1wb3NzaWJsZSB0byB3cml0ZSB0byBiaW5hcnkgbG9nIHNpbmNlIEJJTkxPR19GT1JNQVQgPSBST1cgYW5kIGF0IGxlYXN0IG9uZSB0YWJsZSB1c2VzIGEgc3RvcmFnZSBlbmdpbmUgbGltaXRlZCB0byBzdGF0ZW1lbnQtYmFzZWQgbG9nZ2luZy4AQ2Fubm90IGV4ZWN1dGUgc3RhdGVtZW50OiBpbXBvc3NpYmxlIHRvIHdyaXRlIHRvIGJpbmFyeSBsb2cgc2luY2Ugc3RhdGVtZW50IGlzIHVuc2FmZSwgc3RvcmFnZSBlbmdpbmUgaXMgbGltaXRlZCB0byBzdGF0ZW1lbnQtYmFzZWQgbG9nZ2luZywgYW5kIEJJTkxPR19GT1JNQVQgPSBNSVhFRC4gJXMAQ2Fubm90IGV4ZWN1dGUgc3RhdGVtZW50OiBpbXBvc3NpYmxlIHRvIHdyaXRlIHRvIGJpbmFyeSBsb2cgc2luY2Ugc3RhdGVtZW50IGlzIGluIHJvdyBmb3JtYXQgYW5kIGF0IGxlYXN0IG9uZSB0YWJsZSB1c2VzIGEgc3RvcmFnZSBlbmdpbmUgbGltaXRlZCB0byBzdGF0ZW1lbnQtYmFzZWQgbG9nZ2luZy4AQ2Fubm90IGV4ZWN1dGUgc3RhdGVtZW50OiBpbXBvc3NpYmxlIHRvIHdyaXRlIHRvIGJpbmFyeSBsb2cgc2luY2UgQklOTE9HX0ZPUk1BVCA9IFNUQVRFTUVOVCBhbmQgYXQgbGVhc3Qgb25lIHRhYmxlIHVzZXMgYSBzdG9yYWdlIGVuZ2luZSBsaW1pdGVkIHRvIHJvdy1iYXNlZCBsb2dnaW5nLiVzAENhbm5vdCBleGVjdXRlIHN0YXRlbWVudDogaW1wb3NzaWJsZSB0byB3cml0ZSB0byBiaW5hcnkgbG9nIHNpbmNlIHN0YXRlbWVudCBpcyBpbiByb3cgZm9ybWF0IGFuZCBCSU5MT0dfRk9STUFUID0gU1RBVEVNRU5ULgBDYW5ub3QgZXhlY3V0ZSBzdGF0ZW1lbnQ6IGltcG9zc2libGUgdG8gd3JpdGUgdG8gYmluYXJ5IGxvZyBzaW5jZSBtb3JlIHRoYW4gb25lIGVuZ2luZSBpcyBpbnZvbHZlZCBhbmQgYXQgbGVhc3Qgb25lIGVuZ2luZSBpcyBzZWxmLWxvZ2dpbmcuAFRoZSBzdGF0ZW1lbnQgaXMgdW5zYWZlIGJlY2F1c2UgaXQgdXNlcyBhIExJTUlUIGNsYXVzZS4gVGhpcyBpcyB1bnNhZmUgYmVjYXVzZSB0aGUgc2V0IG9mIHJvd3MgaW5jbHVkZWQgY2Fubm90IGJlIHByZWRpY3RlZC4AVGhlIHN0YXRlbWVudCBpcyB1bnNhZmUgYmVjYXVzZSBpdCB1c2VzIElOU0VSVCBERUxBWUVELiBUaGlzIGlzIHVuc2FmZSBiZWNhdXNlIHRoZSB0aW1lcyB3aGVuIHJvd3MgYXJlIGluc2VydGVkIGNhbm5vdCBiZSBwcmVkaWN0ZWQuAFRoZSBzdGF0ZW1lbnQgaXMgdW5zYWZlIGJlY2F1c2UgaXQgdXNlcyB0aGUgZ2VuZXJhbCBsb2csIHNsb3cgcXVlcnkgbG9nLCBvciBwZXJmb3JtYW5jZV9zY2hlbWEgdGFibGUocykuIFRoaXMgaXMgdW5zYWZlIGJlY2F1c2Ugc3lzdGVtIHRhYmxlcyBtYXkgZGlmZmVyIG9uIHJlcGxpY2FzLgBTdGF0ZW1lbnQgaXMgdW5zYWZlIGJlY2F1c2UgaXQgaW52b2tlcyBhIHRyaWdnZXIgb3IgYSBzdG9yZWQgZnVuY3Rpb24gdGhhdCBpbnNlcnRzIGludG8gYW4gQVVUT19JTkNSRU1FTlQgY29sdW1uLiBJbnNlcnRlZCB2YWx1ZXMgY2Fubm90IGJlIGxvZ2dlZCBjb3JyZWN0bHkuAFN0YXRlbWVudCBpcyB1bnNhZmUgYmVjYXVzZSBpdCB1c2VzIGEgVURGIHdoaWNoIG1heSBub3QgcmV0dXJuIHRoZSBzYW1lIHZhbHVlIG9uIHRoZSByZXBsaWNhLgBTdGF0ZW1lbnQgaXMgdW5zYWZlIGJlY2F1c2UgaXQgdXNlcyBhIHN5c3RlbSB2YXJpYWJsZSB0aGF0IG1heSBoYXZlIGEgZGlmZmVyZW50IHZhbHVlIG9uIHRoZSByZXBsaWNhLgBTdGF0ZW1lbnQgaXMgdW5zYWZlIGJlY2F1c2UgaXQgdXNlcyBhIHN5c3RlbSBmdW5jdGlvbiB0aGF0IG1heSByZXR1cm4gYSBkaWZmZXJlbnQgdmFsdWUgb24gdGhlIHJlcGxpY2EuAFN0YXRlbWVudCBpcyB1bnNhZmUgYmVjYXVzZSBpdCBhY2Nlc3NlcyBhIG5vbi10cmFuc2FjdGlvbmFsIHRhYmxlIGFmdGVyIGFjY2Vzc2luZyBhIHRyYW5zYWN0aW9uYWwgdGFibGUgd2l0aGluIHRoZSBzYW1lIHRyYW5zYWN0aW9uLgAlcyBTdGF0ZW1lbnQ6ICVzAENvbHVtbiAlZCBvZiB0YWJsZSAnJS0uMTkycy4lLS4xOTJzJyBjYW5ub3QgYmUgY29udmVydGVkIGZyb20gdHlwZSAnJS0uMzJzJyB0byB0eXBlICclLS4zMnMnAENhbid0IGNyZWF0ZSBjb252ZXJzaW9uIHRhYmxlIGZvciB0YWJsZSAnJS0uMTkycy4lLS4xOTJzJwBDYW5ub3QgbW9kaWZ5IEBAc2Vzc2lvbi5iaW5sb2dfZm9ybWF0IGluc2lkZSBhIHRyYW5zYWN0aW9uAFRoZSBwYXRoIHNwZWNpZmllZCBmb3IgJS42NHMgaXMgdG9vIGxvbmcuACclcycgaXN0IHZlcmFsdGV0IHVuZCB3aXJkIGluIGVpbmVyIHp1a8O8bmZ0aWdlbiBWZXJzaW9uIGVudGZlcm50IHdlcmRlbi4ATmF0aXZlIHRhYmxlICclLS42NHMnLiclLS42NHMnIGhhcyB0aGUgd3Jvbmcgc3RydWN0dXJlAEludmFsaWQgcGVyZm9ybWFuY2Vfc2NoZW1hIHVzYWdlLgBUYWJsZSAnJXMnLiclcycgd2FzIHNraXBwZWQgc2luY2UgaXRzIGRlZmluaXRpb24gaXMgYmVpbmcgbW9kaWZpZWQgYnkgY29uY3VycmVudCBEREwgc3RhdGVtZW50AENhbm5vdCBtb2RpZnkgQEBzZXNzaW9uLmJpbmxvZ19kaXJlY3Rfbm9uX3RyYW5zYWN0aW9uYWxfdXBkYXRlcyBpbnNpZGUgYSB0cmFuc2FjdGlvbgBDYW5ub3QgY2hhbmdlIHRoZSBiaW5sb2cgZGlyZWN0IGZsYWcgaW5zaWRlIGEgc3RvcmVkIGZ1bmN0aW9uIG9yIHRyaWdnZXIARWluIHJhdW1iZXpvZ2VuZXIgSW5kZXggKFNQQVRJQUwpIGRhcmYgbnVyIFNwYWx0ZW4gZ2VvbWV0cmlzY2hlbiBUeXBzIGVudGhhbHRlbgBDb21tZW50IGZvciBpbmRleCAnJS0uNjRzJyBpcyB0b28gbG9uZyAobWF4ID0gJWx1KQBXYWl0IG9uIGEgbG9jayB3YXMgYWJvcnRlZCBkdWUgdG8gYSBwZW5kaW5nIGV4Y2x1c2l2ZSBsb2NrACVzIHZhbHVlIGlzIG91dCBvZiByYW5nZSBpbiAnJXMnAEEgdmFyaWFibGUgb2YgYSBub24taW50ZWdlciBiYXNlZCB0eXBlIGluIExJTUlUIGNsYXVzZQBNaXhpbmcgc2VsZi1sb2dnaW5nIGFuZCBub24tc2VsZi1sb2dnaW5nIGVuZ2luZXMgaW4gYSBzdGF0ZW1lbnQgaXMgdW5zYWZlLgBTdGF0ZW1lbnQgYWNjZXNzZXMgbm9udHJhbnNhY3Rpb25hbCB0YWJsZSBhcyB3ZWxsIGFzIHRyYW5zYWN0aW9uYWwgb3IgdGVtcG9yYXJ5IHRhYmxlLCBhbmQgd3JpdGVzIHRvIGFueSBvZiB0aGVtLgBDYW5ub3QgbW9kaWZ5IEBAc2Vzc2lvbi5zcWxfbG9nX2JpbiBpbnNpZGUgYSB0cmFuc2FjdGlvbgBDYW5ub3QgY2hhbmdlIHRoZSBzcWxfbG9nX2JpbiBpbnNpZGUgYSBzdG9yZWQgZnVuY3Rpb24gb3IgdHJpZ2dlcgBGYWlsZWQgdG8gcmVhZCBmcm9tIHRoZSAucGFyIGZpbGUAVkFMVUVTIHZhbHVlIGZvciBwYXJ0aXRpb24gJyUtLjY0cycgbXVzdCBoYXZlIHR5cGUgSU5UAEJlbnV0emVyICclLS40OHMnQCclLS42NHMnIGhhdCBrZWluZSBadWdyaWZmc2JlcmVjaHRpZ3VuZwBTRVQgUEFTU1dPUkQgaGFzIG5vIHNpZ25pZmljYW5jZSBmb3IgdXNlcnMgYXV0aGVudGljYXRpbmcgdmlhIHBsdWdpbnMAR1JBTlQgd2l0aCBJREVOVElGSUVEIFdJVEggaXMgaWxsZWdhbCBiZWNhdXNlIHRoZSB1c2VyICUtLipzIGFscmVhZHkgZXhpc3RzAENhbm5vdCB0cnVuY2F0ZSBhIHRhYmxlIHJlZmVyZW5jZWQgaW4gYSBmb3JlaWduIGtleSBjb25zdHJhaW50ICglLjE5MnMpAFBsdWdpbiAnJXMnIGlzIGZvcmNlX3BsdXNfcGVybWFuZW50IGFuZCBjYW4gbm90IGJlIHVubG9hZGVkAFRoZSByZXF1ZXN0ZWQgdmFsdWUgZm9yIHRoZSBoZWFydGJlYXQgcGVyaW9kIGlzIGxlc3MgdGhhbiAxIG1pbGxpc2Vjb25kLiBUaGUgdmFsdWUgaXMgcmVzZXQgdG8gMCwgbWVhbmluZyB0aGF0IGhlYXJ0YmVhdGluZyB3aWxsIGVmZmVjdGl2ZWx5IGJlIGRpc2FibGVkLgBUaGUgcmVxdWVzdGVkIHZhbHVlIGZvciB0aGUgaGVhcnRiZWF0IHBlcmlvZCBleGNlZWRzIHRoZSB2YWx1ZSBvZiBgcmVwbGljYV9uZXRfdGltZW91dCcgc2Vjb25kcy4gQSBzZW5zaWJsZSB2YWx1ZSBmb3IgdGhlIHBlcmlvZCBzaG91bGQgYmUgbGVzcyB0aGFuIHRoZSB0aW1lb3V0LgBNdWx0aS1yb3cgc3RhdGVtZW50cyByZXF1aXJlZCBtb3JlIHRoYW4gJ21heF9iaW5sb2dfc3RtdF9jYWNoZV9zaXplJyBieXRlcyBvZiBzdG9yYWdlOyBpbmNyZWFzZSB0aGlzIG15c3FsZCB2YXJpYWJsZSBhbmQgdHJ5IGFnYWluAFByaW1hcnkga2V5L3BhcnRpdGlvbiBrZXkgdXBkYXRlIGlzIG5vdCBhbGxvd2VkIHNpbmNlIHRoZSB0YWJsZSBpcyB1cGRhdGVkIGJvdGggYXMgJyUtLjE5MnMnIGFuZCAnJS0uMTkycycuAFRhYmxlIHJlYnVpbGQgcmVxdWlyZWQuIFBsZWFzZSBkbyAiQUxURVIgVEFCTEUgYCUtLjY0c2AgRk9SQ0UiIG9yIGR1bXAvcmVsb2FkIHRvIGZpeCBpdCEAVGhlIHZhbHVlIG9mICclcycgc2hvdWxkIGJlIG5vIGxlc3MgdGhhbiB0aGUgdmFsdWUgb2YgJyVzJwBJbmRleCBjb2x1bW4gc2l6ZSB0b28gbGFyZ2UuIFRoZSBtYXhpbXVtIGNvbHVtbiBzaXplIGlzICVsdSBieXRlcy4AVHJpZ2dlciAnJS0uNjRzJyBoYXMgYW4gZXJyb3IgaW4gaXRzIGJvZHk6ICclLS4yNTZzJwBVbmtub3duIHRyaWdnZXIgaGFzIGFuIGVycm9yIGluIGl0cyBib2R5OiAnJS0uMjU2cycASW5kZXggJXMgaXMgY29ycnVwdGVkAFVuZG8gbG9nIHJlY29yZCBpcyB0b28gYmlnLgBJTlNFUlQgSUdOT1JFLi4uIFNFTEVDVCBpcyB1bnNhZmUgYmVjYXVzZSB0aGUgb3JkZXIgaW4gd2hpY2ggcm93cyBhcmUgcmV0cmlldmVkIGJ5IHRoZSBTRUxFQ1QgZGV0ZXJtaW5lcyB3aGljaCAoaWYgYW55KSByb3dzIGFyZSBpZ25vcmVkLiBUaGlzIG9yZGVyIGNhbm5vdCBiZSBwcmVkaWN0ZWQgYW5kIG1heSBkaWZmZXIgb24gc291cmNlIGFuZCB0aGUgcmVwbGljYS4ASU5TRVJULi4uIFNFTEVDVC4uLiBPTiBEVVBMSUNBVEUgS0VZIFVQREFURSBpcyB1bnNhZmUgYmVjYXVzZSB0aGUgb3JkZXIgaW4gd2hpY2ggcm93cyBhcmUgcmV0cmlldmVkIGJ5IHRoZSBTRUxFQ1QgZGV0ZXJtaW5lcyB3aGljaCAoaWYgYW55KSByb3dzIGFyZSB1cGRhdGVkLiBUaGlzIG9yZGVyIGNhbm5vdCBiZSBwcmVkaWN0ZWQgYW5kIG1heSBkaWZmZXIgb24gc291cmNlIGFuZCB0aGUgcmVwbGljYS4AUkVQTEFDRS4uLiBTRUxFQ1QgaXMgdW5zYWZlIGJlY2F1c2UgdGhlIG9yZGVyIGluIHdoaWNoIHJvd3MgYXJlIHJldHJpZXZlZCBieSB0aGUgU0VMRUNUIGRldGVybWluZXMgd2hpY2ggKGlmIGFueSkgcm93cyBhcmUgcmVwbGFjZWQuIFRoaXMgb3JkZXIgY2Fubm90IGJlIHByZWRpY3RlZCBhbmQgbWF5IGRpZmZlciBvbiBzb3VyY2UgYW5kIHRoZSByZXBsaWNhLgBDUkVBVEUuLi4gSUdOT1JFIFNFTEVDVCBpcyB1bnNhZmUgYmVjYXVzZSB0aGUgb3JkZXIgaW4gd2hpY2ggcm93cyBhcmUgcmV0cmlldmVkIGJ5IHRoZSBTRUxFQ1QgZGV0ZXJtaW5lcyB3aGljaCAoaWYgYW55KSByb3dzIGFyZSBpZ25vcmVkLiBUaGlzIG9yZGVyIGNhbm5vdCBiZSBwcmVkaWN0ZWQgYW5kIG1heSBkaWZmZXIgb24gc291cmNlIGFuZCB0aGUgcmVwbGljYS4AQ1JFQVRFLi4uIFJFUExBQ0UgU0VMRUNUIGlzIHVuc2FmZSBiZWNhdXNlIHRoZSBvcmRlciBpbiB3aGljaCByb3dzIGFyZSByZXRyaWV2ZWQgYnkgdGhlIFNFTEVDVCBkZXRlcm1pbmVzIHdoaWNoIChpZiBhbnkpIHJvd3MgYXJlIHJlcGxhY2VkLiBUaGlzIG9yZGVyIGNhbm5vdCBiZSBwcmVkaWN0ZWQgYW5kIG1heSBkaWZmZXIgb24gc291cmNlIGFuZCB0aGUgcmVwbGljYS4AVVBEQVRFIElHTk9SRSBpcyB1bnNhZmUgYmVjYXVzZSB0aGUgb3JkZXIgaW4gd2hpY2ggcm93cyBhcmUgdXBkYXRlZCBkZXRlcm1pbmVzIHdoaWNoIChpZiBhbnkpIHJvd3MgYXJlIGlnbm9yZWQuIFRoaXMgb3JkZXIgY2Fubm90IGJlIHByZWRpY3RlZCBhbmQgbWF5IGRpZmZlciBvbiBzb3VyY2UgYW5kIHRoZSByZXBsaWNhLgBQbHVnaW4gJyVzJyBpcyBtYXJrZWQgYXMgbm90IGR5bmFtaWNhbGx5IHVuaW5zdGFsbGFibGUuIFlvdSBoYXZlIHRvIHN0b3AgdGhlIHNlcnZlciB0byB1bmluc3RhbGwgaXQuAFBsdWdpbiAnJXMnIGlzIG1hcmtlZCBhcyBub3QgZHluYW1pY2FsbHkgaW5zdGFsbGFibGUuIFlvdSBoYXZlIHRvIHN0b3AgdGhlIHNlcnZlciB0byBpbnN0YWxsIGl0LgBTdGF0ZW1lbnRzIHdyaXRpbmcgdG8gYSB0YWJsZSB3aXRoIGFuIGF1dG8taW5jcmVtZW50IGNvbHVtbiBhZnRlciBzZWxlY3RpbmcgZnJvbSBhbm90aGVyIHRhYmxlIGFyZSB1bnNhZmUgYmVjYXVzZSB0aGUgb3JkZXIgaW4gd2hpY2ggcm93cyBhcmUgcmV0cmlldmVkIGRldGVybWluZXMgd2hhdCAoaWYgYW55KSByb3dzIHdpbGwgYmUgd3JpdHRlbi4gVGhpcyBvcmRlciBjYW5ub3QgYmUgcHJlZGljdGVkIGFuZCBtYXkgZGlmZmVyIG9uIHNvdXJjZSBhbmQgdGhlIHJlcGxpY2EuAENSRUFURSBUQUJMRS4uLiBTRUxFQ1QuLi4gIG9uIGEgdGFibGUgd2l0aCBhbiBhdXRvLWluY3JlbWVudCBjb2x1bW4gaXMgdW5zYWZlIGJlY2F1c2UgdGhlIG9yZGVyIGluIHdoaWNoIHJvd3MgYXJlIHJldHJpZXZlZCBieSB0aGUgU0VMRUNUIGRldGVybWluZXMgd2hpY2ggKGlmIGFueSkgcm93cyBhcmUgaW5zZXJ0ZWQuIFRoaXMgb3JkZXIgY2Fubm90IGJlIHByZWRpY3RlZCBhbmQgbWF5IGRpZmZlciBvbiBzb3VyY2UgYW5kIHRoZSByZXBsaWNhLgBJTlNFUlQuLi4gT04gRFVQTElDQVRFIEtFWSBVUERBVEUgIG9uIGEgdGFibGUgd2l0aCBtb3JlIHRoYW4gb25lIFVOSVFVRSBLRVkgaXMgdW5zYWZlAFRhYmxlIGlzIGJlaW5nIHVzZWQgaW4gZm9yZWlnbiBrZXkgY2hlY2suAFN0b3JhZ2UgZW5naW5lICclcycgZG9lcyBub3Qgc3VwcG9ydCBzeXN0ZW0gdGFibGVzLiBbJXMuJXNdAElOU0VSVCBpbnRvIGF1dG9pbmNyZW1lbnQgZmllbGQgd2hpY2ggaXMgbm90IHRoZSBmaXJzdCBwYXJ0IGluIHRoZSBjb21wb3NlZCBwcmltYXJ5IGtleSBpcyB1bnNhZmUuAEthbm4gJXMuJXMgbmljaHQgZWlubGVzZW4uIFRhYmVsbGUgaXN0IHdhaHJzY2hlaW5saWNoIGJlc2Now6RkaWd0AFRoZSByZXF1ZXN0ZWQgdmFsdWUgJXMgZm9yIHRoZSBzb3VyY2UgZGVsYXkgZXhjZWVkcyB0aGUgbWF4aW11bSAldQBPbmx5IEZvcm1hdF9kZXNjcmlwdGlvbl9sb2dfZXZlbnQgYW5kIHJvdyBldmVudHMgYXJlIGFsbG93ZWQgaW4gQklOTE9HIHN0YXRlbWVudHMgKGJ1dCAlcyB3YXMgcHJvdmlkZWQpAE5vbiBtYXRjaGluZyBhdHRyaWJ1dGUgJyUtLjY0cycgYmV0d2VlbiBwYXJ0aXRpb24gYW5kIHRhYmxlAFRhYmxlIHRvIGV4Y2hhbmdlIHdpdGggcGFydGl0aW9uIGlzIHBhcnRpdGlvbmVkOiAnJS0uNjRzJwBUYWJsZSB0byBleGNoYW5nZSB3aXRoIHBhcnRpdGlvbiBpcyB0ZW1wb3Jhcnk6ICclLS42NHMnAFN1YnBhcnRpdGlvbmVkIHRhYmxlLCB1c2Ugc3VicGFydGl0aW9uIGluc3RlYWQgb2YgcGFydGl0aW9uAFVua25vd24gcGFydGl0aW9uICclLS42NHMnIGluIHRhYmxlICclLS42NHMnAFRhYmxlcyBoYXZlIGRpZmZlcmVudCBkZWZpbml0aW9ucwBGb3VuZCBhIHJvdyB0aGF0IGRvZXMgbm90IG1hdGNoIHRoZSBwYXJ0aXRpb24AT3B0aW9uIGJpbmxvZ19jYWNoZV9zaXplICglbHUpIGlzIGdyZWF0ZXIgdGhhbiBtYXhfYmlubG9nX2NhY2hlX3NpemUgKCVsdSk7IHNldHRpbmcgYmlubG9nX2NhY2hlX3NpemUgZXF1YWwgdG8gbWF4X2JpbmxvZ19jYWNoZV9zaXplLgBDYW5ub3QgdXNlICUtLjY0cyBhY2Nlc3Mgb24gaW5kZXggJyUtLjY0cycgZHVlIHRvIHR5cGUgb3IgY29sbGF0aW9uIGNvbnZlcnNpb24gb24gZmllbGQgJyUtLjY0cycAVGFibGUgdG8gZXhjaGFuZ2Ugd2l0aCBwYXJ0aXRpb24gaGFzIGZvcmVpZ24ga2V5IHJlZmVyZW5jZXM6ICclLS42NHMnAEtleSB2YWx1ZSAnJS0uMTkycycgd2FzIG5vdCBmb3VuZCBpbiB0YWJsZSAnJS0uMTkycy4lLS4xOTJzJwBEYXRhIGZvciBjb2x1bW4gJyVzJyB0b28gbG9uZwBSZXBsaWNhdGlvbiBldmVudCBjaGVja3N1bSB2ZXJpZmljYXRpb24gZmFpbGVkIHdoaWxlIHJlYWRpbmcgZnJvbSBuZXR3b3JrLgBSZXBsaWNhdGlvbiBldmVudCBjaGVja3N1bSB2ZXJpZmljYXRpb24gZmFpbGVkIHdoaWxlIHJlYWRpbmcgZnJvbSBhIGxvZyBmaWxlLgBPcHRpb24gYmlubG9nX3N0bXRfY2FjaGVfc2l6ZSAoJWx1KSBpcyBncmVhdGVyIHRoYW4gbWF4X2JpbmxvZ19zdG10X2NhY2hlX3NpemUgKCVsdSk7IHNldHRpbmcgYmlubG9nX3N0bXRfY2FjaGVfc2l6ZSBlcXVhbCB0byBtYXhfYmlubG9nX3N0bXRfY2FjaGVfc2l6ZS4AQ2FuJ3QgdXBkYXRlIHRhYmxlICclLS4xOTJzJyB3aGlsZSAnJS0uMTkycycgaXMgYmVpbmcgY3JlYXRlZC4AUEFSVElUSU9OICgpIGNsYXVzZSBvbiBub24gcGFydGl0aW9uZWQgdGFibGUARm91bmQgYSByb3cgbm90IG1hdGNoaW5nIHRoZSBnaXZlbiBwYXJ0aXRpb24gc2V0AERpZSBwYXJ0aXRpb24gJyUtLjY0cycgZXhpc3RpZXJ0IG5pY2h0AEZhaWx1cmUgd2hpbGUgY2hhbmdpbmcgdGhlIHR5cGUgb2YgcmVwbGljYXRpb24gcmVwb3NpdG9yeTogJXMuAFRoZSBjcmVhdGlvbiBvZiBzb21lIHRlbXBvcmFyeSB0YWJsZXMgY291bGQgbm90IGJlIHJvbGxlZCBiYWNrLgBTb21lIHRlbXBvcmFyeSB0YWJsZXMgd2VyZSBkcm9wcGVkLCBidXQgdGhlc2Ugb3BlcmF0aW9ucyBjb3VsZCBub3QgYmUgcm9sbGVkIGJhY2suACVzIGlzIG5vdCBzdXBwb3J0ZWQgaW4gbXVsdGktdGhyZWFkZWQgcmVwbGljYSBtb2RlLiAlcwBUaGUgbnVtYmVyIG9mIG1vZGlmaWVkIGRhdGFiYXNlcyBleGNlZWRzIHRoZSBtYXhpbXVtICVkOyB0aGUgZGF0YWJhc2UgbmFtZXMgd2lsbCBub3QgYmUgaW5jbHVkZWQgaW4gdGhlIHJlcGxpY2F0aW9uIGV2ZW50IG1ldGFkYXRhLgBDYW5ub3QgZXhlY3V0ZSB0aGUgY3VycmVudCBldmVudCBncm91cCBpbiB0aGUgcGFyYWxsZWwgbW9kZS4gRW5jb3VudGVyZWQgZXZlbnQgJXMsIHJlbGF5LWxvZyBuYW1lICVzLCBwb3NpdGlvbiAlcyB3aGljaCBwcmV2ZW50cyBleGVjdXRpb24gb2YgdGhpcyBldmVudCBncm91cCBpbiBwYXJhbGxlbCBtb2RlLiBSZWFzb246ICVzLgAlcwBGVUxMVEVYVCBpbmRleCBpcyBub3Qgc3VwcG9ydGVkIGZvciBwYXJ0aXRpb25lZCB0YWJsZXMuAEludmFsaWQgY29uZGl0aW9uIG51bWJlcgBTZW5kaW5nIHBhc3N3b3JkcyBpbiBwbGFpbiB0ZXh0IHdpdGhvdXQgU1NML1RMUyBpcyBleHRyZW1lbHkgaW5zZWN1cmUuAFN0b3JpbmcgTXlTUUwgdXNlciBuYW1lIG9yIHBhc3N3b3JkIGluZm9ybWF0aW9uIGluIHRoZSBjb25uZWN0aW9uIG1ldGFkYXRhIHJlcG9zaXRvcnkgaXMgbm90IHNlY3VyZSBhbmQgaXMgdGhlcmVmb3JlIG5vdCByZWNvbW1lbmRlZC4gUGxlYXNlIGNvbnNpZGVyIHVzaW5nIHRoZSBVU0VSIGFuZCBQQVNTV09SRCBjb25uZWN0aW9uIG9wdGlvbnMgZm9yIFNUQVJUIFJFUExJQ0E7IHNlZSB0aGUgJ1NUQVJUIFJFUExJQ0EgU3ludGF4JyBpbiB0aGUgTXlTUUwgTWFudWFsIGZvciBtb3JlIGluZm9ybWF0aW9uLgBGcmVtZHNjaGzDvHNzZWwtQmVzY2hyw6Rua3VuZyBmw7xyIFRhYmVsbGUgJyUuMTkycycsIERhdGVuc2F0eiAnJS0uMTkycycgd8O8cmRlIHp1IGVpbmVtIGRvcHBlbHRlbiBFaW50cmFnIGluIFRhYmVsbGUgJyUuMTkycycsIFNjaGzDvHNzZWwgJyUuMTkycycgZsO8aHJlbgBGcmVtZHNjaGzDvHNzZWwtQmVzY2hyw6Rua3VuZyBmw7xyIFRhYmVsbGUgJyUuMTkycycsIERhdGVuc2F0eiAnJS0uMTkycycgd8O8cmRlIHp1IGVpbmVtIGRvcHBlbHRlbiBFaW50cmFnIGluIGVpbmVyIEtpbmQtVGFiZWxsZSBmw7xocmVuAFNldHRpbmcgYXV0aGVudGljYXRpb24gb3B0aW9ucyBpcyBub3QgcG9zc2libGUgd2hlbiBvbmx5IHRoZSBSZXBsaWNhIFNRTCBUaHJlYWQgaXMgYmVpbmcgc3RhcnRlZC4AVGhlIHRhYmxlIGRvZXMgbm90IGhhdmUgRlVMTFRFWFQgaW5kZXggdG8gc3VwcG9ydCB0aGlzIHF1ZXJ5AFRoZSBzeXN0ZW0gdmFyaWFibGUgJS4yMDBzIGNhbm5vdCBiZSBzZXQgaW4gc3RvcmVkIGZ1bmN0aW9ucyBvciB0cmlnZ2Vycy4AVGhlIHN5c3RlbSB2YXJpYWJsZSAlLjIwMHMgY2Fubm90IGJlIHNldCB3aGVuIHRoZXJlIGlzIGFuIG9uZ29pbmcgdHJhbnNhY3Rpb24uAFRoZSBzeXN0ZW0gdmFyaWFibGUgQEBTRVNTSU9OLkdUSURfTkVYVCBoYXMgdGhlIHZhbHVlICUuMjAwcywgd2hpY2ggaXMgbm90IGxpc3RlZCBpbiBAQFNFU1NJT04uR1RJRF9ORVhUX0xJU1QuAFRoZSBzeXN0ZW0gdmFyaWFibGUgQEBTRVNTSU9OLkdUSURfTkVYVCBjYW5ub3QgY2hhbmdlIGluc2lkZSBhIHRyYW5zYWN0aW9uLgBUaGUgc3RhdGVtZW50ICdTRVQgJS4yMDBzJyBjYW5ub3QgaW52b2tlIGEgc3RvcmVkIGZ1bmN0aW9uLgBUaGUgc3lzdGVtIHZhcmlhYmxlIEBAU0VTU0lPTi5HVElEX05FWFQgY2Fubm90IGJlICdBVVRPTUFUSUMnIHdoZW4gQEBTRVNTSU9OLkdUSURfTkVYVF9MSVNUIGlzIG5vbi1OVUxMLgBTa2lwcGluZyB0cmFuc2FjdGlvbiAlLjIwMHMgYmVjYXVzZSBpdCBoYXMgYWxyZWFkeSBiZWVuIGV4ZWN1dGVkIGFuZCBsb2dnZWQuAE1hbGZvcm1lZCBHVElEIHNldCBzcGVjaWZpY2F0aW9uICclLjIwMHMnLgBNYWxmb3JtZWQgR1RJRCBzZXQgZW5jb2RpbmcuAE1hbGZvcm1lZCBHVElEIHNwZWNpZmljYXRpb24gJyUuMjAwcycuAEltcG9zc2libGUgdG8gZ2VuZXJhdGUgR1RJRDogdGhlIGludGVnZXIgY29tcG9uZW50IHJlYWNoZWQgdGhlIG1heGltdW0gdmFsdWUuIFJlc3RhcnQgdGhlIHNlcnZlciB3aXRoIGEgbmV3IHNlcnZlcl91dWlkLgBQYXJhbWV0ZXJzIFNPVVJDRV9MT0dfRklMRSwgU09VUkNFX0xPR19QT1MsIFJFTEFZX0xPR19GSUxFIGFuZCBSRUxBWV9MT0dfUE9TIGNhbm5vdCBiZSBzZXQgd2hlbiBTT1VSQ0VfQVVUT19QT1NJVElPTiBpcyBhY3RpdmUuAENIQU5HRSBSRVBMSUNBVElPTiBTT1VSQ0UgVE8gU09VUkNFX0FVVE9fUE9TSVRJT04gPSAxIGNhbm5vdCBiZSBleGVjdXRlZCBiZWNhdXNlIEBAR0xPQkFMLkdUSURfTU9ERSA9IE9GRi4AQ2Fubm90IGV4ZWN1dGUgc3RhdGVtZW50cyB3aXRoIGltcGxpY2l0IGNvbW1pdCBpbnNpZGUgYSB0cmFuc2FjdGlvbiB3aGVuIEBAU0VTU0lPTi5HVElEX05FWFQgPT0gJ1VVSUQ6TlVNQkVSJy4AR1RJRF9NT0RFID0gT04gcmVxdWlyZXMgRU5GT1JDRV9HVElEX0NPTlNJU1RFTkNZID0gT04uAEBAR0xPQkFMLkdUSURfTU9ERSA9IE9OIG9yIE9OX1BFUk1JU1NJVkUgb3IgT0ZGX1BFUk1JU1NJVkUgcmVxdWlyZXMgLS1sb2ctYmluIGFuZCAtLWxvZy1yZXBsaWNhLXVwZGF0ZXMuAEBAU0VTU0lPTi5HVElEX05FWFQgY2Fubm90IGJlIHNldCB0byBVVUlEOk5VTUJFUiB3aGVuIEBAR0xPQkFMLkdUSURfTU9ERSA9IE9GRi4AQEBTRVNTSU9OLkdUSURfTkVYVCBjYW5ub3QgYmUgc2V0IHRvIEFOT05ZTU9VUyB3aGVuIEBAR0xPQkFMLkdUSURfTU9ERSA9IE9OLgBAQFNFU1NJT04uR1RJRF9ORVhUX0xJU1QgY2Fubm90IGJlIHNldCB0byBhIG5vbi1OVUxMIHZhbHVlIHdoZW4gQEBHTE9CQUwuR1RJRF9NT0RFID0gT0ZGLgBGb3VuZCBhIEd0aWRfbG9nX2V2ZW50IHdoZW4gQEBHTE9CQUwuR1RJRF9NT0RFID0gT0ZGLgBTdGF0ZW1lbnQgdmlvbGF0ZXMgR1RJRCBjb25zaXN0ZW5jeTogVXBkYXRlcyB0byBub24tdHJhbnNhY3Rpb25hbCB0YWJsZXMgY2FuIG9ubHkgYmUgZG9uZSBpbiBlaXRoZXIgYXV0b2NvbW1pdHRlZCBzdGF0ZW1lbnRzIG9yIHNpbmdsZS1zdGF0ZW1lbnQgdHJhbnNhY3Rpb25zLCBhbmQgbmV2ZXIgaW4gdGhlIHNhbWUgc3RhdGVtZW50IGFzIHVwZGF0ZXMgdG8gdHJhbnNhY3Rpb25hbCB0YWJsZXMuAFN0YXRlbWVudCB2aW9sYXRlcyBHVElEIGNvbnNpc3RlbmN5OiBDUkVBVEUgVEFCTEUgLi4uIFNFTEVDVC4AU3RhdGVtZW50IHZpb2xhdGVzIEdUSUQgY29uc2lzdGVuY3k6IENSRUFURSBURU1QT1JBUlkgVEFCTEUgYW5kIERST1AgVEVNUE9SQVJZIFRBQkxFIGNhbiBvbmx5IGJlIGV4ZWN1dGVkIG91dHNpZGUgdHJhbnNhY3Rpb25hbCBjb250ZXh0LiAgVGhlc2Ugc3RhdGVtZW50cyBhcmUgYWxzbyBub3QgYWxsb3dlZCBpbiBhIGZ1bmN0aW9uIG9yIHRyaWdnZXIgYmVjYXVzZSBmdW5jdGlvbnMgYW5kIHRyaWdnZXJzIGFyZSBhbHNvIGNvbnNpZGVyZWQgdG8gYmUgbXVsdGktc3RhdGVtZW50IHRyYW5zYWN0aW9ucy4AVGhlIHZhbHVlIG9mIEBAR0xPQkFMLkdUSURfTU9ERSBjYW4gb25seSBiZSBjaGFuZ2VkIG9uZSBzdGVwIGF0IGEgdGltZTogT0ZGIDwtPiBPRkZfUEVSTUlTU0lWRSA8LT4gT05fUEVSTUlTU0lWRSA8LT4gT04uIEFsc28gbm90ZSB0aGF0IHRoaXMgdmFsdWUgbXVzdCBiZSBzdGVwcGVkIHVwIG9yIGRvd24gc2ltdWx0YW5lb3VzbHkgb24gYWxsIHNlcnZlcnMuIFNlZSB0aGUgTWFudWFsIGZvciBpbnN0cnVjdGlvbnMuAENhbm5vdCByZXBsaWNhdGUgYmVjYXVzZSB0aGUgc291cmNlIHB1cmdlZCByZXF1aXJlZCBiaW5hcnkgbG9ncy4gUmVwbGljYXRlIHRoZSBtaXNzaW5nIHRyYW5zYWN0aW9ucyBmcm9tIGVsc2V3aGVyZSwgb3IgcHJvdmlzaW9uIGEgbmV3IHJlcGxpY2EgZnJvbSBiYWNrdXAuIENvbnNpZGVyIGluY3JlYXNpbmcgdGhlIHNvdXJjZSdzIGJpbmFyeSBsb2cgZXhwaXJhdGlvbiBwZXJpb2QuICVzAEBAU0VTU0lPTi5HVElEX05FWFQgY2Fubm90IGJlIGNoYW5nZWQgYnkgYSBjbGllbnQgdGhhdCBvd25zIGEgR1RJRC4gVGhlIGNsaWVudCBvd25zICVzLiBPd25lcnNoaXAgaXMgcmVsZWFzZWQgb24gQ09NTUlUIG9yIFJPTExCQUNLLgBVbmtub3duIEVYUExBSU4gZm9ybWF0IG5hbWU6ICclcycAQ2Fubm90IGV4ZWN1dGUgc3RhdGVtZW50IGluIGEgUkVBRCBPTkxZIHRyYW5zYWN0aW9uLgBDb21tZW50IGZvciB0YWJsZSBwYXJ0aXRpb24gJyUtLjY0cycgaXMgdG9vIGxvbmcgKG1heCA9ICVsdSkAUmVwbGljYSBpcyBub3QgY29uZmlndXJlZCBvciBmYWlsZWQgdG8gaW5pdGlhbGl6ZSBwcm9wZXJseS4gWW91IG11c3QgYXQgbGVhc3Qgc2V0IC0tc2VydmVyLWlkIHRvIGVuYWJsZSBlaXRoZXIgYSBzb3VyY2Ugb3IgYSByZXBsaWNhLiBBZGRpdGlvbmFsIGVycm9yIG1lc3NhZ2VzIGNhbiBiZSBmb3VuZCBpbiB0aGUgTXlTUUwgZXJyb3IgbG9nLgBJbm5vREIgcHJlc2VudGx5IHN1cHBvcnRzIG9uZSBGVUxMVEVYVCBpbmRleCBjcmVhdGlvbiBhdCBhIHRpbWUAQ2Fubm90IGNyZWF0ZSBGVUxMVEVYVCBpbmRleCBvbiB0ZW1wb3JhcnkgSW5ub0RCIHRhYmxlAENvbHVtbiAnJS0uMTkycycgaXMgb2Ygd3JvbmcgdHlwZSBmb3IgYW4gSW5ub0RCIEZVTExURVhUIGluZGV4AEluZGV4ICclLS4xOTJzJyBpcyBvZiB3cm9uZyB0eXBlIGZvciBhbiBJbm5vREIgRlVMTFRFWFQgaW5kZXgAQ3JlYXRpbmcgaW5kZXggJyUtLjE5MnMnIHJlcXVpcmVkIG1vcmUgdGhhbiAnaW5ub2RiX29ubGluZV9hbHRlcl9sb2dfbWF4X3NpemUnIGJ5dGVzIG9mIG1vZGlmaWNhdGlvbiBsb2cuIFBsZWFzZSB0cnkgYWdhaW4uAFVua25vd24gQUxHT1JJVEhNICclcycAVW5rbm93biBMT0NLIHR5cGUgJyVzJwBDSEFOR0UgUkVQTElDQVRJT04gU09VUkNFIGNhbm5vdCBiZSBleGVjdXRlZCB3aGVuIHRoZSByZXBsaWNhIHdhcyBzdG9wcGVkIHdpdGggYW4gZXJyb3Igb3Iga2lsbGVkIGluIE1UQSBtb2RlLiBDb25zaWRlciB1c2luZyBSRVNFVCBSRVBMSUNBIG9yIFNUQVJUIFJFUExJQ0EgVU5USUwuAENhbm5vdCByZWNvdmVyIGFmdGVyIFJFUExJQ0EgZXJyb3JlZCBvdXQgaW4gcGFyYWxsZWwgZXhlY3V0aW9uIG1vZGUuIEFkZGl0aW9uYWwgZXJyb3IgbWVzc2FnZXMgY2FuIGJlIGZvdW5kIGluIHRoZSBNeVNRTCBlcnJvciBsb2cuAENhbm5vdCBjbGVhbiB1cCB3b3JrZXIgaW5mbyB0YWJsZXMuIEFkZGl0aW9uYWwgZXJyb3IgbWVzc2FnZXMgY2FuIGJlIGZvdW5kIGluIHRoZSBNeVNRTCBlcnJvciBsb2cuAFNwYWx0ZW5hbnphaGwgdm9uICVzLiVzIGZhbHNjaC4gJWQgZXJ3YXJ0ZXQsIGFiZXIgJWQgZ2VmdW5kZW4uIFRhYmVsbGUgaXN0IHdhaHJzY2hlaW5saWNoIGJlc2Now6RkaWd0AFJlcGxpY2EgbXVzdCBzaWxlbnRseSByZXRyeSBjdXJyZW50IHRyYW5zYWN0aW9uAFRoZXJlIGlzIGEgZm9yZWlnbiBrZXkgY2hlY2sgcnVubmluZyBvbiB0YWJsZSAnJS0uMTkycycuIENhbm5vdCBkaXNjYXJkIHRoZSB0YWJsZS4AU2NoZW1hIG1pc21hdGNoICglcykAVGFibGUgJyUtLjE5MnMnIGluIHN5c3RlbSB0YWJsZXNwYWNlAElPIFJlYWQgZXJyb3I6ICglbHUsICVzKSAlcwBJTyBXcml0ZSBlcnJvcjogKCVsdSwgJXMpICVzAFRhYmxlc3BhY2UgaXMgbWlzc2luZyBmb3IgdGFibGUgJXMuAFRhYmxlc3BhY2UgJyUtLjE5MnMnIGV4aXN0cy4AVGFibGVzcGFjZSBoYXMgYmVlbiBkaXNjYXJkZWQgZm9yIHRhYmxlICclLS4xOTJzJwBJbnRlcm5hbCBlcnJvcjogJXMAQUxURVIgVEFCTEUgJS0uMTkycyBJTVBPUlQgVEFCTEVTUEFDRSBmYWlsZWQgd2l0aCBlcnJvciAlbHUgOiAnJXMnAEluZGV4IGNvcnJ1cHQ6ICVzAEludmFsaWQgZGlzcGxheSB3aWR0aC4gVXNlIFlFQVIgaW5zdGVhZC4AWW91ciBwYXNzd29yZCBkb2VzIG5vdCBzYXRpc2Z5IHRoZSBjdXJyZW50IHBvbGljeSByZXF1aXJlbWVudHMAWW91IG11c3QgcmVzZXQgeW91ciBwYXNzd29yZCB1c2luZyBBTFRFUiBVU0VSIHN0YXRlbWVudCBiZWZvcmUgZXhlY3V0aW5nIHRoaXMgc3RhdGVtZW50LgBGYWlsZWQgdG8gYWRkIHRoZSBmb3JlaWduIGtleSBjb25zdHJhaW50LiBNaXNzaW5nIGluZGV4IGZvciBjb25zdHJhaW50ICclcycgaW4gdGhlIGZvcmVpZ24gdGFibGUgJyVzJwBGYWlsZWQgdG8gYWRkIHRoZSBmb3JlaWduIGtleSBjb25zdHJhaW50LiBNaXNzaW5nIGluZGV4IGZvciBjb25zdHJhaW50ICclcycgaW4gdGhlIHJlZmVyZW5jZWQgdGFibGUgJyVzJwBGYWlsZWQgdG8gYWRkIHRoZSBmb3JlaWduIGtleSBjb25zdHJhaW50ICclcycgdG8gc3lzdGVtIHRhYmxlcwBGYWlsZWQgdG8gb3BlbiB0aGUgcmVmZXJlbmNlZCB0YWJsZSAnJXMnAEZhaWxlZCB0byBhZGQgdGhlIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgb24gdGFibGUgJyVzJy4gSW5jb3JyZWN0IG9wdGlvbnMgaW4gRk9SRUlHTiBLRVkgY29uc3RyYWludCAnJXMnAER1cGxpY2F0ZSBmb3JlaWduIGtleSBjb25zdHJhaW50IG5hbWUgJyVzJwBUaGUgcGFzc3dvcmQgaGFzaCBkb2Vzbid0IGhhdmUgdGhlIGV4cGVjdGVkIGZvcm1hdC4AS2FubiBTcGFsdGUgJyUtLjE5MnMnIG5pY2h0IGzDtnNjaGVuOiB3aXJkIGbDvHIgZWluZSBGcmVtZHNjaGzDvHNzZWxiZXNjaHLDpG5rdW5nICclLS4xOTJzJyBiZW7DtnRpZ3QAS2FubiBTcGFsdGUgJyUtLjE5MnMnIG5pY2h0IGzDtnNjaGVuOiB3aXJkIGbDvHIgZWluZSBGcmVtZHNjaGzDvHNzZWxiZXNjaHLDpG5rdW5nICclLS4xOTJzJyBkZXIgVGFiZWxsZSAnJS0uMTkycycgYmVuw7Z0aWd0AFNwYWx0ZSAnJS0uMTkycycga2FubiBuaWNodCBOT1QgTlVMTCBzZWluOiB3aXJkIGbDvHIgZWluZSBGcmVtZHNjaGzDvHNzZWxiZXNjaHLDpG5rdW5nICclLS4xOTJzJyBTRVQgTlVMTCBiZW7DtnRpZ3QARHVwbGljYXRlIGluZGV4ICclLS42NHMnIGRlZmluZWQgb24gdGhlIHRhYmxlICclLS42NHMuJS0uNjRzJy4gVGhpcyBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIGRpc2FsbG93ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4AQ2Fubm90IGNoYW5nZSBjb2x1bW4gJyUtLjE5MnMnOiB1c2VkIGluIGEgZm9yZWlnbiBrZXkgY29uc3RyYWludCAnJS0uMTkycycAQ2Fubm90IGNoYW5nZSBjb2x1bW4gJyUtLjE5MnMnOiB1c2VkIGluIGEgZm9yZWlnbiBrZXkgY29uc3RyYWludCAnJS0uMTkycycgb2YgdGFibGUgJyUtLjE5MnMnAENhbm5vdCBkZWxldGUgcm93cyBmcm9tIHRhYmxlIHdoaWNoIGlzIHBhcmVudCBpbiBhIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgJyUtLjE5MnMnIG9mIHRhYmxlICclLS4xOTJzJwBNYWxmb3JtZWQgY29tbXVuaWNhdGlvbiBwYWNrZXQuAFJ1bm5pbmcgaW4gcmVhZC1vbmx5IG1vZGUAV2hlbiBAQFNFU1NJT04uR1RJRF9ORVhUIGlzIHNldCB0byBhIEdUSUQsIHlvdSBtdXN0IGV4cGxpY2l0bHkgc2V0IGl0IHRvIGEgZGlmZmVyZW50IHZhbHVlIGFmdGVyIGEgQ09NTUlUIG9yIFJPTExCQUNLLiBQbGVhc2UgY2hlY2sgR1RJRF9ORVhUIHZhcmlhYmxlIG1hbnVhbCBwYWdlIGZvciBkZXRhaWxlZCBleHBsYW5hdGlvbi4gQ3VycmVudCBAQFNFU1NJT04uR1RJRF9ORVhUIGlzICclcycuAFRoZSBzeXN0ZW0gdmFyaWFibGUgJS4yMDBzIGNhbm5vdCBiZSBzZXQgaW4gc3RvcmVkIHByb2NlZHVyZXMuAEBAR0xPQkFMLkdUSURfUFVSR0VEIGNhbiBvbmx5IGJlIHNldCB3aGVuIEBAR0xPQkFMLkdUSURfTU9ERSA9IE9OLgBAQEdMT0JBTC5HVElEX1BVUkdFRCBjYW4gb25seSBiZSBzZXQgd2hlbiBAQEdMT0JBTC5HVElEX0VYRUNVVEVEIGlzIGVtcHR5LgBAQEdMT0JBTC5HVElEX1BVUkdFRCBjYW4gb25seSBiZSBzZXQgd2hlbiB0aGVyZSBhcmUgbm8gb25nb2luZyB0cmFuc2FjdGlvbnMgKG5vdCBldmVuIGluIG90aGVyIGNsaWVudHMpLgBAQEdMT0JBTC5HVElEX1BVUkdFRCB3YXMgY2hhbmdlZCBmcm9tICclcycgdG8gJyVzJy4AQEBHTE9CQUwuR1RJRF9FWEVDVVRFRCB3YXMgY2hhbmdlZCBmcm9tICclcycgdG8gJyVzJy4AQ2Fubm90IGV4ZWN1dGUgc3RhdGVtZW50OiBpbXBvc3NpYmxlIHRvIHdyaXRlIHRvIGJpbmFyeSBsb2cgc2luY2UgQklOTE9HX0ZPUk1BVCA9IFNUQVRFTUVOVCwgYW5kIGJvdGggcmVwbGljYXRlZCBhbmQgbm9uIHJlcGxpY2F0ZWQgdGFibGVzIGFyZSB3cml0dGVuIHRvLgAlcyBpcyBub3Qgc3VwcG9ydGVkIGZvciB0aGlzIG9wZXJhdGlvbi4gVHJ5ICVzLgAlcyBpcyBub3Qgc3VwcG9ydGVkLiBSZWFzb246ICVzLiBUcnkgJXMuAENPUFkgYWxnb3JpdGhtIHJlcXVpcmVzIGEgbG9jawBQYXJ0aXRpb24gc3BlY2lmaWMgb3BlcmF0aW9ucyBkbyBub3QgeWV0IHN1cHBvcnQgTE9DSy9BTEdPUklUSE0AQ29sdW1ucyBwYXJ0aWNpcGF0aW5nIGluIGEgZm9yZWlnbiBrZXkgYXJlIHJlbmFtZWQAQ2Fubm90IGNoYW5nZSBjb2x1bW4gdHlwZSBJTlBMQUNFAEFkZGluZyBmb3JlaWduIGtleXMgbmVlZHMgZm9yZWlnbl9rZXlfY2hlY2tzPU9GRgBDcmVhdGluZyB1bmlxdWUgaW5kZXhlcyB3aXRoIElHTk9SRSByZXF1aXJlcyBDT1BZIGFsZ29yaXRobSB0byByZW1vdmUgZHVwbGljYXRlIHJvd3MARHJvcHBpbmcgYSBwcmltYXJ5IGtleSBpcyBub3QgYWxsb3dlZCB3aXRob3V0IGFsc28gYWRkaW5nIGEgbmV3IHByaW1hcnkga2V5AEFkZGluZyBhbiBhdXRvLWluY3JlbWVudCBjb2x1bW4gcmVxdWlyZXMgYSBsb2NrAENhbm5vdCByZXBsYWNlIGhpZGRlbiBGVFNfRE9DX0lEIHdpdGggYSB1c2VyLXZpc2libGUgb25lAENhbm5vdCBkcm9wIG9yIHJlbmFtZSBGVFNfRE9DX0lEAEZ1bGx0ZXh0IGluZGV4IGNyZWF0aW9uIHJlcXVpcmVzIGEgbG9jawBzcWxfcmVwbGljYV9za2lwX2NvdW50ZXIgY2FuIG5vdCBiZSBzZXQgd2hlbiB0aGUgc2VydmVyIGlzIHJ1bm5pbmcgd2l0aCBAQEdMT0JBTC5HVElEX01PREUgPSBPTi4gSW5zdGVhZCwgZm9yIGVhY2ggdHJhbnNhY3Rpb24gdGhhdCB5b3Ugd2FudCB0byBza2lwLCBnZW5lcmF0ZSBhbiBlbXB0eSB0cmFuc2FjdGlvbiB3aXRoIHRoZSBzYW1lIEdUSUQgYXMgdGhlIHRyYW5zYWN0aW9uAERvcHBlbHRlciBFaW50cmFnIGbDvHIgU2NobMO8c3NlbCAnJS0uMTkycycATG9uZyBkYXRhYmFzZSBuYW1lIGFuZCBpZGVudGlmaWVyIGZvciBvYmplY3QgcmVzdWx0ZWQgaW4gcGF0aCBsZW5ndGggZXhjZWVkaW5nICVkIGNoYXJhY3RlcnMuIFBhdGg6ICclcycuAGNhbm5vdCBzaWxlbnRseSBjb252ZXJ0IE5VTEwgdmFsdWVzLCBhcyByZXF1aXJlZCBpbiB0aGlzIFNRTF9NT0RFAFlvdXIgcGFzc3dvcmQgaGFzIGV4cGlyZWQuIFRvIGxvZyBpbiB5b3UgbXVzdCBjaGFuZ2UgaXQgdXNpbmcgYSBjbGllbnQgdGhhdCBzdXBwb3J0cyBleHBpcmVkIHBhc3N3b3Jkcy4ARm91bmQgYSByb3cgaW4gd3JvbmcgcGFydGl0aW9uICVzAENhbm5vdCBzY2hlZHVsZSBldmVudCAlcywgcmVsYXktbG9nIG5hbWUgJXMsIHBvc2l0aW9uICVzIHRvIFdvcmtlciB0aHJlYWQgYmVjYXVzZSBpdHMgc2l6ZSAlbHUgZXhjZWVkcyAlbHUgb2YgcmVwbGljYV9wZW5kaW5nX2pvYnNfc2l6ZV9tYXguAENhbm5vdCBDUkVBVEUgRlVMTFRFWFQgSU5ERVggV0lUSCBQQVJTRVIgb24gSW5ub0RCIHRhYmxlAFRoZSBiaW5hcnkgbG9nIGZpbGUgJyVzJyBpcyBsb2dpY2FsbHkgY29ycnVwdGVkOiAlcwBmaWxlICVzIHdhcyBub3QgcHVyZ2VkIGJlY2F1c2UgaXQgd2FzIGJlaW5nIHJlYWQgYnkgJWQgdGhyZWFkKHMpLCBwdXJnZWQgb25seSAlZCBvdXQgb2YgJWQgZmlsZXMuAGZpbGUgJXMgd2FzIG5vdCBwdXJnZWQgYmVjYXVzZSBpdCBpcyB0aGUgYWN0aXZlIGxvZyBmaWxlLgBBdXRvLWluY3JlbWVudCB2YWx1ZSBpbiBVUERBVEUgY29uZmxpY3RzIHdpdGggaW50ZXJuYWxseSBnZW5lcmF0ZWQgdmFsdWVzAFJvdyBldmVudHMgYXJlIG5vdCBsb2dnZWQgZm9yICVzIHN0YXRlbWVudHMgdGhhdCBtb2RpZnkgQkxBQ0tIT0xFIHRhYmxlcyBpbiByb3cgZm9ybWF0LiBUYWJsZShzKTogJyUtLjE5MnMnAFJlcGxpY2EgZmFpbGVkIHRvIGluaXRpYWxpemUgY29ubmVjdGlvbiBtZXRhZGF0YSBzdHJ1Y3R1cmUgZnJvbSB0aGUgcmVwb3NpdG9yeQBSZXBsaWNhIGZhaWxlZCB0byBpbml0aWFsaXplIGFwcGxpZXIgbWV0YWRhdGEgc3RydWN0dXJlIGZyb20gdGhlIHJlcG9zaXRvcnkAQWNjZXNzIGRlbmllZCB0cnlpbmcgdG8gY2hhbmdlIHRvIHVzZXIgJyUtLjQ4cydAJyUtLjY0cycgKHVzaW5nIHBhc3N3b3JkOiAlcykuIERpc2Nvbm5lY3RpbmcuAElubm9EQiBpcyBpbiByZWFkIG9ubHkgbW9kZS4AU1RPUCBSRVBMSUNBIGNvbW1hbmQgZXhlY3V0aW9uIGlzIGluY29tcGxldGU6IFJlcGxpY2EgU1FMIHRocmVhZCBnb3QgdGhlIHN0b3Agc2lnbmFsLCB0aHJlYWQgaXMgYnVzeSwgU1FMIHRocmVhZCB3aWxsIHN0b3Agb25jZSB0aGUgY3VycmVudCB0YXNrIGlzIGNvbXBsZXRlLgBTVE9QIFJFUExJQ0EgY29tbWFuZCBleGVjdXRpb24gaXMgaW5jb21wbGV0ZTogUmVwbGljYSBJTyB0aHJlYWQgZ290IHRoZSBzdG9wIHNpZ25hbCwgdGhyZWFkIGlzIGJ1c3ksIElPIHRocmVhZCB3aWxsIHN0b3Agb25jZSB0aGUgY3VycmVudCB0YXNrIGlzIGNvbXBsZXRlLgBPcGVyYXRpb24gY2Fubm90IGJlIHBlcmZvcm1lZC4gVGhlIHRhYmxlICclLS42NHMuJS0uNjRzJyBpcyBtaXNzaW5nLCBjb3JydXB0IG9yIGNvbnRhaW5zIGJhZCBkYXRhLgBUZW1wb3JhcnkgZmlsZSB3cml0ZSBmYWlsdXJlLgBVcGdyYWRlIGluZGV4IG5hbWUgZmFpbGVkLCBwbGVhc2UgdXNlIGNyZWF0ZSBpbmRleChhbHRlciB0YWJsZSkgYWxnb3JpdGhtIGNvcHkgdG8gcmVidWlsZCBpbmRleC4AVElNRS9USU1FU1RBTVAvREFURVRJTUUgY29sdW1ucyBvZiBvbGQgZm9ybWF0IGhhdmUgYmVlbiB1cGdyYWRlZCB0byB0aGUgbmV3IGZvcm1hdC4AT3BlcmF0aW9uIG5vdCBhbGxvd2VkIHdoZW4gaW5ub2RiX2ZvcmNlX3JlY292ZXJ5ID4gMC4AVGhlIGluaXRpYWxpemF0aW9uIHZlY3RvciBzdXBwbGllZCB0byAlcyBpcyB0b28gc2hvcnQuIE11c3QgYmUgYXQgbGVhc3QgJWQgYnl0ZXMgbG9uZwBQbHVnaW4gJyVzJyBjYW5ub3QgYmUgdW5pbnN0YWxsZWQgbm93LiAlcwBDYW5ub3QgZXhlY3V0ZSBzdGF0ZW1lbnQgYmVjYXVzZSBpdCBuZWVkcyB0byBiZSB3cml0dGVuIHRvIHRoZSBiaW5hcnkgbG9nIGFzIG11bHRpcGxlIHN0YXRlbWVudHMsIGFuZCB0aGlzIGlzIG5vdCBhbGxvd2VkIHdoZW4gQEBTRVNTSU9OLkdUSURfTkVYVCA9PSAnVVVJRDpOVU1CRVInLgBSZXBsaWNhIGhhcyBtb3JlIEdUSURzIHRoYW4gdGhlIHNvdXJjZSBoYXMsIHVzaW5nIHRoZSBzb3VyY2UncyBTRVJWRVJfVVVJRC4gVGhpcyBtYXkgaW5kaWNhdGUgdGhhdCB0aGUgdGhlIGxhc3QgYmluYXJ5IGxvZyBmaWxlIHdhcyB0cnVuY2F0ZWQgb3IgbG9zdCwgZS5nLiwgYWZ0ZXIgYSBwb3dlciBmYWlsdXJlIHdoZW4gc3luY19iaW5sb2cgIT0gMS4gVGhlIHNvdXJjZSBtYXkgaGF2ZSByb2xsZWQgYmFjayB0cmFuc2FjdGlvbnMgdGhhdCB3ZXJlIGFscmVhZHkgcmVwbGljYXRlZCB0byB0aGUgcmVwbGljYS4gUmVwbGljYXRlIGFueSB0cmFuc2FjdGlvbnMgdGhhdCBzb3VyY2UgaGFzIHJvbGxlZCBiYWNrIGZyb20gcmVwbGljYSB0byBzb3VyY2UsIGFuZC9vciBjb21taXQgZW1wdHkgdHJhbnNhY3Rpb25zIG9uIHNvdXJjZSB0byBhY2NvdW50IGZvciB0cmFuc2FjdGlvbnMgdGhhdCBoYXZlIGJlZW4gY29tbWl0dGVkIG9uIHNvdXJjZSBidXQgYXJlIG5vdCBpbmNsdWRlZCBpbiBHVElEX0VYRUNVVEVELgBUaGUgdGFibGUgJyVzLiVzJyBkb2VzIG5vdCBoYXZlIHRoZSBuZWNlc3Nhcnkga2V5KHMpIGRlZmluZWQgb24gaXQuIFBsZWFzZSBjaGVjayB0aGUgdGFibGUgZGVmaW5pdGlvbiBhbmQgY3JlYXRlIGluZGV4KHMpIGFjY29yZGluZ2x5LgBTZXR0aW5nIG5hbWVkX3BpcGVfZnVsbF9hY2Nlc3NfZ3JvdXA9JyVzJyBpcyBpbnNlY3VyZS4gQ29uc2lkZXIgdXNpbmcgYSBXaW5kb3dzIGdyb3VwIHdpdGggZmV3ZXIgbWVtYmVycy4ARmlsZSAlcyBpcyBjb3JydXB0ZWQAUXVlcnkgcGFydGlhbGx5IGNvbXBsZXRlZCBvbiB0aGUgc291cmNlIChlcnJvciBvbiBzb3VyY2U6ICVkKSBhbmQgd2FzIGFib3J0ZWQuIFRoZXJlIGlzIGEgY2hhbmNlIHRoYXQgeW91ciBzb3VyY2UgaXMgaW5jb25zaXN0ZW50IGF0IHRoaXMgcG9pbnQuIElmIHlvdSBhcmUgc3VyZSB0aGF0IHlvdXIgc291cmNlIGlzIG9rLCBydW4gdGhpcyBxdWVyeSBtYW51YWxseSBvbiB0aGUgcmVwbGljYSBhbmQgdGhlbiByZXN0YXJ0IHRoZSByZXBsaWNhIHdpdGggU0VUIEdMT0JBTCBTUUxfUkVQTElDQV9TS0lQX0NPVU5URVI9MTsgU1RBUlQgUkVQTElDQTsuIFF1ZXJ5OiclcycAUXVlcnkgY2F1c2VkIGRpZmZlcmVudCBlcnJvcnMgb24gc291cmNlIGFuZCByZXBsaWNhLiBFcnJvciBvbiBzb3VyY2U6IG1lc3NhZ2UgKGZvcm1hdCk9JyVzJyBlcnJvciBjb2RlPSVkOyBFcnJvciBvbiByZXBsaWNhOmFjdHVhbCBtZXNzYWdlPSclcycsIGVycm9yIGNvZGU9JWQuIERlZmF1bHQgZGF0YWJhc2U6JyVzJy4gUXVlcnk6JyVzJwBTdG9yYWdlIGVuZ2luZSBmb3IgdGFibGUgJyVzJy4nJXMnIGlzIG5vdCBsb2FkZWQuAEdFVCBTVEFDS0VEIERJQUdOT1NUSUNTIHdoZW4gaGFuZGxlciBub3QgYWN0aXZlACVzIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQuIFRoZSBzdGF0ZW1lbnQgd2FzIGNvbnZlcnRlZCB0byAlcy4AU3RhdGVtZW50IGlzIHVuc2FmZSBiZWNhdXNlIGl0IHVzZXMgYSBmdWxsdGV4dCBwYXJzZXIgcGx1Z2luIHdoaWNoIG1heSBub3QgcmV0dXJuIHRoZSBzYW1lIHZhbHVlIG9uIHRoZSByZXBsaWNhLgBDYW5ub3QgRElTQ0FSRC9JTVBPUlQgdGFibGVzcGFjZSBhc3NvY2lhdGVkIHdpdGggdGVtcG9yYXJ5IHRhYmxlAEZvcmVpZ24ga2V5IGNhc2NhZGUgZGVsZXRlL3VwZGF0ZSBleGNlZWRzIG1heCBkZXB0aCBvZiAlZC4AU3BhbHRlbmFuemFobCB2b24gJXMuJXMgZmFsc2NoLiAlZCBlcndhcnRldCwgYWJlciAlZCBlcmhhbHRlbi4gRXJ6ZXVndCBtaXQgTXlTUUwgJWQsIGpldHp0IHVudGVyICVkLiBCaXR0ZSB2ZXJ3ZW5kZW4gU2llIGRpZSBNeVNRTC1VcGdyYWRlLVByb3plZHVyLCB1bSBkZW4gRmVobGVyIHp1IGJlaGViZW4uAFRyaWdnZXIgJXMuJXMuJXMgZG9lcyBub3QgaGF2ZSBDUkVBVEVEIGF0dHJpYnV0ZS4AUmVmZXJlbmNlZCB0cmlnZ2VyICclcycgZm9yIHRoZSBnaXZlbiBhY3Rpb24gdGltZSBhbmQgZXZlbnQgdHlwZSBkb2VzIG5vdCBleGlzdC4ARVhQTEFJTiBGT1IgQ09OTkVDVElPTiBjb21tYW5kIGlzIHN1cHBvcnRlZCBvbmx5IGZvciBTRUxFQ1QvVVBEQVRFL0lOU0VSVC9ERUxFVEUvUkVQTEFDRQBJbnZhbGlkIHNpemUgZm9yIGNvbHVtbiAnJS0uMTkycycuAFRhYmxlIHN0b3JhZ2UgZW5naW5lICclLS42NHMnIGZvdW5kIHJlcXVpcmVkIGNyZWF0ZSBvcHRpb24gbWlzc2luZwBPdXQgb2YgbWVtb3J5IGluIHN0b3JhZ2UgZW5naW5lICclLS42NHMnLgBUaGUgcGFzc3dvcmQgZm9yIGFub255bW91cyB1c2VyIGNhbm5vdCBiZSBleHBpcmVkLgBUaGlzIG9wZXJhdGlvbiBjYW5ub3QgYmUgcGVyZm9ybWVkIHdpdGggYSBydW5uaW5nIHJlcGxpY2Egc3FsIHRocmVhZDsgcnVuIFNUT1AgUkVQTElDQSBTUUxfVEhSRUFEIGZpcnN0AENhbm5vdCBjcmVhdGUgRlVMTFRFWFQgaW5kZXggb24gbWF0ZXJpYWxpemVkIHN1YnF1ZXJ5AFVuZG8gTG9nIGVycm9yOiAlcwBJbnZhbGlkIGFyZ3VtZW50IGZvciBsb2dhcml0aG0AVGhpcyBvcGVyYXRpb24gY2Fubm90IGJlIHBlcmZvcm1lZCB3aXRoIGEgcnVubmluZyByZXBsaWNhIGlvIHRocmVhZDsgcnVuIFNUT1AgUkVQTElDQSBJT19USFJFQUQgRk9SIENIQU5ORUwgJyVzJyBmaXJzdC4AVGhpcyBvcGVyYXRpb24gbWF5IG5vdCBiZSBzYWZlIHdoZW4gdGhlIHJlcGxpY2EgaGFzIHRlbXBvcmFyeSB0YWJsZXMuIFRoZSB0YWJsZXMgd2lsbCBiZSBrZXB0IG9wZW4gdW50aWwgdGhlIHNlcnZlciByZXN0YXJ0cyBvciB1bnRpbCB0aGUgdGFibGVzIGFyZSBkZWxldGVkIGJ5IGFueSByZXBsaWNhdGVkIERST1Agc3RhdGVtZW50LiBTdWdnZXN0IHRvIHdhaXQgdW50aWwgcmVwbGljYV9vcGVuX3RlbXBfdGFibGVzID0gMC4AQ0hBTkdFIFJFUExJQ0FUSU9OIFNPVVJDRSBUTyB3aXRoIGEgU09VUkNFX0xPR19GSUxFIGNsYXVzZSBidXQgbm8gU09VUkNFX0xPR19QT1MgY2xhdXNlIG1heSBub3QgYmUgc2FmZS4gVGhlIG9sZCBwb3NpdGlvbiB2YWx1ZSBtYXkgbm90IGJlIHZhbGlkIGZvciB0aGUgbmV3IGJpbmFyeSBsb2cgZmlsZS4AUXVlcnkgZXhlY3V0aW9uIHdhcyBpbnRlcnJ1cHRlZCwgbWF4aW11bSBzdGF0ZW1lbnQgZXhlY3V0aW9uIHRpbWUgZXhjZWVkZWQAU2VsZWN0IGlzIG5vdCBhIHJlYWQgb25seSBzdGF0ZW1lbnQsIGRpc2FibGluZyB0aW1lcgBEdXBsaWNhdGUgZW50cnkgJyUtLjE5MnMnLgAnJXMnIG1vZGUgbm8gbG9uZ2VyIGhhcyBhbnkgZWZmZWN0LiBVc2UgU1RSSUNUX0FMTF9UQUJMRVMgb3IgU1RSSUNUX1RSQU5TX1RBQkxFUyBpbnN0ZWFkLgBFeHByZXNzaW9uICMldSBvZiBPUkRFUiBCWSBjb250YWlucyBhZ2dyZWdhdGUgZnVuY3Rpb24gYW5kIGFwcGxpZXMgdG8gYSBVTklPTiwgRVhDRVBUIG9yIElOVEVSU0VDVABFeHByZXNzaW9uICMldSBvZiBPUkRFUiBCWSBjb250YWlucyBhZ2dyZWdhdGUgZnVuY3Rpb24gYW5kIGFwcGxpZXMgdG8gdGhlIHJlc3VsdCBvZiBhIG5vbi1hZ2dyZWdhdGVkIHF1ZXJ5AFJlcGxpY2Egd29ya2VyIGhhcyBzdG9wcGVkIGFmdGVyIGF0IGxlYXN0IG9uZSBwcmV2aW91cyB3b3JrZXIgZW5jb3VudGVyZWQgYW4gZXJyb3Igd2hlbiByZXBsaWNhLXByZXNlcnZlLWNvbW1pdC1vcmRlciB3YXMgZW5hYmxlZC4gVG8gcHJlc2VydmUgY29tbWl0IG9yZGVyLCB0aGUgbGFzdCB0cmFuc2FjdGlvbiBleGVjdXRlZCBieSB0aGlzIHRocmVhZCBoYXMgbm90IGJlZW4gY29tbWl0dGVkLiBXaGVuIHJlc3RhcnRpbmcgdGhlIHJlcGxpY2EgYWZ0ZXIgZml4aW5nIGFueSBmYWlsZWQgdGhyZWFkcywgeW91IHNob3VsZCBmaXggdGhpcyB3b3JrZXIgYXMgd2VsbC4AcmVwbGljYV9wcmVzZXJ2ZV9jb21taXRfb3JkZXIgaXMgbm90IHN1cHBvcnRlZCAlcy4AVGhlIHNlcnZlciBpcyBjdXJyZW50bHkgaW4gb2ZmbGluZSBtb2RlAEJpbmFyeSBnZW9tZXRyeSBmdW5jdGlvbiAlcyBnaXZlbiB0d28gZ2VvbWV0cmllcyBvZiBkaWZmZXJlbnQgc3JpZHM6ICV1IGFuZCAldSwgd2hpY2ggc2hvdWxkIGhhdmUgYmVlbiBpZGVudGljYWwuAENhbGxpbmcgZ2VvbWV0cnkgZnVuY3Rpb24gJXMgd2l0aCB1bnN1cHBvcnRlZCB0eXBlcyBvZiBhcmd1bWVudHMuAFVua25vd24gR0lTIGVycm9yIG9jY3VycmVkIGluIGZ1bmN0aW9uICVzLgBVbmtub3duIGV4Y2VwdGlvbiBjYXVnaHQgaW4gR0lTIGZ1bmN0aW9uICVzLgBJbnZhbGlkIEdJUyBkYXRhIHByb3ZpZGVkIHRvIGZ1bmN0aW9uICVzLgBUaGUgZ2VvbWV0cnkgaGFzIG5vIGRhdGEgaW4gZnVuY3Rpb24gJXMuAFVuYWJsZSB0byBjYWxjdWxhdGUgY2VudHJvaWQgYmVjYXVzZSBnZW9tZXRyeSBpcyBlbXB0eSBpbiBmdW5jdGlvbiAlcy4AR2VvbWV0cnkgb3ZlcmxheSBjYWxjdWxhdGlvbiBlcnJvcjogZ2VvbWV0cnkgZGF0YSBpcyBpbnZhbGlkIGluIGZ1bmN0aW9uICVzLgBHZW9tZXRyeSB0dXJuIGluZm8gY2FsY3VsYXRpb24gZXJyb3I6IGdlb21ldHJ5IGRhdGEgaXMgaW52YWxpZCBpbiBmdW5jdGlvbiAlcy4AQW5hbHlzaXMgcHJvY2VkdXJlcyBvZiBpbnRlcnNlY3Rpb24gcG9pbnRzIGludGVycnVwdGVkIHVuZXhwZWN0ZWRseSBpbiBmdW5jdGlvbiAlcy4AVW5rbm93biBleGNlcHRpb24gdGhyb3duIGluIGZ1bmN0aW9uICVzLgBNZW1vcnkgYWxsb2NhdGlvbiBlcnJvcjogJS0uMjU2cyBpbiBmdW5jdGlvbiAlcy4ARG9tYWluIGVycm9yOiAlLS4yNTZzIGluIGZ1bmN0aW9uICVzLgBMZW5ndGggZXJyb3I6ICUtLjI1NnMgaW4gZnVuY3Rpb24gJXMuAEludmFsaWQgYXJndW1lbnQgZXJyb3I6ICUtLjI1NnMgaW4gZnVuY3Rpb24gJXMuAE91dCBvZiByYW5nZSBlcnJvcjogJS0uMjU2cyBpbiBmdW5jdGlvbiAlcy4AT3ZlcmZsb3cgZXJyb3I6ICUtLjI1NnMgaW4gZnVuY3Rpb24gJXMuAFJhbmdlIGVycm9yOiAlLS4yNTZzIGluIGZ1bmN0aW9uICVzLgBVbmRlcmZsb3cgZXJyb3I6ICUtLjI1NnMgaW4gZnVuY3Rpb24gJXMuAExvZ2ljIGVycm9yOiAlLS4yNTZzIGluIGZ1bmN0aW9uICVzLgBSdW50aW1lIGVycm9yOiAlLS4yNTZzIGluIGZ1bmN0aW9uICVzLgBVbmtub3duIGV4Y2VwdGlvbjogJS0uMzg0cyBpbiBmdW5jdGlvbiAlcy4AR2VvbWV0cnkgYnl0ZSBzdHJpbmcgbXVzdCBiZSBsaXR0bGUgZW5kaWFuLgBUaGUgcGFzc3dvcmQgcHJvdmlkZWQgZm9yIHRoZSByZXBsaWNhdGlvbiB1c2VyIGV4Y2VlZHMgdGhlIG1heGltdW0gbGVuZ3RoIG9mIDMyIGNoYXJhY3RlcnMASW5jb3JyZWN0IHVzZXItbGV2ZWwgbG9jayBuYW1lICclLS4xOTJzJy4gVGhlIG5hbWUgaXMgZW1wdHksIE5VTEwsIG9yIGNhbiBub3QgYmUgZXhwcmVzc2VkIGluIHRoZSBjdXJyZW50IGNoYXJhY3Rlci1zZXQuAERlYWRsb2NrIGZvdW5kIHdoZW4gdHJ5aW5nIHRvIGdldCB1c2VyLWxldmVsIGxvY2s7IHRyeSByb2xsaW5nIGJhY2sgdHJhbnNhY3Rpb24vcmVsZWFzaW5nIGxvY2tzIGFuZCByZXN0YXJ0aW5nIGxvY2sgYWNxdWlzaXRpb24uAFJFUExBQ0UgY2Fubm90IGJlIGV4ZWN1dGVkIGFzIGl0IHJlcXVpcmVzIGRlbGV0aW5nIHJvd3MgdGhhdCBhcmUgbm90IGluIHRoZSB2aWV3AERvIG5vdCBzdXBwb3J0IG9ubGluZSBvcGVyYXRpb24gb24gdGFibGUgd2l0aCBHSVMgaW5kZXgAVXNlciB2YXJpYWJsZSBuYW1lICclLS4xMDBzJyBpcyBpbGxlZ2FsAENhbm5vdCAlcyB3aGVuIEdUSURfTU9ERSA9IE9GRi4AQ2Fubm90ICVzIGZyb20gYSByZXBsaWNhIHRocmVhZC4ASW5jb3JyZWN0IHR5cGUgZm9yIGFyZ3VtZW50ICVzIGluIGZ1bmN0aW9uICVzLgBFeHByZXNzaW9uICMldSBvZiBPUkRFUiBCWSBjbGF1c2UgaXMgbm90IGluIFNFTEVDVCBsaXN0LCByZWZlcmVuY2VzIGNvbHVtbiAnJS0uMTkycycgd2hpY2ggaXMgbm90IGluIFNFTEVDVCBsaXN0OyB0aGlzIGlzIGluY29tcGF0aWJsZSB3aXRoICVzAEV4cHJlc3Npb24gIyV1IG9mIE9SREVSIEJZIGNsYXVzZSBpcyBub3QgaW4gU0VMRUNUIGxpc3QsIGNvbnRhaW5zIGFnZ3JlZ2F0ZSBmdW5jdGlvbjsgdGhpcyBpcyBpbmNvbXBhdGlibGUgd2l0aCAlcwBTdXBwbGllZCBmaWx0ZXIgbGlzdCBjb250YWlucyBhIHZhbHVlIHdoaWNoIGlzIG5vdCBpbiB0aGUgcmVxdWlyZWQgZm9ybWF0ICdkYl9wYXR0ZXJuLnRhYmxlX3BhdHRlcm4nAE9LIHBhY2tldCB0b28gbGFyZ2UASW52YWxpZCBKU09OIGRhdGEgcHJvdmlkZWQgdG8gZnVuY3Rpb24gJXM6ICVzAEludmFsaWQgR2VvSlNPTiBkYXRhIHByb3ZpZGVkIHRvIGZ1bmN0aW9uICVzOiBNaXNzaW5nIHJlcXVpcmVkIG1lbWJlciAnJXMnAEludmFsaWQgR2VvSlNPTiBkYXRhIHByb3ZpZGVkIHRvIGZ1bmN0aW9uICVzOiBNZW1iZXIgJyVzJyBtdXN0IGJlIG9mIHR5cGUgJyVzJwBJbnZhbGlkIEdlb0pTT04gZGF0YSBwcm92aWRlZCB0byBmdW5jdGlvbiAlcwBVbnN1cHBvcnRlZCBudW1iZXIgb2YgY29vcmRpbmF0ZSBkaW1lbnNpb25zIGluIGZ1bmN0aW9uICVzOiBGb3VuZCAldSwgZXhwZWN0ZWQgJXUAUmVwbGljYSBjaGFubmVsICclcycgZG9lcyBub3QgZXhpc3QuAEEgcmVwbGljYSBjaGFubmVsICclcycgYWxyZWFkeSBleGlzdHMgZm9yIHRoZSBnaXZlbiBob3N0IGFuZCBwb3J0IGNvbWJpbmF0aW9uLgBDb3VsZG4ndCBjcmVhdGUgY2hhbm5lbDogQ2hhbm5lbCBuYW1lIGlzIGVpdGhlciBpbnZhbGlkIG9yIHRvbyBsb25nLgBUbyBoYXZlIG11bHRpcGxlIGNoYW5uZWxzLCByZXBvc2l0b3J5IGNhbm5vdCBiZSBvZiB0eXBlIEZJTEU7IFBsZWFzZSBjaGVjayB0aGUgcmVwb3NpdG9yeSBjb25maWd1cmF0aW9uIGFuZCBjb252ZXJ0IHRoZW0gdG8gVEFCTEUuAENhbm5vdCBkZWxldGUgcmVwbGljYSBpbmZvIG9iamVjdHMgZm9yIGNoYW5uZWwgJyVzJy4ATXVsdGlwbGUgY2hhbm5lbHMgZXhpc3Qgb24gdGhlIHJlcGxpY2EuIFBsZWFzZSBwcm92aWRlIGNoYW5uZWwgbmFtZSBhcyBhbiBhcmd1bWVudC4ATWF4aW11bSBudW1iZXIgb2YgcmVwbGljYXRpb24gY2hhbm5lbHMgYWxsb3dlZCBleGNlZWRlZC4AVGhpcyBvcGVyYXRpb24gY2Fubm90IGJlIHBlcmZvcm1lZCB3aXRoIHJ1bm5pbmcgcmVwbGljYXRpb24gdGhyZWFkczsgcnVuIFNUT1AgUkVQTElDQSBGT1IgQ0hBTk5FTCAnJXMnIGZpcnN0AFRoaXMgb3BlcmF0aW9uIHJlcXVpcmVzIHJ1bm5pbmcgcmVwbGljYXRpb24gdGhyZWFkczsgY29uZmlndXJlIHJlcGxpY2EgYW5kIHJ1biBTVEFSVCBSRVBMSUNBIEZPUiBDSEFOTkVMICclcycAUmVwbGljYXRpb24gdGhyZWFkKHMpIGZvciBjaGFubmVsICclcycgYXJlIGFscmVhZHkgcnVubm5pbmcuAFJlcGxpY2F0aW9uIHRocmVhZChzKSBmb3IgY2hhbm5lbCAnJXMnIGFyZSBhbHJlYWR5IHN0b3BwZWQuAFRoaXMgb3BlcmF0aW9uIGNhbm5vdCBiZSBwZXJmb3JtZWQgd2l0aCBhIHJ1bm5pbmcgcmVwbGljYSBzcWwgdGhyZWFkOyBydW4gU1RPUCBSRVBMSUNBIFNRTF9USFJFQUQgRk9SIENIQU5ORUwgJyVzJyBmaXJzdC4AV2hlbiBzcWxfcmVwbGljYV9za2lwX2NvdW50ZXIgPiAwLCBpdCBpcyBub3QgYWxsb3dlZCB0byBzdGFydCBtb3JlIHRoYW4gb25lIFNRTCB0aHJlYWQgYnkgdXNpbmcgJ1NUQVJUIFJFUExJQ0EgW1NRTF9USFJFQURdJy4gVmFsdWUgb2Ygc3FsX3JlcGxpY2Ffc2tpcF9jb3VudGVyIGNhbiBvbmx5IGJlIHVzZWQgYnkgb25lIFNRTCB0aHJlYWQgYXQgYSB0aW1lLiBQbGVhc2UgdXNlICdTVEFSVCBSRVBMSUNBIFtTUUxfVEhSRUFEXSBGT1IgQ0hBTk5FTCcgdG8gc3RhcnQgdGhlIFNRTCB0aHJlYWQgd2hpY2ggd2lsbCB1c2UgdGhlIHZhbHVlIG9mIHNxbF9yZXBsaWNhX3NraXBfY291bnRlci4ARXhwcmVzc2lvbiAjJXUgb2YgJXMgaXMgbm90IGluIEdST1VQIEJZIGNsYXVzZSBhbmQgY29udGFpbnMgbm9uYWdncmVnYXRlZCBjb2x1bW4gJyUtLjE5MnMnIHdoaWNoIGlzIG5vdCBmdW5jdGlvbmFsbHkgZGVwZW5kZW50IG9uIGNvbHVtbnMgaW4gR1JPVVAgQlkgY2xhdXNlOyB0aGlzIGlzIGluY29tcGF0aWJsZSB3aXRoIHNxbF9tb2RlPW9ubHlfZnVsbF9ncm91cF9ieQBJbiBhZ2dyZWdhdGVkIHF1ZXJ5IHdpdGhvdXQgR1JPVVAgQlksIGV4cHJlc3Npb24gIyV1IG9mICVzIGNvbnRhaW5zIG5vbmFnZ3JlZ2F0ZWQgY29sdW1uICclLS4xOTJzJzsgdGhpcyBpcyBpbmNvbXBhdGlibGUgd2l0aCBzcWxfbW9kZT1vbmx5X2Z1bGxfZ3JvdXBfYnkAVXBkYXRpbmcgJyVzJyBpcyBkZXByZWNhdGVkLiBJdCB3aWxsIGJlIG1hZGUgcmVhZC1vbmx5IGluIGEgZnV0dXJlIHJlbGVhc2UuAENoYW5naW5nIHNxbCBtb2RlICclcycgaXMgZGVwcmVjYXRlZC4gSXQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuAERST1AgREFUQUJBU0UgZmFpbGVkOyBzb21lIHRhYmxlcyBtYXkgaGF2ZSBiZWVuIGRyb3BwZWQgYnV0IHRoZSBkYXRhYmFzZSBkaXJlY3RvcnkgcmVtYWlucy4gVGhlIEdUSUQgaGFzIG5vdCBiZWVuIGFkZGVkIHRvIEdUSURfRVhFQ1VURUQgYW5kIHRoZSBzdGF0ZW1lbnQgd2FzIG5vdCB3cml0dGVuIHRvIHRoZSBiaW5hcnkgbG9nLiBGaXggdGhpcyBhcyBmb2xsb3dzOiAoMSkgcmVtb3ZlIGFsbCBmaWxlcyBmcm9tIHRoZSBkYXRhYmFzZSBkaXJlY3RvcnkgJS0uMTkyczsgKDIpIFNFVCBHVElEX05FWFQ9JyUtLjE5MnMnOyAoMykgRFJPUCBEQVRBQkFTRSBgJS0uMTkyc2AuAFRoZSBzZXJ2ZXIgaXMgbm90IGNvbmZpZ3VyZWQgcHJvcGVybHkgdG8gYmUgYW4gYWN0aXZlIG1lbWJlciBvZiB0aGUgZ3JvdXAuIFBsZWFzZSBzZWUgbW9yZSBkZXRhaWxzIG9uIGVycm9yIGxvZy4AVGhlIFNUQVJUIEdST1VQX1JFUExJQ0FUSU9OIGNvbW1hbmQgZmFpbGVkIHNpbmNlIHRoZSBncm91cCBpcyBhbHJlYWR5IHJ1bm5pbmcuAFRoZSBTVEFSVCBHUk9VUF9SRVBMSUNBVElPTiBjb21tYW5kIGZhaWxlZCBhcyB0aGUgYXBwbGllciBtb2R1bGUgZmFpbGVkIHRvIHN0YXJ0LgBUaGUgU1RPUCBHUk9VUF9SRVBMSUNBVElPTiBjb21tYW5kIGV4ZWN1dGlvbiBpcyBpbmNvbXBsZXRlOiBUaGUgYXBwbGllciB0aHJlYWQgZ290IHRoZSBzdG9wIHNpZ25hbCB3aGlsZSBpdCB3YXMgYnVzeS4gVGhlIGFwcGxpZXIgdGhyZWFkIHdpbGwgc3RvcCBvbmNlIHRoZSBjdXJyZW50IHRhc2sgaXMgY29tcGxldGUuAFRoZSBTVEFSVCBHUk9VUF9SRVBMSUNBVElPTiBjb21tYW5kIGZhaWxlZCBhcyB0aGVyZSB3YXMgYW4gZXJyb3Igd2hlbiBpbml0aWFsaXppbmcgdGhlIGdyb3VwIGNvbW11bmljYXRpb24gbGF5ZXIuAFRoZSBTVEFSVCBHUk9VUF9SRVBMSUNBVElPTiBjb21tYW5kIGZhaWxlZCBhcyB0aGVyZSB3YXMgYW4gZXJyb3Igd2hlbiBqb2luaW5nIHRoZSBjb21tdW5pY2F0aW9uIGdyb3VwLgBUaGUgdGFibGUgZG9lcyBub3QgY29tcGx5IHdpdGggdGhlIHJlcXVpcmVtZW50cyBieSBhbiBleHRlcm5hbCBwbHVnaW4uAENhbm5vdCBjaGFuZ2UgdGhlIHZhbHVlIG9mIHZhcmlhYmxlICVzIHdpdGhvdXQgYmluYXJ5IGxvZyBmb3JtYXQgYXMgUk9XLgBFcnJvciBvbiBvYnNlcnZlciB3aGlsZSBydW5uaW5nIHJlcGxpY2F0aW9uIGhvb2sgJyVzJy4AUGx1Z2luIGluc3RydWN0ZWQgdGhlIHNlcnZlciB0byByb2xsYmFjayB0aGUgY3VycmVudCB0cmFuc2FjdGlvbi4ARXhwcmVzc2lvbiBvZiBnZW5lcmF0ZWQgY29sdW1uICclcycgY29udGFpbnMgYSBkaXNhbGxvd2VkIGZ1bmN0aW9uLgBJTlBMQUNFIEFERCBvciBEUk9QIG9mIHZpcnR1YWwgY29sdW1ucyBjYW5ub3QgYmUgY29tYmluZWQgd2l0aCBvdGhlciBBTFRFUiBUQUJMRSBhY3Rpb25zAENhbm5vdCBkZWZpbmUgZm9yZWlnbiBrZXkgd2l0aCAlcyBjbGF1c2Ugb24gYSBnZW5lcmF0ZWQgY29sdW1uLgBUaGUgdmFsdWUgc3BlY2lmaWVkIGZvciBnZW5lcmF0ZWQgY29sdW1uICclcycgaW4gdGFibGUgJyVzJyBpcyBub3QgYWxsb3dlZC4AJyVzJyBpcyBub3Qgc3VwcG9ydGVkIGZvciBnZW5lcmF0ZWQgY29sdW1ucy4AR2VuZXJhdGVkIGNvbHVtbiBjYW4gcmVmZXIgb25seSB0byBnZW5lcmF0ZWQgY29sdW1ucyBkZWZpbmVkIHByaW9yIHRvIGl0LgBDb2x1bW4gJyVzJyBoYXMgYSBnZW5lcmF0ZWQgY29sdW1uIGRlcGVuZGVuY3kuAEdlbmVyYXRlZCBjb2x1bW4gJyVzJyBjYW5ub3QgcmVmZXIgdG8gYXV0by1pbmNyZW1lbnQgY29sdW1uLgBUaGUgJyUtLjY0cycgZmVhdHVyZSBpcyBub3QgYXZhaWxhYmxlOyB5b3UgbmVlZCB0byByZW1vdmUgJyUtLjY0cycgb3IgdXNlIE15U1FMIGJ1aWx0IHdpdGggJyUtLjY0cycAU0VUIEBAR0xPQkFMLkdUSURfTU9ERSA9ICUtLjY0cyBpcyBub3QgYWxsb3dlZCBiZWNhdXNlICUtLjM4NHMuAFRoZSByZXBsaWNhdGlvbiByZWNlaXZlciB0aHJlYWQlLS4xOTJzIGNhbm5vdCBzdGFydCBpbiBBVVRPX1BPU0lUSU9OIG1vZGU6IHRoaXMgc2VydmVyIHVzZXMgQEBHTE9CQUwuR1RJRF9NT0RFID0gT0ZGLgBDYW5ub3QgcmVwbGljYXRlIGFub255bW91cyB0cmFuc2FjdGlvbiB3aGVuIEFVVE9fUE9TSVRJT04gPSAxLCBhdCBmaWxlICUuNTEycywgcG9zaXRpb24gJWxsZC4AQ2Fubm90IHJlcGxpY2F0ZSBhbm9ueW1vdXMgdHJhbnNhY3Rpb24gd2hlbiBAQEdMT0JBTC5HVElEX01PREUgPSBPTiwgYXQgZmlsZSAlLjUxMnMsIHBvc2l0aW9uICVsbGQuAENhbm5vdCByZXBsaWNhdGUgR1RJRC10cmFuc2FjdGlvbiB3aGVuIEBAR0xPQkFMLkdUSURfTU9ERSA9IE9GRiwgYXQgZmlsZSAlLjUxMnMsIHBvc2l0aW9uICVsbGQuAENhbm5vdCBzZXQgRU5GT1JDRV9HVElEX0NPTlNJU1RFTkNZID0gT04gYmVjYXVzZSB0aGVyZSBhcmUgb25nb2luZyB0cmFuc2FjdGlvbnMgdGhhdCB2aW9sYXRlIEdUSUQgY29uc2lzdGVuY3kuAFRoZXJlIGFyZSBvbmdvaW5nIHRyYW5zYWN0aW9ucyB0aGF0IHZpb2xhdGUgR1RJRCBjb25zaXN0ZW5jeS4AQWNjZXNzIGRlbmllZCBmb3IgdXNlciAnJS0uNDhzJ0AnJS0uNjRzJy4gQWNjb3VudCBpcyBsb2NrZWQuAEluY29ycmVjdCB0YWJsZXNwYWNlIG5hbWUgYCUtLjE5MnNgAFRhYmxlc3BhY2UgYCUtLjE5MnNgIGlzIG5vdCBlbXB0eS4ASW5jb3JyZWN0IEZpbGUgTmFtZSAnJXMnLgBJbmNvbnNpc3RlbnQgaW50ZXJzZWN0aW9uIHBvaW50cy4AT3B0aW1pemVyIGhpbnQgc3ludGF4IGVycm9yAFVuc3VwcG9ydGVkIE1BWF9FWEVDVVRJT05fVElNRQBNQVhfRVhFQ1VUSU9OX1RJTUUgaGludCBpcyBzdXBwb3J0ZWQgYnkgdG9wLWxldmVsIHN0YW5kYWxvbmUgU0VMRUNUIHN0YXRlbWVudHMgb25seQBIaW50ICVzIGlzIGlnbm9yZWQgYXMgY29uZmxpY3RpbmcvZHVwbGljYXRlZABRdWVyeSBibG9jayBuYW1lICVzIGlzIG5vdCBmb3VuZCBmb3IgJXMgaGludABVbnJlc29sdmVkIG5hbWUgJXMgZm9yICVzIGhpbnQAUGxlYXNlIGRvIG5vdCBtb2RpZnkgdGhlICVzIHRhYmxlLiBUaGlzIGlzIGEgbXlzcWwgaW50ZXJuYWwgc3lzdGVtIHRhYmxlIHRvIHN0b3JlIEdUSURzIGZvciBjb21taXR0ZWQgdHJhbnNhY3Rpb25zLiBNb2RpZnlpbmcgaXQgY2FuIGxlYWQgdG8gYW4gaW5jb25zaXN0ZW50IEdUSUQgc3RhdGUuAENvbW1hbmQgbm90IHN1cHBvcnRlZCBieSBwbHVnZ2FibGUgcHJvdG9jb2xzAEluY29ycmVjdCBsb2NraW5nIHNlcnZpY2UgbG9jayBuYW1lICclLS4xOTJzJy4ARGVhZGxvY2sgZm91bmQgd2hlbiB0cnlpbmcgdG8gZ2V0IGxvY2tpbmcgc2VydmljZSBsb2NrOyB0cnkgcmVsZWFzaW5nIGxvY2tzIGFuZCByZXN0YXJ0aW5nIGxvY2sgYWNxdWlzaXRpb24uAFNlcnZpY2UgbG9jayB3YWl0IHRpbWVvdXQgZXhjZWVkZWQuAFBhcmFtZXRlciAlcyBleGNlZWRzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBwb2ludHMgaW4gYSBnZW9tZXRyeSAoJWx1KSBpbiBmdW5jdGlvbiAlcy4AJ05PX1pFUk9fREFURScsICdOT19aRVJPX0lOX0RBVEUnIGFuZCAnRVJST1JfRk9SX0RJVklTSU9OX0JZX1pFUk8nIHNxbCBtb2RlcyBzaG91bGQgYmUgdXNlZCB3aXRoIHN0cmljdCBtb2RlLiBUaGV5IHdpbGwgYmUgbWVyZ2VkIHdpdGggc3RyaWN0IG1vZGUgaW4gYSBmdXR1cmUgcmVsZWFzZS4AVmVyc2lvbiB0b2tlbiBtaXNtYXRjaCBmb3IgJS4qcy4gQ29ycmVjdCB2YWx1ZSAlLipzAFZlcnNpb24gdG9rZW4gJS4qcyBub3QgZm91bmQuAFZhcmlhYmxlICUtLjE5MnMgY2Fubm90IGJlIGNoYW5nZWQgYnkgYSBjbGllbnQgdGhhdCBvd25zIGEgR1RJRC4gVGhlIGNsaWVudCBvd25zICVzLiBPd25lcnNoaXAgaXMgcmVsZWFzZWQgb24gQ09NTUlUIG9yIFJPTExCQUNLLgAlLS4xOTJzIGNhbm5vdCBiZSBwZXJmb3JtZWQgb24gY2hhbm5lbCAnJS0uMTkycycuAEludmFsaWQgSlNPTiB0ZXh0OiAiJXMiIGF0IHBvc2l0aW9uICV1IGluIHZhbHVlIGZvciBjb2x1bW4gJyUtLjIwMHMnLgBJbnZhbGlkIEpTT04gdGV4dCBpbiBhcmd1bWVudCAldSB0byBmdW5jdGlvbiAlczogIiVzIiBhdCBwb3NpdGlvbiAldS4lLS4wcwBUaGUgSlNPTiBiaW5hcnkgdmFsdWUgY29udGFpbnMgaW52YWxpZCBkYXRhLgBJbnZhbGlkIEpTT04gcGF0aCBleHByZXNzaW9uLiBUaGUgZXJyb3IgaXMgYXJvdW5kIGNoYXJhY3RlciBwb3NpdGlvbiAldS4lLS4yMDBzAENhbm5vdCBjcmVhdGUgYSBKU09OIHZhbHVlIGZyb20gYSBzdHJpbmcgd2l0aCBDSEFSQUNURVIgU0VUICclcycuAEludmFsaWQgSlNPTiBjaGFyYWN0ZXIgZGF0YSBwcm92aWRlZCB0byBmdW5jdGlvbiAlczogJyVzJzsgdXRmOCBpcyByZXF1aXJlZC4ASW52YWxpZCBkYXRhIHR5cGUgZm9yIEpTT04gZGF0YSBpbiBhcmd1bWVudCAldSB0byBmdW5jdGlvbiAlczsgYSBKU09OIHN0cmluZyBvciBKU09OIHR5cGUgaXMgcmVxdWlyZWQuAENhbm5vdCBDQVNUIHZhbHVlIHRvIEpTT04uAEEgcGF0aCBleHByZXNzaW9uIG11c3QgYmUgZW5jb2RlZCBpbiB0aGUgdXRmOCBjaGFyYWN0ZXIgc2V0LiBUaGUgcGF0aCBleHByZXNzaW9uICclLS4yMDBzJyBpcyBlbmNvZGVkIGluIGNoYXJhY3RlciBzZXQgJyUtLjIwMHMnLgBJbiB0aGlzIHNpdHVhdGlvbiwgcGF0aCBleHByZXNzaW9ucyBtYXkgbm90IGNvbnRhaW4gdGhlICogYW5kICoqIHRva2VucyBvciBhbiBhcnJheSByYW5nZS4AVGhlIEpTT04gdmFsdWUgaXMgdG9vIGJpZyB0byBiZSBzdG9yZWQgaW4gYSBKU09OIGNvbHVtbi4AVGhlIEpTT04gb2JqZWN0IGNvbnRhaW5zIGEga2V5IG5hbWUgdGhhdCBpcyB0b28gbG9uZy4ASlNPTiBjb2x1bW4gJyUtLjE5MnMnIHN1cHBvcnRzIGluZGV4aW5nIG9ubHkgdmlhIGdlbmVyYXRlZCBjb2x1bW5zIG9uIGEgc3BlY2lmaWVkIEpTT04gcGF0aC4AVGhlIHBhdGggZXhwcmVzc2lvbiAnJCcgaXMgbm90IGFsbG93ZWQgaW4gdGhpcyBjb250ZXh0LgBUaGUgb25lT3JBbGwgYXJndW1lbnQgdG8gJXMgbWF5IHRha2UgdGhlc2UgdmFsdWVzOiAnb25lJyBvciAnYWxsJy4AT3V0IG9mIHJhbmdlIEpTT04gdmFsdWUgZm9yIENBU1QgdG8gJXMlLS4wcyBmcm9tIGNvbHVtbiAlcyBhdCByb3cgJWxkAEludmFsaWQgSlNPTiB2YWx1ZSBmb3IgQ0FTVCB0byAlcyUtLjBzIGZyb20gY29sdW1uICVzIGF0IHJvdyAlbGQAVGhlIEpTT04gZG9jdW1lbnQgZXhjZWVkcyB0aGUgbWF4aW11bSBkZXB0aC4ASlNPTiBkb2N1bWVudHMgbWF5IG5vdCBjb250YWluIE5VTEwgbWVtYmVyIG5hbWVzLgBDb25uZWN0aW9ucyB1c2luZyBpbnNlY3VyZSB0cmFuc3BvcnQgYXJlIHByb2hpYml0ZWQgd2hpbGUgLS1yZXF1aXJlX3NlY3VyZV90cmFuc3BvcnQ9T04uAE5vIHNlY3VyZSB0cmFuc3BvcnRzIChTU0wgb3IgU2hhcmVkIE1lbW9yeSkgYXJlIGNvbmZpZ3VyZWQsIHVuYWJsZSB0byBzZXQgLS1yZXF1aXJlX3NlY3VyZV90cmFuc3BvcnQ9T04uAFN0b3JhZ2UgZW5naW5lICVzIGlzIGRpc2FibGVkIChUYWJsZSBjcmVhdGlvbiBpcyBkaXNhbGxvd2VkKS4AQXV0aG9yaXphdGlvbiBJRCAlcyBkb2VzIG5vdCBleGlzdC4AQXV0aG9yaXphdGlvbiBJRCAlcyBhbHJlYWR5IGV4aXN0cy4AQWJvcnRlZCBieSBBdWRpdCBBUEkgKCclLS40OHMnOyVkKS4AQSBwYXRoIGV4cHJlc3Npb24gaXMgbm90IGEgcGF0aCB0byBhIGNlbGwgaW4gYW4gYXJyYXkuAEFub3RoZXIgYnVmZmVyIHBvb2wgcmVzaXplIGlzIGFscmVhZHkgaW4gcHJvZ3Jlc3MuAFRoZSAnJXMnIGZlYXR1cmUgaXMgZGlzYWJsZWQ7IHNlZSB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgJyVzJwBTZXJ2ZXIgaXNuJ3QgYXZhaWxhYmxlAFNlc3Npb24gd2FzIGtpbGxlZABNZW1vcnkgY2FwYWNpdHkgb2YgJWxsdSBieXRlcyBmb3IgJyVzJyBleGNlZWRlZC4gJXMAUmFuZ2Ugb3B0aW1pemF0aW9uIHdhcyBub3QgZG9uZSBmb3IgdGhpcyBxdWVyeS4AUGFydGl0aW9uaW5nIHVwZ3JhZGUgcmVxdWlyZWQuIFBsZWFzZSBkdW1wL3JlbG9hZCB0byBmaXggaXQgb3IgZG86IEFMVEVSIFRBQkxFIGAlLS4xOTJzYC5gJS0uMTkyc2AgVVBHUkFERSBQQVJUSVRJT05JTkcAVGhlIGNsaWVudCBob2xkcyBvd25lcnNoaXAgb2YgdGhlIEdUSUQgJXMuIFRoZXJlZm9yZSwgV0FJVF9GT1JfRVhFQ1VURURfR1RJRF9TRVQgY2Fubm90IHdhaXQgZm9yIHRoaXMgR1RJRC4AQ2Fubm90IGFkZCBmb3JlaWduIGtleSBvbiB0aGUgYmFzZSBjb2x1bW4gb2YgaW5kZXhlZCB2aXJ0dWFsIGNvbHVtbi4AQ2Fubm90IGNyZWF0ZSBpbmRleCBvbiB2aXJ0dWFsIGNvbHVtbiB3aG9zZSBiYXNlIGNvbHVtbiBoYXMgZm9yZWlnbiBjb25zdHJhaW50LgBQbGVhc2UgZG8gbm90IG1vZGlmeSB0aGUgJXMgdGFibGUgd2l0aCBhbiBYQSB0cmFuc2FjdGlvbi4gVGhpcyBpcyBhbiBpbnRlcm5hbCBzeXN0ZW0gdGFibGUgdXNlZCB0byBzdG9yZSBHVElEcyBmb3IgY29tbWl0dGVkIHRyYW5zYWN0aW9ucy4gQWx0aG91Z2ggbW9kaWZ5aW5nIGl0IGNhbiBsZWFkIHRvIGFuIGluY29uc2lzdGVudCBHVElEIHN0YXRlLCBpZiBuZWNlc3NhcnkgeW91IGNhbiBtb2RpZnkgaXQgd2l0aCBhIG5vbi1YQSB0cmFuc2FjdGlvbi4ATG9jayBhY3F1aXNpdGlvbiByZWZ1c2VkIGJ5IHN0b3JhZ2UgZW5naW5lLgBBREQgQ09MVU1OIGNvbC4uLlZJUlRVQUwsIEFERCBJTkRFWChjb2wpAE1hc3RlciBrZXkgcm90YXRpb24gaXMgbm90IHN1cHBvcnRlZCBieSBzdG9yYWdlIGVuZ2luZS4ARW5jcnlwdGlvbiBrZXkgcm90YXRpb24gZXJyb3IgcmVwb3J0ZWQgYnkgU0U6ICVzAFdyaXRlIHRvIGJpbmxvZyBmYWlsZWQuIEhvd2V2ZXIsIG1hc3RlciBrZXkgcm90YXRpb24gaGFzIGJlZW4gY29tcGxldGVkIHN1Y2Nlc3NmdWxseS4AU3RvcmFnZSBlbmdpbmUgaXMgbm90IGF2YWlsYWJsZS4AVGhpcyB0YWJsZXNwYWNlIGNhbid0IGJlIGVuY3J5cHRlZC4ASW52YWxpZCBlbmNyeXB0aW9uIG9wdGlvbi4AQ2FuJ3QgZmluZCBtYXN0ZXIga2V5IGZyb20ga2V5cmluZywgcGxlYXNlIGNoZWNrIGluIHRoZSBzZXJ2ZXIgbG9nIGlmIGEga2V5cmluZyBpcyBsb2FkZWQgYW5kIGluaXRpYWxpemVkIHN1Y2Nlc3NmdWxseS4AUGFyc2VyIGJhaWxlZCBvdXQgZm9yIHRoaXMgcXVlcnkuAENhbm5vdCBhbHRlciBlbmNyeXB0aW9uIGF0dHJpYnV0ZSBieSBpbnBsYWNlIGFsZ29yaXRobS4ARnVuY3Rpb24gJyVzJyBmYWlsZWQgYmVjYXVzZSB1bmRlcmx5aW5nIGtleXJpbmcgc2VydmljZSByZXR1cm5lZCBhbiBlcnJvci4gUGxlYXNlIGNoZWNrIGlmIGEga2V5cmluZyBpcyBpbnN0YWxsZWQgYW5kIHRoYXQgcHJvdmlkZWQgYXJndW1lbnRzIGFyZSB2YWxpZCBmb3IgdGhlIGtleXJpbmcgeW91IGFyZSB1c2luZy4ASXQgc2VlbXMgdGhhdCB5b3VyIGRiIHNjaGVtYSBpcyBvbGQuIFRoZSAlcyBjb2x1bW4gaXMgNzcgY2hhcmFjdGVycyBsb25nIGFuZCBzaG91bGQgYmUgOTMgY2hhcmFjdGVycyBsb25nLiBQbGVhc2UgcGVyZm9ybSB0aGUgTXlTUUwgdXBncmFkZSBwcm9jZWR1cmUuAFJFU0VUIFNPVVJDRSBpcyBub3QgYWxsb3dlZCBiZWNhdXNlICUtLjM4NHMuAFRoZSBTVEFSVCBHUk9VUF9SRVBMSUNBVElPTiBjb21tYW5kIGZhaWxlZCBzaW5jZSB0aGUgZ3JvdXAgYWxyZWFkeSBoYXMgOSBtZW1iZXJzLgBDYW5ub3QgYWRkIGZvcmVpZ24ga2V5IG9uIHRoZSBiYXNlIGNvbHVtbiBvZiBzdG9yZWQgY29sdW1uLiAAQ2Fubm90IGNvbXBsZXRlIHRoZSBvcGVyYXRpb24gYmVjYXVzZSB0YWJsZSBpcyByZWZlcmVuY2VkIGJ5IGFub3RoZXIgY29ubmVjdGlvbi4AVGhlIHBhcnRpdGlvbiBlbmdpbmUsIHVzZWQgYnkgdGFibGUgJyUtLjE5MnMuJS0uMTkycycsIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLiBQbGVhc2UgdXNlIG5hdGl2ZSBwYXJ0aXRpb25pbmcgaW5zdGVhZC4AJS4xOTJzKGdlb21ldHJ5KSBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlcGxhY2VkIGJ5IHN0X3NyaWQoZ2VvbWV0cnksIDApIGluIGEgZnV0dXJlIHZlcnNpb24uIFVzZSAlLjE5MnMoc3RfYXN3a2IoZ2VvbWV0cnkpLCAwKSBpbnN0ZWFkLgAlLjE5MnMoZ2VvbWV0cnksIHNyaWQpIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVwbGFjZWQgYnkgc3Rfc3JpZChnZW9tZXRyeSwgc3JpZCkgaW4gYSBmdXR1cmUgdmVyc2lvbi4gVXNlICUuMTkycyhzdF9hc3drYihnZW9tZXRyeSksIHNyaWQpIGluc3RlYWQuAFRoZSByZXNvdXJjZSBtYW5hZ2VyIGlzIG5vdCBhYmxlIHRvIGNvbW1pdCB0aGUgdHJhbnNhY3Rpb24gYnJhbmNoIGF0IHRoaXMgdGltZS4gUGxlYXNlIHJldHJ5IGxhdGVyLgBGdW5jdGlvbiAlcyBmYWlsZWQgZHVlIHRvOiAlcy4AU3RhdGVtZW50IGlzIHVuc2FmZSBiZWNhdXNlIGl0IGlzIGJlaW5nIHVzZWQgaW5zaWRlIGEgWEEgdHJhbnNhY3Rpb24uIENvbmN1cnJlbnQgWEEgdHJhbnNhY3Rpb25zIG1heSBkZWFkbG9jayBvbiByZXBsaWNhcyB3aGVuIHJlcGxpY2F0ZWQgdXNpbmcgc3RhdGVtZW50cy4AJXMgVURGIGZhaWxlZDsgJXMAQ2FuIG5vdCBwZXJmb3JtIGtleXJpbmcgbWlncmF0aW9uIDogJXMAQWNjZXNzIGRlbmllZDsgeW91IG5lZWQgJS0uMTI4cyBwcml2aWxlZ2VzIGZvciB0aGlzIG9wZXJhdGlvbgBLZXlyaW5nIG1pZ3JhdGlvbiAlcy4ARmFpbGVkIHRvIG9wZW4gdGhlICVzIGZpbHRlciB0YWJsZXMuAEZhaWxlZCB0byBvcGVuICclcy4lcycgJXMgdGFibGUuAE5vIGtleXJpbmcgcGx1Z2luIGluc3RhbGxlZC4AQXVkaXQgbG9nIGVuY3J5cHRpb24gcGFzc3dvcmQgaGFzIG5vdCBiZWVuIHNldDsgaXQgd2lsbCBiZSBnZW5lcmF0ZWQgYXV0b21hdGljYWxseS4gVXNlIGF1ZGl0X2xvZ19lbmNyeXB0aW9uX3Bhc3N3b3JkX2dldCB0byBvYnRhaW4gdGhlIHBhc3N3b3JkIG9yIGF1ZGl0X2xvZ19lbmNyeXB0aW9uX3Bhc3N3b3JkX3NldCB0byBzZXQgYSBuZXcgb25lLgBDb3VsZCBub3QgY3JlYXRlIEFFUyBrZXkuIE9wZW5TU0wncyBFVlBfQnl0ZXNUb0tleSBmdW5jdGlvbiBmYWlsZWQuAEF1ZGl0IGxvZyBlbmNyeXB0aW9uIHBhc3N3b3JkIGNhbm5vdCBiZSBmZXRjaGVkIGZyb20gdGhlIGtleXJpbmcuIFBhc3N3b3JkIHVzZWQgc28gZmFyIGlzIHVzZWQgZm9yIGVuY3J5cHRpb24uAEF1ZGl0IExvZyBmaWx0ZXJpbmcgaGFzIG5vdCBiZWVuIGluc3RhbGxlZC4AUmVxdWVzdCBpZ25vcmVkIGZvciAnJXMnQCclcycuIFNVUEVSIHByaXZpbGVnZSBvciBBVURJVF9BRE1JTiByb2xlIG5lZWRlZCB0byBwZXJmb3JtIG9wZXJhdGlvbgBTVVBFUiBwcml2aWxlZ2Ugb3IgQVVESVRfQURNSU4gcm9sZSByZXF1aXJlZCBmb3IgJyVzJ0AnJXMnIHVzZXIuAENvdWxkIG5vdCByZWluaXRpYWxpemUgYXVkaXQgbG9nIGZpbHRlcnMuAEludmFsaWQgYXJndW1lbnQgdHlwZQBJbnZhbGlkIGFyZ3VtZW50IGNvdW50AGF1ZGl0X2xvZyBwbHVnaW4gaGFzIG5vdCBiZWVuIGluc3RhbGxlZCB1c2luZyBJTlNUQUxMIFBMVUdJTiBzeW50YXguAEludmFsaWQgIm1heF9hcnJheV9sZW5ndGgiIGFyZ3VtZW50IHR5cGUuAEludmFsaWQgIm1heF9hcnJheV9sZW5ndGgiIGFyZ3VtZW50IHZhbHVlLgAlcwBGaWx0ZXIgbmFtZSBjYW5ub3QgYmUgZW1wdHkuAFVzZXIgY2Fubm90IGJlIGVtcHR5LgBTcGVjaWZpZWQgZmlsdGVyIGhhcyBub3QgYmVlbiBmb3VuZC4ARmlyc3QgY2hhcmFjdGVyIG9mIHRoZSB1c2VyIG5hbWUgbXVzdCBiZSBhbHBoYW51bWVyaWMuAEludmFsaWQgY2hhcmFjdGVyIGluIHRoZSB1c2VyIG5hbWUuAEludmFsaWQgY2hhcmFjdGVyIGluIHRoZSBob3N0IG5hbWUuAFdpdGggdGhlIE1BWERCIFNRTCBtb2RlIGVuYWJsZWQsIFRJTUVTVEFNUCBpcyBpZGVudGljYWwgd2l0aCBEQVRFVElNRS4gVGhlIE1BWERCIFNRTCBtb2RlIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLiBQbGVhc2UgZGlzYWJsZSB0aGUgTUFYREIgU1FMIG1vZGUgYW5kIHVzZSBEQVRFVElNRSBpbnN0ZWFkLgBUaGUgdXNlIG9mIHJlcGxpY2F0aW9uIGZpbHRlcnMgd2l0aCBYQSB0cmFuc2FjdGlvbnMgaXMgbm90IHN1cHBvcnRlZCwgYW5kIGNhbiBsZWFkIHRvIGFuIHVuZGVmaW5lZCBzdGF0ZSBpbiB0aGUgcmVwbGljYS4AQ291bGQgbm90IG9wZW4gZmlsZSAnJXMnIGZvciBlcnJvciBsb2dnaW5nJXMlcwBHcm91cGluZyBvbiB0ZW1wb3JhbCBpcyBub24tZGV0ZXJtaW5pc3RpYyBmb3IgdGltZXpvbmVzIGhhdmluZyBEU1QuIFBsZWFzZSBjb25zaWRlciBzd2l0Y2hpbmcgdG8gVVRDIGZvciB0aGlzIHF1ZXJ5LgBDYW4ndCBzdGFydCBzZXJ2ZXIgOiBOYW1lZCBQaXBlICIlcyIgYWxyZWFkeSBpbiB1c2UuAFRoZSBzaXplIG9mIHdyaXRlc2V0IGRhdGEgZm9yIHRoZSBjdXJyZW50IHRyYW5zYWN0aW9uIGV4Y2VlZHMgYSBsaW1pdCBpbXBvc2VkIGJ5IGFuIGV4dGVybmFsIGNvbXBvbmVudC4gSWYgdXNpbmcgR3JvdXAgUmVwbGljYXRpb24gY2hlY2sgJ2dyb3VwX3JlcGxpY2F0aW9uX3RyYW5zYWN0aW9uX3NpemVfbGltaXQnLgBBY2NlcHRlZCBhIGNvbm5lY3Rpb24gd2l0aCBkZXByZWNhdGVkIHByb3RvY29sICclcycgZm9yIGFjY291bnQgYCVzYEBgJXNgIGZyb20gaG9zdCBgJXNgLiBDbGllbnQgc3VwcGxpZWQgdXNlcm5hbWUgYCVzYABBIGRlcHJlY2F0ZWQgVExTIHZlcnNpb24gJXMgaXMgZW5hYmxlZC4gUGxlYXNlIHVzZSBUTFN2MS4yIG9yIGhpZ2hlci4AT3B0aW9uYWwgbmF0aXZlIHRhYmxlICclLS42NHMnLiclLS42NHMnIGhhcyB0aGUgd3Jvbmcgc3RydWN0dXJlIG9yIGlzIG1pc3NpbmcuAEtERiBtZXRob2QgbmFtZSBpcyBub3QgdmFsaWQuIFBsZWFzZSB1c2UgaGtkZiBvciBwYmtkZjJfaG1hYyBtZXRob2QgbmFtZQBGb3IgS0RGIG1ldGhvZCBwYmtkZjJfaG1hYyBpdGVyYXRpb25zIHZhbHVlIGxlc3MgdGhhbiAxMDAwIG9yIG1vcmUgdGhhbiA2NTUzNSBpcyBub3QgYWxsb3dlZCBkdWUgdG8gc2VjdXJpdHkgcmVhc29ucy4gUGxlYXNlIHByb3ZpZGUgaXRlcmF0aW9ucyA+PSAxMDAwIGFuZCBpdGVyYXRpb25zIDwgNjU1MzUAQUVTIGtleSBzaXplIHNob3VsZCBiZSAlZCBieXRlcyBsZW5ndGggb3Igc2VjdXJlIEtERiBtZXRob2RzIGhrZGYgb3IgcGJrZGYyX2htYWMgc2hvdWxkIGJlIHVzZWQsIHBsZWFzZSBwcm92aWRlIGV4YWN0IEFFUyBrZXkgc2l6ZSBvciB1c2UgS0RGIG1ldGhvZHMgZm9yIGJldHRlciBzZWN1cml0eS4AS0RGIG9wdGlvbiBzaXplIGlzIGludmFsaWQsIHBsZWFzZSBwcm92aWRlIHZhbGlkIHNpemUgPCAlZCBieXRlcyBhbmQgbm90IE5VTEwAQ1JFQVRFIFRFTVBPUkFSWSBUQUJMRSBpcyBub3QgYWxsb3dlZCB3aXRoIFJPV19GT1JNQVQ9Q09NUFJFU1NFRCBvciBLRVlfQkxPQ0tfU0laRS4AVGhlIEFDTCBvcGVyYXRpb24gZmFpbGVkIGR1ZSB0byB0aGUgZm9sbG93aW5nIGVycm9yIGZyb20gU0U6IGVycmNvZGUgJWQgLSAlLjI1NnMAVGhpcyBzdG9yYWdlIGVuZ2luZSBkb2VzIG5vdCBzdXBwb3J0IHRoZSAlcyBpbmRleCBhbGdvcml0aG0sIHN0b3JhZ2UgZW5naW5lIGRlZmF1bHQgd2FzIHVzZWQgaW5zdGVhZC4ARGF0YWJhc2UgJyUtLjE5MnMnIGRvZXNuJ3QgZXhpc3QAVG9vIG1hbnkgZW51bWVyYXRpb24gdmFsdWVzIGZvciBjb2x1bW4gJS4xOTJzLgBUb28gbG9uZyBlbnVtZXJhdGlvbi9zZXQgdmFsdWUgZm9yIGNvbHVtbiAlLjE5MnMuACVzIGRpY3Rpb25hcnkgb2JqZWN0IGlzIGludmFsaWQuICglLjE5MnMpAEZhaWxlZCB0byB1cGRhdGUgJS4xOTJzIGRpY3Rpb25hcnkgb2JqZWN0LgBEaWN0aW9uYXJ5IG9iamVjdCBpZCAoJWx1KSBkb2VzIG5vdCBleGlzdC4ARGljdGlvbmFyeSBvYmplY3QgbmFtZSAnJXMnIGlzIGludmFsaWQuICglLjE5MnMpAFRhYmxlc3BhY2UgJS0uMTkycyBkb2Vzbid0IGV4aXN0LgBDb21tZW50IGZvciByb3V0aW5lICclLS42NHMnIGlzIHRvbyBsb25nIChtYXggPSAlbHUpAEZhaWxlZCB0byBsb2FkIHJvdXRpbmUgJyUtLjY0cycuAEJpbmFyeSBvcGVyYW5kcyBvZiBiaXR3aXNlIG9wZXJhdG9ycyBtdXN0IGJlIG9mIGVxdWFsIGxlbmd0aABBZ2dyZWdhdGUgYml0d2lzZSBmdW5jdGlvbnMgY2Fubm90IGFjY2VwdCBhcmd1bWVudHMgbG9uZ2VyIHRoYW4gNTExIGJ5dGVzOyBjb25zaWRlciB1c2luZyB0aGUgU1VCU1RSSU5HKCkgZnVuY3Rpb24ASGludHMgYXJlbid0IHN1cHBvcnRlZCBpbiAlcwAlLjY0cyB2YWx1ZSBpcyBhIGdlb21ldHJ5IG9mIHVuZXhwZWN0ZWQgdHlwZSAlLjY0cyBpbiAlLjY0cy4AQ2FuJ3QgcGFyc2UgdGhlIHNwYXRpYWwgcmVmZXJlbmNlIHN5c3RlbSBkZWZpbml0aW9uIG9mIFNSSUQgJXUuAFRoZSBzcGF0aWFsIHJlZmVyZW5jZSBzeXN0ZW0gZGVmaW5pdGlvbiBmb3IgU1JJRCAldSBkb2VzIG5vdCBzcGVjaWZ5IHRoZSBtYW5kYXRvcnkgJXMgKEVQU0cgJXUpIHByb2plY3Rpb24gcGFyYW1ldGVyLgBUaGVyZSdzIG5vIHNwYXRpYWwgcmVmZXJlbmNlIHN5c3RlbSB3aXRoIFNSSUQgJXUuAEZ1bmN0aW9uICVzIGlzIG9ubHkgZGVmaW5lZCBmb3IgQ2FydGVzaWFuIHNwYXRpYWwgcmVmZXJlbmNlIHN5c3RlbXMsIGJ1dCBvbmUgb2YgaXRzIGFyZ3VtZW50cyBpcyBpbiBTUklEICV1LCB3aGljaCBpcyBub3QgQ2FydGVzaWFuLgBGdW5jdGlvbiAlcyBpcyBvbmx5IGRlZmluZWQgZm9yIENhcnRlc2lhbiBzcGF0aWFsIHJlZmVyZW5jZSBzeXN0ZW1zLCBidXQgb25lIG9mIGl0cyBhcmd1bWVudHMgaXMgaW4gU1JJRCAldSwgd2hpY2ggaGFzIG5vdCBiZWVuIGRlZmluZWQuAEEgcHJpbWFyeSBrZXkgaW5kZXggY2Fubm90IGJlIGludmlzaWJsZQBVbmtub3duIGF1dGhvcml6YXRpb24gSUQgYCUuNjRzYEBgJS42NHNgAEZhaWxlZCB0byBncmFudCAlLjkwc2AgdG8gJS45MHMARmFpbGVkIHRvIG9wZW4gdGhlIHNlY3VyaXR5IHN5c3RlbSB0YWJsZXMARmFpbGVkIHRvIHNldCBkZWZhdWx0IHJvbGVzAENhbm5vdCBmaW5kIHNjaGVtYSBpbiBzcGVjaWZpZWQgVVJOOiAnJS4xOTJzJy4AQ2Fubm90IGFjcXVpcmUgc2NoZW1lIGxvYWQgc2VydmljZSBpbXBsZW1lbnRhdGlvbiBmb3Igc2NoZW1hICclLjE5MnMnIGluIHNwZWNpZmllZCBVUk46ICclLjE5MnMnLgBDYW5ub3QgbG9hZCBjb21wb25lbnQgZnJvbSBzcGVjaWZpZWQgVVJOOiAnJS4xOTJzJy4AYCUuNjRzYEBgJS42NHNgIGlzIG5vdCBncmFudGVkIHRvIGAlLjY0c2BAYCUuNjRzYABDb3VsZCBub3QgcmV2b2tlIHJvbGUgZnJvbSBgJS42NHNgQGAlLjY0c2AAUmVuYW1pbmcgb2YgYSByb2xlIGlkZW50aWZpZXIgaXMgZm9yYmlkZGVuAENhbm5vdCBhY3F1aXJlIHNwZWNpZmllZCBzZXJ2aWNlIGltcGxlbWVudGF0aW9uOiAnJS4xOTJzJy4AQ2Fubm90IHNhdGlzZnkgZGVwZW5kZW5jeSBmb3Igc2VydmljZSAnJS4xOTJzJyByZXF1aXJlZCBieSBjb21wb25lbnQgJyUuMTkycycuAENhbm5vdCByZWdpc3RlciBzZXJ2aWNlIGltcGxlbWVudGF0aW9uICclLjE5MnMnIHByb3ZpZGVkIGJ5IGNvbXBvbmVudCAnJS4xOTJzJy4ASW5pdGlhbGl6YXRpb24gbWV0aG9kIHByb3ZpZGVkIGJ5IGNvbXBvbmVudCAnJS4xOTJzJyBmYWlsZWQuAENvbXBvbmVudCBzcGVjaWZpZWQgYnkgVVJOICclLjE5MnMnIHRvIHVubG9hZCBoYXMgbm90IGJlZW4gbG9hZGVkIGJlZm9yZS4ARGUtaW5pdGlhbGl6YXRpb24gbWV0aG9kIHByb3ZpZGVkIGJ5IGNvbXBvbmVudCAnJS4xOTJzJyBmYWlsZWQuAFJlbGVhc2Ugb2YgcHJldmlvdXNseSBhY3F1aXJlZCBzZXJ2aWNlIGltcGxlbWVudGF0aW9uIGZhaWxlZC4AVW5yZWdpc3RyYXRpb24gb2Ygc2VydmljZSBpbXBsZW1lbnRhdGlvbiAnJS4xOTJzJyBwcm92aWRlZCBieSBjb21wb25lbnQgJyUuMTkycycgZmFpbGVkIGR1cmluZyB1bmxvYWRpbmcgb2YgdGhlIGNvbXBvbmVudC4AQ2Fubm90IHVubG9hZCBjb21wb25lbnQgZnJvbSBzcGVjaWZpZWQgVVJOOiAnJS4xOTJzJy4AVGhlIFBlcnNpc3RlbnQgRHluYW1pYyBMb2FkZXIgd2FzIHVzZWQgdG8gdW5sb2FkIGEgY29tcG9uZW50ICclLjE5MnMnLCBidXQgaXQgd2FzIG5vdCB1c2VkIHRvIGxvYWQgdGhhdCBjb21wb25lbnQgYmVmb3JlLgBUaGUgbXlzcWwuY29tcG9uZW50IHRhYmxlIGlzIG1pc3Npbmcgb3IgaGFzIGFuIGluY29ycmVjdCBkZWZpbml0aW9uLgBGYWlsZWQgdG8gbWFuaXB1bGF0ZSBjb21wb25lbnQgJyUuMTkycycgcGVyc2lzdGVuY2UgZGF0YS4gRXJyb3IgY29kZSAlZCBmcm9tIHN0b3JhZ2UgZW5naW5lLgBUaGUgY29tcG9uZW50IHdpdGggc3BlY2lmaWVkIFVSTjogJyUuMTkycycgd2FzIHNwZWNpZmllZCBpbiBncm91cCBtb3JlIHRoYW4gb25jZS4AQEBHTE9CQUwuR1RJRF9QVVJHRUQgY2Fubm90IGJlIGNoYW5nZWQ6ICVzAENhbiBub3QgbG9jayB1c2VyIG1hbmFnZW1lbnQgY2FjaGVzIGZvciBwcm9jZXNzaW5nLgBUaGVyZSdzIG5vIHNwYXRpYWwgcmVmZXJlbmNlIHN5c3RlbSB3aXRoIFNSSUQgJXUuAFZhcmlhYmxlcyBjYW5ub3QgYmUgcGVyc2lzdGVkLiBQbGVhc2UgcmV0cnkuAEluZm9ybWF0aW9uIHNjaGVtYSBxdWVyaWVzIGRvIG5vdCBzdXBwb3J0IHRoZSAnJXMnIGNsYXVzZS4AVW5hYmxlIHRvIHN0b3JlIGR5bmFtaWMgJXMgc3RhdGlzdGljcyBpbnRvIGRhdGEgZGljdGlvbmFyeS4AQWNjZXNzIHRvIHN5c3RlbSBzY2hlbWEgJyUuNjRzJyBpcyByZWplY3RlZC4AQWNjZXNzIHRvIHN5c3RlbSB0YWJsZXNwYWNlICclLjY0cycgaXMgcmVqZWN0ZWQuAEFjY2VzcyB0byAlLjY0cyAnJS42NHMuJS42NHMnIGlzIHJlamVjdGVkLgBkYXRhIGRpY3Rpb25hcnkgdGFibGUAc3lzdGVtIHRhYmxlAHRhYmxlAEludmFsaWQgb3B0aW9uIGtleSAnJS4xOTJzJyBpbiBmdW5jdGlvbiAlLjE5MnMuAEludmFsaWQgdmFsdWUgJyUuMTkycycgZm9yIG9wdGlvbiAnJS4xOTJzJyBpbiBmdW5jdGlvbiAnJS4xOTJzJy4AVGhlIHN0cmluZyAnJS4xOTJzJyBpcyBub3QgYSB2YWxpZCBrZXkgJWMgdmFsdWUgcGFpciBpbiBmdW5jdGlvbiAlLjE5MnMuAFRoZSBvcHRpb25zIGFyZ3VtZW50IGluIGZ1bmN0aW9uICUuMTkycyBzdGFydHMgd2l0aCB0aGUgaW52YWxpZCBjaGFyYWN0ZXIgJyVjJy4AVGhlIG9wdGlvbnMgYXJndW1lbnQgaW4gZnVuY3Rpb24gJS4xOTJzIGVuZHMgd2l0aCB0aGUgaW52YWxpZCBjaGFyYWN0ZXIgJyVjJy4AVGhlIG9wdGlvbnMgYXJndW1lbnQgaW4gZnVuY3Rpb24gJS4xOTJzIGNvbnRhaW5zIHRoZSBpbnZhbGlkIGNoYXJhY3RlciBzZXF1ZW5jZSAnJS4xOTJzJy4ARHVwbGljYXRlIG9wdGlvbiBrZXkgJyUuMTkycycgaW4gZnVudGlvbiAnJS4xOTJzJy4AVGhlcmUncyBubyBzcGF0aWFsIHJlZmVyZW5jZSBzeXN0ZW0gd2l0aCBTUklEICV1LiBUaGUgYXhpcyBvcmRlciBpcyB1bmtub3duLgBBY2Nlc3MgdG8gbmF0aXZlIGZ1bmN0aW9uICclLjY0cycgaXMgcmVqZWN0ZWQuAFRoZSByZXF1ZXN0ZWQgdmFsdWUgJyVsbHUnIGZvciB0aGUgbmV4dCBiaW5hcnkgbG9nIGluZGV4IGlzIG91dCBvZiByYW5nZS4gUGxlYXNlIHVzZSBhIHZhbHVlIGJldHdlZW4gJzEnIGFuZCAnJWx1Jy4AVW5yZXNvbHZlZCB0YWJsZSBuYW1lICVzIGluIGxvY2tpbmcgY2xhdXNlLgBUYWJsZSAlcyBhcHBlYXJzIGluIG11bHRpcGxlIGxvY2tpbmcgY2xhdXNlcy4AU3RhdGVtZW50IGlzIHVuc2FmZSBiZWNhdXNlIGl0IHVzZXMgU0tJUCBMT0NLRUQuIFRoZSBzZXQgb2YgaW5zZXJ0ZWQgdmFsdWVzIGlzIG5vbi1kZXRlcm1pbmlzdGljLgBTdGF0ZW1lbnQgaXMgdW5zYWZlIGJlY2F1c2UgaXQgdXNlcyBOT1dBSVQuIFdoZXRoZXIgdGhlIGNvbW1hbmQgd2lsbCBzdWNjZWVkIG9yIGZhaWwgaXMgbm90IGRldGVybWluaXN0aWMuAFN0YXRlbWVudCBhYm9ydGVkIGJlY2F1c2UgbG9jayhzKSBjb3VsZCBub3QgYmUgYWNxdWlyZWQgaW1tZWRpYXRlbHkgYW5kIE5PV0FJVCBpcyBzZXQuAFJlY3Vyc2l2ZSBDb21tb24gVGFibGUgRXhwcmVzc2lvbiAnJXMnIHNob3VsZCBjb250YWluIGEgVU5JT04AUmVjdXJzaXZlIENvbW1vbiBUYWJsZSBFeHByZXNzaW9uICclcycgc2hvdWxkIGhhdmUgb25lIG9yIG1vcmUgbm9uLXJlY3Vyc2l2ZSBxdWVyeSBibG9ja3MgZm9sbG93ZWQgYnkgb25lIG9yIG1vcmUgcmVjdXJzaXZlIG9uZXMAUmVjdXJzaXZlIENvbW1vbiBUYWJsZSBFeHByZXNzaW9uICclcycgY2FuIGNvbnRhaW4gbmVpdGhlciBhZ2dyZWdhdGlvbiBub3Igd2luZG93IGZ1bmN0aW9ucyBpbiByZWN1cnNpdmUgcXVlcnkgYmxvY2sASW4gcmVjdXJzaXZlIHF1ZXJ5IGJsb2NrIG9mIFJlY3Vyc2l2ZSBDb21tb24gVGFibGUgRXhwcmVzc2lvbiAnJXMnLCB0aGUgcmVjdXJzaXZlIHRhYmxlIG11c3QgbmVpdGhlciBiZSBpbiB0aGUgcmlnaHQgYXJndW1lbnQgb2YgYSBMRUZUIEpPSU4sIG5vciBiZSBmb3JjZWQgdG8gYmUgbm9uLWZpcnN0IHdpdGggam9pbiBvcmRlciBoaW50cwBJbiByZWN1cnNpdmUgcXVlcnkgYmxvY2sgb2YgUmVjdXJzaXZlIENvbW1vbiBUYWJsZSBFeHByZXNzaW9uICclcycsIHRoZSByZWN1cnNpdmUgdGFibGUgbXVzdCBiZSByZWZlcmVuY2VkIG9ubHkgb25jZSwgYW5kIG5vdCBpbiBhbnkgc3VicXVlcnkAJyVzJyByZXF1aXJlcyBAQGludGVybmFsX3RtcF9kaXNrX3N0b3JhZ2VfZW5naW5lPUlubm9EQgBXaW5kb3cgbmFtZSAnJXMnIGlzIG5vdCBkZWZpbmVkLgBUaGVyZSBpcyBhIGNpcmN1bGFyaXR5IGluIHRoZSB3aW5kb3cgZGVwZW5kZW5jeSBncmFwaC4AQSB3aW5kb3cgd2hpY2ggZGVwZW5kcyBvbiBhbm90aGVyIGNhbm5vdCBkZWZpbmUgcGFydGl0aW9uaW5nLgBXaW5kb3cgJyVzJyBoYXMgYSBmcmFtZSBkZWZpbml0aW9uLCBzbyBjYW5ub3QgYmUgcmVmZXJlbmNlZCBieSBhbm90aGVyIHdpbmRvdy4AV2luZG93ICclcycgY2Fubm90IGluaGVyaXQgJyVzJyBzaW5jZSBib3RoIGNvbnRhaW4gYW4gT1JERVIgQlkgY2xhdXNlLgBXaW5kb3cgJyVzJzogZnJhbWUgc3RhcnQgY2Fubm90IGJlIFVOQk9VTkRFRCBGT0xMT1dJTkcuAFdpbmRvdyAnJXMnOiBmcmFtZSBlbmQgY2Fubm90IGJlIFVOQk9VTkRFRCBQUkVDRURJTkcuAFdpbmRvdyAnJXMnOiBmcmFtZSBzdGFydCBvciBlbmQgaXMgbmVnYXRpdmUsIE5VTEwgb3Igb2Ygbm9uLWludGVncmFsIHR5cGUAV2luZG93ICclcycgd2l0aCBSQU5HRSBOIFBSRUNFRElORy9GT0xMT1dJTkcgZnJhbWUgcmVxdWlyZXMgZXhhY3RseSBvbmUgT1JERVIgQlkgZXhwcmVzc2lvbiwgb2YgbnVtZXJpYyBvciB0ZW1wb3JhbCB0eXBlAFdpbmRvdyAnJXMnIHdpdGggUkFOR0UgZnJhbWUgaGFzIE9SREVSIEJZIGV4cHJlc3Npb24gb2YgZGF0ZXRpbWUgdHlwZS4gT25seSBJTlRFUlZBTCBib3VuZCB2YWx1ZSBhbGxvd2VkLgBXaW5kb3cgJyVzJyB3aXRoIFJBTkdFIGZyYW1lIGhhcyBPUkRFUiBCWSBleHByZXNzaW9uIG9mIG51bWVyaWMgdHlwZSwgSU5URVJWQUwgYm91bmQgdmFsdWUgbm90IGFsbG93ZWQuAFdpbmRvdyAnJXMnIGhhcyBhIG5vbi1jb25zdGFudCBmcmFtZSBib3VuZC4AV2luZG93ICclcycgaXMgZGVmaW5lZCB0d2ljZS4AV2luZG93ICclcyc6IE9SREVSIEJZIG9yIFBBUlRJVElPTiBCWSB1c2VzIGxlZ2FjeSBwb3NpdGlvbiBpbmRpY2F0aW9uIHdoaWNoIGlzIG5vdCBzdXBwb3J0ZWQsIHVzZSBleHByZXNzaW9uLgBZb3UgY2Fubm90IHVzZSB0aGUgd2luZG93IGZ1bmN0aW9uICclcycgaW4gdGhpcyBjb250ZXh0LicAWW91IGNhbm5vdCB1c2UgdGhlIGFsaWFzICclcycgb2YgYW4gZXhwcmVzc2lvbiBjb250YWluaW5nIGEgd2luZG93IGZ1bmN0aW9uIGluIHRoaXMgY29udGV4dC4nAFlvdSBjYW5ub3QgbmVzdCBhIHdpbmRvdyBmdW5jdGlvbiBpbiB0aGUgc3BlY2lmaWNhdGlvbiBvZiB3aW5kb3cgJyVzJy4AV2luZG93ICclcyc6IElOVEVSVkFMIGNhbiBvbmx5IGJlIHVzZWQgd2l0aCBSQU5HRSBmcmFtZXMuAEFTQyBvciBERVNDIHdpdGggR1JPVVAgQlkgaXNuJ3QgYWxsb3dlZCB3aXRoIHdpbmRvdyBmdW5jdGlvbnM7IHB1dCBBU0Mgb3IgREVTQyBpbiBPUkRFUiBCWQBUbyBnZXQgaW5mb3JtYXRpb24gYWJvdXQgd2luZG93IGZ1bmN0aW9ucyB1c2UgRVhQTEFJTiBGT1JNQVQ9SlNPTgBXaW5kb3cgZnVuY3Rpb24gJyVzJyBpZ25vcmVzIHRoZSBmcmFtZSBjbGF1c2Ugb2Ygd2luZG93ICclcycgYW5kIGFnZ3JlZ2F0ZXMgb3ZlciB0aGUgd2hvbGUgcGFydGl0aW9uAFdpbmRvd2luZyByZXF1aXJlcyBAQGludGVybmFsX3RtcF9tZW1fc3RvcmFnZV9lbmdpbmU9VGVtcFRhYmxlLgBUb28gbWFueSBhcmd1bWVudHMgZm9yIGZ1bmN0aW9uICVzOiAlbHU7IG1heGltdW0gYWxsb3dlZCBpcyAlcy4AQXJndW1lbnQgIyV1IG9mIEdST1VQSU5HIGZ1bmN0aW9uIGlzIG5vdCBpbiBHUk9VUCBCWQBDb21tZW50IGZvciB0YWJsZXNwYWNlICclLS42NHMnIGlzIHRvbyBsb25nIChtYXggPSAlbHUpAFN0b3JhZ2UgZW5naW5lIGNhbid0IGRyb3AgdGFibGUgJyUtLjEyOXMnAFN0b3JhZ2UgZW5naW5lIGNhbid0IGRyb3AgdGFibGUgJyUtLjEyOXMnIGJlY2F1c2UgaXQgaXMgbWlzc2luZy4gVXNlIERST1AgVEFCTEUgSUYgRVhJU1RTIHRvIHJlbW92ZSBpdCBmcm9tIGRhdGEtZGljdGlvbmFyeS4ARHVwbGljYXRlIGZpbGUgbmFtZSBmb3IgdGFibGVzcGFjZSAnJS0uNjRzJwBQcm9ibGVtIHdoaWxlIGRyb3BwaW5nIGRhdGFiYXNlLiBDYW4ndCByZW1vdmUgZGF0YWJhc2UgZGlyZWN0b3J5ICglcykuIFBsZWFzZSByZW1vdmUgaXQgbWFudWFsbHkuAE5vIFNESSBmaWxlcyBtYXRjaGVkIHRoZSBwYXR0ZXJuICclcycAU2NoZW1hICclLjI1NnMnLCByZWZlcmVuY2VkIGluIFNESSwgZG9lcyBub3QgZXhpc3QuAFRhYmxlICclLjI1NnMuJS4yNTZzJywgcmVmZXJlbmNlZCBpbiBTREksIGFscmVhZHkgZXhpc3RzLgBJbXBvcnRlZCBteXNxbGRfdmVyc2lvbiAoJWxsdSkgaXMgbm90IGNvbXBhdGlibGUgd2l0aCBjdXJyZW50ICglbGx1KQBJbXBvcnRlZCBkZCB2ZXJzaW9uICgldSkgaXMgbm90IGNvbXBhdGlibGUgd2l0aCBjdXJyZW50ICgldSkASW1wb3J0ZWQgc2RpIHZlcnNpb24gKCVsbHUpIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggY3VycmVudCAoJWxsdSkASW52YWxpZCBudW1iZXIgb2YgYXJndW1lbnRzIGZvciBoaW50ICVzAFZhcmlhYmxlICVzIGRvZXMgbm90IGV4aXN0IGluIHBlcnNpc3RlZCBjb25maWcgZmlsZQBMb25naXR1ZGUgJWYgaXMgb3V0IG9mIHJhbmdlIGluIGZ1bmN0aW9uICUuMTkycy4gSXQgbXVzdCBiZSB3aXRoaW4gKCVmLCAlZl0uAExhdGl0dWRlICVmIGlzIG91dCBvZiByYW5nZSBpbiBmdW5jdGlvbiAlLjE5MnMuIEl0IG11c3QgYmUgd2l0aGluIFslZiwgJWZdLgAlLjE5MnMoJS44MHMpIGhhcyBub3QgYmVlbiBpbXBsZW1lbnRlZCBmb3IgZ2VvZ3JhcGhpYyBzcGF0aWFsIHJlZmVyZW5jZSBzeXN0ZW1zLgBJbGxlZ2FsIHByaXZpbGVnZSBsZXZlbCBzcGVjaWZpZWQgZm9yICVzAEFjY2VzcyB0byBzeXN0ZW0gdmlldyBJTkZPUk1BVElPTl9TQ0hFTUEuJyUuNjRzJyBpcyByZWplY3RlZC4ARGVyIExvZ2ZpbHRlciAiJXMiIHd1bmRlcnRlIHNpY2ggdWViZXIgIiVzIiAuLi4AUGFydGl0aW9uaW5nIGV4cHJlc3Npb24gaXMgdG9vIGxvbmcuAERST1AgRlVOQ1RJT04gY2FuJ3QgZHJvcCBhIGR5bmFtaWNhbGx5IHJlZ2lzdGVyZWQgdXNlciBkZWZpbmVkIGZ1bmN0aW9uAFVuYWJsZSB0byBzdG9yZSBjb2x1bW4gc3RhdGlzdGljcyBmb3IgY29sdW1uICclLjY0cycgaW4gdGFibGUgJyUuNjRzJy4nJS42NHMnAFVuYWJsZSB0byB1cGRhdGUgY29sdW1uIHN0YXRpc3RpY3MgZm9yIGNvbHVtbiAnJS42NHMnIGluIHRhYmxlICclLjY0cycuJyUuNjRzJwBVbmFibGUgdG8gcmVtb3ZlIGNvbHVtbiBzdGF0aXN0aWNzIGZvciBjb2x1bW4gJyUuNjRzJyBpbiB0YWJsZSAnJS42NHMnLiclLjY0cycAVW5hYmxlIHRvIGJ1aWxkIGhpc3RvZ3JhbSBzdGF0aXN0aWNzIGZvciBjb2x1bW4gJyUuNjRzJyBpbiB0YWJsZSAnJS42NHMnLiclLjY0cycAVGhlIHJvbGUgJXMgaXMgYSBtYW5kYXRvcnkgcm9sZSBhbmQgY2FuJ3QgYmUgcmV2b2tlZCBvciBkcm9wcGVkLiBUaGUgcmVzdHJpY3Rpb24gY2FuIGJlIGxpZnRlZCBieSBleGNsdWRpbmcgdGhlIHJvbGUgaWRlbnRpZmllciBmcm9tIHRoZSBnbG9iYWwgdmFyaWFibGUgbWFuZGF0b3J5X3JvbGVzLgBUYWJsZXNwYWNlICclLjE5MnMnIGRvZXMgbm90IGhhdmUgYSBmaWxlIG5hbWVkICclLjE5MnMnAEFjY2VzcyBkZW5pZWQ7IHlvdSBuZWVkICUtLjEyOHMgcHJpdmlsZWdlcyBmb3IgdGhpcyBvcGVyYXRpb24AWW91IG5lZWQgdGhlIFNVUEVSIHByaXZpbGVnZSBmb3IgY29tbWFuZCAnJS0uMTkycycAUGF0aCBpcyB3aXRoaW4gdGhlIGN1cnJlbnQgZGF0YSBkaXJlY3RvcnkgJyUtLjE5MnMnAENvbmN1cnJlbnQgRERMIGlzIHBlcmZvcm1lZCBkdXJpbmcgY2xvbmUgb3BlcmF0aW9uLiBQbGVhc2UgdHJ5IGFnYWluLgBUb28gbWFueSBjb25jdXJyZW50IGNsb25lIG9wZXJhdGlvbnMuIE1heGltdW0gYWxsb3dlZCAtICVkLgBUaGUgdGFibGUgaW4gdHJhbnNhY3Rpb24gJXMgZG9lcyBub3QgY29tcGx5IHdpdGggdGhlIHJlcXVpcmVtZW50cyBieSBhbiBleHRlcm5hbCBwbHVnaW4uAFJlY3Vyc2l2ZSBxdWVyeSBhYm9ydGVkIGFmdGVyICV1IGl0ZXJhdGlvbnMuIFRyeSBpbmNyZWFzaW5nIEBAY3RlX21heF9yZWN1cnNpb25fZGVwdGggdG8gYSBsYXJnZXIgdmFsdWUuAFZhcmlhYmxlICVzIGNhbm5vdCBiZSBzZXQgdXNpbmcgU0VUX1ZBUiBoaW50LgBDYW5ub3QgdXNlIHRoZXNlIGNyZWRlbnRpYWxzIGZvciAnJS4qc0AlLipzJyBiZWNhdXNlIHRoZXkgY29udHJhZGljdCB0aGUgcGFzc3dvcmQgaGlzdG9yeSBwb2xpY3kATm9uLXplcm8gcGFzc3dvcmQgaGlzdG9yeSBjbGF1c2VzIGlnbm9yZWQgZm9yIHVzZXIgJyVzJ0AnJXMnIGFzIGl0cyBhdXRoZW50aWNhdGlvbiBwbHVnaW4gJXMgZG9lcyBub3Qgc3VwcG9ydCBwYXNzd29yZCBoaXN0b3J5AFRoZSBjbGllbnQgZG9lc24ndCBzdXBwb3J0ICVzAFRhYmxlc3BhY2UgJyVzJyB3YXMgc2tpcHBlZCBzaW5jZSBpdHMgZGVmaW5pdGlvbiBpcyBiZWluZyBtb2RpZmllZCBieSBjb25jdXJyZW50IERETCBzdGF0ZW1lbnQARW5naW5lICclLjE5MnMnIGRvZXMgbm90IG1hdGNoIHN0b3JlZCBlbmdpbmUgJyUuMTkycycgZm9yIHRhYmxlc3BhY2UgJyUuMTkycycAVGhlIFNSSUQgb2YgdGhlIGdlb21ldHJ5IGRvZXMgbm90IG1hdGNoIHRoZSBTUklEIG9mIHRoZSBjb2x1bW4gJyUuNjRzJy4gVGhlIFNSSUQgb2YgdGhlIGdlb21ldHJ5IGlzICVsdSwgYnV0IHRoZSBTUklEIG9mIHRoZSBjb2x1bW4gaXMgJWx1LiBDb25zaWRlciBjaGFuZ2luZyB0aGUgU1JJRCBvZiB0aGUgZ2VvbWV0cnkgb3IgdGhlIFNSSUQgcHJvcGVydHkgb2YgdGhlIGNvbHVtbi4AVGhlIFNSSUQgc3BlY2lmaWNhdGlvbiBvbiB0aGUgY29sdW1uICclLjY0cycgY2Fubm90IGJlIGNoYW5nZWQgYmVjYXVzZSB0aGVyZSBpcyBhIHNwYXRpYWwgaW5kZXggb24gdGhlIGNvbHVtbi4gUGxlYXNlIHJlbW92ZSB0aGUgc3BhdGlhbCBpbmRleCBiZWZvcmUgYWx0ZXJpbmcgdGhlIFNSSUQgc3BlY2lmaWNhdGlvbi4AV2hlbiAlLjE5MnMsIHRoZSBvcHRpb24gYmlubG9nX3Jvd192YWx1ZV9vcHRpb25zPSUuMTkycyB3aWxsIGJlIGlnbm9yZWQgYW5kIHVwZGF0ZXMgd2lsbCBiZSB3cml0dGVuIGluIGZ1bGwgZm9ybWF0IHRvIGJpbmFyeSBsb2cuAFdoZW4gJS4xOTJzLCB0aGUgb3B0aW9uIGxvZ19iaW5fdXNlX3YxX3Jvd19ldmVudHM9MSB3aWxsIGJlIGlnbm9yZWQgYW5kIHJvdyBldmVudHMgd2lsbCBiZSB3cml0dGVuIGluIG5ldyBmb3JtYXQgdG8gYmluYXJ5IGxvZy4AV2hlbiAlLjE5MnMsIHRoZSBvcHRpb24gYmlubG9nX3Jvd192YWx1ZV9vcHRpb25zPSUuMTkycyB3aWxsIGJlIHVzZWQgb25seSBmb3IgdGhlIGFmdGVyLWltYWdlLiBGdWxsIHZhbHVlcyB3aWxsIGJlIHdyaXR0ZW4gaW4gdGhlIGJlZm9yZS1pbWFnZSwgc28gdGhlIHNhdmluZyBpbiBkaXNrIHNwYWNlIGR1ZSB0byBiaW5sb2dfcm93X3ZhbHVlX29wdGlvbnMgaXMgbGltaXRlZCB0byBsZXNzIHRoYW4gNTAlJS4AQ291bGQgbm90IGFwcGx5IEpTT04gZGlmZiBpbiB0YWJsZSAlLipzLCBjb2x1bW4gJXMuAENvcnJ1cHRlZCBKU09OIGRpZmYgZm9yIHRhYmxlICUuKnMsIGNvbHVtbiAlcy4AUmVzb3VyY2UgR3JvdXAgJyUtLjE5MnMnIGV4aXN0cwBSZXNvdXJjZSBHcm91cCAnJS0uMTkycycgZG9lcyBub3QgZXhpc3QuAEludmFsaWQgY3B1IGlkICV1AEludmFsaWQgVkNQVSByYW5nZSAldS0ldQBJbnZhbGlkIHRocmVhZCBwcmlvcml0eSB2YWx1ZSAlZCBmb3IgJXMgcmVzb3VyY2UgZ3JvdXAgJXMuIEFsbG93ZWQgcmFuZ2UgaXMgWyVkLCAlZF0uACVzIG9wZXJhdGlvbiBpcyBkaXNhbGxvd2VkIG9uICVzAFJlc291cmNlIGdyb3VwICVzIGlzIGJ1c3kuAFJlc291cmNlIGdyb3VwICVzIGlzIGRpc2FibGVkLgBGZWF0dXJlICVzIGlzIHVuc3VwcG9ydGVkICglcykuAEF0dHJpYnV0ZSAlcyBpcyBpZ25vcmVkICglcykuAEludmFsaWQgdGhyZWFkIGlkICglbGx1KS4AVW5hYmxlIHRvIGJpbmQgcmVzb3VyY2UgZ3JvdXAgJXMgd2l0aCB0aHJlYWQgaWQgKCVsbHUpLiglcykuAE9wdGlvbiBGT1JDRSBpbnZhbGlkIGFzIERJU0FCTEUgb3B0aW9uIGlzIG5vdCBzcGVjaWZpZWQuAFRoZSAlcyBjb21tYW5kIGVuY291bnRlcmVkIGEgZmFpbHVyZS4gJXMARmFpbGVkIHRvICVzIFNESSAnJS4xOTJzLiUuMTkycycgaW4gdGFibGVzcGFjZSAnJS4xOTJzJy4ATWlzc2luZyB2YWx1ZSBmb3IgSlNPTl9UQUJMRSBjb2x1bW4gJyUuMTkycycAQ2FuJ3Qgc3RvcmUgYW4gYXJyYXkgb3IgYW4gb2JqZWN0IGluIHRoZSBzY2FsYXIgSlNPTl9UQUJMRSBjb2x1bW4gJyUuMTkycycARXZlcnkgdGFibGUgZnVuY3Rpb24gbXVzdCBoYXZlIGFuIGFsaWFzAElOTkVSIG9yIExFRlQgSk9JTiBtdXN0IGJlIHVzZWQgZm9yIExBVEVSQUwgcmVmZXJlbmNlcyBtYWRlIGJ5ICclLjE5MnMnAFZhbHVlIGlzIG91dCBvZiByYW5nZSBmb3IgSlNPTl9UQUJMRSdzIGNvbHVtbiAnJS4xOTJzJwBNb3JlIHRoYW4gc3VwcG9ydGVkICV1IE5FU1RFRCBQQVRIcyB3ZXJlIGZvdW5kIGluIEpTT05fVEFCTEUgJyUuMTkycycAVGhlIHNlbGVjdGVkIGF1dGhlbnRpY2F0aW9uIG1ldGhvZCAlLipzIGRvZXMgbm90IHN1cHBvcnQgcGFzc3dvcmQgZXhwaXJhdGlvbgBJbnZhbGlkIEdlb0pTT04gZGF0YSBwcm92aWRlZCB0byBmdW5jdGlvbiAlczogTWVtYmVyICdjcnMnIG11c3QgYmUgc3BlY2lmaWVkIGluIHRoZSB0b3AgbGV2ZWwgb2JqZWN0LgBDb2x1bW4gJyUtLjE5MnMnIGNhbm5vdCBiZSBudWxsAFRoZSBzcGF0aWFsIGluZGV4IG9uIGNvbHVtbiAnJS42NHMnIHdpbGwgbm90IGJlIHVzZWQgYnkgdGhlIHF1ZXJ5IG9wdGltaXplciBzaW5jZSB0aGUgY29sdW1uIGRvZXMgbm90IGhhdmUgYW4gU1JJRCBhdHRyaWJ1dGUuIENvbnNpZGVyIGFkZGluZyBhbiBTUklEIGF0dHJpYnV0ZSB0byB0aGUgY29sdW1uLgBDcmVhdGUgdGFibGUvdGFibGVzcGFjZSAnJS0uMTkycycgZmFpbGVkLCBhcyBkaXNrIGlzIGZ1bGwAQ291bGQgbm90IHBhcnNlIGFyZ3VtZW50IHRvIGRpZ2VzdCBmdW5jdGlvbjogIiVzIi4AQ291bGQgbm90IHBhcnNlIGFyZ3VtZW50IHRvIGRpZ2VzdCBmdW5jdGlvbi4AU2NoZW1hIGRpcmVjdG9yeSAnJS4xOTJzJyBhbHJlYWR5IGV4aXN0cy4gVGhpcyBtdXN0IGJlIHJlc29sdmVkIG1hbnVhbGx5IChlLmcuIGJ5IG1vdmluZyB0aGUgc2NoZW1hIGRpcmVjdG9yeSB0byBhbm90aGVyIGxvY2F0aW9uKS4AU2NoZW1hIGRpcmVjdG9yeSAnJS4xOTJzJyBkb2VzIG5vdCBleGlzdABGYWlsZWQgdG8gY3JlYXRlIHNjaGVtYSBkaXJlY3RvcnkgJyUuMTkycycgKGVycm5vOiAlZCAtICVzKQBTY2hlbWEgJyUuMTkycycgZG9lcyBub3QgZXhpc3QsIGJ1dCBzY2hlbWEgZGlyZWN0b3J5ICclLjE5MnMnIHdhcyBmb3VuZC4gVGhpcyBtdXN0IGJlIHJlc29sdmVkIG1hbnVhbGx5IChlLmcuIGJ5IG1vdmluZyB0aGUgc2NoZW1hIGRpcmVjdG9yeSB0byBhbm90aGVyIGxvY2F0aW9uKS4ARnVuY3Rpb24gJS4xOTJzIGlzIG9ubHkgZGVmaW5lZCBmb3IgU1JJRCAwIGFuZCBTUklEIDQzMjYuAFRoZSBvcHRpb24gZXhwaXJlX2xvZ3NfZGF5cyBhbmQgYmlubG9nX2V4cGlyZV9sb2dzX3NlY29uZHMgY2Fubm90IGJlIHVzZWQgdG9nZXRoZXIuIFBsZWFzZSB1c2UgYmlubG9nX2V4cGlyZV9sb2dzX3NlY29uZHMgdG8gc2V0IHRoZSBleHBpcmUgdGltZSAoZXhwaXJlX2xvZ3NfZGF5cyBpcyBkZXByZWNhdGVkKQBUaGUgcmVzdWx0IHN0cmluZyBpcyBsYXJnZXIgdGhhbiB0aGUgcmVzdWx0IGJ1ZmZlci4ASWxsZWdhbCBhcmd1bWVudCB0byBhIHJlZ3VsYXIgZXhwcmVzc2lvbi4ASW5kZXggb3V0IG9mIGJvdW5kcyBpbiByZWd1bGFyIGV4cHJlc3Npb24gc2VhcmNoLgBJbnRlcm5hbCBlcnJvciBpbiB0aGUgcmVndWxhciBleHByZXNzaW9uIGxpYnJhcnkuAFN5bnRheCBlcnJvciBpbiByZWd1bGFyIGV4cHJlc3Npb24gb24gbGluZSAldSwgY2hhcmFjdGVyICV1LgBVbnJlY29nbml6ZWQgZXNjYXBlIHNlcXVlbmNlIGluIHJlZ3VsYXIgZXhwcmVzc2lvbi4AVGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBjb250YWlucyBhIGZlYXR1cmUgdGhhdCBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBsaWJyYXJ5IHZlcnNpb24uAE1pc21hdGNoZWQgcGFyZW50aGVzaXMgaW4gcmVndWxhciBleHByZXNzaW9uLgBJbmNvcnJlY3QgZGVzY3JpcHRpb24gb2YgYSB7bWluLG1heH0gaW50ZXJ2YWwuAFRoZSBtYXhpbXVtIGlzIGxlc3MgdGhhbiB0aGUgbWludW11bSBpbiBhIHttaW4sbWF4fSBpbnRlcnZhbC4ASW52YWxpZCBiYWNrLXJlZmVyZW5jZSBpbiByZWd1bGFyIGV4cHJlc3Npb24uAFRoZSBsb29rLWJlaGluZCBhc3NlcnRpb24gZXhjZWVkcyB0aGUgbGltaXQgaW4gcmVndWxhciBleHByZXNzaW9uLgBUaGUgcmVndWxhciBleHByZXNzaW9uIGNvbnRhaW5zIGFuIHVuY2xvc2VkIGJyYWNrZXQgZXhwcmVzc2lvbi4AVGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBjb250YWlucyBhbiBbeC15XSBjaGFyYWN0ZXIgcmFuZ2Ugd2hlcmUgeCBjb21lcyBhZnRlciB5LgBPdmVyZmxvdyBpbiB0aGUgcmVndWxhciBleHByZXNzaW9uIGJhY2t0cmFjayBzdGFjay4AVGltZW91dCBleGNlZWRlZCBpbiByZWd1bGFyIGV4cHJlc3Npb24gbWF0Y2guAFRoZSByZWd1bGFyIGV4cHJlc3Npb24gcGF0dGVybiBleGNlZWRzIGxpbWl0cyBvbiBzaXplIG9yIGNvbXBsZXhpdHkuAFZhbHVlIGZvciAlcyBnb3QgY29uZnVzaW5nIGF0IG9yIGFyb3VuZCAiJXMiLiBTeW50YXggbWF5IGJlIHdyb25nLCBjb21wb25lbnQgbWF5IG5vdCBiZSBJTlNUQUxMZWQsIG9yIGEgY29tcG9uZW50IHRoYXQgZG9lcyBub3Qgc3VwcG9ydCBpbnN0YW5jZXMgbWF5IGJlIGxpc3RlZCBtb3JlIHRoYW4gb25jZS4AU2V0dGluZyBhbiBlbXB0eSAlcyBwaXBlbGluZSBkaXNhYmxlcyBlcnJvciBsb2dnaW5nIQBmaWx0ZXIgJXM6ICVzACUuMTkycyglLjgwcykgaGFzIG5vdCBiZWVuIGltcGxlbWVudGVkIGZvciBDYXJ0ZXNpYW4gc3BhdGlhbCByZWZlcmVuY2Ugc3lzdGVtcy4AJS4xOTJzKCUuODBzKSBoYXMgbm90IGJlZW4gaW1wbGVtZW50ZWQgZm9yIHByb2plY3RlZCBzcGF0aWFsIHJlZmVyZW5jZSBzeXN0ZW1zLgBJbnZhbGlkIHJhZGl1cyBwcm92aWRlZCB0byBmdW5jdGlvbiAlczogUmFkaXVzIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uAFJlc3RhcnQgc2VydmVyIGZhaWxlZCAoJXMpLgBNaXNzaW5nIG1hbmRhdG9yeSBhdHRyaWJ1dGUgJXMuAE11bHRpcGxlIGRlZmluaXRpb25zIG9mIGF0dHJpYnV0ZSAlcy4AVGhlIHNwYXRpYWwgcmVmZXJlbmNlIHN5c3RlbSBuYW1lIGNhbid0IGJlIGFuIGVtcHR5IHN0cmluZyBvciBzdGFydCBvciBlbmQgd2l0aCB3aGl0ZXNwYWNlLgBUaGUgb3JnYW5pemF0aW9uIG5hbWUgY2FuJ3QgYmUgYW4gZW1wdHkgc3RyaW5nIG9yIHN0YXJ0IG9yIGVuZCB3aXRoIHdoaXRlc3BhY2UuAFRoZXJlIGlzIGFscmVhZHkgYSBzcGF0aWFsIHJlZmVyZW5jZSBzeXN0ZW0gd2l0aCBTUklEICV1LgBUaGVyZSBpcyBhbHJlYWR5IGEgc3BhdGlhbCByZWZlcmVuY2Ugc3lzdGVtIHdpdGggU1JJRCAldS4AU1JJRCAwIGlzIG5vdCBtb2RpZmlhYmxlLgBUaGUgU1JJRCByYW5nZSBbJXUsICV1XSBoYXMgYmVlbiByZXNlcnZlZCBmb3Igc3lzdGVtIHVzZS4gU1JTcyBpbiB0aGlzIHJhbmdlIG1heSBiZSBhZGRlZCwgbW9kaWZpZWQgb3IgcmVtb3ZlZCB3aXRob3V0IHdhcm5pbmcgZHVyaW5nIHVwZ3JhZGUuAENhbid0IG1vZGlmeSBTUklEICV1LiBUaGVyZSBpcyBhdCBsZWFzdCBvbmUgY29sdW1uIGRlcGVuZGluZyBvbiBpdC4ASW52YWxpZCBjaGFyYWN0ZXIgaW4gYXR0cmlidXRlICVzLgBBdHRyaWJ1dGUgJXMgaXMgdG9vIGxvbmcuIFRoZSBtYXhpbXVtIGxlbmd0aCBpcyAldSBjaGFyYWN0ZXJzLgAndXRmOCcgaXMgY3VycmVudGx5IGFuIGFsaWFzIGZvciB0aGUgY2hhcmFjdGVyIHNldCBVVEY4TUIzLCBidXQgd2lsbCBiZSBhbiBhbGlhcyBmb3IgVVRGOE1CNCBpbiBhIGZ1dHVyZSByZWxlYXNlLiBQbGVhc2UgY29uc2lkZXIgdXNpbmcgVVRGOE1CNCBpbiBvcmRlciB0byBiZSB1bmFtYmlndW91cy4ATkFUSU9OQUwvTkNIQVIvTlZBUkNIQVIgaW1wbGllcyB0aGUgY2hhcmFjdGVyIHNldCBVVEY4TUIzLCB3aGljaCB3aWxsIGJlIHJlcGxhY2VkIGJ5IFVURjhNQjQgaW4gYSBmdXR1cmUgcmVsZWFzZS4gUGxlYXNlIGNvbnNpZGVyIHVzaW5nIENIQVIoeCkgQ0hBUkFDVEVSIFNFVCBVVEY4TUI0IGluIG9yZGVyIHRvIGJlIHVuYW1iaWd1b3VzLgBJbnZhbGlkIGRlZmF1bHQgY29sbGF0aW9uICVzOiB1dGY4bWI0XzA5MDBfYWlfY2kgb3IgdXRmOG1iNF9nZW5lcmFsX2NpIGV4cGVjdGVkAFVuYWJsZSB0byBjb2xsZWN0IGluZm9ybWF0aW9uIGZvciBjb2x1bW4gJyUtLjE5MnMnOiAlLS4xOTJzLgBUaGUgdGFibGUgJyUtLjE5MnMnIG1heSBub3QgYmUgY3JlYXRlZCBpbiB0aGUgcmVzZXJ2ZWQgdGFibGVzcGFjZSAnJS0uMTkycycuAFRoaXMgb3B0aW9uIGNhbm5vdCBiZSBzZXQgJXMuAEEgY29tbWl0IGZvciBhbiBhdG9taWMgRERMIHN0YXRlbWVudCB3YXMgdW5zdWNjZXNzZnVsIG9uIHRoZSBzb3VyY2UgYW5kIHRoZSByZXBsaWNhLiBUaGUgcmVwbGljYSBzdXBwb3J0cyBhdG9taWMgRERMIHN0YXRlbWVudHMgYnV0IHRoZSBzb3VyY2UgZG9lcyBub3QsIHNvIHRoZSBhY3Rpb24gdGFrZW4gYnkgdGhlIHJlcGxpY2EgYW5kIHNvdXJjZSBtaWdodCBkaWZmZXIuIENoZWNrIHRoYXQgdGhlaXIgc3RhdGVzIGhhdmUgbm90IGRpdmVyZ2VkIGJlZm9yZSBwcm9jZWVkaW5nLgBGdW5jdGlvbiAlcyBpcyBvbmx5IGRlZmluZWQgZm9yIGdlb2dyYXBoaWMgc3BhdGlhbCByZWZlcmVuY2Ugc3lzdGVtcywgYnV0IG9uZSBvZiBpdHMgYXJndW1lbnRzIGlzIGluIFNSSUQgJXUsIHdoaWNoIGlzIG5vdCBnZW9ncmFwaGljLgBGdW5jdGlvbiAlcyBlbmNvdW50ZXJlZCBhIHBvbHlnb24gdGhhdCB3YXMgdG9vIGxhcmdlLiBQb2x5Z29ucyBtdXN0IGNvdmVyIGxlc3MgdGhhbiBoYWxmIHRoZSBwbGFuZXQuAFNwYXRpYWwgaW5kZXhlcyBjYW4ndCBiZSBwcmltYXJ5IG9yIHVuaXF1ZSBpbmRleGVzLgBUaGUgaW5kZXggdHlwZSAlLjIwcyBpcyBub3Qgc3VwcG9ydGVkIGZvciBzcGF0aWFsIGluZGV4ZXMuAENhbm5vdCBkcm9wIHRhYmxlICclcycgcmVmZXJlbmNlZCBieSBhIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgJyVzJyBvbiB0YWJsZSAnJXMnLgBBIHBhcmFtZXRlciBvZiBmdW5jdGlvbiAlLjE5MnMgY29udGFpbnMgYSBnZW9tZXRyeSB3aXRoIGxvbmdpdHVkZSAlZiwgd2hpY2ggaXMgb3V0IG9mIHJhbmdlLiBJdCBtdXN0IGJlIHdpdGhpbiAoJWYsICVmXS4AQSBwYXJhbWV0ZXIgb2YgZnVuY3Rpb24gJS4xOTJzIGNvbnRhaW5zIGEgZ2VvbWV0cnkgd2l0aCBsYXRpdHVkZSAlZiwgd2hpY2ggaXMgb3V0IG9mIHJhbmdlLiBJdCBtdXN0IGJlIHdpdGhpbiBbJWYsICVmXS4ARm9yZWlnbiBrZXkgJyVzJyB1c2VzIHZpcnR1YWwgY29sdW1uICclcycgd2hpY2ggaXMgbm90IHN1cHBvcnRlZC4ARmFpbGVkIHRvIGFkZCB0aGUgZm9yZWlnbiBrZXkgY29uc3RyYWludC4gTWlzc2luZyBjb2x1bW4gJyVzJyBmb3IgY29uc3RyYWludCAnJXMnIGluIHRoZSByZWZlcmVuY2VkIHRhYmxlICclcycAJXM6IENvdWxkIG5vdCBhZGQgc3VwcHJlc3Npb24gcnVsZSBmb3IgY29kZSAiJXMiLiBSdWxlLXNldCBtYXkgYmUgZnVsbCwgb3IgY29kZSBtYXkgbm90IGNvcnJlc3BvbmQgdG8gYW4gZXJyb3ItbG9nIG1lc3NhZ2UuAFRoZSBzcGF0aWFsIHJlZmVyZW5jZSBzeXN0ZW0gZGVmaW5pdGlvbiBmb3IgU1JJRCAldSBzcGVjaWZpZXMgaW52YWxpZCBnZW9ncmFwaGljIGF4ZXMgJyUuMjBzJyBhbmQgJyUuMjBzJy4gT25lIGF4aXMgbXVzdCBiZSBOT1JUSCBvciBTT1VUSCBhbmQgdGhlIG90aGVyIG11c3QgYmUgRUFTVCBvciBXRVNULgBUaGUgbGVuZ3RoIG9mIHRoZSBzZW1pLW1ham9yIGF4aXMgbXVzdCBiZSBhIHBvc2l0aXZlIG51bWJlci4AVGhlIGludmVyc2UgZmxhdHRlbmluZyBtdXN0IGJlIGxhcmdlciB0aGFuIDEuMCwgb3IgMC4wIGlmIHRoZSBlbGxpcHNvaWQgaXMgYSBzcGhlcmUuAFRoZSBhbmd1bGFyIHVuaXQgY29udmVyc2lvbiBmYWN0b3IgbXVzdCBiZSBhIHBvc2l0aXZlIG51bWJlci4AVGhlIHByaW1lIG1lcmlkaWFuIG11c3QgYmUgd2l0aGluICgtMTgwLCAxODBdIGRlZ3JlZXMsIHNwZWNpZmllZCBpbiB0aGUgU1JTIGFuZ3VsYXIgdW5pdC4AVHJhbnNmb3JtYXRpb24gZnJvbSBTUklEICV1IGlzIG5vdCBzdXBwb3J0ZWQuAFRyYW5zZm9ybWF0aW9uIHRvIFNSSUQgJXUgaXMgbm90IHN1cHBvcnRlZC4AVHJhbnNmb3JtYXRpb24gZnJvbSBTUklEICV1IGlzIG5vdCBzdXBwb3J0ZWQuIFRoZSBzcGF0aWFsIHJlZmVyZW5jZSBzeXN0ZW0gaGFzIG5vIFRPV0dTODQgY2xhdXNlLgBUcmFuc2Zvcm1hdGlvbiB0byBTUklEICV1IGlzIG5vdCBzdXBwb3J0ZWQuIFRoZSBzcGF0aWFsIHJlZmVyZW5jZSBzeXN0ZW0gaGFzIG5vIFRPV0dTODQgY2xhdXNlLgBDaGFuZ2luZyBAQHNlc3Npb24uYmlubG9nX2Zvcm1hdCBpcyBkaXNhbGxvd2VkIHdoZW4gdGhlIHNlc3Npb24gaGFzIG9wZW4gdGVtcG9yYXJ5IHRhYmxlKHMpLiBZb3UgY291bGQgd2FpdCB1bnRpbCB0aGVzZSB0ZW1wb3JhcnkgdGFibGUocykgYXJlIGRyb3BwZWQgYW5kIHRyeSBhZ2Fpbi4AQ2hhbmdpbmcgQEBnbG9iYWwuYmlubG9nX2Zvcm1hdCBvciBAQHBlcnNpc3QuYmlubG9nX2Zvcm1hdCBpcyBkaXNhbGxvd2VkIHdoZW4gYW55IHJlcGxpY2F0aW9uIGNoYW5uZWwgaGFzIG9wZW4gdGVtcG9yYXJ5IHRhYmxlKHMpLiBZb3UgY291bGQgd2FpdCB1bnRpbCBSZXBsaWNhX29wZW5fdGVtcF90YWJsZXMgPSAwIGFuZCB0cnkgYWdhaW4AQ2hhbmdpbmcgQEBnbG9iYWwuYmlubG9nX2Zvcm1hdCBvciBAQHBlcnNpc3QuYmlubG9nX2Zvcm1hdCBpcyBkaXNhbGxvd2VkIHdoZW4gYW55IHJlcGxpY2F0aW9uIGNoYW5uZWwgYXBwbGllciB0aHJlYWQgaXMgcnVubmluZy4gWW91IGNvdWxkIGV4ZWN1dGUgU1RPUCBSRVBMSUNBIFNRTF9USFJFQUQgYW5kIHRyeSBhZ2Fpbi4AU3RhdGVtZW50IHZpb2xhdGVzIEdUSUQgY29uc2lzdGVuY3k6IENSRUFURSBURU1QT1JBUlkgVEFCTEUgYW5kIERST1AgVEVNUE9SQVJZIFRBQkxFIGFyZSBub3QgYWxsb3dlZCBpbnNpZGUgYSB0cmFuc2FjdGlvbiBvciBpbnNpZGUgYSBwcm9jZWR1cmUgaW4gYSB0cmFuc2FjdGlvbmFsIGNvbnRleHQgd2hlbiBAQHNlc3Npb24uYmlubG9nX2Zvcm1hdD1TVEFURU1FTlQuAFhBOiBGYWlsZWQgdG8gdGFrZSBNREwgTG9jayBiYWNrdXAgb2YgUFJFUEFSRUQgWEEgdHJhbnNhY3Rpb24gZHVyaW5nIGNsaWVudCBkaXNjb25uZWN0LgBVbmFibGUgdG8gY3JlYXRlIG9yIGNoYW5nZSBhIHRhYmxlIHdpdGhvdXQgYSBwcmltYXJ5IGtleSwgd2hlbiB0aGUgc3lzdGVtIHZhcmlhYmxlICdzcWxfcmVxdWlyZV9wcmltYXJ5X2tleScgaXMgc2V0LiBBZGQgYSBwcmltYXJ5IGtleSB0byB0aGUgdGFibGUgb3IgdW5zZXQgdGhpcyB2YXJpYWJsZSB0byBhdm9pZCB0aGlzIG1lc3NhZ2UuIE5vdGUgdGhhdCB0YWJsZXMgd2l0aG91dCBhIHByaW1hcnkga2V5IGNhbiBjYXVzZSBwZXJmb3JtYW5jZSBwcm9ibGVtcyBpbiByb3ctYmFzZWQgcmVwbGljYXRpb24sIHNvIHBsZWFzZSBjb25zdWx0IHlvdXIgREJBIGJlZm9yZSBjaGFuZ2luZyB0aGlzIHNldHRpbmcuAERhdGEgdHJ1bmNhdGVkIGZvciBmdW5jdGlvbmFsIGluZGV4ICclcycgYXQgcm93ICVsZABWYWx1ZSBpcyBvdXQgb2YgcmFuZ2UgZm9yIGZ1bmN0aW9uYWwgaW5kZXggJyVzJyBhdCByb3cgJWxkAENhbm5vdCBjcmVhdGUgYSBmdW5jdGlvbmFsIGluZGV4IG9uIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgSlNPTiBvciBHRU9NRVRSWSB2YWx1ZS4ARnVuY3Rpb25hbCBpbmRleCAnJS42NHMnIGNhbm5vdCByZWZlciB0byBhbiBhdXRvLWluY3JlbWVudCBjb2x1bW4uAENhbm5vdCBkcm9wIGNvbHVtbiAnJS0uNjRzJyBiZWNhdXNlIGl0IGlzIHVzZWQgYnkgYSBmdW5jdGlvbmFsIGluZGV4LiBJbiBvcmRlciB0byBkcm9wIHRoZSBjb2x1bW4sIHlvdSBtdXN0IHJlbW92ZSB0aGUgZnVuY3Rpb25hbCBpbmRleC4AVGhlIHByaW1hcnkga2V5IGNhbm5vdCBiZSBhIGZ1bmN0aW9uYWwgaW5kZXgAQ2Fubm90IGNyZWF0ZSBhIGZ1bmN0aW9uYWwgaW5kZXggb24gYW4gZXhwcmVzc2lvbiB0aGF0IHJldHVybnMgYSBCTE9CIG9yIFRFWFQuIFBsZWFzZSBjb25zaWRlciB1c2luZyBDQVNULgBFeHByZXNzaW9uIG9mIGZ1bmN0aW9uYWwgaW5kZXggJyVzJyBjb250YWlucyBhIGRpc2FsbG93ZWQgZnVuY3Rpb24uAEZ1bGx0ZXh0IGZ1bmN0aW9uYWwgaW5kZXggaXMgbm90IHN1cHBvcnRlZC4AU3BhdGlhbCBmdW5jdGlvbmFsIGluZGV4IGlzIG5vdCBzdXBwb3J0ZWQuAFRoZSB1c2VkIHN0b3JhZ2UgZW5naW5lIGNhbm5vdCBpbmRleCB0aGUgZXhwcmVzc2lvbiAnJXMnLgBGdW5jdGlvbmFsIGluZGV4IG9uIGEgY29sdW1uIGlzIG5vdCBzdXBwb3J0ZWQuIENvbnNpZGVyIHVzaW5nIGEgcmVndWxhciBpbmRleCBpbnN0ZWFkLgBFeHByZXNzaW9uIG9mIGdlbmVyYXRlZCBjb2x1bW4gJyVzJyBjb250YWlucyBhIGRpc2FsbG93ZWQgZnVuY3Rpb246ICVzLgBFeHByZXNzaW9uIG9mIGdlbmVyYXRlZCBjb2x1bW4gJyVzJyBjYW5ub3QgcmVmZXIgdG8gYSByb3cgdmFsdWUuAEV4cHJlc3Npb24gb2YgZ2VuZXJhdGVkIGNvbHVtbiAnJXMnIGNhbm5vdCByZWZlciB1c2VyIG9yIHN5c3RlbSB2YXJpYWJsZXMuAENvbHVtbiAnJXMnIG9mIHRhYmxlICclcycgaGFzIGEgZGVmYXVsdCB2YWx1ZSBleHByZXNzaW9uIGRlcGVuZGVuY3kgYW5kIGNhbm5vdCBiZSBkcm9wcGVkIG9yIHJlbmFtZWQuAERlZmF1bHQgdmFsdWUgZXhwcmVzc2lvbiBvZiBjb2x1bW4gJyVzJyBjYW5ub3QgcmVmZXIgdG8gYSBjb2x1bW4gZGVmaW5lZCBhZnRlciBpdCBpZiB0aGF0IGNvbHVtbiBpcyBhIGdlbmVyYXRlZCBjb2x1bW4gb3IgaGFzIGFuIGV4cHJlc3Npb24gYXMgZGVmYXVsdCB2YWx1ZS4ARGVmYXVsdCB2YWx1ZSBleHByZXNzaW9uIG9mIGNvbHVtbiAnJXMnIGNhbm5vdCByZWZlciB0byBhbiBhdXRvLWluY3JlbWVudCBjb2x1bW4uAERlZmF1bHQgdmFsdWUgZXhwcmVzc2lvbiBvZiBjb2x1bW4gJyVzJyBjb250YWlucyBhIGRpc2FsbG93ZWQgZnVuY3Rpb24uAERlZmF1bHQgdmFsdWUgZXhwcmVzc2lvbiBvZiBjb2x1bW4gJyVzJyBjb250YWlucyBhIGRpc2FsbG93ZWQgZnVuY3Rpb246ICVzLgBEZWZhdWx0IHZhbHVlIGV4cHJlc3Npb24gb2YgY29sdW1uICclcycgY2Fubm90IHJlZmVyIHRvIGEgcm93IHZhbHVlLgBEZWZhdWx0IHZhbHVlIGV4cHJlc3Npb24gb2YgY29sdW1uICclcycgY2Fubm90IHJlZmVyIHVzZXIgb3Igc3lzdGVtIHZhcmlhYmxlcy4AREVGQVVMVCBmdW5jdGlvbiBjYW5ub3QgYmUgdXNlZCB3aXRoIGRlZmF1bHQgdmFsdWUgZXhwcmVzc2lvbnMAJyVzJyBpcyBub3Qgc3VwcG9ydGVkIGZvciBkZWZhdWx0IHZhbHVlIGV4cHJlc3Npb25zLgBTdGF0ZW1lbnQgdmlvbGF0ZXMgR1RJRCBjb25zaXN0ZW5jeTogQUxURVIgVEFCTEUgLi4uIEFERCBDT0xVTU4gLi4gd2l0aCBleHByZXNzaW9uIGFzIERFRkFVTFQuAENhbm5vdCBjaGFuZ2UgdGFibGUncyBzdG9yYWdlIGVuZ2luZSBiZWNhdXNlIHRoZSB0YWJsZSBwYXJ0aWNpcGF0ZXMgaW4gYSBmb3JlaWduIGtleSBjb25zdHJhaW50LgBTZXR0aW5nIHVzZXIgdmFyaWFibGVzIHdpdGhpbiBleHByZXNzaW9ucyBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4gQ29uc2lkZXIgYWx0ZXJuYXRpdmVzOiAnU0VUIHZhcmlhYmxlPWV4cHJlc3Npb24sIC4uLicsIG9yICdTRUxFQ1QgZXhwcmVzc2lvbihzKSBJTlRPIHZhcmlhYmxlcyhzKScuACclLS42NHMnIGlzIGEgY29sbGF0aW9uIG9mIHRoZSBkZXByZWNhdGVkIGNoYXJhY3RlciBzZXQgVVRGOE1CMy4gUGxlYXNlIGNvbnNpZGVyIHVzaW5nIFVURjhNQjQgd2l0aCBhbiBhcHByb3ByaWF0ZSBjb2xsYXRpb24gaW5zdGVhZC4ATmVzdGVkIGNvbW1lbnQgc3ludGF4IGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgBSZWZlcmVuY2luZyBjb2x1bW4gJyVzJyBhbmQgcmVmZXJlbmNlZCBjb2x1bW4gJyVzJyBpbiBmb3JlaWduIGtleSBjb25zdHJhaW50ICclcycgYXJlIGluY29tcGF0aWJsZS4AVGltZW91dCBleGNlZWRlZCBmb3IgaGVsZCBzdGF0ZW1lbnQgd2hpbGUgbmV3IEdyb3VwIFJlcGxpY2F0aW9uIHByaW1hcnkgbWVtYmVyIGlzIGFwcGx5aW5nIGJhY2tsb2cuAEhlbGQgc3RhdGVtZW50IGFib3J0ZWQgYmVjYXVzZSBHcm91cCBSZXBsaWNhdGlvbiBwbHVnaW4gZ290IHNodXQgZG93biBvciB0aHJlYWQgd2FzIGtpbGxlZCB3aGlsZSBuZXcgcHJpbWFyeSBtZW1iZXIgd2FzIGFwcGx5aW5nIGJhY2tsb2cuAEhlbGQgc3RhdGVtZW50IHdhcyBhYm9ydGVkIGR1ZSB0byBtZW1iZXIgYmVpbmcgaW4gZXJyb3Igc3RhdGUsIHdoaWxlIGJhY2tsb2cgaXMgYmVpbmcgYXBwbGllZCBkdXJpbmcgR3JvdXAgUmVwbGljYXRpb24gcHJpbWFyeSBlbGVjdGlvbi4ARmFpbGVkIHRvIGZldGNoIGtleSBmcm9tIGtleXJpbmcsIHBsZWFzZSBjaGVjayBpZiBrZXlyaW5nIGlzIGxvYWRlZC4AQ2FuJ3QgZmluZCBrZXkgZnJvbSBrZXlyaW5nLCBwbGVhc2UgY2hlY2sgaW4gdGhlIHNlcnZlciBsb2cgaWYgYSBrZXlyaW5nIGlzIGxvYWRlZCBhbmQgaW5pdGlhbGl6ZWQgc3VjY2Vzc2Z1bGx5LgBGZXRjaGVkIGFuIGludmFsaWQga2V5IGZyb20ga2V5cmluZy4ARXJyb3IgcmVhZGluZyBhIHJlcGxpY2F0aW9uIGxvZyBlbmNyeXB0aW9uIGhlYWRlcjogJXMuAEZhaWxlZCB0byByb3RhdGUgc29tZSBsb2dzIGFmdGVyIGNoYW5naW5nIGJpbmxvZyBlbmNyeXB0aW9uIHNldHRpbmdzLiBQbGVhc2UgZml4IHRoZSBwcm9ibGVtIGFuZCByb3RhdGUgdGhlIGxvZ3MgbWFudWFsbHkuAEtleSAlcyBleGlzdHMgdW5leHBlY3RlZC4ARmFpbGVkIHRvIGdlbmVyYXRlIGtleSwgcGxlYXNlIGNoZWNrIGlmIGtleXJpbmcgaXMgbG9hZGVkLgBGYWlsZWQgdG8gc3RvcmUga2V5LCBwbGVhc2UgY2hlY2sgaWYga2V5cmluZyBpcyBsb2FkZWQuAEZhaWxlZCB0byByZW1vdmUga2V5LCBwbGVhc2UgY2hlY2sgaWYga2V5cmluZyBpcyBsb2FkZWQuAEZhaWxlZCB0byBjaGFuZ2UgYmlubG9nX2VuY3J5cHRpb24gdmFsdWUuICUtLjgwcy4AVW5hYmxlIHRvIHJlY292ZXIgYmlubG9nIGVuY3J5cHRpb24gbWFzdGVyIGtleSwgcGxlYXNlIGNoZWNrIGlmIGtleXJpbmcgaXMgbG9hZGVkLgBzbG93IHF1ZXJ5IGxvZyBmaWxlIGZvcm1hdCBjaGFuZ2VkIGFzIHJlcXVlc3RlZCwgYnV0IHNldHRpbmcgd2lsbCBoYXZlIG5vIGVmZmVjdCB3aGVuIG5vdCBhY3R1YWxseSBsb2dnaW5nIHRvIGEgZmlsZS4AVGhlIG9wdGlvbiBncm91cF9yZXBsaWNhdGlvbl9jb25zaXN0ZW5jeSBjYW5ub3QgYmUgdXNlZCBvbiB0aGUgY3VycmVudCBtZW1iZXIgc3RhdGUuAEVycm9yIHdoaWxlIHdhaXRpbmcgZm9yIGdyb3VwIHRyYW5zYWN0aW9ucyBjb21taXQgb24gZ3JvdXBfcmVwbGljYXRpb25fY29uc2lzdGVuY3k9ICdCRUZPUkUnLgBFcnJvciB3aGlsZSB3YWl0aW5nIGZvciB0cmFuc2FjdGlvbnMgd2l0aCBncm91cF9yZXBsaWNhdGlvbl9jb25zaXN0ZW5jeT0gJ0FGVEVSJyB0byBjb21taXQuAFRoZSBHcm91cCBSZXBsaWNhdGlvbiBwbHVnaW4gaXMgc3RvcHBpbmcsIHRoZXJlZm9yZSBuZXcgdHJhbnNhY3Rpb25zIGFyZSBub3QgYWxsb3dlZCB0byBzdGFydC4ARXhwcmVzc2lvbiBvZiBmdW5jdGlvbmFsIGluZGV4ICclcycgY2Fubm90IHJlZmVyIHRvIGEgcm93IHZhbHVlLgBGYWlsZWQgdG8gZW5jcnlwdCBjb250ZW50IHRvIHdyaXRlIGludG8gYmlubG9nIGZpbGU6ICVzLgBQYWdlIFRyYWNraW5nIGlzIG5vdCBzdGFydGVkIHlldC4AVHJhY2tpbmcgd2FzIG5vdCBlbmFibGVkIGZvciB0aGUgTFNOIHJhbmdlIHNwZWNpZmllZABDYW5ub3QgcHVyZ2UgZGF0YSB3aGVuIGNvbmN1cnJlbnQgY2xvbmUgaXMgaW4gcHJvZ3Jlc3MuIFRyeSBsYXRlci4AQ2Fubm90IHJvdGF0ZSBiaW5hcnkgbG9nIG1hc3RlciBrZXkgd2hlbiAnYmlubG9nLWVuY3J5cHRpb24nIGlzIG9mZi4AVW5hYmxlIHRvIHJlY292ZXIgYmluYXJ5IGxvZyBtYXN0ZXIga2V5LCB0aGUgY29tYmluYXRpb24gb2YgbmV3X21hc3Rlcl9rZXlfc2Vxbm89JXUsIG1hc3Rlcl9rZXlfc2Vxbm89JXUgYW5kIG9sZF9tYXN0ZXJfa2V5X3NlcW5vPSV1IGFyZSB3cm9uZy4ARmFpbGVkIHRvIG9wZXJhdGUgYmluYXJ5IGxvZyBtYXN0ZXIga2V5IG9uIGtleXJpbmcsIHBsZWFzZSBjaGVjayBpZiBrZXlyaW5nIGlzIGxvYWRlZC4gVGhlIHN0YXRlbWVudCBoYWQgbm8gZWZmZWN0OiB0aGUgb2xkIGJpbmFyeSBsb2cgbWFzdGVyIGtleSBpcyBzdGlsbCBpbiB1c2UsIHRoZSBrZXlyaW5nLCBiaW5hcnkgYW5kIHJlbGF5IGxvZyBmaWxlcyBhcmUgdW5jaGFuZ2VkLCBhbmQgdGhlIHNlcnZlciBjb3VsZCBub3Qgc3RhcnQgdXNpbmcgYSBuZXcgYmluYXJ5IGxvZyBtYXN0ZXIga2V5IGZvciBlbmNyeXB0aW5nIG5ldyBiaW5hcnkgYW5kIHJlbGF5IGxvZyBmaWxlcy4ARmFpbGVkIHRvIHJvdGF0ZSBvbmUgb3IgbW9yZSBiaW5hcnkgb3IgcmVsYXkgbG9nIGZpbGVzLiBBIG5ldyBiaW5hcnkgbG9nIG1hc3RlciBrZXkgd2FzIGdlbmVyYXRlZCBhbmQgd2lsbCBiZSB1c2VkIHRvIGVuY3J5cHQgbmV3IGJpbmFyeSBhbmQgcmVsYXkgbG9nIGZpbGVzLiBUaGVyZSBtYXkgc3RpbGwgZXhpc3QgYmluYXJ5IG9yIHJlbGF5IGxvZyBmaWxlcyB1c2luZyB0aGUgcHJldmlvdXMgYmluYXJ5IGxvZyBtYXN0ZXIga2V5LgAlcy4gQSBuZXcgYmluYXJ5IGxvZyBtYXN0ZXIga2V5IHdhcyBnZW5lcmF0ZWQgYW5kIHdpbGwgYmUgdXNlZCB0byBlbmNyeXB0IG5ldyBiaW5hcnkgYW5kIHJlbGF5IGxvZyBmaWxlcy4gVGhlcmUgbWF5IHN0aWxsIGV4aXN0IGJpbmFyeSBvciByZWxheSBsb2cgZmlsZXMgdXNpbmcgdGhlIHByZXZpb3VzIGJpbmFyeSBsb2cgbWFzdGVyIGtleS4ARmFpbGVkIHRvIHJlbW92ZSB1bnVzZWQgYmluYXJ5IGxvZyBlbmNyeXB0aW9uIGtleXMgZnJvbSB0aGUga2V5cmluZywgcGxlYXNlIGNoZWNrIGlmIGtleXJpbmcgaXMgbG9hZGVkLiBUaGUgdW51c2VkIGJpbmFyeSBsb2cgZW5jcnlwdGlvbiBrZXlzIG1heSBzdGlsbCBleGlzdCBpbiB0aGUga2V5cmluZywgYW5kIHRoZXkgd2lsbCBiZSByZW1vdmVkIHVwb24gc2VydmVyIHJlc3RhcnQgb3IgbmV4dCAnQUxURVIgSU5TVEFOQ0UgUk9UQVRFIEJJTkxPRyBNQVNURVIgS0VZJyBleGVjdXRpb24uAEZhaWxlZCB0byByZW1vdmUgYXV4aWxpYXJ5IGJpbmFyeSBsb2cgZW5jcnlwdGlvbiBrZXkgZnJvbSBrZXlyaW5nLCBwbGVhc2UgY2hlY2sgaWYga2V5cmluZyBpcyBsb2FkZWQuIFRoZSBjbGVhbnVwIG9mIHRoZSBiaW5hcnkgbG9nIG1hc3RlciBrZXkgcm90YXRpb24gcHJvY2VzcyBkaWQgbm90IGZpbmlzaCBhcyBleHBlY3RlZCBhbmQgdGhlIGNsZWFudXAgd2lsbCB0YWtlIHBsYWNlIHVwb24gc2VydmVyIHJlc3RhcnQgb3IgbmV4dCAnQUxURVIgSU5TVEFOQ0UgUk9UQVRFIEJJTkxPRyBNQVNURVIgS0VZJyBleGVjdXRpb24uAEFuIGV4cHJlc3Npb24gb2Ygbm9uLWJvb2xlYW4gdHlwZSBzcGVjaWZpZWQgdG8gYSBjaGVjayBjb25zdHJhaW50ICclLS4xOTJzJy4AQ29sdW1uIGNoZWNrIGNvbnN0cmFpbnQgJyUtLjE5MnMnIHJlZmVyZW5jZXMgb3RoZXIgY29sdW1uLgBBbiBleHByZXNzaW9uIG9mIGEgY2hlY2sgY29uc3RyYWludCAnJS0uMTkycycgY29udGFpbnMgZGlzYWxsb3dlZCBmdW5jdGlvbjogJXMuAEFuIGV4cHJlc3Npb24gb2YgYSBjaGVjayBjb25zdHJhaW50ICclLS4xOTJzJyBjb250YWlucyBkaXNhbGxvd2VkIGZ1bmN0aW9uLgBBbiBleHByZXNzaW9uIG9mIGEgY2hlY2sgY29uc3RyYWludCAnJS0uMTkycycgY2Fubm90IHJlZmVyIHRvIGEgdXNlciBvciBzeXN0ZW0gdmFyaWFibGUuAENoZWNrIGNvbnN0cmFpbnQgJyUtLjE5MnMnIGNhbm5vdCByZWZlciB0byBhIHJvdyB2YWx1ZS4AQ2hlY2sgY29uc3RyYWludCAnJS0uMTkycycgY2Fubm90IHJlZmVyIHRvIGFuIGF1dG8taW5jcmVtZW50IGNvbHVtbi4AQ2hlY2sgY29uc3RyYWludCAnJS0uMTkycycgaXMgdmlvbGF0ZWQuAENoZWNrIGNvbnN0cmFpbnQgJyUtLjE5MnMnIHJlZmVycyB0byBub24tZXhpc3RpbmcgY29sdW1uICclLS4xOTJzJy4AQ2hlY2sgY29uc3RyYWludCAnJS0uMTkycycgaXMgbm90IGZvdW5kIGluIHRoZSB0YWJsZS4ARHVwbGljYXRlIGNoZWNrIGNvbnN0cmFpbnQgbmFtZSAnJS0uMTkycycuAENvbHVtbiAnJS0uMTkycycgY2Fubm90IGJlIHVzZWQgaW4gYSBjaGVjayBjb25zdHJhaW50ICclLS4xOTJzJzogbmVlZGVkIGluIGEgZm9yZWlnbiBrZXkgY29uc3RyYWludCAnJS0uMTkycycgcmVmZXJlbnRpYWwgYWN0aW9uLgBDcmVhdGluZyBhbiB1bmVuY3J5cHRlZCB0YWJsZSBpbiBhIGRhdGFiYXNlIHdpdGggZGVmYXVsdCBlbmNyeXB0aW9uIGVuYWJsZWQuAFJlcXVlc3QgdG8gY3JlYXRlICVzIHRhYmxlIHdoaWxlIHVzaW5nIGFuICVzIHRhYmxlc3BhY2UuAFRhYmxlIGVuY3J5cHRpb24gZGlmZmVyIGZyb20gaXRzIGRhdGFiYXNlIGRlZmF1bHQgZW5jcnlwdGlvbiwgYW5kIHVzZXIgZG9lc24ndCBoYXZlIGVub3VnaCBwcml2aWxlZ2UuAERhdGFiYXNlIGRlZmF1bHQgZW5jcnlwdGlvbiBkaWZmZXIgZnJvbSAnZGVmYXVsdF90YWJsZV9lbmNyeXB0aW9uJyBzZXR0aW5nLCBhbmQgdXNlciBkb2Vzbid0IGhhdmUgZW5vdWdoIHByaXZpbGVnZS4AVGFibGVzcGFjZSBlbmNyeXB0aW9uIGRpZmZlciBmcm9tICdkZWZhdWx0X3RhYmxlX2VuY3J5cHRpb24nIHNldHRpbmcsIGFuZCB1c2VyIGRvZXNuJ3QgaGF2ZSBlbm91Z2ggcHJpdmlsZWdlLgBUaGlzIHRhYmxlc3BhY2UgY2FuJ3QgYmUgZW5jcnlwdGVkLCBiZWNhdXNlIG9uZSBvZiB0YWJsZSdzIHNjaGVtYSBoYXMgZGVmYXVsdCBlbmNyeXB0aW9uIE9GRiBhbmQgdXNlciBkb2Vzbid0IGhhdmUgZW5vdWdoIHByaXZpbGVnZS4AVGhpcyB0YWJsZXNwYWNlIGNhbid0IGJlIGRlY3J5cHRlZCwgYmVjYXVzZSBvbmUgb2YgdGFibGUncyBzY2hlbWEgaGFzIGRlZmF1bHQgZW5jcnlwdGlvbiBPTiBhbmQgdXNlciBkb2Vzbid0IGhhdmUgZW5vdWdoIHByaXZpbGVnZS4AQ2Fubm90IGRldGVybWluZSB0aGUgdHlwZSBvZiB0aGUgdGFibGVzcGFjZSBuYW1lZCAnJXMnLgBTb3VyY2UgdGFibGVzcGFjZSBpcyBlbmNyeXB0ZWQgYnV0IHRhcmdldCB0YWJsZXNwYWNlIGlzIG5vdC4ARU5DUllQVElPTiBjbGF1c2UgaXMgbm90IHZhbGlkIGZvciAlcyB0YWJsZXNwYWNlLgBNdWx0aXBsZSAlcyBjbGF1c2VzAEdSQU5UIC4uLiBBUyBpcyBjdXJyZW50bHkgc3VwcG9ydGVkIG9ubHkgZm9yIGdsb2JhbCBwcml2aWxlZ2VzLgBFaXRoZXIgc29tZSBvZiB0aGUgYXV0aG9yaXphdGlvbiBJRHMgaW4gdGhlIEFTIGNsYXVzZSBhcmUgaW52YWxpZCBvciB0aGUgY3VycmVudCB1c2VyIGxhY2tzIHByaXZpbGVnZXMgdG8gZXhlY3V0ZSB0aGUgc3RhdGVtZW50LgBDb2x1bW4gJyVzJyBoYXMgYSBmdW5jdGlvbmFsIGluZGV4IGRlcGVuZGVuY3kgYW5kIGNhbm5vdCBiZSBkcm9wcGVkIG9yIHJlbmFtZWQuAFBsdWdpbiAnJXMnIGlzIG5vdCB0byBiZSB1c2VkIGFzIGFuICJlYXJseSIgcGx1Z2luLiBEb24ndCBhZGQgaXQgdG8gLS1lYXJseS1wbHVnaW4tbG9hZCwga2V5cmluZyBtaWdyYXRpb24gZXRjLgBSZWRvIGxvZyBhcmNoaXZpbmcgc3RhcnQgcHJvaGliaXRzIHBhdGggbmFtZSBpbiAnc3ViZGlyJyBhcmd1bWVudABSZWRvIGxvZyBhcmNoaXZpbmcgc3RhcnQgdGltZWQgb3V0AFNlcnZlciB2YXJpYWJsZSAnaW5ub2RiX3JlZG9fbG9nX2FyY2hpdmVfZGlycycgaXMgTlVMTCBvciBlbXB0eQBMYWJlbCAnJS4xOTJzJyBub3QgZm91bmQgaW4gc2VydmVyIHZhcmlhYmxlICdpbm5vZGJfcmVkb19sb2dfYXJjaGl2ZV9kaXJzJwBEaXJlY3RvcnkgaXMgZW1wdHkgYWZ0ZXIgbGFiZWwgJyUuMTkycycgaW4gc2VydmVyIHZhcmlhYmxlICdpbm5vZGJfcmVkb19sb2dfYXJjaGl2ZV9kaXJzJwBSZWRvIGxvZyBhcmNoaXZlIGRpcmVjdG9yeSAnJS4xOTJzJyBkb2VzIG5vdCBleGlzdCBvciBpcyBub3QgYSBkaXJlY3RvcnkAUmVkbyBsb2cgYXJjaGl2ZSBkaXJlY3RvcnkgJyUuMTkycycgaXMgaW4sIHVuZGVyLCBvciBvdmVyIHNlcnZlciBkaXJlY3RvcnkgJyUuMTkycycgLSAnJS4xOTJzJwBSZWRvIGxvZyBhcmNoaXZlIGRpcmVjdG9yeSAnJS4xOTJzJyBpcyBhY2Nlc3NpYmxlIHRvIGFsbCBPUyB1c2VycwBDYW5ub3QgY3JlYXRlIHJlZG8gbG9nIGFyY2hpdmUgZmlsZSAnJS41MTJzJyAoT1MgZXJybm86ICVkIC0gJS4xMjhzKQBSZWRvIGxvZyBhcmNoaXZpbmcgaGFzIGJlZW4gc3RhcnRlZCBvbiAnJS41MTJzJyAtIENhbGwgaW5ub2RiX3JlZG9fbG9nX2FyY2hpdmVfc3RvcCgpIGZpcnN0AFJlZG8gbG9nIGFyY2hpdmluZyBpcyBub3QgYWN0aXZlAFJlZG8gbG9nIGFyY2hpdmluZyBmYWlsZWQ6ICUuNTEycwBSZWRvIGxvZyBhcmNoaXZpbmcgaGFzIG5vdCBiZWVuIHN0YXJ0ZWQgYnkgdGhpcyBzZXNzaW9uAFJlZ2V4IGVycm9yOiAlLS4yNTZzIGluIGZ1bmN0aW9uICVzLgBJbnZhbGlkIEpTT04gdHlwZSBpbiBhcmd1bWVudCAldSB0byBmdW5jdGlvbiAlczsgYW4gJXMgaXMgcmVxdWlyZWQuAENhbm5vdCBjb252ZXJ0IHN0cmluZyAnJS42NHMnIGZyb20gJXMgdG8gJXMAQ29sdW1uICclcycgaGFzIGEgcGFydGl0aW9uaW5nIGZ1bmN0aW9uIGRlcGVuZGVuY3kgYW5kIGNhbm5vdCBiZSBkcm9wcGVkIG9yIHJlbmFtZWQuAEFVVE9fSU5DUkVNRU5UIHN1cHBvcnQgZm9yIEZMT0FUL0RPVUJMRSBjb2x1bW5zIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLiBDb25zaWRlciByZW1vdmluZyBBVVRPX0lOQ1JFTUVOVCBmcm9tIGNvbHVtbiAnJS0uMTkycycuAENhbm5vdCBzdG9wIHRoZSByZXBsaWNhIFNRTCB0aHJlYWQgd2hpbGUgdGhlIGluc3RhbmNlIGlzIGxvY2tlZCBmb3IgYmFja3VwLiBUcnkgcnVubmluZyBgVU5MT0NLIElOU1RBTkNFYCBmaXJzdC4AU3BlY2lmeWluZyBudW1iZXIgb2YgZGlnaXRzIGZvciBmbG9hdGluZyBwb2ludCBkYXRhIHR5cGVzIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgBVTlNJR05FRCBmb3IgZGVjaW1hbCBhbmQgZmxvYXRpbmcgcG9pbnQgZGF0YSB0eXBlcyBpcyBkZXByZWNhdGVkIGFuZCBzdXBwb3J0IGZvciBpdCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4ASW50ZWdlciBkaXNwbGF5IHdpZHRoIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgBUaGUgWkVST0ZJTEwgYXR0cmlidXRlIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLiBVc2UgdGhlIExQQUQgZnVuY3Rpb24gdG8gemVyby1wYWQgbnVtYmVycywgb3Igc3RvcmUgdGhlIGZvcm1hdHRlZCBudW1iZXJzIGluIGEgQ0hBUiBjb2x1bW4uAENsb25lIERvbm9yIEVycm9yOiAlLjUxMnMuAENsb25lIHJlY2VpdmVkIHVuZXhwZWN0ZWQgcmVzcG9uc2UgZnJvbSBEb25vciA6ICUuNTEycy4AQ2xvbmUgRG9ub3IgTXlTUUwgdmVyc2lvbjogJS42NHMgaXMgZGlmZmVyZW50IGZyb20gUmVjaXBpZW50IE15U1FMIHZlcnNpb24gJS42NHMuAENsb25lIERvbm9yIE9TOiAlLjY0cyBpcyBkaWZmZXJlbnQgZnJvbSBSZWNpcGllbnQgT1M6ICUuNjRzLgBDbG9uZSBEb25vciBwbGF0Zm9ybTogJS42NHMgaXMgZGlmZmVyZW50IGZyb20gUmVjaXBpZW50IHBsYXRmb3JtOiAlLjY0cy4AQ2xvbmUgRG9ub3IgY29sbGF0aW9uOiAlLjEyOHMgaXMgdW5hdmFpbGFibGUgaW4gUmVjaXBpZW50LgBDbG9uZSBDb25maWd1cmF0aW9uICUuMTI4czogRG9ub3IgdmFsdWU6ICUuMTI4cyBpcyBkaWZmZXJlbnQgZnJvbSBSZWNpcGllbnQgdmFsdWU6ICUuMTI4cy4AQ2xvbmUgc3lzdGVtIGNvbmZpZ3VyYXRpb246ICUuNTEycwBDbG9uZSBEb25vciBwbHVnaW4gJS4xMjhzIGlzIG5vdCBhY3RpdmUgaW4gUmVjaXBpZW50LgBDbG9uZSBjYW5ub3QgdXNlIGxvb3AgYmFjayBjb25uZWN0aW9uIHdoaWxlIGNsb25pbmcgaW50byBjdXJyZW50IGRhdGEgZGlyZWN0b3J5LgBDbG9uZSBuZWVkcyBTU0wgY29ubmVjdGlvbiBmb3IgZW5jcnlwdGVkIHRhYmxlLgBDbG9uZSBlc3RpbWF0ZWQgZGF0YWJhc2Ugc2l6ZSBpcyAlLjY0cy4gQXZhaWxhYmxlIHNwYWNlICUuNjRzIGlzIG5vdCBlbm91Z2guAENvbmN1cnJlbnQgY2xvbmUgaW4gcHJvZ3Jlc3MuIFBsZWFzZSB0cnkgYWZ0ZXIgY2xvbmUgaXMgY29tcGxldGUuAFRoZSBjbG9uZSBvcGVyYXRpb24gY2Fubm90IGJlIGV4ZWN1dGVkIHdoZW4gJXMuAENhbm5vdCBncmFudCByb2xlcyB0byBhbiBhbm9ueW1vdXMgdXNlci4AJXMARW1wdHkgcGFzc3dvcmQgY2FuIG5vdCBiZSByZXRhaW5lZCBhcyBzZWNvbmQgcGFzc3dvcmQgZm9yIHVzZXIgJyVzJ0AnJXMnLgBBY2Nlc3MgZGVuaWVkIGZvciBBdXRoSWQgYCUuNjRzYEBgJS42NHNgIHRvIGRhdGFiYXNlICclLS4xOTJzJy4AQ2Fubm90IHNldCBtYW5kYXRvcnlfcm9sZXM6IEF1dGhJZCBgJS42NHNgQGAlLjY0c2AgaGFzICclcycgcHJpdmlsZWdlLgBHdGlkIHRhYmxlIGlzIG5vdCByZWFkeSB0byBiZSB1c2VkLiBUYWJsZSAnJXMuJXMnIGNhbm5vdCBiZSBvcGVuZWQuAFRoZSBnZW9tZXRyeSBwYXNzZWQgdG8gZnVuY3Rpb24gJXMgaXMgaW4gU1JJRCAwLCB3aGljaCBkb2Vzbid0IHNwZWNpZnkgYSBsZW5ndGggdW5pdC4gQ2FuJ3QgY29udmVydCB0byAnJXMnLgBFcnJvciBpbnN0YWxsaW5nIHBsdWdpbiAnJXMnOiAlcwBTdG9yYWdlIGVuZ2luZSBjb3VsZCBub3QgYWxsb2NhdGUgdGVtcG9yYXJ5IHRhYmxlc3BhY2UgZm9yIHRoaXMgc2Vzc2lvbi4AR290IHVua25vd24gZXJyb3I6ICVkAENvdWxkIG5vdCBjaGFuZ2UgY29sdW1uICclcycgb2YgdGFibGUgJyVzJy4gVGhlIHJlc3VsdGluZyBzaXplIG9mIGluZGV4ICclcycgd291bGQgZXhjZWVkIHRoZSBtYXgga2V5IGxlbmd0aCBvZiAlZCBieXRlcy4AQSBjYXB0dXJlIGdyb3VwIGhhcyBhbiBpbnZhbGlkIG5hbWUuAEZhaWxlZCB0byBzZXQgdXAgU1NMIGJlY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBTU0wgbGlicmFyeSBlcnJvcjogJXMAU2Vjb25kYXJ5IGVuZ2luZSBvcGVyYXRpb24gZmFpbGVkLiAlcy4ARERMcyBvbiBhIHRhYmxlIHdpdGggYSBzZWNvbmRhcnkgZW5naW5lIGRlZmluZWQgYXJlIG5vdCBhbGxvd2VkLgBJbmNvcnJlY3QgY3VycmVudCBwYXNzd29yZC4gU3BlY2lmeSB0aGUgY29ycmVjdCBwYXNzd29yZCB3aGljaCBoYXMgdG8gYmUgcmVwbGFjZWQuAEN1cnJlbnQgcGFzc3dvcmQgbmVlZHMgdG8gYmUgc3BlY2lmaWVkIGluIHRoZSBSRVBMQUNFIGNsYXVzZSBpbiBvcmRlciB0byBjaGFuZ2UgaXQuAERvIG5vdCBzcGVjaWZ5IHRoZSBjdXJyZW50IHBhc3N3b3JkIHdoaWxlIGNoYW5naW5nIGl0IGZvciBvdGhlciB1c2Vycy4AQ3VycmVudCBwYXNzd29yZCBjYW4gbm90IGJlIHJldGFpbmVkIGZvciB1c2VyICclcydAJyVzJyBiZWNhdXNlIGF1dGhlbnRpY2F0aW9uIHBsdWdpbiBpcyBiZWluZyBjaGFuZ2VkLgBDdXJyZW50IHBhc3N3b3JkIGNhbiBub3QgYmUgcmV0YWluZWQgZm9yIHVzZXIgJyVzJ0AnJXMnIGJlY2F1c2UgbmV3IHBhc3N3b3JkIGlzIGVtcHR5LgBBdCBsZWFzdCBvbmUgcGFydGlhbCByZXZva2UgZXhpc3RzIG9uIGEgZGF0YWJhc2UuIFRoZSBzeXN0ZW0gdmFyaWFibGUgJ0BAcGFydGlhbF9yZXZva2VzJyBtdXN0IGJlIHNldCB0byBPTi4AQXV0aElkIGAlLjY0c2BAYCUuNjRzYCBpcyBzZXQgYXMgbWFuZGF0b3J5X3JvbGVzLiBDYW5ub3QgZ3JhbnQgdGhlICclcycgcHJpdmlsZWdlLgBUaGUgdXNlIG9mIHJlcGxpY2F0aW9uIGZpbHRlcnMgd2l0aCBYQSB0cmFuc2FjdGlvbnMgaXMgbm90IHN1cHBvcnRlZCwgYW5kIGNhbiBsZWFkIHRvIGFuIHVuZGVmaW5lZCBzdGF0ZSBpbiB0aGUgcmVwbGljYS4Ac3FsX21vZGU9MHglMDh4IGlzIG5vdCBzdXBwb3J0ZWQuAEludmFsaWQgbWF0Y2ggbW9kZSBmbGFnIGluIHJlZ3VsYXIgZXhwcmVzc2lvbi4AJyVzJyBwcml2aWxlZ2UgZm9yIGRhdGFiYXNlICclcycgZXhpc3RzIGJvdGggYXMgcGFydGlhbCByZXZva2UgYW5kIG15c3FsLmRiIHNpbXVsdGFuZW91c2x5LiBJdCBjb3VsZCBtZWFuIHRoYXQgdGhlICdteXNxbCcgc2NoZW1hIGlzIGNvcnJ1cHRlZC4AVGhlcmUncyBubyB1bml0IG9mIG1lYXN1cmUgbmFtZWQgJyVzJy4ASW52YWxpZCBKU09OIHZhbHVlIGZvciBDQVNUIGZvciBmdW5jdGlvbmFsIGluZGV4ICclLS42NHMnLgBPdXQgb2YgcmFuZ2UgSlNPTiB2YWx1ZSBmb3IgQ0FTVCBmb3IgZnVuY3Rpb25hbCBpbmRleCAnJS0uNjRzJy4ARXhjZWVkZWQgbWF4IG51bWJlciBvZiB2YWx1ZXMgcGVyIHJlY29yZCBmb3IgbXVsdGktdmFsdWVkIGluZGV4ICclLS42NHMnIGJ5ICV1IHZhbHVlKHMpLgBFeGNlZWRlZCBtYXggdG90YWwgbGVuZ3RoIG9mIHZhbHVlcyBwZXIgcmVjb3JkIGZvciBtdWx0aS12YWx1ZWQgaW5kZXggJyUtLjY0cycgYnkgJXUgYnl0ZXMuAERhdGEgdG9vIGxvbmcgZm9yIGZ1bmN0aW9uYWwgaW5kZXggJyUtLjY0cycuAENhbm5vdCBzdG9yZSBhbiBhcnJheSBvciBhbiBvYmplY3QgaW4gYSBzY2FsYXIga2V5IHBhcnQgb2YgdGhlIGluZGV4ICclLjE5MnMnLgBDYW5ub3QgdXNlIGZ1bmN0aW9uYWwgaW5kZXggJyUtLjY0cycgZHVlIHRvIHR5cGUgb3IgY29sbGF0aW9uIGNvbnZlcnNpb24uAFRoZSBmdW5jdGlvbiAnJXMnIGZhaWxlZC4gJXMAQ2Fubm90IHVwZGF0ZSBHVElEX1BVUkdFRCB3aXRoIHRoZSBHcm91cCBSZXBsaWNhdGlvbiBwbHVnaW4gcnVubmluZwBHcm91cGluZyBvbiB0ZW1wb3JhbCBpcyBub24tZGV0ZXJtaW5pc3RpYyBmb3IgdGltZXpvbmVzIGhhdmluZyBEU1QuIFBsZWFzZSBjb25zaWRlciBzd2l0Y2hpbmcgdG8gVVRDIGZvciB0aGlzIHF1ZXJ5LgBMb25nIGRhdGFiYXNlIG5hbWUgYW5kIGlkZW50aWZpZXIgZm9yIG9iamVjdCByZXN1bHRlZCBpbiBhIHBhdGggbGVuZ3RoIHRvbyBsb25nIGZvciB0YWJsZSAnJXMnLiBQbGVhc2UgY2hlY2sgdGhlIHBhdGggbGltaXQgZm9yIHlvdXIgT1MuAFJlcXVlc3QgaWdub3JlZCBmb3IgJyUuNjRzJ0AnJS42NHMnLiBSb2xlIG5lZWRlZCB0byBwZXJmb3JtIG9wZXJhdGlvbjogJyUuMzJzJwAnYXVkaXRfbG9nJyBwYXNzd29yZCBoYXMgYmVlbiBjb3BpZWQgaW50byAnJS4zMnMnIGFuZCB3aWxsIGJlIHJlbW92ZWQgd2l0aCBmaXJzdCBwdXJnZWQgcGFzc3dvcmQuAFN0YXJ0ZWQgYXV0by1yZWpvaW4gcHJvY2VkdXJlIGF0dGVtcHQgJWx1IG9mICVsdQBBIHBsdWdpbiB3YXMgbG9hZGVkIG9yIHVubG9hZGVkIGR1cmluZyBhIHF1ZXJ5LCBhIHN5c3RlbSB2YXJpYWJsZSB0YWJsZSB3YXMgY2hhbmdlZC4AQSBwbHVnaW4gd2FzIGxvYWRlZCBvciB1bmxvYWRlZCBkdXJpbmcgYSBxdWVyeSwgYSBnbG9iYWwgc3RhdHVzIHZhcmlhYmxlIHdhcyBjaGFuZ2VkLgBUaGUgU1RBUlQgR1JPVVBfUkVQTElDQVRJT04gY29tbWFuZCBmYWlsZWQgdG8gc3RhcnQgaXRzIG1lc3NhZ2Ugc2VydmljZS4ASW52YWxpZCBTT1VSQ0VfQ09NUFJFU1NJT05fQUxHT1JJVEhNUyAnJS4xOTJzJyBmb3IgY2hhbm5lbCAnJS4xOTJzJy4ASW52YWxpZCBTT1VSQ0VfWlNURF9DT01QUkVTU0lPTl9MRVZFTCAldSBmb3IgY2hhbm5lbCAnJS4xOTJzJy4ASW52YWxpZCBjb21wcmVzc2lvbiBhbGdvcml0aG0gJyUuMTkycycuAEludmFsaWQgenN0ZCBjb21wcmVzc2lvbiBsZXZlbCBmb3IgYWxnb3JpdGhtICclLjE5MnMnLgBTcGVjaWZpZWQgY29tcHJlc3Npb24gYWxnb3JpdGhtIGxpc3QgJyUuMTkycycgZXhjZWVkcyB0b3RhbCBjb3VudCBvZiAzIGZvciBjaGFubmVsICclLjE5MnMnLgBQUklWSUxFR0VfQ0hFQ0tTX1VTRVIgZm9yIHJlcGxpY2F0aW9uIGNoYW5uZWwgJyUuMTkycycgd2FzIHNldCB0byBgYEBgJS4yNTVzYCwgYnV0IGFub255bW91cyB1c2VycyBhcmUgZGlzYWxsb3dlZCBmb3IgUFJJVklMRUdFX0NIRUNLU19VU0VSLgBQUklWSUxFR0VfQ0hFQ0tTX1VTRVIgZm9yIHJlcGxpY2F0aW9uIGNoYW5uZWwgJyUuMTkycycgd2FzIHNldCB0byBgJS42NHNgQGAlLjI1NXNgLCBidXQgdGhpcyBpcyBub3QgYW4gZXhpc3RpbmcgdXNlci4ASW52YWxpZCwgY29ycnVwdGVkIFBSSVZJTEVHRV9DSEVDS1NfVVNFUiB3YXMgZm91bmQgaW4gdGhlIHJlcGxpY2F0aW9uIGNvbmZpZ3VyYXRpb24gcmVwb3NpdG9yeSBmb3IgY2hhbm5lbCAnJS4xOTJzJy4gVXNlIENIQU5HRSBSRVBMSUNBVElPTiBTT1VSQ0UgVE8gUFJJVklMRUdFX0NIRUNLU19VU0VSIHRvIGNvcnJlY3QgdGhlIGNvbmZpZ3VyYXRpb24uAFBSSVZJTEVHRV9DSEVDS1NfVVNFUiBmb3IgcmVwbGljYXRpb24gY2hhbm5lbCAnJS4xOTJzJyB3YXMgc2V0IHRvIGAlLjY0c2BAYCUuMjU1c2AsIGJ1dCB0aGlzIHVzZXIgZG9lcyBub3QgaGF2ZSBSRVBMSUNBVElPTl9BUFBMSUVSIHByaXZpbGVnZS4ARHluYW1pYyBwcml2aWxlZ2UgJyVzJyBpcyBub3QgcmVnaXN0ZXJlZCB3aXRoIHRoZSBzZXJ2ZXIuAEZ1bmN0aW9uICclcycgZmFpbGVkIGJlY2F1c2Uga2V5IGlzIGludmFsaWQuAEZ1bmN0aW9uICclcycgZmFpbGVkIGJlY2F1c2Uga2V5IHR5cGUgaXMgaW52YWxpZC4ARnVuY3Rpb24gJyVzJyBmYWlsZWQgYmVjYXVzZSBrZXkgbGVuZ3RoIGlzIHRvbyBsb25nLgBGdW5jdGlvbiAnJXMnIGZhaWxlZCBiZWNhdXNlIGtleSB0eXBlIGlzIHRvbyBsb25nLgAlcy4ASW52YWxpZCBjaGFyYWN0ZXIgc2V0ICclcycgd2FzIHNwZWNpZmllZC4gSXQgbXVzdCBiZSBlaXRoZXIgY2hhcmFjdGVyIHNldCBuYW1lIG9yIGNvbGxhdGlvbiBuYW1lIGFzIHN1cHBvcnRlZCBieSBzZXJ2ZXIuAEludmFsaWQgY2hhcmFjdGVyIHNldCAnJXMnIHdhcyBzcGVjaWZpZWQuIEl0IG11c3QgYmUgYSBjaGFyYWN0ZXIgc2V0IG5hbWUgYXMgc3VwcG9ydGVkIGJ5IHNlcnZlci4ASW52YWxpZCBjb2xsYXRpb24gJyVzJyB3YXMgc3BlY2lmaWVkLiBJdCBtdXN0IGJlIGEgY29sbGF0aW9uIG5hbWUgYXMgc3VwcG9ydGVkIGJ5IHNlcnZlci4ASW52YWxpZCBleHRlbnNpb24gYXJndW1lbnQgdHlwZSAnJXMnIHdhcyBzcGVjaWZpZWQuIFJlZmVyIHRoZSBNeVNRTCBtYW51YWwgZm9yIHRoZSB2YWxpZCBVREYgZXh0ZW5zaW9uIGFyZ3VtZW50cyB0eXBlLgBUYWJsZSBoYXMgbXVsdGlwbGUgY29uc3RyYWludHMgd2l0aCB0aGUgbmFtZSAnJS0uMTkycycuIFBsZWFzZSB1c2UgY29uc3RyYWludCBzcGVjaWZpYyAnJXMnIGNsYXVzZS4AQ29uc3RyYWludCAnJS0uMTkycycgZG9lcyBub3QgZXhpc3QuAEFsdGVyaW5nIGNvbnN0cmFpbnQgZW5mb3JjZW1lbnQgaXMgbm90IHN1cHBvcnRlZCBmb3IgdGhlIGNvbnN0cmFpbnQgJyUtLjE5MnMnLiBFbmZvcmNlbWVudCBzdGF0ZSBhbHRlciBpcyBub3Qgc3VwcG9ydGVkIGZvciB0aGUgUFJJTUFSWSwgVU5JUVVFIGFuZCBGT1JFSUdOIEtFWSB0eXBlIGNvbnN0cmFpbnRzLgBFYWNoIHJvdyBvZiBhIFZBTFVFUyBjbGF1c2UgbXVzdCBoYXZlIGF0IGxlYXN0IG9uZSBjb2x1bW4sIHVubGVzcyB3aGVuIHVzZWQgYXMgc291cmNlIGluIGFuIElOU0VSVCBzdGF0ZW1lbnQuAEEgVkFMVUVTIGNsYXVzZSBjYW5ub3QgdXNlIERFRkFVTFQgdmFsdWVzLCB1bmxlc3MgdXNlZCBhcyBhIHNvdXJjZSBpbiBhbiBJTlNFUlQgc3RhdGVtZW50LgBUaGUgcXVlcnkgZG9lcyBub3QgY29tcGx5IHdpdGggdmFyaWFibGUgcmVxdWlyZV9yb3dfZm9ybWF0IHJlc3RyaWN0aW9ucy4AVGhlIHJlcXVlc3RlZCB2YWx1ZSAlcyBpcyBpbnZhbGlkIGZvciBSRVFVSVJFX1JPV19GT1JNQVQsIG11c3QgYmUgZWl0aGVyIDAgb3IgMS4ARmFpbGVkIHRvIGFjcXVpcmUgbG9jayBvbiB1c2VyIG1hbmFnZW1lbnQgc2VydmljZSwgdW5hYmxlIHRvIGRldGVybWluZSBpZiByb2xlIGAlc2BAYCVzYCBpcyBtYW5kYXRvcnkARmFpbGVkIHRvIGFjcXVpcmUgbG9jayBvbiB1c2VyIG1hbmFnZW1lbnQgc2VydmljZSwgdW5hYmxlIHRvIGZldGNoIG1hbmRhdG9yeSByb2xlIGxpc3QATG9hZGluZyBsb2NhbCBkYXRhIGlzIGRpc2FibGVkOyB0aGlzIG11c3QgYmUgZW5hYmxlZCBvbiBib3RoIHRoZSBjbGllbnQgYW5kIHNlcnZlciBzaWRlcwBGYWlsZWQgdG8gaW1wb3J0ICVzIGJlY2F1c2UgdGhlIENGRyBmaWxlIHZlcnNpb24gKCV1KSBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHRoZSBjdXJyZW50IHZlcnNpb24gKCV1KQBPdXQgb2YgbWVtb3J5AENoYXJhY3RlciBzZXQgY2FuIGJlIHNldCBvbmx5IGZvciB0aGUgVURGIGFyZ3VtZW50IHR5cGUgU1RSSU5HLgBDaGFyYWN0ZXIgc2V0IGNhbiBiZSBzZXQgb25seSBmb3IgdGhlIFVERiBSRVRVUk4gdHlwZSBTVFJJTkcuAE11bHRpcGxlIElOVE8gY2xhdXNlcyBpbiBvbmUgcXVlcnkgYmxvY2suAE1pc3BsYWNlZCBJTlRPIGNsYXVzZSwgSU5UTyBpcyBub3QgYWxsb3dlZCBpbnNpZGUgc3VicXVlcmllcywgYW5kIG11c3QgYmUgcGxhY2VkIGF0IGVuZCBvZiBVTklPTiBjbGF1c2VzLgBBY2Nlc3MgZGVuaWVkIGZvciB1c2VyICclLS40OHMnQCclLS42NHMnLiBBY2NvdW50IGlzIGJsb2NrZWQgZm9yICVzIGRheShzKSAoJXMgZGF5KHMpIHJlbWFpbmluZykgZHVlIHRvICV1IGNvbnNlY3V0aXZlIGZhaWxlZCBsb2dpbnMuAFVOU0lHTkVEIGZvciB0aGUgWUVBUiBkYXRhIHR5cGUgaXMgZGVwcmVjYXRlZCBhbmQgc3VwcG9ydCBmb3IgaXQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuAENsb25lIG5lZWRzIG1heF9hbGxvd2VkX3BhY2tldCB2YWx1ZSB0byBiZSAldSBvciBtb3JlLiBDdXJyZW50IHZhbHVlIGlzICV1AEZhaWxlZCB0byAlcyBzZGkgZm9yICVzLiVzIGluICVzIGR1ZSB0byBtaXNzaW5nIHJlY29yZC4AQ2hlY2sgY29uc3RyYWludCAnJS0uMTkycycgdXNlcyBjb2x1bW4gJyUtLjE5MnMnLCBoZW5jZSBjb2x1bW4gY2Fubm90IGJlIGRyb3BwZWQgb3IgcmVuYW1lZC4AVGhpcyBvcGVyYXRpb24gY2Fubm90IGJlIHBlcmZvcm1lZCB3aGlsZSBHcm91cCBSZXBsaWNhdGlvbiBpcyBydW5uaW5nOyBydW4gU1RPUCBHUk9VUF9SRVBMSUNBVElPTiBmaXJzdABTcGVjaWZ5aW5nIGFuIE9OIEVNUFRZIGNsYXVzZSBhZnRlciB0aGUgT04gRVJST1IgY2xhdXNlIGluIGEgSlNPTl9UQUJMRSBjb2x1bW4gZGVmaW5pdGlvbiBpcyBkZXByZWNhdGVkIHN5bnRheCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuIFNwZWNpZnkgT04gRU1QVFkgYmVmb3JlIE9OIEVSUk9SIGluc3RlYWQuAFRoZSBJTlRPIGNsYXVzZSBpcyBkZXByZWNhdGVkIGluc2lkZSBxdWVyeSBibG9ja3Mgb2YgcXVlcnkgZXhwcmVzc2lvbnMgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLiBQbGVhc2UgbW92ZSB0aGUgSU5UTyBjbGF1c2UgdG8gdGhlIGVuZCBvZiBzdGF0ZW1lbnQgaW5zdGVhZC4AVGhlIFZBTFVFUyBmdW5jdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4gSXQgYWx3YXlzIHJldHVybnMgTlVMTCBpbiB0aGlzIGNvbnRleHQuIElmIHlvdSBtZWFudCB0byBhY2Nlc3MgYSB2YWx1ZSBmcm9tIHRoZSBWQUxVRVMgY2xhdXNlIG9mIHRoZSBJTlNFUlQgc3RhdGVtZW50LCBjb25zaWRlciB1c2luZyBhbiBhbGlhcyAoSU5TRVJUIElOVE8gLi4uIFZBTFVFUyAoLi4uKSBBUyBhbGlhcykgYW5kIHJlZmVyZW5jZSBhbGlhcy5jb2wgaW5zdGVhZCBvZiBWQUxVRVMoY29sKSBpbiB0aGUgT04gRFVQTElDQVRFIEtFWSBVUERBVEUgY2xhdXNlLgBTUUxfQ0FMQ19GT1VORF9ST1dTIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLiBDb25zaWRlciB1c2luZyB0d28gc2VwYXJhdGUgcXVlcmllcyBpbnN0ZWFkLgBGT1VORF9ST1dTKCkgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuIENvbnNpZGVyIHVzaW5nIENPVU5UKCopIGluc3RlYWQuAE5vIHZhbHVlIHdhcyBmb3VuZCBieSAnJS4xOTJzJyBvbiB0aGUgc3BlY2lmaWVkIHBhdGguAE1vcmUgdGhhbiBvbmUgdmFsdWUgd2FzIGZvdW5kIGJ5ICclLjE5MnMnIG9uIHRoZSBzcGVjaWZpZWQgcGF0aC4ASG9zdG5hbWUgY2Fubm90IGJlIGxvbmdlciB0aGFuICVkIGNoYXJhY3RlcnMuAENvbHVtbiAnJS42NHMuJS42NHMuJS42NHMnIGhhdmluZyBwcmVmaXgga2V5IHBhcnQgJyUuNjRzKCV1KScgaXMgaWdub3JlZCBieSB0aGUgcGFydGl0aW9uaW5nIGZ1bmN0aW9uLiBVc2Ugb2YgcHJlZml4ZWQgY29sdW1ucyBpbiB0aGUgUEFSVElUSU9OIEJZIEtFWSgpIGNsYXVzZSBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4AVGhlIFNUQVJUIEdST1VQX1JFUExJQ0FUSU9OIGNvbW1hbmQgZmFpbGVkIHNpbmNlIHRoZSB1c2VybmFtZSBwcm92aWRlZCBmb3IgcmVjb3ZlcnkgY2hhbm5lbCBpcyBlbXB0eS4AVGhlIFNUQVJUIEdST1VQX1JFUExJQ0FUSU9OIGNvbW1hbmQgZmFpbGVkIHNpbmNlIHRoZSBVU0VSIG9wdGlvbiB3YXMgbm90IHByb3ZpZGVkIHdpdGggUEFTU1dPUkQgZm9yIHJlY292ZXJ5IGNoYW5uZWwuAFRoZSBTVEFSVCBHUk9VUF9SRVBMSUNBVElPTiBjb21tYW5kIGZhaWxlZCBzaW5jZSB0aGUgcGFzc3dvcmQgcHJvdmlkZWQgZm9yIHRoZSByZWNvdmVyeSBjaGFubmVsIGV4Y2VlZHMgdGhlIG1heGltdW0gbGVuZ3RoIG9mIDMyIGNoYXJhY3RlcnMuAFN0YXRlbWVudCByZXF1aXJlcyBhIHRyYW5zZm9ybSBvZiBhIHN1YnF1ZXJ5IHRvIGEgbm9uLVNFVCBvcGVyYXRpb24gKGxpa2UgSU4yRVhJU1RTLCBvciBzdWJxdWVyeS10by1MQVRFUkFMLWRlcml2ZWQtdGFibGUpLiBUaGlzIGlzIG5vdCBhbGxvd2VkIHdpdGggb3B0aW1pemVyIHN3aXRjaCAnc3VicXVlcnlfdG9fZGVyaXZlZCcgb24ASW52YWxpZCBpbnB1dCB2YWx1ZSBmb3IgcmVjb3Zlcnkgc29ja2V0IGVuZHBvaW50cyAnJXMnLiBQbGVhc2UsIHByb3ZpZGUgYSB2YWxpZCwgY29tbWEgc2VwYXJhdGVkLCBsaXN0IG9mIGVuZHBvaW50cyAoSVA6cG9ydCkAVGhlIHNlcnZlciBpcyBub3QgbGlzdGVuaW5nIG9uIGVuZHBvaW50ICclcycuIE9ubHkgZW5kcG9pbnRzIHRoYXQgdGhlIHNlcnZlciBpcyBsaXN0ZW5pbmcgb24gYXJlIHZhbGlkIHJlY292ZXJ5IGVuZHBvaW50cy4AVmFyaWFibGUgJyUtLjY0cycgY2Fubm90IGJlIHNldCB0byB0aGUgdmFsdWUgb2YgJyUtLjIwMHMnLiAlLS4yMDBzAE9ubHkgQklOTE9HIElOU0VSVCwgQ09NTUlUIGFuZCBST0xMQkFDSyBzdGF0ZW1lbnRzIGFyZSBhbGxvd2VkIGFmdGVyIENSRUFURSBUQUJMRSB3aXRoIFNUQVJUIFRSQU5TQUNUSU9OIHN0YXRlbWVudC4ARm9yZWlnbiBrZXkgY3JlYXRpb24gaXMgbm90IGFsbG93ZWQgd2l0aCBDUkVBVEUgVEFCTEUgYXMgU0VMRUNUIGFuZCBDUkVBVEUgVEFCTEUgd2l0aCBTVEFSVCBUUkFOU0FDVElPTiBzdGF0ZW1lbnQuAFNUQVJUIFRSQU5TQUNUSU9OIGNsYXVzZSBjYW5ub3QgYmUgdXNlZCAlLjEyOHMASW52YWxpZCBqc29uIGF0dHJpYnV0ZSwgZXJyb3I6ICIlcyIgYXQgcG9zICV1OiAnJXMnAFN0b3JhZ2UgZW5naW5lICclcycgZG9lcyBub3Qgc3VwcG9ydCBFTkdJTkVfQVRUUklCVVRFLgBUaGUgdXNlciBhdHRyaWJ1dGUgbXVzdCBiZSBhIHZhbGlkIEpTT04gb2JqZWN0AENhbm5vdCBwZXJmb3JtIG9wZXJhdGlvbiBhcyBJbm5vREIgcmVkbyBsb2dnaW5nIGlzIGRpc2FibGVkLiBQbGVhc2UgcmV0cnkgYWZ0ZXIgZW5hYmxpbmcgcmVkbyBsb2cgd2l0aCBBTFRFUiBJTlNUQU5DRQBDYW5ub3QgcGVyZm9ybSBvcGVyYXRpb24gYXMgSW5ub0RCIGlzIGFyY2hpdmluZyByZWRvIGxvZy4gUGxlYXNlIHJldHJ5IGFmdGVyIHN0b3BwaW5nIHJlZG8gYXJjaGl2ZSBieSBpbnZva2luZyBpbm5vZGJfcmVkb19sb2dfYXJjaGl2ZV9zdG9wKCkATm90IGVub3VnaCByZXNvdXJjZXMgdG8gY29tcGxldGUgbG9jayByZXF1ZXN0LgBFdmFsdWF0aW5nIGEgSlNPTiB2YWx1ZSBpbiBTUUwgYm9vbGVhbiBjb250ZXh0IGRvZXMgYW4gaW1wbGljaXQgY29tcGFyaXNvbiBhZ2FpbnN0IEpTT04gaW50ZWdlciAwOyBpZiB0aGlzIGlzIG5vdCB3aGF0IHlvdSB3YW50LCBjb25zaWRlciBjb252ZXJ0aW5nIEpTT04gdG8gYSBTUUwgbnVtZXJpYyB0eXBlIHdpdGggSlNPTl9WQUxVRSBSRVRVUk5JTkcAVGhlIGZ1bmN0aW9uICVzIGRvZXMgbm90IHN1cHBvcnQgdGhlIGNoYXJhY3RlciBzZXQgJyVzJy4AQ29udmVyc2lvbiBmcm9tIGNvbGxhdGlvbiAlcyBpbnRvICVzIGltcG9zc2libGUgZm9yICVzAFNjaGVtYSAnJXMnIGlzIGluIHJlYWQgb25seSBtb2RlLgBGYWlsZWQgdG8gZW5hYmxlIEFzeW5jaHJvbm91cyBSZXBsaWNhdGlvbiBDb25uZWN0aW9uIEZhaWxvdmVyIGZlYXR1cmUuIFRoZSBDSEFOR0UgUkVQTElDQVRJT04gU09VUkNFIFRPIFNPVVJDRV9DT05ORUNUSU9OX0FVVE9fRkFJTE9WRVIgPSAxIGNhbiBvbmx5IGJlIHNldCB3aGVuIEBAR0xPQkFMLkdUSURfTU9ERSA9IE9OLgBGYWlsZWQgdG8gZW5hYmxlIEFzeW5jaHJvbm91cyBSZXBsaWNhdGlvbiBDb25uZWN0aW9uIEZhaWxvdmVyIGZlYXR1cmUuIFRoZSBDSEFOR0UgUkVQTElDQVRJT04gU09VUkNFIFRPIFNPVVJDRV9DT05ORUNUSU9OX0FVVE9fRkFJTE9WRVIgPSAxIGNhbiBvbmx5IGJlIHNldCB3aGVuIFNPVVJDRV9BVVRPX1BPU0lUSU9OIG9wdGlvbiBvZiBDSEFOR0UgUkVQTElDQVRJT04gU09VUkNFIFRPIGlzIGVuYWJsZWQuAFRoZSBAQEdMT0JBTC5HVElEX01PREUgPSAlLS42NHMgY2Fubm90IGJlIGV4ZWN1dGVkIGJlY2F1c2UgQXN5bmNocm9ub3VzIFJlcGxpY2F0aW9uIENvbm5lY3Rpb24gRmFpbG92ZXIgaXMgZW5hYmxlZCBpLmUuIENIQU5HRSBSRVBMSUNBVElPTiBTT1VSQ0UgVE8gU09VUkNFX0NPTk5FQ1RJT05fQVVUT19GQUlMT1ZFUiA9IDEuAENIQU5HRSBSRVBMSUNBVElPTiBTT1VSQ0UgVE8gU09VUkNFX0FVVE9fUE9TSVRJT04gPSAwIGNhbm5vdCBiZSBleGVjdXRlZCBiZWNhdXNlIEFzeW5jaHJvbm91cyBSZXBsaWNhdGlvbiBDb25uZWN0aW9uIEZhaWxvdmVyIGlzIGVuYWJsZWQgaS5lLiBDSEFOR0UgUkVQTElDQVRJT04gU09VUkNFIFRPIFNPVVJDRV9DT05ORUNUSU9OX0FVVE9fRkFJTE9WRVIgPSAxLgBJbnZhbGlkIHVzZSBvZiBwYXJhbWV0ZXJzIGluICclcycAQ2hhcmFjdGVyIHNldCAnJXMnIGNhbm5vdCBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggJyVzJyBpbiBjYWxsIHRvICVzLgBDaGFuZ2luZyAlcyBub3Qgc3VwcG9ydGVkIG9uIHRoaXMgcGxhdGZvcm0uIEZhbGxpbmcgYmFjayB0byB0aGUgZGVmYXVsdC4ASW52YWxpZCB0aW1lIHpvbmUgaW50ZXJ2YWw6ICclcycAQ2Fubm90IGNhc3QgdmFsdWUgdG8gJXMuAFRoZSBoeXBlcmdyYXBoIG9wdGltaXplciBkb2VzIG5vdCB5ZXQgc3VwcG9ydCAnJXMnAFRoZSBoeXBlcmdyYXBoIG9wdGltaXplciBpcyBoaWdobHkgZXhwZXJpbWVudGFsIGFuZCBpcyBtZWFudCBmb3IgdGVzdGluZyBvbmx5LiBEbyBub3QgZW5hYmxlIGl0IHVubGVzcyB5b3UgYXJlIGEgTXlTUUwgZGV2ZWxvcGVyLgBOb25lIG9mIHRoZSBsb2ctc2lua3Mgc2VsZWN0ZWQgd2l0aCAtLWxvZy1lcnJvci1zZXJ2aWNlcz0uLi4gcHJvdmlkZXMgYSBsb2ctcGFyc2VyLiBUaGUgc2VydmVyIHdpbGwgbm90IGJlIGFibGUgdG8gbWFrZSB0aGUgcHJldmlvdXMgcnVucycgZXJyb3ItbG9ncyBhdmFpbGFibGUgaW4gcGVyZm9ybWFuY2Vfc2NoZW1hLmVycm9yX2xvZy4ATm9uZSBvZiB0aGUgbG9nLXNpbmtzIHNlbGVjdGVkIGluIEBAZ2xvYmFsLmxvZ19lcnJvcl9zZXJ2aWNlcyBzdXBwb3J0cyB3cml0aW5nIHRvIHRoZSBwZXJmb3JtYW5jZSBzY2hlbWEuIFRoZSBzZXJ2ZXIgd2lsbCBub3QgYmUgYWJsZSB0byBtYWtlIHRoZSBjdXJyZW50IHJ1bnMnIGVycm9yIGV2ZW50cyBhdmFpbGFibGUgaW4gcGVyZm9ybWFuY2Vfc2NoZW1hLmVycm9yX2xvZy4gVG8gY2hhbmdlIHRoaXMsIGFkZCBhIGxvZy1zaW5rIHRoYXQgc3VwcG9ydHMgdGhlIHBlcmZvcm1hbmNlIHNjaGVtYSB0byBAQGdsb2JhbC5sb2dfZXJyb3Jfc2VydmljZXMuAEBAZ2xvYmFsLmxvZ19lcnJvcl9zZXJ2aWNlcyBsaXN0cyBtb3JlIHRoYW4gb25lIGxvZy1maWx0ZXIgc2VydmljZS4gVGhpcyBpcyBkaXNjb3VyYWdlZCBhcyBpdCB3aWxsIG1ha2UgaXQgaGFyZCB0byB1bmRlcnN0YW5kIHdoaWNoIHJ1bGUgaW4gd2hpY2ggZmlsdGVyIGFmZmVjdGVkIGEgbG9nLWV2ZW50LgBDb3VsZCBub3Qgb3BlbiBmaWxlICclcycgZm9yIGVycm9yIGxvZ2dpbmclcyVzAFVzZXIgJS4yNTZzIGlzIHJlZmVyZW5jZWQgYXMgYSBkZWZpbmVyIGFjY291bnQgaW4gJXMuAE9wZXJhdGlvbiAlcyBmYWlsZWQgZm9yICUuMjU2cyBhcyBpdCBpcyByZWZlcmVuY2VkIGFzIGEgZGVmaW5lciBhY2NvdW50IGluICVzLgBEZWNpbWFsIG51bWJlciBpbiByZWd1bGFyIGV4cHJlc3Npb24gaXMgdG9vIGxhcmdlLgBUaGUgdmFyaWFibGUgIiVzIiBoYXMgYSBub24taW50ZWdlciBiYXNlZCB0eXBlAFJlYWRzIHdpdGggc2VyaWFsaXphYmxlIGlzb2xhdGlvbi9TRUxFQ1QgRk9SIFNIQVJFIGFyZSBub3Qgc3VwcG9ydGVkIGZvciBBQ0wgdGFibGVzLgBUaGUgc3RhdGVtZW50IGlzIHVuc2FmZSBiZWNhdXNlIGl0IHVwZGF0ZXMgYSB0YWJsZSBkZXBlbmRpbmcgb24gQUNMIHRhYmxlIHJlYWQgb3BlcmF0aW9uLiBBcyBzdG9yYWdlIGVuZ2luZSByb3cgbG9ja3MgYXJlIHNraXBwZWQgZm9yIEFDTCB0YWJsZSwgaXQgbWF5IG5vdCBoYXZlIHNhbWUgZWZmZWN0IG9uIHNvdXJjZSBhbmQgcmVwbGljYS4AU1RPUCBSRVBMSUNBIGNvbW1hbmQgZXhlY3V0aW9uIGlzIGluY29tcGxldGU6IFJlcGxpY2EgTW9uaXRvciB0aHJlYWQgZ290IHRoZSBzdG9wIHNpZ25hbCwgdGhyZWFkIGlzIGJ1c3ksIE1vbml0b3IgdGhyZWFkIHdpbGwgc3RvcCBvbmNlIHRoZSBjdXJyZW50IHRhc2sgaXMgY29tcGxldGUuAFRoZSBSZXBsaWNhIE1vbml0b3IgdGhyZWFkIGZhaWxlZCB0byBzdGFydC4AUmVwbGljYXRpb24gY2Fubm90IHN0YXJ0JS4xOTJzIHdpdGggQVNTSUdOX0dUSURTX1RPX0FOT05ZTU9VU19UUkFOU0FDVElPTlMgPSBMT0NBTHw8VVVJRD4gYXMgdGhpcyBzZXJ2ZXIgdXNlcyBAQEdMT0JBTC5HVElEX01PREUgPD4gT04uAFRoZSBvcHRpb25zIEFTU0lHTl9HVElEU19UT19BTk9OWU1PVVNfVFJBTlNBQ1RJT05TID0gTE9DQUx8PFVVSUQ+IGFuZCBTT1VSQ0VfQVVUT19QT1NJVElPTiA9IDEgY2Fubm90IGJlIHVzZWQgdG9nZXRoZXIuAENIQU5HRSBSRVBMSUNBVElPTiBTT1VSQ0UgVE8gQVNTSUdOX0dUSURTX1RPX0FOT05ZTU9VU19UUkFOU0FDVElPTlMgPSBMT0NBTHw8VVVJRD4gY2Fubm90IGJlIGV4ZWN1dGVkIGJlY2F1c2UgQEBHTE9CQUwuR1RJRF9NT0RFIDw+IE9OLgBUaGUgdmFsdWUgb2Ygc3FsX3JlcGxpY2Ffc2tpcF9jb3VudGVyIHdpbGwgb25seSB0YWtlIGVmZmVjdCBmb3IgY2hhbm5lbHMgcnVubmluZyB3aXRoIEFTU0lHTl9HVElEU19UT19BTk9OWU1PVVNfVFJBTlNBQ1RJT05TIDw+IE9GRi4AVXNpbmcgQVNTSUdOX0dUSURTX1RPX0FOT05ZTU9VU19UUkFOU0FDVElPTlMgY3JlYXRlcyBsaW1pdGF0aW9ucyBvbiB0aGUgcmVwbGljYXRpb24gdG9wb2xvZ3kgLSB5b3UgY2Fubm90IGZhaWwgb3ZlciBiZXR3ZWVuIGRvd25zdHJlYW0gYW5kIHVwc3RyZWFtIHNlcnZlcnMuIE9ubHkgdXNlIHRoaXMgb3B0aW9uIGlmIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBlbmFibGUgR1RJRHMgb24gdGhlIHNvdXJjZSwgZm9yIGluc3RhbmNlLCBiZWNhdXNlIG9mIGxhY2sgb2YgcGVybWlzc2lvbnMuIElmIHBvc3NpYmxlLCB1c2UgdGhlIHByb2NlZHVyZSBmb3IgZW5hYmxpbmcgR1RJRCB0cmFuc2FjdGlvbnMgb25saW5lIGluc3RlYWQsIGFzIGRlc2NyaWJlZCBpbiB0aGUgZG9jdW1lbnRhdGlvbi4AV0FJVF9VTlRJTF9TUUxfVEhSRUFEX0FGVEVSX0dUSURTIGNhbm5vdCBiZSB1c2VkIG9uIGEgY2hhbm5lbCBjb25maWd1cmVkIHdpdGggQVNTSUdOX0dUSURTX1RPX0FOT05ZTU9VU19UUkFOU0FDVElPTlMgPSBMT0NBTHw8VVVJRD4AVGhlIFNRTF9BRlRFUl9HVElEUyBvciBTUUxfQkVGT1JFX0dUSURTIGNsYXVzZXMgZm9yIFNUQVJUIFJFUExJQ0EgY2Fubm90IGJlIHVzZWQgd2hlbiB0aGUgcmVwbGljYXRpb24gY2hhbm5lbCBpcyBjb25maWd1cmVkIHdpdGggQVNTSUdOX0dUSURTX1RPX0FOT05ZTU9VU19UUkFOU0FDVElPTlMgPSBMT0NBTHw8VVVJRD4uAFJlcGxpY2F0aW9uICclLjE5MnMnIGlzIGNvbmZpZ3VyZWQgd2l0aCBBU1NJR05fR1RJRFNfVE9fQU5PTllNT1VTX1RSQU5TQUNUSU9OUyA9IDxVVUlEPiB3aGVyZSB0aGUgVVVJRCB2YWx1ZSBpcyBlcXVhbCB0byB0aGUgZ3JvdXBfcmVwbGljYXRpb25fZ3JvdXBfbmFtZQBDSEFOR0UgUkVQTElDQVRJT04gU09VUkNFIFRPIEFTU0lHTl9HVElEU19UT19BTk9OWU1PVVNfVFJBTlNBQ1RJT05TID0gPFVVSUQ+IGNhbm5vdCBiZSBleGVjdXRlZCBiZWNhdXNlIHRoZSBVVUlEIHZhbHVlIGlzIGVxdWFsIHRvIHRoZSBncm91cF9yZXBsaWNhdGlvbl9ncm91cF9uYW1lLgBUaGUgZ3JvdXBfcmVwbGljYXRpb25fcmVjb3ZlcnkgY2hhbm5lbCBpcyBzdGlsbCBydW5uaW5nLCBtb3N0IGxpa2VseSBpdCBpcyB3YWl0aW5nIGZvciBhIGRhdGFiYXNlL3RhYmxlIGxvY2ssIHdoaWNoIGlzIHByZXZlbnRpbmcgdGhlIGNoYW5uZWwgZnJvbSBzdG9wcGluZy4gUGxlYXNlIGNoZWNrIGRhdGFiYXNlL3RhYmxlIGxvY2tzLCBpbmNsdWRpbmcgdGhlIG9uZXMgY3JlYXRlZCBieSBiYWNrdXAgdG9vbHMuAEFVVE9FWFRFTkRfU0laRSBzaG91bGQgYmUgYSBtdWx0aXBsZSBvZiAldU0ASW5ub0RCOiAiJXMiIG5vdCBhbGxvd2VkIHdpdGggZ2VuZXJhbCB0YWJsZXNwYWNlcwBBVVRPRVhURU5EX1NJWkUgdmFsdWUgc2hvdWxkIGJlIGJldHdlZW4gJXVNIGFuZCAldU0AQVVUT0VYVEVORF9TSVpFIGNsYXVzZSBpcyBub3QgdmFsaWQgZm9yICVzIHRhYmxlc3BhY2UuAFVzZXIgYWNjb3VudCAlcyBpcyBkaXJlY3RseSBvciBpbmRpcmVjdGx5IGdyYW50ZWQgdG8gdGhlIHJvbGUgJXMuIFRoZSBHUkFOVCB3b3VsZCBjcmVhdGUgYSBsb29wAEEgdGFibGUgbXVzdCBoYXZlIGF0IGxlYXN0IG9uZSB2aXNpYmxlIGNvbHVtbi4AQ29tcHJlc3Npb24gZmFpbGVkIHdpdGggdGhlIGZvbGxvd2luZyBlcnJvciA6ICVzAFRoZSBwYXJhbWV0ZXIgbmV0d29ya19uYW1lc3BhY2UgaXMgcmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UuIFBsZWFzZSB1c2UgdGhlIENIQU5HRSBSRVBMSUNBVElPTiBTT1VSQ0UgY29tbWFuZCB0byBzZXQgY2hhbm5lbCBuZXR3b3JrX25hbWVzcGFjZSBwYXJhbWV0ZXIuAFRoZSBjbGllbnQgd2FzIGRpc2Nvbm5lY3RlZCBieSB0aGUgc2VydmVyIGJlY2F1c2Ugb2YgaW5hY3Rpdml0eS4gU2VlIHdhaXRfdGltZW91dCBhbmQgaW50ZXJhY3RpdmVfdGltZW91dCBmb3IgY29uZmlndXJpbmcgdGhpcyBiZWhhdmlvci4ASW52YWxpZCBjYXN0IGZyb20gJXMgdG8gJXMuAEludmFsaWQgY2FzdCBmcm9tICVzIHRvICVzLiBBIHBvbHlnb24gcmluZyBpcyBpbiB0aGUgd3JvbmcgZGlyZWN0aW9uLgBBcmd1bWVudHMgdG8gZnVuY3Rpb24gJXMgY29udGFpbnMgZ2VvbWV0cmllcyB3aXRoIGRpZmZlcmVudCBTUklEczogJXUgYW5kICV1LiBBbGwgZ2VvbWV0cmllcyBtdXN0IGhhdmUgdGhlIHNhbWUgU1JJRC4AS2V5cmluZyByZWxvYWQgZmFpbGVkLiBQbGVhc2UgY2hlY2sgZXJyb3IgbG9nIGZvciBtb3JlIGRldGFpbHMuAFRhYmxlc3BhY2UgJyUuMTkycycgaXMgaW52YWxpZCBmb3IgU0RJIG9wZXJhdGlvbnMuAFZhbHVlIHRvbyBsb25nIHNldHRpbmcgU09VUkNFX0NPTVBSRVNTSU9OX0FMR09SSVRITVMgb3B0aW9uIHRvIGEgJWQgY2hhcnMgbG9uZyBzdHJpbmcgZm9yIGNoYW5uZWwgJyUuMTkycycuAEEgZGVwcmVjYXRlZCBUTFMgdmVyc2lvbiAlcyBpcyBlbmFibGVkIGZvciBjaGFubmVsICVzLiBQbGVhc2UgdXNlIFRMU3YxLjIgb3IgaGlnaGVyLgBDSEFOR0UgUkVQTElDQVRJT04gU09VUkNFIFRPIEFTU0lHTl9HVElEU19UT19BTk9OWU1PVVNfVFJBTlNBQ1RJT05TID0gPFVVSUQ+IGNhbm5vdCBiZSBleGVjdXRlZCBiZWNhdXNlIHRoZSBVVUlEIHZhbHVlIGlzIGVxdWFsIHRvIHRoZSBncm91cF9yZXBsaWNhdGlvbl92aWV3X2NoYW5nZV91dWlkLgBSZXBsaWNhdGlvbiAnJS4xOTJzJyBpcyBjb25maWd1cmVkIHdpdGggQVNTSUdOX0dUSURTX1RPX0FOT05ZTU9VU19UUkFOU0FDVElPTlMgPSA8VVVJRD4gd2hlcmUgdGhlIFVVSUQgdmFsdWUgaXMgZXF1YWwgdG8gdGhlIGdyb3VwX3JlcGxpY2F0aW9uX3ZpZXdfY2hhbmdlX3V1aWQAVW5hYmxlIHRvIHJldHJpZXZlIGdyb3VwX3JlcGxpY2F0aW9uX3ZpZXdfY2hhbmdlX3V1aWQgdmFyaWFibGUgZHVyaW5nIHNlcnZlciBjaGVja3Mgb24gcmVwbGljYXRpb24gb3BlcmF0aW9ucy4AQm90aCBhdWRpdF9sb2dfbWF4X3NpemUgYW5kIGF1ZGl0X2xvZ19wcnVuZV9zZWNvbmRzIGFyZSBzZXQgdG8gbm9uLXplcm8uIGF1ZGl0X2xvZ19tYXhfc2l6ZSB0YWtlcyBwcmVjZWRlbmNlIGFuZCBhdWRpdF9sb2dfcHJ1bmVfc2Vjb25kcyBpcyBpZ25vcmVkAGF1ZGl0X2xvZ19yb3RhdGVfb25fc2l6ZSBpcyBub3QgZ3JhbnVsYXIgZW5vdWdoIGZvciB0aGUgdmFsdWUgb2YgYXVkaXRfbG9nX21heF9zaXplIHN1cHBsaWVkLiBTaG91bGQgYmUgYXQgbGVhc3QgJWQgdGltZXMgc21hbGxlci4AQ3JlYXRlL0FsdGVyIHVzZXIgaGFzIGZhaWxlZCwgQ29uZmlndXJlZCB1c2VyIHJlYWxtIGFzIGF1dGhlbnRpY2F0aW9uIHN0cmluZyBpcyBlbXB0eSwgUGxlYXNlIG1ha2Ugc3VyZSB0byBjb25maWd1cmUgYXV0aGVudGljYXRpb24gc3RyaW5nIGFzIHVzZXIgcmVhbG0uAENhbm5vdCBpbnN0YWxsIHRoZSAlLjE5MnMgcGx1Z2luIHdoZW4gdGhlICUuMTkycyBwbHVnaW4gaXMgaW5zdGFsbGVkLgAlZCBlcnJvciBsb2dnaW5nIGNvbXBvbmVudChzKSBmYWlsZWQgdG8gZmx1c2guIEZvciBmaWxlLWJhc2VkIGxvZ3MgdGhpcyBjYW4gaGFwcGVuIHdoZW4gdGhlIHBhdGggb3IgcGVybWlzc2lvbnMgb2YgdGhlIGxvZy1maWxlIGhhdmUgY2hhbmdlZC4gRmFpbHVyZSB0byBmbHVzaCBmaWxlZC1iYXNlZCBsb2dzIG1heSBhZmZlY3QgbG9nLXJvdGF0aW9uLgBUaGUgdW50aWwgY2xhdXNlIFNRTF9BRlRFUl9NVFNfR0FQUyBpcyBiZWluZyB1c2VkIGZvciBjaGFubmVsICclLjE5MnMnIHdoZW4gR1RJRF9NT0RFID0gT04gYW5kIFNPVVJDRV9BVVRPX1BPU0lUSU9OPTEgbWVhbmluZyB0aGUgc2VydmVyIGRpZCBub3QgY29tcHV0ZSBpbnRlcm5hbGx5IHdoYXQgZ2FwcyBtYXkgZXhpc3QgaW4gdGhlIHJlbGF5IGxvZyB0cmFuc2FjdGlvbiBleGVjdXRpb24uIFRvIGNsb3NlIGFueSBleGVjdXRpb24gZ2FwcyB1c2UgZWl0aGVyIHRoZSBTUUxfQkVGT1JFX0dUSURTIG9yIFNRTF9BRlRFUl9HVElEUyB1bnRpbCBjbGF1c2UuAEludmFsaWQgdGFyZ2V0IGZvciBhc3NpZ25tZW50IGluIElOU0VSVCBvciBVUERBVEUgc3RhdGVtZW50ICclLjE5MnMnLgBUaGlzIG9wZXJhdGlvbiBjYW5ub3QgYmUgcGVyZm9ybWVkIG9uIGEgR3JvdXAgUmVwbGljYXRpb24gc2Vjb25kYXJ5IG1lbWJlciwgaXQgbXVzdCBiZSBkb25lIG9uIHRoZSBncm91cCBwcmltYXJ5LgBVbmFibGUgdG8gcHJvcGFnYXRlIHRoZSBTT1VSQ0VfQ09OTkVDVElPTl9BVVRPX0ZBSUxPVkVSIHZhbHVlIGZvciBjaGFubmVsICclcycgdG8gZ3JvdXAgcmVwbGljYXRpb24gbWVtYmVycy4gUGxlYXNlIHJldHJ5IHRoZSBvcGVyYXRpb24uAGF1ZGl0X2xvZ19mb3JtYXRfdW5peF90aW1lc3RhbXAgaXMgYXBwbGljYWJsZSBvbmx5IHdoZW4gYXVkaXRfbG9nX2Zvcm1hdCA9IEpTT04uAEludmFsaWQgcGx1Z2luICIlcyIgc3BlY2lmaWVkIGFzICVkIGZhY3RvciBkdXJpbmcgIiVzIi4ASURFTlRJRklFRCBCWSBjbGF1c2UgZHVyaW5nICIlcyIgbm90IHN1cHBvcnRlZCBmb3IgcGx1Z2luICIlcyIuAFRoaXMgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHBsdWdpbiAiJXMiLgBBdXRoZW50aWNhdGlvbiBwbHVnaW4gcmVxdWlyZXMgcmVnaXN0cmF0aW9uLiBQbGVhc2UgcmVmZXIgQUxURVIgVVNFUiBzeW50YXggb3Igc2V0IC0tZmlkby1yZWdpc3Rlci1mYWN0b3IgY29tbWFuZCBsaW5lIG9wdGlvbiB0byBkbyByZWdpc3RyYXRpb24uACVkIGZhY3RvciBhdXRoZW50aWNhdGlvbiBtZXRob2QgZXhpc3RzLiBQbGVhc2UgZG8gQUxURVIgVVNFUi4uLiBEUk9QICVkIGZhY3RvciBiZWZvcmUgZG9pbmcgdGhpcyBvcGVyYXRpb24gT1IgZG8gQUxURVIgVVNFUi4uLiBNT0RJRlkgJWQgZmFjdG9yLi4uIHRvIG1vZGlmeSBleGlzdGluZyAlZCBmYWN0b3IgYXV0aGVudGljYXRpb24gbWV0aG9kLgAlZCBmYWN0b3IgYXV0aGVudGljYXRpb24gbWV0aG9kIGRvZXNuJ3QgZXhpc3QuIFBsZWFzZSBkbyBBTFRFUiBVU0VSLi4uIEFERCAlZCBmYWN0b3IuLi4gYmVmb3JlIGRvaW5nIHRoaXMgb3BlcmF0aW9uLgAlZCBmYWN0b3IgYXV0aGVudGljYXRpb24gbWV0aG9kIGRvZXMgbm90IG1hdGNoIGFnYWluc3QgYXV0aGVudGljYXRpb24gcG9saWN5LiBQbGVhc2UgcmVmZXIgQEBhdXRoZW50aWNhdGlvbl9wb2xpY3kgc3lzdGVtIHZhcmlhYmxlLgBUaGUgcmVnaXN0cmF0aW9uIGZvciAlZCBmYWN0b3IgYXV0aGVudGljYXRpb24gbWV0aG9kIGlzIGFscmVhZHkgY29tcGxldGVkLiBZb3UgY2Fubm90IHBlcmZvcm0gcmVnaXN0cmF0aW9uIG11bHRpcGxlIHRpbWVzLgBUaGUgcmVnaXN0cmF0aW9uIG9wZXJhdGlvbiBpcyBub3QgYWxsb3dlZCBmb3IgdXNlciAnJXMnQCclcycuIFRoZSBvcGVyYXRpb24gY2FuIG9ubHkgYmUgcGVyZm9ybWVkIGluIHVzZXIncyBvd24gc2Vzc2lvbi4AQXV0aGVudGljYXRpb24gcGx1Z2luJ3MgcmVnaXN0cmF0aW9uIGZhaWxlZC4AJWQgZmFjdG9yIGF1dGhlbnRpY2F0aW9uIG1ldGhvZCBzaG91bGQgYmUgYWRkZWQgYmVmb3JlICVkIGZhY3RvciBhdXRoZW50aWNhdGlvbiBtZXRob2QuAEF1dGhlbnRpY2F0aW9uIGZhY3RvciBzaG91bGQgYmUgZGlmZmVyZW50LgBUaGUgb3BlcmF0aW9uICIlcyIgY2Fubm90IGJlIHBlcmZvcm1lZCBmb3IgdXNlciAnJXMnQCclcycgY29uZmlndXJlZCB0byBjb25uZWN0IHdpdGhvdXQgYSBwYXNzd29yZC4AR1RJRF9PTkxZIGNhbm5vdCBiZSBlbmFibGVkIGZvciByZXBsaWNhdGlvbiBjaGFubmVsICclLjE5MnMnLiBZb3UgbmVlZCBHVElEX01PREUgPSBPTiwgU09VUkNFX0FVVE9fUE9TSVRJT04gPSAxIGFuZCBSRVFVSVJFX1JPV19GT1JNQVQgPSAxLgBSRVFVSVJFX1JPV19GT1JNQVQgY2Fubm90IGJlIGRpc2FibGVkIGZvciByZXBsaWNhdGlvbiBjaGFubmVsICclLjE5MnMnIHdoZW4gR1RJRF9PTkxZPTEuAFNPVVJDRV9BVVRPX1BPU0lUSU9OIGNhbm5vdCBiZSBkaXNhYmxlZCBmb3IgcmVwbGljYXRpb24gY2hhbm5lbCAnJS4xOTJzJyB3aGVuIEdUSURfT05MWT0xLgBXaGVuIGRpc2FibGluZyBHVElEX09OTFkgYW5kIFNPVVJDRV9BVVRPX1BPU0lUSU9OIEZPUiBDSEFOTkVMICclLjE5MnMnIHlvdSBtdXN0IHByb3ZpZGUgU09VUkNFX0xPR19GSUxFIGFuZCBTT1VSQ0VfTE9HX1BPUyBhcyBzb3VyY2UgcG9zaXRpb25zIGFyZSBpbnZhbGlkLgBXaGVuIGRpc2FibGluZyBTT1VSQ0VfQVVUT19QT1NJVElPTiBGT1IgQ0hBTk5FTCAnJS4xOTJzJyB5b3UgbXVzdCBwcm92aWRlIFNPVVJDRV9MT0dfRklMRSBhbmQgU09VUkNFX0xPR19QT1MgYXMgc291cmNlIHBvc2l0aW9ucyBhcmUgaW52YWxpZC4AV2hlbiBjb25maWd1cmluZyBhIGdyb3VwIHJlcGxpY2F0aW9uIGNoYW5uZWwgeW91IG11c3QgZG8gaXQgd2hlbiBHVElEX01PREUgPSBPTi4AUmVwbGljYXRpb24gY2Fubm90IHN0YXJ0JS4xOTJzIHdpdGggR1RJRF9PTkxZID0gMSBhcyB0aGlzIHNlcnZlciB1c2VzIEBAR0xPQkFMLkdUSURfTU9ERSA8PiBPTi4AVGhlIHJlcGxpY2F0aW9uIHBvc2l0aW9ucyByZWxhdGl2ZSB0byB0aGUgc291cmNlIG1heSBiZSBvdXQtb2YtZGF0ZSBvbiBjaGFubmVsICclLjE5MnMnLCBkdWUgdG8gdGhlIHVzZSBvZiBHVElEX09OTFk9MS4gVGhlIG91dC1vZi1kYXRlIHBvc2l0aW9ucyBjYW4gc3RpbGwgYmUgdXNlZCBpbiBzb21lIGNhc2VzIHNvLCBpbiBvcmRlciB0byB1cGRhdGUgdGhlbSwgd2Ugc3VnZ2VzdCB0aGF0IHlvdSBzdGFydCB0aGUgcmVwbGljYXRpb24gdG8gcmVjZWl2ZSBhbmQgYXBwbHkgYXQgbGVhc3Qgb25lIHRyYW5zYWN0aW9uLCB3aGljaCB3aWxsIHNldCB0aGUgcG9zaXRpb25zIHRvIHZhbGlkIHZhbHVlcy4AU1NMIGZpcHMgbW9kZSBlcnJvcjogJXMAJXM9JWxsdSBpcyBvdXRzaWRlIHRoZSB2YWxpZCByYW5nZSBbJWxsdSwlbGx1XS4gJWxsdSB3aWxsIGJlIHVzZWQuAE1BVENIIGRvZXMgbm90IHN1cHBvcnQgUk9MTFVQIGNvbHVtbnMuAE1pc3NpbmcgbG9jYWxlIHJlc291cmNlIGluIHJlZ3VsYXIgZXhwcmVzc2lvbiBsaWJyYXJ5LgBSZWd1bGFyIGV4cHJlc3Npb24gbGlicmFyeSB1c2VkIGRlZmF1bHQgKHJvb3QpIGxvY2FsZS4ATWlzc2luZyBkYXRhIGZpbGUgaW4gcmVndWxhciBleHByZXNzaW9uIGxpYnJhcnkuACclLS42NHMnIGlzIGEgY29sbGF0aW9uIG9mIHRoZSBkZXByZWNhdGVkIGNoYXJhY3RlciBzZXQgJXMuIFBsZWFzZSBjb25zaWRlciB1c2luZyAlcyB3aXRoIGFuIGFwcHJvcHJpYXRlIGNvbGxhdGlvbiBpbnN0ZWFkLgBUaGUgJXMgd2FzIGNhbGxlZCB3aGVuIHRoZXJlIHdhcyBhbHJlYWR5IGFub3RoZXIgY29uY3VycmVudCBjYWxsIHRvIHRoaXMgcHJvY2VkdXJlLiBObyBhY3Rpb24gd2FzIHRha2VuLiBXYWl0IGZvciBvdGhlciBjYWxscyB0byAlcyB0byBmaW5pc2ggYmVmb3JlIHJldHJ5aW5nLgBDb25uZWN0aW9uIGNsb3NlZC4gR2xvYmFsIGNvbm5lY3Rpb24gbWVtb3J5IGxpbWl0ICVsbHUgYnl0ZXMgZXhjZWVkZWQuIENvbnN1bWVkICVsbHUgYnl0ZXMuAENvbm5lY3Rpb24gY2xvc2VkLiBDb25uZWN0aW9uIG1lbW9yeSBsaW1pdCAlbGx1IGJ5dGVzIGV4Y2VlZGVkLiBDb25zdW1lZCAlbGx1IGJ5dGVzLgBOZWVkIHRvIHJlYnVpbGQgdGhlIHRhYmxlIHRvIGNoYW5nZSBjb2x1bW4gdHlwZQBUaGlzIGZ1bmN0aW9uICclLS4xOTJzJyBoYXMgdGhlIHNhbWUgbmFtZSBhcyBhIGxvYWRhYmxlIGZ1bmN0aW9uIChVREYpLiBUbyBpbnZva2UgdGhlIHN0b3JlZCBmdW5jdGlvbiwgaXQgaXMgbmVjZXNzYXJ5IHRvIHF1YWxpZnkgaXQgd2l0aCB0aGUgc2NoZW1hIG5hbWUuAENvdWxkIG5vdCBwdXJnZSBiaW5hcnkgbG9ncyBzaW5jZSBhbm90aGVyIHNlc3Npb24gaXMgZXhlY3V0aW5nIExPQ0sgSU5TVEFOQ0UgRk9SIEJBQ0tVUC4gV2FpdCBmb3IgdGhhdCBzZXNzaW9uIHRvIHJlbGVhc2UgdGhlIGxvY2suAFRvbyBtYW55IHdpbmRvd3MgaW4gU0VMRUNUOiAlZC4gTWF4aW11bSBhbGxvd2VkIGlzICVkLiBVc2UgbmFtZWQgd2luZG93cyB0byBzaGFyZSB3aW5kb3dzIGJldHdlZW4gd2luZG93IGZ1bmN0aW9ucy4AJXMAQ29tbWVudCBmb3IgJXMgJyVzJyBjb250YWlucyBhbiBpbnZhbGlkICVzIGNoYXJhY3RlciBzdHJpbmc6ICclLjY0cycuAERlZmluaXRpb24gb2YgJXMgJyUtLjE5MnMuJS0uMTkycycgY29udGFpbnMgYW4gaW52YWxpZCAlcyBjaGFyYWN0ZXIgc3RyaW5nOiAnJS42NHMnLgBDYW4ndCBleGVjdXRlIHRoZSBnaXZlbiBjb21tYW5kIHdoZW4gQEBTRVNTSU9OLkdUSURfTkVYVCA9PSAnVVVJRDpOVU1CRVInLgBYQTogVGVtcG9yYXJ5IHRhYmxlcyBjYW5ub3QgYmUgYWNjZXNzZWQgaW5zaWRlIFhBIHRyYW5zYWN0aW9ucyB3aGVuIHhhX2RldGFjaF9vbl9wcmVwYXJlPU9OAE1heGltdW0gcm93IHZlcnNpb25zIHJlYWNoZWQgZm9yIHRhYmxlICVzLiBObyBtb3JlIGNvbHVtbnMgY2FuIGJlIGFkZGVkIG9yIGRyb3BwZWQgaW5zdGFudGx5LiBQbGVhc2UgdXNlIENPUFkvSU5QTEFDRS4AQ29sdW1uIGNhbid0IGJlIGFkZGVkIHdpdGggQUxHT1JJVEhNPUlOU1RBTlQgYXMgYWZ0ZXIgdGhpcyBtYXggcG9zc2libGUgcm93IHNpemUgY3Jvc3NlcyBtYXggcGVybWlzc2libGUgcm93IHNpemUuIFRyeSBBTEdPUklUSE09SU5QTEFDRS9DT1BZLgBBbGwgcXVlcmllcyBoYXZlIGJlZW4gYmxvY2tlZCB3aGlsZSBmdW5jdGlvbiAnZ3JvdXBfcmVwbGljYXRpb25fc2V0X2FzX3ByaW1hcnkoKScgaXMgZXhlY3V0aW5nLiBQbGVhc2UgcmVmZXIgdGltZW91dCBwYXJhbWV0ZXIgb2YgZnVuY3Rpb24gJ2dyb3VwX3JlcGxpY2F0aW9uX3NldF9hc19wcmltYXJ5KCknLgBEZWxpbWl0ZXIgJyVzJyBpbiBwb3NpdGlvbiAlZCBpbiBkYXRldGltZSB2YWx1ZSAnJXMnIGF0IHJvdyAlZCBpcyBkZXByZWNhdGVkLiBQcmVmZXIgdGhlIHN0YW5kYXJkICclYycuAERlbGltaXRlciAnJXMnIGluIHBvc2l0aW9uICVkIGluIGRhdGV0aW1lIHZhbHVlICclcycgYXQgcm93ICVkIGlzIHN1cGVyZmx1b3VzIGFuZCBpcyBkZXByZWNhdGVkLiBQbGVhc2UgcmVtb3ZlLgBDYW5ub3QgcGVyc2lzdCBTRU5TSVRJVkUgc3lzdGVtIHZhcmlhYmxlICclcycgYmVjYXVzZSBrZXlyaW5nIGNvbXBvbmVudCBzdXBwb3J0IGlzIHVuYXZhaWxhYmxlLgBTRU5TSVRJVkUgc3lzdGVtIHZhcmlhYmxlICclcycgd2FzIHBlcnNpc3RlZCB3aXRob3V0IGVuY3J5cHRpb24uIENvbnNpZGVyIHJlc3RhcnRpbmcgc2VydmVyIHdpdGgga2V5cmluZyBjb21wb25lbnQgc3VwcG9ydCB0byBwZXJzaXN0IFNFTlNJVElWRSB2YXJpYWJsZXMgc2VjdXJlbHkuAFRyaWdnZXIgJyUtLjE5MnMnIGFscmVhZHkgZXhpc3RzIG9uIHRoZSB0YWJsZSAnJS0uMTkycycuJyUtLjE5MnMnLgBUcmlnZ2VyICclLS4xOTJzJy4nJS0uMTkycycgYWxyZWFkeSBleGlzdHMgb24gYSBkaWZmZXJlbnQgdGFibGUuIFRoZSAnSUYgTk9UIEVYSVNUUycgY2xhdXNlIGlzIG9ubHkgc3VwcG9ydGVkIGZvciB0cmlnZ2VycyBhc3NvY2lhdGVkIHdpdGggdGhlIHNhbWUgdGFibGUuAFRoaXMgZnVuY3Rpb24gJyUtLjE5MnMnIGhhcyB0aGUgc2FtZSBuYW1lIGFzIGEgbmF0aXZlIGZ1bmN0aW9uLiBUaGUgJ0lGIE5PVCBFWElTVFMnIGNsYXVzZSBpcyBub3Qgc3VwcG9ydGVkIHdoaWxlIGNyZWF0aW5nIGEgbG9hZGFibGUgZnVuY3Rpb24gd2l0aCB0aGUgc2FtZSBuYW1lIGFzIGEgbmF0aXZlIGZ1bmN0aW9uLgBTRVQgUEFTU1dPUkQgaGFzIG5vIHNpZ25pZmljYW5jZSBmb3IgdXNlciAnJXMnQCclcycgYXMgdGhlIGF1dGhlbnRpY2F0aW9uIG1ldGhvZCB1c2VkIGRvZXNuJ3Qgc3RvcmUgYXV0aGVudGljYXRpb24gZGF0YSBpbiB0aGUgTXlTUUwgc2VydmVyLiBQbGVhc2UgY29uc2lkZXIgdXNpbmcgQUxURVIgVVNFUiBpbnN0ZWFkIGlmIHlvdSB3YW50IHRvIGNoYW5nZSBhdXRoZW50aWNhdGlvbiBwYXJhbWV0ZXJzLgBDYW5ub3QgcmVjb3ZlciBmcm9tIGRldGVjdF9vbmx5IGRvdWJsZXdyaXRlIGJ1ZmZlciBhcyBwYWdlICV1IGZyb20gYmF0Y2ggZG91Ymxld3JpdGUgZmlsZSBpcyBjb3JydXB0ZWQuAERhdGFiYXNlIHBhZ2UgY29ycnVwdGlvbiBvZiB0YWJsZXNwYWNlICVzIHNwYWNlX2lkOiAldSBwYWdlX251bTogJXUuIENhbm5vdCByZWNvdmVyIGl0IGZyb20gdGhlIGRvdWJsZXdyaXRlIGJ1ZmZlciBiZWNhdXNlIGl0IHdhcyB3cml0dGVuIGluIGRldGVjdF9vbmx5LWRvdWJsZXdyaXRlIG1vZGUuAExhdGl0dWRlIG9mIG9yaWdpbiBtdXN0IGJlIHdpdGhpbiBbLTkwLCA5MF0gZGVncmVlcywgc3BlY2lmaWVkIGluIHRoZSBTUlMgYW5ndWxhciB1bml0LgBMb25naXR1ZGUgb2Ygb3JpZ2luIG11c3QgYmUgd2l0aGluICgtMTgwLCAxODBdIGRlZ3JlZXMsIHNwZWNpZmllZCBpbiB0aGUgU1JTIGFuZ3VsYXIgdW5pdC4AVGhlIHNwYXRpYWwgcmVmZXJlbmNlIHN5c3RlbSBkZWZpbml0aW9uIGZvciBTUklEICV1IGNvbnRhaW5zIHVudXNlZCBwcm9qZWN0aW9uIHBhcmFtZXRlciAiJXMiLgBGYWlsZWQgdG8gZ2VuZXJhdGUgaW52aXNpYmxlIHByaW1hcnkga2V5LiBDb2x1bW4gJ215X3Jvd19pZCcgYWxyZWFkeSBleGlzdHMuAEZhaWxlZCB0byBnZW5lcmF0ZSBpbnZpc2libGUgcHJpbWFyeSBrZXkuIEF1dG8taW5jcmVtZW50IGNvbHVtbiBhbHJlYWR5IGV4aXN0cy4AQWx0ZXJpbmcgZ2VuZXJhdGVkIGludmlzaWJsZSBwcmltYXJ5IGtleSBjb2x1bW4gJ215X3Jvd19pZCcgaXMgbm90IGFsbG93ZWQuAFBsZWFzZSBkcm9wIHByaW1hcnkga2V5IGNvbHVtbiB0byBiZSBhYmxlIHRvIGRyb3AgZ2VuZXJhdGVkIGludmlzaWJsZSBwcmltYXJ5IGtleS4AR2VuZXJhdGluZyBhbiBpbnZpc2libGUgcHJpbWFyeSBrZXkgZm9yIGEgdGFibGUgY3JlYXRlZCB1c2luZyBDUkVBVEUgVEFCTEUgLi4uIFNFTEVDVCAuLi4gaXMgZGlzYWxsb3dlZCB3aGVuIGJpbmxvZ19mb3JtYXQ9U1RBVEVNRU5ULiBJdCBjYW5ub3QgYmUgZ3VhcmFudGVlZCB0aGF0IHRoZSBTRUxFQ1QgcmV0cmlldmVzIHJvd3MgaW4gdGhlIHNhbWUgb3JkZXIgb24gc291cmNlIGFuZCByZXBsaWNhLiBUaGVyZWZvcmUsIGl0IGNhbm5vdCBiZSBndWFyYW50ZWVkIHRoYXQgdGhlIHZhbHVlIGdlbmVyYXRlZCBmb3IgdGhlIGdlbmVyYXRlZCBpbXBsaWNpdCBwcmltYXJ5IGtleSBjb2x1bW4gd2lsbCBiZSB0aGUgc2FtZSBvbiBzb3VyY2UgYW5kIHJlcGxpY2EgZm9yIGFsbCByb3dzLiBVc2UgYmlubG9nX2Zvcm1hdD1ST1cgb3IgTUlYRUQgdG8gZXhlY3V0ZSB0aGlzIHN0YXRlbWVudC4AVGhlIG9wdGlvbiBleHBpcmVfbG9nc19kYXlzIGNhbm5vdCBiZSB1c2VkIHRvZ2V0aGVyIHdpdGggb3B0aW9uIGJpbmxvZ19leHBpcmVfbG9nc19zZWNvbmRzLiBUbyBzZXQgb25lLCBmaXJzdCB1bnNldCB0aGUgb3RoZXIgYnkgc2V0dGluZyBpdCB0byAwLgBSZWN1cnNpdmUgdGFibGUgcmVmZXJlbmNlIGluIEVYQ0VQVCBvciBJTlRFUlNFQ1Qgb3BlcmFuZCBpcyBub3QgYWxsb3dlZC4ARXJyb3Igd2hlbiB0cnlpbmcgdG8gZmV0Y2ggaW5mb3JtYXRpb24gZnJvbSBzZWN1cml0eSBjb250ZXh0IG9iamVjdCwgd2hlbiB0cnlpbmcgdG8gY29ubmVjdCB0aGUgc2VydmVyLgBFcnJvciBpbiBjb21tYW5kIHNlcnZpY2UgYmFja2VuZCBpbnRlcmZhY2UsIGJlY2F1c2Ugb2YgOiAiJXMiAFRoZSBQUklWSUxFR0VfQ0hFQ0tTX1VTRVIgZm9yIGNoYW5uZWwgJyUuMTkycycgd291bGQgbmVlZCBGSUxFIHByaXZpbGVnZSB0byBleGVjdXRlIGEgTE9BRCBEQVRBIElORklMRSBzdGF0ZW1lbnQgcmVwbGljYXRlZCBpbiBzdGF0ZW1lbnQgZm9ybWF0LiBDb25zaWRlciB1c2luZyBiaW5sb2dfZm9ybWF0PVJPVyBvbiBzb3VyY2UuIElmIHRoZSByZXBsaWNhdGVkIGV2ZW50cyBhcmUgdHJ1c3RlZCwgcmVjb3ZlciBmcm9tIHRoZSBmYWlsdXJlIGJ5IHRlbXBvcmFyaWx5IGdyYW50aW5nIEZJTEUgdG8gdGhlIFBSSVZJTEVHRV9DSEVDS1NfVVNFUi4AVGhlICdTRVQgR0xPQkFMIGdyb3VwX3JlcGxpY2F0aW9uX2ZvcmNlX21lbWJlcnM9JXMnIGNvbW1hbmQgZW5jb3VudGVyZWQgYSBmYWlsdXJlLiAlcwBVc2luZyAlcyBhcyB1bnF1b3RlZCBpZGVudGlmaWVyIGlzIGRlcHJlY2F0ZWQsIHBsZWFzZSB1c2UgcXVvdGVzIG9yIHJlbmFtZSB0aGUgaWRlbnRpZmllci4ATWF4IG51bWJlciBvZiBkdXBsaWNhdGUgcm93cyBpbiBJTlRFUlNFQ1QgQUxMIGV4Y2VlZGVkLgBRdWVyeSB0aHJlYWRzIGNvdW50KCV1KSBleGNlZWRzIHRyYW5zYWN0aW9uIHRocmVhZHMgbGltaXQoJXUpIHBlciBncm91cC4gUGxlYXNlIHVzZSBxdWVyeSB0aHJlYWRzIGNvdW50IHBlciBncm91cCBzbWFsbGVyIG9yIGVxdWFsIHRvIG1heCB0cmFuc2FjdGlvbiB0aHJlYWRzIGxpbWl0IHBlciBncm91cABJbnZhbGlkIHRpbWVzdGFtcCBmb3JtYXQgaW4gJXMgdWRmAFNIQVBFX1BSRURJQ1RJT04gVURGICVzIGdvdCBlcnJvciBiZWNhdXNlIG9mICVzLgBIZWlnaHQgcGFyYW1ldGVyIG11c3QgYmUgbm9uIG5lZ2F0aXZlLgBTY2FsaW5nIHBhcmFtZXRlciBtdXN0IGJlIG5vbiBuZWdhdGl2ZS4AWm9uZSB3aWR0aCBwYXJhbWV0ZXIgbXVzdCBiZSBhbiBpbnRlZ2VyIGJldHdlZW4gMS02MC4ATGF0aXR1ZGUgb2Ygb3JpZ2luIG11c3QgYmUgKy05MCBkZWdyZWVzLCBzcGVjaWZpZWQgaW4gdGhlIFNSUyBhbmd1bGFyIHVuaXQsIGluIFBvbGFyIFN0ZXJlb2dyYXBoaWMgKHZhcmlhbnQgQSkgcHJvamVjdGlvbiBtZXRob2QgKEVQU0c6OTgxMCkuAFRoZSBjbGllbnQgaXMgdXNpbmcgYSBkZXByZWNhdGVkIENMSUVOVF9OT19TQ0hFTUEgY2xpZW50IG9wdGlvbi4gQ0xJRU5UX05PX1NDSEVNQSB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4AVGFibGUgJyUtLjE5MnMnIGlzIG5vdCBlbXB0eS4AVGFibGUgJyUtLjE5MnMnIGhhcyBubyBwcmltYXJ5IGtleS4AVGFibGUgJyUtLjE5MnMnIGlzIGluIGEgc2hhcmVkIHRhYmxlc3BhY2UuAFRhYmxlICclLS4xOTJzJyBoYXMgaW5kZXhlcyBvdGhlciB0aGFuIHByaW1hcnkga2V5LgBbSU4gUFJJTUFSWSBLRVkgT1JERVJdIHNwZWNpZmllZCBidXQgZGF0YSBub3Qgc29ydGVkOiBMT0FEIEJVTEsgREFUQSBpbnRvIHRhYmxlICclLS4xOTJzJyBmYWlsZWQ6ICVzAEJ1bGsgZXhlY3V0b3IgZXJyb3I6ICVzAEJ1bGsgcmVhZGVyIGZhaWxlZCB0byBpbml0aWFsaXplIGxpYmN1cmwAQnVsayByZWFkZXIgZ290IGxpYmN1cmwgZXJyb3I6ICVzAEJ1bGsgcmVhZGVyIGdvdCBlcnJvciByZXNwb25zZSBmcm9tIHNlcnZlcjogJWxkAEJ1bGsgcmVhZGVyIGdvdCBlcnJvciBpbiBjb21tdW5pY2F0aW9uIHdpdGggc291cmNlIHNlcnZlciwgY2hlY2sgdGhlIGVycm9yIGxvZyBmb3IgYWRkaXRpb25hbCBkZXRhaWxzLgBCdWxrIGxvYWRlciBmYWlsZWQsIG15c3FsX2xvYWQtPmxvYWQgcmV0dXJuZWQgYW4gZXJyb3IsIGNoZWNrIHRoZSBlcnJvciBsb2cgZm9yIGFkZGl0aW9uYWwgZGV0YWlscy4AQ1NWIGNvbHVtbiB0b28gYmlnIGZvciBsZWZ0b3ZlciBidWZmZXIuAEJ1bGsgbG9hZGVyIGNvbXBvbmVudCBlcnJvcjogJXMAVGhlIGZpcnN0IGZpbGUgYmVpbmcgbG9hZGVkIGNvbnRhaW5lZCBsZXNzIGxpbmVzIHRoYW4gdGhlIGlnbm9yZSBjbGF1c2UATWlzc2luZyBFTkNMT1NFRCBCWSBjaGFyYWN0ZXIgYXQgcm93ICVsZCBpbiBmaWxlICclcycuIEFkZCBPUFRJT05BTExZIHRvIHRoZSBFTkNMT1NFRCBCWSBjbGF1c2UgdG8gYWxsb3cgdGhpcyBpbnB1dC4AVGhlIG51bWJlciBvZiBpbnB1dCBjb2x1bW5zIHRoYXQgbmVlZCB0byBiZSBidWZmZXJlZCBmb3IgcGFyc2luZyBleGNlZWRlZCBwcmVkZWZpbmVkIGJ1ZmZlciBtYXggc2l6ZSBmb3IgZmlsZSAnJXMnLgBUaGUgY29sdW1uIGRhdGEgdGhhdCBuZWVkZWQgdG8gYmUgY29waWVkIGR1ZSB0byBlc2NhcGVkIGNoYXJhY3RlcnMgZXhjZWVkZWQgdGhlIHNpemUgb2YgdGhlIGludGVybmFsIGNvcHkgYnVmZmVyIGZvciBmaWxlICclcycuAFVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0IGZvdW5kIGF0IHJvdyAlbGQgaW4gZmlsZSAnJXMnLiBEYXRhIGZvciBzb21lIGNvbHVtbnMgaXMgbWlzc2luZy4AVW5leHBlY3RlZCByb3cgdGVybWluYXRvciBmb3VuZCBhdCByb3cgJWxkIGluIGZpbGUgJyVzJy4gRGF0YSBmb3Igc29tZSBjb2x1bW5zIGlzIG1pc3NpbmcuAFVuZXhwZWN0ZWQgY2hhcmFjdGVycyBhZnRlciBlbmRpbmcgRU5DTE9TRUQgQlkgY2hhcmFjdGVyIGZvdW5kIGF0IHJvdyAlbGQgaW4gZmlsZSAnJXMnLgBVbmV4cGVjdGVkIGNoYXJhY3RlcnMgYWZ0ZXIgTlVMTCBlc2NhcGUgKE4pIGZvdW5kIGF0IHJvdyAlbGQgaW4gZmlsZSAnJXMnLgBVbmV4cGVjdGVkIGNoYXJhY3RlcnMgYWZ0ZXIgY29sdW1uIHRlcm1pbmF0b3IgZm91bmQgYXQgcm93ICVsZCBpbiBmaWxlICclcycuAFVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0IGZvdW5kIGF0IHJvdyAlbGQgaW4gZmlsZSAnJXMnIHJlc3VsdGluZyBpbiBpbmNvbXBsZXRlIGVzY2FwZSBzZXF1ZW5jZS4ATE9BRCBCVUxLIERBVEEgaW50byB0YWJsZSAnJS0uMTkycycgZmFpbGVkOiAlcwBJbmNvcnJlY3QgJS0uMzJzIHZhbHVlOiAnJS0uMTI4cycgZm9yIGNvbHVtbiAnJS0uMTkycycgYXQgcm93ICVsZCBpbiBmaWxlICclLS4xOTJzJwBOVUxMIHN1cHBsaWVkIHRvIE5PVCBOVUxMIGNvbHVtbiAnJXMnIGF0IHJvdyAlbGQgaW4gZmlsZSAnJS0uMTkycycAT24gYSBHcm91cCBSZXBsaWNhdGlvbiBjaGFubmVsLCBzZXR0aW5nIFJFUVVJUkVfVEFCTEVfUFJJTUFSWV9LRVlfQ0hFQ0sgdG8gJ0dFTkVSQVRFJyBpcyBub3QgYWxsb3dlZC4AQ2Fubm90IGNoYW5nZSB0aGUgJyVzJyBzeXN0ZW0gdmFyaWFibGUgaW4gcmVhZC1vbmx5IG1vZGUuAENvbHVtbiBjYW4ndCBiZSBhZGRlZCBvciBkcm9wcGVkIHdpdGggQUxHT1JJVEhNPUlOU1RBTlQgYXMgZWl0aGVyIG1heCBwb3NzaWJsZSByb3cgc2l6ZSBhbHJlYWR5IGNyb3NzZXMgbWF4IHBlcm1pc3NpYmxlIHJvdyBzaXplIG9yIG1heSBjcm9zcyBpdCBhZnRlciBhZGQuIFRyeSBBTEdPUklUSE09SU5QTEFDRS9DT1BZLgBDb2x1bW4gY2FuJ3QgYmUgYWRkZWQgdG8gJyVzJyB3aXRoIEFMR09SSVRITT1JTlNUQU5UIGFueW1vcmUuIFBsZWFzZSB0cnkgQUxHT1JJVEhNPUlOUExBQ0UvQ09QWS4ARmFpbGVkIHRvIHNldCBwZXJzaXN0ZWQgb3B0aW9ucy4AVGhlIHZhbHVlIHN1cHBsaWVkIGZvciAlcyBpbiB0aGUgU0VUIGxpc3QgY2Fubm90IGJlIG51bGwAVGhlIGFzc2lnbm1lbnQgb2YgJXMgaW4gU0VUIGRvZXNuJ3QgbWF0Y2ggYW55IG9mIHRoZSB2YXJpYWJsZXMgcmVnaXN0ZXJlZCBieSB0aGUgY29tcG9uZW50KHMpACclcycgaXMgYSB1c2VyIGRlZmluZWQgY29sbGF0aW9uLiBVc2VyIGRlZmluZWQgY29sbGF0aW9ucyBhcmUgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuIENvbnNpZGVyIHVzaW5nIGEgY29tcGlsZWQgY29sbGF0aW9uIGluc3RlYWQuAFVzZXItbGV2ZWwgbG9jayBuYW1lICclLS4xOTJzJyBzaG91bGQgbm90IGV4Y2VlZCAlZCBjaGFyYWN0ZXJzLgBJbW1lZGlhdGVseSBzdGFydGluZyB0aGUgdmVyc2lvbiBjb21tZW50IGFmdGVyIHRoZSB2ZXJzaW9uIG51bWJlciBpcyBkZXByZWNhdGVkIGFuZCBtYXkgY2hhbmdlIGJlaGF2aW9yIGluIGEgZnV0dXJlIHJlbGVhc2UuIFBsZWFzZSBpbnNlcnQgYSB3aGl0ZS1zcGFjZSBjaGFyYWN0ZXIgYWZ0ZXIgdGhlIHZlcnNpb24gbnVtYmVyLgBUaGUgbmV3IHBhc3N3b3JkIG11c3QgaGF2ZSBhdCBsZWFzdCAnJXUnIGNoYXJhY3RlcnMgdGhhdCBhcmUgZGlmZmVyZW50IGZyb20gdGhlIG9sZCBwYXNzd29yZC4gSXQgaGFzIG9ubHkgJyV1JyBjaGFyYWN0ZXIocykgZGlmZmVyZW50LiBGb3IgdGhpcyBjb21wYXJpc29uLCB1cHBlcmNhc2UgbGV0dGVycyBhbmQgbG93ZXJjYXNlIGxldHRlcnMgYXJlIGNvbnNpZGVyZWQgdG8gYmUgZXF1YWwuACclcycgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuICVzAFBhcnNlciBzYXc6ICVzAENhbid0IGNyZWF0ZSB0aHJlYWQgdG8gaGFuZGxlIGJvb3RzdHJhcCAoZXJybm86ICVkKQBUcmlnZ2VyIGZvciB0YWJsZSAnJXMnLiclcyc6IGludmFsaWQgJXMgdmFsdWUgKCVzKS4AV3JvbmcgdHJlZTogJXMARXJyb3I6IEludmFsaWQgJXMAU2tpcCByZS1wb3B1bGF0aW5nIGNvbGxhdGlvbnMgYW5kIGNoYXJhY3RlciBzZXRzIHRhYmxlcyBpbiAlcyVzcmVhZC1vbmx5IG1vZGUuAFVzaW5nIGRhdGEgZGljdGlvbmFyeSB3aXRoIHZlcnNpb24gJyVkJy4ASW5zdGFsbGVkIGRhdGEgZGljdGlvbmFyeSB3aXRoIHZlcnNpb24gJWQARGF0YSBEaWN0aW9uYXJ5IHZlcnNpb24gJyVkJyBub3Qgc3VwcG9ydGVkLgBGYWlsZWQgdG8gc2V0IHN5c2xvZyBmYWNpbGl0eSB0byAiJXMiLCBzZXR0aW5nIHRvICIlcyIgKCVkKSBpbnN0ZWFkLgBDYW5ub3Qgb3BlbiAlczsgY2hlY2sgcHJpdmlsZWdlcywgb3IgcmVtb3ZlIHN5c2V2ZW50bG9nIGZyb20gLS1sb2ctZXJyb3Itc2VydmljZXMhACBlaXRoZXIgcmVzdGFydCB0aGUgcXVlcnkgbG9nZ2luZyBieSB1c2luZyAiU0VUIEdMT0JBTCBTTE9XX1FVRVJZX0xPRz1PTiIgb3IAIGVpdGhlciByZXN0YXJ0IHRoZSBxdWVyeSBsb2dnaW5nIGJ5IHVzaW5nICJTRVQgR0xPQkFMIEdFTkVSQUxfTE9HPU9OIiBvcgBGYWlsZWQgdG8gd3JpdGUgdG8gJXM6ICVzAFdoaWxlIGluaXRpYWxpemluZyBkdW1wIHRocmVhZCBmb3IgcmVwbGljYSB3aXRoICVzIDwlcz4sIGZvdW5kIGEgem9tYmllIGR1bXAgdGhyZWFkIHdpdGggdGhlIHNhbWUgJXMuIFNvdXJjZSBpcyBraWxsaW5nIHRoZSB6b21iaWUgZHVtcCB0aHJlYWQoJXUpLgBHdGlkIHRhYmxlIGlzIG5vdCByZWFkeSB0byBiZSB1c2VkLiBUYWJsZSAnJXMuJXMnIGNhbm5vdCBiZSBvcGVuZWQuAFN5c3RlbSBzY2hlbWEgZGlyZWN0b3J5IGRvZXMgbm90IGV4aXN0LgBFcnJvciBpbiBpbml0aWFsaXppbmcgZGljdGlvbmFyeSwgdXBncmFkZSB3aWxsIGRvIGEgY2xlYW51cCBhbmQgZXhpdABWaWV3ICclcycuJyVzJzogdW5rbm93biBjaGFyc2V0IG5hbWUgYW5kL29yIGNvbGxhdGlvbiBuYW1lIChjbGllbnQ6ICclcyc7IGNvbm5lY3Rpb246ICclcycpLgBFcnJvciBpbiBhbGxvY2F0aW5nIG1lbW9yeSBmb3IgY2hhcmFjdGVyIHNldCBuYW1lIGZvciB2aWV3ICVzLiVzLgBEYXRhIERpY3Rpb25hcnkgaW5pdGlhbGl6YXRpb24gZmFpbGVkLgBGYWlsZWQgdG8gdXBkYXRlIHBsdWdpbiBtZXRhZGF0YSBpbiBkaWN0aW9uYXJ5IHRhYmxlcy4ARmFpbGVkIHRvIFBvcHVsYXRlIEREIHRhYmxlcy4ARXJyb3IgaW4gQ3JlYXRpbmcgVmlldyAlcy4lcwBVbmFibGUgdG8gc3RhcnQgc2VydmVyLiBDYW5ub3QgZmluZCB0aGUgbWV0YSBkYXRhIGZvciBkYXRhIGRpY3Rpb25hcnkgdGFibGUgJyVzJy4ARGljdGlvbmFyeSBjYWNoZSBub3QgZW1wdHkgYXQgc2h1dGRvd24uAERpY3Rpb25hcnkgb2JqZWN0cyB1c2VkIGJ1dCBub3QgcmVsZWFzZWQuAERpY3Rpb25hcnkgb2JqZWN0cyBsZWZ0IGluIGRlZmF1bHQgcmVsZWFzZXIuAERpY3Rpb25hcnkgb2JqZWN0IGF1dG8gcmVsZWFzZXIgbm90IGRlbGV0ZWQARXJyb3I6IFVuYWJsZSB0byBjcmVhdGUgcHJpbWFyeSBvYmplY3Qga2V5AEVycm9yOiBVbmFibGUgdG8gY3JlYXRlIG9iamVjdCBrZXkAQ2FuJ3QgY3JlYXRlIGhhbmRsZV9tYW5hZ2VyIHRocmVhZCAoZXJybm89ICVkKQBJdCBpcyBub3QgcG9zc2libGUgdG8gY2hhbmdlIHRoZSB0eXBlIG9mIHRoZSByZWxheSBsb2cncyByZXBvc2l0b3J5IGJlY2F1c2UgdGhlcmUgYXJlIHdvcmtlcnMnIHJlcG9zaXRvcmllcyB3aXRoIGdhcHMuIFBsZWFzZSwgZml4IHRoZSBnYXBzIGZpcnN0IGJlZm9yZSBkb2luZyBzdWNoIGNoYW5nZS4Ab3B0aW9uICdlbmZvcmNlLWd0aWQtY29uc2lzdGVuY3knOiB2YWx1ZSAnJXMnIHdhcyBub3QgcmVjb2duaXplZC4gU2V0dGluZyBlbmZvcmNlLWd0aWQtY29uc2lzdGVuY3kgdG8gT0ZGLgBDaGFuZ2VkIEVORk9SQ0VfR1RJRF9DT05TSVNURU5DWSBmcm9tICVzIHRvICVzLgBDaGFuZ2VkIEdUSURfTU9ERSBmcm9tICVzIHRvICVzLgAlcyBpcyBzZXQgdG8gYSBkaXNhYmxlZCBzdG9yYWdlIGVuZ2luZSAlcy4ARGVidWcgc3luYyBwb2ludHMgaGl0OiAgICAgICAgICAgICAgICAgICAlMjJzAERlYnVnIHN5bmMgcG9pbnRzIGV4ZWN1dGVkOiAgICAgICAgICAgICAgJTIycwBEZWJ1ZyBzeW5jIHBvaW50cyBtYXggYWN0aXZlIHBlciB0aHJlYWQ6ICUyMnMARGVidWcgU3luYyBGYWNpbGl0eSBkaXNhYmxlZCBkdWUgdG8gbGFjayBvZiBtZW1vcnkuAENhbid0IGluaXQgdGMgbG9nAEV2ZW50IFNjaGVkdWxlcjogQ2FuJ3QgaW5pdGlhbGl6ZSB0aGUgZXhlY3V0aW9uIHF1ZXVlAEV2ZW50IFNjaGVkdWxlcjogUHVyZ2luZyB0aGUgcXVldWUuICV1IGV2ZW50cwBFdmVudCBTY2hlZHVsZXI6IExhc3QgZXhlY3V0aW9uIG9mICVzLiVzLiAlcwAlKnMARXZlbnQgU2NoZWR1bGVyOiBbJXNdLlslcy4lc10gZXZlbnQgZXhlY3V0aW9uIGZhaWxlZC4ARXZlbnQgU2NoZWR1bGVyOiBDYW5ub3QgaW5pdGlhbGl6ZSB0aGUgc2NoZWR1bGVyIHRocmVhZABFdmVudCBTY2hlZHVsZXI6IFN0b3BwZWQARXZlbnQgc2NoZWR1bGVyOiBGYWlsZWQgdG8gc3RhcnQgc2NoZWR1bGVyLCBDYW4gbm90IGNyZWF0ZSB0aHJlYWQgZm9yIGV2ZW50IHNjaGVkdWxlciAoZXJybm89JWQpAEV2ZW50IFNjaGVkdWxlcjogV2FpdGluZyBmb3IgdGhlIHNjaGVkdWxlciB0aHJlYWQgdG8gcmVwbHkARXZlbnQgU2NoZWR1bGVyOiBzY2hlZHVsZXIgdGhyZWFkIHN0YXJ0ZWQgd2l0aCBpZCAldQBFdmVudCBTY2hlZHVsZXI6IFNlcmlvdXMgZXJyb3IgZHVyaW5nIGdldHRpbmcgbmV4dCBldmVudCB0byBleGVjdXRlLiBTdG9wcGluZwBFdmVudF9zY2hlZHVsZXI6OmV4ZWN1dGVfdG9wOiBDYW4gbm90IGNyZWF0ZSBldmVudCB3b3JrZXIgdGhyZWFkIChlcnJubz0lZCkuIFN0b3BwaW5nIGV2ZW50IHNjaGVkdWxlcgBFdmVudCBTY2hlZHVsZXI6IEtpbGxpbmcgdGhlIHNjaGVkdWxlciB0aHJlYWQsIHRocmVhZCBpZCAldQBJUCBhZGRyZXNzICclcycgY291bGQgbm90IGJlIHJlc29sdmVkOiAlcwBIb3N0IG5hbWUgJyVzJyBjb3VsZCBub3QgYmUgcmVzb2x2ZWQ6ICVzAElQIGFkZHJlc3MgJyVzJyBoYXMgYmVlbiByZXNvbHZlZCB0byB0aGUgaG9zdCBuYW1lICclcycsIHdoaWNoIHJlc2VtYmxlcyBJUHY0LWFkZHJlc3MgaXRzZWxmLgBIb3N0bmFtZSAnJXMnIGRvZXMgbm90IHJlc29sdmUgdG8gJyVzJy4ASG9zdG5hbWUgJyVzJyBoYXMgdGhlIGZvbGxvd2luZyBJUCBhZGRyZXNzZXM6ACAtICVzAERlZmluZXIgY2xhdXNlIGlzIG1pc3NpbmcgaW4gVHJpZ2dlciBvZiBUYWJsZSAlcy4gUmVidWlsZCBUcmlnZ2VyIHRvIGZpeCBkZWZpbmVyLgBDbGllbnQgY2hhcmFjdGVyIHNldCBpcyBtaXNzaW5nIGZvciB0cmlnZ2VyIG9mIHRhYmxlICVzLiBVc2luZyBkZWZhdWx0IGNoYXJhY3RlciBzZXQuAEVycm9yIGluIHBhcnNpbmcgdmlldyAlcy4lcwBGYWlsZWQgdG8gYm9vdHN0cmFwIGNvbXBvbmVudHMgaW5mcmFzdHJ1Y3R1cmUuAEZhaWxlZCB0byBzaHV0ZG93biBjb21wb25lbnRzIGluZnJhc3RydWN0dXJlLgBGYWlsZWQgdG8gYm9vdHN0cmFwIHBlcnNpc3RlbnQgY29tcG9uZW50cyBsb2FkZXIuAEdpdmluZyAlZCBjbGllbnQgdGhyZWFkcyBhIGNoYW5jZSB0byBkaWUgZ3JhY2VmdWxseQBDQSBjZXJ0aWZpY2F0ZSAlcyBpcyBzZWxmIHNpZ25lZC4ARmFpbGVkIHRvIHNldCB1cCBTU0wgYmVjYXVzZSBvZiB0aGUgZm9sbG93aW5nIFNTTCBsaWJyYXJ5IGVycm9yOiAlcwBGYWlsZWQgdG8gZ2VuZXJhdGUgYSBzZXJ2ZXIgVVVJRCBiZWNhdXNlIGl0IGlzIGZhaWxlZCB0byBhbGxvY2F0ZSB0aGUgVEhELgBTYWx0aW5nIHV1aWQgZ2VuZXJhdG9yIHZhcmlhYmxlcywgY3VycmVudF9waWQ6ICVsdSwgc2VydmVyX3N0YXJ0X3RpbWU6ICVsdSwgYnl0ZXNfc2VudDogJWxsdSwgAEdlbmVyYXRlZCB1dWlkOiAnJXMnLCBzZXJ2ZXJfc3RhcnRfdGltZTogJWx1LCBieXRlc19zZW50OiAlbGx1AFRoZSBzZXJ2ZXJfdXVpZCBzdG9yZWQgaW4gYXV0by5jbmYgZmlsZSBpcyBub3QgYSB2YWxpZCBVVUlELgBHYXJiYWdlIGNoYXJhY3RlcnMgZm91bmQgYXQgdGhlIGVuZCBvZiB0aGUgc2VydmVyX3V1aWQgdmFsdWUgaW4gYXV0by5jbmYgZmlsZS4gSXQgc2hvdWxkIGJlIG9mIGxlbmd0aCAnJWQnIChVVUlEX0xFTkdUSCkuIENsZWFyIGl0IGFuZCByZXN0YXJ0IHRoZSBzZXJ2ZXIuIABObyBleGlzdGluZyBVVUlEIGhhcyBiZWVuIGZvdW5kLCBzbyB3ZSBhc3N1bWUgdGhhdCB0aGlzIGlzIHRoZSBmaXJzdCB0aW1lIHRoYXQgdGhpcyBzZXJ2ZXIgaGFzIGJlZW4gc3RhcnRlZC4gR2VuZXJhdGluZyBhIG5ldyBVVUlEOiAlcy4ASW5pdGlhbGl6YXRpb24gb2YgdGhlIHNlcnZlcidzIFVVSUQgZmFpbGVkIGJlY2F1c2UgaXQgY291bGQgbm90IGJlIHJlYWQgZnJvbSB0aGUgYXV0by5jbmYgZmlsZS4gSWYgdGhpcyBpcyBhIG5ldyBzZXJ2ZXIsIHRoZSBpbml0aWFsaXphdGlvbiBmYWlsZWQgYmVjYXVzZSBpdCB3YXMgbm90IHBvc3NpYmxlIHRvIGdlbmVyYXRlIGEgbmV3IFVVSUQuAFVua25vd24vdW5zdXBwb3J0ZWQgc3RvcmFnZSBlbmdpbmU6ICVzAFVuc3VwcG9ydGVkIHZhbHVlIDAgZm9yIHNlY3VyZS1hdXRoAEludmFsaWQgaW5zdHJ1bWVudCBuYW1lIG9yIHZhbHVlIGZvciBwZXJmb3JtYW5jZV9zY2hlbWFfaW5zdHJ1bWVudCAnJXMnAFRoZSB1c2Ugb2YgSW5ub0RCIGlzIG1hbmRhdG9yeSBzaW5jZSBNeVNRTCA1LjcuIFRoZSBmb3JtZXIgb3B0aW9ucyBsaWtlICctLWlubm9kYj0wLzEvT0ZGL09OJyBvciAnLS1za2lwLWlubm9kYicgYXJlIGlnbm9yZWQuAGlnbm9yZS1idWlsdGluLWlubm9kYiBpcyBpZ25vcmVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gZnV0dXJlIHJlbGVhc2VzLgBJbnZhbGlkIG9sZF9wYXNzd29yZHMgbW9kZTogMS4gVmFsaWQgdmFsdWVzIGFyZSAyIGFuZCAwAC0tdmVyYm9zZSBpcyBmb3IgdXNlIHdpdGggLS1oZWxwOyBkaWQgeW91IG1lYW4gLS1sb2ctZXJyb3ItdmVyYm9zaXR5PwBvcHRpb25zIC0tbG9nLXNsb3ctYWRtaW4tc3RhdGVtZW50cywgLS1sb2ctcXVlcmllcy1ub3QtdXNpbmctaW5kZXhlcyBhbmQgLS1sb2ctc2xvdy1yZXBsaWNhLXN0YXRlbWVudHMgaGF2ZSBubyBlZmZlY3QgaWYgLS1zbG93LXF1ZXJ5LWxvZyBpcyBub3Qgc2V0AG5ldF9idWZmZXJfbGVuZ3RoICglbHUpIGlzIHNldCB0byBiZSBsYXJnZXIgdGhhbiBtYXhfYWxsb3dlZF9wYWNrZXQgKCVsdSkuIFBsZWFzZSByZWN0aWZ5LgBUSU1FU1RBTVAgd2l0aCBpbXBsaWNpdCBERUZBVUxUIHZhbHVlIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgLS1leHBsaWNpdF9kZWZhdWx0c19mb3JfdGltZXN0YW1wIHNlcnZlciBvcHRpb24gKHNlZSBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGRldGFpbHMpLgBJbnZhbGlkIGZ0LWJvb2xlYW4tc3ludGF4IHN0cmluZzogJXMAJ05PX0FVVE9fQ1JFQVRFX1VTRVInIHNxbCBtb2RlIHdhcyBub3Qgc2V0LgBDb3VsZCBub3QgYWxsb2NhdGUgbWVtb3J5IGZvciBjb25uZWN0aW9uIGhhbmRsaW5nAENvdWxkIG5vdCBhbGxvY2F0ZSBtZW1vcnkgZm9yIHRocmVhZCBoYW5kbGluZwBDYW4ndCBjcmVhdGUgdGVzdCBmaWxlICVzAENhbid0IHN0YXJ0IHNlcnZlcjogY2FuJ3QgY3JlYXRlIFBJRCBmaWxlOiAlcwBVbmFibGUgdG8gZGVsZXRlIHBpZCBmaWxlOiAlcwBDYW4ndCBjcmVhdGUgdGhyZWFkIHRvIGhhbmRsZSBzaHV0ZG93biByZXF1ZXN0cyAoZXJybm89ICVkKQBGYWlsZWQgdG8gYWNjZXNzIGRpcmVjdG9yeSBmb3IgLS1zZWN1cmUtZmlsZS1wcml2LiBQbGVhc2UgbWFrZSBzdXJlIHRoYXQgZGlyZWN0b3J5IGV4aXN0cyBhbmQgaXMgYWNjZXNzaWJsZSBieSBNeVNRTCBTZXJ2ZXIuIFN1cHBsaWVkIHZhbHVlIDogJXMASWdub3JpbmcgLS1zZWN1cmUtZmlsZS1wcml2IHZhbHVlIGFzIHNlcnZlciBpcyBydW5uaW5nIHdpdGggLS1pbml0aWFsaXplKC1pbnNlY3VyZSkuAEluc2VjdXJlIGNvbmZpZ3VyYXRpb24gZm9yIC0tc2VjdXJlLWZpbGUtcHJpdjogQ3VycmVudCB2YWx1ZSBkb2VzIG5vdCByZXN0cmljdCBsb2NhdGlvbiBvZiBnZW5lcmF0ZWQgZmlsZXMuIENvbnNpZGVyIHNldHRpbmcgaXQgdG8gYSB2YWxpZCwgbm9uLWVtcHR5IHBhdGguAC0tc2VjdXJlLWZpbGUtcHJpdiBpcyBzZXQgdG8gTlVMTC4gT3BlcmF0aW9ucyByZWxhdGVkIHRvIGltcG9ydGluZyBhbmQgZXhwb3J0aW5nIGRhdGEgYXJlIGRpc2FibGVkAEluc2VjdXJlIGNvbmZpZ3VyYXRpb24gZm9yIC0tc2VjdXJlLWZpbGUtcHJpdjogJXMgaXMgYWNjZXNzaWJsZSB0aHJvdWdoIC0tc2VjdXJlLWZpbGUtcHJpdi4gQ29uc2lkZXIgY2hvb3NpbmcgYSBkaWZmZXJlbnQgZGlyZWN0b3J5LgBGYWlsZWQgdG8gZ2V0IHN0YXQgZm9yIGRpcmVjdG9yeSBwb2ludGVkIG91dCBieSAtLXNlY3VyZS1maWxlLXByaXYASW5zZWN1cmUgY29uZmlndXJhdGlvbiBmb3IgLS1zZWN1cmUtZmlsZS1wcml2OiBMb2NhdGlvbiBpcyBhY2Nlc3NpYmxlIHRvIGFsbCBPUyB1c2Vycy4gQ29uc2lkZXIgY2hvb3NpbmcgYSBkaWZmZXJlbnQgZGlyZWN0b3J5LgBWYWx1ZSBmb3IgLS1zZWN1cmUtZmlsZS1wcml2IGlzIGxvbmdlciB0aGFuIG1heGltdW0gbGltaXQgb2YgJWQAQ2FuJ3QgY3JlYXRlIHRocmVhZCB0byBoYW5kbGUgbmFtZWQgcGlwZXMgKGVycm5vPSAlZCkAQ2FuJ3QgY3JlYXRlIHRocmVhZCB0byBoYW5kbGUgVENQL0lQIChlcnJubz0gJWQpAENhbid0IGNyZWF0ZSB0aHJlYWQgdG8gaGFuZGxlIHNoYXJlZCBtZW1vcnkgKGVycm5vPSAlZCkAQ2FuJ3QgY3JlYXRlIGludGVycnVwdC10aHJlYWQgKGVycm9yICVkLCBlcnJubzogJWQpAFdvcmxkLXdyaXRhYmxlIGNvbmZpZyBmaWxlICclcycgaGFzIGJlZW4gcmVtb3ZlZC4Ac2V0cmxpbWl0IGNvdWxkIG5vdCBjaGFuZ2UgdGhlIHNpemUgb2YgY29yZSBmaWxlcyB0byAnaW5maW5pdHknOyAgV2UgbWF5IG5vdCBiZSBhYmxlIHRvIGdlbmVyYXRlIGEgY29yZSBmaWxlIG9uIHNpZ25hbHMAV3JvbmcgZGF0ZS90aW1lIGZvcm1hdCBzcGVjaWZpZXI6ICVzAENvdWxkIG5vdCBhbGxvY2F0ZSByZXBsaWNhdGlvbiBhbmQgYmlubG9nIGZpbHRlcnM6ICVzAENhbm5vdCBhbGxvY2F0ZSB0aGUga2V5Y2FjaGUAQ3VycmVudCB0aW1lIGhhcyBnb3QgcGFzdCB5ZWFyIDIwMzguIFZhbGlkYXRpbmcgY3VycmVudCB0aW1lIHdpdGggJWQgaXRlcmF0aW9ucyBiZWZvcmUgaW5pdGlhdGluZyB0aGUgbm9ybWFsIHNlcnZlciBzaHV0ZG93biBwcm9jZXNzLgBJdGVyYXRpb24gJWQ6IE9idGFpbmVkIHZhbGlkIGN1cnJlbnQgdGltZSBmcm9tIHN5c3RlbQBJdGVyYXRpb24gJWQ6IEN1cnJlbnQgdGltZSBvYnRhaW5lZCBmcm9tIHN5c3RlbSBpcyBncmVhdGVyIHRoYW4gMjAzOABUaGlzIE15U1FMIHNlcnZlciBkb2Vzbid0IHN1cHBvcnQgZGF0ZXMgbGF0ZXIgdGhlbiAyMDM4ACVzIChteXNxbGQgJXMpIHN0YXJ0aW5nIGFzIHByb2Nlc3MgJWx1AFNodXR0aW5nIGRvd24gcmVwbGljYSB0aHJlYWRzAEZvcmNlZnVsbHkgZGlzY29ubmVjdGluZyAlZCByZW1haW5pbmcgY2xpZW50cwBBYm9ydGluZwBCaW5sb2cgZW5kAGdldGhvc3RuYW1lIGZhaWxlZCwgdXNpbmcgJyVzJyBhcyBob3N0bmFtZQBPbmUgY2FuIG9ubHkgdXNlIHRoZSAtLXVzZXIgc3dpdGNoIGlmIHJ1bm5pbmcgYXMgcm9vdABGYXRhbCBlcnJvcjogUGxlYXNlIHJlYWQgIlNlY3VyaXR5IiBzZWN0aW9uIG9mIHRoZSBtYW51YWwgdG8gZmluZCBvdXQgaG93IHRvIHJ1biBteXNxbGQgYXMgcm9vdCEARmF0YWwgZXJyb3I6IENhbid0IGNoYW5nZSB0byBydW4gYXMgdXNlciAnJXMnIDsgIFBsZWFzZSBjaGVjayB0aGF0IHRoZSB1c2VyIGV4aXN0cyEAU2VydmVyIGlzIHN0YXJ0ZWQgd2l0aCAtLXJlcXVpcmUtc2VjdXJlLXRyYW5zcG9ydD1PTiBidXQgbm8gc2VjdXJlIHRyYW5zcG9ydHMgKFNTTCBvciBTaGFyZWQgTWVtb3J5KSBhcmUgY29uZmlndXJlZC4Ac2V0Z2lkOiAlcwBzZXR1aWQ6ICVzAHNldHJlZ2lkOiAlcwBzZXRyZXVpZDogJXMAY2hyb290OiAlcwBUQ1AvSVAsIC0tc2hhcmVkLW1lbW9yeSwgb3IgLS1uYW1lZC1waXBlIHNob3VsZCBiZSBjb25maWd1cmVkIG9uIE5UIE9TAENUUkwtQyBpZ25vcmVkIGR1cmluZyBzdGFydHVwACclcycgY2FuIG5vdCBiZSB1c2VkIGFzIGNsaWVudCBjaGFyYWN0ZXIgc2V0LiAnJXMnIHdpbGwgYmUgdXNlZCBhcyBkZWZhdWx0IGNsaWVudCBjaGFyYWN0ZXIgc2V0LgBPdXQgb2YgbWVtb3J5AEZhaWxlZCB0byBsb2NrIG1lbW9yeS4gRXJybm86ICVkAG15X2luaXQoKSBmYWlsZWQuAEV4ZWN1dGlvbiBvZiBpbml0X2ZpbGUgJyVzJyBzdGFydGVkLgBFeGVjdXRpb24gb2YgaW5pdF9maWxlICclcycgZW5kZWQuAENoYW5nZWQgbGltaXRzOiBtYXhfb3Blbl9maWxlczogJWx1IChyZXF1ZXN0ZWQgJWx1KQBDb3VsZCBub3QgaW5jcmVhc2UgbnVtYmVyIG9mIG1heF9vcGVuX2ZpbGVzIHRvIG1vcmUgdGhhbiAlbHUgKHJlcXVlc3Q6ICVsdSkAQ2hhbmdlZCBsaW1pdHM6IG1heF9jb25uZWN0aW9uczogJWx1IChyZXF1ZXN0ZWQgJWx1KQBDaGFuZ2VkIGxpbWl0czogdGFibGVfb3Blbl9jYWNoZTogJWx1IChyZXF1ZXN0ZWQgJWx1KQBJZ25vcmluZyB1c2VyIGNoYW5nZSB0byAnJXMnIGJlY2F1c2UgdGhlIHVzZXIgd2FzIHNldCB0byAnJXMnIGVhcmxpZXIgb24gdGhlIGNvbW1hbmQgbGluZQBDb3VsZCBub3QgYWRkIGRvIHRhYmxlIHJ1bGUgJyVzJyEAQ291bGQgbm90IGFkZCBpZ25vcmUgdGFibGUgcnVsZSAnJXMnIQBUaGUgdmFyaWFibGUgc2Vzc2lvbl90cmFja19zeXN0ZW1fdmFyaWFibGVzIGVpdGhlciBoYXMgZHVwbGljYXRlIHZhbHVlcyBvciBpbnZhbGlkIHZhbHVlcy4AVG9vIG1hbnkgYXJndW1lbnRzIChmaXJzdCBleHRyYSBpcyAnJXMnKS4AVXNlIC0tdmVyYm9zZSAtLWhlbHAgdG8gZ2V0IGEgbGlzdCBvZiBhdmFpbGFibGUgb3B0aW9ucyEAVW5hYmxlIHRvIHJlYWQgZXJybXNnLnN5cyBmaWxlAENhbid0IGluaXQgZGF0YWJhc2VzAFRoZXJlIHdlcmUgb3RoZXIgdmFsdWVzIHNwZWNpZmllZCB0byBsb2ctb3V0cHV0IGJlc2lkZXMgTk9ORS4gRGlzYWJsaW5nIHNsb3cgYW5kIGdlbmVyYWwgbG9ncyBhbnl3YXkuAENTViBlbmdpbmUgaXMgbm90IHByZXNlbnQsIGZhbGxpbmcgYmFjayB0byB0aGUgbG9nIGZpbGVzAEJhZCBzeW50YXggaW4gcmVwbGljYXRlLXJld3JpdGUtZGIgLSBtaXNzaW5nICctPichAEJhZCBzeW50YXggaW4gcmVwbGljYXRlLXJld3JpdGUtZGIgLSBlbXB0eSBGUk9NIGRiIQBCYWQgc3ludGF4IGluIHJlcGxpY2F0ZS1yZXdyaXRlLWRiIC0gZW1wdHkgVE8gZGIhAEFsdGhvdWdoIGEgcGF0aCB3YXMgc3BlY2lmaWVkIGZvciB0aGUgJXMsIGxvZyB0YWJsZXMgYXJlIHVzZWQuIFRvIGVuYWJsZSBsb2dnaW5nIHRvIGZpbGVzIHVzZSB0aGUgLS1sb2ctb3V0cHV0PWZpbGUgb3B0aW9uLgBJbnZhbGlkIHZhbHVlIGZvciAlczogJXMAVGhlIHNlcnZlciBvcHRpb24gJ2xvd2VyX2Nhc2VfdGFibGVfbmFtZXMnIGlzIGNvbmZpZ3VyZWQgdG8gdXNlIGNhc2Ugc2Vuc2l0aXZlIHRhYmxlIG5hbWVzIGJ1dCB0aGUgZGF0YSBkaXJlY3RvcnkgaXMgb24gYSBjYXNlLWluc2Vuc2l0aXZlIGZpbGUgc3lzdGVtIHdoaWNoIGlzIGFuIHVuc3VwcG9ydGVkIGNvbWJpbmF0aW9uLiBQbGVhc2UgY29uc2lkZXIgZWl0aGVyIHVzaW5nIGEgY2FzZSBzZW5zaXRpdmUgZmlsZSBzeXN0ZW0gZm9yIHlvdXIgZGF0YSBkaXJlY3Rvcnkgb3Igc3dpdGNoaW5nIHRvIGEgY2FzZS1pbnNlbnNpdGl2ZSB0YWJsZSBuYW1lIG1vZGUuAFNldHRpbmcgbG93ZXJfY2FzZV90YWJsZV9uYW1lcz0yIGJlY2F1c2UgZmlsZSBzeXN0ZW0gZm9yICVzIGlzIGNhc2UgaW5zZW5zaXRpdmUAbG93ZXJfY2FzZV90YWJsZV9uYW1lcyB3YXMgc2V0IHRvIDIsIGV2ZW4gdGhvdWdoIHlvdXIgdGhlIGZpbGUgc3lzdGVtICclcycgaXMgY2FzZSBzZW5zaXRpdmUuICBOb3cgc2V0dGluZyBsb3dlcl9jYXNlX3RhYmxlX25hbWVzIHRvIDAgdG8gYXZvaWQgZnV0dXJlIHByb2JsZW1zLgBZb3UgbmVlZCB0byB1c2UgLS1sb2ctYmluIHRvIG1ha2UgJXMgd29yay4AUGF0aCAnJXMnIGlzIGEgZGlyZWN0b3J5IG5hbWUsIHBsZWFzZSBzcGVjaWZ5IGEgZmlsZSBuYW1lIGZvciAlcyBvcHRpb24ATm8gYXJndW1lbnQgd2FzIHByb3ZpZGVkIHRvIC0tbG9nLWJpbiwgYW5kIC0tbG9nLWJpbi1pbmRleCB3YXMgbm90IHVzZWQ7IHNvIHJlcGxpY2F0aW9uIG1heSBicmVhayB3aGVuIHRoaXMgTXlTUUwgc2VydmVyIGFjdHMgYXMgYSBzb3VyY2UgYW5kIGhhcyBoaXMgaG9zdG5hbWUgY2hhbmdlZCEhIFBsZWFzZSB1c2UgJy0tbG9nLWJpbj0lcycgdG8gYXZvaWQgdGhpcyBwcm9ibGVtLgBZb3UgaGF2ZSBlbmFibGVkIHRoZSBiaW5hcnkgbG9nLCBidXQgeW91IGhhdmVuJ3QgcHJvdmlkZWQgdGhlIG1hbmRhdG9yeSBzZXJ2ZXItaWQuIFBsZWFzZSByZWZlciB0byB0aGUgcHJvcGVyIHNlcnZlciBzdGFydC11cCBwYXJhbWV0ZXJzIGRvY3VtZW50YXRpb24AVW5hYmxlIHRvIGNyZWF0ZSByZXBsaWNhdGlvbiBwYXRoIG5hbWVzOiBvdXQgb2YgbWVtb3J5IG9yIHBhdGggbmFtZXMgdG9vIGxvbmcgKHBhdGggbmFtZSBleGNlZWRzICVkIG9yIGZpbGUgbmFtZSBleGNlZWRzICVkKS4ARmFpbGVkIHRvIGluaXRpYWxpemUgR1RJRCBzdHJ1Y3R1cmVzLgBGYWlsZWQgdG8gaW5pdGlhbGl6ZSBlYXJseSBwbHVnaW5zLgBGYWlsZWQgdG8gaW5pdGlhbGl6ZSBidWlsdGluIHBsdWdpbnMuAEZhaWxlZCB0byBpbml0aWFsaXplIGR5bmFtaWMgcGx1Z2lucy4AUGVyZm9ybWFuY2Ugc2NoZW1hIGRpc2FibGVkIChyZWFzb246IGluaXQgZmFpbGVkKS4AQXNrZWQgZm9yICVsdSB0aHJlYWQgc3RhY2ssIGJ1dCBnb3QgJWxkAGZhaWxlZCB0byBzZXQgZGF0YWRpciB0byAlcwBDYW4ndCByZWFkIGRhdGEgZGlyZWN0b3J5J3Mgc3RhdHMgKCVkKTogJXMuIEFzc3VtaW5nIHRoYXQgaXQncyBub3Qgb3duZWQgYnkgdGhlIHNhbWUgdXNlci9ncm91cABDYW4ndCBjaGFuZ2UgZGF0YSBkaXJlY3Rvcnkgb3duZXIgdG8gJXMAU2V0dGluZyBwZXJzaXN0ZW50IG9wdGlvbnMgZmFpbGVkLgBGYWlsZWQgdG8gc2F2ZSB0aGUgc2V0IG9mIEdsb2JhbCBUcmFuc2FjdGlvbiBJZGVudGlmaWVycyBvZiB0aGUgbGFzdCBiaW5hcnkgbG9nIGludG8gdGhlIG15c3FsLmd0aWRfZXhlY3V0ZWQgdGFibGUgd2hpbGUgdGhlIHNlcnZlciB3YXMgc2h1dHRpbmcgZG93bi4gVGhlIG5leHQgc2VydmVyIHJlc3RhcnQgd2lsbCBtYWtlIGFub3RoZXIgYXR0ZW1wdCB0byBzYXZlIEdsb2JhbCBUcmFuc2FjdGlvbiBJZGVudGlmaWVycyBpbnRvIHRoZSB0YWJsZS4AQ2FuJ3Qgc3RhcnQgc2VydmVyOiBJbnZhbGlkIHZhbHVlIGZvciAtLWRlZmF1bHQtYXV0aGVudGljYXRpb24tcGx1Z2luAENvdWxkIG5vdCBqb2luICVzdGhyZWFkLiBlcnJvcjolZABBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBidWlsZGluZyBkb190YWJsZSBhbmQgaWdub3JlX3RhYmxlIHJ1bGVzIHRvIGhhc2hlcyBmb3IgZ2xvYmFsIHJlcGxpY2F0aW9uIGZpbHRlci4ARXJyb3Igb3BlbmluZyBDQSBjZXJ0aWZpY2F0ZSBmaWxlAEVycm9yIGFjY2Vzc2luZyBkaXJlY3RvcnkgcG9pbnRlZCBieSAtLXNzbC1jYXBhdGgARm91bmQgJXMsICVzIGFuZCAlcyBpbiBkYXRhIGRpcmVjdG9yeS4gVHJ5aW5nIHRvIGVuYWJsZSBTU0wgc3VwcG9ydCB1c2luZyB0aGVtLgBGYWlsZWQgdG8gY3JlYXRlICVzKGZpbGU6ICclcycsIGVycm5vICVkKQBGYWlsZWQgdG8gaW5pdGlhbGl6ZSB0aW1lciBjb21wb25lbnQgKGVycm5vICVkKS4Ac2VydmVyLWlkIGNvbmZpZ3VyZWQgaXMgdG9vIGxhcmdlIHRvIHJlcHJlc2VudCB3aXRoIHNlcnZlci1pZC1iaXRzIGNvbmZpZ3VyZWQuAERlZmF1bHQlcyBzdG9yYWdlIGVuZ2luZSAoJXMpIGlzIG5vdCBhdmFpbGFibGUAQ291bGQgbm90IG9wZW4gZmlsZSAnJXMnIGZvciBlcnJvciBsb2dnaW5nJXMlcwBJbnZhbGlkIGxvZyBmaWxlIG5hbWUgYWZ0ZXIgZXhwYW5kaW5nIHN5bWxpbmtzOiAnJXMnAHVzaW5nIC0tcmVwbGljYXRlLXNhbWUtc2VydmVyLWlkIGluIGNvbmp1bmN0aW9uIHdpdGggLS1sb2ctcmVwbGljYS11cGRhdGVzIGlzIGltcG9zc2libGUsIGl0IHdvdWxkIGxlYWQgdG8gaW5maW5pdGUgbG9vcHMgaW4gdGhpcyBzZXJ2ZXIuAHVzaW5nIC0tcmVwbGljYXRlLXNhbWUtc2VydmVyLWlkIGluIGNvbmp1bmN0aW9uIHdpdGggLS1sb2ctcmVwbGljYS11cGRhdGVzIHdvdWxkIGxlYWQgdG8gaW5maW5pdGUgbG9vcHMgaW4gdGhpcyBzZXJ2ZXIuIEhvd2V2ZXIgdGhpcyB3aWxsIGJlIGlnbm9yZWQgYXMgdGhlIC0tbG9nLWJpbiBvcHRpb24gaXMgbm90IGRlZmluZWQgb3IgeW91ciBzZXJ2ZXIgaXMgcnVubmluZyB3aXRoIGdsb2JhbCB0cmFuc2FjdGlvbiBpZGVudGllcnMgZW5hYmxlZC4ATkRCIDogVGFibGVzIG5vdCBhdmFpbGFibGUgYWZ0ZXIgJWx1IHNlY29uZHMuIENvbnNpZGVyIGluY3JlYXNpbmcgLS1uZGItd2FpdC1zZXR1cCB2YWx1ZQAlcwBVbmFibGUgdG8gc3RhcnQgc2VydmVyLiBUaGUgZGF0YSBkaWN0aW9uYXJ5IHRhYmxlc3BhY2UgJyVzJyBkb2VzIG5vdCBleGlzdC4AQ29ubmVjdGlvbiBjb2xsYXRpb24gaXMgbWlzc2luZyBmb3IgdHJpZ2dlciBvZiB0YWJsZSAlcy4gVXNpbmcgZGVmYXVsdCBjb25uZWN0aW9uIGNvbGxhdGlvbi4ARGF0YWJhc2UgY29sbGF0aW9uIGlzIG1pc3NpbmcgZm9yIHRyaWdnZXIgb2YgdGFibGUgJXMuIFVzaW5nIERlZmF1bHQgY2hhcmFjdGVyIHNldC4ARXJyb3IgaW4gTWVtb3J5IGFsbG9jYXRpb24gZm9yIERlZmluZXIgJXMgZm9yIFRyaWdnZXIuAEVycm9yIGluIHJlYWRpbmcgJXMuVFJHIGZpbGUuAEVycm9yIGluIHBhcnNpbmcgVHJpZ2dlcnMgZnJvbSAlcy5UUkcgZmlsZS4ARXJyb3IgaW4gY3JlYXRpbmcgREQgZW50cnkgZm9yIFRyaWdnZXIgJXMuJXMAUmVzb2x2aW5nIGRlcGVuZGVuY3kgZm9yIHRoZSB2aWV3ICclcy4lcycgZmFpbGVkLiBWaWV3IGlzIG5vIG1vcmUgdmFsaWQgdG8gdXNlACVzLiVzIGhhcyBubyBkZWZpbmVyIChhcyBwZXIgYW4gb2xkIHZpZXcgZm9ybWF0KS4gQ3VycmVudCB1c2VyIGlzIHVzZWQgYXMgZGVmaW5lci4gUGxlYXNlIHJlY3JlYXRlIHRoZSB2aWV3LgBQbHVnaW4gJyVzJyBpbml0IGZ1bmN0aW9uIHJldHVybmVkIGVycm9yLgBJbml0aWFsaXphdGlvbiBvZiB0cmFuc2FjdGlvbiBkZWxlZ2F0ZXMgZmFpbGVkLiBQbGVhc2UgcmVwb3J0IGEgYnVnLgBJbml0aWFsaXphdGlvbiBiaW5sb2cgc3RvcmFnZSBkZWxlZ2F0ZXMgZmFpbGVkLiBQbGVhc2UgcmVwb3J0IGEgYnVnLgBJbml0aWFsaXphdGlvbiBvZiBiaW5sb2cgdHJhbnNtaXQgZGVsZWdhdGVzIGZhaWxlZC4gUGxlYXNlIHJlcG9ydCBhIGJ1Zy4ASW5pdGlhbGl6YXRpb24gYmlubG9nIHJlbGF5IElPIGRlbGVnYXRlcyBmYWlsZWQuIFBsZWFzZSByZXBvcnQgYSBidWcuAFJ1biBmdW5jdGlvbiAnLi4uJyBpbiBwbHVnaW4gJyVzJyBmYWlsZWQAbXlzcWxfaGFfcmVhZDogR290IGVycm9yICVkIHdoZW4gcmVhZGluZyB0YWJsZSAnJXMnAFN0b3JlZCByb3V0aW5lICclcycuJyVzJzogaW52YWxpZCB2YWx1ZSBpbiBjb2x1bW4gJXMuAEludmFsaWQgY3JlYXRpb24gY29udGV4dCAnJXMuJXMnLgBHb3QgZXJyb3IgJWQgd2hlbiByZWFkaW5nIHRhYmxlICclcycAbG9hZF9kZXNfZmlsZTogIEZvdW5kIHdyb25nIGtleV9udW1iZXI6ICVjAEZhaWxlZCB0byBzZXQgcGVyc2lzdGVkIG9wdGlvbnMuAFBlcnNpc3RlZCBjb25maWcgZmlsZSBpcyBjb3JydXB0LiBQbGVhc2UgZW5zdXJlIG15c3FsZC1hdXRvLmNuZiBmaWxlIGlzIHZhbGlkIEpTT04uAEZvdW5kIG9wdGlvbiB3aXRob3V0IHByZWNlZGluZyBncm91cCBpbiBjb25maWcgZmlsZQBWQUxHUklORF9ET19RVUlDS19MRUFLX0NIRUNLAFZBTEdSSU5EX0NPVU5UX0xFQUtTIHJlcG9ydHMgJWx1IGxlYWtlZCBieXRlcyBmb3IgcXVlcnkgJyUuKnMnAExPQUQgREFUQSBJTkZJTEUgaW4gdGhlIHJlcGxpY2EgU1FMIFRocmVhZCBjYW4gb25seSByZWFkIGZyb20gLS1yZXBsaWNhLWxvYWQtdG1wZGlyLiBQbGVhc2UsIHJlcG9ydCBhIGJ1Zy4AR290IHVua25vd24gZXJyb3I6ICVkAENhbid0IGFsbG9jYXRlIG1lbW9yeSBmb3IgdWRmIHN0cnVjdHVyZXMAQ2FuJ3QgYWxsb2MgbWVtb3J5IGZvciB1ZGYgZnVuY3Rpb246ICclLjY0cycASW52YWxpZCByb3cgaW4gbXlzcWwuZnVuYyB0YWJsZSBmb3IgZnVuY3Rpb24gJyUuNjRzJwBDb3VsZCBub3Qgb3BlbiB0aGUgbXlzcWwuZnVuYyB0YWJsZS4gUGxlYXNlIHBlcmZvcm0gdGhlIE15U1FMIHVwZ3JhZGUgcHJvY2VkdXJlLgBGb3VuZCAlZCBwcmVwYXJlZCB0cmFuc2FjdGlvbihzKSBpbiAlcwBGb3VuZCAlZCBwcmVwYXJlZCBYQSB0cmFuc2FjdGlvbnMAaWdub3JlIHhpZCAlcwBjb21taXQgeGlkICVzAHJvbGxiYWNrIHhpZCAlcwBTdGFydGluZyBYQSBjcmFzaCByZWNvdmVyeS4uLgAtLXRjLWhldXJpc3RpYy1yZWNvdmVyIHJvbGxiYWNrIHN0cmF0ZWd5IGlzIG5vdCBzYWZlIG9uIHN5c3RlbXMgd2l0aCBtb3JlIHRoYW4gb25lIDItcGhhc2UtY29tbWl0LWNhcGFibGUgc3RvcmFnZSBlbmdpbmUuIEFib3J0aW5nIGNyYXNoIHJlY292ZXJ5LgBGb3VuZCAlZCBwcmVwYXJlZCB0cmFuc2FjdGlvbnMhIEl0IG1lYW5zIHRoYXQgbXlzcWxkIHdhcyBub3Qgc2h1dCBkb3duIHByb3Blcmx5IGxhc3QgdGltZSBhbmQgY3JpdGljYWwgcmVjb3ZlcnkgaW5mb3JtYXRpb24gKGxhc3QgYmlubG9nIG9yICVzIGZpbGUpIHdhcyBtYW51YWxseSBkZWxldGVkIGFmdGVyIGEgY3Jhc2guIFlvdSBoYXZlIHRvIHN0YXJ0IG15c3FsZCB3aXRoIC0tdGMtaGV1cmlzdGljLXJlY292ZXIgc3dpdGNoIHRvIGNvbW1pdCBvciByb2xsYmFjayBwZW5kaW5nIHRyYW5zYWN0aW9ucy4AWEEgY3Jhc2ggcmVjb3ZlcnkgZmluaXNoZWQuAEZhaWxlZCB0byBjb2xsZWN0IEdUSUQgdG8gc2VuZCBpbiB0aGUgcmVzcG9uc2UgcGFja2V0IQBNWVNRTC5ERUZBVUxUX1JPTEVTIGNvdWxkbid0IGJlIHVwZGF0ZWQgZm9yIGF1dGhvcml6YXRpb24gaWRlbnRpZmllciAlcwBGb2xsb3dpbmcgdXNlcnMgd2VyZSBzcGVjaWZpZWQgaW4gQ1JFQVRFIFVTRVIgSUYgTk9UIEVYSVNUUyBidXQgdGhleSBhbHJlYWR5IGV4aXN0LiBDb3JyZXNwb25kaW5nIGVudHJ5IGluIGJpbmFyeSBsb2cgdXNlZCBkZWZhdWx0IGF1dGhlbnRpY2F0aW9uIHBsdWdpbiAnJXMnIHRvIHJld3JpdGUgYXV0aGVudGljYXRpb24gaW5mb3JtYXRpb24gKGlmIGFueSkgZm9yIHRoZW06ICVzAEZvbGxvd2luZyB1c2VycyB3ZXJlIHNwZWNpZmllZCBpbiBBTFRFUiBVU0VSIElGIEVYSVNUUyBidXQgdGhleSBkbyBub3QgZXhpc3QuIENvcnJlc3BvbmRpbmcgZW50cnkgaW4gYmluYXJ5IGxvZyB1c2VkIGRlZmF1bHQgYXV0aGVudGljYXRpb24gcGx1Z2luICclcycgdG8gcmV3cml0ZSBhdXRoZW50aWNhdGlvbiBpbmZvcm1hdGlvbiAoaWYgYW55KSBmb3IgdGhlbTogJXMAVGFibGUgJyUtMTkycycgY29ycnVwdGVkOiByb3cgaW4gd3JvbmcgcGFydGl0aW9uOiAlcyAtLSBQbGVhc2UgUkVQQUlSIHRoZSB0YWJsZSEAR290IGFuIGVycm9yIGZyb20gdGhyZWFkX2lkPSV1LCAlczolZABHb3QgYW4gZXJyb3IgZnJvbSB1bmtub3duIHRocmVhZCwgJXM6JWQAVG9vIG1hbnkgc3RvcmFnZSBlbmdpbmVzIQBTdG9yYWdlIGVuZ2luZSAnJXMnIGhhcyBjb25mbGljdGluZyB0eXBlY29kZS4gQXNzaWduaW5nIHZhbHVlICVkLgBPdXQgb2YgbWVtb3J5IG9uIHRyYW5zYWN0aW9uIHdyaXRlIHNldCBleHRyYWN0aW9uAFVuYWJsZSB0byBhbGxvY2F0ZSBtZW1vcnkgZm9yIHBsdWdpbiAnJXMnIGhhbmRsZXJ0b24uAFNoYXJlZCBtZW1vcnkgc2V0dGluZyB1cCBsaXN0ZW5lcgBDYW4ndCBjcmVhdGUgc2hhcmVkIG1lbW9yeSBzZXJ2aWNlOiAlcy4gOiAlcwBDYW4ndCBjcmVhdGUgc2hhcmVkIG1lbW9yeSBjb25uZWN0aW9uOiAlcy4gOiAlcwBDYW4ndCBjcmVhdGUgZXZlbnQsIGxhc3QgZXJyb3I9JXUAQ2FuJ3QgY3JlYXRlIG5ldyBuYW1lZCBwaXBlITogJXMAQ2FuJ3QgY3JlYXRlIHRocmVhZCB0byBoYW5kbGUgbmV3IGNvbm5lY3Rpb24oZXJybm89ICVkKQBGYWlsZWQgdG8gY3JlYXRlIGEgc29ja2V0IGZvciAlcyAnJXMnOiBlcnJubzogJWQuAFNlcnZlciBzb2NrZXQgY3JlYXRlZCBvbiBJUDogJyVzJy4AU2VydmVyIGhvc3RuYW1lIChiaW5kLWFkZHJlc3MpOiAnJXMnOyBwb3J0OiAlZABJUHY2IGlzIGF2YWlsYWJsZS4ASVB2NiBpcyBub3QgYXZhaWxhYmxlLgBDYW4ndCBjcmVhdGUgSVAgc29ja2V0OiAlcwBDYW4ndCBzdGFydCBzZXJ2ZXI6IGNhbm5vdCByZXNvbHZlIGhvc3RuYW1lIQBEbyB5b3UgYWxyZWFkeSBoYXZlIGFub3RoZXIgbXlzcWxkIHNlcnZlciBydW5uaW5nIG9uIHBvcnQ6ICVkID8ARG8geW91IGFscmVhZHkgaGF2ZSBhbm90aGVyIG15c3FsZCBzZXJ2ZXIgcnVubmluZyBvbiBzb2NrZXQ6ICVzID8AQW5vdGhlciBwcm9jZXNzIHdpdGggcGlkICVkIGlzIHVzaW5nIHVuaXggc29ja2V0IGZpbGUuAEZhaWxlZCB0byByZXNldCBJUFY2X1Y2T05MWSBmbGFnIChlcnJvcjogJWQpLiBUaGUgc2VydmVyIHdpbGwgbGlzdGVuIHRvIElQdjYgYWRkcmVzc2VzIG9ubHkuAFJldHJ5aW5nIGJpbmQgb24gVENQL0lQIHBvcnQgJXUAQ2FuJ3Qgc3RhcnQgc2VydmVyOiBCaW5kIG9uIFRDUC9JUCBwb3J0OiAlcwBGYWlscyB0byBwcmludCBvdXQgSVAtYWRkcmVzcy4AICAtICclcycgcmVzb2x2ZXMgdG8gJyVzJzsAQ2FuJ3Qgc3RhcnQgc2VydmVyOiBsaXN0ZW4oKSBvbiBUQ1AvSVAgcG9ydDogJXMAbGlzdGVuKCkgb24gVENQL0lQIGZhaWxlZCB3aXRoIGVycm9yICVkAFRoZSBzb2NrZXQgZmlsZSBwYXRoIGlzIHRvbyBsb25nICg+ICV1KTogJXMAVW5hYmxlIHRvIHNldHVwIHVuaXggc29ja2V0IGxvY2sgZmlsZS4AQ2FuJ3Qgc3RhcnQgc2VydmVyOiBVTklYIFNvY2tldCA6ICVzAENhbid0IHN0YXJ0IHNlcnZlciA6IEJpbmQgb24gdW5peCBzb2NrZXQ6ICVzAGxpc3RlbigpIG9uIFVuaXggc29ja2V0IGZhaWxlZCB3aXRoIGVycm9yICVkAFVuYWJsZSB0byBjcmVhdGUgdW5peCBzb2NrZXQgbG9jayBmaWxlICVzIGFmdGVyIHJldHJpZXMuAENvdWxkIG5vdCBjcmVhdGUgdW5peCBzb2NrZXQgbG9jayBmaWxlICVzLgBDb3VsZCBub3Qgb3BlbiB1bml4IHNvY2tldCBsb2NrIGZpbGUgJXMuAENvdWxkIG5vdCByZWFkIHVuaXggc29ja2V0IGxvY2sgZmlsZSAlcy4AVW5peCBzb2NrZXQgbG9jayBmaWxlIGlzIGVtcHR5ICVzLgBJbnZhbGlkIHBpZCBpbiB1bml4IHNvY2tldCBsb2NrIGZpbGUgJXMuAENvdWxkIG5vdCB3cml0ZSB1bml4IHNvY2tldCBsb2NrIGZpbGUgJXMgZXJybm8gJWQuAENvdWxkIG5vdCByZW1vdmUgdW5peCBzb2NrZXQgbG9jayBmaWxlICVzIGVycm5vICVkLgBDb3VsZCBub3Qgc3luYyB1bml4IHNvY2tldCBsb2NrIGZpbGUgJXMgZXJybm8gJWQuAENvdWxkIG5vdCBjbG9zZSB1bml4IHNvY2tldCBsb2NrIGZpbGUgJXMgZXJybm8gJWQuAG15c3FsZDogR290IGVycm9yICVkIGZyb20gc2VsZWN0AEVycm9yIGluIGFjY2VwdDogJXMAUlNBICVzIGtleSBmaWxlIG5vdCBmb3VuZDogJXMuIFNvbWUgYXV0aGVudGljYXRpb24gcGx1Z2lucyB3aWxsIG5vdCB3b3JrLgBGYWlsdXJlIHRvIHBhcnNlIFJTQSAlcyBrZXkgKGZpbGUgZXhpc3RzKTogJXM6ICVzAEZhaWx1cmUgdG8gcmVhZCBrZXkgZmlsZTogJXMAUlNBIGtleSBmaWxlcyBub3QgZm91bmQuIFNvbWUgYXV0aGVudGljYXRpb24gcGx1Z2lucyB3aWxsIG5vdCB3b3JrLgBDb25uZWN0aW9uIGF0dHJpYnV0ZXMgb2YgbGVuZ3RoICVsdSB3ZXJlIHRydW5jYXRlZCAoJWQgYnl0ZXMgbG9zdCkgZm9yIGNvbm5lY3Rpb24gJWxsdSwgdXNlciAlc0AlcyAoYXMgJXMpLCBhdXRoOiAlcwBYLjUwOSBjaXBoZXJzIG1pc21hdGNoOiBzaG91bGQgYmUgJyVzJyBidXQgaXMgJyVzJwBYLjUwOSBpc3N1ZXIgbWlzbWF0Y2g6IHNob3VsZCBiZSAnJXMnIGJ1dCBpcyAnJXMnAFguNTA5IHN1YmplY3QgbWlzbWF0Y2g6IHNob3VsZCBiZSAnJXMnIGJ1dCBpcyAnJXMnAEZhaWxlZCB0byBhY3RpdmF0ZSBkZWZhdWx0IHJvbGUgJXMgZm9yICVzAENvdWxkIG5vdCBnZW5lcmF0ZSBSU0EgcHJpdmF0ZSBrZXkgcmVxdWlyZWQgZm9yIFguNTA5IGNlcnRpZmljYXRlLgBDb3VsZCBub3Qgd3JpdGUga2V5IGZpbGU6ICVzAENvdWxkIG5vdCBzZXQgZmlsZSBwZXJtaXNzaW9uIGZvciAlcwBDb3VsZCBub3QgcmVhZCBDQSBrZXkgZmlsZTogJXMAQ291bGQgbm90IHJlYWQgQ0EgY2VydGlmaWNhdGUgZmlsZTogJXMAQ291bGQgbm90IGdlbmVyYXRlIFguNTA5IGNlcnRpZmljYXRlLgBDb3VsZCBub3Qgd3JpdGUgY2VydGlmaWNhdGUgZmlsZTogJXMAQ291bGQgbm90IGdlbmVyYXRlIFJTQSBQcml2YXRlL1B1YmxpYyBrZXkgcGFpcgBDb3VsZCBub3Qgd3JpdGUgcHJpdmF0ZSBrZXkgZmlsZTogJXMAQ291bGQgbm90IHdyaXRlIHB1YmxpYyBrZXkgZmlsZTogJXMAU2tpcHBpbmcgZ2VuZXJhdGlvbiBvZiBTU0wgY2VydGlmaWNhdGVzIGFzIG9wdGlvbnMgcmVsYXRlZCB0byBTU0wgYXJlIHNwZWNpZmllZC4AU2tpcHBpbmcgZ2VuZXJhdGlvbiBvZiBTU0wgY2VydGlmaWNhdGVzIGFzIGNlcnRpZmljYXRlIGZpbGVzIGFyZSBwcmVzZW50IGluIGRhdGEgZGlyZWN0b3J5LgBBdXRvIGdlbmVyYXRlZCBTU0wgY2VydGlmaWNhdGVzIGFyZSBwbGFjZWQgaW4gZGF0YSBkaXJlY3RvcnkuAFNraXBwaW5nIGdlbmVyYXRpb24gb2YgU1NMIGNlcnRpZmljYXRlcyBhcyAtLWF1dG9fZ2VuZXJhdGVfY2VydHMgaXMgc2V0IHRvIE9GRi4AU2tpcHBpbmcgZ2VuZXJhdGlvbiBvZiBSU0Ega2V5IHBhaXIgdGhyb3VnaCAlcyBhcyBvcHRpb25zIHJlbGF0ZWQgdG8gUlNBIGtleXMgYXJlIHNwZWNpZmllZC4AU2tpcHBpbmcgZ2VuZXJhdGlvbiBvZiBSU0Ega2V5IHBhaXIgdGhyb3VnaCAlcyBhcyBrZXkgZmlsZXMgYXJlIHByZXNlbnQgaW4gZGF0YSBkaXJlY3RvcnkuAEF1dG8gZ2VuZXJhdGVkIFJTQSBrZXkgZmlsZXMgdGhyb3VnaCAlcyBhcmUgcGxhY2VkIGluIGRhdGEgZGlyZWN0b3J5LgBTa2lwcGluZyBnZW5lcmF0aW9uIG9mIFJTQSBrZXkgcGFpciBhcyAlcyBpcyBzZXQgdG8gT0ZGLgAncHJveGllc19wcml2JyBlbnRyeSAnJXNAJXMgJXNAJXMnIGlnbm9yZWQgaW4gLS1za2lwLW5hbWUtcmVzb2x2ZSBtb2RlLgBUaGUgcGx1Z2luICclLipzJyB1c2VkIHRvIGF1dGhlbnRpY2F0ZSB1c2VyICclcydAJyUuKnMnIGlzIG5vdCBsb2FkZWQuIE5vYm9keSBjYW4gY3VycmVudGx5IGxvZ2luIHVzaW5nIHRoaXMgYWNjb3VudC4AVGhlIHBsdWdpbiAnJXMnIGlzIHVzZWQgdG8gYXV0aGVudGljYXRlIHVzZXIgJyVzJ0AnJS4qcycsICVzIGNvbmZpZ3VyZWQuIE5vYm9keSBjYW4gY3VycmVudGx5IGxvZ2luIHVzaW5nIHRoaXMgYWNjb3VudC4AQ291bGQgbm90IGxvYWQgbXlzcWwucm9sZV9lZGdlcyBhbmQgbXlzcWwuZGVmYXVsdF9yb2xlcyB0YWJsZXMuIEFDTCBERExzIHdpbGwgbm90IHdvcmsgdW5sZXNzIHRoZSBNeVNRTCB1cGdyYWRlIHByb2NlZHVyZSBpcyBwZXJmb3JtZWQuACd1c2VyJyBlbnRyeSAnJXNAJXMnIGlnbm9yZWQgaW4gLS1za2lwLW5hbWUtcmVzb2x2ZSBtb2RlLgBGYXRhbCBlcnJvcjogQ291bGQgbm90IHJlYWQgdGhlIGNvbHVtbiAnYXV0aGVudGljYXRpb25fc3RyaW5nJyBmcm9tIHRhYmxlICdteXNxbC51c2VyJy4gUGxlYXNlIHBlcmZvcm0gdGhlIE15U1FMIHVwZ3JhZGUgcHJvY2VkdXJlLgBVc2VyIGVudHJ5ICclcydAJyVzJyBoYXMgYSBkZXByZWNhdGVkIHByZS00LjEgcGFzc3dvcmQuIFRoZSB1c2VyIHdpbGwgYmUgaWdub3JlZCBhbmQgbm8gb25lIGNhbiBsb2dpbiB3aXRoIHRoaXMgdXNlciBhbnltb3JlLgBVc2VyIGVudHJ5ICclcydAJyVzJyBoYXMgYW4gZW1wdHkgcGx1Z2luIHZhbHVlLiBUaGUgdXNlciB3aWxsIGJlIGlnbm9yZWQgYW5kIG5vIG9uZSBjYW4gbG9naW4gd2l0aCB0aGlzIHVzZXIgYW55bW9yZS4ARm91bmQgaW52YWxpZCBwYXNzd29yZCBmb3IgdXNlcjogJyVzQCVzJzsgSWdub3JpbmcgdXNlcgAndXNlcicgZW50cnkgJyVzQCVzJyBoYXMgdGhlIHBhc3N3b3JkIGlnbm9yZSBmbGFnIHJhaXNlZCwgYnV0IGl0cyBhdXRoZW50aWNhdGlvbiBwbHVnaW4gZG9lc24ndCBzdXBwb3J0IHBhc3N3b3JkIGV4cGlyYXRpb24uIFRoZSB1c2VyIGlkIHdpbGwgYmUgaWdub3JlZC4AU29tZSBvZiB0aGUgdXNlciBhY2NvdW50cyB3aXRoIFNVUEVSIHByaXZpbGVnZXMgd2VyZSBkaXNhYmxlZCBiZWNhdXNlIG9mIGVtcHR5IG15c3FsLnVzZXIucGx1Z2luIHZhbHVlLiBJZiB5b3UgYXJlIHVwZ3JhZGluZyBmcm9tIE15U1FMIDUuNiB0byBNeVNRTCA1LjcgaXQgbWVhbnMgdGhhdCBzdWJzdGl0dXRpb24gZm9yIHRoZSBlbXB0eSBwbHVnaW4gY29sdW1uIHdhcyBub3QgcG9zc2libGUuIFByb2JhYmx5IGJlY2F1c2Ugb2YgcHJlIDQuMSBwYXNzd29yZCBoYXNoLiBJZiB5b3VyIGFjY291bnQgaXMgZGlzYWJsZWQgeW91IHdpbGwgbmVlZCB0byBwZXJmb3JtIHRoZSBNeVNRTCB1cGdyYWRlIHByb2NlZHVyZS4gRm9yIGNvbXBsZXRlIGluc3RydWN0aW9ucyBvbiBob3cgdG8gdXBncmFkZSBNeVNRTCB0byBhIG5ldyB2ZXJzaW9uIHBsZWFzZSBzZWUgdGhlICdVcGdyYWRpbmcgTXlTUUwnIHNlY3Rpb24gZnJvbSB0aGUgTXlTUUwgbWFudWFsLgBGb3VuZCBhbiBlbnRyeSBpbiB0aGUgJ2RiJyB0YWJsZSB3aXRoIGVtcHR5IGRhdGFiYXNlIG5hbWU7IFNraXBwZWQAJ2RiJyBlbnRyeSAnJXMgJXNAJXMnIGlnbm9yZWQgaW4gLS1za2lwLW5hbWUtcmVzb2x2ZSBtb2RlLgAnZGInIGVudHJ5ICclcyAlc0AlcycgaGFkIGRhdGFiYXNlIGluIG1peGVkIGNhc2UgdGhhdCBoYXMgYmVlbiBmb3JjZWQgdG8gbG93ZXJjYXNlIGJlY2F1c2UgbG93ZXJfY2FzZV90YWJsZV9uYW1lcyBpcyBzZXQuIEl0IHdpbGwgbm90IGJlIHBvc3NpYmxlIHRvIHJlbW92ZSB0aGlzIHByaXZpbGVnZSB1c2luZyBSRVZPS0UuAFRoZSBzeXN0ZW0gdGFibGUgbXlzcWwucHJveGllc19wcml2IGlzIG1pc3NpbmcuIFBsZWFzZSBwZXJmb3JtIHRoZSBNeVNRTCB1cGdyYWRlIHByb2NlZHVyZS4ARmF0YWwgZXJyb3I6IENhbid0IG9wZW4gYW5kIGxvY2sgcHJpdmlsZWdlIHRhYmxlczogJXMARmF0YWw6IGNhbid0IGluaXRpYWxpemUgZ3JhbnQgc3Vic3lzdGVtIC0gJyVzJwAncHJvY3NfcHJpdicgZW50cnkgJyVzICVzQCVzJyBpZ25vcmVkIGluIC0tc2tpcC1uYW1lLXJlc29sdmUgbW9kZS4AJ3Byb2NzX3ByaXYnIGVudHJ5ICclcycgaWdub3JlZCwgYmFkIHJvdXRpbmUgdHlwZQAndGFibGVzX3ByaXYnIGVudHJ5ICclcyAlc0AlcycgaWdub3JlZCBpbiAtLXNraXAtbmFtZS1yZXNvbHZlIG1vZGUuAEZhaWxlZCB0byBhZGQgJXMgaW4gZXh0cmFfdXNlcnMuIEJpbmFyeSBsb2cgZW50cnkgbWF5IG1pc3Mgc29tZSBvZiB0aGUgdXNlcnMuAFVuYWJsZSB0byBzdGFydCBzZXJ2ZXIuIFRoZSBkYXRhIGRpY3Rpb25hcnkgc2NoZW1hICclcycgZG9lcyBub3QgZXhpc3QuAFVuYWJsZSB0byBzdGFydCBzZXJ2ZXIuIFRoZSBkYXRhIGRpY3Rpb25hcnkgdGFibGUgJyVzJyBkb2VzIG5vdCBleGlzdC4ARmFpbGVkIHRvIGluaXRpYWxpemUgREQgU3RvcmFnZSBFbmdpbmUARm91bmQgcGFydGlhbGx5IHVwZ3JhZGVkIERELiBBYm9ydGluZyB1cGdyYWRlIGFuZCBkZWxldGluZyBhbGwgREQgdGFibGVzLiBTdGFydCB0aGUgdXBncmFkZSBwcm9jZXNzIGFnYWluLgBGb3VuZCAuZnJtIGZpbGUgd2l0aCBzYW1lIG5hbWUgYXMgb25lIG9mIHRoZSBEaWN0aW9uYXJ5IFRhYmxlcy4AQ3JlYXRlZCBEYXRhIERpY3Rpb25hcnkgZm9yIHVwZ3JhZGUAQ2FuJ3QgZmluZCBlcnJvci1tZXNzYWdlIGZpbGUgJyVzJy4gQ2hlY2sgZXJyb3ItbWVzc2FnZSBmaWxlIGxvY2F0aW9uIGFuZCAnbGMtbWVzc2FnZXMtZGlyJyBjb25maWd1cmF0aW9uIGRpcmVjdGl2ZS4AVXNpbmcgcHJlIDUuNSBzZW1hbnRpY3MgdG8gbG9hZCBlcnJvciBtZXNzYWdlcyBmcm9tICVzLiBJZiB0aGlzIGlzIG5vdCBpbnRlbmRlZCwgcmVmZXIgdG8gdGhlIGRvY3VtZW50YXRpb24gZm9yIHZhbGlkIHVzYWdlIG9mIC0tbGMtbWVzc2FnZXMtZGlyIGFuZCAtLWxhbmd1YWdlIHBhcmFtZXRlcnMuAEVycm9yIG1lc3NhZ2UgZmlsZSAnJXMnIGhhZCBvbmx5ICVkIGVycm9yIG1lc3NhZ2VzLCBidXQgaXQgc2hvdWxkIGNvbnRhaW4gYXQgbGVhc3QgJWQgZXJyb3IgbWVzc2FnZXMuIENoZWNrIHRoYXQgdGhlIGFib3ZlIGZpbGUgaXMgdGhlIHJpZ2h0IHZlcnNpb24gZm9yIHRoaXMgcHJvZ3JhbSEATm90IGVub3VnaCBtZW1vcnkgZm9yIG1lc3NhZ2VmaWxlICclcycAQ2FuJ3QgcmVhZCBmcm9tIG1lc3NhZ2VmaWxlICclcycARm91bmQgaW5jb21wYXRpYmxlIERFQ0lNQUwgZmllbGQgJyVzJyBpbiAlczsgUGxlYXNlIGRvICJBTFRFUiBUQUJMRSBgJXNgIEZPUkNFIiB0byBmaXggaXQhAEZvdW5kIGluY29tcGF0aWJsZSBZRUFSKHgpIGZpZWxkICclcycgaW4gJXM7IFBsZWFzZSBkbyAiQUxURVIgVEFCTEUgYCVzYCBGT1JDRSIgdG8gZml4IGl0IQAnJXMnIGhhZCBubyBvciBpbnZhbGlkIGNoYXJhY3RlciBzZXQsIGFuZCBkZWZhdWx0IGNoYXJhY3RlciBzZXQgaXMgbXVsdGktYnl0ZSwgc28gY2hhcmFjdGVyIGNvbHVtbiBzaXplcyBtYXkgaGF2ZSBjaGFuZ2VkAEZvdW5kIHdyb25nIGtleSBkZWZpbml0aW9uIGluICVzOyBQbGVhc2UgZG8gIkFMVEVSIFRBQkxFIGAlc2AgRk9SQ0UgIiB0byBmaXggaXQhAFVuYWJsZSB0byBvcGVuIGZpbGUgJXMARXJyb3IgaW4gcmVhZGluZyBmaWxlICVzAFRhYmxlICclcycgd2FzIGNyZWF0ZWQgd2l0aCBhIGRpZmZlcmVudCB2ZXJzaW9uIG9mIE15U1FMIGFuZCBjYW5ub3QgYmUgcmVhZABVbmFibGUgdG8gcmVhZCB2aWV3ICVzAEZpbGUgJXMgaGFzIHVua25vd24gdHlwZSBpbiBpdHMgaGVhZGVyLgBJbmNvcnJlY3QgaW5mb3JtYXRpb24gaW4gZmlsZSAlcwBDYW4ndCBvcGVuIGFuZCBsb2NrIHByaXZpbGVnZSB0YWJsZXM6ICVzAFBsdWdpbiAnJXMnIGNhbm5vdCBzdWJzY3JpYmUgdG8gTVlTUUxfQVVESVRfQVVUSE9SSVpBVElPTiBldmVudHMuIEN1cnJlbnRseSBub3Qgc3VwcG9ydGVkLgBQbHVnaW4gJyVzJyBoYXMgaW52YWxpZCBkYXRhLgBGYXRhbCBlcnJvcjogT09NIHdoaWxlIGluaXRpYWxpemluZyB0aW1lIHpvbmVzAENhbid0IG9wZW4gYW5kIGxvY2sgdGltZSB6b25lIHRhYmxlOiAlcyB0cnlpbmcgdG8gbGl2ZSB3aXRob3V0IHRoZW0ARmF0YWwgZXJyb3I6IE91dCBvZiBtZW1vcnkgd2hpbGUgbG9hZGluZyBteXNxbC50aW1lX3pvbmVfbGVhcF9zZWNvbmQgdGFibGUARmF0YWwgZXJyb3I6IFdoaWxlIGxvYWRpbmcgbXlzcWwudGltZV96b25lX2xlYXBfc2Vjb25kIHRhYmxlOiB0b28gbXVjaCBsZWFwcwBGYXRhbCBlcnJvcjogRXJyb3Igd2hpbGUgbG9hZGluZyBteXNxbC50aW1lX3pvbmVfbGVhcF9zZWNvbmQgdGFibGUARmF0YWwgZXJyb3I6IElsbGVnYWwgb3IgdW5rbm93biBkZWZhdWx0IHRpbWUgem9uZSAnJXMnAENhbid0IGZpbmQgZGVzY3JpcHRpb24gb2YgdGltZSB6b25lICclLipzJwBDYW4ndCBmaW5kIGRlc2NyaXB0aW9uIG9mIHRpbWUgem9uZSAnJXUnAEVycm9yIHdoaWxlIGxvYWRpbmcgdGltZSB6b25lIGRlc2NyaXB0aW9uIGZyb20gbXlzcWwudGltZV96b25lX3RyYW5zaXRpb25fdHlwZSB0YWJsZTogdG9vIGJpZyB0cmFuc2l0aW9uIHR5cGUgaWQARXJyb3Igd2hpbGUgbG9hZGluZyB0aW1lIHpvbmUgZGVzY3JpcHRpb24gZnJvbSBteXNxbC50aW1lX3pvbmVfdHJhbnNpdGlvbl90eXBlIHRhYmxlOiBub3QgZW5vdWdoIHJvb20gZm9yIGFiYnJldmlhdGlvbnMARXJyb3Igd2hpbGUgbG9hZGluZyB0aW1lIHpvbmUgZGVzY3JpcHRpb24gZnJvbSBteXNxbC50aW1lX3pvbmVfdHJhbnNpdGlvbl90eXBlIHRhYmxlAEVycm9yIHdoaWxlIGxvYWRpbmcgdGltZSB6b25lIGRlc2NyaXB0aW9uIGZyb20gbXlzcWwudGltZV96b25lX3RyYW5zaXRpb24gdGFibGU6IHRvbyBtdWNoIHRyYW5zaXRpb25zAEVycm9yIHdoaWxlIGxvYWRpbmcgdGltZSB6b25lIGRlc2NyaXB0aW9uIGZyb20gbXlzcWwudGltZV96b25lX3RyYW5zaXRpb24gdGFibGU6IGJhZCB0cmFuc2l0aW9uIHR5cGUgaWQARXJyb3Igd2hpbGUgbG9hZGluZyB0aW1lIHpvbmUgZGVzY3JpcHRpb24gZnJvbSBteXNxbC50aW1lX3pvbmVfdHJhbnNpdGlvbiB0YWJsZQBsb2FkaW5nIHRpbWUgem9uZSB3aXRob3V0IHRyYW5zaXRpb24gdHlwZXMAT3V0IG9mIG1lbW9yeSB3aGlsZSBsb2FkaW5nIHRpbWUgem9uZSBkZXNjcmlwdGlvbgBVbmFibGUgdG8gYnVpbGQgbWt0aW1lIG1hcCBmb3IgdGltZSB6b25lAE91dCBvZiBtZW1vcnkgd2hpbGUgbG9hZGluZyB0aW1lIHpvbmUARmF0YWwgZXJyb3I6IE91dCBvZiBtZW1vcnkgd2hpbGUgc2V0dGluZyBuZXcgdGltZSB6b25lAFJlcGxpY2EgU1FMIHRocmVhZCBpcyBzdG9wcGVkIGJlY2F1c2UgVU5USUwgY29uZGl0aW9uIGlzIGJhZCglczolbGx1KS4AUmVwbGljYSBTUUwgdGhyZWFkIHN0b3BwZWQgYmVjYXVzZSBpdCByZWFjaGVkIGl0cyBVTlRJTCBwb3NpdGlvbiAlbGx1AFJlcGxpY2EgU1FMIHRocmVhZCBzdG9wcGVkIGJlY2F1c2UgVU5USUwgU1FMX0JFRk9SRV9HVElEUyAlcyBpcyBhbHJlYWR5IGFwcGxpZWQAUmVwbGljYSBTUUwgdGhyZWFkIHN0b3BwZWQgYmVjYXVzZSBpdCByZWFjaGVkIFVOVElMIFNRTF9CRUZPUkVfR1RJRFMgJXMAUmVwbGljYSBTUUwgdGhyZWFkIHN0b3BwZWQgYmVjYXVzZSBpdCByZWFjaGVkIFVOVElMIFNRTF9BRlRFUl9HVElEUyAlcwBSZXBsaWNhIFNRTCB0aHJlYWQgc3RvcHBlZCBhY2NvcmRpbmcgdG8gVU5USUwgU1FMX0FGVEVSX01UU19HQVBTIGFzIGl0IGhhcyBwcm9jZXNzZWQgYWxsIGdhcCB0cmFuc2FjdGlvbnMgbGVmdCBmcm9tIHRoZSBwcmV2aW91cyByZXBsaWNhIHNlc3Npb24uAEdyb3VwIFJlcGxpY2F0aW9uIHBsdWdpbiBpcyBub3QgaW5zdGFsbGVkLgBUaGUgdHJhbnNhY3Rpb24gb3duZWQgR1RJRCBpcyBhbHJlYWR5IGluIHRoZSAlcyB0YWJsZSwgd2hpY2ggaXMgY2F1c2VkIGJ5IGFuIGV4cGxpY2l0IG1vZGlmeWluZyBmcm9tIHVzZXIgY2xpZW50LgBGYWlsZWQgdG8gZGVsZXRlIHRoZSByb3c6ICclcycgZnJvbSB0aGUgZ3RpZF9leGVjdXRlZCB0YWJsZS4ARmFpbGVkIHRvIGNvbXByZXNzIHRoZSBndGlkX2V4ZWN1dGVkIHRhYmxlLgBGYWlsZWQgdG8gY29tcHJlc3MgdGhlIGd0aWRfZXhlY3V0ZWQgdGFibGUsIGJlY2F1c2UgaXQgaXMgZmFpbGVkIHRvIGFsbG9jYXRlIHRoZSBUSEQuAEZhaWxlZCB0byBpbml0aWFsaXplIHRocmVhZCBhdHRyaWJ1dGUgd2hlbiBjcmVhdGluZyBjb21wcmVzc2lvbiB0aHJlYWQuAENhbiBub3QgY3JlYXRlIHRocmVhZCB0byBjb21wcmVzcyBndGlkX2V4ZWN1dGVkIHRhYmxlIChlcnJubz0gJWQpAENvdWxkIG5vdCBqb2luIGd0aWRfZXhlY3V0ZWQgdGFibGUgY29tcHJlc3Npb24gdGhyZWFkLiBlcnJvcjolZABDYW4ndCBzdGFydCBzZXJ2ZXIgOiBJbml0aWFsaXplIHNlY3VyaXR5IGRlc2NyaXB0b3I6ICVzAENhbid0IHN0YXJ0IHNlcnZlciA6IFNldCBzZWN1cml0eSBkZXNjcmlwdG9yOiAlcwBDYW4ndCBzdGFydCBzZXJ2ZXIgOiBOYW1lZCBQaXBlICIlcyIgYWxyZWFkeSBpbiB1c2UuAE5EQiBSZXBsaWNhIDogQXQgU1FMIHRocmVhZCBzdGFydCBhcHBseWluZyBlcG9jaCAlbGx1LyVsbHUgKCVsbHUpIGZyb20gU291cmNlIFNlcnZlcklkICV1IHdoaWNoIGlzIGxvd2VyIHRoYW4gcHJldmlvdXNseSBhcHBsaWVkIGVwb2NoICVsbHUvJWxsdSAoJWxsdSkuICBHcm91cCBTb3VyY2UgTG9nIDogJXMgIEdyb3VwIFNvdXJjZSBMb2cgUG9zIDogJWxsdS4gIENoZWNrIHJlcGxpY2EgcG9zaXRpb25pbmcuAE5EQiBSZXBsaWNhIDogU1FMIHRocmVhZCBzdG9wcGVkIGFzIGFwcGx5aW5nIGVwb2NoICVsbHUvJWxsdSAoJWxsdSkgZnJvbSBTb3VyY2UgU2VydmVySWQgJXUgd2hpY2ggaXMgbG93ZXIgdGhhbiBwcmV2aW91c2x5IGFwcGxpZWQgZXBvY2ggJWxsdS8lbGx1ICglbGx1KS4gIEdyb3VwIFNvdXJjZSBMb2cgOiAlcyAgR3JvdXAgU291cmNlIExvZyBQb3MgOiAlbGx1AE5EQiBSZXBsaWNhIDogU1FMIHRocmVhZCBzdG9wcGVkIGFzIGF0dGVtcHRlZCB0byByZWFwcGx5IGFscmVhZHkgY29tbWl0dGVkIGVwb2NoICVsbHUvJWxsdSAoJWxsdSkgZnJvbSBzZXJ2ZXIgaWQgJXUuICBHcm91cCBTb3VyY2UgTG9nIDogJXMgIEdyb3VwIFNvdXJjZSBMb2cgUG9zIDogJWxsdS4ATkRCIFJlcGxpY2EgOiBTUUwgdGhyZWFkIHN0b3BwZWQgYXMgYXR0ZW1wdGluZyB0byBhcHBseSBuZXcgZXBvY2ggJWxsdS8lbGx1ICglbGx1KSB3aGlsZSBsb3dlciByZWNlaXZlZCBlcG9jaCAlbGx1LyVsbHUgKCVsbHUpIGhhcyBub3QgYmVlbiBjb21taXR0ZWQuICBTb3VyY2Ugc2VydmVyIGlkIDogJXUuICBHcm91cCBTb3VyY2UgTG9nIDogJXMgIEdyb3VwIFNvdXJjZSBMb2cgUG9zIDogJWxsdS4ATkRCIFJlcGxpY2E6IG1pc3NpbmcgZGF0YSBmb3IgJXMgdGltZXN0YW1wIGNvbHVtbiAldS4ATkRCIFJlcGxpY2E6IFRhYmxlICVzLiVzIGxvZ2dpbmcgZXhjZXB0aW9ucyB0byAlcy4lcwBOREIgUmVwbGljYTogVGFibGUgJXMuJXMgOiAlcywgbG93IGVwb2NoIHJlc29sdXRpb24ARm91bmQgdW5leHBlY3RlZCBmaWVsZCB0eXBlICV1AEZhaWxlZCB0byBjcmVhdGUgTmRiSW5mbwBGYWlsZWQgdG8gaW5pdCBOZGJJbmZvAG5kYl9zZXJpYWxpemVfY29uZDogVW5leHBlY3RlZCBtaXNtYXRjaCBvZiBmb3VuZCBhbmQgZXhwZWN0ZWQgbnVtYmVyIG9mIGZ1bmN0aW9uIGFyZ3VtZW50cyAldQAlcyAtICVzLiVzACVzAEluZm8gdGFibGUgaXMgbm90IHJlYWR5IHRvIGJlIHVzZWQuIFRhYmxlICclcy4lcycgY2Fubm90IGJlIG9wZW5lZC4ASW5mbyB0YWJsZSBpcyBub3QgcmVhZHkgdG8gYmUgdXNlZC4gVGFibGUgJyVzLiVzJyBjYW5ub3QgYmUgc2Nhbm5lZC4AQ29ycnVwdGVkIHRhYmxlICVzLiVzLiBDaGVjayBvdXQgdGFibGUgZGVmaW5pdGlvbi4ASW5mbyB0YWJsZSBoYXMgYSBwcm9ibGVtIHdpdGggaXRzIGtleSBmaWVsZChzKS4gVGFibGUgJyVzLiVzJyBleHBlY3RlZCBmaWVsZCAjJXUgdG8gYmUgJyVzJyBidXQgZm91bmQgJyVzJyBpbnN0ZWFkLgBDaG9vc2luZyB3b3JrZXIgaWQgJWx1LCB0aGUgZm9sbG93aW5nIGlzIGdvaW5nIHRvIGJlICVsdQBUcmFuc2FjdGlvbiBpcyB0YWdnZWQgd2l0aCBpbmNvbnNpc3RlbnQgbG9naWNhbCB0aW1lc3RhbXBzOiBzZXF1ZW5jZV9udW1iZXIgKCVsbGQpIDw9IGxhc3RfY29tbWl0dGVkICglbGxkKQBUcmFuc2FjdGlvbidzIHNlcXVlbmNlIG51bWJlciBpcyBpbmNvbnNpc3RlbnQgd2l0aCB0aGF0IG9mIGEgcHJlY2VkaW5nIG9uZTogc2VxdWVuY2VfbnVtYmVyICglbGxkKSA8PSBwcmV2aW91cyBzZXF1ZW5jZV9udW1iZXIgKCVsbGQpAEZvciB0aGUgY3JlYXRpb24gb2YgcmVwbGljYXRpb24gY2hhbm5lbHMgdGhlIGNvbm5lY3Rpb24gbWV0YWRhdGEgYW5kIGFwcGxpZXIgbWV0YWRhdGEgcmVwb3NpdG9yaWVzIG11c3QgYmUgc2V0IHRvIFRBQkxFAEZvciB0aGUgY3JlYXRpb24gb2YgcmVwbGljYXRpb24gY2hhbm5lbHMgdGhlIHNlcnZlciBpZCBtdXN0IGJlIGRpZmZlcmVudCBmcm9tIDAAUmVwbGljYTogV3JvbmcgcmVwb3NpdG9yeS4gUmVwb3NpdG9yeSBzaG91bGQgYmUgVEFCTEUARXJyb3IgY3JlYXRpbmcgY29ubmVjdGlvbiBtZXRhZGF0YTogJXMuAEVycm9yIGNoYW5naW5nIHRoZSB0eXBlIG9mIGNvbm5lY3Rpb24gbWV0YWRhdGEncyByZXBvc2l0b3J5OiAlcy4ASXQgaXMgbm90IHBvc3NpYmxlIHRvIGNoYW5nZSB0aGUgdHlwZSBvZiB0aGUgcmVsYXkgbG9nIHJlcG9zaXRvcnkgYmVjYXVzZSB0aGVyZSBhcmUgd29ya2VycyByZXBvc2l0b3JpZXMgd2l0aCBwb3NzaWJsZSBleGVjdXRpb24gZ2Fwcy4gVGhlIHZhbHVlIG9mIC0tcmVsYXlfbG9nX2luZm9fcmVwb3NpdG9yeSBpcyBhbHRlcmVkIHRvIG9uZSBvZiB0aGUgZm91bmQgV29ya2VyIHJlcG9zaXRvcmllcy4gVGhlIGdhcHMgaGF2ZSB0byBiZSBzb3J0ZWQgb3V0IGJlZm9yZSByZXN1bWluZyB3aXRoIHRoZSB0eXBlIGNoYW5nZS4ARXJyb3IgY3JlYXRpbmcgYXBwbGllciBtZXRhZGF0YTogJXMuAEVycm9yIGNoYW5naW5nIHRoZSB0eXBlIG9mIGFwcGxpZXIgbWV0YWRhdGEncyByZXBvc2l0b3J5OiAlcy4AQ291bGQgbm90IGRlbGV0ZSBmcm9tIFJlcGxpY2EgV29ya2VycyBpbmZvIHJlcG9zaXRvcnkuAENvdWxkIG5vdCBzdG9yZSB0aGUgcmVzZXQgUmVwbGljYSBXb3JrZXIgc3RhdGUgaW50byB0aGUgcmVwbGljYSBpbmZvIHJlcG9zaXRvcnkuAEVycm9yIGluIGNoZWNraW5nICVzIHJlcG9zaXRvcnkgaW5mbyB0eXBlIG9mICVzLgBSZXBsaWNhOiAlcwBSZXBsaWNhOiBDb3VsZCBub3QgY3JlYXRlIGNoYW5uZWwgbGlzdABSZXBsaWNhOiBUaGlzIHJlcGxpY2Egd2FzIGEgbXVsdGlzb3VyY2VkIHJlcGxpY2EgcHJldmlvdXNseSB3aGljaCBpcyBzdXBwb3J0ZWQgb25seSBieSBib3RoIFRBQkxFIGJhc2VkIGNvbm5lY3Rpb24gbWV0YWRhdGEgYW5kIGFwcGxpZXIgbWV0YWRhdGEgcmVwb3NpdG9yaWVzLiBGb3VuZCBvbmUgb3IgYm90aCBvZiB0aGUgaW5mbyByZXBvcyB0byBiZSB0eXBlIEZJTEUuIFNldCBib3RoIHJlcG9zIHRvIHR5cGUgVEFCTEUuAFJlcGxpY2E6IEZhaWxlZCB0byBpbml0aWFsaXplIHRoZSBjb25uZWN0aW9uIG1ldGFkYXRhIHN0cnVjdHVyZSBmb3IgY2hhbm5lbCAnJXMnOyBpdHMgcmVjb3JkIG1heSBzdGlsbCBiZSBwcmVzZW50IGluIHRoZSBhcHBsaWVyIG1ldGFkYXRhIHJlcG9zaXRvcnksIGNvbnNpZGVyIGRlbGV0aW5nIGl0LgBGYWlsZWQgdG8gaW5pdGlhbGl6ZSB0aGUgY29ubmVjdGlvbiBtZXRhZGF0YSBzdHJ1Y3R1cmUlcwBSZXBsaWNhOiBGYWlsZWQgdG8gY3JlYXRlIGEgY2hhbm5lbCBmcm9tIGNvbm5lY3Rpb24gbWV0YWRhdGEgcmVwb3NpdG9yeS4ARmFpbGVkIHRvIGNyZWF0ZSBhIG5ldyBpbmZvIGZpbGUgKGZpbGUgJyVzJywgZXJybm8gJWQpAEZhaWxlZCB0byBjcmVhdGUgYSBjYWNoZSBvbiBpbmZvIGZpbGUgKGZpbGUgJyVzJykARmFpbGVkIHRvIG9wZW4gdGhlIGV4aXN0aW5nIGluZm8gZmlsZSAoZmlsZSAnJXMnLCBlcnJubyAlZCkAU2VydmVyIG92ZXJjb21lcyB0aGUgdGVtcG9yYXJ5ICdvdXQgb2YgbWVtb3J5JyBpbiAnJWQnIHRyaWVzIHdoaWxlIGFsbG9jYXRpbmcgYSBuZXcgY2h1bmsgb2YgaW50ZXJ2YWxzIGZvciBzdG9yaW5nIEdUSURzLgBVbmtub3duIGNvc3QgY29uc3RhbnQgIiVzIiBpbiBteXNxbC5zZXJ2ZXJfY29zdCB0YWJsZQBJbnZhbGlkIHZhbHVlIGZvciBjb3N0IGNvbnN0YW50ICIlcyIgaW4gbXlzcWwuc2VydmVyX2Nvc3QgdGFibGU6ICUuMWYAVW5rbm93biBjb3N0IGNvbnN0YW50ICIlcyIgaW4gbXlzcWwuZW5naW5lX2Nvc3QgdGFibGUAVW5rbm93biBzdG9yYWdlIGVuZ2luZSAiJXMiIGluIG15c3FsLmVuZ2luZV9jb3N0IHRhYmxlAEludmFsaWQgZGV2aWNlIHR5cGUgJWQgZm9yICIlcyIgc3RvcmFnZSBlbmdpbmUgZm9yIGNvc3QgY29uc3RhbnQgIiVzIiBpbiBteXNxbC5lbmdpbmVfY29zdCB0YWJsZQBJbnZhbGlkIHZhbHVlIGZvciBjb3N0IGNvbnN0YW50ICIlcyIgZm9yICIlcyIgc3RvcmFnZSBlbmdpbmUgYW5kIGRldmljZSB0eXBlICVkIGluIG15c3FsLmVuZ2luZV9jb3N0IHRhYmxlOiAlLjFmAEVycm9yIHdoaWxlIHJlYWRpbmcgZnJvbSBteXNxbC5zZXJ2ZXJfY29zdCB0YWJsZS4ARXJyb3Igd2hpbGUgcmVhZGluZyBmcm9tIG15c3FsLmVuZ2luZV9jb3N0IHRhYmxlLgBGYWlsZWQgdG8gb3BlbiBvcHRpbWl6ZXIgY29zdCBjb25zdGFudCB0YWJsZXMAVW5zdXBwb3J0ZWQgbm9uLWlnbm9yYWJsZSBldmVudCBmZWQgaW50byB0aGUgZXZlbnQgc3RyZWFtLgBHVElEX0xPR19FVkVOVCBvciBBTk9OWU1PVVNfR1RJRF9MT0dfRVZFTlQgaXMgbm90IGV4cGVjdGVkIGluIGFuIGV2ZW50IHN0cmVhbSAlcy4AUVVFUlkoQkVHSU4pIGlzIG5vdCBleHBlY3RlZCBpbiBhbiBldmVudCBzdHJlYW0gaW4gdGhlIG1pZGRsZSBvZiBhICVzLgBRVUVSWShDT01NSVQgb3IgUk9MTEJBQ0spIG9yIFhJRF9MT0dfRVZFTlQgaXMgbm90IGV4cGVjdGVkIGluIGFuIGV2ZW50IHN0cmVhbSAlcy4AUVVFUlkoWEEgUk9MTEJBQ0spIGlzIG5vdCBleHBlY3RlZCBpbiBhbiBldmVudCBzdHJlYW0gJXMuAEV2ZW50IFNjaGVkdWxlcjogWyVzXS5bJXMuJXNdIGV4ZWN1dGlvbiBmYWlsZWQsIGZhaWxlZCB0byBhdXRoZW50aWNhdGUgdGhlIHVzZXIuAEV2ZW50IFNjaGVkdWxlcjogWyVzXS5bJXMuJXNdIGV4ZWN1dGlvbiBmYWlsZWQsIHVzZXIgbm8gbG9uZ2VyIGhhcyBFVkVOVCBwcml2aWxlZ2UuAEV2ZW50IFNjaGVkdWxlcjogJXNlcnJvciBkdXJpbmcgY29tcGlsYXRpb24gb2YgJXMuJXMARXZlbnQgU2NoZWR1bGVyOiBEcm9wcGluZyAlcy4lcwBOZGIgc2NoZW1hWyVzLiVzXTogJXMASW4gUkJSIG1vZGUsIFJlcGxpY2EgcmVjZWl2ZWQgaW5jb21wYXRpYmxlIERFQ0lNQUwgZmllbGQgKG9sZC1zdHlsZSBkZWNpbWFsIGZpZWxkKSBmcm9tIFNvdXJjZSB3aGlsZSBjcmVhdGluZyBjb252ZXJzaW9uIHRhYmxlLiBQbGVhc2UgY29uc2lkZXIgY2hhbmdpbmcgZGF0YXR5cGUgb24gU291cmNlIHRvIG5ldyBzdHlsZSBkZWNpbWFsIGJ5IGV4ZWN1dGluZyBBTFRFUiBjb21tYW5kIGZvciBjb2x1bW4gTmFtZTogJXMuJXMuJXMuAHJvb3RAbG9jYWxob3N0IGlzIGNyZWF0ZWQgd2l0aCBhbiBlbXB0eSBwYXNzd29yZCAhIFBsZWFzZSBjb25zaWRlciBzd2l0Y2hpbmcgb2ZmIHRoZSAtLWluaXRpYWxpemUtaW5zZWN1cmUgb3B0aW9uLgBBIHRlbXBvcmFyeSBwYXNzd29yZCBpcyBnZW5lcmF0ZWQgZm9yIHJvb3RAbG9jYWxob3N0OiAlcwBGYWlsZWQgdG8gb3BlbiB0aGUgYm9vdHN0cmFwIGZpbGUgJXMAQm9vdHN0cmFwcGluZyBjb21wbGV0ZQAtLWluaXRpYWxpemUgc3BlY2lmaWVkIGJ1dCB0aGUgZGF0YSBkaXJlY3RvcnkgaGFzIGZpbGVzIGluIGl0LiBBYm9ydGluZy4ALS1pbml0aWFsaXplIHNwZWNpZmllZCBvbiBhbiBleGlzdGluZyBkYXRhIGRpcmVjdG9yeS4ALS1pbml0aWFsaXplIHNwZWNpZmllZCBidXQgdGhlIGRhdGEgZGlyZWN0b3J5IGV4aXN0cyBhbmQgdGhlIHBhdGggaXMgdG9vIGxvbmcuIEFib3J0aW5nLgAtLWluaXRpYWxpemUgc3BlY2lmaWVkIGJ1dCB0aGUgZGF0YSBkaXJlY3RvcnkgZXhpc3RzIGFuZCBpcyBub3Qgd3JpdGFibGUuIEFib3J0aW5nLgBDcmVhdGluZyB0aGUgZGF0YSBkaXJlY3RvcnkgJXMAU3RhcnQgYmlubG9nX2R1bXAgdG8gc291cmNlX3RocmVhZF9pZCgldSkgcmVwbGljYV9zZXJ2ZXIoJXUpLCBwb3MoJXMsICVsbHUpAHNvdXJjZSBzZW5kcyBoZWFydGJlYXQgbWVzc2FnZQB0aGUgcmVzdCBvZiBoZWFydGJlYXQgaW5mbyBza2lwcGVkIC4uLgBTb3VyY2UgaXMgY29uZmlndXJlZCB0byBsb2cgcmVwbGljYXRpb24gZXZlbnRzIHdpdGggY2hlY2tzdW0sIGJ1dCB3aWxsIG5vdCBzZW5kIHN1Y2ggZXZlbnRzIHRvIHJlcGxpY2FzIHRoYXQgY2Fubm90IHByb2Nlc3MgdGhlbQBOREI6IFF1ZXJ5ICclcycgZmFpbGVkLCBlcnJvcjogJWQ6ICVzAEtpbGxpbmcgdGhyZWFkICVsdQBQbHVnaW4gJXMgaXMgZGVpbml0aWFsaXppbmcgYSB0aHJlYWQgYnV0IGxlZnQgYSBzZXNzaW9uIGF0dGFjaGVkLiBEZXRhY2hpbmcgaXQgZm9yY2VmdWxseS4ARmFpbGVkIHRvIGRldGFjaCB0aGUgc2Vzc2lvbi4AQ2xvc2VkIGZvcmNlZnVsbHkgJXUgc2Vzc2lvbiVzIGxlZnQgb3BlbmVkIGJ5IHBsdWdpbiAlcwBGYWlsZWQgdG8gZGVjcmVtZW50IHRoZSBudW1iZXIgb2YgdGhyZWFkcwBQbHVnaW4gJXMgZGlkIG5vdCBkZWluaXRpYWxpemUgJXUgdGhyZWFkcwBLaWxsZWQgJXUgdGhyZWFkcyBvZiBwbHVnaW4gJXMATkRCIFJlcGxpY2EgOiBDb3VsZCBub3QgZGV0ZXJtaW5lIG1heGltdW0gcmVwbGljYXRlZCBlcG9jaCBmcm9tICVzLiVzIGF0IFJlcGxpY2Egc3RhcnQsIGVycm9yICV1ICVzAE5EQiBSZXBsaWNhIDogTWF4UmVwbGljYXRlZEVwb2NoIHNldCB0byAlbGx1ICgldS8ldSkgYXQgUmVwbGljYSBzdGFydABOREI6IE5vZGVJRCBpcyAlbHUsIG1hbmFnZW1lbnQgc2VydmVyICclczolbHUnAHRpZCAldTogbm9kZVsldV0gdHJhbnNhY3Rpb25faGludD0ldSwgdHJhbnNhY3Rpb25fbm9faGludD0ldQBOREIgSW50ZXJuYWwgZXJyb3I6IERlZmF1bHQgdmFsdWVzIGRpZmZlciBmb3IgY29sdW1uICV1LCBuZGJfZGVmYXVsdDogJWQATkRCIEludGVybmFsIGVycm9yOiBDb2x1bW4gJXUgaGFzIG5hdGl2ZSBkZWZhdWx0LCBidXQgc2hvdWxkbid0LiBGbGFncz0ldSwgdHlwZT0ldQBmaWVsZFsgbmFtZTogJyVzJywgdHlwZTogJXUsIHJlYWxfdHlwZTogJXUsIGZsYWdzOiAweCV4LCBpc19udWxsOiAlZF0AbmRiQ29sW25hbWU6ICclcycsIHR5cGU6ICV1LCBjb2x1bW5fbm86ICVkLCBudWxsYWJsZTogJWRdAGZpeF91bmlxdWVfaW5kZXhfYXR0cl9vcmRlcjogbXlfbWFsbG9jKCV1KSBmYWlsdXJlAE5EQiBSZXBsaWNhIDogTWFsZm9ybWVkIGV2ZW50IHJlY2VpdmVkIG9uIHRhYmxlICVzIGNhbm5vdCBwYXJzZS4gIFN0b3BwaW5nIFJlcGxpY2EuAE5EQiBSZXBsaWNhIDogQ29uZmxpY3QgZnVuY3Rpb24gJXMgZGVmaW5lZCBvbiB0YWJsZSAlcyByZXF1aXJlcyBuZGJfcmVwbGljYV9jb25mbGljdF9yb2xlIHZhcmlhYmxlIHRvIGJlIHNldC4gIFN0b3BwaW5nIHJlcGxpY2EuAE5EQiBSZXBsaWNhIDogVHJhbnNhY3Rpb25hbCBjb25mbGljdCBkZXRlY3Rpb24gZGVmaW5lZCBvbiB0YWJsZSAlcywgYnV0IGV2ZW50cyByZWNlaXZlZCB3aXRob3V0IHRyYW5zYWN0aW9uIGlkcy4gIENoZWNrIC0tbmRiLWxvZy10cmFuc2FjdGlvbi1pZCBzZXR0aW5nIG9uIHVwc3RyZWFtIENsdXN0ZXIuAE5EQiBSZXBsaWNhIDogQmlubG9nIGV2ZW50IG9uIHRhYmxlICVzIG1pc3NpbmcgaW5mbyBuZWNlc3NhcnkgZm9yIGNvbmZsaWN0IGRldGVjdGlvbi4gIENoZWNrIGJpbmxvZyBmb3JtYXQgb3B0aW9ucyBvbiB1cHN0cmVhbSBjbHVzdGVyLgBFcnJvciAlbHUgaW4gcmVhZEF1dG9JbmNyZW1lbnRWYWx1ZSgpOiAlcwBmb3VuZCB1bmNvbW1pdHRlZCBhdXRvY29tbWl0K3Jid3IgdHJhbnNhY3Rpb24sIGNvbW1pdCBzdGF0dXM6ICVkAE5kYiByZXBsaWNhIHJldHJpZWQgdHJhbnNhY3Rpb24gJXUgdGltZShzKSBpbiB2YWluLiAgR2l2aW5nIHVwLgBFcnJvciAlbHUgaW4gOjp1cGRhdGVfY3JlYXRlX2luZm8oKTogJXMATkRCOiBhbGxvY2F0aW5nIHRhYmxlIHNoYXJlIGZvciAlcyBmYWlsZWQATkRCIEJpbmxvZzogKCVkKSVzAE5EQiBCaW5sb2c6IENSRUFURSBUQUJMRSBFdmVudDogJXMATkRCIEJpbmxvZzogRkFJTEVEIENSRUFURSBUQUJMRSBldmVudCBvcGVyYXRpb25zLiBFdmVudDogJXMATkRCIEJpbmxvZzogUkVOQU1FIEV2ZW50OiAlcwBOREIgQmlubG9nOiBGQUlMRUQgY3JlYXRlIGV2ZW50IG9wZXJhdGlvbnMgZHVyaW5nIFJFTkFNRS4gRXZlbnQgJXMAVW5leHBlY3RlZCByZW5hbWUgY2FzZSBkZXRlY3RlZCwgc3FsX2NvbW1hbmQ6ICVkAEVycm9yICVsdSBpbiA6OmdldF9hdXRvX2luY3JlbWVudCgpOiAlcwBDYWxsaW5nIG5kYmNsdXN0ZXJfY3JlYXRlX2JpbmxvZ19zZXR1cCglcykgaW4gOjpvcGVuAHRhYmxlICclcycgb3BlbmVkIHJlYWQgb25seQBOREI6ICctLWluaXRpYWxpemUnIC0+IG5kYmNsdXN0ZXIgcGx1Z2luIGRpc2FibGVkAE5EQjogQ2hhbmdlZCBnbG9iYWwgdmFsdWUgb2YgYmlubG9nX2Zvcm1hdCBmcm9tIFNUQVRFTUVOVCB0byBNSVhFRABOREJfU0hBUkU6IHRyYWlsaW5nIHNoYXJlICVzLCByZWxlYXNlZCBieSBjbG9zZV9jYWNoZWRfdGFibGVzAE5EQl9TSEFSRTogJXMgYWxyZWFkeSBleGlzdHMgdXNlX2NvdW50PSVkLiBNb3ZpbmcgYXdheSBmb3Igc2FmZXR5LCBidXQgcG9zc2libGUgbWVtbGVhay4AaGFuZGxlX3RyYWlsaW5nX3NoYXJlOiAlcyB1c2VfY291bnQ6ICV1AG5kYmNsdXN0ZXJfZ2V0X3NoYXJlOiAlcyB1c2VfY291bnQ6ICV1AG5kYmNsdXN0ZXJfcmVhbF9mcmVlX3NoYXJlOiAlcyB1c2VfY291bnQ6ICV1AG5kYmNsdXN0ZXJfcmVhbF9mcmVlX3NoYXJlOiAlcywgc3RpbGwgb3BlbiAtIGlnbm9yZWQgJ2ZyZWUnIChsZWFrZWQ/KQBuZGJjbHVzdGVyX2ZyZWVfc2hhcmU6ICVzIHVzZV9jb3VudDogJXUAbmRiY2x1c3Rlcl9tYXJrX3NoYXJlX2Ryb3BwZWQ6ICVzIHVzZV9jb3VudDogJXUAbmRiY2x1c3Rlcl9tYXJrX3NoYXJlX2Ryb3BwZWQ6IGRlc3Ryb3lzIHNoYXJlICVzAENvdWxkIG5vdCBhbGxvY2F0ZSBUaGRfbmRiIG9iamVjdABOREIgQmlubG9nOiBOZGIgdGFibGVzIGluaXRpYWxseSByZWFkIG9ubHkuAG5kYiB1dGlsIHRocmVhZDogbWFsbG9jIGZhaWx1cmUsIHF1ZXJ5IGNhY2hlIG5vdCBtYWludGFpbmVkIHByb3Blcmx5AFRyeWluZyB0byBzZXQgbmRiX3JlY3ZfdGhyZWFkX2NwdV9tYXNrIHRvIGlsbGVnYWwgdmFsdWUgPSAlcywgaWdub3JlZABUcnlpbmcgdG8gc2V0IHRvbyBtYW55IENQVSdzIGluIG5kYl9yZWN2X3RocmVhZF9jcHVfbWFzaywgaWdub3JlZCB0aGlzIHZhcmlhYmxlLCBlcnJvbmV1cyB2YWx1ZSA9ICVzAGRidWdfY2hlY2tfc2hhcmVzIG9wZW46ACAgJXMuJXM6IHN0YXRlOiAlcygldSkgdXNlX2NvdW50OiAldQBkYnVnX2NoZWNrX3NoYXJlcyBkcm9wcGVkOgBJbnZhbGlkIChvbGQ/KSB0YWJsZSBvciBkYXRhYmFzZSBuYW1lICclcycAUmVjb3ZlcmluZyBhZnRlciBhIGNyYXNoIHVzaW5nICVzAENhbm5vdCBwZXJmb3JtIGF1dG9tYXRpYyBjcmFzaCByZWNvdmVyeSB3aGVuIC0tdGMtaGV1cmlzdGljLXJlY292ZXIgaXMgdXNlZABCYWQgbWFnaWMgaGVhZGVyIGluIHRjIGxvZwBSZWNvdmVyeSBmYWlsZWQhIFlvdSBtdXN0IGVuYWJsZSBleGFjdGx5ICVkIHN0b3JhZ2UgZW5naW5lcyB0aGF0IHN1cHBvcnQgdHdvLXBoYXNlIGNvbW1pdCBwcm90b2NvbABDcmFzaCByZWNvdmVyeSBmYWlsZWQuIEVpdGhlciBjb3JyZWN0IHRoZSBwcm9ibGVtIChpZiBpdCdzLCBmb3IgZXhhbXBsZSwgb3V0IG9mIG1lbW9yeSBlcnJvcikgYW5kIHJlc3RhcnQsIG9yIGRlbGV0ZSB0YyBsb2cgYW5kIHN0YXJ0IG15c3FsZCB3aXRoIC0tdGMtaGV1cmlzdGljLXJlY292ZXI9e2NvbW1pdHxyb2xsYmFja30ASGV1cmlzdGljIGNyYXNoIHJlY292ZXJ5IG1vZGUASGV1cmlzdGljIGNyYXNoIHJlY292ZXJ5IGZhaWxlZABQbGVhc2UgcmVzdGFydCBteXNxbGQgd2l0aG91dCAtLXRjLWhldXJpc3RpYy1yZWNvdmVyAEZhaWxlZCB0byBjcmVhdGUgb3IgcmVjb3ZlciByZXBsaWNhdGlvbiBpbmZvIHJlcG9zaXRvcmllcy4ARGV0ZWN0ZWQgbWlzY29uZmlndXJhdGlvbjogcmVwbGljYXRpb24gY2hhbm5lbCAnJS4xOTJzJyB3YXMgY29uZmlndXJlZCB3aXRoIEFVVE9fUE9TSVRJT04gPSAxLCBidXQgdGhlIHNlcnZlciB3YXMgc3RhcnRlZCB3aXRoIC0tZ3RpZC1tb2RlPW9mZi4gRWl0aGVyIHJlY29uZmlndXJlIHJlcGxpY2F0aW9uIHVzaW5nIENIQU5HRSBSRVBMSUNBVElPTiBTT1VSQ0UgVE8gU09VUkNFX0FVVE9fUE9TSVRJT04gPSAwIEZPUiBDSEFOTkVMICclLjE5MnMnLCBvciBjaGFuZ2UgR1RJRF9NT0RFIHRvIHNvbWUgdmFsdWUgb3RoZXIgdGhhbiBPRkYsIGJlZm9yZSBzdGFydGluZyB0aGUgcmVwbGljYSByZWNlaXZlciB0aHJlYWQuAFJlcGxpY2E6IENvdWxkIG5vdCBzdGFydCByZXBsaWNhIGZvciBjaGFubmVsICclcycuIG9wZXJhdGlvbiBkaXNjb250aW51ZWQAUmVwbGljYTogQ291bGQgbm90IHN0b3AgcmVwbGljYSBmb3IgY2hhbm5lbCAnJXMnIG9wZXJhdGlvbiBkaXNjb250aW51ZWQARXJyb3IgZHVyaW5nIC0tcmVsYXktbG9nLXJlY292ZXJ5OiBDb3VsZCBub3QgbG9jYXRlIHJvdGF0ZSBldmVudCBmcm9tIHRoZSBzb3VyY2UuAEVycm9yIGR1cmluZyAtLXJlbGF5LWxvZy1yZWNvdmVyeTogRXJyb3IgcmVhZGluZyBldmVudHMgZnJvbSByZWxheSBsb2c6ICVkAEVycm9yIGR1cmluZyAtLXJlbGF5LWxvZy1yZWNvdmVyeTogRXJyb3Igd2hpbGUgZnJlZWluZyBJT19DQUNIRSBvYmplY3QAUmVsYXkgbG9nIHJlY292ZXJ5IHNraXBwZWQgZm9yIGdyb3VwIHJlcGxpY2F0aW9uIGNoYW5uZWwuAEVycm9yIGR1cmluZyAtLXJlbGF5LWxvZy1yZWNvdmVyeTogJXMARXJyb3IgZHVyaW5nIC0tcmVsYXktbG9nLXJlY292ZXJ5OiBDb3VsZCBub3QgcmVhZCByZWxheSBsb2cgaW5kZXggZmlsZSBkdWUgdG8gYW4gSU8gZXJyb3IuAFJlY292ZXJ5IGZyb20gc291cmNlIHBvcyAlbGQgYW5kIGZpbGUgJXMlcy4gUHJldmlvdXMgcmVsYXkgbG9nIHBvcyBhbmQgcmVsYXkgbG9nIGZpbGUgaGFkIGJlZW4gc2V0IHRvICVsbGQsICVzIHJlc3BlY3RpdmVseS4ARXJyb3IgZHVyaW5nIC0tcmVsYXktbG9nLXJlY292ZXJ5OiByZXBsaWNhdGVfc2FtZV9zZXJ2ZXJfaWQgaXMgaW4gdXNlIGFuZCBzcWwgdGhyZWFkJ3MgcG9zaXRpb25zIGFyZSBub3QgaW5pdGlhbGl6ZWQsIGhlbmNlIHJlbGF5IGxvZyByZWNvdmVyeSBjYW5ub3QgaGFwcGVuLgBNVEEgcmVjb3Zlcnk6IHN0YXJ0aW5nIGNvb3JkaW5hdG9yIHRocmVhZCB0byBmaWxsIE1UQSBnYXBzLgBNVEEgcmVjb3Zlcnk6IGZhaWxlZCB0byBzdGFydCB0aGUgY29vcmRpbmF0b3IgdGhyZWFkLiBDaGVjayB0aGUgZXJyb3IgbG9nIGZvciBhZGRpdGlvbmFsIGRldGFpbHMuAE1UQSByZWNvdmVyeTogYXV0b21hdGljIHJlY292ZXJ5IGZhaWxlZC4gRWl0aGVyIHRoZSByZXBsaWNhIHNlcnZlciBoYWQgc3RvcHBlZCBkdWUgdG8gYW4gZXJyb3IgZHVyaW5nIGFuIGVhcmxpZXIgc2Vzc2lvbiBvciByZWxheSBsb2dzIGFyZSBjb3JydXB0ZWQuRml4IHRoZSBjYXVzZSBvZiB0aGUgcmVwbGljYSBzaWRlIGVycm9yIGFuZCByZXN0YXJ0IHRoZSByZXBsaWNhIHNlcnZlciBvciBjb25zaWRlciB1c2luZyBSRVNFVCBSRVBMSUNBLgBGYWlsZWQgdG8gb3BlbiB0aGUgcmVsYXkgbG9nICclcycgKHJlbGF5X2xvZ19wb3MgJXMpLgBNVEEgcmVjb3Zlcnk6IGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkuAFNlcnZlciBpZCBub3Qgc2V0LCB3aWxsIG5vdCBzdGFydCByZXBsaWNhJXMAQ2FuJ3QgY3JlYXRlIHJlcGxpY2EgdGhyZWFkJXMuAFRoZSByZXBsaWNhIElPIHRocmVhZCVzIHdhcyBraWxsZWQgd2hpbGUgZXhlY3V0aW5nIGluaXRpYWxpemF0aW9uIHF1ZXJ5ICclcycAVGhlIHNvdXJjZSdzIFVVSUQgaGFzIGNoYW5nZWQsIGFsdGhvdWdoIHRoaXMgc2hvdWxkIG5vdCBoYXBwZW4gdW5sZXNzIHlvdSBoYXZlIGNoYW5nZWQgaXQgbWFudWFsbHkuIFRoZSBvbGQgVVVJRCB3YXMgJXMuAEZvdW5kIGEgc291cmNlIHdpdGggTXlTUUwgc2VydmVyIHZlcnNpb24gb2xkZXIgdGhhbiA1LjAuIFdpdGggY2hlY2tzdW1zIGVuYWJsZWQgb24gdGhlIHJlcGxpY2EsIHJlcGxpY2F0aW9uIG1pZ2h0IG5vdCB3b3JrIGNvcnJlY3RseS4gVG8gZW5zdXJlIGNvcnJlY3QgcmVwbGljYXRpb24sIHJlc3RhcnQgdGhlIHJlcGxpY2Egc2VydmVyIHdpdGggLS1yZXBsaWNhX3NxbF92ZXJpZnlfY2hlY2tzdW09MC4AIlNFTEVDVCBVTklYX1RJTUVTVEFNUCgpIiBmYWlsZWQgb24gc291cmNlLCBkbyBub3QgdHJ1c3QgY29sdW1uIFNlY29uZHNfQmVoaW5kX1NvdXJjZSBvZiBTSE9XIFJFUExJQ0EgU1RBVFVTLiBFcnJvcjogJXMgKCVkKQBGYWlsZWQgdG8gZmx1c2ggY29ubmVjdGlvbiBtZXRhZGF0YSByZXBvc2l0b3J5LgBUaGUgbGVuZ3RoIG9mIHJlcG9ydF9ob3N0IGlzICV6dS4gSXQgaXMgbGFyZ2VyIHRoYW4gdGhlIG1heCBsZW5ndGgoJWQpLCBzbyB0aGlzIHJlcGxpY2EgY2Fubm90IGJlIHJlZ2lzdGVyZWQgdG8gdGhlIHNvdXJjZSVzLgBUaGUgbGVuZ3RoIG9mIHJlcG9ydF91c2VyIGlzICV6dS4gSXQgaXMgbGFyZ2VyIHRoYW4gdGhlIG1heCBsZW5ndGgoJWQpLCBzbyB0aGlzIHJlcGxpY2EgY2Fubm90IGJlIHJlZ2lzdGVyZWQgdG8gdGhlIHNvdXJjZSVzLgBUaGUgbGVuZ3RoIG9mIHJlcG9ydF9wYXNzd29yZCBpcyAlenUuIEl0IGlzIGxhcmdlciB0aGFuIHRoZSBtYXggbGVuZ3RoKCVkKSwgc28gdGhpcyByZXBsaWNhIGNhbm5vdCBiZSByZWdpc3RlcmVkIHRvIHRoZSBzb3VyY2Ulcy4ARXJyb3Igb24gJXM6ICVkICAlcywgd2lsbCByZXRyeSBpbiAlZCBzZWNzAEVycm9yIHJlYWRpbmcgcGFja2V0IGZyb20gc2VydmVyJXM6ICVzIChzZXJ2ZXJfZXJybm89JWQpAFJlcGxpY2ElczogcmVjZWl2ZWQgZW5kIHBhY2tldCBmcm9tIHNlcnZlciBkdWUgdG8gZHVtcCB0aHJlYWQgYmVpbmcga2lsbGVkIG9uIHNvdXJjZS4gRHVtcCB0aHJlYWRzIGFyZSBraWxsZWQgZm9yIGV4YW1wbGUgZHVyaW5nIHNvdXJjZSBzaHV0ZG93biwgZXhwbGljaXRseSBieSBhIHVzZXIsIG9yIHdoZW4gdGhlIHNvdXJjZSByZWNlaXZlcyBhIGJpbmxvZyBzZW5kIHJlcXVlc3QgZnJvbSBhIGR1cGxpY2F0ZSBzZXJ2ZXIgVVVJRCA8JXM+IDogRXJyb3IgJXMATXVsdGktdGhyZWFkZWQgcmVwbGljYSBzdGF0aXN0aWNzJXM6IHNlY29uZHMgZWxhcHNlZCA9ICVsdTsgZXZlbnRzIGFzc2lnbmVkID0gJWxsdTsgd29ya2VyIHF1ZXVlcyBmaWxsZWQgb3ZlciBvdmVycnVuIGxldmVsID0gJWx1OyB3YWl0ZWQgZHVlIGEgV29ya2VyIHF1ZXVlIGZ1bGwgPSAlbHU7IHdhaXRlZCBkdWUgdGhlIHRvdGFsIHNpemUgPSAlbHU7IHdhaXRlZCBhdCBjbG9jayBjb25mbGljdHMgPSAlbGx1IHdhaXRlZCAoY291bnQpIHdoZW4gV29ya2VycyBvY2N1cGllZCA9ICVsdSB3YWl0ZWQgd2hlbiBXb3JrZXJzIG9jY3VwaWVkID0gJWxsdQBSZXBsaWNhJXM6IE1UQSBSZWNvdmVyeSBoYXMgY29tcGxldGVkIGF0IHJlbGF5IGxvZyAlcywgcG9zaXRpb24gJWxsdSBzb3VyY2UgbG9nICVzLCBwb3NpdGlvbiAlbGx1LgBFcnJvciBpbml0aWFsaXppbmcgcmVsYXkgbG9nIHBvc2l0aW9uJXM6ICVzAFJlcGxpY2EgSS9PIHRocmVhZCVzOiBjb25uZWN0ZWQgdG8gc291cmNlICclc0AlczolZCcscmVwbGljYXRpb24gc3RhcnRlZCBpbiBsb2cgJyVzJyBhdCBwb3NpdGlvbiAlcwBSZXBsaWNhIEkvTyB0aHJlYWQlcyBraWxsZWQgd2hpbGUgY29ubmVjdGluZyB0byBzb3VyY2UAUmVwbGljYSBJL08gdGhyZWFkIGNvdWxkbid0IHJlZ2lzdGVyIG9uIHNvdXJjZQBGb3JjaW5nIHRvIHJlY29ubmVjdCByZXBsaWNhIEkvTyB0aHJlYWQlcwBGYWlsZWQgb24gcmVxdWVzdF9kdW1wKCklcwBMb2cgZW50cnkgb24gc291cmNlIGlzIGxvbmdlciB0aGFuIHJlcGxpY2FfbWF4X2FsbG93ZWRfcGFja2V0ICglbHUpIG9uIHJlcGxpY2EuIElmIHRoZSBlbnRyeSBpcyBjb3JyZWN0LCByZXN0YXJ0IHRoZSBzZXJ2ZXIgd2l0aCBhIGhpZ2hlciB2YWx1ZSBvZiByZXBsaWNhX21heF9hbGxvd2VkX3BhY2tldABTdG9wcGluZyByZXBsaWNhIEkvTyB0aHJlYWQgZHVlIHRvIG91dC1vZi1tZW1vcnkgZXJyb3IgZnJvbSBzb3VyY2UAUmVwbGljYSBJL08gdGhyZWFkIGFib3J0ZWQgd2hpbGUgd2FpdGluZyBmb3IgcmVsYXkgbG9nIHNwYWNlAFJlcGxpY2EgSS9PIHRocmVhZCBleGl0aW5nJXMsIHJlYWQgdXAgdG8gbG9nICclcycsIHBvc2l0aW9uICVzAEZhaWxlZCBkdXJpbmcgcmVwbGljYSB3b3JrZXIgaW5pdGlhbGl6YXRpb24lcwBSZXBsaWNhOiBNVEEgZ3JvdXAgcmVjb3ZlcnkgYXBwbGllciBtZXRhZGF0YSBiYXNlZCBvbiBXb3JrZXItSWQgJWx1LCBncm91cF9yZWxheV9sb2dfbmFtZSAlcywgZ3JvdXBfcmVsYXlfbG9nX3BvcyAlbGx1IGdyb3VwX3NvdXJjZV9sb2dfbmFtZSAlcywgZ3JvdXBfc291cmNlX2xvZ19wb3MgJWxsdQBFcnJvciBsb29raW5nIGZvciAlcy4AUmVwbGljYTogTVRBIGdyb3VwIHJlY292ZXJ5IGFwcGxpZXIgbWV0YWRhdGEgZ3JvdXBfc291cmNlX2xvZ19uYW1lICVzLCBldmVudF9zb3VyY2VfbG9nX3BvcyAlbGx1LgBFcnJvciBsb29raW5nIGZvciBmaWxlIGFmdGVyICVzLgBUaGlzIGFuIGVycm9yIGNudCAhPSBtdGFfY2hlY2twb2ludF9wZXJpb2QARmFpbGVkIGR1cmluZyByZXBsaWNhIHdvcmtlciB0aHJlYWQgY3JlYXRpb24lcwBGYWlsZWQgZHVyaW5nIHJlcGxpY2Egd29ya2VyIHRocmVhZCBjcmVhdGlvbiVzIChlcnJubz0gJWQpAEZhaWxlZCB0byBpbml0IHBhcnRpdGlvbnMgaGFzaABSZXBsaWNhIFNRTCB0aHJlYWQgOiBOREIgOiBUYWJsZXMgbm90IGF2YWlsYWJsZSBhZnRlciAlbHUgc2Vjb25kcy4gQ29uc2lkZXIgaW5jcmVhc2luZyAtLW5kYi13YWl0LXNldHVwIHZhbHVlAFJlcGxpY2EgU1FMIHRocmVhZCVzIGluaXRpYWxpemVkLCBzdGFydGluZyByZXBsaWNhdGlvbiBpbiBsb2cgJyVzJyBhdCBwb3NpdGlvbiAlcywgcmVsYXkgbG9nICclcycgcG9zaXRpb246ICVzACdTUUxfUkVQTElDQV9TS0lQX0NPVU5URVI9JWxkJyBleGVjdXRlZCBhdCByZWxheV9sb2dfZmlsZT0nJXMnLCByZWxheV9sb2dfcG9zPSclbGQnLCBzb3VyY2VfbG9nX25hbWU9JyVzJywgc291cmNlX2xvZ19wb3M9JyVsZCcgYW5kIG5ldyBwb3NpdGlvbiBhdCByZWxheV9sb2dfZmlsZT0nJXMnLCByZWxheV9sb2dfcG9zPSclbGQnLCBzb3VyY2VfbG9nX25hbWU9JyVzJywgc291cmNlX2xvZ19wb3M9JyVsZCcgAFJlcGxpY2EgKGFkZGl0aW9uYWwgaW5mbyk6ICVzIEVycm9yX2NvZGU6IE1ZLSUwNmQAUmVwbGljYTogJXMgRXJyb3JfY29kZTogTVktJTA2ZABFcnJvciBsb2FkaW5nIHVzZXItZGVmaW5lZCBsaWJyYXJ5LCByZXBsaWNhIFNRTCB0aHJlYWQgYWJvcnRlZC4gSW5zdGFsbCB0aGUgbWlzc2luZyBsaWJyYXJ5LCBhbmQgcmVzdGFydCB0aGUgcmVwbGljYSBTUUwgdGhyZWFkIHdpdGggIlNUQVJUIFJFUExJQ0EiLiBXZSBzdG9wcGVkIGF0IGxvZyAnJXMnIHBvc2l0aW9uICVzAEVycm9yIHJ1bm5pbmcgcXVlcnksIHJlcGxpY2EgU1FMIHRocmVhZCBhYm9ydGVkLiBGaXggdGhlIHByb2JsZW0sIGFuZCByZXN0YXJ0IHRoZSByZXBsaWNhIFNRTCB0aHJlYWQgd2l0aCAiU1RBUlQgUkVQTElDQSIuIFdlIHN0b3BwZWQgYXQgbG9nICclcycgcG9zaXRpb24gJXMAUmVwbGljYSBTUUwgdGhyZWFkJXMgZXhpdGluZywgcmVwbGljYXRpb24gc3RvcHBlZCBpbiBsb2cgJyVzJyBhdCBwb3NpdGlvbiAlcwBSZWFkIGludmFsaWQgZXZlbnQgZnJvbSBzb3VyY2U6ICclcycsIHNvdXJjZSBjb3VsZCBiZSBjb3JydXB0IGJ1dCBhIG1vcmUgbGlrZWx5IGNhdXNlIG9mIHRoaXMgaXMgYSBidWcAVGhlIHF1ZXVlIGV2ZW50IGZhaWxlZCBmb3IgY2hhbm5lbCAnJXMnIGFzIGl0cyBjb25maWd1cmF0aW9uIGlzIGludmFsaWQuAEFuIHVuZXhwZWN0ZWQgZXZlbnQgc2VxdWVuY2Ugd2FzIGRldGVjdGVkIGJ5IHRoZSBJTyB0aHJlYWQgd2hpbGUgcXVldWluZyB0aGUgZXZlbnQgcmVjZWl2ZWQgZnJvbSBzb3VyY2UgJyVzJyBiaW5hcnkgbG9nIGZpbGUsIGF0IHBvc2l0aW9uICVsbHUuACclcycgY2FuIG5vdCBiZSB1c2VkIGFzIGNsaWVudCBjaGFyYWN0ZXIgc2V0LiAnJXMnIHdpbGwgYmUgdXNlZCBhcyBkZWZhdWx0IGNsaWVudCBjaGFyYWN0ZXIgc2V0IHdoaWxlIGNvbm5lY3RpbmcgdG8gc291cmNlLgBSZXBsaWNhJXM6IGNvbm5lY3RlZCB0byBzb3VyY2UgJyVzQCVzOiVkJyxyZXBsaWNhdGlvbiByZXN1bWVkIGluIGxvZyAnJXMnIGF0IHBvc2l0aW9uICVzAG5leHQgbG9nICclcycgaXMgYWN0aXZlAG5leHQgbG9nICclcycgaXMgbm90IGFjdGl2ZQBSZXBsaWNhIFNRTCB0aHJlYWQlczogSS9PIGVycm9yIHJlYWRpbmcgZXZlbnQgKGVycm5vOiAlZCAgY3VyX2xvZy0+ZXJyb3I6ICVkKQBFcnJvciByZWFkaW5nIHJlbGF5IGxvZyBldmVudCVzOiAlcwAnQ0hBTkdFIFJFUExJQ0FUSU9OIFNPVVJDRSBUTyVzIGV4ZWN1dGVkJy4gUHJldmlvdXMgc3RhdGUgc291cmNlX2hvc3Q9JyVzJywgc291cmNlX3BvcnQ9ICV1LCBzb3VyY2VfbG9nX2ZpbGU9JyVzJywgc291cmNlX2xvZ19wb3M9ICVsZCwgc291cmNlX2JpbmQ9JyVzJy4gTmV3IHN0YXRlIHNvdXJjZV9ob3N0PSclcycsIHNvdXJjZV9wb3J0PSAldSwgc291cmNlX2xvZ19maWxlPSclcycsIHNvdXJjZV9sb2dfcG9zPSAlbGQsIHNvdXJjZV9iaW5kPSclcycuAFJlcGxpY2E6IENhbm5vdCBjcmVhdGUgbmV3IGNvbm5lY3Rpb24gbWV0YWRhdGEgc3RydWN0dXJlIHdoZW4gcmVwb3NpdG9yaWVzIGFyZSBvZiB0eXBlIEZJTEUuIENvbnZlcnQgcmVwbGljYSByZXBvc2l0b3JpZXMgdG8gVEFCTEUgdG8gcmVwbGljYXRlIGZyb20gbXVsdGlwbGUgc291cmNlcy4AbG9nICVzIGxpc3RlZCBpbiB0aGUgaW5kZXgsIGJ1dCBmYWlsZWQgdG8gc3RhdC4AQ291bGQgbm90IGZpbmQgZmlyc3QgbG9nIHdoaWxlIGNvdW50aW5nIHJlbGF5IGxvZyBzcGFjZS4AVW5hYmxlIHRvIHVzZSByZXBsaWNhJ3MgdGVtcG9yYXJ5IGRpcmVjdG9yeSAnJXMnLgBQYXRoICclcycgaXMgYSBkaXJlY3RvcnkgbmFtZSwgcGxlYXNlIHNwZWNpZnkgYSBmaWxlIG5hbWUgZm9yIC0tcmVsYXktbG9nIG9wdGlvbi4AUGF0aCAnJXMnIGlzIGEgZGlyZWN0b3J5IG5hbWUsIHBsZWFzZSBzcGVjaWZ5IGEgZmlsZSBuYW1lIGZvciAtLXJlbGF5LWxvZy1pbmRleCBvcHRpb24uAE5laXRoZXIgLS1yZWxheS1sb2cgbm9yIC0tcmVsYXktbG9nLWluZGV4IHdlcmUgdXNlZDsgc28gcmVwbGljYXRpb24gbWF5IGJyZWFrIHdoZW4gdGhpcyBNeVNRTCBzZXJ2ZXIgYWN0cyBhcyBhIHJlcGxpY2EgYW5kIGhhcyBoaXMgaG9zdG5hbWUgY2hhbmdlZCEhIFBsZWFzZSB1c2UgJy0tcmVsYXktbG9nPSVzJyB0byBhdm9pZCB0aGlzIHByb2JsZW0uAEZhaWxlZCBpbiBvcGVuX2luZGV4X2ZpbGUoKSBjYWxsZWQgZnJvbSBSZWxheV9sb2dfaW5mbzo6cmxpX2luaXRfaW5mbygpLgBGYWlsZWQgaW4gaW5pdF9ndGlkX3NldHMoKSBjYWxsZWQgZnJvbSBSZWxheV9sb2dfaW5mbzo6cmxpX2luaXRfaW5mbygpLgBGYWlsZWQgaW4gb3Blbl9sb2coKSBjYWxsZWQgZnJvbSBSZWxheV9sb2dfaW5mbzo6cmxpX2luaXRfaW5mbygpLgBFcnJvciB3cml0aW5nIHJlbGF5IGxvZyBjb25maWd1cmF0aW9uLgBnZXRfbmRiX2Jsb2JzX3ZhbHVlOiBteV9tYWxsb2MoJXUpIGZhaWxlZABOREI6IFRocmVhZCBpZCAldSB0aW1lZCBvdXQgKDMwcykgd2FpdGluZyBmb3IgZXBvY2ggJXUvJXUgdG8gYmUgaGFuZGxlZC4gIFByb2dyZXNzIDogJXUvJXUgLT4gJXUvJXUuAE5EQjogSW5jb25zaXN0ZW5jeSBkZXRlY3RlZCBpbiBkaXN0cmlidXRlZCBwcml2aWxlZ2UgdGFibGVzLiBUYWJsZSAnJXMuJXMnIGlzIG5vdCBkaXN0cmlidXRlZABOREI6IENyZWF0aW5nICVzLiVzAE5EQjogRmx1c2hpbmcgJXMuJXMATkRCOiBDbGVhbmluZyBzdHJheSB0YWJsZXMgZnJvbSBkYXRhYmFzZSAnJXMnAE5EQjogRGlzY292ZXJlZCBtaXNzaW5nIGRhdGFiYXNlICclcycATkRCOiBEaXNjb3ZlcmVkIHJlbWFpbmluZyBkYXRhYmFzZSAnJXMnAE5EQjogbmRiY2x1c3Rlcl9maW5kX2FsbF9kYXRhYmFzZXMgcmV0cnk6ICV1IC0gJXMATkRCOiBuZGJjbHVzdGVyX2ZpbmRfYWxsX2RhdGFiYXNlcyBmYWlsOiAldSAtICVzAE5EQjogc2tpcHBpbmcgc2V0dXAgdGFibGUgJXMuJXMsIGluIHN0YXRlICVkAE5EQjogZmFpbGVkIHRvIHNldHVwIHRhYmxlICVzLiVzLCBlcnJvcjogJWQsICVzAE5EQjogbWlzc2luZyBmcm0gZm9yICVzLiVzLCBkaXNjb3ZlcmluZy4uLgBOREI6IG1pc21hdGNoIGluIGZybSBmb3IgJXMuJXMsIGRpc2NvdmVyaW5nLi4uAG5kYl9iaW5sb2dfc2V0dXA6IENsZWFuIHVwIGxlZnRvdmVycwBOREIgJXM6IHdhaXRpbmcgbWF4ICV1IHNlYyBmb3IgJXMgJXMuICBlcG9jaHM6ICgldS8ldSwldS8ldSwldS8ldSkgIGluamVjdG9yIHByb2NfaW5mbzogJXMATkRCICVzOiB3YWl0aW5nIG1heCAldSBzZWMgZm9yICVzICVzLiAgZXBvY2hzOiAoJXUvJXUsJXUvJXUsJXUvJXUpICBpbmplY3RvciBwcm9jX2luZm86ICVzIG1hcDogJXglMDh4AE5EQiAlczogZGlzdHJpYnV0aW5nICVzIHRpbWVkIG91dC4gSWdub3JpbmcuLi4ATkRCICVzOiBub3Qgd2FpdGluZyBmb3IgZGlzdHJpYnV0aW5nICVzAE5EQjogZGlzdHJpYnV0ZWQgJXMuJXMoJXUvJXUpIHR5cGU6ICVzKCV1KSBxdWVyeTogJyVzJyB0byAleCUwOHgATkRCOiBkaXN0cmlidXRpb24gb2YgJXMuJXMoJXUvJXUpIHR5cGU6ICVzKCV1KSBxdWVyeTogJyVzJyAtIGNvbXBsZXRlIQBOREIgU2NoZW1hIGRpc3Q6IERhdGEgbm9kZTogJWQgZmFpbGVkLCBzdWJzY3JpYmVyIGJpdG1hc2sgJXglMDh4AE5EQiBTY2hlbWEgZGlzdDogRGF0YSBub2RlOiAlZCByZXBvcnRzIHN1YnNjcmliZSBmcm9tIG5vZGUgJWQsIHN1YnNjcmliZXIgYml0bWFzayAleCUwOHgATkRCIFNjaGVtYSBkaXN0OiBEYXRhIG5vZGU6ICVkIHJlcG9ydHMgdW5zdWJzY3JpYmUgZnJvbSBub2RlICVkLCBzdWJzY3JpYmVyIGJpdG1hc2sgJXglMDh4AE5EQiBCaW5sb2c6IENvdWxkIG5vdCBkaXNjb3ZlciB0YWJsZSAnJXMuJXMnIGZyb20gYmlubG9nIHNjaGVtYSBldmVudCAnJXMnIGZyb20gbm9kZSAlZC4gbXlfZXJybm86ICVkAE5EQjogdW5rbm93biB2YWx1ZSBmb3IgYmlubG9nIHNpZ25hbGxpbmcgMHglWCwgJXMgbm90IGxvZ2dlZABOREI6IHJlcGx5IHRvICVzLiVzKCV1LyV1KSBmcm9tICVzIHRvICV4JTA4eABOREI6IENvdWxkIG5vdCByZWxlYXNlIHNsb2NrIG9uICclcy4lcycsIEVycm9yIGNvZGU6ICVkIE1lc3NhZ2U6ICVzAE5EQiBzY2hlbWE6IENvdWxkIG5vdCBmaW5kIHRhYmxlICclcy4lcycgaW4gTkRCAE5EQjogRGlzY2FyZGluZyBldmVudC4uLm5vIG9iajogJXMgKCV1LyV1KQBOREI6IERpc2NhcmRpbmcgZXZlbnQuLi5rZXk6ICVzIG5vbiBtYXRjaGluZyBpZC92ZXJzaW9uIFsldS8ldV0gIT0gWyV1LyV1XQBOREI6IENMRUFSX1NMT0NLIGtleTogJXMoJXUvJXUpICV4JTA4eCwgZnJvbSAlcyB0byAleCUwOHgATkRCIEJpbmxvZzogU2tpcHBpbmcgbG9jYWxseSBkZWZpbmVkIHRhYmxlICclcy4lcycgZnJvbSBiaW5sb2cgc2NoZW1hIGV2ZW50ICclcycgZnJvbSBub2RlICVkLgBOREIgQmlubG9nOiBoYW5kbGluZyBvbmxpbmUgYWx0ZXIvcmVuYW1lAE5EQiBCaW5sb2c6IEZhaWxlZCB0byByZS1vcGVuIHNoYWRvdyB0YWJsZSAlcy4lcwBOREIgQmlubG9nOiBoYW5kbGluZyBvbmxpbmUgYWx0ZXIvcmVuYW1lIGRvbmUATkRCIEJpbmxvZzogU2tpcHBpbmcgZHJvcCBvZiBsb2NhbGx5IGRlZmluZWQgdGFibGUgJyVzLiVzJyBmcm9tIGJpbmxvZyBzY2hlbWEgZXZlbnQgJyVzJyBmcm9tIG5vZGUgJWQuIABOREIgQmlubG9nOiBTa2lwcGluZyByZW5hbWluZyBsb2NhbGx5IGRlZmluZWQgdGFibGUgJyVzLiVzJyBmcm9tIGJpbmxvZyBzY2hlbWEgZXZlbnQgJyVzJyBmcm9tIG5vZGUgJWQuIABOREIgQmlubG9nOiBTa2lwcGluZyBkcm9wIGRhdGFiYXNlICclcycgc2luY2UgaXQgY29udGFpbmVkIGxvY2FsIHRhYmxlcyBiaW5sb2cgc2NoZW1hIGV2ZW50ICclcycgZnJvbSBub2RlICVkLiAAR290IGRpc3RfcHJpdiBldmVudDogJXMsIGZsdXNoaW5nIHByaXZpbGVnZXMATkRCOiBnb3Qgc2NoZW1hIGV2ZW50IG9uICVzLiVzKCV1LyV1KSBxdWVyeTogJyVzJyB0eXBlOiAlcyglZCkgbm9kZTogJXUgc2xvY2s6ICV4JTA4eABOREIgc2NoZW1hOiBTa2lwcGluZyBvbGQgc2NoZW1hIG9wZXJhdGlvbihSRU5BTUVfVEFCTEVfTkVXKSBvbiAlcy4lcwBOREIgU2NoZW1hIGRpc3Q6IGNsdXN0ZXIgZmFpbHVyZSBhdCBlcG9jaCAldS8ldS4ATkRCIEJpbmxvZzogbmRiIHRhYmxlcyBpbml0aWFsbHkgcmVhZCBvbmx5IG9uIHJlY29ubmVjdC4ATkRCIFNjaGVtYSBkaXN0OiB1bmtub3duIGV2ZW50ICV1LCBpZ25vcmluZy4uLgBOREIgQmlubG9nOiBPcGVuaW5nIG5kYl9iaW5sb2dfaW5kZXg6ICVkLCAnJXMnAE5EQiBCaW5sb2c6IFVuYWJsZSB0byBsb2NrIHRhYmxlIG5kYl9iaW5sb2dfaW5kZXgATkRCIEJpbmxvZzogSW5qZWN0aW5nIHJhbmRvbSB3cml0ZSBmYWlsdXJlAE5EQiBCaW5sb2c6IEZhaWxlZCB3cml0aW5nIHRvIG5kYl9iaW5sb2dfaW5kZXggZm9yIGVwb2NoICV1LyV1ICBvcmlnX3NlcnZlcl9pZCAldSBvcmlnX2Vwb2NoICV1LyV1IHdpdGggZXJyb3IgJWQuAE5EQiBCaW5sb2c6IFdyaXRpbmcgcm93ICglcykgdG8gbmRiX2JpbmxvZ19pbmRleCAtICVzAE5EQiBCaW5sb2c6IEZhaWxlZCBjb21taXR0aW5nIHRyYW5zYWN0aW9uIHRvIG5kYl9iaW5sb2dfaW5kZXggd2l0aCBlcnJvciAlZC4ATkRCIEJpbmxvZzogRmFpbGVkIHdyaXRpbmcgdG8gbmRiX2JpbmxvZ19pbmRleCB0YWJsZSB3aGlsZSByZXRyeWluZyBhZnRlciBraWxsIGR1cmluZyBzaHV0ZG93bgBOREI6IHNlcnZlciBpZCBzZXQgdG8gemVybyAtIGNoYW5nZXMgbG9nZ2VkIHRvIGJpbiBsb2cgd2l0aCBzZXJ2ZXIgaWQgemVybyB3aWxsIGJlIGxvZ2dlZCB3aXRoIGFub3RoZXIgc2VydmVyIGlkIGJ5IHJlcGxpY2EgbXlzcWxkcwBOREI6IHNlcnZlciBpZCBwcm92aWRlZCBpcyB0b28gbGFyZ2UgdG8gYmUgcmVwcmVzZW50ZWQgaW4gb3B0X3NlcnZlcl9pZF9iaXRzIG9yIGlzIHJlc2VydmVkAE5EQjogLS1uZGItbG9nLXRyYW5zYWN0aW9uLWlkIHJlcXVpcmVzIHYyIEJpbmxvZyByb3cgZXZlbnRzIGJ1dCBzZXJ2ZXIgaXMgdXNpbmcgdjEuAE5EQjogbmRiLWxvZy1hcHBseS1zdGF0dXMgZm9yY2luZyAlcy4lcyB0byBGVUxMIFVTRV9XUklURQBOREIgQmlubG9nOiAlcwAlcwAlcwBOREIgUmVwbGljYTogVGFibGUgJXMuJXMgOiBQYXJzZSBlcnJvciBvbiBjb25mbGljdCBmbiA6ICVzAE5EQiBSZXBsaWNhOiBUYWJsZSAlcy4lcyA6ICVzAE5EQiBCaW5sb2c6IEZhaWxlZCB0byBnZXQgdGFibGUgJXMgZnJvbSBuZGI6ICVzLCAlZABOREIgQmlubG9nOiBOT1QgbG9nZ2luZyAlcwBOREIgQmlubG9nOiBGQUlMRUQgQ1JFQVRFIChESVNDT1ZFUikgVEFCTEUgRXZlbnQ6ICVzAE5EQiBCaW5sb2c6IENSRUFURSAoRElTQ09WRVIpIFRBQkxFIEV2ZW50OiAlcwBOREIgQmlubG9nOiBESVNDT1ZFUiBUQUJMRSBFdmVudDogJXMATkRCIEJpbmxvZzogbG9nZ2luZyBvZiB0YWJsZSAlcyB3aXRoIEJMT0IgYXR0cmlidXRlIGFuZCBubyBQSyBpcyBub3Qgc3VwcG9ydGVkAE5EQiBCaW5sb2c6IFVuYWJsZSB0byBjcmVhdGUgZXZlbnQgaW4gZGF0YWJhc2UuIEV2ZW50OiAlcyAgRXJyb3IgQ29kZTogJWQgIE1lc3NhZ2U6ICVzAE5EQiBCaW5sb2c6IFVuYWJsZSB0byBjcmVhdGUgZXZlbnQgaW4gZGF0YWJhc2UuICBBdHRlbXB0IHRvIGNvcnJlY3Qgd2l0aCBkcm9wIGZhaWxlZC4gRXZlbnQ6ICVzIEVycm9yIENvZGU6ICVkIE1lc3NhZ2U6ICVzAE5EQiBCaW5sb2c6IFVuYWJsZSB0byBjcmVhdGUgZXZlbnQgaW4gZGF0YWJhc2UuICBBdHRlbXB0IHRvIGNvcnJlY3Qgd2l0aCBkcm9wIG9rLCBidXQgY3JlYXRlIGZhaWxlZC4gRXZlbnQ6ICVzIEVycm9yIENvZGU6ICVkIE1lc3NhZ2U6ICVzAE5EQiBCaW5sb2c6IGRpc2NvdmVyIHJldXNpbmcgb2xkIGV2IG9wAE5EQiBCaW5sb2c6IENyZWF0aW5nIE5kYkV2ZW50T3BlcmF0aW9uIGZhaWxlZCBmb3IgJXMATkRCIEJpbmxvZzogQ3JlYXRpbmcgTmRiRXZlbnRPcGVyYXRpb24gYmxvYiBmaWVsZCAldSBoYW5kbGVzIGZhaWxlZCAoY29kZT0lZCkgZm9yICVzAE5EQiBCaW5sb2c6IG5kYmV2ZW50LT5leGVjdXRlIGZhaWxlZCBmb3IgJXM7ICVkICVzAE5EQiBCaW5sb2c6IGxvZ2dpbmcgJXMgKCVzLCVzKQBOREIgQmlubG9nOiBVbmFibGUgdG8gZHJvcCBldmVudCBpbiBkYXRhYmFzZS4gRXZlbnQ6ICVzIEVycm9yIENvZGU6ICVkIE1lc3NhZ2U6ICVzAE5EQiAlczogJXMgdGltZWQgb3V0LiBJZ25vcmluZy4uLgBOREIgQmlubG9nOiB1bmhhbmRsZWQgZXJyb3IgJWQgZm9yIHRhYmxlICVzAE5EQiBCaW5sb2c6IGNsdXN0ZXIgZmFpbHVyZSBmb3IgJXMgYXQgZXBvY2ggJXUvJXUuAE5EQiBCaW5sb2c6IHVua25vd24gbm9uIGRhdGEgZXZlbnQgJWQgZm9yICVzLiBJZ25vcmluZy4uLgBOREI6IEJpbmxvZyBJbmplY3RvciBkaXNjYXJkaW5nIHJvdyBldmVudCBtZXRhIGRhdGEgYXMgc2VydmVyIGlzIHVzaW5nIHYxIHJvdyBldmVudHMuICgldSAleCkAcmVtb3ZlX2FsbF9ldmVudF9vcGVyYXRpb25zOiBSZW1haW5pbmcgb3BlbiB0YWJsZXM6IAAgICVzLiVzLCB1c2VfY291bnQ6ICV1AE5EQjogQ291bGQgbm90IGdldCBhcHBseSBzdGF0dXMgc2hhcmUATkRCIEJpbmxvZzogU2VydmVyIHNodXRkb3duIGRldGVjdGVkIHdoaWxlIHdhaXRpbmcgZm9yIG5kYmNsdXN0ZXIgdG8gc3RhcnQuLi4ATkRCIEJpbmxvZzogY2x1c3RlciBoYXMgYmVlbiByZXN0YXJ0ZWQgLS1pbml0aWFsIG9yIHdpdGggb2xkZXIgZmlsZXN5c3RlbS4gbmRiX2xhdGVzdF9oYW5kbGVkX2JpbmxvZ19lcG9jaDogJXUvJXUsIHdoaWxlIGN1cnJlbnQgZXBvY2g6ICV1LyV1LiBSRVNFVCBTT1VSQ0Ugc2hvdWxkIGJlIGlzc3VlZC4gUmVzZXR0aW5nIG5kYl9sYXRlc3RfaGFuZGxlZF9iaW5sb2dfZXBvY2guAE5EQiBCaW5sb2c6IGNsdXN0ZXIgaGFzIHJlY29ubmVjdGVkLiBDaGFuZ2VzIHRvIHRoZSBkYXRhYmFzZSB0aGF0IG9jY3VycmVkIHdoaWxlIGRpc2Nvbm5lY3RlZCB3aWxsIG5vdCBiZSBpbiB0aGUgYmlubG9nAE5EQiBCaW5sb2c6IHN0YXJ0aW5nIGxvZyBhdCBlcG9jaCAldS8ldQBOREIgQmlubG9nOiBuZGIgdGFibGVzIHdyaXRhYmxlAE5EQiBCaW5sb2c6IFNlcnZlciBzaHV0ZG93biBkZXRlY3RlZC4uLgBOREIgQmlubG9nOiBKdXN0IGxvc3Qgc2NoZW1hIGNvbm5lY3Rpb24sIGhhbmdpbmcgYXJvdW5kAE5EQiBCaW5sb2c6IC4uLmFuZCBvbiBvdXIgd2F5AE5EQjogZXJyb3IgJWx1ICglcykgb24gaGFuZGxpbmcgYmlubG9nIHNjaGVtYSBldmVudABOREIgQmlubG9nOiBGYWlsZWQgdG8gaW5qZWN0IGFwcGx5IHN0YXR1cyB3cml0ZSByb3cATkRCIEJpbmxvZzogRXJyb3IgZHVyaW5nIFJPTExCQUNLIG9mIEdDSSAldS8ldS4gRXJyb3I6ICVkAE5EQiBCaW5sb2c6IEVycm9yIGR1cmluZyBDT01NSVQgb2YgR0NJLiBFcnJvcjogJWQATkRCIEJpbmxvZzogbGF0ZXN0IHRyYW5zYWN0aW9uIGluIGVwb2NoICV1LyV1IG5vdCBpbiBiaW5sb2cgYXMgbGF0ZXN0IGhhbmRsZWQgZXBvY2ggaXMgJXUvJXUATkRCIEJpbmxvZzogUmVsZWFzZSBleHRyYSBzaGFyZSByZWZlcmVuY2VzAE5EQiBCaW5sb2c6IHJlbWFpbmluZyBvcGVuIHRhYmxlczogACAgJXMuJXMgc3RhdGU6ICV1IHVzZV9jb3VudDogJXUAV3JvbmcgdHJlZTogUGFyZW50IGRvZXNuJ3QgcG9pbnQgYXQgcGFyZW50AFdyb25nIHRyZWU6IFJvb3Qgc2hvdWxkIGJlIGJsYWNrAFdyb25nIHRyZWU6IEZvdW5kIHR3byByZWQgaW4gYSByb3cAV3JvbmcgdHJlZTogRm91bmQgcmlnaHQgPT0gbGVmdABXcm9uZyB0cmVlOiBJbmNvcnJlY3QgYmxhY2stY291bnQ6ICVkIC0gJWQAVXNlX2NvdW50OiBXcm9uZyBjb3VudCAlbHUgZm9yIG9yaWdpbiAlcABVc2VfY291bnQ6IFdyb25nIGNvdW50IGZvciBrZXkgYXQgJXAsICVsdSBzaG91bGQgYmUgJWx1AFdyb25nIG51bWJlciBvZiBlbGVtZW50czogJXUgKHNob3VsZCBiZSAldSkgZm9yIHRyZWUgYXQgJXAARXJyb3IgcmVhZGluZyByZXBsaWNhIHdvcmtlciBjb25maWd1cmF0aW9uAEVycm9yIHdyaXRpbmcgcmVwbGljYSB3b3JrZXIgY29uZmlndXJhdGlvbgBGYWlsZWQgdG8gb3BlbiByZWxheSBsb2cgJXMsIGVycm9yOiAlcwBFcnJvciB3aGVuIHdvcmtlciByZWFkIHJlbGF5IGxvZyBldmVudHMscmVsYXkgbG9nIG5hbWUgJXMsIHBvc2l0aW9uICVsbHUARmFpbGVkIHRvIGZpbmQgbmV4dCByZWxheSBsb2cgd2hlbiByZXRyeWluZyB0aGUgdHJhbnNhY3Rpb24sIGN1cnJlbnQgcmVsYXkgbG9nIGlzICVzAE11bHRpLXRocmVhZGVkIHJlcGxpY2E6IENvb3JkaW5hdG9yIGhhcyB3YWl0ZWQgJWx1IHRpbWVzIGhpdHRpbmcgcmVwbGljYV9wZW5kaW5nX2pvYnNfc2l6ZV9tYXg7IGN1cnJlbnQgZXZlbnQgc2l6ZSA9ICV6dS4ARmFpbGVkIHRvIHdyaXRlIHRoZSBEUk9QIHN0YXRlbWVudCBmb3IgdGVtcG9yYXJ5IHRhYmxlcyB0byBiaW5hcnkgbG9nAFdoZW4gb3BlbmluZyBIRUFQIHRhYmxlLCBjb3VsZCBub3QgYWxsb2NhdGUgbWVtb3J5IHRvIHdyaXRlICdERUxFVEUgRlJPTSBgJXNgLmAlc2AnIHRvIHRoZSBiaW5hcnkgbG9nAENvdWxkbid0IHJlcGFpciB0YWJsZTogJXMuJXMAQ291bGQgbm90IHJlbW92ZSB0ZW1wb3JhcnkgdGFibGU6ICclcycsIGVycm9yOiAlZABTeXN0ZW0gdGFibGUgJyUuKnMnIGlzIGV4cGVjdGVkIHRvIGJlIHRyYW5zYWN0aW9uYWwuAEVycm9yIHdyaXRpbmcgc291cmNlIGNvbmZpZ3VyYXRpb24uAEVycm9yIHJlYWRpbmcgc291cmNlIGNvbmZpZ3VyYXRpb24uAFNTTCBpbmZvcm1hdGlvbiBpbiB0aGUgY29ubmVjdGlvbiBtZXRhZGF0YSByZXBvc2l0b3J5IGFyZSBpZ25vcmVkIGJlY2F1c2UgdGhpcyBNeVNRTCByZXBsaWNhIHdhcyBjb21waWxlZCB3aXRob3V0IFNTTCBzdXBwb3J0LgBQbHVnaW4gJyVzJyBvZiB0eXBlICVzIGZhaWxlZCBkZWluaXRpYWxpemF0aW9uAFBsdWdpbiAnJXMnIGhhcyByZWZfY291bnQ9JWQgYWZ0ZXIgZGVpbml0aWFsaXphdGlvbi4AU2h1dHRpbmcgZG93biBwbHVnaW4gJyVzJwBQbHVnaW4gJyVzJyByZWdpc3RyYXRpb24gYXMgYSAlcyBmYWlsZWQuAENvdWxkIG5vdCBvcGVuIHRoZSBteXNxbC5wbHVnaW4gdGFibGUuIFBsZWFzZSBwZXJmb3JtIHRoZSBNeVNRTCB1cGdyYWRlIHByb2NlZHVyZS4AQ291bGRuJ3QgbG9hZCBwbHVnaW4gbmFtZWQgJyVzJyB3aXRoIHNvbmFtZSAnJXMnLgBwbHVnaW4tbG9hZCBwYXJhbWV0ZXIgdG9vIGxvbmcAUGx1Z2luICclcycgd2lsbCBiZSBmb3JjZWQgdG8gc2h1dGRvd24AUGx1Z2luICclcycgaGFzIHJlZl9jb3VudD0lZCBhZnRlciBzaHV0ZG93bi4AVW5rbm93biB2YXJpYWJsZSB0eXBlIGNvZGUgMHgleCBpbiBwbHVnaW4gJyVzJy4AU2VydmVyIHZhcmlhYmxlICVzIG9mIHBsdWdpbiAlcyB3YXMgZm9yY2VkIHRvIGJlIHJlYWQtb25seTogc3RyaW5nIHZhcmlhYmxlIHdpdGhvdXQgdXBkYXRlX2Z1bmMgYW5kIFBMVUdJTl9WQVJfTUVNQUxMT0MgZmxhZwBNaXNzaW5nIHZhcmlhYmxlIG5hbWUgaW4gcGx1Z2luICclcycuAFRocmVhZCBsb2NhbCB2YXJpYWJsZSAnJXMnIG5vdCBhbGxvY2F0ZWQgaW4gcGx1Z2luICclcycuAE91dCBvZiBtZW1vcnkgZm9yIHBsdWdpbiAnJXMnLgBCYWQgb3B0aW9ucyBmb3IgcGx1Z2luICclcycuAFBhcnNpbmcgb3B0aW9ucyBmb3IgcGx1Z2luICclcycgZmFpbGVkLgBQbHVnaW4gJyVzJyBpcyBkaXNhYmxlZC4AUGx1Z2luICclcycgaGFzIGNvbmZsaWN0aW5nIHN5c3RlbSB2YXJpYWJsZXMAU2V0dGluZyBwZXJzaXN0ZW50IG9wdGlvbnMgZm9yIHBsdWdpbiAnJXMnIGZhaWxlZC4ARmFpbGVkIG9uIG15X25ldF93cml0ZSwgd3JpdGluZyB0byBzdGRlcnIgaW5zdGVhZDogJXMAUmV0cnlpbmcgcmVwYWlyIG9mOiAnJXMnIHdpdGhvdXQgcXVpY2sAUmV0cnlpbmcgcmVwYWlyIG9mOiAnJXMnIHdpdGgga2V5Y2FjaGUARm91bmQgJXMgb2YgJXMgcm93cyB3aGVuIHJlcGFpcmluZyAnJXMnAFdhcm5pbmc6IE9wdGltaXplIHRhYmxlIGdvdCBlcnJubyAlZCBvbiAlcy4lcywgcmV0cnlpbmcAV2FybmluZzogRW5hYmxpbmcga2V5cyBnb3QgZXJybm8gJWQgb24gJXMuJXMsIHJldHJ5aW5nAENoZWNraW5nIHRhYmxlOiAgICclcycAUmVjb3ZlcmluZyB0YWJsZTogJyVzJwBFcnJvciBpbiBjcmVhdGluZyBUQUJMRV9TSEFSRSBmcm9tICVzLmZybSBmaWxlLgBVbmFibGUgdG8gYWNxdWlyZSBsb2NrIG9uICVzLiVzAEVycm9yIGluIGFsbG9jYXRpb24gbWVtb3J5IGZvciBUQUJMRSBvYmplY3QuAEVycm9yIGluIGNyZWF0aW5nIGhhbmRsZXIgb2JqZWN0IGZvciB0YWJsZSAlcy4lcwBFcnJvciBpbiBzZXR0aW5nIGhhbmRsZXIgcmVmZXJlbmNlIGZvciB0YWJsZSAlcy4lcwBVbmFibGUgdG8gYWNxdWlyZSBsb2NrIG9uIHRhYmxlc3BhY2UgbmFtZSAlcwBFcnJvciBpbiBwcm9jZXNzaW5nIGdlbmVyYXRlZCBjb2x1bW5zIGZvciB0YWJsZSAlcy4lcwBFcnJvciBpbiBDcmVhdGluZyBERCBlbnRyeSBmb3IgJXMuJXMARXJyb3IgaW4gZmV0Y2hpbmcgJXMuJXMgdGFibGUgZGF0YSBmcm9tIGRpY3Rpb25hcnkARXJyb3IgaW4gZml4aW5nIFNFIGRhdGEgZm9yICVzLiVzAEVycm9yIGluIGNyZWF0aW5nIHN0b3JlZCBwcm9ncmFtICclcy4lcycAVW5hYmxlIHRvIG9wZW4gZGIub3B0IGZpbGUgJXMuIFVzaW5nIGRlZmF1bHQgQ2hhcmFjdGVyIHNldC4AVW5hYmxlIHRvIGludGlhbGl6ZSBJTyBjYWNoZSB0byBvcGVuIGRiLm9wdCBmaWxlICVzLiAAVW5hYmxlIHRvIGlkZW50aWZ5IHRoZSBjaGFyc2V0IGluICVzLiBVc2luZyBkZWZhdWx0IGNoYXJhY3RlciBzZXQuAGRiLm9wdCBmaWxlIG5vdCBmb3VuZCBmb3IgJXMgZGF0YWJhc2UuIFVzaW5nIGRlZmF1bHQgQ2hhcmFjdGVyIHNldC4ARXZlbnQgJyVzJy4nJXMnOiBpbnZhbGlkIHZhbHVlIGluIGNvbHVtbiBteXNxbC5ldmVudC50aW1lX3pvbmUuAEV2ZW50ICclcycuJyVzJzogaGFzIGludmFsaWQgdGltZSB6b25lIHZhbHVlIABFdmVudCAnJXMnLiclcyc6IGludmFsaWQgdmFsdWUgaW4gY29sdW1uIG15c3FsLmV2ZW50LmNoYXJhY3Rlcl9zZXRfY2xpZW50LgBFdmVudCAnJXMnLiclcyc6IGludmFsaWQgdmFsdWUgaW4gY29sdW1uIG15c3FsLmV2ZW50LmNvbGxhdGlvbl9jb25uZWN0aW9uLgBGYWlsZWQgdG8gb3BlbiBteXNxbC5ldmVudCBUYWJsZS4AUGFyc2luZyAnJXMuJXMnIHJvdXRpbmUgYm9keSBmYWlsZWQuJXMARmFpbGVkIHRvIG9wZW4gbXlzcWwucHJvYyBUYWJsZS4ARmFpbGVkIHRvIHJlYWQgbXlzcWwucHJvYyB0YWJsZS4ARm91bmQgJXMgZmlsZSBpbiBteXNxbCBzY2hlbWEuIEREIHdpbGwgY3JlYXRlIC5pYmQgZmlsZSB3aXRoIHNhbWUgbmFtZS4gUGxlYXNlIHJlbmFtZSB0YWJsZSBhbmQgc3RhcnQgdXBncmFkZSBwcm9jZXNzIGFnYWluLgBVbmFibGUgdG8gb3BlbiB0aGUgZGF0YSBkaXJlY3RvcnkgJXMgZHVyaW5nIGNsZWFuIHVwIGFmdGVyIHVwZ3JhZGUgZmFpbGVkAEZhaWxlZCB0byBzZXQgcGF0aCAlcwBGYWlsZWQgdG8gb3BlbiBkaXIgJXMATkRCOiBGb3VuZCBlbXB0eSBub2RlaWQgc3BlY2lmaWVkIGluIC0tbmRiLWNsdXN0ZXItY29ubmVjdGlvbi1wb29sLW5vZGVpZHM9JyVzJy4ATkRCOiBDb3VsZCBub3QgcGFyc2UgJyVzJyBpbiAtLW5kYi1jbHVzdGVyLWNvbm5lY3Rpb24tcG9vbC1ub2RlaWRzPSclcycuAE5EQjogSW52YWxpZCBub2RlaWQgJWQgaW4gLS1uZGItY2x1c3Rlci1jb25uZWN0aW9uLXBvb2wtbm9kZWlkcz0nJXMnLgBOREI6IEZvdW5kIGR1cGxpY2F0ZSBub2RlaWQgJWQgaW4gLS1uZGItY2x1c3Rlci1jb25uZWN0aW9uLXBvb2wtbm9kZWlkcz0nJXMnLgBOREI6IFRoZSBzaXplIG9mIHRoZSBjbHVzdGVyIGNvbm5lY3Rpb24gcG9vbCBtdXN0IGJlIGVxdWFsIHRvIHRoZSBudW1iZXIgb2Ygbm9kZWlkcyBpbiAtLW5kYi1jbHVzdGVyLWNvbm5lY3Rpb24tcG9vbC1ub2RlaWRzPSclcycuAE5EQjogVGhlIG5vZGVpZCBzcGVjaWZpZWQgYnkgLS1uZGItbm9kZWlkIG11c3QgYmUgZXF1YWwgdG8gdGhlIGZpcnN0IG5vZGVpZCBpbiAtLW5kYi1jbHVzdGVyLWNvbm5lY3Rpb24tcG9vbC1ub2RlaWRzPSclcycuAE5EQjogdXNpbmcgbm9kZWlkICV1AE5EQjogZmFpbGVkIHRvIGFsbG9jYXRlIGdsb2JhbCBuZGIgY2x1c3RlciBjb25uZWN0aW9uAE5EQjogZmFpbGVkIHRvIGFsbG9jYXRlIGdsb2JhbCBuZGIgb2JqZWN0AE5EQlsldV06IHVzaW5nIG5vZGVpZCAldQBOREJbJXVdOiBmYWlsZWQgdG8gYWxsb2NhdGUgY2x1c3RlciBjb25uZWN0IG9iamVjdABOREJbJXVdOiBzdGFydGluZyBjb25uZWN0IHRocmVhZABOREJbJXVdOiBOb2RlSUQ6ICVkLCAlcwBOREJbJXVdOiBmYWlsZWQgdG8gc3RhcnQgY29ubmVjdCB0aHJlYWQATkRCOiBlcnJvciAoJXUpICVzAElnbm9yZWQgcmVjZWl2ZSB0aHJlYWQgQ1BVIG1hc2ssIG1hc2sgdG9vIHNob3J0LCAldSBDUFVzIG5lZWRlZCBpbiBtYXNrLCBvbmx5ICV1IENQVXMgcHJvdmlkZWQARXZlbnQgRXJyb3I6IEFuIGVycm9yIG9jY3VycmVkIHdoaWxlIGNyZWF0aW5nIHF1ZXJ5IHN0cmluZywgYmVmb3JlIHdyaXRpbmcgaXQgaW50byBiaW5hcnkgbG9nLgBFdmVudCBTY2hlZHVsZXI6IEVycm9yIHdoaWxlIGxvYWRpbmcgZnJvbSBkaXNrLgBFdmVudCBTY2hlZHVsZXI6IEVycm9yIGdldHRpbmcgZXZlbnQgb2JqZWN0LgBFdmVudCBTY2hlZHVsZXI6IEVycm9yIHdoaWxlIGxvYWRpbmcgZXZlbnRzIGZyb20gbXlzcWwuZXZlbnRzLlRoZSB0YWJsZSBwcm9iYWJseSBjb250YWlucyBiYWQgZGF0YSBvciBpcyBjb3JydXB0ZWQAVW5hYmxlIHRvIG9idGFpbiBsb2NrIGZvciBkcm9wcGluZyBldmVudCAlcyBmcm9tIHNjaGVtYSAlcwBVbmFibGUgdG8gZHJvcCBldmVudCAlcyBmcm9tIHNjaGVtYSAlcwBTZXJ2ZXIgb3ZlcmNvbWVzIHRoZSB0ZW1wb3JhcnkgJ291dCBvZiBtZW1vcnknIGluICclZCcgdHJpZXMgd2hpbGUgYXR0YWNoaW5nIHRvIHNlc3Npb24gdGhyZWFkIGR1cmluZyB0aGUgZ3JvdXAgY29tbWl0IHBoYXNlLgBVbmFibGUgdG8gcmVzaXplIGJpbmxvZyBJT0NBQ0hFIGF1eGlsaWFyeSBmaWxlAGZpbGUgJXMgd2FzIG5vdCBwdXJnZWQgYmVjYXVzZSBpdCB3YXMgYmVpbmcgcmVhZCBieSB0aHJlYWQgbnVtYmVyICV1AEkvTyBlcnJvciByZWFkaW5nIHRoZSBoZWFkZXIgZnJvbSB0aGUgYmluYXJ5IGxvZywgZXJybm89JWQsIGlvIGNhY2hlIGNvZGU9JWQARmFpbGVkIHRvIG9wZW4gbG9nIChmaWxlICclcycsIGVycm5vICVkKQBGYWlsZWQgdG8gY3JlYXRlIGEgY2FjaGUgb24gbG9nIChmaWxlICclcycpAExvZyBmaWxlbmFtZSBleHRlbnNpb24gbnVtYmVyIGV4aGF1c3RlZDogJTA2bHUuIFBsZWFzZSBmaXggdGhpcyBieSBhcmNoaXZpbmcgb2xkIGxvZ3MgYW5kIHVwZGF0aW5nIHRoZSBpbmRleCBmaWxlcy4ATG9nIGZpbGVuYW1lIHRvbyBsYXJnZTogJXMlcyAoJXp1KS4gUGxlYXNlIGZpeCB0aGlzIGJ5IGFyY2hpdmluZyBvbGQgbG9ncyBhbmQgdXBkYXRpbmcgdGhlIGluZGV4IGZpbGVzLgBOZXh0IGxvZyBleHRlbnNpb246ICVsdS4gUmVtYWluaW5nIGxvZyBmaWxlbmFtZSBleHRlbnNpb25zOiAlbHUuIFBsZWFzZSBjb25zaWRlciBhcmNoaXZpbmcgc29tZSBsb2dzLgBDb3VsZCBub3Qgb3BlbiAlcyBmb3IgbG9nZ2luZyAoZXJyb3IgJWQpLiBUdXJuaW5nIGxvZ2dpbmcgb2ZmIGZvciB0aGUgd2hvbGUgZHVyYXRpb24gb2YgdGhlIE15U1FMIHNlcnZlciBwcm9jZXNzLiBUbyB0dXJuIGl0IG9uIGFnYWluOiBmaXggdGhlIGNhdXNlLCBzaHV0ZG93biB0aGUgTXlTUUwgc2VydmVyIGFuZCByZXN0YXJ0IGl0LgBNWVNRTF9CSU5fTE9HOjpvcGVuX2luZGV4X2ZpbGUgZmFpbGVkIHRvIHN5bmMgdGhlIGluZGV4IGZpbGUuAEVycm9yIHJlYWRpbmcgR1RJRHMgZnJvbSByZWxheWxvZzogJWQAJWx1IGV2ZW50cyByZWFkIGluIHJlbGF5bG9nIGZpbGUgJyVzJyBmb3IgdXBkYXRpbmcgUmV0cmlldmVkX0d0aWRfU2V0IGFuZC9vciBJTyB0aHJlYWQgdHJhbnNhY3Rpb24gcGFyc2VyIHN0YXRlLgBFcnJvciByZWFkaW5nIEdUSURzIGZyb20gYmluYXJ5IGxvZzogJWQAUmVhZCAlbHUgZXZlbnRzIGZyb20gYmluYXJ5IGxvZyBmaWxlICclcycgdG8gZGV0ZXJtaW5lIHRoZSBHVElEcyBwdXJnZWQgZnJvbSBiaW5hcnkgbG9ncy4ATVlTUUxfQklOX0xPRzo6b3BlbiBmYWlsZWQgdG8gZ2VuZXJhdGUgbmV3IGZpbGUgbmFtZS4ATVlTUUxfQklOX0xPRzo6b3BlbiBmYWlsZWQgdG8gc3luYyB0aGUgaW5kZXggZmlsZS4AQ291bGQgbm90IHVzZSAlcyBmb3IgbG9nZ2luZyAoZXJyb3IgJWQpLiBUdXJuaW5nIGxvZ2dpbmcgb2ZmIGZvciB0aGUgd2hvbGUgZHVyYXRpb24gb2YgdGhlIE15U1FMIHNlcnZlciBwcm9jZXNzLiBUbyB0dXJuIGl0IG9uIGFnYWluOiBmaXggdGhlIGNhdXNlLCBzaHV0ZG93biB0aGUgTXlTUUwgc2VydmVyIGFuZCByZXN0YXJ0IGl0LgBXaGlsZSByZWJ1aWxkaW5nIGluZGV4IGZpbGUgJXM6IEZhaWxlZCB0byBjbG9zZSB0aGUgaW5kZXggZmlsZS4AV2hpbGUgcmVidWlsZGluZyBpbmRleCBmaWxlICVzOiBGYWlsZWQgdG8gZGVsZXRlIHRoZSBleGlzdGluZyBpbmRleCBmaWxlLiBJdCBjb3VsZCBiZSB0aGF0IGZpbGUgaXMgYmVpbmcgdXNlZCBieSBzb21lIG90aGVyIHByb2Nlc3MuAFdoaWxlIHJlYnVpbGRpbmcgaW5kZXggZmlsZSAlczogRmFpbGVkIHRvIHJlbmFtZSB0aGUgbmV3IGluZGV4IGZpbGUgdG8gdGhlIGV4aXN0aW5nIGluZGV4IGZpbGUuAEFmdGVyIHJlYnVpbGRpbmcgdGhlIGluZGV4IGZpbGUgJXM6IEZhaWxlZCB0byBvcGVuIHRoZSBpbmRleCBmaWxlLgBNWVNRTF9CSU5fTE9HOjphZGRfbG9nX3RvX2luZGV4IGZhaWxlZCB0byBhcHBlbmQgbG9nIGZpbGUgbmFtZTogJXMsIHRvIGNyYXNoIHNhZmUgaW5kZXggZmlsZS4ARmFpbGVkIHRvIGxvY2F0ZSBvbGQgYmlubG9nIG9yIHJlbGF5IGxvZyBmaWxlcwBGYWlsZWQgdG8gZGVsZXRlIGZpbGUgJyVzJwBNWVNRTF9CSU5fTE9HOjpzZXRfY3Jhc2hfc2FmZV9pbmRleF9maWxlX25hbWUgZmFpbGVkIHRvIHNldCBmaWxlIG5hbWUuAE1ZU1FMX0JJTl9MT0c6Om9wZW5fY3Jhc2hfc2FmZV9pbmRleF9maWxlIGZhaWxlZCB0byBvcGVuIHRlbXBvcmFyeSBpbmRleCBmaWxlLgBuZXh0IGxvZyBlcnJvcjogJWQgIG9mZnNldDogJXMgIGxvZzogJXMgaW5jbHVkZWQ6ICVkACVzIGZhaWxlZCB0byBvcGVuIHRoZSBjcmFzaCBzYWZlIGluZGV4IGZpbGUuACVzIGZhaWxlZCB0byBjb3B5IGluZGV4IGZpbGUgdG8gY3Jhc2ggc2FmZSBpbmRleCBmaWxlLgAlcyBmYWlsZWQgdG8gY2xvc2UgdGhlIGNyYXNoIHNhZmUgaW5kZXggZmlsZS4AJXMgZmFpbGVkIHRvIG1vdmUgY3Jhc2ggc2FmZSBpbmRleCBmaWxlIHRvIGluZGV4IGZpbGUuAE1ZU1FMX0JJTl9MT0c6OnB1cmdlX2xvZ3Mgd2FzIGNhbGxlZCB3aXRoIGZpbGUgJXMgbm90IGxpc3RlZCBpbiB0aGUgaW5kZXguAE1ZU1FMX0JJTl9MT0c6OnB1cmdlX2xvZ3MgZmFpbGVkIHRvIHN5bmMgdGhlIGluZGV4IGZpbGUuAE1ZU1FMX0JJTl9MT0c6OnB1cmdlX2xvZ3MgZmFpbGVkIHRvIGNvcHkgJXMgdG8gcmVnaXN0ZXIgZmlsZS4ATVlTUUxfQklOX0xPRzo6cHVyZ2VfbG9ncyBmYWlsZWQgdG8gZmx1c2ggcmVnaXN0ZXIgZmlsZS4ATVlTUUxfQklOX0xPRzo6cHVyZ2VfbG9ncyBmYWlsZWQgdG8gdXBkYXRlIHRoZSBpbmRleCBmaWxlAE1ZU1FMX0JJTl9MT0c6OnB1cmdlX2xvZ3MgZmFpbGVkIHRvIHByb2Nlc3MgcmVnaXN0ZXJlZCBmaWxlcyB0aGF0IHdvdWxkIGJlIHB1cmdlZC4ATVlTUUxfQklOX0xPRzo6c2V0X3B1cmdlX2luZGV4X2ZpbGVfbmFtZSBmYWlsZWQgdG8gc2V0IGZpbGUgbmFtZS4ATVlTUUxfQklOX0xPRzo6b3Blbl9wdXJnZV9pbmRleF9maWxlIGZhaWxlZCB0byBvcGVuIHJlZ2lzdGVyIGZpbGUuAE1ZU1FMX0JJTl9MT0c6OnB1cmdlX2luZGV4X2VudHJ5IGZhaWxlZCB0byByZWluaXQgcmVnaXN0ZXIgZmlsZSBmb3IgcmVhZABNWVNRTF9CSU5fTE9HOjpwdXJnZV9pbmRleF9lbnRyeSBlcnJvciAlZCByZWFkaW5nIGZyb20gcmVnaXN0ZXIgZmlsZS4ARmFpbGVkIHRvIGV4ZWN1dGUgbXlzcWxfZmlsZV9zdGF0IG9uIGZpbGUgJyVzJwBGYWlsZWQgdG8gZGVsZXRlIGxvZyBmaWxlICclcyc7IGNvbnNpZGVyIGV4YW1pbmluZyBjb3JyZXNwb25kZW5jZSBvZiB5b3VyIGJpbmxvZyBpbmRleCBmaWxlIHRvIHRoZSBhY3R1YWwgYmlubG9nIGZpbGVzAEZhaWxlZCB0byBkZWxldGUgZmlsZSAnJXMnIGFuZCByZWFkIHRoZSBiaW5sb2cgaW5kZXggZmlsZQBGYWlsZWQgdG8gZGVsZXRlIGxvZyBmaWxlICclcycAJXMgQW4gaW5jaWRlbnQgZXZlbnQgaGFzIGJlZW4gd3JpdHRlbiB0byB0aGUgYmluYXJ5IGxvZyB3aGljaCB3aWxsIHN0b3AgdGhlIHJlcGxpY2FzLgBmaW5kX2xvZ19wb3MoKSBmYWlsZWQgKGVycm9yOiAlZCkAUmVjb3ZlcmluZyBhZnRlciBhIGNyYXNoIHVzaW5nICVzAEZhaWxlZCB0byBvcGVuIHRoZSBjcmFzaGVkIGJpbmxvZyBmaWxlIHdoZW4gc291cmNlIHNlcnZlciBpcyByZWNvdmVyaW5nIGl0LgBGYWlsZWQgdG8gdHJpbSB0aGUgY3Jhc2hlZCBiaW5sb2cgZmlsZSB3aGVuIHNvdXJjZSBzZXJ2ZXIgaXMgcmVjb3ZlcmluZyBpdC4AQ3Jhc2hlZCBiaW5sb2cgZmlsZSAlcyBzaXplIGlzICVsbHUsIGJ1dCByZWNvdmVyZWQgdXAgdG8gJWxsdS4gQmlubG9nIHRyaW1tZWQgdG8gJWxsdSBieXRlcy4ARmFpbGVkIHRvIGNsZWFyIExPR19FVkVOVF9CSU5MT0dfSU5fVVNFX0YgZm9yIHRoZSBjcmFzaGVkIGJpbmxvZyBmaWxlIHdoZW4gc291cmNlIHNlcnZlciBpcyByZWNvdmVyaW5nIGl0LgBGYWlsZWQgdG8gcnVuICdhZnRlcl9zeW5jJyBob29rcwAlcyBIZW5jZSB0dXJuaW5nIGxvZ2dpbmcgb2ZmIGZvciB0aGUgd2hvbGUgZHVyYXRpb24gb2YgdGhlIE15U1FMIHNlcnZlciBwcm9jZXNzLiBUbyB0dXJuIGl0IG9uIGFnYWluOiBmaXggdGhlIGNhdXNlLCBzaHV0ZG93biB0aGUgTXlTUUwgc2VydmVyIGFuZCByZXN0YXJ0IGl0LgBGYWlsZWQgdG8gcnVuICdhZnRlcl9mbHVzaCcgaG9va3MAQ3Jhc2ggcmVjb3ZlcnkgZmFpbGVkLiBFaXRoZXIgY29ycmVjdCB0aGUgcHJvYmxlbSAoaWYgaXQncywgZm9yIGV4YW1wbGUsIG91dCBvZiBtZW1vcnkgZXJyb3IpIGFuZCByZXN0YXJ0LCBvciBkZWxldGUgKG9yIHJlbmFtZSkgYmluYXJ5IGxvZyBhbmQgc3RhcnQgbXlzcWxkIHdpdGggLS10Yy1oZXVyaXN0aWMtcmVjb3Zlcj17Y29tbWl0fHJvbGxiYWNrfQBUaGUgZm9sbG93aW5nIHdhcm5pbmcgd2FzIHN1cHByZXNzZWQgJWQgdGltZXMgZHVyaW5nIHRoZSBsYXN0ICVkIHNlY29uZHMgaW4gdGhlIGVycm9yIGxvZwBOREI6ICVzAE5EQiAlczogJXMATkRCOiBVbmFibGUgdG8gcHVyZ2UgJXMuJXMgRmlsZT0lcyAoZmFpbGVkIHRvIHNldHVwIHRoZCkAVW5rbm93biBjb2xsYXRpb24gIyVsdS4Ac3ludGF4IGVycm9yIGluIGlubm9kYl9sb2dfZ3JvdXBfaG9tZV9kaXIAc3ludGF4IGVycm9yIGluIGlubm9kYl91bmRvX2RpcmVjdG9yeQBJbm5vREI6IGlubm9kYl9idWZmZXJfcG9vbF9maWxlbmFtZSBjYW5ub3QgaGF2ZSBjb2xvbiAoOikgaW4gdGhlIGZpbGUgbmFtZS4ASW5ub0RCOiBJbnZhbGlkIHBhZ2Ugc2l6ZT0lbHUuAElubm9EQjogaW5ub2RiX21heF9kaXJ0eV9wYWdlc19wY3RfbHdtIGNhbm5vdCBiZSBzZXQgaGlnaGVyIHRoYW4gaW5ub2RiX21heF9kaXJ0eV9wYWdlc19wY3QuIFNldHRpbmcgaW5ub2RiX21heF9kaXJ0eV9wYWdlc19wY3RfbHdtIHRvICVsZgBJbm5vREI6IGlubm9kYl9pb19jYXBhY2l0eSBjYW5ub3QgYmUgc2V0IGhpZ2hlciB0aGFuIGlubm9kYl9pb19jYXBhY2l0eV9tYXguIFNldHRpbmcgaW5ub2RiX2lvX2NhcGFjaXR5IHRvICVsdQAlcyBhbmQgJXMgZmlsZSBuYW1lcyBzZWVtIHRvIGJlIHRoZSBzYW1lLgBUcmFuc2FjdGlvbiBub3QgcmVnaXN0ZXJlZCBmb3IgTXlTUUwgMlBDLCBidXQgdHJhbnNhY3Rpb24gaXMgYWN0aXZlAE15U1FMIGlzIGNsb3NpbmcgYSBjb25uZWN0aW9uIHRoYXQgaGFzIGFuIGFjdGl2ZSBJbm5vREIgdHJhbnNhY3Rpb24uICVsbHUgcm93IG1vZGlmaWNhdGlvbnMgd2lsbCByb2xsIGJhY2suAElubm9EQjogZmFpbCB0byBhbGxvY2F0ZSBtZW1vcnkgZm9yIGluZGV4IHRyYW5zbGF0aW9uIHRhYmxlLiBOdW1iZXIgb2YgSW5kZXg6JWx1LCBhcnJheSBzaXplOiVsdQBDYW5ub3QgZmluZCBpbmRleCAlcyBpbiBJbm5vREIgaW5kZXggZGljdGlvbmFyeS4ARm91bmQgaW5kZXggJXMgd2hvc2UgY29sdW1uIGluZm8gZG9lcyBub3QgbWF0Y2ggdGhhdCBvZiBNeVNRTC4ARmFpbGVkIHRvIG9wZW4gdGFibGUgJXMuAEJ1aWxkIElubm9EQiBpbmRleCB0cmFuc2xhdGlvbiB0YWJsZSBmb3IgVGFibGUgJXMgZmFpbGVkAFRhYmxlICVzIGhhcyBhIHByaW1hcnkga2V5IGluIElubm9EQiBkYXRhIGRpY3Rpb25hcnksIGJ1dCBub3QgaW4gTXlTUUwhAFRhYmxlICVzIGhhcyBubyBwcmltYXJ5IGtleSBpbiBJbm5vREIgZGF0YSBkaWN0aW9uYXJ5LCBidXQgaGFzIG9uZSBpbiBNeVNRTCEgSWYgeW91IGNyZWF0ZWQgdGhlIHRhYmxlIHdpdGggYSBNeVNRTCB2ZXJzaW9uIDwgMy4yMy41NCBhbmQgZGlkIG5vdCBkZWZpbmUgYSBwcmltYXJ5IGtleSwgYnV0IGRlZmluZWQgYSB1bmlxdWUga2V5IHdpdGggYWxsIG5vbi1OVUxMIGNvbHVtbnMsIHRoZW4gTXlTUUwgaW50ZXJuYWxseSB0cmVhdHMgdGhhdCBrZXkgYXMgdGhlIHByaW1hcnkga2V5LiBZb3UgY2FuIGZpeCB0aGlzIGVycm9yIGJ5IGR1bXAgKyBEUk9QICsgQ1JFQVRFICsgcmVpbXBvcnQgb2YgdGhlIHRhYmxlLgBUYWJsZSAlcyBrZXlfdXNlZF9vbl9zY2FuIGlzICVsdSBldmVuIHRob3VnaCB0aGVyZSBpcyBubyBwcmltYXJ5IGtleSBpbnNpZGUgSW5ub0RCLgBQYXJ0aXRpb24gdGFibGUgJXMgb3BlbmVkIGFmdGVyIGNvbnZlcnRpbmcgdG8gbG93ZXIgY2FzZS4gVGhlIHRhYmxlIG1heSBoYXZlIGJlZW4gbW92ZWQgZnJvbSBhIGNhc2UtaW5zZW5zaXRpdmUgZmlsZSBzeXN0ZW0uIFBsZWFzZSByZWNyZWF0ZSB0aGUgdGFibGUgaW4gdGhlIGN1cnJlbnQgZmlsZSBzeXN0ZW0uAENhbm5vdCByZXBsYWNlIGVycm9yIG1lc3NhZ2UgKCVzLCVzLCVzKSAiJXMiIHdpdGggIiVzIjsgd3JvbmcgbnVtYmVyIG9yIHR5cGUgb2YgJSUgc3Vic2l0dXRpb25zLgBUYWJsZSBmb3IgZXJyb3IgbWVzc2FnZSByZXBsYWNlbWVudHMgY291bGQgbm90IGJlIGZvdW5kIG9yIHJlYWQsIG9yIG9uZSBvciBtb3JlIHJlcGxhY2VtZW50cyBjb3VsZCBub3QgYmUgYXBwbGllZC4AJXM6ICVzAFRhYmxlICclLTE5MnMnOiBEZWxldGUgZnJvbSBwYXJ0ICVkIGZhaWxlZCB3aXRoIGVycm9yICVkLiBCdXQgaXQgd2FzIGFscmVhZHkgaW5zZXJ0ZWQgaW50byBwYXJ0ICVkLCB3aGVuIG1vdmluZyB0aGUgbWlzcGxhY2VkIHJvdyEgUGxlYXNlIG1hbnVhbGx5IGZpeCB0aGUgZHVwbGljYXRlIHJvdzogJXMAQ29tbWFuZCAnJXMnIGNhbm5vdCBiZSBhYm9ydGVkLiBUaGUgdHJpZ2dlciBlcnJvciB3YXMgKCVkKSBbJXNdOiAlcwBFdmVudCAnJXMnIGNhbm5vdCBiZSBhYm9ydGVkLiBUaGUgdHJpZ2dlciBlcnJvciB3YXMgKCVkKSBbJXNdOiAlcwAlcy4gVGhlIHRyaWdnZXIgZXJyb3Igd2FzICglZCkgWyVzXTogJXMAUmVwbGljYSBTUUw6IENvbmZpZ3VyYXRpb24gd2l0aCBudW1iZXIgb2YgcmVwbGljYXRpb24gc291cmNlcyA9ICV1JyBpcyBub3Qgc3VwcG9ydGVkIHdoZW4gYXBwbHlpbmcgdG8gTmRiAFJlcGxpY2EgU1FMOiBDb25maWd1cmF0aW9uICdyZXBsaWNhX3BhcmFsbGVsX3dvcmtlcnMgPSAlbHUnIGlzIG5vdCBzdXBwb3J0ZWQgd2hlbiBhcHBseWluZyB0byBOZGIATkRCICVzOiBkaXN0cmlidXRpbmcgJXMgZXJyOiAldQBTdG9yaW5nIE15U1FMIHVzZXIgbmFtZSBvciBwYXNzd29yZCBpbmZvcm1hdGlvbiBpbiB0aGUgY29ubmVjdGlvbiBtZXRhZGF0YSByZXBvc2l0b3J5IGlzIG5vdCBzZWN1cmUgYW5kIGlzIHRoZXJlZm9yZSBub3QgcmVjb21tZW5kZWQuIFBsZWFzZSBjb25zaWRlciB1c2luZyB0aGUgVVNFUiBhbmQgUEFTU1dPUkQgY29ubmVjdGlvbiBvcHRpb25zIGZvciBTVEFSVCBSRVBMSUNBOyBzZWUgdGhlICdTVEFSVCBSRVBMSUNBIFN5bnRheCcgaW4gdGhlIE15U1FMIE1hbnVhbCBmb3IgbW9yZSBpbmZvcm1hdGlvbi4ARkxVU0ggUkVMQVkgTE9HUyBjYW5ub3QgYmUgcGVyZm9ybWVkIG9uIGNoYW5uZWwgJyUtLjE5MnMnLgBSZXBsaWNhIGNoYW5uZWwgJyVzJyBkb2VzIG5vdCBleGlzdC4AQ2FuJ3QgZmluZCBzeW1ib2wgJyUtLjEyOHMnIGluIGxpYnJhcnkuAENhbid0IG9wZW4gc2hhcmVkIGxpYnJhcnkgJyUtLjE5MnMnIChlcnJubzogJWQgJS0uMTI4cykuAFRocmVhZCBwcmlvcml0eSBhdHRyaWJ1dGUgc2V0dGluZyBpbiBSZXNvdXJjZSBHcm91cCBTUUwgc2hhbGwgYmUgaWdub3JlZCBkdWUgdG8gdW5zdXBwb3J0ZWQgcGxhdGZvcm0gb3IgaW5zdWZmaWNpZW50IHByaXZpbGVnZS4AT3B0aW9uIGJpbmxvZ19jYWNoZV9zaXplICglbHUpIGlzIGdyZWF0ZXIgdGhhbiBtYXhfYmlubG9nX2NhY2hlX3NpemUgKCVsdSk7IHNldHRpbmcgYmlubG9nX2NhY2hlX3NpemUgZXF1YWwgdG8gbWF4X2JpbmxvZ19jYWNoZV9zaXplLgBPcHRpb24gYmlubG9nX3N0bXRfY2FjaGVfc2l6ZSAoJWx1KSBpcyBncmVhdGVyIHRoYW4gbWF4X2JpbmxvZ19zdG10X2NhY2hlX3NpemUgKCVsdSk7IHNldHRpbmcgYmlubG9nX3N0bXRfY2FjaGVfc2l6ZSBlcXVhbCB0byBtYXhfYmlubG9nX3N0bXRfY2FjaGVfc2l6ZS4AQ2FuJ3QgZ2VuZXJhdGUgYSB1bmlxdWUgbG9nLWZpbGVuYW1lICUtLjIwMHMuKDEtOTk5KS4ARXJyb3IgcmVhZGluZyBmaWxlICclLS4yMDBzJyAoZXJybm86ICVkIC0gJXMpAEVycm9yIHdyaXRpbmcgZmlsZSAnJS0uMjAwcycgKGVycm5vOiAlZCAtICVzKQAlcyBTdGF0ZW1lbnQ6ICVzACVzOiBGb3JjaW5nIGNsb3NlIG9mIHRocmVhZCAlbGQgIHVzZXI6ICclLS40OHMnLgAlczogU2h1dGRvd24gY29tcGxldGUgKG15c3FsZCAlcykgICVzLgBDYW5ub3QgaGF2ZSBzYW1lIGJhc2UgbmFtZSAnJXMnIGZvciBib3RoIGJpbmFyeSBhbmQgcmVsYXkgbG9ncy4gUGxlYXNlIGNoZWNrICVzIChkZWZhdWx0ICclcycgaWYgLS1sb2ctYmluIG9wdGlvbiBpcyBub3QgdXNlZCwgZGVmYXVsdCAnJXMnIGlmIC0tbG9nLWJpbiBvcHRpb24gaXMgdXNlZCB3aXRob3V0IGFyZ3VtZW50KSBhbmQgJXMgKGRlZmF1bHQgJyVzJykgb3B0aW9ucyB0byBlbnN1cmUgdGhleSBkbyBub3QgY29uZmxpY3QuAEdUSURfTU9ERSA9IE9OIHJlcXVpcmVzIEVORk9SQ0VfR1RJRF9DT05TSVNURU5DWSA9IE9OLgBZb3UgaGF2ZSBub3QgcHJvdmlkZWQgYSBtYW5kYXRvcnkgc2VydmVyLWlkLiBTZXJ2ZXJzIGluIGEgcmVwbGljYXRpb24gdG9wb2xvZ3kgbXVzdCBoYXZlIHVuaXF1ZSBzZXJ2ZXItaWRzLiBQbGVhc2UgcmVmZXIgdG8gdGhlIHByb3BlciBzZXJ2ZXIgc3RhcnQtdXAgcGFyYW1ldGVycyBkb2N1bWVudGF0aW9uLgBBYm9ydGVkIGNvbm5lY3Rpb24gJXUgdG8gZGI6ICclLS4xOTJzJyB1c2VyOiAnJS0uNDhzJyBob3N0OiAnJS0uMjU1cycgKCUtLjY0cykuACdOT19aRVJPX0RBVEUnLCAnTk9fWkVST19JTl9EQVRFJyBhbmQgJ0VSUk9SX0ZPUl9ESVZJU0lPTl9CWV9aRVJPJyBzcWwgbW9kZXMgc2hvdWxkIGJlIHVzZWQgd2l0aCBzdHJpY3QgbW9kZS4gVGhleSB3aWxsIGJlIG1lcmdlZCB3aXRoIHN0cmljdCBtb2RlIGluIGEgZnV0dXJlIHJlbGVhc2UuAEBAR0xPQkFMLkdUSURfUFVSR0VEIHdhcyBjaGFuZ2VkIGZyb20gJyVzJyB0byAnJXMnLgBAQEdMT0JBTC5HVElEX0VYRUNVVEVEIHdhcyBjaGFuZ2VkIGZyb20gJyVzJyB0byAnJXMnLgAnJXMnIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLiBQbGVhc2UgdXNlICVzIGluc3RlYWQuAFRyaWdnZXJzIGZvciB0YWJsZSBgJS0uNjRzYC5gJS0uNjRzYCBoYXZlIG5vIGNyZWF0aW9uIGNvbnRleHQAJyUtLjE5MnMnIGhhcyBhbiBvbGQgZm9ybWF0LCB5b3Ugc2hvdWxkIHJlLWNyZWF0ZSB0aGUgJyVzJyBvYmplY3QocykAVmlldyBgJS0uNjRzYC5gJS0uNjRzYCBoYXMgbm8gY3JlYXRpb24gY29udGV4dABMb25nIGRhdGFiYXNlIG5hbWUgYW5kIGlkZW50aWZpZXIgZm9yIG9iamVjdCByZXN1bHRlZCBpbiBhIHBhdGggbGVuZ3RoIHRvbyBsb25nIGZvciB0YWJsZSAnJXMnLiBQbGVhc2UgY2hlY2sgdGhlIHBhdGggbGltaXQgZm9yIHlvdXIgT1MuAFRhYmxlIHVwZ3JhZGUgcmVxdWlyZWQuIFBsZWFzZSBkbyAiUkVQQUlSIFRBQkxFIGAlLS42NHNgIiBvciBkdW1wL3JlbG9hZCB0byBmaXggaXQhAEdvdCBlcnJvciAlZCAtICclLS4xOTJzJyBmcm9tIHN0b3JhZ2UgZW5naW5lLgBBY2Nlc3MgZGVuaWVkIGZvciB1c2VyICclLS40OHMnQCclLS42NHMnAEFjY2VzcyBkZW5pZWQgZm9yIHVzZXIgJyUtLjQ4cydAJyUtLjY0cycgKHVzaW5nIHBhc3N3b3JkOiAlcykAQWNjZXNzIGRlbmllZCBmb3IgdXNlciAnJS0uNDhzJ0AnJS0uNjRzJy4gQWNjb3VudCBpcyBsb2NrZWQuAFlvdXIgcGFzc3dvcmQgaGFzIGV4cGlyZWQuIFRvIGxvZyBpbiB5b3UgbXVzdCBjaGFuZ2UgaXQgdXNpbmcgYSBjbGllbnQgdGhhdCBzdXBwb3J0cyBleHBpcmVkIHBhc3N3b3Jkcy4AU3RvcmFnZSBlbmdpbmUgJyVzJyBkb2VzIG5vdCBzdXBwb3J0IHN5c3RlbSB0YWJsZXMuIFslcy4lc10uAFNvcnQgYWJvcnRlZAAlczogcmVhZHkgZm9yIGNvbm5lY3Rpb25zLiBWZXJzaW9uOiAnJXMnICBzb2NrZXQ6ICclcycgIHBvcnQ6ICVkICAlcy4AVW5rbm93biBsb2NhbGU6ICclLS42NHMnLgBVbmtub3duIGNvbGxhdGlvbjogJyUtLjY0cycuAE91dCBvZiBtZW1vcnk7IGNoZWNrIGlmIG15c3FsZCBvciBzb21lIG90aGVyIHByb2Nlc3MgdXNlcyBhbGwgYXZhaWxhYmxlIG1lbW9yeTsgaWYgbm90LCB5b3UgbWF5IGhhdmUgdG8gdXNlICd1bGltaXQnIHRvIGFsbG93IG15c3FsZCB0byB1c2UgbW9yZSBtZW1vcnkgb3IgeW91IGNhbiBhZGQgbW9yZSBzd2FwIHNwYWNlAE91dCBvZiBtZW1vcnk7IHJlc3RhcnQgc2VydmVyIGFuZCB0cnkgYWdhaW4gKG5lZWRlZCAlZCBieXRlcykAQ09MTEFUSU9OICclcycgaXMgbm90IHZhbGlkIGZvciBDSEFSQUNURVIgU0VUICclcycARmFpbGVkIHRvIHNldCAlcyBhdCBvciBhcm91bmQgIiVzIiAtLSBzZXJ2aWNlIGlzIHZhbGlkLCBidXQgY2FuIG5vdCBiZSBpbml0aWFsaXplZDsgcGxlYXNlIGNoZWNrIGl0cyBjb25maWd1cmF0aW9uIGFuZCBtYWtlIHN1cmUgaXQgY2FuIHJlYWQgaXRzIGlucHV0KHMpIGFuZCB3cml0ZSB0byBpdHMgb3V0cHV0KHMpLgBHZW5lcmF0aW5nIGEgbmV3IFVVSUQ6ICVzLgBGYWlsZWQgdG8gZ2V0IGFic29sdXRlIHBhdGggb2YgcHJvZ3JhbSBleGVjdXRhYmxlICVzAEZhaWxlZCB0byBib290c3RyYXAgcGVyZm9ybWFuY2Ugc2NoZW1hIGNvbXBvbmVudHMgaW5mcmFzdHJ1Y3R1cmUuAEZhaWxlZCB0byBkZWluaXQgcGVyZm9ybWFuY2Ugc2NoZW1hIGNvbXBvbmVudHMgaW5mcmFzdHJ1Y3R1cmUuAENvdWxkIG5vdCBvcGVuIGR1cGxpY2F0ZSBmZCBmb3IgJXM6ICVzLgBTeXN0ZW0gdmlld3MgaW5pdGlhbGl6YXRpb24gZmFpbGVkLgBSZXNvdXJjZSBncm91cCBwb3N0IGluaXRpYWxpemF0aW9uIGZhaWxlZC4AUmVzb3VyY2UgR3JvdXAgc3Vic3lzdGVtIGluaXRpYWxpemF0aW9uIGZhaWxlZC4ARmFpbGVkIHRvIHN0YXJ0IG15c3FsZCBkYWVtb24uIENoZWNrIG15c3FsZCBlcnJvciBsb2cuAENhbm5vdCBjaGFuZ2UgdG8gcm9vdCBkaXJlY3Rvcnk6ICVzLgBGYWlsZWQgdG8gYm9vdHN0cmFwIHBlcnNpc3RlbnQgcHJpdmlsZWdlcy4AQmFzZWRpciBzZXQgdG8gJXMuAENvdWxkIG5vdCBhZGQgd2lsZCBkbyB0YWJsZSBydWxlICclcychAENvdWxkIG5vdCBhZGQgd2lsZCBpZ25vcmUgdGFibGUgcnVsZSAnJXMnIQBUaGUgcHJpdmlsZWdlIHN5c3RlbSBmYWlsZWQgdG8gaW5pdGlhbGl6ZSBjb3JyZWN0bHkuIEZvciBjb21wbGV0ZSBpbnN0cnVjdGlvbnMgb24gaG93IHRvIHVwZ3JhZGUgTXlTUUwgdG8gYSBuZXcgdmVyc2lvbiBwbGVhc2Ugc2VlIHRoZSAnVXBncmFkaW5nIE15U1FMJyBzZWN0aW9uIGZyb20gdGhlIE15U1FMIG1hbnVhbC4AQ2Fubm90IHNldCBzZXJ2aWNlcyAiJXMiIHJlcXVlc3RlZCBpbiAtLWxvZy1lcnJvci1zZXJ2aWNlcywgdXNpbmcgZGVmYXVsdHMuAFBlcmZvcm1hbmNlIHNjaGVtYSB0YWJsZXMgaW5pdGlhbGl6YXRpb24gZmFpbGVkLgBUaGUgdHJhbnNhY3Rpb25fd3JpdGVfc2V0X2V4dHJhY3Rpb24gbXVzdCBiZSBzZXQgdG8gJXMgd2hlbiBiaW5sb2dfdHJhbnNhY3Rpb25fZGVwZW5kZW5jeV90cmFja2luZyBpcyAlcy4ASW52YWxpZCByZXBsaWNhdGlvbiB0aW1lc3RhbXBzOiBvcmlnaW5hbCBjb21taXQgdGltZXN0YW1wIGlzIG1vcmUgcmVjZW50IHRoYW4gdGhlIGltbWVkaWF0ZSBjb21taXQgdGltZXN0YW1wLiBUaGlzIG1heSBiZSBhbiBpc3N1ZSBpZiBkZWxheWVkIHJlcGxpY2F0aW9uIGlzIGFjdGl2ZS4gTWFrZSBzdXJlIHRoYXQgc2VydmVycyBoYXZlIHRoZWlyIGNsb2NrcyBzZXQgdG8gdGhlIGNvcnJlY3QgdGltZS4gTm8gZnVydGhlciBtZXNzYWdlIHdpbGwgYmUgZW1pdHRlZCB1bnRpbCBhZnRlciB0aW1lc3RhbXBzIGJlY29tZSB2YWxpZCBhZ2Fpbi4AVGhlIHJlcGxpY2F0aW9uIHRpbWVzdGFtcHMgaGF2ZSByZXR1cm5lZCB0byBub3JtYWwgdmFsdWVzLgAlcy4ARmFpbGVkIHRvIHdyaXRlIGFuIGluY2lkZW50IGV2ZW50IGludG8gc3RtdF9jYWNoZS4AUmVsYXlsb2cgZmlsZSAlcyBzaXplIHdhcyAlbGx1LCBidXQgd2FzIHRydW5jYXRlZCBhdCAlbGx1LgBVbmFibGUgdG8gcHVyZ2UgcmVsYXkgbG9nIGZpbGVzLiAlczolcy4AUmVwbGljYTogZmFpbGVkIGluIGNyZWF0aW5nIGZpbHRlciBmb3IgY2hhbm5lbCAnJXMnLgBSZXBsaWNhOiBmYWlsZWQgaW4gY29weWluZyB0aGUgZ2xvYmFsIGZpbHRlcnMgdG8gaXRzIG93biBwZXItY2hhbm5lbCBmaWx0ZXJzIG9uIGNvbmZpZ3VyYXRpb24gZm9yIGNoYW5uZWwgJyVzJy4AVGhlcmUgYXJlIHBlci1jaGFubmVsIHJlcGxpY2F0aW9uIGZpbHRlcihzKSBjb25maWd1cmVkIGZvciBjaGFubmVsICclLjE5MnMnIHdoaWNoIGRvZXMgbm90IGV4aXN0LiBUaGUgZmlsdGVyKHMpIGhhdmUgYmVlbiBkaXNjYXJkZWQuAFRoZSBzeXN0ZW0gdGFibGUgbXlzcWwuZ2xvYmFsX2dyYW50cyBpcyBtaXNzaW5nLiBQbGVhc2UgcGVyZm9ybSB0aGUgTXlTUUwgdXBncmFkZSBwcm9jZWR1cmUuAEFDTCB0YWJsZSBteXNxbC4lLipzIG1pc3NpbmcuIFNvbWUgb3BlcmF0aW9ucyBtYXkgZmFpbC4AQ2FuJ3Qgc2V0IG1hbmRhdG9yeV9yb2xlICVzQCVzOiBBbm9ueW1vdXMgYXV0aG9yaXphdGlvbiBJRHMgYXJlIG5vdCBhbGxvd2VkIGFzIHJvbGVzLgBDYW4ndCBzZXQgbWFuZGF0b3J5X3JvbGU6IFRoZXJlJ3Mgbm8gc3VjaCBhdXRob3JpemF0aW9uIElEICVzQCVzLgBUYWJsZSAnJS0xOTJzJyBmYWlsZWQgdG8gbW92ZS9pbnNlcnQgYSByb3cgZnJvbSBwYXJ0ICVkIGludG8gcGFydCAlZDogJXMuAFNraXBwZWQgdXBkYXRpbmcgcmVzb3VyY2UgZ3JvdXAgbWV0YWRhdGEgaW4gSW5ub0RCIHJlYWQgb25seSBtb2RlLgBGYWlsZWQgdG8gcGVyc2lzdCByZXNvdXJjZSBncm91cCAlcyB0byBEYXRhIERpY3Rpb25hcnkuAEZhaWxlZCB0byBkZXNlcmlhbGl6ZSByZXNvdXJjZSBncm91cCAlcy4AVXBkYXRlIG9mIHJlc291cmNlIGdyb3VwICVzIGZhaWxlZC4AVmFsaWRhdGlvbiBvZiByZXNvdXJjZSBncm91cCAlcyBmYWlsZWQuIFJlc291cmNlIGdyb3VwIGlzIGRpc2FibGVkLgBVbmFibGUgdG8gYWxsb2NhdGUgbWVtb3J5IGZvciBSZXNvdXJjZSBHcm91cCAlcy4ARmFpbGVkIHRvIGFsbG9jYXRlIG1lbW9yeSBmb3IgcmVzb3VyY2UgZ3JvdXAgaGFzaC4ARmFpbGVkIHRvIGFkZCByZXNvdXJjZSBncm91cCAlcyB0byByZXNvdXJjZSBncm91cCBtYXAuAFJlc291cmNlIGdyb3VwIGZlYXR1cmUgaXMgZGlzYWJsZWQuIChTZXJ2ZXIgaXMgY29tcGlsZWQgd2l0aCBESVNBQkxFX1BTSV9USFJFQUQpLgBVbmFibGUgdG8gYXBwbHkgcmVzb3VyY2UgZ3JvdXAgY29udHJvbGxlciAlcy4AVW5hYmxlIHRvIGFjcXVpcmUgbG9jayBvbiB0aGUgcmVzb3VyY2UgZ3JvdXAgJXMuIEhpbnQgdG8gc3dpdGNoIHJlc291cmNlIGdyb3VwIHNoYWxsIGJlIGlnbm9yZWQuAFBGUyAlcyBub3RpZmljYXRpb24gZnVuY3Rpb24gcmVnaXN0cmF0aW9uIGZhaWxlZC4AVW5hYmxlIHRvIGJpbmQgdGhyZWFkIGlkICVsbHUgdG8gY3B1IGlkICV1IChlcnJvciBjb2RlICVkIC0gJS0uMTkycykuAFVuYWJsZSB0byBiaW5kIHRocmVhZCBpZCAlbGx1IHRvIGNwdSBpZHMgKGVycm9yIGNvZGUgJWQgLSAlLS4xOTJzKS4AVW5iaW5kIHRocmVhZCBpZCAlbGx1IGZhaWxlZC4gKGVycm9yIGNvZGUgJWQgLSAlLS4xOTJzKS4AU2V0dGluZyB0aHJlYWQgcHJpb3JpdHkgJWQgdG8gdGhyZWFkIGlkICVsbHUgZmFpbGVkLiAoZXJyb3IgY29kZSAlZCAtICUtLjE5MnMpLgBVbmFibGUgdG8gZGV0ZXJtaW5lIENBUF9TWVNfTklDRSBjYXBhYmlsaXR5LgAlcyBmYWlsZWQ6IEZhaWxlZCB0byBnZXQgaGFuZGxlIGZvciB0aHJlYWQgJWxsdS4AUmV0cmlldmFsIG9mIHRocmVhZCBwcmlvcml0eSB1bnN1cHBvcnRlZCBvbiAlcy4AVW5hYmxlIHRvIGRldGVybWluZSB0aGUgbnVtYmVyIG9mIENQVXMuAFJlc291cmNlIGdyb3VwIGZlYXR1cmUgc2hhbGwgbm90IGJlIGF2YWlsYWJsZS4gSW5jb21wYXRpYmxlIHRocmVhZCBoYW5kbGluZyBvcHRpb24uAEludmFsaWQgdGhyZWFkIHByaW9yaXR5ICVkIGZvciBhICVzIHJlc291cmNlIGdyb3VwLiBBbGxvd2VkIHJhbmdlIGlzIFslZCwgJWRdLgBiaW5kX3RvX2NwdSBmYWlsZWQ6IHByb2Nlc3Nvcl9iaW5kIGZvciBjcHVpZCAldSBmYWlsZWQgKGVycm9yIGNvZGUgJWQgLSAlLS4xOTJzKS4AYmluZF90b19jcHUgZmFpbGVkOiBwcm9jZXNzb3JfYmluZCBmb3IgdGhyZWFkICUlbGx4IHdpdGggY3B1IGlkICV1IChlcnJvciBjb2RlICVkIC0gJS0uMTkycykuACVzIGZhaWxlZDogcHJvY2Vzc29yX2FmZmluaXR5IGZhaWxlZCAoZXJyb3IgY29kZSAlZCAtICUtLjE5MnMpLgBFcnJvciBpbiByZW5hbWluZyBteXNxbF9pbmRleF9zdGF0cy5pYmQuAEVycm9yIGluIG9wZW5pbmcgZGF0YSBkaXJlY3RvcnkgJXMuAEVycm9yIGluIGZldGNoaW5nIGxpc3Qgb2YgdGFibGVzcGFjZXMuAEVycm9yIGluIGFjcXVpcmluZyBUYWJsZXNwYWNlIGZvciBTREkgaW5zZXJ0aW9uICVzLgBFcnJvciBpbiByZXNvbHZpbmcgRW5naW5lIG5hbWUgZm9yIHRhYmxlc3BhY2UgJXMgd2l0aCBlbmdpbmUgJXMuAEVycm9yIGluIGNyZWF0aW5nIFNESSBmb3IgJXMgdGFibGVzcGFjZS4ARXJyb3IgaW4gc3RvcmluZyBTREkgZm9yICVzIHRhYmxlc3BhY2UuAEVycm9yIGluIGZldGNoaW5nIGxpc3Qgb2YgdGFibGVzLgBGaW5pc2hlZCBwb3B1bGF0aW5nIERhdGEgRGljdGlvbmFyeSB0YWJsZXMgd2l0aCBkYXRhLgBDb3VsZCBub3Qgb3BlbiB0aGUgdXBncmFkZSBpbmZvIGZpbGUgJyVzJyBpbiB0aGUgTXlTUUwgc2VydmVycyBkYXRhZGlyLCBlcnJubzogJWQuAENvdWxkIG5vdCBjbG9zZSB0aGUgdXBncmFkZSBpbmZvIGZpbGUgJyVzJyBpbiB0aGUgTXlTUUwgc2VydmVycyBkYXRhZGlyLCBlcnJubzogJWQuAEdvdCBlcnJvciAlZCBmcm9tIFNFIHdoaWxlIG1pZ3JhdGluZyB0YWJsZXNwYWNlcy4ARXJyb3IgaW4gY3JlYXRpbmcgVEFCTEUgc3RhdGlzdGljcyBlbnRyeS4gRml4IHN0YXRpc3RpY3MgZGF0YSBieSB1c2luZyBBTkFMWVpFIGNvbW1hbmQuAEZpbmlzaGVkIG1pZ3JhdGluZyBUQUJMRSBzdGF0aXN0aWNzIGRhdGEuAEVycm9yIGluIGNyZWF0aW5nIEluZGV4IHN0YXRpc3RpY3MgZW50cnkuIEZpeCBzdGF0aXN0aWNzIGRhdGEgYnkgdXNpbmcgQU5BTFlaRSBjb21tYW5kLgBGaW5pc2hlZCBtaWdyYXRpbmcgSU5ERVggc3RhdGlzdGljcyBkYXRhLgBGYWlsZWQgdG8gZmluZCB2YWxpZCBkYXRhIGRpcmVjdG9yeS4AU3RhcnRpbmcgdXBncmFkZSBvZiBkYXRhIGRpcmVjdG9yeS4ARmFpbGVkIHRvIGluaXRpYWxpemUgREQgU3RvcmFnZSBFbmdpbmUuAEZvdW5kIHBhcnRpYWxseSB1cGdyYWRlZCBERC4gQWJvcnRpbmcgdXBncmFkZSBhbmQgZGVsZXRpbmcgYWxsIEREIHRhYmxlcy4gU3RhcnQgdGhlIHVwZ3JhZGUgcHJvY2VzcyBhZ2Fpbi4ARm91bmQgcGFydGlhbGx5IHVwZ3JhZGVkIERELiBVcGdyYWRlIHdpbGwgY29udGludWUgYW5kIHN0YXJ0IHRoZSBzZXJ2ZXIuAEVycm9yIGluIHVwZ3JhZGluZyBlbmdpbmUgbG9ncy4ARXJyb3IgaW4gdXBkYXRpbmcgU0RJIGluZm9ybWF0aW9uLgBTa2lwIHVwZGF0aW5nICVzIG1ldGFkYXRhIGluIElubm9EQiByZWFkLW9ubHkgbW9kZS4AQ3JlYXRlZCBzeXN0ZW0gdmlld3Mgd2l0aCBJX1MgdmVyc2lvbiAlZC4AVW5rbm93biBlcnJvciBkZXRlY3RlZCAlZCBpbiBoYW5kbGVyLgBFcnJvciBpbiBMb2dfZXZlbnQ6OnJlYWRfbG9nX2V2ZW50KCk6ICclcycsIGRhdGFfbGVuOiAlbHUsIGV2ZW50X3R5cGU6ICVkLgBUaGUgcm93IGRhdGEgaXMgZ3JlYXRlciB0aGFuIDRHQiwgd2hpY2ggaXMgdG9vIGJpZyB0byB3cml0ZSB0byB0aGUgYmluYXJ5IGxvZy4AVW5hYmxlIHRvIGNvbnN0cnVjdCBEUk9QIEVWRU5UIFNRTCBxdWVyeSBzdHJpbmcuAFVuYWJsZSB0byBiaW5sb2cgZHJvcCBldmVudCAlcy4lcy4ARmFpbGVkIHRvIHN0YXJ0IHJlcGxpY2EgdGhyZWFkcyBmb3IgY2hhbm5lbCAnJXMnLgAlcyVzLgBGYWlsZWQgcmVnaXN0ZXJpbmcgb24gc291cmNlLCByZWNvbm5lY3RpbmcgdG8gdHJ5IGFnYWluLCBsb2cgJyVzJyBhdCBwb3NpdGlvbiAlcy4gJXMuAFJlcGxpY2EgSS9PIHRocmVhZCBraWxsZWQgZHVyaW5nIG9yIGFmdGVyIHJlY29ubmVjdC4AU29tZSBvZiB0aGUgY2hhbm5lbHMgYXJlIG5vdCBjcmVhdGVkL2luaXRpYWxpemVkIHByb3Blcmx5LiBDaGVjayBmb3IgYWRkaXRpb25hbCBtZXNzYWdlcyBhYm92ZS4gWW91IHdpbGwgbm90IGJlIGFibGUgdG8gc3RhcnQgcmVwbGljYXRpb24gb24gdGhvc2UgY2hhbm5lbHMgdW50aWwgdGhlIGlzc3VlIGlzIHJlc29sdmVkIGFuZCB0aGUgc2VydmVyIHJlc3RhcnRlZC4ARmFpbGVkIHRvIGFkZCBhIHJlcGxpY2F0aW9uIGZpbHRlciBpbnRvIGZpbHRlciBtYXAgZm9yIGNoYW5uZWwgJyUuMTkycycuAFRoZXJlIGFyZSBwZXItY2hhbm5lbCByZXBsaWNhdGlvbiBmaWx0ZXIocykgY29uZmlndXJlZCBmb3IgZ3JvdXAgcmVwbGljYXRpb24gY2hhbm5lbCAnJS4xOTJzJyB3aGljaCBpcyBkaXNhbGxvd2VkLiBUaGUgZmlsdGVyKHMpIGhhdmUgYmVlbiBkaXNjYXJkZWQuAFRoZXJlIGFyZSBwZXItY2hhbm5lbCByZXBsaWNhdGlvbiBmaWx0ZXIocykgY29uZmlndXJlZCBmb3IgY2hhbm5lbCAnJS4xOTJzJyB3aGljaCBkb2VzIG5vdCBleGlzdC4gVGhlIGZpbHRlcihzKSBoYXZlIGJlZW4gZGlzY2FyZGVkLgBBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBidWlsZGluZyBkb190YWJsZSBhbmQgaWdub3JlX3RhYmxlIHJ1bGVzIHRvIGhhc2hlcyBmb3IgcGVyLWNoYW5uZWwgZmlsdGVyLgBDbG9uZSBwbHVnaW4gY2Fubm90IGJlIGxvYWRlZC4AQ2xvbmUgSGFuZGxlciBleGlzdHMuAENvdWxkIG5vdCBjcmVhdGUgQ2xvbmUgSGFuZGxlci4AVGhlIENZQ0xFIHRpbWVyIGlzIG5vdCBhdmFpbGFibGUuIFdBSVQgZXZlbnRzIGluIHRoZSBwZXJmb3JtYW5jZV9zY2hlbWEgd2lsbCBub3QgYmUgdGltZWQuAFRoZSBOQU5PU0VDT05EIHRpbWVyIGlzIG5vdCBhdmFpbGFibGUuIElETEUvU1RBR0UvU1RBVEVNRU5UL1RSQU5TQUNUSU9OIGV2ZW50cyBpbiB0aGUgcGVyZm9ybWFuY2Vfc2NoZW1hIHdpbGwgbm90IGJlIHRpbWVkLgBUaGUgTUlDUk9TRUNPTkQgdGltZXIgaXMgbm90IGF2YWlsYWJsZS4gSURMRS9TVEFHRS9TVEFURU1FTlQvVFJBTlNBQ1RJT04gZXZlbnRzIGluIHRoZSBwZXJmb3JtYW5jZV9zY2hlbWEgd2lsbCBub3QgYmUgdGltZWQuAEZhaWxlZCB0byBhbGxvY2F0ZSBtZW1vcnkgZm9yICV6dSBjaHVua3MgZWFjaCBvZiBzaXplICV6dSBmb3IgYnVmZmVyICclcycgZHVlIHRvIG92ZXJmbG93LgBGYWlsZWQgdG8gYWxsb2NhdGUgJXp1IGJ5dGVzIGZvciBidWZmZXIgJyVzJyBkdWUgdG8gb3V0LW9mLW1lbW9yeS4ASW5ub0RCIGNvdWxkIG5vdCBmaW5kIGluZGV4ICVzIGtleSBubyAldSBmb3IgdGFibGUgJXMgdGhyb3VnaCBpdHMgaW5kZXggdHJhbnNsYXRpb24gdGFibGUuAENhbm5vdCBmaW5kIGluZGV4ICVzIGluIElubm9EQiBpbmRleCB0cmFuc2xhdGlvbiB0YWJsZS4ASW5ub0RCIGNvdWxkIG5vdCBmaW5kIGtleSBubyAldSB3aXRoIG5hbWUgJXMgZnJvbSBkaWN0IGNhY2hlIGZvciB0YWJsZSAlcy4ASW5ub0RCOiBjaGFuZ2VfYWN0aXZlX2luZGV4KCV1KSBmYWlsZWQuAFN0b3JlZCByZWYgbGVuIGlzICVsdSwgYnV0IHRhYmxlIHJlZiBsZW4gaXMgJWx1LgBNeVNRTCBpcyB0cnlpbmcgdG8gY3JlYXRlIGEgY29sdW1uIHByZWZpeCBpbmRleCBmaWVsZCwgb24gYW4gaW5hcHByb3ByaWF0ZSBkYXRhIHR5cGUuIFRhYmxlIG5hbWUgJXMsIGNvbHVtbiBuYW1lICVzLgBDYW5ub3QgY3JlYXRlIHRhYmxlICVzLgBGb3VuZCBpbmRleCAlcyBpbiBJbm5vREIgaW5kZXggbGlzdCBidXQgbm90IGl0cyBNeVNRTCBpbmRleCBudW1iZXIuIEl0IGNvdWxkIGJlIGFuIElubm9EQiBpbnRlcm5hbCBpbmRleC4ASW5ub0RCOiBUYWJsZSAlcyBjb250YWlucyAlbHUgaW5kZXhlcyBpbnNpZGUgSW5ub0RCLCB3aGljaCBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgbnVtYmVyIG9mIGluZGV4ZXMgJXUgZGVmaW5lZCBpbiBNeVNRTC4AVGFibGUgJXMgY29udGFpbnMgZmV3ZXIgaW5kZXhlcyBpbnNpZGUgSW5ub0RCIHRoYW4gYXJlIGRlZmluZWQgaW4gdGhlIE15U1FMLiBIYXZlIHlvdSBtaXhlZCB1cCB3aXRoIGRhdGEgZGljdGlvbmFyeSBmcm9tIGRpZmZlcmVudCBpbnN0YWxsYXRpb24/AEluZGV4ICVzIG9mICVzIGhhcyAlbHUgY29sdW1ucyB1bmlxdWUgaW5zaWRlIElubm9EQiwgYnV0IE15U1FMIGlzIGFza2luZyBzdGF0aXN0aWNzIGZvciAlbHUgY29sdW1ucy4gSGF2ZSB5b3UgbWl4ZWQgZGF0YSBkaWN0aW9uYXJ5IGZyb20gZGlmZmVyZW50IGluc3RhbGxhdGlvbj8ATW9uaXRvciBjb3VudGVyICclcycgY2Fubm90IGJlIHR1cm5lZCBvbi9vZmYgaW5kaXZpZHVhbGx5LiBQbGVhc2UgdXNlIGl0cyBtb2R1bGUgbmFtZSB0byB0dXJuIG9uL29mZiB0aGUgY291bnRlcnMgaW4gdGhlIG1vZHVsZSBhcyBhIGdyb3VwLgBEZWZhdWx0IHZhbHVlIGlzIG5vdCBkZWZpbmVkIGZvciB0aGlzIHNldCBvcHRpb24uIFBsZWFzZSBzcGVjaWZ5IGNvcnJlY3QgY291bnRlciBvciBtb2R1bGUgbmFtZS4ASW5ub0RCOiBNb25pdG9yICVzIGlzIGFscmVhZHkgZW5hYmxlZC4ASW52YWxpZCBtb25pdG9yIGNvdW50ZXIgOiAlcy4ATG9hZExpYnJhcnkoIiVzIikgZmFpbGVkOiBHZXRMYXN0RXJyb3IgcmV0dXJucyAlbHUuACVzLgAlcy4AJXMuACVzLgAlcy4AJXMuAFVuYWJsZSB0byB3YWl0IGZvciBwcm9jZXNzICVsbGQuAFVuYWJsZSB0byBkZXRlcm1pbmUgaWYgZGFlbW9uIGlzIHJ1bm5pbmc6ICVzIChyYz0lZCkuACVzAFtGQVRBTF0gSW5ub0RCOiAlcwBUaGUgc3ludGF4ICclcycgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuIFBsZWFzZSB1c2UgJXMgaW5zdGVhZC4AVGhlIHN5bnRheCAnJXMnIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgAnJXMnIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgAlcwBCaW5hcnkgbG9nZ2luZyBub3QgcG9zc2libGUuIE1lc3NhZ2U6ICVzLgBGYWlsZWQgdG8gc2V0IHBlcnNpc3RlZCBvcHRpb25zLgBDYW5ub3QgYWNxdWlyZSBzcGVjaWZpZWQgc2VydmljZSBpbXBsZW1lbnRhdGlvbjogJyUuMTkycycuAEludmFsaWQgVkNQVSByYW5nZSAldS0ldS4ASW52YWxpZCBjcHUgaWQgJXUuAEdvdCBlcnJvciAlZCBkdXJpbmcgRkxVU0hfTE9HUy4AUHJvYmxlbSB3aGlsZSBkcm9wcGluZyBkYXRhYmFzZS4gQ2FuJ3QgcmVtb3ZlIGRhdGFiYXNlIGRpcmVjdG9yeSAoJXMpLiBQbGVhc2UgcmVtb3ZlIGl0IG1hbnVhbGx5LgBUaGUgb3B0aW9uIGV4cGlyZV9sb2dzX2RheXMgY2Fubm90IGJlIHVzZWQgdG9nZXRoZXIgd2l0aCBvcHRpb24gYmlubG9nX2V4cGlyZV9sb2dzX3NlY29uZHMuIFRoZXJlZm9yZSwgdmFsdWUgb2YgZXhwaXJlX2xvZ3NfZGF5cyBpcyBpZ25vcmVkLgBtYWxmb3JtZWQgb3IgdmVyeSBvbGQgcmVsYXkgbG9nIHdoaWNoIGRvZXMgbm90IGhhdmUgRm9ybWF0RGVzY3JpcHRvci4AVXBncmFkZSBvZiB2aWV3ICclcy4lcycgZmFpbGVkLiBSZS1jcmVhdGUgdGhlIHZpZXcgd2l0aCB0aGUgZXhwbGljaXQgY29sdW1uIG5hbWUgbGVzc2VyIHRoYW4gNjQgY2hhcmFjdGVycy4AVGFibGUgdXBncmFkZSByZXF1aXJlZCBmb3IgYCUtLjY0c2AuYCUtLjY0c2AuIFBsZWFzZSBkdW1wL3JlbG9hZCB0YWJsZSB0byBmaXggaXQhAEVycm9yIGluIHVwZGF0aW5nIHZlcnNpb24gbnVtYmVyIGluICVzIHRhYmxlc3BhY2UuAEtleXJpbmcgbWlncmF0aW9uIGZhaWxlZC4AS2V5cmluZyBtaWdyYXRpb24gc3VjY2Vzc2Z1bC4AUmVjZWl2ZWQgUkVTVEFSVCBmcm9tIHVzZXIgJXMuICBSZXN0YXJ0aW5nIG15c3FsZCAoVmVyc2lvbjogJXMpLgBEaWZmZXJlbnQgbG93ZXJfY2FzZV90YWJsZV9uYW1lcyBzZXR0aW5ncyBmb3Igc2VydmVyICgnJXUnKSBhbmQgZGF0YSBkaWN0aW9uYXJ5ICgnJXUnKS4ARGF0YSBkaWN0aW9uYXJ5IGluaXRpYWxpemluZyB2ZXJzaW9uICcldScuAERhdGEgZGljdGlvbmFyeSByZXN0YXJ0aW5nIHZlcnNpb24gJyV1Jy4ARGF0YSBkaWN0aW9uYXJ5IHVwZ3JhZGluZyBmcm9tIHZlcnNpb24gJyV1JyB0byAnJXUnLgBEYXRhIGRpY3Rpb25hcnkgdXBncmFkZSBwcm9oaWJpdGVkIGJ5IHRoZSBjb21tYW5kIGxpbmUgb3B0aW9uICctLW5vX2RkX3VwZ3JhZGUnLgBVcGdyYWRpbmcgdGhlIGRhdGEgZGljdGlvbmFyeSBmcm9tIGRpY3Rpb25hcnkgdmVyc2lvbiAnJXUnIGlzIG5vdCBzdXBwb3J0ZWQuAFVwZ3JhZGluZyB0aGUgZGF0YSBkaWN0aW9uYXJ5IGZhaWxlZCwgdGVtcG9yYXJ5IHNjaGVtYSBuYW1lICclLS4xOTJzJyBub3QgYXZhaWxhYmxlLgBEYXRhIGRpY3Rpb25hcnkgbWlub3IgZG93bmdyYWRlIGZyb20gdmVyc2lvbiAnJXUnIHRvICcldScuAE1pbm9yIGRvd25ncmFkZSBvZiB0aGUgRGF0YSBkaWN0aW9uYXJ5IGZyb20gZGljdGlvbmFyeSB2ZXJzaW9uICcldScgaXMgbm90IHN1cHBvcnRlZC4ATm8gZGF0YSBkaWN0aW9uYXJ5IHZlcnNpb24gbnVtYmVyIGZvdW5kLgBUaHJlYWQgcG9vbCBub3Qgc3VwcG9ydGVkLCByZXF1aXJlcyBhIG1pbmltdW0gb2YgJXMuAHRocmVhZF9wb29sX3NpemU9MCBtZWFucyB0aHJlYWQgcG9vbCBkaXNhYmxlZCwgQWxsb3dlZCByYW5nZSBvZiB0aHJlYWRfcG9vbF9zaXplIGlzICVkLSVkLgB0aHJlYWRfcG9vbF9zaXplPSVsdSBpcyB0b28gaGlnaCwgJWQgaXMgbWF4aW11bSwgdGhyZWFkIHBvb2wgaXMgZGlzYWJsZWQuIEFsbG93ZWQgcmFuZ2Ugb2YgdGhyZWFkX3Bvb2xfc2l6ZSBpcyAlZC0lZC4AdGhyZWFkX3Bvb2xfYWxnb3JpdGhtIGNhbiBiZSBzZXQgdG8gMCBhbmQgMSwgMCBpbmRpY2F0ZXMgdGhlIGRlZmF1bHQgbG93IGNvbmN1cnJlbmN5IGFsZ29yaXRobSwgMSBtZWFucyBhIGhpZ2ggY29uY3VycmVuY3kgYWxnb3JpdGhtLgB0aHJlYWRfcG9vbF9zdGFsbF9saW1pdCBjYW4gYmUgJWQgYXQgbWluaW11bSBhbmQgJWQgYXQgbWF4aW11bSwgc21hbGxlciB2YWx1ZXMgd291bGQgcmVuZGVyIHRoZSB0aHJlYWQgcG9vbCBmYWlybHkgdXNlbGVzcyBhbmQgaGlnaGVyIHZhbHVlcyBjb3VsZCBtYWtlIGl0IHBvc3NpYmxlIHRvIGhhdmUgdW5kZXRlY3RlZCBkZWFkbG9jayBpc3N1ZXMgaW4gdGhlIE15U1FMIFNlcnZlci4ASW52YWxpZCB2YWx1ZSBvZiB0aHJlYWRfcG9vbF9wcmlvX2tpY2t1cF90aW1lciBzcGVjaWZpZWQuIFZhbHVlIG9mIHRocmVhZF9wb29sX3ByaW9fa2lja3VwX3RpbWVyIHNob3VsZCBiZSBpbiByYW5nZSAwLTQyOTQ5NjcyOTQuAHRocmVhZF9wb29sX21heF91bnVzZWRfdGhyZWFkcyBjYW5ub3QgYmUgc2V0IGhpZ2hlciB0aGFuICVkLgBGYWlsZWQgdG8gaW5zdGFudGlhdGUgdGhlIGNvbm5lY3Rpb24gaGFuZGxlciBvYmplY3QuAEZhaWxlZCB0byBpbml0aWFsaXplIHRocmVhZCBwb29sIHBsdWdpbi4AVGhyZWFkIHBvb2wgcGx1Z2luIHN0YXJ0ZWQgc3VjY2Vzc2Z1bGx5IHdpdGggcGFyYW1ldGVyczogdGhyZWFkX3Bvb2xfc2l6ZSA9ICVsdSwgdGhyZWFkX3Bvb2xfYWxnb3JpdGhtID0gJXMsIHRocmVhZF9wb29sX3N0YWxsX2xpbWl0ID0gJXUsIHRocmVhZF9wb29sX3ByaW9fa2lja3VwX3RpbWVyID0gJXUsIHRocmVhZF9wb29sX21heF91bnVzZWRfdGhyZWFkcyA9ICV1LCB0aHJlYWRfcG9vbF9oaWdoX3ByaW9yaXR5X2Nvbm5lY3Rpb24gPSAlZC4AQ2FuJ3Qgc2V0dXAgY29ubmVjdGlvbiB0ZWFyZG93biB0aHJlYWQtc3BlY2lmaWMgZGF0YS4AQ3JlYXRpb24gb2YgY29ubmVjdCBoYW5kbGVyIHRocmVhZCBmYWlsZWQuAEZhaWxlZCB0byBjcmVhdGUgdGhkIGFuZCBhdXRoZW50aWNhdGUgY29ubmVjdGlvbi4ARmFpbGVkIHRvIHByb2Nlc3MgY29ubmVjdGlvbiBldmVudC4AQ2FuJ3QgY3JlYXRlIHBvb2wgdGhyZWFkIChlcnJvciAlZCwgZXJybm86ICVkKS4AJS4qcy4AdHBfZ3JvdXBfbG93X2xldmVsX2luaXQoKSBmYWlsZWQuAFJlYXJtIGZhaWxlZCBldmVuIGFmdGVyIDMwIHNlY29uZHMsIGNhbid0IGNvbnRpbnVlIHdpdGhvdXQgbm90aWZ5IHNvY2tldC4AJXM6ICVzIGJ1ZmZlciBpcyB0b28gc21hbGwATWVjYWIgdiVzIGlzIG5vdCBzdXBwb3J0ZWQsIHRoZSBsb3dlc3QgdmVyc2lvbiBzdXBwb3J0ZWQgaXMgdiVzLgBNZWNhYiB2JXMgaXMgbm90IHZlcmlmaWVkLCB0aGUgaGlnaGVzdCB2ZXJzaW9uIHN1cHBvcnRlZCBpcyB2JXMuAE1lY2FiOiBUcnlpbmcgY3JlYXRlTW9kZWwoJXMpLgBNZWNhYjogY3JlYXRlTW9kZWwoKSBmYWlsZWQ6ICVzLgBNZWNhYjogY3JlYXRlVGFnZ2VyKCkgZmFpbGVkOiAlcy4ATWVjYWI6IFVuc3VwcG9ydGVkIGRpY3Rpb25hcnkgY2hhcnNldCAlcy4ATWVjYWI6IExvYWRlZCBkaWN0aW9uYXJ5IGNoYXJzZXQgaXMgJXMuAE1lY2FiOiBwYXJzZSgpIGZhaWxlZDogJXMuAE1lY2FiOiBwYXJzZSgpIGZhaWxlZDogb3V0IG9mIG1lbW9yeS4ATWVjYWI6IGNyZWF0ZUxhdHRpY2UoKSBmYWlsZWQ6ICVzLgAtLS0+ICVzIGVudGVyLgA8LS0tICVzIGV4aXQgKCVkKS4APC0tLSAlcyBleGl0ICglcykuADwtLS0gJXMgZXhpdC4AU2VtaS1zeW5jIHJlcGxpY2F0aW9uIGluaXRpYWxpemVkIGZvciB0cmFuc2FjdGlvbnMuACVzOiB0cmFuc2FjdGlvbiBub2RlIGFsbG9jYXRpb24gZmFpbGVkIGZvcjogKCVzLCAlbHUpLgAlczogYmlubG9nIHdyaXRlIG91dC1vZi1vcmRlciwgdGFpbCAoJXMsICVsdSksIG5ldyBub2RlICglcywgJWx1KS4AJXM6IGluc2VydCAoJXMsICVsdSkgaW4gZW50cnkoJXUpLgAlczogcHJvYmUgKCVzLCAlbHUpIGluIGVudHJ5KCV1KS4AJXM6IGNsZWFyZWQgYWxsIG5vZGVzLgAlczogY2xlYXJlZCAlZCBub2RlcyBiYWNrIHVudGlsIHBvcyAoJXMsICVsdSkuAFJlYWQgc2VtaS1zeW5jIHJlcGx5IG1hZ2ljIG51bWJlciBlcnJvci4AUmVhZCBzZW1pLXN5bmMgcmVwbHkgbGVuZ3RoIGVycm9yOiBwYWNrZXQgaXMgdG9vIHNtYWxsLgBSZWFkIHNlbWktc3luYyByZXBseSBiaW5sb2cgZmlsZSBsZW5ndGggdG9vIGxhcmdlLgAlczogR290IHJlcGx5KCVzLCAlbHUpIGZyb20gc2VydmVyICV1LgAlcyBjYWxsZWQgdHdpY2UuAFNlbWktc3luYyByZXBsaWNhdGlvbiBlbmFibGVkIG9uIHRoZSBzb3VyY2UuAENhbm5vdCBhbGxvY2F0ZSBtZW1vcnkgdG8gZW5hYmxlIHNlbWktc3luYyBvbiB0aGUgc291cmNlLgBTZW1pLXN5bmMgcmVwbGljYXRpb24gZGlzYWJsZWQgb24gdGhlIHNvdXJjZS4AU0VNSVNZTkM6IEZvcmNlZCBzaHV0ZG93bi4gU29tZSB1cGRhdGVzIG1pZ2h0IG5vdCBiZSByZXBsaWNhdGVkLgAlczogR290IHJlcGx5IGF0ICglcywgJWx1KS4AJXM6IHNpZ25hbCBhbGwgd2FpdGluZyB0aHJlYWRzLgAlczogd2FpdCBwb3MgKCVzLCAlbHUpLCByZXBsKCVkKS4AJXM6IEJpbmxvZyByZXBseSBpcyBhaGVhZCAoJXMsICVsdSkuACVzOiBtb3ZlIGJhY2sgd2FpdCBwb3NpdGlvbiAoJXMsICVsdSkuACVzOiBpbml0IHdhaXQgcG9zaXRpb24gKCVzLCAlbHUpLgAlczogd2FpdCAlbHUgbXMgZm9yIGJpbmxvZyBzZW50ICglcywgJWx1KS4AVGltZW91dCB3YWl0aW5nIGZvciByZXBseSBvZiBiaW5sb2cgKGZpbGU6ICVzLCBwb3M6ICVsdSksIHNlbWktc3luYyB1cCB0byBmaWxlICVzLCBwb3NpdGlvbiAlbHUuAEFzc2Vzc21lbnQgb2Ygd2FpdGluZyB0aW1lIGZvciBjb21taXRUcnggZmFpbGVkIGF0IHdhaXQgcG9zaXRpb24gKCVzLCAlbHUpLgBTZW1pLXN5bmMgcmVwbGljYXRpb24gc3dpdGNoZWQgT0ZGLgBTZW1pLXN5bmMgcmVwbGljYXRpb24gc3dpdGNoZWQgT04gYXQgKCVzLCAlbHUpLgBObyBlbm91Z2ggc3BhY2UgaW4gdGhlIHBhY2tldCBmb3Igc2VtaS1zeW5jIGV4dHJhIGhlYWRlciwgc2VtaS1zeW5jIHJlcGxpY2F0aW9uIGRpc2FibGVkLgAlczogc2VydmVyKCVkKSwgKCVzLCAlbHUpIHN5bmMoJWQpLCByZXBsKCVkKS4AU2VtaS1zeW5jIGZhaWxlZCB0byBpbnNlcnQgdHJhbnhfbm9kZSBmb3IgYmlubG9nIGZpbGU6ICVzLCBwb3NpdGlvbjogJWx1LgAlczogVHJhbnNhY3Rpb24gc2tpcHBlZCBhdCAoJXMsICVsdSkuAFNlbWktc3luYyBzb3VyY2UgZmFpbGVkIG9uIG5ldF9mbHVzaCgpIGJlZm9yZSB3YWl0aW5nIGZvciByZXBsaWNhIHJlcGx5LgBUaGUgcmVjZWl2ZWQgYWNrIGlzIHNtYWxsZXIgdGhhbiBtX2dyZWF0ZXN0X2Fjay4AQWRkIHRoZSBhY2sgaW50byBzbG90ICV1LgBVcGRhdGUgYW4gZXhzaXRpbmcgYWNrIGluIHNsb3QgJXUuAEZhaWxlZCB0byBzdGFydCBzZW1pLXN5bmMgQUNLIHJlY2VpdmVyIHRocmVhZCwgIGNvdWxkIG5vdCBjcmVhdGUgdGhyZWFkKGVycm5vOiVkKS4AU3RhcnRpbmcgYWNrIHJlY2VpdmVyIHRocmVhZC4ARmFpbGVkIHRvIHdhaXQgb24gc2VtaS1zeW5jIGR1bXAgc29ja2V0cywgZXJyb3I6IGVycm5vPSVkLgBTdG9wcGluZyBhY2sgcmVjZWl2ZXIgdGhyZWFkLgBGYWlsZWQgdG8gcmVnaXN0ZXIgcmVwbGljYSB0byBzZW1pLXN5bmMgQUNLIHJlY2VpdmVyIHRocmVhZC4AU3RhcnQgJXMgYmlubG9nX2R1bXAgdG8gcmVwbGljYSAoc2VydmVyX2lkOiAlZCksIHBvcyglcywgJWx1KS4AU3RvcCAlcyBiaW5sb2dfZHVtcCB0byByZXBsaWNhIChzZXJ2ZXJfaWQ6ICVkKS4AdW5yZWdpc3Rlcl90cmFuc19vYnNlcnZlciBmYWlsZWQuAHVucmVnaXN0ZXJfYmlubG9nX3N0b3JhZ2Vfb2JzZXJ2ZXIgZmFpbGVkLgB1bnJlZ2lzdGVyX2JpbmxvZ190cmFuc21pdF9vYnNlcnZlciBmYWlsZWQuAHVucmVnaXN0ZXJfcmVwbGljYXRvciBPSy4AU2VtaXN5bmMgcmVwbGljYSBzb2NrZXQgZmQgaXMgJXUuIHNlbGVjdCgpIGNhbm5vdCBoYW5kbGUgaWYgdGhlIHNvY2tldCBmZCBpcyBiaWdnZXIgdGhhbiAldSAoRkRfU0VUU0laRSkuACVzOiByZXBseSAtICVkLgBNaXNzaW5nIG1hZ2ljIG51bWJlciBmb3Igc2VtaS1zeW5jIHBhY2tldCwgcGFja2V0IGxlbjogJWx1LgBSZXBsaWNhIEkvTyB0aHJlYWQ6IFN0YXJ0ICVzIHJlcGxpY2F0aW9uIHRvIHNvdXJjZSAnJXNAJXM6JWQnIGluIGxvZyAnJXMnIGF0IHBvc2l0aW9uICVsdS4AJXM6IHJlcGx5ICglcywgJWx1KS4AU2VtaS1zeW5jIHJlcGxpY2EgbmV0X2ZsdXNoKCkgcmVwbHkgZmFpbGVkLgBTZW1pLXN5bmMgcmVwbGljYSBzZW5kIHJlcGx5IGZhaWxlZDogJXMgKCVkKS4ARXhlY3V0aW9uIGZhaWxlZCBvbiBzb3VyY2U6ICVzOyBlcnJvciAlZABTb3VyY2Ugc2VydmVyIGRvZXMgbm90IHN1cHBvcnQgc2VtaS1zeW5jLCBmYWxsYmFjayB0byBhc3luY2hyb25vdXMgcmVwbGljYXRpb24AU2V0ICdycGxfc2VtaV9zeW5jX3JlcGxpY2E9MScgb24gc291cmNlIGZhaWxlZABGYWlsZWQgdG8gc3RvcCBhY2sgcmVjZWl2ZXIgdGhyZWFkIG9uIG15X3RocmVhZF9qb2luLCBlcnJubyglZCkuAEZhaWxlZCB0byByZWFkIHRoZSBmaXJld2FsbCB0YWJsZXMARmFpbGVkIHRvIHJlZ2lzdGVyIGR5bmFtaWMgcHJpdmlsZWdlcwBTdGF0ZW1lbnQgd2FzIHRydW5jYXRlZCBhbmQgbm90IHJlY29yZGVkOiAlcwBTdGF0ZW1lbnQgd2l0aCBubyB0ZXh0IHdhcyBub3QgcmVjb3JkZWQAU1VTUElDSU9VUyBTVEFURU1FTlQgZnJvbSAnJXMnLiBSZWFzb246ICVzIFN0YXRlbWVudDogJXMAQUNDRVNTIERFTklFRCBmb3IgJyVzJy4gUmVhc29uOiAlcyBTdGF0ZW1lbnQ6ICVzAFNraXBwZWQgdW5rbm93biB1c2VyIG1vZGUgJyVzJwBSZWxvYWRpbmcgY2FjaGUgZnJvbSBkaXNrAEZJUkVXQUxMIFJFU0VUIGZvciAnJXMnAENvdW50ZXJzIGFyZSByZXNldCB0byB6ZXJvACVzAEF1ZGl0IExvZyBwbHVnaW4gc3VwcG9ydHMgZmlsdGVyaW5nIG1vZGUsIHdoaWNoIGhhcyBub3QgYmVlbiBpbnN0YWxsZWQgeWV0LiBBdWRpdCBMb2cgcGx1Z2luIHdpbGwgcnVuIGluIHRoZSBsZWdhY3kgbW9kZSwgd2hpY2ggd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IHJlbGVhc2UuAFByZXZpb3VzbHkgZXhjbHVkZSBsaXN0IGlzIHVzZWQsIG5vdyB3ZSBzdGFydCB1c2luZyBpbmNsdWRlIGxpc3QsIGV4Y2x1ZGUgbGlzdCBpcyBzZXQgdG8gTlVMTC4AQ2Fubm90IHNldCBhdWRpdF9sb2dfcG9saWN5IHNpbXVsdGFuZW91c2x5IHdpdGggZWl0aGVyIGF1ZGl0X2xvZ19jb25uZWN0aW9uX3BvbGljeSBvciAgYXVkaXRfbG9nX3N0YXRlbWVudF9wb2xpY3ksIHNldHRpbmcgYXVkaXRfbG9nX2Nvbm5lY3Rpb25fcG9saWN5IGFuZCBhdWRpdF9sb2dfc3RhdGVtZW50X3BvbGljeSBiYXNlZCBvbiBhdWRpdF9sb2dfcG9saWN5LgBCb3RoIGluY2x1ZGUgYW5kIGV4Y2x1ZGUgbGlzdHMgcHJvdmlkZWQsIGluY2x1ZGUgbGlzdCBpcyBwcmVmZXJyZWQsIGV4Y2x1ZGUgbGlzdCBpcyBzZXQgdG8gTlVMTC4AQ291bGQgbm90IGFjY2VzcyAnJXMnIGRpcmVjdG9yeS4AQ291bGQgbm90IHJlbmFtZSBmaWxlIGZyb20gJyVzJyB0byAnJXMnLgBGaWxlICclcycgc2hvdWxkIG5vdCBleGlzdC4gSXQgbWF5IGJlIGluY29tcGxldGUuIFRoZSBzZXJ2ZXIgY3Jhc2hlZC4AQ291bGQgbm90IHJlbmFtZSBmaWxlIGZyb20gJyVzJyB0byAnJXMnLiBSZW1vdmUgdGhlIGZpbGUgbWFudWFsbHkuAEluY29tcGxldGUgZmlsZSByZW5hbWVkIGZyb20gJyVzJyB0byAnJXMnLgBFcnJvciB3cml0aW5nIGZpbGUgJyUtLjIwMHMnIChlcnJubzogJWQgLSAlcykuAENvdWxkIG5vdCBpbml0aWFsaXplIGF1ZGl0IGxvZyBmaWxlIGVuY3J5cHRpb24uAENvdWxkIG5vdCBpbml0aWFsaXplIGF1ZGl0IGxvZyBmaWxlIGNvbXByZXNzaW9uLgBDb3VsZCBub3QgY3JlYXRlICclcycgZmlsZSBmb3IgYXVkaXQgbG9nZ2luZy4AQXVkaXQgbG9nIGZpbGUgKCVzKSBtdXN0IGJlIG1hbnVhbGx5IHJlbmFtZWQgYmVmb3JlIGF1ZGl0X2xvZ19mbHVzaCBpcyBzZXQgdG8gdHJ1ZS4AJXMARXJyb3IgcGFyc2luZyBKU09OIGV2ZW50LiBFdmVudCBub3QgYWNjZXNzaWJsZS4AQnVmZmVyIGlzIHRvbyBzbWFsbCB0byBob2xkIEpTT04gZXZlbnQuIE51bWJlciBvZiBldmVudHMgc2tpcHBlZDogJXp1LgBDb3VsZCBub3Qgb3BlbiBKU09OIGZpbGUgZm9yIHJlYWRpbmcuIFJlYWRpbmcgbmV4dCBmaWxlIGlmIGV4aXN0cy4ASlNPTiBmaWxlIHBhcnNpbmcgZXJyb3IuIFJlYWRpbmcgbmV4dCBmaWxlIGlmIGV4aXN0cwBJbnZhbGlkIGNvbHVtbiBjb3VudCBpbiB0aGUgJyVzLiVzJyB0YWJsZS4ASW52YWxpZCBjb2x1bW4gZGVmaW5pdGlvbiBvZiB0aGUgJyVzLiVzJyB0YWJsZS4AQ291bGQgbm90IHN0b3JlIGZpZWxkIG9mIHRoZSAlcyB0YWJsZS4AQ291bGQgbm90IHVwZGF0ZSAlcyB0YWJsZS4AQ291bGQgbm90IGluc2VydCBpbnRvICVzIHRhYmxlLgBDb3VsZCBub3QgZGVsZXRlIGZyb20gJXMgdGFibGUuAENvdWxkIG5vdCBpbml0aWFsaXplICVzIHRhYmxlIGZvciByZWFkaW5nLgBDb3VsZCBub3QgcmVhZCAlcyB0YWJsZS4AQ291bGQgbm90IGNsb3NlICVzIHRhYmxlIHJlYWRpbmcuAEJvdGggdXNlciBhbmQgaG9zdCBjb2x1bW5zIG9mICVzIHRhYmxlIGNhbm5vdCBiZSBlbXB0eS4ARmlsdGVybmFtZSBjb2x1bW4gb2YgJXMgdGFibGUgY2Fubm90IGJlIGVtcHR5LgBEaWN0aW9uYXJ5IGZpbGUgbm90IHNwZWNpZmllZABEaWN0aW9uYXJ5IGZpbGUgbm90IGxvYWRlZABEaWN0aW9uYXJ5IGZpbGUgc2l6ZSBleGNlZWRlZCBNQVhfRElDVElPTkFSWV9GSUxFX0xFTkdUSCwgbm90IGxvYWRlZABFeGNlcHRpb24gd2hpbGUgcmVhZGluZyB0aGUgZGljdGlvbmFyeSBmaWxlAENhbid0IHJldHJpZXZlIHRoZSAlcyBmcm9tIHRoZSBzZWN1cml0eSBjb250ZXh0AENhbid0IHJldHJpZXZlIHRoZSBzZWN1cml0eSBjb250ZXh0AEVmZmVjdGl2ZSB2YWx1ZSBvZiB2YWxpZGF0ZV9wYXNzd29yZF9sZW5ndGggaXMgY2hhbmdlZC4gTmV3IHZhbHVlIGlzICVkACVzAFJld3JpdHRlbiBxdWVyeSBmYWlsZWQgdG8gcGFyc2U6JXMAU3RhcnR1cCBmYWlsZWQgd2l0aCBlcnJvciAiJXMiAEV4aXRpbmcARXhpdCBkb25lAFVzaW5nIFNTTCBjb25maWd1cmF0aW9uIGZyb20gTXlTUUwgU2VydmVyAFVzaW5nIFNTTCBjb25maWd1cmF0aW9uIGZyb20gTXlzcWx4IFBsdWdpbgBOZWl0aGVyIE15U1FMIFNlcnZlciBub3IgTXlzcWx4IFBsdWdpbiBoYXMgdmFsaWQgU1NMIGNvbmZpZ3VyYXRpb24AVXNpbmcgJXMgZm9yIFRMUyBjb25uZWN0aW9ucwBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHNlZSB0aGUgVXNpbmcgU2VjdXJlIENvbm5lY3Rpb25zIHdpdGggWCBQbHVnaW4gc2VjdGlvbiBpbiB0aGUgTXlTUUwgZG9jdW1lbnRhdGlvbgAlcwBGYWlsZWQgdG8gcGFyc2Ugc3RvcmVkIGF1dGhlbnRpY2F0aW9uIHN0cmluZyBmb3IgJXMuIFBsZWFzZSBjaGVjayBpZiBteXNxbC51c2VyIHRhYmxlIG5vdCBjb3JydXB0ZWQARXJyb3IgaW4gZ2VuZXJhdGluZyBtdWx0aS1yb3VuZCBoYXNoIGZvciAlcy4gUGx1Z2luIGNhbiBub3QgcGVyZm9ybSBhdXRoZW50aWNhdGlvbiB3aXRob3V0IGl0LiBUaGlzIG1heSBiZSBhIHRyYW5zaWVudCBwcm9ibGVtAEF1dGhlbnRpY2F0aW9uIHJlcXVpcmVzIGVpdGhlciBSU0Ega2V5cyBvciBTU0wgZW5jcnlwdGlvbgBSU0Ega2V5IGNpcGhlciBsZW5ndGggb2YgJXUgaXMgdG9vIGxvbmcuIE1heCB2YWx1ZSBpcyAldQBGYWlsZWQgdG8gb3BlbiB0aGUgJXMgZmlsdGVyIHRhYmxlcwBGYWlsZWQgdG8gb3BlbiAnJXMuJXMnICVzIHRhYmxlACVzACVzACVzAFBhc3N3b3JkIHNhbHQgZm9yIHVzZXIgJyVzJyBpcyBjb3JydXB0AE91dCBvZiBtZW1vcnkgZm9yIGNvbXBvbmVudCBzeXN0ZW0gdmFyaWFibGUgJyVzJy4AdmFyaWFibGUgJXMgb2YgY29tcG9uZW50ICVzIHdhcyBmb3JjZWQgdG8gYmUgcmVhZC1vbmx5OiBzdHJpbmcgdmFyaWFibGUgd2l0aG91dCB1cGRhdGVfZnVuYyBhbmQgUExVR0lOX1ZBUl9NRU1BTExPQyBmbGFnLgBVbmtub3duIHZhcmlhYmxlIHR5cGUgY29kZSAweCV4IGluIGNvbXBvbmVudCAnJXMnLgBQYXJzaW5nIG9wdGlvbnMgZm9yIHZhcmlhYmxlICclcycgZmFpbGVkLgBTZXR0aW5nIHBlcnNpc3RlbnQgb3B0aW9ucyBmb3IgY29tcG9uZW50IHZhcmlhYmxlICclcycgZmFpbGVkLgBUaGUgbG9nLWZpbHRlciBjb21wb25lbnQgIiVzIiBnb3QgY29uZnVzZWQgYXQgIiVzIiAoc3RhdGU6ICVzKSAuLi4AV2FpdGluZyB1bnRpbCBJL08gdGhyZWFkIGZvciBjaGFubmVsICclcycgZmluaXNoIHdyaXRpbmcgdG8gZGlzayBiZWZvcmUgc3RvcHBpbmcuIEZyZWUgc29tZSBkaXNrIHNwYWNlIG9yIHVzZSAnS0lMTCcgdG8gYWJvcnQgSS9PIHRocmVhZCBvcGVyYXRpb24uIE5vdGljZSB0aGF0IGFib3J0aW5nIHRoZSBJL08gdGhyZWFkIHdoaWxlIHJvdGF0aW5nIHRoZSByZWxheSBsb2cgbWlnaHQgY29ycnVwdCB0aGUgcmVsYXkgbG9ncywgcmVxdWlyaW5nIGEgc2VydmVyIHJlc3RhcnQgdG8gZml4IGl0LgBDb3VsZCBub3QgdXNlICVzIGZvciBsb2dnaW5nIChlcnJvciAlZCAtICVzKS4gVHVybmluZyBsb2dnaW5nIG9mZiBmb3IgdGhlIHNlcnZlciBwcm9jZXNzLiBUbyB0dXJuIGl0IG9uIGFnYWluOiBmaXggdGhlIGNhdXNlLCB0aGVuJXMgcmVzdGFydCB0aGUgTXlTUUwgc2VydmVyLgBVbmFibGUgdG8gY29sbGVjdCBpbmZvcm1hdGlvbiBmb3IgY29sdW1uICclLS4xOTJzJzogJS0uMTkycy4AJ3V0ZjgnIGlzIGN1cnJlbnRseSBhbiBhbGlhcyBmb3IgdGhlIGNoYXJhY3RlciBzZXQgVVRGOE1CMywgd2hpY2ggd2lsbCBiZSByZXBsYWNlZCBieSBVVEY4TUI0IGluIGEgZnV0dXJlIHJlbGVhc2UuIFBsZWFzZSBjb25zaWRlciB1c2luZyBVVEY4TUI0IGluIG9yZGVyIHRvIGJlIHVuYW1iaWd1b3VzLgBOQVRJT05BTC9OQ0hBUi9OVkFSQ0hBUiBpbXBsaWVzIHRoZSBjaGFyYWN0ZXIgc2V0IFVURjhNQjMsIHdoaWNoIHdpbGwgYmUgcmVwbGFjZWQgYnkgVVRGOE1CNCBpbiBhIGZ1dHVyZSByZWxlYXNlLiBQbGVhc2UgY29uc2lkZXIgdXNpbmcgQ0hBUih4KSBDSEFSQUNURVIgU0VUIFVURjhNQjQgaW4gb3JkZXIgdG8gYmUgdW5hbWJpZ3VvdXMuAEEgY29tbWl0IGZvciBhbiBhdG9taWMgRERMIHN0YXRlbWVudCB3YXMgdW5zdWNjZXNzZnVsIG9uIHRoZSBzb3VyY2UgYW5kIHRoZSByZXBsaWNhLiBUaGUgcmVwbGljYSBzdXBwb3J0cyBhdG9taWMgRERMIHN0YXRlbWVudHMgYnV0IHRoZSBzb3VyY2UgZG9lcyBub3QsIHNvIHRoZSBhY3Rpb24gdGFrZW4gYnkgdGhlIHJlcGxpY2EgYW5kIHNvdXJjZSBtaWdodCBkaWZmZXIuIENoZWNrIHRoYXQgdGhlaXIgc3RhdGVzIGhhdmUgbm90IGRpdmVyZ2VkIGJlZm9yZSBwcm9jZWVkaW5nLgBDb25maWd1cmluZyBwZXJzaXN0ZWQgb3B0aW9ucyBmYWlsZWQ6ICIlcyIuAFRoZSBzdG9yYWdlIGVuZ2luZSAnJS0uMTkycycgZG9lcyBub3QgcHJvdmlkZSBkeW5hbWljIHRhYmxlIHN0YXRpc3RpY3MAVGhpcyBvcHRpb24gY2Fubm90IGJlIHNldCAlcy4AVGhlIHRhYmxlICclLS4xOTJzJyBtYXkgbm90IGJlIGNyZWF0ZWQgaW4gdGhlIHJlc2VydmVkIHRhYmxlc3BhY2UgJyUtLjE5MnMnLgBTU0wgZmlwcyBtb2RlIGVycm9yOiAlcwBpbml0X2Nvbm5lY3QgdmFyaWFibGUgaXMgaWdub3JlZCBmb3IgdXNlcjogJXMgaG9zdDogJXMgZHVlIHRvIGV4cGlyZWQgcGFzc3dvcmQuAHNxbF9tb2RlPTB4JTA4eCBpcyBub3Qgc3VwcG9ydGVkAE91dCBvZiBtZW1vcnkuAFdyb25nIGNvbHVtbiBjb3VudCBvciBuYW1lcyB3aGVuIGxvYWRpbmcgcnVsZXMuAFNvbWUgcnVsZXMgZmFpbGVkIHRvIGxvYWQuAEdvdCBlcnJvciBmcm9tIHN0b3JhZ2UgZW5naW5lIHdoaWxlIHJlZnJlc2hpbmcgcmV3cml0ZSBydWxlcy4ARmFpbGVkIHRvIGluaXRpYWxpemUgQ29ubmVjdGlvbl9ldmVudF9jb29yZGluYXRvcgBGYWlsZWQgdG8gdXBkYXRlIGNvbm5lY3Rpb24gZGVsYXkgdHJpZ2dlcmVkIHN0YXRzAEZhaWxlZCB0byByZXNldCBjb25uZWN0aW9uIGRlbGF5IHRyaWdnZXJlZCBzdGF0cwBVbmV4cGVjdGVkIG9wdGlvbiB0eXBlIGZvciBjb25uZWN0aW9uIGRlbGF5LgBGYWlsZWQgdG8gaW5pdGlhbGl6ZSBDb25uZWN0aW9uX2RlbGF5X2FjdGlvbgBDb3VsZCBub3Qgc2V0ICVzIGRlbGF5IGZvciBjb25uZWN0aW9uIGRlbGF5LgBGYWlsZWQgdG8gdXBkYXRlIGNvbm5lY3Rpb24gZGVsYXkgaGFzaCBmb3IgYWNjb3VudCA6ICVzACVzOiBGb3JjZSBzdG9wcGluZyBjbGllbnQgYmVjYXVzZSBleGNlcHRpb24gb2NjdXJyZWQ6ICVzACVzLiV1OiBNYXhpbXVtIG51bWJlciBvZiBhdXRoZW50aWNhdGlvbiBhdHRlbXB0cyByZWFjaGVkLCBsb2dpbiBmYWlsZWQuAEVycm9yIGFsbG9jYXRpbmcgQnVmZmVyX3BhZ2U6ICVzAERldGVjdGVkICV1IGhhbmdpbmcgY2xpZW50KHMpAEVycm9yIGFjY2VwdGluZyBjbGllbnQASW50ZXJuYWwgZXJyb3Igc2NoZWR1bGluZyBjbGllbnQgZm9yIGV4ZWN1dGlvbgBQcmVwYXJhdGlvbiBvZiBJL08gaW50ZXJmYWNlcyBmYWlsZWQsIFggUHJvdG9jb2wgd29uJ3QgYmUgYWNjZXNzaWJsZQBzcnZfc2Vzc2lvbl9pbml0X3RocmVhZCByZXR1cm5lZCBlcnJvcgBVbmFibGUgdG8gdXNlIHVzZXIgbXlzcWwuc2Vzc2lvbiBhY2NvdW50IHdoZW4gY29ubmVjdGluZyB0aGUgc2VydmVyIGZvciBpbnRlcm5hbCBwbHVnaW4gcmVxdWVzdHMuAEZvciBtb3JlIGluZm9ybWF0aW9uLCBwbGVhc2Ugc2VlIHRoZSBYIFBsdWdpbiBVc2VyIEFjY291bnQgc2VjdGlvbiBpbiB0aGUgTXlTUUwgZG9jdW1lbnRhdGlvbgAlczogVW5leHBlY3RlZCBleGNlcHRpb24gZGlzcGF0Y2hpbmcgY29tbWFuZDogJXMARXhjZXB0aW9uIGluIHBvc3Q6ICVzAEludGVybmFsIGVycm9yIHNjaGVkdWxpbmcgdGFzawBFeGNlcHRpb24gaW4gZXZlbnQgbG9vcDogIiVzIjogJXMAU2V0dXAgb2YgJXMgZmFpbGVkLCAlcwAlcwBGYWlsZWQgYXQgU1NMIGNvbmZpZ3VyYXRpb246ICIlcyIARXJyb3IgZHVyaW5nIFNTTCBoYW5kc2hha2UgZm9yIGNsaWVudCBjb25uZWN0aW9uICglaSkAJXM6IEVycm9yIGR1cmluZyBTU0wgaGFuZHNoYWtlACVzOiBFcnJvciBjcmVhdGluZyBzZXNzaW9uIGZvciBjb25uZWN0aW9uIGZyb20gJXMAJXM6IEVycm9yIGluaXRpYWxpemluZyBzZXNzaW9uIGZvciBjb25uZWN0aW9uOiAlcwAlczogTWVzc2FnZSBvZiBzaXplICV1IHJlY2VpdmVkLCBleGNlZWRpbmcgdGhlIGxpbWl0IG9mICVpAE1lc3NhZ2UgaXMgbm90IHByb3Blcmx5IGluaXRpYWxpemVkOiAlcwBVbmFibGUgdG8gc2V0IG1pbmltYWwgbnVtYmVyIG9mIHdvcmtlcnMgdG8gJXU7IGFjdHVhbCB2YWx1ZSBpcyAlaQBVbmFibGUgdG8gYWNjZXB0IGNvbm5lY3Rpb24sIGRpc2Nvbm5lY3RpbmcgY2xpZW50AEFsbCBJL08gaW50ZXJmYWNlcyBhcmUgZGlzYWJsZWQsIFggUHJvdG9jb2wgd29uJ3QgYmUgYWNjZXNzaWJsZQAlczogSW52YWxpZCBtZXNzYWdlICVpIHJlY2VpdmVkIGR1cmluZyBjbGllbnQgaW5pdGlhbGl6YXRpb24AJXM6IGNsb3NpbmcgY2xpZW50IGJlY2F1c2Ugb2Ygc2h1dGRvd24gKHN0YXRlOiAlaSkAJXM6IEVycm9yIHJlYWRpbmcgZnJvbSBzb2NrZXQgJXMgKCVpKQAlczogcGVlciBkaXNjb25uZWN0ZWQgd2hpbGUgcmVhZGluZyBtZXNzYWdlIGJvZHkAY2xpZW50X2lkOiVzIC0gJXMgd2hpbGUgcmVhZGluZyBmcm9tIHNvY2tldCwgY2xvc2luZyBjb25uZWN0aW9uACVzLiV1OiBJbnZhbGlkIGF1dGhlbnRpY2F0aW9uIG1ldGhvZCAlcwAlczogVW5leHBlY3RlZCBtZXNzYWdlIG9mIHR5cGUgJWkgcmVjZWl2ZWQgZHVyaW5nIGF1dGhlbnRpY2F0aW9uAEVycm9yIHdyaXRpbmcgdG8gY2xpZW50OiAlcyAoJWkpAFNjaGVkdWxlciAiJXMiIHN0YXJ0ZWQuAFNjaGVkdWxlciAiJXMiIHN0b3BwZWQuAFBsZWFzZSBzZWUgdGhlIE15U1FMIGRvY3VtZW50YXRpb24gZm9yICclcycgc3lzdGVtIHZhcmlhYmxlcyB0byBmaXggdGhlIGVycm9yAFggUGx1Z2luIHJlYWR5IGZvciBjb25uZWN0aW9ucy4gJXMAUmV0cnlpbmcgYGJpbmQoKWAgb24gVENQL0lQIHBvcnQgJWkAU2h1dGRvd24gdHJpZ2dlcmVkIGJ5IG15c3FsZCBhYm9ydCBmbGFnAFVzaW5nICVzIGFjY291bnQgZm9yIGF1dGhlbnRpY2F0aW9uIHdoaWNoIGhhcyBhbGwgcmVxdWlyZWQgcGVybWlzc2lvbnMAVXNpbmcgZXhpc3RpbmcgJXMgYWNjb3VudCBmb3IgYXV0aGVudGljYXRpb24uIEluY29tcGxldGUgZ3JhbnRzIHdpbGwgYmUgZml4ZWQAU2VydmVyIHN0YXJ0cyBoYW5kbGluZyBpbmNvbWluZyBjb25uZWN0aW9ucwBTdG9wcGVkIGhhbmRsaW5nIGluY29taW5nIGNvbm5lY3Rpb25zACVzOiBDb3VsZCBub3QgaW50ZXJydXB0IGNsaWVudCBzZXNzaW9uACVzOiByZWxlYXNlIHRyaWdnZXJlZCBieSB0aW1lb3V0IGluIHN0YXRlOiVpAElQdjYgaXMgYXZhaWxhYmxlAFVOSVggc29ja2V0IG5vdCBjb25maWd1cmVkAEtpbGwgY2xpZW50OiAlaSAlcwBDb3VsZCBub3QgZ2V0IHNlY3VyaXR5IGNvbnRleHQgZm9yIHNlc3Npb24AVW5hYmxlIHRvIHN3aXRjaCBzZWN1cml0eSBjb250ZXh0IHRvIHJvb3QARXJyb3IgY2xvc2luZyBTUUwgc2Vzc2lvbgBFcnJvciBleGVjdXRpbmcgYWRtaW4gY29tbWFuZCAlczogJXMARXJyb3IgZXhlY3V0aW5nIGVtcHR5IGFkbWluIGNvbW1hbmQAVW5hYmxlIHRvIHJldHJpZXZlIHN5c3RlbSB2YXJpYWJsZSAnJXMnAFVuYWJsZSB0byBnZXQgY3JlYXRpb24gc3RtdCBmb3IgY29sbGVjdGlvbiAnJXMnOyBxdWVyeSByZXN1bHQgc2l6ZTogJWx1AFVuYWJsZSB0byBnZXQgZW5naW5lIGluZm8gZm9yIGNvbGxlY3Rpb24gJyVzJzsgY3JlYXRpb24gc3RtdDogJXMARXJyb3IgZ2V0dGluZyByZXN1bHQgZGF0YTogJXMAQ2FwYWJpbGl0eSBleHBpcmVkIHBhc3N3b3JkIGZhaWxlZCB3aXRoIGVycm9yOiAlcwBGYWlsZWQgdG8gc2V0IFNPX1JFVVNFQUREUiBmbGFnIChlcnJvcjogJWQpLgBDb3VsZCBub3Qgb3BlbiBpbnRlcm5hbCBNeVNRTCBzZXNzaW9uAFVuYWJsZSB0byBzd2l0Y2ggY29udGV4dCB0byB1c2VyICVzAENhbid0IHVucmVnaXN0ZXIgJyVzJyB1c2VyIGRlZmluZWQgZnVuY3Rpb24AJXM6IGdldCBwZWVyIGFkZHJlc3MgZmFpbGVkLCBjYW4ndCByZXNvbHZlIElQIHRvIGhvc3RuYW1lAENhcGFiaWxpdHkgY2xpZW50IGludGVyYWN0aXZlIGZhaWxlZCB3aXRoIGVycm9yOiAlcwBGYWlsZWQgdG8gcmVzZXQgSVBWNl9WNk9OTFkgZmxhZyAoZXJyb3I6ICVkKS4gVGhlIHNlcnZlciB3aWxsIGxpc3RlbiB0byBJUHY2IGFkZHJlc3NlcyBvbmx5LgBJbnZhbGlkIGtleSB0eXBlAEludmFsaWQga2V5IGxlbmd0aCBmb3IgZ2l2ZW4gYmxvY2sgY2lwaGVyAENvdWxkIG5vdCBjcmVhdGUga2V5cmluZyBkaXJlY3RvcnkuIFRoZSBrZXlyaW5nX2ZpbGUgd2lsbCBzdGF5IHVudXNhYmxlIHVudGlsIGNvcnJlY3QgcGF0aCB0byB0aGUga2V5cmluZyBkaXJlY3RvcnkgZ2V0cyBwcm92aWRlZABrZXlyaW5nX2ZpbGUgaW5pdGlhbGl6YXRpb24gZmFpbHVyZS4gUGxlYXNlIGNoZWNrIGlmIHRoZSBrZXlyaW5nX2ZpbGVfZGF0YSBwb2ludHMgdG8gcmVhZGFibGUga2V5cmluZyBmaWxlIG9yIGtleXJpbmcgZmlsZSBjYW4gYmUgY3JlYXRlZCBpbiB0aGUgc3BlY2lmaWVkIGxvY2F0aW9uLiBUaGUga2V5cmluZ19maWxlIHdpbGwgc3RheSB1bnVzYWJsZSB1bnRpbCBjb3JyZWN0IHBhdGggdG8gdGhlIGtleXJpbmcgZmlsZSBnZXRzIHByb3ZpZGVkAGtleXJpbmdfZmlsZSBpbml0aWFsaXphdGlvbiBmYWlsdXJlIGR1ZSB0byBpbnRlcm5hbCBleGNlcHRpb24gaW5zaWRlIHRoZSBwbHVnaW4uAEZhaWxlZCB0byBnZW5lcmF0ZSBhIGtleSBkdWUgdG8gaW50ZXJuYWwgZXhjZXB0aW9uIGluc2lkZSBrZXlyaW5nX2ZpbGUgcGx1Z2luAEVycm9yIHdoaWxlICVzIGtleTogaW52YWxpZCBrZXlfdHlwZQBFcnJvciB3aGlsZSAlcyBrZXk6IGtleV9pZCBjYW5ub3QgYmUgZW1wdHkARmFpbGVkIHRvICVzIGR1ZSB0byBpbnRlcm5hbCBleGNlcHRpb24gaW5zaWRlICVzIHBsdWdpbgBJbmNvcnJlY3QgS2V5cmluZyBmaWxlAEZvdW5kIG1hbGZvcm1lZCBrZXlyaW5nIGJhY2t1cCBmaWxlIC0gcmVtb3ZpbmcgaXQARXJyb3Igd2hpbGUgcmVzdG9yaW5nIGtleXJpbmcgZnJvbSBiYWNrdXAgZmlsZSBjYW5ub3Qgb3ZlcndyaXRlIGtleXJpbmcgd2l0aCBiYWNrdXAARXJyb3Igd2hpbGUgZmx1c2hpbmcgaW4tbWVtb3J5IGtleXJpbmcgaW50byBrZXlyaW5nIGZpbGUARXJyb3Igd2hpbGUgcmVhZGluZyBzdGF0IGZvciAlcy5QbGVhc2UgY2hlY2sgaWYgZmlsZSAlcyB3YXMgbm90IHJlbW92ZWQuIE9TIHJldHVybmVkIHRoaXMgZXJyb3I6ICVzAENvdWxkIG5vdCByZW1vdmUgZmlsZSAlcyBPUyByZXR1bmVkIHRoaXMgZXJyb3I6ICVzAENvdWxkIG5vdCB0cnVuY2F0ZSBmaWxlICVzLiBPUyByZXR1bmVkIHRoaXMgZXJyb3I6ICVzAFVua25vd24gZXJyb3IgJWQAa2V5cmluZ19maWxlX2RhdGEgY2Fubm90IGJlIHNldCB0byBuZXcgdmFsdWUgYXMgdGhlIGtleXJpbmcgZmlsZSBjYW5ub3QgYmUgY3JlYXRlZC9hY2Nlc3NlZCBpbiB0aGUgcHJvdmlkZWQgcGF0aAAlcwBFcnJvciB3aGlsZSBsb2FkaW5nIGtleXJpbmcgY29udGVudC4gVGhlIGtleXJpbmcgbWlnaHQgYmUgbWFsZm9ybWVkAENvdWxkIG5vdCBmbHVzaCBrZXlzIHRvIGtleXJpbmcAQ291bGQgbm90IGZsdXNoIGtleXMgdG8ga2V5cmluZydzIGJhY2t1cABFcnJvciB3aGlsZSBmZXRjaGluZyBrZXk6IGtleV9pZCBjYW5ub3QgYmUgZW1wdHkARXJyb3Igd2hpbGUgcmVtb3Zpbmcga2V5OiBrZXlfaWQgY2Fubm90IGJlIGVtcHR5AEZvciBrZXlyaW5nX29rdiB0byBiZSBpbml0aWFsaXplZCwgcGxlYXNlIHBvaW50IGtleXJpbmdfb2t2X2NvbmZfZGlyIHZhcmlhYmxlIHRvIGEgZGlyZWN0b3J5IHdpdGggT3JhY2xlIEtleSBWYXVsdCBjb25maWd1cmF0aW9uIGZpbGUgYW5kIHNzbCBtYXRlcmlhbHMAa2V5cmluZ19va3YgaW5pdGlhbGl6YXRpb24gZmFpbHVyZS4gUGxlYXNlIGNoZWNrIHRoYXQgdGhlIGtleXJpbmdfb2t2X2NvbmZfZGlyIHBvaW50cyB0byBhIHJlYWRhYmxlIGRpcmVjdG9yeSBhbmQgdGhhdCB0aGUgZGlyZWN0b3J5IGNvbnRhaW5zIE9yYWNsZSBLZXkgVmF1bHQgY29uZmlndXJhdGlvbiBmaWxlIGFuZCBzc2wgbWF0ZXJpYWxzLiBQbGVhc2UgYWxzbyBjaGVjayB0aGF0IE9yYWNsZSBLZXkgVmF1bHQgaXMgdXAgYW5kIHJ1bm5pbmcuAGtleXJpbmdfb2t2IGluaXRpYWxpemF0aW9uIGZhaWx1cmUgZHVlIHRvIGludGVybmFsIGV4Y2VwdGlvbiBpbnNpZGUgdGhlIHBsdWdpbgBJbnZhbGlkIGtleSB0eXBlAEludmFsaWQga2V5IGxlbmd0aCBmb3IgZ2l2ZW4gYmxvY2sgY2lwaGVyAEZhaWxlZCB0byBnZW5lcmF0ZSBhIGtleSBkdWUgdG8gaW50ZXJuYWwgZXhjZXB0aW9uIGluc2lkZSBrZXlyaW5nX29rdiBwbHVnaW4AQ291bGQgbm90IGZpbmQgZW50cnkgZm9yIHNlcnZlciBpbiBjb25maWd1cmF0aW9uIGZpbGUgJXMAQ291bGQgbm90IGZpbmQgZW50cnkgZm9yIHN0YW5kYnkgc2VydmVyIGluIGNvbmZpZ3VyYXRpb24gZmlsZSAlcwBDb3VsZCBub3QgcGFyc2UgdGhlICVzIGZpbGUgcHJvdmlkZWQAQ291bGQgbm90IGxvYWQga2V5cycgdWlkcyBmcm9tIHRoZSBPS1Ygc2VydmVyAENvdWxkIG5vdCBpbml0aWFsaXplIHNzbCBsYXllcgBDb3VsZCBub3QgaW5pdGlhbGl6ZSBPS1YgY2xpZW50AENvdWxkIG5vdCBjb25uZWN0IHRvIHRoZSBPS1Ygc2VydmVyAENvdWxkIG5vdCByZW1vdmUgdGhlIGtleQBDb3VsZCBub3QgYWRkIGF0dHJpYnV0ZSwgYXR0cmlidXRlX25hbWU9JXMgYXR0cmlidXRlIHZhbHVlPSVzAENvdWxkIG5vdCBnZW5lcmF0ZSB0aGUga2V5LgBDb3VsZCBub3Qgc3RvcmUgdGhlIGtleS4AQ291bGQgbm90IGFjdGl2YXRlIHRoZSBrZXkuAENvdWxkIG5vdCBmZXRjaCBnZW5lcmF0ZWQga2V5AENvdWxkIG5vdCBzdG9yZS9nZW5lcmF0ZSB0aGUga2V5IC0gZmFpbGVkIHRvIHNldCBrZXkgYXR0cmlidXRlIHgta2V5LXJlYWR5AENvdWxkIG5vdCByZXRyaWV2ZSBrZXkgc2lnbmF0dXJlIGZyb20gY3VzdG9tIGF0dHJpYnV0ZXMAQ291bGQgbm90IHJldHJpZXZlIGtleSBmcm9tIE9LVgBFcnJvciBsb2FkaW5nIHRydXN0IHN0b3JlAEVycm9yIHNldHRpbmcgdGhlIGNlcnRpZmljYXRlIGZpbGUuAEVycm9yIHNldHRpbmcgdGhlIGtleSBmaWxlLgBQcml2YXRlIGtleSBkb2VzIG5vdCBtYXRjaCB0aGUgY2VydGlmaWNhdGUgcHVibGljIGtleQBJbmNvcnJlY3QgS2V5cmluZyBmaWxlAEtleXJpbmdfZW5jcnlwdGVkX2ZpbGUgZGVjcnlwdGlvbiBmYWlsZWQuIFBsZWFzZSB2ZXJpZnkgLS1rZXlyaW5nLWVuY3J5cHRlZC1maWxlLXBhc3N3b3JkIG9wdGlvbiB2YWx1ZS4ARm91bmQgbWFsZm9ybWVkIGtleXJpbmcgYmFja3VwIGZpbGUgLSByZW1vdmluZyBpdABFcnJvciB3aGlsZSByZXN0b3Jpbmcga2V5cmluZyBmcm9tIGJhY2t1cCBmaWxlIGNhbm5vdCBvdmVyd3JpdGUga2V5cmluZyB3aXRoIGJhY2t1cABFcnJvciB3aGlsZSBmbHVzaGluZyBpbi1tZW1vcnkga2V5cmluZyBpbnRvIGtleXJpbmcgZmlsZQBLZXlyaW5nX2VuY3J5cHRlZF9maWxlIGVuY3J5cHRpb24gZmFpbGVkLiBQbGVhc2UgdmVyaWZ5IC0ta2V5cmluZy1lbmNyeXB0ZWQtZmlsZS1wYXNzd29yZCBvcHRpb24gdmFsdWUuAGtleXJpbmdfZW5jcnlwdGVkX2ZpbGVfZGF0YSBjYW5ub3QgYmUgc2V0IHRvIG5ldyB2YWx1ZSBhcyB0aGUga2V5cmluZyBmaWxlIGNhbm5vdCBiZSBjcmVhdGVkL2FjY2Vzc2VkIGluIHRoZSBwcm92aWRlZCBwYXRoAENvdWxkIG5vdCBjcmVhdGUga2V5cmluZyBkaXJlY3RvcnkgVGhlIGtleXJpbmdfZW5jcnlwdGVkX2ZpbGUgd2lsbCBzdGF5IHVudXNhYmxlIHVudGlsIGNvcnJlY3QgcGF0aCB0byB0aGUga2V5cmluZyBkaXJlY3RvcnkgZ2V0cyBwcm92aWRlZABUaGUga2V5cmluZ19lbmNyeXB0ZWRfZmlsZV9wYXNzd29yZCBtdXN0IGJlIHNldCB0byBhIHZhbGlkIHZhbHVlLgBUb28gbG9uZyBrZXlyaW5nX2VuY3J5cHRlZF9maWxlX3Bhc3N3b3JkIHZhbHVlLgBrZXlyaW5nX2VuY3J5cHRlZF9maWxlIGluaXRpYWxpemF0aW9uIGZhaWx1cmUuIFBsZWFzZSBjaGVjayBpZiB0aGUga2V5cmluZ19lbmNyeXB0ZWRfZmlsZV9kYXRhIHBvaW50cyB0byByZWFkYWJsZSBrZXlyaW5nIGZpbGUgb3Iga2V5cmluZyBmaWxlIGNhbiBiZSBjcmVhdGVkIGluIHRoZSBzcGVjaWZpZWQgbG9jYXRpb24gb3IgcGFzc3dvcmQgdG8gZGVjcnlwdCBrZXlyaW5nIGZpbGUgaXMgY29ycmVjdC4Aa2V5cmluZ19lbmNyeXB0ZWRfZmlsZSBpbml0aWFsaXphdGlvbiBmYWlsdXJlIGR1ZSB0byBpbnRlcm5hbCBleGNlcHRpb24gaW5zaWRlIHRoZSBwbHVnaW4ARmFpbGVkIHRvIGdlbmVyYXRlIGEga2V5IGR1ZSB0byBpbnRlcm5hbCBleGNlcHRpb24gaW5zaWRlIGtleXJpbmdfZW5jcnlwdGVkX2ZpbGUgcGx1Z2luAGtleXJpbmdfYXdzX2Nta19pZCBjYW5ub3QgYmUgc2V0IHRvIHRoZSBuZXcgdmFsdWUgYXMgQVdTIEtNUyBzZWVtcyB0byBub3QgdW5kZXJzdGFuZCB0aGUgaWQgcHJvdmlkZWQuIFBsZWFzZSBjaGVjayB0aGF0IENNSyBpZCBwcm92aWRlZCBpcyBjb3JyZWN0LgBrZXlyaW5nX2F3c19yZWdpb24gY2Fubm90IGJlIHNldCB0byB0aGUgbmV3IHZhbHVlIGFzIEFXUyBLTVMgc2VlbXMgdG8gbm90IHVuZGVyc3RhbmQgdGhlIHJlZ2lvbiBwcm92aWRlZC4gUGxlYXNlIGNoZWNrIHRoYXQgcmVnaW9uIHByb3ZpZGVkIGlzIGNvcnJlY3QuAENvdWxkIG5vdCBvcGVuIGtleXJpbmdfYXdzIGNvbmZpZ3VyYXRpb24gZmlsZTogJXMuIE9TIHJldHVybmVkIHRoaXMgZXJyb3I6ICVzAENvdWxkIG5vdCByZWFkIEFXUyBhY2Nlc3Mga2V5IGlkIGZyb20ga2V5cmluZ19hd3MgY29uZmlndXJhdGlvbiBmaWxlOiAlcy4gT1MgcmV0dXJuZWQgdGhpcyBlcnJvcjogJXMAQ291bGQgbm90IHJlYWQgQVdTIGFjY2VzcyBrZXkgZnJvbSBrZXlyaW5nX2F3cyBjb25maWd1cmF0aW9uIGZpbGU6ICVzLiBPUyByZXR1cm5lZCB0aGlzIGVycm9yOiAlcwBQYXRoIHRvIGtleXJpbmcgYXdzIGNvbmZpZ3VyYXRpb24gZmlsZSBjYW5ub3QgYmUgZW1wdHkAUGF0aCB0byBrZXlyaW5nX2F3cyBzdG9yYWdlIGZpbGUgY2Fubm90IGJlIGVtcHR5LgBVbmFibGUgdG8gY3JlYXRlL2FjY2VzcyBrZXlyaW5nIGRpcmVjdG9yeS4AVW5hYmxlIHRvIGNyZWF0ZS9hY2Nlc3Mga2V5cmluZ19hd3Mgc3RvcmFnZSBmaWxlLiBQbGVhc2UgY2hlY2sgaWYga2V5cmluZ19hd3NfZGF0YV9maWxlIHBvaW50cyB0byBsb2NhdGlvbiB3aGVyZSBrZXlyaW5nIGZpbGUgY2FuIGJlIGNyZWF0ZWQvYWNjZXNzZWQuIFBsZWFzZSBhbHNvIG1ha2Ugc3VyZSB0aGF0IE15U1FMIHNlcnZlcidzIHVzZXIgaGFzIGhpZ2ggZW5vdWdoIHByaXZpbGVnZXMgdG8gYWNjZXNzIHRoaXMgbG9jYXRpb24uAGtleXJpbmdfYXdzIGluaXRpYWxpemF0aW9uIGZhaWxlZCBkdWUgdG8gaW50ZXJuYWwgZXJyb3Igd2hlbiBpbml0aWFsaXppbmcgc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZSAtICVzLiBPUyByZXR1cm5lZCB0aGlzIGVycm9yOiAlczoAQ291bGQgbm90IGFjY2VzcyBrZXlyaW5nX2F3cyBzdG9yYWdlIGZpbGUgaW4gdGhlIHBhdGggcHJvdmlkZWQuIFBsZWFzZSBjaGVjayBpZiB0aGUga2V5cmluZ19hd3MgZGlyZWN0b3J5IGNhbiBiZSBhY2Nlc3NlZCBieSBNeVNRTCBTZXJ2ZXIAa2V5cmluZ19hd3NfY21rX2lkIGhhcyB0byBiZSBzZXQAQ291bGQgbm90IGdldCBBV1MgS01TIGNyZWRlbnRpYWxzIGZyb20gdGhlIGNvbmZpZ3VyYXRpb24gZmlsZQBrZXlyaW5nX2F3cyBpbml0aWFsaXphdGlvbiBmYWlsdXJlLgBrZXlyaW5nX2F3cyBpbml0aWFsaXphdGlvbiBmYWlsdXJlIGR1ZSB0byBpbnRlcm5hbCBleGNlcHRpb24gaW5zaWRlIHRoZSBwbHVnaW4ASW52YWxpZCBrZXkgbGVuZ3RoIGZvciBnaXZlbiBibG9jayBjaXBoZXIARmFpbGVkIHRvIGdlbmVyYXRlIGEga2V5IGR1ZSB0byBpbnRlcm5hbCBleGNlcHRpb24gaW5zaWRlIGtleXJpbmdfZmlsZSBwbHVnaW4ASW5jb3JyZWN0IEtleXJpbmcgZmlsZQBGb3VuZCBtYWxmb3JtZWQga2V5cmluZyBiYWNrdXAgZmlsZSAtIHJlbW92aW5nIGl0AEVycm9yIHdoaWxlIHJlc3RvcmluZyBrZXlyaW5nIGZyb20gYmFja3VwIGZpbGUgY2Fubm90IG92ZXJ3cml0ZSBrZXlyaW5nIHdpdGggYmFja3VwAEVycm9yIHdoaWxlIGZsdXNoaW5nIGluLW1lbW9yeSBrZXlyaW5nIGludG8ga2V5cmluZyBmaWxlAFdyb25nIHJlZ2lvbgBDb3VsZCBub3QgY29ubmVjdCB0byBBV1MgS01TIHdpdGggdGhlIGNyZWRlbnRpYWxzIHByb3ZpZGVkLiBQbGVhc2UgbWFrZSBzdXJlIHRoZXkgYXJlIGNvcnJlY3QuIEFXUyBLTVMgcmV0dXJuZWQgdGhpcyBlcnJvcjogJXMAQ291bGQgbm90IGdlbmVyYXRlIGEgbmV3IGtleS4gQVdTIEtNUyByZXR1cm5lZCB0aGlzIGVycm9yOiAlcwBDb3VsZCBub3QgZW5jcnlwdCBrZXkuIEFXUyBLTVMgcmV0dXJuZWQgdGhpcyBlcnJvcjogJXMAQ291bGQgbm90IHJlLWVuY3J5cHQga2V5LiBBV1MgS01TIHJldHVybmVkIHRoaXMgZXJyb3I6ICVzAENvdWxkIG5vdCBkZWNyeXB0IGtleS4gQVdTIEtNUyByZXR1cm5lZCB0aGlzIGVycm9yOiAlcwBDb3VsZCBub3Qgcm90YXRlIHRoZSBDTUsuIEFXUyBLTVMgcmV0dXJuZWQgdGhpcyBlcnJvcjogJXMAVGhlIHJlcXVlc3RlZCBHVElEICclczolbGxkJyB3YXMgYWxyZWFkeSB1c2VkLCB0aGUgdHJhbnNhY3Rpb24gd2lsbCByb2xsYmFjay4AVGhlIGdyb3VwIHJlcGxpY2F0aW9uIGFwcGxpZXIgdGhyZWFkIHdhcyBraWxsZWQuAEVycm9yIGF0IGV2ZW50IGhhbmRsaW5nISBHb3QgZXJyb3I6ICVkLgBFcnJvciB3aGVuIGV4dHJhY3RpbmcgZ3JvdXAgR1RJRCBleGVjdXRpb24gaW5mb3JtYXRpb24sIHNvbWUgcmVjb3Zlcnkgb3BlcmF0aW9ucyBtYXkgZmFjZSBmdXR1cmUgaXNzdWVzLgBBbiBlcnJvciBvY2N1cnJlZCB3aGVuIHRyeWluZyB0byByZWR1Y2UgdGhlIENlcnRpZmljYXRpb24gaW5mb3JtYXRpb24gc2l6ZSBmb3IgdHJhbnNtaXNzaW9uLgBGYWlsZWQgdG8gY3JlYXRlIGdyb3VwIHJlcGxpY2F0aW9uIHBpcGVsaW5lIGFwcGxpZXIgY2FjaGUhAFVuYmxvY2tpbmcgdGhlIGdyb3VwIHJlcGxpY2F0aW9uIHRocmVhZCB3YWl0aW5nIGZvciBhcHBsaWVyIHRvIHN0YXJ0LCBhcyB0aGUgc3RhcnQgZ3JvdXAgcmVwbGljYXRpb24gd2FzIGtpbGxlZC4AVGhlIGdyb3VwIHJlcGxpY2F0aW9uIGFwcGxpZXIgcGlwZWxpbmUgd2FzIG5vdCBwcm9wZXJseSBkaXNwb3NlZC4gQ2hlY2sgdGhlIGVycm9yIGxvZyBmb3IgZnVydGhlciBpbmZvLgBUaGUgYXBwbGllciB0aHJlYWQgZXhlY3V0aW9uIHdhcyBhYm9ydGVkLiBVbmFibGUgdG8gcHJvY2VzcyBtb3JlIHRyYW5zYWN0aW9ucywgdGhpcyBtZW1iZXIgd2lsbCBub3cgbGVhdmUgdGhlIGdyb3VwLgBGYXRhbCBlcnJvciBkdXJpbmcgZXhlY3V0aW9uIG9uIHRoZSBBcHBsaWVyIHByb2Nlc3Mgb2YgR3JvdXAgUmVwbGljYXRpb24uIFRoZSBzZXJ2ZXIgd2lsbCBub3cgbGVhdmUgdGhlIGdyb3VwLgBFcnJvciBzdG9wcGluZyBhbGwgcmVwbGljYXRpb24gY2hhbm5lbHMgd2hpbGUgc2VydmVyIHdhcyBsZWF2aW5nIHRoZSBncm91cC4gJXMARXJyb3Igc2VuZGluZyBzaW5nbGUgcHJpbWFyeSBtZXNzYWdlIGluZm9ybWluZyB0aGF0IHByaW1hcnkgZGlkIGFwcGx5IHJlbGF5IGxvZ3MuAEVycm9yIHVwZGF0aW5nIHRyYW5zYWN0aW9uIHNuYXBzaG90IHZlcnNpb24gYWZ0ZXIgdHJhbnNhY3Rpb24gYmVpbmcgcG9zaXRpdmVseSBjZXJ0aWZpZWQuAEVycm9yIGZldGNoaW5nIHRyYW5zYWN0aW9uIHNpZG5vIGFmdGVyIHRyYW5zYWN0aW9uIGJlaW5nIHBvc2l0aXZlbHkgY2VydGlmaWVkLgBCcm9hZGNhc3Qgb2YgY29tbWl0dGVkIHRyYW5zYWN0aW9ucyBtZXNzYWdlIGZhaWxlZC4AVW5hYmxlIHRvIHBhcnNlIHRoZSBncm91cF9yZXBsaWNhdGlvbl9ncm91cF9uYW1lIGR1cmluZyB0aGUgQ2VydGlmaWNhdGlvbiBtb2R1bGUgaW5pdGlhbGl6YXRpb24uAFVuYWJsZSB0byBhZGQgdGhlIGdyb3VwX3NpZCBpbiB0aGUgZ3JvdXBfZ3RpZF9zaWRfbWFwIGR1cmluZyB0aGUgQ2VydGlmaWNhdGlvbiBtb2R1bGUgaW5pdGlhbGl6YXRpb24uAEVycm9yIHVwZGF0aW5nIGdyb3VwX2d0aWRfZXhlY3V0ZWQgR0lURCBzZXQgZHVyaW5nIHRoZSBDZXJ0aWZpY2F0aW9uIG1vZHVsZSBpbml0aWFsaXphdGlvbi4AVW5hYmxlIHRvIGhhbmRsZSB0aGUgZG9ub3IncyB0cmFuc2FjdGlvbiBpbmZvcm1hdGlvbiB3aGVuIGluaXRpYWxpemluZyB0aGUgY29uZmxpY3QgZGV0ZWN0aW9uIGNvbXBvbmVudC4gUG9zc2libGUgb3V0IG9mIG1lbW9yeSBlcnJvci4ARXJyb3Igd2hlbiBlc3RhYmxpc2hpbmcgYSBzZXJ2ZXIgY29ubmVjdGlvbiBkdXJpbmcgdGhlIENlcnRpZmljYXRpb24gbW9kdWxlIGluaXRpYWxpemF0aW9uLgBFcnJvciB3aGVuIGV4dHJhY3RpbmcgdGhpcyBtZW1iZXIgR1RJRCBleGVjdXRlZCBzZXQuIENlcnRpZmljYXRpb24gbW9kdWxlIGNhbid0IGJlIHByb3Blcmx5IGluaXRpYWxpemVkLgBFcnJvciB3aGlsZSBhZGRpbmcgdGhlIHNlcnZlciBHVElEIEVYRUNVVEVEIHNldCB0byB0aGUgZ3JvdXBfZ3RpZF9leGVjdXRlIGR1cmluZyB0aGUgQ2VydGlmaWNhdGlvbiBtb2R1bGUgaW5pdGlhbGl6YXRpb24uAEVycm9yIHdoZW4gZXh0cmFjdGluZyB0aGlzIG1lbWJlciByZXRyaWV2ZWQgc2V0IGZvciBpdHMgYXBwbGllci4gQ2VydGlmaWNhdGlvbiBtb2R1bGUgY2FuJ3QgYmUgcHJvcGVybHkgaW5pdGlhbGl6ZWQuAEVycm9yIHdoaWxlIGFkZGluZyB0aGUgbWVtYmVyIHJldHJpZXZlZCBzZXQgdG8gdGhlIGdyb3VwX2d0aWRfZXhlY3V0ZWQgZHVyaW5nIHRoZSBDZXJ0aWZpY2F0aW9uIG1vZHVsZSBpbml0aWFsaXphdGlvbi4ARXJyb3IgZHVyaW5nIENlcnRpZmljYXRpb24gbW9kdWxlIGluaXRpYWxpemF0aW9uLgBVbmFibGUgdG8gdXBkYXRlIGxhc3QgY29uZmxpY3QgZnJlZSB0cmFuc2FjdGlvbiwgdGhpcyB0cmFuc2FjdGlvbiB3aWxsIG5vdCBiZSB0cmFja2VkIG9uIHBlcmZvcm1hbmNlX3NjaGVtYS5yZXBsaWNhdGlvbl9ncm91cF9tZW1iZXJfc3RhdHMubGFzdF9jb25mbGljdF9mcmVlX3RyYW5zYWN0aW9uLgBFcnJvciB1cGRhdGluZyB0cmFuc2FjdGlvbiBzbmFwc2hvdCB2ZXJzaW9uIHJlZmVyZW5jZSBmb3IgaW50ZXJuYWwgc3RvcmFnZS4ARXJyb3IgZmV0Y2hpbmcgdHJhbnNhY3Rpb24gc2lkbm8gd2hpbGUgYWRkaW5nIHRvIHRoZSBncm91cF9ndGlkX2V4ZWN1dGVkIHNldC4ARXJyb3Igd2hpbGUgZW5zdXJpbmcgdGhlIHNpZG5vIGJlIHByZXNlbnQgaW4gdGhlIGdyb3VwX2d0aWRfZXhlY3V0ZWQuAEltcG9zc2libGUgdG8gZ2VuZXJhdGUgR2xvYmFsIFRyYW5zYWN0aW9uIElkZW50aWZpZXI6IHRoZSBpbnRlZ2VyIGNvbXBvbmVudCByZWFjaGVkIHRoZSBtYXhpbWFsIHZhbHVlLiBSZXN0YXJ0IHRoZSBncm91cCB3aXRoIGEgbmV3IGdyb3VwX3JlcGxpY2F0aW9uX2dyb3VwX25hbWUuAEludmFsaWQgc3RhYmxlIHRyYW5zYWN0aW9ucyBzZXQuAEVycm9yIHVwZGF0aW5nIHN0YWJsZSB0cmFuc2FjdGlvbnMgc2V0LgBUaGVyZSB3YXMgYW4gZXJyb3Igd2hlbiBmaWxsaW5nIHRoZSBtaXNzaW5nIEdUSURzIG9uIHRoZSBhcHBsaWVyIGNoYW5uZWwgcmVjZWl2ZWQgc2V0LiBEZXNwaXRlIG5vdCBjcml0aWNhbCwgb24gdGhlIGxvbmcgcnVuIHRoaXMgbWF5IGNhdXNlIHBlcmZvcm1hbmNlIGlzc3Vlcy4AU2tpcHBpbmcgdGhlIGNvbXB1dGF0aW9uIG9mIHRoZSBUcmFuc2FjdGlvbnNfY29tbWl0dGVkX2FsbF9tZW1iZXJzIGZpZWxkIGFzIGFuIG9sZGVyIGluc3RhbmNlIG9mIHRoaXMgY29tcHV0YXRpb24gaXMgc3RpbGwgb25nb2luZy4ATnVsbCBwYWNrZXQgb24gY2VydGlmaWVyJ3MgcXVldWUuAEVycm9yIHJlYWRpbmcgR1RJRHMgZnJvbSB0aGUgbWVzc2FnZS4ARXJyb3IgcHJvY2Vzc2luZyBzdGFibGUgdHJhbnNhY3Rpb25zIHNldC4ARXJyb3IgcHJvY2Vzc2luZyBpbnRlcnNlY3Rpb24gb2Ygc3RhYmxlIHRyYW5zYWN0aW9ucyBzZXQuAEVycm9yIHNldHRpbmcgc3RhYmxlIHRyYW5zYWN0aW9ucyBzZXQuAEVycm9yIHJlYWRpbmcgZ3JvdXBfZ3RpZF9leHRyYWN0ZWQgZnJvbSB0aGUgVmlld19jaGFuZ2VfbG9nX2V2ZW50LgBFcnJvciByZWFkaW5nIHRoZSB3cml0ZSBzZXQgaXRlbSAnJXMnIGZyb20gdGhlIFZpZXdfY2hhbmdlX2xvZ19ldmVudC4ARXJyb3IgZHVyaW5nIGNlcnRpZmljYXRpb25faW5mbyBpbml0aWFsaXphdGlvbi4AUHJpbWFyeSBoYWQgYXBwbGllZCBhbGwgcmVsYXkgbG9ncywgZGlzYWJsZWQgY29uZmxpY3QgZGV0ZWN0aW9uLgBNZXNzYWdlIHJlY2VpdmVkIHdoaWxlIHRoZSBwbHVnaW4gaXMgbm90IHJlYWR5LCBtZXNzYWdlIGRpc2NhcmRlZC4ATWVzc2FnZSByZWNlaXZlZCB3aXRob3V0IGEgcHJvcGVyIGdyb3VwIHJlcGxpY2F0aW9uIGFwcGxpZXIuAEVycm9yIHByb2Nlc3NpbmcgbWVzc2FnZSBpbiBDZXJ0aWZpZXIuAFRoaXMgc2VydmVyIHdhcyBub3QgZGVjbGFyZWQgb25saW5lIHNpbmNlIGl0IGlzIG9uIHN0YXR1cyAlcy4AVGhpcyBzZXJ2ZXIgd2FzIGRlY2xhcmVkIG9ubGluZSB3aXRoaW4gdGhlIHJlcGxpY2F0aW9uIGdyb3VwLgBXaGVuIGRlY2xhcmluZyB0aGUgcGx1Z2luIG9ubGluZSBpdCB3YXMgbm90IHBvc3NpYmxlIHRvIGRpc2FibGUgdGhlIHNlcnZlciByZWFkIG1vZGUgc2V0dGluZ3MuIFRyeSB0byBkaXNhYmxlIGl0IG1hbnVhbGx5LgBUaGUgbWVtYmVyIHdpdGggYWRkcmVzcyAlczoldSB3YXMgZGVjbGFyZWQgb25saW5lIHdpdGhpbiB0aGUgcmVwbGljYXRpb24gZ3JvdXAuAE1lbWJlciB3aXRoIGFkZHJlc3MgJXM6JXUgaGFzIGJlY29tZSB1bnJlYWNoYWJsZS4ATWVtYmVyIHdpdGggYWRkcmVzcyAlczoldSBpcyByZWFjaGFibGUgYWdhaW4uAFRoaXMgc2VydmVyIGlzIG5vdCBhYmxlIHRvIHJlYWNoIGEgbWFqb3JpdHkgb2YgbWVtYmVycyBpbiB0aGUgZ3JvdXAuIFRoaXMgc2VydmVyIHdpbGwgbm93IGJsb2NrIGFsbCB1cGRhdGVzLiBUaGUgc2VydmVyIHdpbGwgcmVtYWluIGJsb2NrZWQgdW50aWwgY29udGFjdCB3aXRoIHRoZSBtYWpvcml0eSBpcyByZXN0b3JlZC4gSXQgaXMgcG9zc2libGUgdG8gdXNlIGdyb3VwX3JlcGxpY2F0aW9uX2ZvcmNlX21lbWJlcnMgdG8gZm9yY2UgYSBuZXcgZ3JvdXAgbWVtYmVyc2hpcC4AVGhpcyBzZXJ2ZXIgaXMgbm90IGFibGUgdG8gcmVhY2ggYSBtYWpvcml0eSBvZiBtZW1iZXJzIGluIHRoZSBncm91cC4gVGhpcyBzZXJ2ZXIgd2lsbCBub3cgYmxvY2sgYWxsIHVwZGF0ZXMuIFRoZSBzZXJ2ZXIgd2lsbCByZW1haW4gYmxvY2tlZCBmb3IgdGhlIG5leHQgJWx1IHNlY29uZHMuIFVubGVzcyBjb250YWN0IHdpdGggdGhlIG1ham9yaXR5IGlzIHJlc3RvcmVkLCBhZnRlciB0aGlzIHRpbWUgdGhlIG1lbWJlciB3aWxsIGVycm9yIG91dCBhbmQgbGVhdmUgdGhlIGdyb3VwLiBJdCBpcyBwb3NzaWJsZSB0byB1c2UgZ3JvdXBfcmVwbGljYXRpb25fZm9yY2VfbWVtYmVycyB0byBmb3JjZSBhIG5ldyBncm91cCBtZW1iZXJzaGlwLgBBIGdyb3VwIG1lbWJlcnNoaXAgY2hhbmdlIHdhcyByZWNlaXZlZCBidXQgdGhlIHBsdWdpbiBpcyBhbHJlYWR5IGxlYXZpbmcgZHVlIHRvIHRoZSBjb25maWd1cmVkIHRpbWVvdXQgb24gZ3JvdXBfcmVwbGljYXRpb25fdW5yZWFjaGFibGVfbWFqb3JpdHlfdGltZW91dCBvcHRpb24uAFRoZSBtZW1iZXIgaGFzIHJlc3VtZWQgY29udGFjdCB3aXRoIGEgbWFqb3JpdHkgb2YgdGhlIG1lbWJlcnMgaW4gdGhlIGdyb3VwLiBSZWd1bGFyIG9wZXJhdGlvbiBpcyByZXN0b3JlZCBhbmQgdHJhbnNhY3Rpb25zIGFyZSB1bmJsb2NrZWQuAE1lbWJlcnMgcmVtb3ZlZCBmcm9tIHRoZSBncm91cDogJXMAUHJpbWFyeSBzZXJ2ZXIgd2l0aCBhZGRyZXNzICVzIGxlZnQgdGhlIGdyb3VwLiBFbGVjdGluZyBuZXcgUHJpbWFyeS4ATWVtYmVycyBqb2luZWQgdGhlIGdyb3VwOiAlcwBUaGVyZSB3YXMgYSBwcmV2aW91cyBwbHVnaW4gZXJyb3Igd2hpbGUgdGhlIG1lbWJlciBqb2luZWQgdGhlIGdyb3VwLiBUaGUgbWVtYmVyIHdpbGwgbm93IGV4aXQgdGhlIGdyb3VwLgBHcm91cCBtZW1iZXJzaGlwIGNoYW5nZWQgdG8gJXMgb24gdmlldyAlcy4AR3JvdXAgbWVtYmVyc2hpcCBjaGFuZ2VkOiBUaGlzIG1lbWJlciBoYXMgbGVmdCB0aGUgZ3JvdXAuAE1lbWJlciB3YXMgZXhwZWxsZWQgZnJvbSB0aGUgZ3JvdXAgZHVlIHRvIG5ldHdvcmsgZmFpbHVyZXMsIGNoYW5naW5nIG1lbWJlciBzdGF0dXMgdG8gRVJST1IuAFVuYWJsZSB0byBvcGVuIHNlc3Npb24gdG8gKHJlKXNldCByZWFkIG9ubHkgbW9kZS4gU2tpcHBpbmcuAEEgbmV3IHByaW1hcnkgd2l0aCBhZGRyZXNzICVzOiV1IHdhcyBlbGVjdGVkLiAlcwBVbmFibGUgdG8gZGlzYWJsZSBzdXBlciByZWFkIG9ubHkgZmxhZy4gVHJ5IHRvIGRpc2FibGUgaXQgbWFudWFsbHkAVW5hYmxlIHRvIHNldCBzdXBlciByZWFkIG9ubHkgZmxhZy4gVHJ5IHRvIHNldCBpdCBtYW51YWxseS4AVGhpcyBzZXJ2ZXIgaXMgd29ya2luZyBhcyBwcmltYXJ5IG1lbWJlci4AVGhpcyBzZXJ2ZXIgaXMgd29ya2luZyBhcyBzZWNvbmRhcnkgbWVtYmVyIHdpdGggcHJpbWFyeSBtZW1iZXIgYWRkcmVzcyAlczoldS4AVW5hYmxlIHRvIHNldCBhbnkgbWVtYmVyIGFzIHByaW1hcnkuIE5vIHN1aXRhYmxlIGNhbmRpZGF0ZS4ARXJyb3Igd2hlbiBhY3RpdmF0aW5nIHN1cGVyX3JlYWRfb25seSBtb2RlIG9uIHN0YXJ0LiBUaGUgbWVtYmVyIHdpbGwgbm93IGV4aXQgdGhlIGdyb3VwLgBHcm91cCBjb250YWlucyAlbHUgbWVtYmVycyB3aGljaCBpcyBncmVhdGVyIHRoYW4gZ3JvdXBfcmVwbGljYXRpb25fYXV0b19pbmNyZW1lbnRfaW5jcmVtZW50IHZhbHVlIG9mICVsdS4gVGhpcyBjYW4gbGVhZCB0byBhIGhpZ2hlciB0cmFuc2FjdGlvbmFsIGFib3J0IHJhdGUuAE1lbWJlciB3aXRoIGFkZHJlc3MgJyVzOiV1JyBkaWRuJ3QgcHJvdmlkZSBhbnkgZGF0YSBkdXJpbmcgdGhlIGxhc3QgZ3JvdXAgY2hhbmdlLiBHcm91cCBpbmZvcm1hdGlvbiBjYW4gYmUgb3V0ZGF0ZWQgYW5kIGxlYWQgdG8gZXJyb3JzIG9uIHJlY292ZXJ5LgBUaGVyZSBpcyBhbHJlYWR5IGEgbWVtYmVyIHdpdGggc2VydmVyX3V1aWQgJXMuIFRoZSBtZW1iZXIgd2lsbCBub3cgZXhpdCB0aGUgZ3JvdXAuAEVycm9yIHdoZW4gZXh0cmFjdGluZyBpbmZvcm1hdGlvbiBmb3IgZ3JvdXAgY2hhbmdlLiBPcGVyYXRpb25zIGFuZCBjaGVja3MgbWFkZSB0byBncm91cCBqb2luZXJzIG1heSBiZSBpbmNvbXBsZXRlLgBFcnJvciB3aGVuIGV4dHJhY3RpbmcgdGhpcyBtZW1iZXIgR1RJRCBleGVjdXRlZCBzZXQuIE9wZXJhdGlvbnMgYW5kIGNoZWNrcyBtYWRlIHRvIGdyb3VwIGpvaW5lcnMgbWF5IGJlIGluY29tcGxldGUuAEVycm9yIHdoZW4gZXh0cmFjdGluZyB0aGlzIG1lbWJlciByZXRyaWV2ZWQgc2V0IGZvciBpdHMgYXBwbGllci4gT3BlcmF0aW9ucyBhbmQgY2hlY2tzIG1hZGUgdG8gZ3JvdXAgam9pbmVycyBtYXkgYmUgaW5jb21wbGV0ZS4AVGhlIFNUQVJUIEdST1VQX1JFUExJQ0FUSU9OIGNvbW1hbmQgZmFpbGVkIHNpbmNlIHRoZSBncm91cCBhbHJlYWR5IGhhcyA5IG1lbWJlcnMuAE1lbWJlciB2ZXJzaW9uIGlzIGluY29tcGF0aWJsZSB3aXRoIHRoZSBncm91cC4AVGhlIG1lbWJlciBjb250YWlucyB0cmFuc2FjdGlvbnMgbm90IHByZXNlbnQgaW4gdGhlIGdyb3VwLiBUaGUgbWVtYmVyIHdpbGwgbm93IGV4aXQgdGhlIGdyb3VwLgBJdCB3YXMgbm90IHBvc3NpYmxlIHRvIGFzc2VzcyBpZiB0aGUgbWVtYmVyIGhhcyBtb3JlIHRyYW5zYWN0aW9ucyB0aGFuIHRoZSBncm91cC4gVGhlIG1lbWJlciB3aWxsIG5vdyBleGl0IHRoZSBncm91cC4ATWVtYmVyIHZlcnNpb24gaXMgbG93ZXIgdGhhbiBzb21lIGdyb3VwIG1lbWJlciwgYnV0IHNpbmNlIG9wdGlvbiAnZ3JvdXBfcmVwbGljYXRpb25fYWxsb3dfbG9jYWxfbG93ZXJfdmVyc2lvbl9qb2luIGlzIGVuYWJsZWQsIG1lbWJlciB3aWxsIGJlIGFsbG93ZWQgdG8gam9pbi4ARXJyb3IgcHJvY2Vzc2luZyBsb2NhbCBHVElEIHNldHMgd2hlbiBjb21wYXJpbmcgdGhpcyBtZW1iZXIgdHJhbnNhY3Rpb25zIGFnYWluc3QgdGhlIGdyb3VwLgBUaGlzIG1lbWJlciBoYXMgbW9yZSBleGVjdXRlZCB0cmFuc2FjdGlvbnMgdGhhbiB0aG9zZSBwcmVzZW50IGluIHRoZSBncm91cC4gTG9jYWwgdHJhbnNhY3Rpb25zOiAlcyA+IEdyb3VwIHRyYW5zYWN0aW9uczogJXMAVGhlIG1lbWJlciBpcyBjb25maWd1cmVkIHdpdGggYSBncm91cF9yZXBsaWNhdGlvbl9ndGlkX2Fzc2lnbm1lbnRfYmxvY2tfc2l6ZSBvcHRpb24gdmFsdWUgJyVsbHUnIGRpZmZlcmVudCBmcm9tIHRoZSBncm91cCAnJWxsdScuIFRoZSBtZW1iZXIgd2lsbCBub3cgZXhpdCB0aGUgZ3JvdXAuAFRoZSBtZW1iZXIgaXMgY29uZmlndXJlZCB3aXRoIGEgdHJhbnNhY3Rpb24td3JpdGUtc2V0LWV4dHJhY3Rpb24gb3B0aW9uIHZhbHVlICclcycgZGlmZmVyZW50IGZyb20gdGhlIGdyb3VwICclcycuIFRoZSBtZW1iZXIgd2lsbCBub3cgZXhpdCB0aGUgZ3JvdXAuAFRoZSBtZW1iZXIgY29uZmlndXJhdGlvbiBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHRoZSBncm91cCBjb25maWd1cmF0aW9uLiBWYXJpYWJsZXMgc3VjaCBhcyBncm91cF9yZXBsaWNhdGlvbl9zaW5nbGVfcHJpbWFyeV9tb2RlIG9yIGdyb3VwX3JlcGxpY2F0aW9uX2VuZm9yY2VfdXBkYXRlX2V2ZXJ5d2hlcmVfY2hlY2tzIG11c3QgaGF2ZSB0aGUgc2FtZSB2YWx1ZSBvbiBldmVyeSBzZXJ2ZXIgaW4gdGhlIGdyb3VwLiAobWVtYmVyIGNvbmZpZ3VyYXRpb24gb3B0aW9uOiBbJXNdLCBncm91cCBjb25maWd1cmF0aW9uIG9wdGlvbjogWyVzXSkuAEVycm9yIHN0b3BwaW5nIGFsbCByZXBsaWNhdGlvbiBjaGFubmVscyB3aGlsZSBzZXJ2ZXIgd2FzIGxlYXZpbmcgdGhlIGdyb3VwLiAlcwBEZXRlY3RlZCBwcmV2aW91cyBSRVNFVCBTT1VSQ0UgaW52b2NhdGlvbiBvciBhbiBpc3N1ZSBleGlzdHMgaW4gdGhlIGdyb3VwIHJlcGxpY2F0aW9uIGFwcGxpZXIgcmVsYXkgbG9nLiBQdXJnaW5nIGV4aXN0aW5nIGFwcGxpZXIgbG9ncy4AVW5rbm93biBlcnJvciBvY2N1cnJlZCB3aGlsZSByZXNldHRpbmcgYXBwbGllcidzIG1vZHVsZSBsb2dzLgBGYWlsZWQgdG8gc2V0dXAgdGhlIGdyb3VwIHJlcGxpY2F0aW9uIGFwcGxpZXIgdGhyZWFkLgBFcnJvciB3aGlsZSBzdGFydGluZyB0aGUgZ3JvdXAgcmVwbGljYXRpb24gYXBwbGllciB0aHJlYWQARmFpbGVkIHRvIHN0b3AgdGhlIGdyb3VwIHJlcGxpY2F0aW9uIGFwcGxpZXIgdGhyZWFkLgBGYWlsZWQgdG8gZmV0Y2ggdHJhbnNhY3Rpb24gZGF0YSBjb250YWluaW5nIHJlcXVpcmVkIHRyYW5zYWN0aW9uIGluZm8gZm9yIGFwcGxpZXIAQ2FuJ3Qgc3RhcnQgcmVwbGljYSBJTyBUSFJFQUQgb2YgY2hhbm5lbCAnJXMnIHdoZW4gZ3JvdXAgcmVwbGljYXRpb24gaXMgcnVubmluZyB3aXRoIHNpbmdsZS1wcmltYXJ5IG1vZGUgYW5kIHRoZSBwcmltYXJ5IG1lbWJlciBpcyBub3Qga25vd24uAENhbid0IHN0YXJ0IHJlcGxpY2EgSU8gVEhSRUFEIG9mIGNoYW5uZWwgJyVzJyB3aGVuIGdyb3VwIHJlcGxpY2F0aW9uIGlzIHJ1bm5pbmcgd2l0aCBzaW5nbGUtcHJpbWFyeSBtb2RlIG9uIGEgc2Vjb25kYXJ5IG1lbWJlci4AQ2FuJ3Qgc3RhcnQgcmVwbGljYSBTUUwgVEhSRUFEIG9mIGNoYW5uZWwgJyVzJyB3aGVuIGdyb3VwIHJlcGxpY2F0aW9uIGlzIHJ1bm5pbmcgd2l0aCBzaW5nbGUtcHJpbWFyeSBtb2RlIGFuZCB0aGUgcHJpbWFyeSBtZW1iZXIgaXMgbm90IGtub3duLgBDYW4ndCBzdGFydCByZXBsaWNhIFNRTCBUSFJFQUQgb2YgY2hhbm5lbCAnJXMnIHdoZW4gZ3JvdXAgcmVwbGljYXRpb24gaXMgcnVubmluZyB3aXRoIHNpbmdsZS1wcmltYXJ5IG1vZGUgb24gYSBzZWNvbmRhcnkgbWVtYmVyLgBUYWJsZSAlcyBkb2VzIG5vdCB1c2UgdGhlIElubm9EQiBzdG9yYWdlIGVuZ2luZS4gVGhpcyBpcyBub3QgY29tcGF0aWJsZSB3aXRoIEdyb3VwIFJlcGxpY2F0aW9uLgBUYWJsZSAlcyBkb2VzIG5vdCBoYXZlIGFueSBQUklNQVJZIEtFWS4gVGhpcyBpcyBub3QgY29tcGF0aWJsZSB3aXRoIEdyb3VwIFJlcGxpY2F0aW9uLgBUYWJsZSAlcyBoYXMgYSBmb3JlaWduIGtleSB3aXRoICdDQVNDQURFJywgJ1NFVCBOVUxMJyBvciAnU0VUIERFRkFVTFQnIGNsYXVzZS4gVGhpcyBpcyBub3QgY29tcGF0aWJsZSB3aXRoIEdyb3VwIFJlcGxpY2F0aW9uLgBncm91cF9yZXBsaWNhdGlvbl9hdXRvX2luY3JlbWVudF9pbmNyZW1lbnQgaXMgcmVzZXQgdG8gJWx1AGF1dG9faW5jcmVtZW50X29mZnNldCBpcyByZXNldCB0byAlbHUAZ3JvdXBfcmVwbGljYXRpb25fYXV0b19pbmNyZW1lbnRfaW5jcmVtZW50IGlzIHNldCB0byAlbHUAYXV0b19pbmNyZW1lbnRfb2Zmc2V0IGlzIHNldCB0byAlbHUARmFpbGVkIHRvIGZldGNoIHRyYW5zYWN0aW9uIGNvbnRleHQgY29udGFpbmluZyByZXF1aXJlZCB0cmFuc2FjdGlvbiBpbmZvIGZvciBjZXJ0aWZpY2F0aW9uAEZhaWxlZCB0byBmZXRjaCBGb3JtYXRfZGVzY3JpcHRpb25fbG9nX2V2ZW50IGNvbnRhaW5pbmcgcmVxdWlyZWQgc2VydmVyIGluZm8gZm9yIGFwcGxpZXIARmFpbGVkIHRvIGZldGNoIFRyYW5zYWN0aW9uX2NvbnRleHRfbG9nX2V2ZW50IGNvbnRhaW5pbmcgcmVxdWlyZWQgdHJhbnNhY3Rpb24gaW5mbyBmb3IgY2VydGlmaWNhdGlvbgBGYWlsZWQgdG8gcmVhZCBzbmFwc2hvdCB2ZXJzaW9uIGZyb20gdHJhbnNhY3Rpb24gY29udGV4dCBldmVudCByZXF1aXJlZCBmb3IgY2VydGlmaWNhdGlvbgBGYWlsZWQgdG8gZmV0Y2ggR3RpZF9sb2dfZXZlbnQgY29udGFpbmluZyByZXF1aXJlZCB0cmFuc2FjdGlvbiBpbmZvIGZvciBjZXJ0aWZpY2F0aW9uAFVuYWJsZSB0byB1cGRhdGUgY2VydGlmaWNhdGlvbiByZXN1bHQgb24gc2VydmVyIHNpZGUsIHRocmVhZF9pZDogJWx1AFVuYWJsZSB0byBhZGQgZ3RpZCBpbmZvcm1hdGlvbiB0byB0aGUgZ3JvdXBfZ3RpZF9leGVjdXRlZCBzZXQgd2hlbiBndGlkIHdhcyBwcm92aWRlZCBmb3IgbG9jYWwgdHJhbnNhY3Rpb25zAFVuYWJsZSB0byBhZGQgZ3RpZCBpbmZvcm1hdGlvbiB0byB0aGUgZ3JvdXBfZ3RpZF9leGVjdXRlZCBzZXQgd2hlbiBubyBndGlkIHdhcyBwcm92aWRlZCBmb3IgbG9jYWwgdHJhbnNhY3Rpb25zAEZhaWxlZCB0byBub3RpZnkgY2VydGlmaWNhdGlvbiBvdXRjb21lAFVuYWJsZSB0byBhZGQgZ3RpZCBpbmZvcm1hdGlvbiB0byB0aGUgZ3JvdXBfZ3RpZF9leGVjdXRlZCBzZXQgd2hlbiBndGlkIHdhcyBwcm92aWRlZCBmb3IgcmVtb3RlIHRyYW5zYWN0aW9ucwBVbmFibGUgdG8gYWRkIGd0aWQgaW5mb3JtYXRpb24gdG8gdGhlIGdyb3VwX2d0aWRfZXhlY3V0ZWQgc2V0IHdoZW4gZ3RpZCB3YXMgbm90IHByb3ZpZGVkIGZvciByZW1vdGUgdHJhbnNhY3Rpb25zAEZhaWxlZCB0byBmZXRjaCBWaWV3X2NoYW5nZV9sb2dfZXZlbnQgY29udGFpbmluZyByZXF1aXJlZCBpbmZvIGZvciBjZXJ0aWZpY2F0aW9uAEVycm9yIHdoZW4gY29udGFjdGluZyB0aGUgc2VydmVyIHRvIGVuc3VyZSB0aGUgcHJvcGVyIGxvZ2dpbmcgb2YgYSBncm91cCBjaGFuZ2UgaW4gdGhlIGJpbmxvZwBUaW1lb3V0IHdoZW4gd2FpdGluZyBmb3IgdGhlIHNlcnZlciB0byBleGVjdXRlIGxvY2FsIHRyYW5zYWN0aW9ucyBpbiBvcmRlciBhc3N1cmUgdGhlIGdyb3VwIGNoYW5nZSBwcm9wZXIgbG9nZ2luZwBGYWlsZWQgdG8gZmV0Y2ggTG9nX2V2ZW50IGNvbnRhaW5pbmcgcmVxdWlyZWQgc2VydmVyIGluZm8gZm9yIGFwcGxpZXIAVW5hYmxlIHRvIHN0YXJ0IEdyb3VwIFJlcGxpY2F0aW9uLiBSZXBsaWNhdGlvbiBhcHBsaWVyIGluZnJhc3RydWN0dXJlIGlzIG5vdCBpbml0aWFsaXplZCBzaW5jZSB0aGUgc2VydmVyIHdhcyBzdGFydGVkIHdpdGggLS1pbml0aWFsaXplLCAtLWluaXRpYWxpemUtaW5zZWN1cmUgb3IgLS11cGdyYWRlPU1JTklNQUwgb24gYSBzZXJ2ZXIgdXBncmFkZS4ARmFpbGVkIHRvIGVzdGFibGlzaCBhbiBpbnRlcm5hbCBzZXJ2ZXIgY29ubmVjdGlvbiB0byBleGVjdXRlIHBsdWdpbiBvcGVyYXRpb25zAFNldHRpbmcgc3VwZXJfcmVhZF9vbmx5PU9OLgBTZXR0aW5nIHN1cGVyX3JlYWRfb25seT1PRkYuAGtpbGxlZCBzZXNzaW9uIGlkOiAlZCBzdGF0dXM6ICVkAGtpbGxlZCBmYWlsZWQgaWQ6ICVkIGZhaWxlZDogJWQASW50ZXJuYWwgcXVlcnk6ICVzIHJlc3VsdCBpbiBlcnJvci4gRXJyb3IgbnVtYmVyOiAlbGQARXJyb3IgY29weWluZyBmcm9tIGVtcHR5IHN0cmluZyAAUXVlcnkgZXhlY3V0aW9uIHJlc3VsdGVkIGluIGZhaWx1cmUuIGVycm5vOiAlZABVbmFibGUgdG8gY3JlYXRlIGEgc2Vzc2lvbiBmb3IgZXhlY3V0aW5nIHRoZSBxdWVyaWVzIG9uIHRoZSBzZXJ2ZXIAVGhlIG1lbWJlciB3aXRoIGFkZHJlc3MgJXM6JXUgaGFzIHVuZXhwZWN0ZWRseSBkaXNhcHBlYXJlZCwga2lsbGluZyB0aGUgY3VycmVudCBncm91cCByZXBsaWNhdGlvbiByZWNvdmVyeSBjb25uZWN0aW9uAE1heGltdW0gbnVtYmVyIG9mIHJldHJpZXMgd2hlbiB0cnlpbmcgdG8gY29ubmVjdCB0byBhIGRvbm9yIHJlYWNoZWQuIEFib3J0aW5nIGdyb3VwIHJlcGxpY2F0aW9uIGluY3JlbWVudGFsIHJlY292ZXJ5LgBBbGwgZG9ub3JzIGxlZnQuIEFib3J0aW5nIGdyb3VwIHJlcGxpY2F0aW9uIGluY3JlbWVudGFsIHJlY292ZXJ5LgBFc3RhYmxpc2hpbmcgZ3JvdXAgcmVjb3ZlcnkgY29ubmVjdGlvbiB3aXRoIGEgcG9zc2libGUgZG9ub3IuIEF0dGVtcHQgJWQvJWQAUmV0cnlpbmcgZ3JvdXAgcmVjb3ZlcnkgY29ubmVjdGlvbiB3aXRoIGFub3RoZXIgZG9ub3IuIEF0dGVtcHQgJWQvJWQATm8gdmFsaWQgZG9ub3JzIGV4aXN0IGluIHRoZSBncm91cCwgcmV0cnlpbmcARXJyb3Igd2hlbiBjb25maWd1cmluZyB0aGUgYXN5bmNocm9ub3VzIHJlY292ZXJ5IGNoYW5uZWwgY29ubmVjdGlvbiB0byB0aGUgZG9ub3IuAEVzdGFibGlzaGluZyBjb25uZWN0aW9uIHRvIGEgZ3JvdXAgcmVwbGljYXRpb24gcmVjb3ZlcnkgZG9ub3IgJXMgYXQgJXMgcG9ydDogJWQuAEVycm9yIHdoaWxlIGNyZWF0aW5nIHRoZSBncm91cCByZXBsaWNhdGlvbiByZWNvdmVyeSBjaGFubmVsIHdpdGggZG9ub3IgJXMgYXQgJXMgcG9ydDogJWQuAFRoZXJlIHdhcyBhbiBlcnJvciB3aGVuIGNvbm5lY3RpbmcgdG8gdGhlIGRvbm9yIHNlcnZlci4gUGxlYXNlIGNoZWNrIHRoYXQgZ3JvdXBfcmVwbGljYXRpb25fcmVjb3ZlcnkgY2hhbm5lbCBjcmVkZW50aWFscyBhbmQgYWxsIE1FTUJFUl9IT1NUIGNvbHVtbiB2YWx1ZXMgb2YgcGVyZm9ybWFuY2Vfc2NoZW1hLnJlcGxpY2F0aW9uX2dyb3VwX21lbWJlcnMgdGFibGUgYXJlIGNvcnJlY3QgYW5kIEROUyByZXNvbHZhYmxlLgBGb3IgZGV0YWlscyBwbGVhc2UgY2hlY2sgcGVyZm9ybWFuY2Vfc2NoZW1hLnJlcGxpY2F0aW9uX2Nvbm5lY3Rpb25fc3RhdHVzIHRhYmxlIGFuZCBlcnJvciBsb2cgbWVzc2FnZXMgb2YgUmVwbGljYSBJL08gZm9yIGNoYW5uZWwgZ3JvdXBfcmVwbGljYXRpb25fcmVjb3ZlcnkuAEVycm9yIHdoaWxlIHN0YXJ0aW5nIHRoZSBncm91cCByZXBsaWNhdGlvbiBpbmNyZW1lbnRhbCByZWNvdmVyeSByZWNlaXZlci9hcHBsaWVyIHRocmVhZHMAVGVybWluYXRpbmcgZXhpc3RpbmcgZ3JvdXAgcmVwbGljYXRpb24gZG9ub3IgY29ubmVjdGlvbiBhbmQgcHVyZ2luZyB0aGUgY29ycmVzcG9uZGluZyBsb2dzLgBFcnJvciB3aGVuIHN0b3BwaW5nIHRoZSBncm91cCByZXBsaWNhdGlvbiBpbmNyZW1lbnRhbCByZWNvdmVyeSdzIGRvbm9yIGNvbm5lY3Rpb24ARXJyb3Igd2hlbiBwdXJnaW5nIHRoZSBncm91cCByZXBsaWNhdGlvbiByZWNvdmVyeSdzIHJlbGF5IGxvZ3MAVW5hYmxlIHRvIGtpbGwgdGhlIGN1cnJlbnQgZ3JvdXAgcmVwbGljYXRpb24gcmVjb3ZlcnkgZG9ub3IgY29ubmVjdGlvbiBhZnRlciBhbiBhcHBsaWVyIGVycm9yLiBJbmNyZW1lbnRhbCByZWNvdmVyeSB3aWxsIHNodXRkb3duLgBVbmFibGUgdG8ga2lsbCB0aGUgY3VycmVudCBncm91cCByZXBsaWNhdGlvbiByZWNvdmVyeSBkb25vciBjb25uZWN0aW9uIGR1cmluZyBmYWlsb3Zlci4gSW5jcmVtZW50YWwgcmVjb3Zlcnkgd2lsbCBzaHV0ZG93bi4AVW5leHBlY3RlZCBlcnJvciB3aGVuIG5vdGlmeWluZyBhbiBpbnRlcm5hbCBjb21wb25lbnQgbmFtZWQgJXMgcmVnYXJkaW5nIGEgZ3JvdXAgbWVtYmVyc2hpcCBldmVudC4AQW4gdW5kZWZpbmVkIGVycm9yIHdhcyBmb3VuZCB3aGlsZSBicm9hZGNhc3RpbmcgYW4gaW50ZXJuYWwgZ3JvdXAgbWVtYmVyc2hpcCBub3RpZmljYXRpb24hIFRoaXMgaXMgbGlrZWx5IHRvIGhhcHBlbiBpZiB5b3VyIGNvbXBvbmVudHMgb3IgcGx1Z2lucyBhcmUgbm90IHByb3Blcmx5IGxvYWRlZCBvciBhcmUgbWFsZnVuY3Rpb25pbmchAEFuIHVuZGVmaW5lZCBlcnJvciB3YXMgZm91bmQgd2hpbGUgYnJvYWRjYXN0aW5nIGFuIGludGVybmFsIGdyb3VwIG1lbWJlciBzdGF0dXMgbm90aWZpY2F0aW9uISBUaGlzIGlzIGxpa2VseSB0byBoYXBwZW4gaWYgeW91ciBjb21wb25lbnRzIG9yIHBsdWdpbnMgYXJlIG5vdCBwcm9wZXJseSBsb2FkZWQgb3IgYXJlIG1hbGZ1bmN0aW9uaW5nIQBObyBtZW1vcnkgdG8gZ2VuZXJhdGUgd3JpdGUgaWRlbnRpZmljYXRpb24gaGFzaABCYXNlIDY0IGVuY29kaW5nIG9mIHRoZSB3cml0ZSBpZGVudGlmaWNhdGlvbiBoYXNoIGZhaWxlZABCaW5sb2cgZm9ybWF0IHNob3VsZCBiZSBST1cgZm9yIEdyb3VwIFJlcGxpY2F0aW9uAGJpbmxvZ19jaGVja3N1bSBzaG91bGQgYmUgTk9ORSBmb3IgR3JvdXAgUmVwbGljYXRpb24AQSB0cmFuc2FjdGlvbl93cml0ZV9zZXRfZXh0cmFjdGlvbiBhbGdvcml0aG0gc2hvdWxkIGJlIHNlbGVjdGVkIHdoZW4gcnVubmluZyBHcm91cCBSZXBsaWNhdGlvbgBUcmFuc2FjdGlvbiBpc29sYXRpb24gbGV2ZWwgKHR4X2lzb2xhdGlvbikgaXMgc2V0IHRvIFNFUklBTElaQUJMRSwgd2hpY2ggaXMgbm90IGNvbXBhdGlibGUgd2l0aCBHcm91cCBSZXBsaWNhdGlvbgBUcmFuc2FjdGlvbiBjYW5ub3QgYmUgZXhlY3V0ZWQgd2hpbGUgR3JvdXAgUmVwbGljYXRpb24gaXMgc3RvcHBpbmcuAFRyYW5zYWN0aW9uIGNhbm5vdCBiZSBleGVjdXRlZCB3aGlsZSBHcm91cCBSZXBsaWNhdGlvbiBpcyByZWNvdmVyaW5nLiBUcnkgYWdhaW4gd2hlbiB0aGUgc2VydmVyIGlzIE9OTElORS4AVHJhbnNhY3Rpb24gY2Fubm90IGJlIGV4ZWN1dGVkIHdoaWxlIEdyb3VwIFJlcGxpY2F0aW9uIGlzIG9uIEVSUk9SIHN0YXRlLiBDaGVjayBmb3IgZXJyb3JzIGFuZCByZXN0YXJ0IHRoZSBwbHVnaW4AVHJhbnNhY3Rpb24gY2Fubm90IGJlIGV4ZWN1dGVkIHdoaWxlIEdyb3VwIFJlcGxpY2F0aW9uIGlzIE9GRkxJTkUuIENoZWNrIGZvciBlcnJvcnMgYW5kIHJlc3RhcnQgdGhlIHBsdWdpbgBXZSBjYW4gb25seSB1c2Ugb25lIGNhY2hlIHR5cGUgYXQgYSB0aW1lIG9uIHNlc3Npb24gJXUARmFpbGVkIHRvIHJlaW5pdCBiaW5sb2cgY2FjaGUgbG9nIGZvciByZWFkIG9uIHNlc3Npb24gJXUARmFpbGVkIHRvIGNyZWF0ZSB0aGUgY29udGV4dCBvZiB0aGUgY3VycmVudCB0cmFuc2FjdGlvbiBvbiBzZXNzaW9uICV1AEZhaWxlZCB0byBleHRyYWN0IHRoZSBzZXQgb2YgaXRlbXMgd3JpdHRlbiBkdXJpbmcgdGhlIGV4ZWN1dGlvbiBvZiB0aGUgY3VycmVudCB0cmFuc2FjdGlvbiBvbiBzZXNzaW9uICV1AEZhaWxlZCB0byBnYXRoZXIgdGhlIHNldCBvZiBpdGVtcyB3cml0dGVuIGR1cmluZyB0aGUgZXhlY3V0aW9uIG9mIHRoZSBjdXJyZW50IHRyYW5zYWN0aW9uIG9uIHNlc3Npb24gJXUARXJyb3Igb24gc2Vzc2lvbiAldS4gVHJhbnNhY3Rpb24gb2Ygc2l6ZSAlbGx1IGV4Y2VlZHMgc3BlY2lmaWVkIGxpbWl0ICVsdS4gVG8gaW5jcmVhc2UgdGhlIGxpbWl0IHBsZWFzZSBhZGp1c3QgZ3JvdXBfcmVwbGljYXRpb25fdHJhbnNhY3Rpb25fc2l6ZV9saW1pdCBvcHRpb24uAEVycm9yIHdoaWxlIHJlLWluaXRpYWxpemluZyBhbiBpbnRlcm5hbCBjYWNoZSwgZm9yIHJlYWQgb3BlcmF0aW9ucywgb24gc2Vzc2lvbiAldQBFcnJvciB3aGlsZSBhcHBlbmRpbmcgZGF0YSB0byBhbiBpbnRlcm5hbCBjYWNoZSBvbiBzZXNzaW9uICV1AEVycm9yIHdoaWxlIHdyaXRpbmcgdG8gdHJhbnNhY3Rpb24gbWVzc2FnZSBvbiBzZXNzaW9uICV1AFVuYWJsZSB0byByZWdpc3RlciBmb3IgZ2V0dGluZyBub3RpZmljYXRpb25zIHJlZ2FyZGluZyB0aGUgb3V0Y29tZSBvZiB0aGUgdHJhbnNhY3Rpb24gb24gc2Vzc2lvbiAldQBFcnJvciBicm9hZGNhc3RpbmcgdHJhbnNhY3Rpb24gdG8gdGhlIGdyb3VwIG9uIHNlc3Npb24gJXUuIE1lc3NhZ2UgaXMgdG9vIGJpZy4ARXJyb3Igd2hpbGUgYnJvYWRjYXN0aW5nIHRoZSB0cmFuc2FjdGlvbiB0byB0aGUgZ3JvdXAgb24gc2Vzc2lvbiAldQBFcnJvciB3aGlsZSB3YWl0aW5nIGZvciBjb25mbGljdCBkZXRlY3Rpb24gcHJvY2VkdXJlIHRvIGZpbmlzaCBvbiBzZXNzaW9uICV1AEVycm9yIHdoaWxlIHJlLWluaXRpYWxpemluZyBhbiBpbnRlcm5hbCBjYWNoZSwgZm9yIHdyaXRlIG9wZXJhdGlvbnMsIG9uIHNlc3Npb24gJXUARmFpbGVkIHRvIGNyZWF0ZSBncm91cCByZXBsaWNhdGlvbiBjb21taXQgY2FjaGUgb24gc2Vzc2lvbiAldQBGYWlsZWQgdG8gcmVpbml0IGdyb3VwIHJlcGxpY2F0aW9uIGNvbW1pdCBjYWNoZSBmb3Igd3JpdGUgb24gc2Vzc2lvbiAldQBBIHByZXZpb3VzIHJlY292ZXJ5IHNlc3Npb24gaXMgc3RpbGwgcnVubmluZy4gUGxlYXNlIHN0b3AgdGhlIGdyb3VwIHJlcGxpY2F0aW9uIHBsdWdpbiBhbmQgd2FpdCBmb3IgaXQgdG8gc3RvcABGYXRhbCBlcnJvciBkdXJpbmcgdGhlIGluY3JlbWVudGFsIHJlY292ZXJ5IHByb2Nlc3Mgb2YgR3JvdXAgUmVwbGljYXRpb24uIFRoZSBzZXJ2ZXIgd2lsbCBsZWF2ZSB0aGUgZ3JvdXAuAEVycm9yIHN0b3BwaW5nIGFsbCByZXBsaWNhdGlvbiBjaGFubmVscyB3aGlsZSBzZXJ2ZXIgd2FzIGxlYXZpbmcgdGhlIGdyb3VwLiAlcwBVbmFibGUgdG8gZXZhbHVhdGUgdGhlIGdyb3VwIHJlcGxpY2F0aW9uIGFwcGxpZXIgZXhlY3V0aW9uIHN0YXR1cy4gR3JvdXAgcmVwbGljYXRpb24gcmVjb3Zlcnkgd2lsbCBzaHV0ZG93biB0byBhdm9pZCBkYXRhIGNvcnJ1cHRpb24uAE9ubHkgb25lIHNlcnZlciBhbGl2ZS4gRGVjbGFyaW5nIHRoaXMgc2VydmVyIGFzIG9ubGluZSB3aXRoaW4gdGhlIHJlcGxpY2F0aW9uIGdyb3VwAEVycm9yIHdoZW4gcHJvY2Vzc2luZyBjZXJ0aWZpY2F0aW9uIGluZm9ybWF0aW9uIGluIHRoZSBpbmNyZW1lbnRhbCByZWNvdmVyeSBwcm9jZXNzAFVuYWJsZSB0byBlbnN1cmUgdGhlIGV4ZWN1dGlvbiBvZiBncm91cCB0cmFuc2FjdGlvbnMgcmVjZWl2ZWQgZHVyaW5nIHJlY292ZXJ5LgBFcnJvciB3aGlsZSBzZW5kaW5nIG1lc3NhZ2UgaW4gdGhlIGdyb3VwIHJlcGxpY2F0aW9uIGluY3JlbWVudGFsIHJlY292ZXJ5IHByb2Nlc3MuAFVuYWJsZSB0byByZWFkIHRoZSBzZXJ2ZXIgdmFsdWUgZm9yIHRoZSBzdXBlcl9yZWFkX29ubHkgdmFyaWFibGUuAFVuYWJsZSB0byByZWFkIHRoZSBzZXJ2ZXIgdmFsdWVzIGZvciB0aGUgcmVhZF9vbmx5IGFuZCBzdXBlcl9yZWFkX29ubHkgdmFyaWFibGVzLgBVbmFibGUgdG8gcmVzZXQgdGhlIHNlcnZlciByZWFkIG1vZGUgc2V0dGluZ3MuIFRyeSB0byByZXNldCB0aGVtIG1hbnVhbGx5LgBEdWUgdG8gYSBwbHVnaW4gZXJyb3IsIHNvbWUgdHJhbnNhY3Rpb25zIHdlcmUgdW5hYmxlIHRvIGJlIGNlcnRpZmllZCBhbmQgd2lsbCBub3cgcm9sbGJhY2suAEVycm9yIHdoZW4gdHJ5aW5nIHRvIHVuYmxvY2sgbm9uIGNlcnRpZmllZCBvciBjb25zaXN0ZW50IHRyYW5zYWN0aW9ucy4gQ2hlY2sgZm9yIGNvbnNpc3RlbmN5IGVycm9ycyB3aGVuIHJlc3RhcnRpbmcgdGhlIHNlcnZpY2UAVGhpcyBzZXJ2ZXIgaXMgd29ya2luZyBhcyBzZWNvbmRhcnkgbWVtYmVyIHdpdGggcHJpbWFyeSBtZW1iZXIgYWRkcmVzcyAlczoldS4AVW5hYmxlIHRvIHN0YXJ0IEdyb3VwIFJlcGxpY2F0aW9uLiBSZXBsaWNhdGlvbiBhcHBsaWVyIGluZnJhc3RydWN0dXJlIGlzIG5vdCBpbml0aWFsaXplZCBzaW5jZSB0aGUgc2VydmVyIHdhcyBzdGFydGVkIHdpdGggc2VydmVyX2lkPTAuIFBsZWFzZSwgcmVzdGFydCB0aGUgc2VydmVyIHdpdGggc2VydmVyX2lkIGxhcmdlciB0aGFuIDAuAGdyb3VwX3JlcGxpY2F0aW9uX2ZvcmNlX21lbWJlcnMgbXVzdCBiZSBlbXB0eSBvbiBncm91cCBzdGFydC4gQ3VycmVudCB2YWx1ZTogJyVzJwBJdCB3YXMgbm90IHBvc3NpYmxlIHRvIGd1YXJhbnRlZSB0aGUgaW5pdGlhbGl6YXRpb24gb2YgcGx1Z2luIHN0cnVjdHVyZXMgb24gc2VydmVyIHN0YXJ0AENvdWxkIG5vdCBlbmFibGUgdGhlIHNlcnZlciByZWFkIG9ubHkgbW9kZSBhbmQgZ3VhcmFudGVlIGEgc2FmZSByZWNvdmVyeSBleGVjdXRpb24ARXJyb3Igb24gZ3JvdXAgY29tbXVuaWNhdGlvbiBlbmdpbmUgaW5pdGlhbGl6YXRpb24AQ2FuJ3Qgc3RhcnQgZ3JvdXAgcmVwbGljYXRpb24gb24gc2Vjb25kYXJ5IG1lbWJlciB3aXRoIHNpbmdsZS1wcmltYXJ5IG1vZGUgd2hpbGUgYXN5bmNocm9ub3VzIHJlcGxpY2F0aW9uIGNoYW5uZWxzIGFyZSBydW5uaW5nLgBFcnJvciBvbiBncm91cCBjb21tdW5pY2F0aW9uIGVuZ2luZSBzdGFydABUaW1lb3V0IG9uIHdhaXQgZm9yIHZpZXcgYWZ0ZXIgam9pbmluZyBncm91cABFcnJvciBjYWxsaW5nIGdyb3VwIGNvbW11bmljYXRpb24gaW50ZXJmYWNlcwBNZW1iZXIgc2VydmVyX3V1aWQgaXMgaW5jb21wYXRpYmxlIHdpdGggdGhlIGdyb3VwLiBTZXJ2ZXJfdXVpZCAlcyBtYXRjaGVzIGdyb3VwX3JlcGxpY2F0aW9uX2dyb3VwX25hbWUgJXMuAE1lbWJlciBjb25maWd1cmF0aW9uOiBtZW1iZXJfaWQ6ICVsdTsgbWVtYmVyX3V1aWQ6ICIlcyI7IHNpbmdsZS1wcmltYXJ5IG1vZGU6ICIlcyI7IGdyb3VwX3JlcGxpY2F0aW9uX2F1dG9faW5jcmVtZW50X2luY3JlbWVudDogJWx1OyBncm91cF9yZXBsaWNhdGlvbl92aWV3X2NoYW5nZV91dWlkOiAiJXMiOwBVbmFibGUgdG8gY29uZmlybSB3aGV0aGVyIHRoZSBzZXJ2ZXIgaGFzIGxlZnQgdGhlIGdyb3VwIG9yIG5vdC4gQ2hlY2sgcGVyZm9ybWFuY2Vfc2NoZW1hLnJlcGxpY2F0aW9uX2dyb3VwX21lbWJlcnMgdG8gY2hlY2sgZ3JvdXAgbWVtYmVyc2hpcCBpbmZvcm1hdGlvbi4AU2tpcHBpbmcgbGVhdmUgb3BlcmF0aW9uOiBjb25jdXJyZW50IGF0dGVtcHQgdG8gbGVhdmUgdGhlIGdyb3VwIGlzIG9uLWdvaW5nLgBTa2lwcGluZyBsZWF2ZSBvcGVyYXRpb246IG1lbWJlciBhbHJlYWR5IGxlZnQgdGhlIGdyb3VwLgBHb2luZyB0byB3YWl0IGZvciB2aWV3IG1vZGlmaWNhdGlvbgBXaGlsZSBsZWF2aW5nIHRoZSBncm91cCBkdWUgdG8gYSBzdG9wLCBzaHV0ZG93biBvciBmYWlsdXJlIHRoZXJlIHdhcyBhIHRpbWVvdXQgcmVjZWl2aW5nIGEgdmlldyBjaGFuZ2UuIFRoaXMgY2FuIGxlYWQgdG8gYSBwb3NzaWJsZSBpbmNvbnNpc3RlbnQgc3RhdGUuIENoZWNrIHRoZSBsb2cgZm9yIG1vcmUgZGV0YWlscwBSZXF1ZXN0aW5nIHRvIGxlYXZlIHRoZSBncm91cCBkZXNwaXRlIG9mIG5vdCBiZWluZyBhIG1lbWJlcgBQbHVnaW4gJ2dyb3VwX3JlcGxpY2F0aW9uJyBpcyBzdG9wcGluZy4AUGx1Z2luICdncm91cF9yZXBsaWNhdGlvbicgaGFzIGJlZW4gc3RvcHBlZC4AT24gcGx1Z2luIHNodXRkb3duIGl0IHdhcyBub3QgcG9zc2libGUgdG8gZW5hYmxlIHRoZSBzZXJ2ZXIgcmVhZCBvbmx5IG1vZGUuIExvY2FsIHRyYW5zYWN0aW9ucyB3aWxsIGJlIGFjY2VwdGVkIGFuZCBjb21taXR0ZWQuAE9uIHNodXRkb3duIHRoZXJlIHdhcyBhIHRpbWVvdXQgb24gdGhlIEdyb3VwIFJlcGxpY2F0aW9uIHJlY292ZXJ5IG1vZHVsZSB0ZXJtaW5hdGlvbi4gQ2hlY2sgdGhlIGxvZyBmb3IgbW9yZSBkZXRhaWxzAE9uIHNodXRkb3duIHRoZXJlIHdhcyBhIHRpbWVvdXQgb24gdGhlIEdyb3VwIFJlcGxpY2F0aW9uIGFwcGxpZXIgdGVybWluYXRpb24uAFVuZXhwZWN0ZWQgZmFpbHVyZSB3aGlsZSBzaHV0dGluZyBkb3duIHJlZ2lzdHJ5IG1vZHVsZSEARmFpbHVyZSBkdXJpbmcgR3JvdXAgUmVwbGljYXRpb24gaGFuZGxlciBpbml0aWFsaXphdGlvbgBGYWlsdXJlIHdoZW4gcmVnaXN0ZXJpbmcgdGhlIHNlcnZlciBzdGF0ZSBvYnNlcnZlcnMARmFpbHVyZSB3aGVuIHJlZ2lzdGVyaW5nIHRoZSB0cmFuc2FjdGlvbnMgc3RhdGUgb2JzZXJ2ZXJzAEZhaWx1cmUgd2hlbiByZWdpc3RlcmluZyB0aGUgYmlubG9nIHN0YXRlIG9ic2VydmVycwBVbmFibGUgdG8gc3RhcnQgR3JvdXAgUmVwbGljYXRpb24gb24gYm9vdABGYWlsdXJlIHdoZW4gc3RvcHBpbmcgR3JvdXAgUmVwbGljYXRpb24gb24gcGx1Z2luIHVuaW5zdGFsbABGYWlsdXJlIHdoZW4gdW5yZWdpc3RlcmluZyB0aGUgc2VydmVyIHN0YXRlIG9ic2VydmVycwBGYWlsdXJlIHdoZW4gdW5yZWdpc3RlcmluZyB0aGUgdHJhbnNhY3Rpb25zIHN0YXRlIG9ic2VydmVycwBGYWlsdXJlIHdoZW4gdW5yZWdpc3RlcmluZyB0aGUgYmlubG9nIHN0YXRlIG9ic2VydmVycwBBbGwgR3JvdXAgUmVwbGljYXRpb24gc2VydmVyIG9ic2VydmVycyBoYXZlIGJlZW4gc3VjY2Vzc2Z1bGx5IHVucmVnaXN0ZXJlZABVbmFibGUgdG8gcGFyc2UgdGhlIGdyb3VwX3JlcGxpY2F0aW9uX2dyb3VwX25hbWUuAFVuYWJsZSB0byBwYXJzZSB0aGUgZ3JvdXBfcmVwbGljYXRpb25fZ3JvdXBfbmFtZS4AQ2Fubm90IHN0YXJ0IHRoZSBHcm91cCBSZXBsaWNhdGlvbiBhcHBsaWVyIGFzIGEgcHJldmlvdXMgc2h1dGRvd24gaXMgc3RpbGwgcnVubmluZzogVGhlIHRocmVhZCB3aWxsIHN0b3Agb25jZSBpdHMgdGFzayBpcyBjb21wbGV0ZS4AVW5hYmxlIHRvIGluaXRpYWxpemUgdGhlIEdyb3VwIFJlcGxpY2F0aW9uIGFwcGxpZXIgbW9kdWxlLgBHcm91cCBSZXBsaWNhdGlvbiBhcHBsaWVyIG1vZHVsZSBzdWNjZXNzZnVsbHkgaW5pdGlhbGl6ZWQhAEdyb3VwIGNvbW11bmljYXRpb24gU1NMIGNvbmZpZ3VyYXRpb246IGdyb3VwX3JlcGxpY2F0aW9uX3NzbF9tb2RlOiAiJXMiOyBzZXJ2ZXJfa2V5X2ZpbGU6ICIlcyI7IHNlcnZlcl9jZXJ0X2ZpbGU6ICIlcyI7IGNsaWVudF9rZXlfZmlsZTogIiVzIjsgY2xpZW50X2NlcnRfZmlsZTogIiVzIjsgY2FfZmlsZTogIiVzIjsgY2FfcGF0aDogIiVzIjsgY2lwaGVyOiAiJXMiOyB0bHNfdmVyc2lvbjogIiVzIjsgdGxzX2NpcGhlcnN1aXRlczogIiVzIjsgY3JsX2ZpbGU6ICIlcyI7IGNybF9wYXRoOiAiJXMiOyBzc2xfZmlwc19tb2RlOiAiJXMiAE15U1FMIHNlcnZlciBkb2VzIG5vdCBoYXZlIFNTTCBzdXBwb3J0IGFuZCBncm91cF9yZXBsaWNhdGlvbl9zc2xfbW9kZSBpcyAiJXMiLCBTVEFSVCBHUk9VUF9SRVBMSUNBVElPTiB3aWxsIGFib3J0AEdyb3VwIGNvbW11bmljYXRpb24gU1NMIGNvbmZpZ3VyYXRpb246IGdyb3VwX3JlcGxpY2F0aW9uX3NzbF9tb2RlOiAiJXMiAFVuYWJsZSB0byBpbml0aWFsaXplIHRoZSBncm91cCBjb21tdW5pY2F0aW9uIGVuZ2luZQBCaW5sb2cgbXVzdCBiZSBlbmFibGVkIGZvciBHcm91cCBSZXBsaWNhdGlvbgBHdGlkIG1vZGUgc2hvdWxkIGJlIE9OIGZvciBHcm91cCBSZXBsaWNhdGlvbgBMT0dfUkVQTElDQV9VUERBVEVTIHNob3VsZCBiZSBPTiBmb3IgR3JvdXAgUmVwbGljYXRpb24ARXh0cmFjdGlvbiBvZiB0cmFuc2FjdGlvbiB3cml0ZSBzZXRzIHJlcXVpcmVzIGFuIGhhc2ggYWxnb3JpdGhtIGNvbmZpZ3VyYXRpb24uIFBsZWFzZSwgZG91YmxlIGNoZWNrIHRoYXQgdGhlIHBhcmFtZXRlciB0cmFuc2FjdGlvbi13cml0ZS1zZXQtZXh0cmFjdGlvbiBpcyBzZXQgdG8gYSB2YWxpZCBhbGdvcml0aG0uAEFwcGxpZXIgbWV0YWRhdGEgcmVwb3NpdG9yeSBtdXN0IGJlIHNldCB0byBUQUJMRQBDb25uZWN0aW9uIG1ldGFkYXRhIHJlcG9zaXRvcnkgbXVzdCBiZSBzZXQgdG8gVEFCTEUuAEluIG9yZGVyIHRvIHVzZSBwYXJhbGxlbCBhcHBsaWVyIG9uIEdyb3VwIFJlcGxpY2F0aW9uLCBwYXJhbWV0ZXIgcmVwbGljYS1wYXJhbGxlbC10eXBlIG11c3QgYmUgc2V0IHRvICdMT0dJQ0FMX0NMT0NLJy4AR3JvdXAgUmVwbGljYXRpb24gcmVxdWlyZXMgcmVwbGljYS1wcmVzZXJ2ZS1jb21taXQtb3JkZXIgdG8gYmUgc2V0IHRvIE9OIHdoZW4gdXNpbmcgbW9yZSB0aGFuIDEgYXBwbGllciB0aHJlYWRzLgBJdCBpcyBub3QgYWxsb3dlZCB0byBydW4gc2luZ2xlIHByaW1hcnkgbW9kZSB3aXRoICdncm91cF9yZXBsaWNhdGlvbl9lbmZvcmNlX3VwZGF0ZV9ldmVyeXdoZXJlX2NoZWNrcycgZW5hYmxlZC4AZXJyb3JfbWVzc2FnZTogJXMAVGhlIGdyb3VwX3JlcGxpY2F0aW9uX2dyb3VwX25hbWUgb3B0aW9uIGlzIG1hbmRhdG9yeQBUaGUgZ3JvdXBfcmVwbGljYXRpb25fZ3JvdXBfbmFtZSAnJXMnIGlzIG5vdCBhIHZhbGlkIFVVSUQsIGl0cyBsZW5ndGggaXMgdG9vIGJpZwBUaGUgZ3JvdXBfcmVwbGljYXRpb25fZ3JvdXBfbmFtZSAnJXMnIGlzIG5vdCBhIHZhbGlkIFVVSUQAZ3JvdXBfcmVwbGljYXRpb25fZmxvd19jb250cm9sX21pbl9xdW90YSBjYW5ub3QgYmUgbGFyZ2VyIHRoYW4gZ3JvdXBfcmVwbGljYXRpb25fZmxvd19jb250cm9sX21heF9xdW90YQBncm91cF9yZXBsaWNhdGlvbl9mbG93X2NvbnRyb2xfbWluX3JlY292ZXJ5X3F1b3RhIGNhbm5vdCBiZSBsYXJnZXIgdGhhbiBncm91cF9yZXBsaWNhdGlvbl9mbG93X2NvbnRyb2xfbWF4X3F1b3RhAGdyb3VwX3JlcGxpY2F0aW9uX2Zsb3dfY29udHJvbF9tYXhfcXVvdGEgY2Fubm90IGJlIHNtYWxsZXIgdGhhbiBncm91cF9yZXBsaWNhdGlvbl9mbG93X2NvbnRyb2xfbWluX3F1b3RhIG9yIGdyb3VwX3JlcGxpY2F0aW9uX2Zsb3dfY29udHJvbF9taW5fcmVjb3ZlcnlfcXVvdGEAVGhlIGdpdmVuIHZhbHVlIGZvciByZWNvdmVyeSBzc2wgb3B0aW9uICdncm91cF9yZXBsaWNhdGlvbl8lcycgaXMgaW52YWxpZCBhcyBpdHMgbGVuZ3RoIGlzIGJleW9uZCB0aGUgbGltaXQAVGhlcmUgaXMgb25lIGdyb3VwX3JlcGxpY2F0aW9uX2ZvcmNlX21lbWJlcnMgb3BlcmF0aW9uIGFscmVhZHkgb25nb2luZwBncm91cF9yZXBsaWNhdGlvbl9mb3JjZV9tZW1iZXJzIGNhbiBvbmx5IGJlIHVwZGF0ZWQgd2hlbiBHcm91cCBSZXBsaWNhdGlvbiBpcyBydW5uaW5nIGFuZCBhIG1ham9yaXR5IG9mIHRoZSBtZW1iZXJzIGFyZSB1bnJlYWNoYWJsZQBJbml0aWFsaXplZCBncm91cCBjb21tdW5pY2F0aW9uIHdpdGggY29uZmlndXJhdGlvbjogZ3JvdXBfcmVwbGljYXRpb25fZ3JvdXBfbmFtZTogJyVzJzsgZ3JvdXBfcmVwbGljYXRpb25fbG9jYWxfYWRkcmVzczogJyVzJzsgZ3JvdXBfcmVwbGljYXRpb25fZ3JvdXBfc2VlZHM6ICclcyc7IGdyb3VwX3JlcGxpY2F0aW9uX2Jvb3RzdHJhcF9ncm91cDogJyVzJzsgZ3JvdXBfcmVwbGljYXRpb25fcG9sbF9zcGluX2xvb3BzOiAlbHU7IGdyb3VwX3JlcGxpY2F0aW9uX2NvbXByZXNzaW9uX3RocmVzaG9sZDogJWx1OyBncm91cF9yZXBsaWNhdGlvbl9pcF9hbGxvd2xpc3Q6ICclcyc7IGdyb3VwX3JlcGxpY2F0aW9uX2NvbW11bmljYXRpb25fZGVidWdfb3B0aW9uczogJyVzJzsgZ3JvdXBfcmVwbGljYXRpb25fbWVtYmVyX2V4cGVsX3RpbWVvdXQ6ICclbHUnOyBncm91cF9yZXBsaWNhdGlvbl9jb21tdW5pY2F0aW9uX21heF9tZXNzYWdlX3NpemU6ICVsdTsgZ3JvdXBfcmVwbGljYXRpb25fbWVzc2FnZV9jYWNoZV9zaXplOiAnJWx1dTsgZ3JvdXBfcmVwbGljYXRpb25fY29tbXVuaWNhdGlvbl9zdGFjazogJyVsdScAVW5rbm93biBncm91cCByZXBsaWNhdGlvbiBhcHBsaWVyIHBpcGVsaW5lIHJlcXVlc3RlZABVbmFibGUgdG8gYm9vdHN0cmFwIGdyb3VwIHJlcGxpY2F0aW9uIGV2ZW50IGhhbmRsaW5nIGluZnJhc3RydWN0dXJlLiBVbmtub3duIGhhbmRsZXIgdHlwZTogJWQAT25lIG9mIHRoZSBncm91cCByZXBsaWNhdGlvbiBhcHBsaWVyIGhhbmRsZXJzIGlzIG51bGwgZHVlIHRvIGFuIGluaXRpYWxpemF0aW9uIGVycm9yAEEgZ3JvdXAgcmVwbGljYXRpb24gYXBwbGllciBoYW5kbGVyLCBtYXJrZWQgYXMgdW5pcXVlLCBpcyBhbHJlYWR5IGluIHVzZS4AQSBncm91cCByZXBsaWNhdGlvbiBhcHBsaWVyIGhhbmRsZXIgcm9sZSwgdGhhdCB3YXMgbWFya2VkIGFzIHVuaXF1ZSwgaXMgYWxyZWFkeSBpbiB1c2UuAEVycm9yIG9uIGdyb3VwIHJlcGxpY2F0aW9uIGFwcGxpZXIgaGFuZGxlciBpbml0aWFsaXphdGlvbgBFcnJvciB3aGVuIGluaXRpYWxpemluZyBhIHNlc3Npb24gdGhyZWFkIGZvciBpbnRlcm5hbCBzZXJ2ZXIgY29ubmVjdGlvbi4ARXJyb3IgcnVubmluZyBpbnRlcm5hbCBTUUwgcXVlcnk6ICVzLiBUaGUgaW50ZXJuYWwgc2VydmVyIGNvbW11bmljYXRpb24gc2Vzc2lvbiBpcyBub3QgaW5pdGlhbGl6ZWQARXJyb3IgcnVubmluZyBpbnRlcm5hbCBTUUwgcXVlcnk6ICVzLiBUaGUgaW50ZXJuYWwgc2VydmVyIHNlc3Npb24gd2FzIGtpbGxlZCBvciBzZXJ2ZXIgaXMgc2h1dHRpbmcgZG93bi4ARXJyb3IgcnVubmluZyBpbnRlcm5hbCBTUUwgcXVlcnk6ICVzLiBHb3QgaW50ZXJuYWwgU1FMIGVycm9yOiAlcyglZCkARXJyb3IgcnVubmluZyBpbnRlcm5hbCBTUUwgcXVlcnk6ICVzLiBJbnRlcm5hbCBmYWlsdXJlLgBFcnJvciwgbWF4aW11bSBudW1iZXIgb2YgcmV0cmllcyBleGNlZWRlZCB3aGVuIHdhaXRpbmcgZm9yIHRoZSBpbnRlcm5hbCBzZXJ2ZXIgc2Vzc2lvbiBzdGF0ZSB0byBiZSBvcGVyYXRpbmcARXJyb3Igd2hlbiB0cnlpbmcgdG8gZmV0Y2ggc2VjdXJpdHkgY29udGV4dCB3aGVuIGNvbnRhY3RpbmcgdGhlIHNlcnZlciBmb3IgaW50ZXJuYWwgcGx1Z2luIHJlcXVlc3RzLgBUaGVyZSB3YXMgYW4gZXJyb3Igd2hlbiB0cnlpbmcgdG8gYWNjZXNzIHRoZSBzZXJ2ZXIgd2l0aCB1c2VyOiAlcy4gTWFrZSBzdXJlIHRoZSB1c2VyIGlzIHByZXNlbnQgaW4gdGhlIHNlcnZlciBhbmQgdGhhdCB0aGUgTXlTUUwgdXBncmFkZSBwcm9jZWR1cmUgd2FzIHJ1biBjb3JyZWN0bHkuAEZhaWxlZCB0byBlc3RhYmxpc2ggYW4gaW50ZXJuYWwgc2VydmVyIGNvbm5lY3Rpb24gdG8gZXhlY3V0ZSBwbHVnaW4gb3BlcmF0aW9ucyBzaW5jZSB0aGUgc2VydmVyIGRvZXMgbm90IGhhdmUgYXZhaWxhYmxlIGNvbm5lY3Rpb25zLCBwbGVhc2UgaW5jcmVhc2UgQEBHTE9CQUwuTUFYX0NPTk5FQ1RJT05TLiBTZXJ2ZXIgZXJyb3I6ICVpLgBGYWlsZWQgdG8gZXN0YWJsaXNoIGFuIGludGVybmFsIHNlcnZlciBjb25uZWN0aW9uIHRvIGV4ZWN1dGUgcGx1Z2luIG9wZXJhdGlvbnMuIFNlcnZlciBlcnJvcjogJWkuIFNlcnZlciBlcnJvciBtZXNzYWdlOiAlcwBUaGlzIG1lbWJlciBjb3VsZCBub3QgcmVhY2ggYSBtYWpvcml0eSBvZiB0aGUgbWVtYmVycyBmb3IgbW9yZSB0aGFuICVsZCBzZWNvbmRzLiBUaGUgbWVtYmVyIHdpbGwgbm93IGxlYXZlIHRoZSBncm91cCBhcyBpbnN0cnVjdGVkIGJ5IHRoZSBncm91cF9yZXBsaWNhdGlvbl91bnJlYWNoYWJsZV9tYWpvcml0eV90aW1lb3V0IG9wdGlvbi4AVGhlIHNlcnZlciB3YXMgYXV0b21hdGljYWxseSBzZXQgaW50byByZWFkIG9ubHkgbW9kZSBhZnRlciBhbiBlcnJvciB3YXMgZGV0ZWN0ZWQuAFVuYWJsZSB0byBsb2cgbm90aWZpY2F0aW9uIHRvIHRhYmxlIChlcnJubzogJWx1KSAocmVzOiAlZCkhIE1lc3NhZ2U6ICVzAEZhaWx1cmUgaW4gZ3JvdXAgY29tbXVuaWNhdGlvbiBlbmdpbmUgJyVzJyBpbml0aWFsaXphdGlvbgBVbmFibGUgdG8gc2V0IHRoZSBncm91cCBjb21tdW5pY2F0aW9uIGVuZ2luZSBsb2dnZXIAQ3VycmVudCBkZWJ1ZyBvcHRpb25zIGFyZTogJyVzJy4AU29tZSBkZWJ1ZyBvcHRpb25zIGluICclcycgYXJlIG5vdCB2YWxpZC4ARXJyb3IgY2FsbGluZyBncm91cCBjb21tdW5pY2F0aW9uIGludGVyZmFjZXMgd2hpbGUgdHJ5aW5nIHRvIGxlYXZlIHRoZSBncm91cABNZW1iZXIgaXMgbm90IE9OTElORSwgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGZvcmNlIGEgbmV3IGdyb3VwIG1lbWJlcnNoaXAARXJyb3IgY2FsbGluZyBncm91cCBjb21tdW5pY2F0aW9uIGludGVyZmFjZXMARXJyb3Igc2V0dGluZyBncm91cF9yZXBsaWNhdGlvbl9mb3JjZV9tZW1iZXJzIHZhbHVlICclcycgb24gZ3JvdXAgY29tbXVuaWNhdGlvbiBpbnRlcmZhY2VzAFRoZSBncm91cF9yZXBsaWNhdGlvbl9mb3JjZV9tZW1iZXJzIHZhbHVlICclcycgd2FzIHNldCBpbiB0aGUgZ3JvdXAgY29tbXVuaWNhdGlvbiBpbnRlcmZhY2VzAFRpbWVvdXQgb24gd2FpdCBmb3IgdmlldyBhZnRlciBzZXR0aW5nIGdyb3VwX3JlcGxpY2F0aW9uX2ZvcmNlX21lbWJlcnMgdmFsdWUgJyVzJyBpbnRvIGdyb3VwIGNvbW11bmljYXRpb24gaW50ZXJmYWNlcwBCcm9hZGNhc3Qgb2YgY29tbWl0dGVkIHRyYW5zYWN0aW9ucyBtZXNzYWdlIGZhaWxlZC4gTWVzc2FnZSBpcyB0b28gYmlnLgBFcnJvciB3aGlsZSBzZW5kaW5nIHN0YXRzIG1lc3NhZ2UARmxvdyBjb250cm9sIC0gdXBkYXRlIG1lbWJlciBzdGF0czogJXMgc3RhdHMgY2VydGlmaWVyX3F1ZXVlICVkLCBhcHBsaWVyX3F1ZXVlICVkIGNlcnRpZmllZCAlbGQgKCVsZCksIGFwcGxpZWQgJWxkICglbGQpLCBsb2NhbCAlbGQgKCVsZCksIHF1b3RhICVsZCAoJWxkKSBtb2RlPSVkAEZsb3cgY29udHJvbDogdGhyb3R0bGluZyB0byAlbGQgY29tbWl0cyBwZXIgJWxkIHNlYywgd2l0aCAlZCB3cml0aW5nIGFuZCAlZCBub24tcmVjb3ZlcmluZyBtZW1iZXJzLCBtaW4gY2FwYWNpdHkgJWxsZCwgbGltIHRocm90dGxlICVsbGQAVW5hYmxlIHRvIGNvbnZlcnQgYSBwYWNrZXQgaW50byBhbiBldmVudCBvbiB0aGUgYXBwbGllci4gRXJyb3I6ICVzAEZhaWxlZCB0byBjcmVhdGUgZ3JvdXAgcmVwbGljYXRpb24gcGlwZWxpbmUgY2FjaGUuAEZhaWxlZCB0byByZWluaXQgZ3JvdXAgcmVwbGljYXRpb24gcGlwZWxpbmUgY2FjaGUgZm9yIHdyaXRlLgBVbmFibGUgdG8gY29udmVydCB0aGUgZXZlbnQgaW50byBhIHBhY2tldCBvbiB0aGUgYXBwbGllci4gRXJyb3I6ICVzAEZhaWxlZCB0byBmbHVzaCBncm91cCByZXBsaWNhdGlvbiBwaXBlbGluZSBjYWNoZS4ARmFpbGVkIHRvIHJlaW5pdCBncm91cCByZXBsaWNhdGlvbiBwaXBlbGluZSBjYWNoZSBmb3IgcmVhZC4ARXJyb3Igc3RvcHBpbmcgYWxsIHJlcGxpY2F0aW9uIGNoYW5uZWxzIHdoaWxlIHNlcnZlciB3YXMgbGVhdmluZyB0aGUgZ3JvdXAuIEdvdCBlcnJvcjogJWQuIFBsZWFzZSBjaGVjayB0aGUgZXJyb3IgbG9nIGZvciBtb3JlIGRldGFpbHMuACVzAFRoZSByZXBsaWNhIElPIHRocmVhZCBvZiBjaGFubmVsICclcycgaXMgdW5ibG9ja2VkIGFzIHRoZSBtZW1iZXIgaXMgZGVjbGFyZWQgT05MSU5FIG5vdy4AVGhlIHJlcGxpY2EgSU8gdGhyZWFkIG9mIGNoYW5uZWwgJyVzJyB3aWxsIGVycm9yIG91dCBhcyB0aGUgbWVtYmVyIGZhaWxlZCB0byBjb21lIE9OTElORS4AVGhlIHJlcGxpY2EgYXBwbGllciB0aHJlYWQgb2YgY2hhbm5lbCAnJXMnIGlzIHVuYmxvY2tlZCBhcyB0aGUgbWVtYmVyIGlzIGRlY2xhcmVkIE9OTElORSBub3cuAFRoZSByZXBsaWNhIGFwcGxpZXIgdGhyZWFkIG9mIGNoYW5uZWwgJyVzJyB3aWxsIGVycm9yIG91dCBhcyB0aGUgbWVtYmVyIGZhaWxlZCB0byBjb21lIE9OTElORS4ATERBUCBhdXRoZW50aWNhdGlvbiBpbml0aWFsaXplOiBmYWlsZWQgdG8gY3JlYXRlLyBnZXQgY29ubmVjdGlvbiBmcm9tIHRoZSBwb29sLiAATERBUCBhdXRoZW50aWNhdGlvbiBkZV9pbml0aWFsaXplIEZhaWxlZABTa2lwcGluZyBncm91cCBzZWFyY2gsIE5vIGdyb3VwIGF0dHJpYnV0ZSBtZW50aW9uZWQAUG9vbCBtYXggc2l6ZSBpcyAwLCBjb25uZWN0aW9uIHBvb2wgaXMgZGlzYWJsZWQAQ29ubmVjdGlvbiBwb29sIGluaXRpYWxpemF0aW9uLCBmYWlsZWQgdG8gY3JlYXRlIExEQVAgb2JqZWN0IGNyZWF0b3IAQ29ubmVjdGlvbiBwb29sIGluaXRpYWxpemF0aW9uLCBmYWlsZWQgdG8gY3JlYXRlIExEQVAgb2JqZWN0AExEQVAgVExTIGNvbmZpZ3VyYXRpb24ATERBUCBUTFMgY29ubmVjdGlvbgBMREFQIHBvb2wgaXMgbm90IGNyZWF0ZWQuAExEQVAgcG9vbCBpcyBpbml0aWFsaXppbmcATERBUCBwb29sIGlzIGRlLWluaXRpYWxpemluZwBQb29sIG1heCBzaXplIG9sZCBhbmQgbmV3IHZhbHVlcyBhcmUgMABMREFQIHBvb2wgaXMgcmUtaW5pdGlhbGl6aW5nAFBsdWctaW4gaGFzIGZhaWxlZCB0byB3cml0ZSB0aGUgcGFja2V0LgBTZXR0aW5nIExEQVAgdXNlciBuYW1lIGFzIDogJXMAVXNlciBhdXRoZW50aWNhdGlvbiBkYXRhOiAlcyBzaXplOiAlbHUAVXNlciBpcyBhdXRoZW50aWNhdGVkIGFzOiAlcyBleHRlcm5hbCB1c2VyOiAlcwBHcm91cCBzZWFyY2ggaW5mb3JtYXRpb24gYmFzZSBETjogJXMgc2NvcGU6ICVkIGZpbHRlcjogJXMgYXR0cmlidXRlOiAlcwBTcGVjaWFsIGhhbmRsaW5nIGZvciBncm91cCBzZWFyY2gsIHtHQX0gZm91bmQAR3JvdXAgc2VhcmNoIHNwZWNpYWwgaGFuZGxpbmcsIGdyb3VwIGZ1bGwgRE4gZm91bmQuIABVc2VyICVzIGlzIG5vdCBtZW1iZXIgb2YgYW55IGdyb3VwLgBVc2VyICVzIGlzIG1lbWJlciBvZiBtb3JlIHRoYW4gb25lIGdyb3VwAEZvciB1c2VyICVzIGhhcyBtdWx0aXBsZSB1c2VyIGdyb3VwIG5hbWVzLiBQbGVhc2UgY2hlY2sgaWYgZ3JvdXAgYXR0cmlidXRlIG5hbWUgaXMgY29ycmVjdABTZWFyY2hlZCBncm91cCBuYW1lOiAlcwBMREFQIGF1dGhlbnRpY2F0aW9uIG9iamVjdCBjcmVhdGlvbiB0aW1lX3N0YW1wOiAlcyBkbjogJXMAQ2VydGlmaWNhdGUgbmFtZTogJXMARmFpbGVkIHRvIHBvb2wgZGUtaW5pdGlhbGl6ZWQ6IHBvb2wgaXMgYWxyZWFkeSByZWNvbnN0cnVjdGluZwBQb29sIGluaXRpYWxpemF0aW9uIGZhaWxlZDogcG9vbCBpcyBhbHJlYWR5IGluaXRpYWxpemVkAFBvb2wgaW5pdGlhbGl6YXRpb24gZmFpbGVkOiBwb29sIGlzIGluaXRpYWxpemluZwBQb29sIGluaXRpYWxpemF0aW9uIGZhaWxlZDogcG9vbCBpcyBkZS1pbml0aWFsaXppbmcARmFpbGVkIHRvIHBvb2wgZGVpbml0aWFsaXplZDogcG9vbCBpcyBhbHJlYWR5IHJlY29uc3RydWN0aW5nAEZhaWxlZCB0byBwb29sIGRlaW5pdGlhbGl6ZWQgOiBwb29sIGlzIG5vdCByZWFkeQBMZGFwX2Nvbm5lY3Rpb25fcG9vbDo6Z2V0OiBGYWlsZWQgdG8gcmV0dXJuIGNvbm5lY3Rpb24gYXMgcGx1Zy1pbiBpcyBub3QgcmVhZHkvaW5pdGlhbGl6aW5nL2RlLWluaXRpYWxpemluZwBDb25uZWN0aW9uIHBvb2wgaGFzIGZhaWxlZCB0byBpbml0aWFsaXplZABMZGFwX2Nvbm5ldGlvbl9wb29sOjpnZXQgTERBUCBtYXhpbXVtIGNvbm5lY3Rpb24gYWxsb3dlZCBzaXplIGlzIHJlYWNoZWQuIEluY3JlYXNlIHRoZSBtYXhpbXVtIGxpbWl0LgBTZXQgbWF4IHBvb2wgc2l6ZSBmYWlsZWQuAFBsdWctaW4gaGFzIGZhaWxlZCB0byByZWFkIHRoZSBwYWNrZXQgZnJvbSBjbGllbnQATGRhcF9hdXRoZW50aWNhdGlvbjo6aW5pdGlhbGl6ZTogY3JlYXRpbmcgbmV3IExEQVAgY29ubmVjdGlvbi4gAExkYXBfYXV0aGVudGljYXRpb246OmluaXRpYWxpemU6IGdldHRpbmcgY29ubmVjdGlvbiBmcm9tIHBvb2wuIABMZGFwX2F1dGhlbnRpY2F0aW9uOjpkZV9pbml0aWFsaXplIHB1dHRpbmcgYmFjayBjb25uZWN0aW9uIGluIHRoZSBwb29sAExkYXBfYXV0aGVudGljYXRpb246OnNlYXJjaF91c2VyX2dyb3VwIG5vIGdyb3VwIGF0dHJpYnV0ZSBmb3VuZABMZGFwX2Nvbm5ldGlvbl9wb29sOjpwdXQgbGRhcCBpbmZvIG51bGwATGRhcF9jb25uZWN0aW9uX3Bvb2w6OnB1dCBjb25uZWN0aW9uIGlzIGZyZWVpbmcuIABMZGFwX2Nvbm5lY3Rpb25fcG9vbDo6cHV0IGNvbm5lY3Rpb24gaW4gcHVzaGVkIGluIHRoZSBwb29sAExkYXBfY29ubmVjdGlvbl9jcmVhdG9yOjpMZGFwX2Nvbm5lY3Rpb25fY3JlYXRvcgBzdGFydGluZyBUTFMATGRhcF9jb25uZWN0aW9uX3Bvb2w6OmdldDogKGxkYXBfaW5mbyA9PSBOVUxMKXx8ICgqbGRhcF9pbmZvKQBMZGFwX2Nvbm5lY3Rpb25fcG9vbDo6ZGVpbml0OiBkZWxldGluZyBjb25uZWN0aW9uIGtleSAlcwAgTGRhcF9jb25uZWN0aW9uX3Bvb2w6OmdldCBwb29sZWQgY29ubmVjdGlvbiBrZXk6ICVzAExkYXBfY29ubmVjdGlvbl9wb29sOjpnZXQgY3JlYXRlIGNvbm5lY3Rpb24ga2V5OiAlcwBMREFQIGNvbW11bmljYXRpb24gaG9zdCAlcyBwb3J0ICV1AFNlbmRpbmcgYXV0aGVudGljYXRpb24gbWV0aG9kIHRvIGNsaWVudCA6ICVzAFNBU0wgcmVxdWVzdCByZWNlaXZlZCBmcm9tIG15c3FsIGNsaWVudDogJXMATGRhcF9zYXNsX2F1dGhlbnRpY2F0aW9uOjpwcm9jZXNzX3Nhc2wgcmM6ICVzAExkYXBfc2FzbF9hdXRoZW50aWNhdGlvbjo6cHJvY2Vzc19zYXNsIHNhc2wgYmluZCBzdWNjZWVkLiBkbjogJXMgbWV0aG9kOiAlcyBzZXJ2ZXIgY3JlZGVudGlhbDogJXMATERBUCBhdXRoZW50aWNhdGlvbiBzdGFydGVkIGZvciB1c2VyIG5hbWU6ICVzACVzAExEQVAgYXV0aGVudGljYXRpb24gaW5pdGlhbGl6ZSBpcyBmYWlsZWQgd2l0aDogJXMATERBUCBhdXRoZW50aWNhdGlvbiBmYWlsZWQgb3IgZ3JvdXAgcmV0cmlldmFsIGZhaWxlZDogJXMAU2VhcmNoIHVzZXIgZ3JvdXAgaGFzIGZhaWxlZDogJXMATERBUCB1c2VyIGJpbmQgaGFzIGZhaWxlZDogJXMAQ29ubmVjdGlvbiBwb29sIGdldDogRmFpbGVkIHRvIGNyZWF0ZSBMREFQIGNvbm5lY3Rpb24uICVzAEZhaWxlZCB0byBjcmVhdGUgbmV3IExEQVAgY29ubmVjdGlvbjogICVzAEZhaWxlZCB0byBlc3RhYmxpc2ggVExTIGNvbm5lY3Rpb246ICAlcwBGYWlsZWQgdG8gc2VhcmNoIHVzZXIgZnVsbCBkbjogJXMATGRhcF9jb25uZWN0aW9uX3Bvb2w6OnJlaW5pdABUaGUgcGF0aCAnJXMnLCBmcm9tIHRoZSBOT1RJRllfU09DS0VUIGVudmlyb25tZW50IHZhcmlhYmxlLCBpcyB0b28gbG9uZy4gQXQgJXUgYnl0ZXMgaXQgZXhjZWVkcyB0aGUgbGltaXQgb2YgJXUgYnl0ZXMgZm9yIGFuIEFGX1VOSVggc29ja2V0LgBGYWlsZWQgdG8gY29ubmVjdCB0byBzeXN0ZW1kIG5vdGlmaWNhdGlvbiBzb2NrZXQgbmFtZWQgJXMuIEVycm9yOiAnJXMnAEZhaWxlZCB0byB3cml0ZSAnJXMnIHRvIHN5c3RlbWQgbm90aWZpY2F0aW9uLiBFcnJvcjogJyVzJwBDYW5ub3QgcmVwbGljYXRlIHRvIHNlcnZlciB3aXRoIHNlcnZlcl91dWlkPSclLjM2cycgYmVjYXVzZSB0aGUgcHJlc2VudCBzZXJ2ZXIgaGFzIHB1cmdlZCByZXF1aXJlZCBiaW5hcnkgbG9ncy4gVGhlIGNvbm5lY3Rpbmcgc2VydmVyIG5lZWRzIHRvIHJlcGxpY2F0ZSB0aGUgbWlzc2luZyB0cmFuc2FjdGlvbnMgZnJvbSBlbHNld2hlcmUsIG9yIGJlIHJlcGxhY2VkIGJ5IGEgbmV3IHNlcnZlciBjcmVhdGVkIGZyb20gYSBtb3JlIHJlY2VudCBiYWNrdXAuIFRvIHByZXZlbnQgdGhpcyBlcnJvciBpbiB0aGUgZnV0dXJlLCBjb25zaWRlciBpbmNyZWFzaW5nIHRoZSBiaW5hcnkgbG9nIGV4cGlyYXRpb24gcGVyaW9kIG9uIHRoZSBwcmVzZW50IHNlcnZlci4gJXMuAEluc2VjdXJlIGNvbmZpZ3VyYXRpb24gZm9yIC0tcGlkLWZpbGU6IExvY2F0aW9uICclcycgaW4gdGhlIHBhdGggaXMgYWNjZXNzaWJsZSB0byBhbGwgT1MgdXNlcnMuIENvbnNpZGVyIGNob29zaW5nIGEgZGlmZmVyZW50IGRpcmVjdG9yeS4AQ2FuJ3Qgc3RhcnQgc2VydmVyOiBjYW4ndCBjaGVjayBQSUQgZmlsZXBhdGg6ICVzAHZhbGlkYXRlX3Bhc3N3b3JkIHN0YXR1cyB2YXJpYWJsZXMgcmVnaXN0cmF0aW9uIGZhaWxlZC4AdmFsaWRhdGVfcGFzc3dvcmQgc3RhdHVzIHZhcmlhYmxlcyB1bnJlZ2lzdHJhdGlvbiBmYWlsZWQuAERpY3Rpb25hcnkgZmlsZSBvcGVuIGZhaWxlZABnaXZlbiBwYXNzd29yZCBzdHJpbmcgY291bGQgYmUgbnVsbABmYWlsZWQgdG8gY29udmVydCB0aGUgcGFzc3dvcmQgc3RyaW5nIHRvIGxvd2VyIGNhc2UAZmFpbGVkIHRvIGNvbnZlcnQgdGhlIHBhc3N3b3JkIHN0cmluZyBpbnRvIGEgYnVmZmVyAG1lbW9yeSBhbGxvY2F0aW9uIGZhaWxlZCBmb3Igc3RyaW5nIGhhbmRsZXIAU2luY2UgdGhlIHZhbGlkYXRlX3Bhc3N3b3JkX3BvbGljeSBpcyBtZW50aW9uZWQgYXMgU3Ryb25nLCBkaWN0aW9uYXJ5IGZpbGUgbXVzdCBiZSBzcGVjaWZpZWQAY29udmVydF90b19idWZmZXIgc2VydmljZSBmYWlsZWQAJXMgdmFyaWFibGUgcmVnaXN0cmF0aW9uIGZhaWxlZC4AJXMgdmFyaWFibGUgdW5yZWdpc3RyYXRpb24gZmFpbGVkLgBQbGVhc2Ugc3BlY2lmeSBvcHRpb25zIHNwZWNpZmljIHRvIGtleXJpbmcgbWlncmF0aW9uLiBBbnkgYWRkaXRpb25hbCBvcHRpb25zIGNhbiBiZSBpZ25vcmVkLiBOT1RFOiBBbHRob3VnaCBzb21lIG9wdGlvbnMgYXJlIHZhbGlkLCBtaWdyYXRpb24gdG9vbCBjYW4gc3RpbGwgcmVwb3J0IGVycm9yIGV4YW1wbGU6IHBsdWdpbiB2YXJpYWJsZXMgZm9yIHdoaWNoIHBsdWdpbiBpcyBub3QgbG9hZGVkIHlldC4ASW52YWxpZCBkZWZhdWx0IGNvbGxhdGlvbiAlczogdXRmOG1iNF8wOTAwX2FpX2NpIG9yIHV0ZjhtYjRfZ2VuZXJhbF9jaSBleHBlY3RlZAAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwBGYWlsZWQgdG8gc2V0IE5VTUEgbWVtb3J5IHBvbGljeSBvZiBidWZmZXIgcG9vbCBwYWdlIGZyYW1lcyB3aXRoIG1iaW5kKCVwLCV6dSwlcywuLi4sLi4uLCVzKSBmYWlsZWQgd2l0aCAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwBQYWdlIHN0aWxsIGZpeGVkIG9yIGRpcnR5IGF0IHNodXRkb3duLiAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwBXYWl0ZWQgZm9yICV1IHNlY3MgZm9yIGhhc2ggaW5kZXggcmVmX2NvdW50ICglenUpIHRvIGRyb3AgdG8gMC4gaW5kZXg6ICIlcyIgdGFibGU6ICIlcyIAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAVGFibGUgZmxhZ3MgYXJlIDB4JWx4IGluIHRoZSBkYXRhIGRpY3Rpb25hcnkgYnV0IHRoZSBmbGFncyBpbiBmaWxlICVzICBhcmUgMHglbGx4IQBDYW4ndCByZWFkIGVuY3J5cHRpb24ga2V5IGZyb20gZmlsZSAlcyEAQ2Fubm90IGNsb3NlIGZpbGUgJXMsIGJlY2F1c2Ugbl9wZW5kaW5nX2ZsdXNoZXMgJXp1AENhbm5vdCBjbG9zZSBmaWxlICVzLCBiZWNhdXNlIG1vZGlmaWNhdGlvbiBjb3VudCAlbGxkICE9IGZsdXNoIGNvdW50ICVsbGQAQ2Fubm90IGNsb3NlIGZpbGUgJXMsIGJlY2F1c2UgaXQgaXMgaW4gdXNlAE9wZW4gZmlsZSBsaXN0IGxlbiBpbiBzaGFyZCAlenUgaXMgJWxsdQBUYWJsZXNwYWNlICVzLCB3YWl0aW5nIGZvciBJTyB0byBzdG9wIGZvciAlbGxkIHNlY29uZHMAJXMAJXMAJXMAJXMAJXMAWW91IG11c3QgcmFpc2UgdGhlIHZhbHVlIG9mIGlubm9kYl9vcGVuX2ZpbGVzIGluIG15LmNuZiEgUmVtZW1iZXIgdGhhdCBJbm5vREIga2VlcHMgYWxsIHJlZG8gbG9nIGZpbGVzIGFuZCBhbGwgc3lzdGVtIHRhYmxlc3BhY2UgZmlsZXMgb3BlbiBmb3IgdGhlIHdob2xlIHRpbWUgbXlzcWxkIGlzIHJ1bm5pbmcsIGFuZCBuZWVkcyB0byBvcGVuIGFsc28gc29tZSAuaWJkIGZpbGVzIGlmIHRoZSBmaWxlLXBlci10YWJsZSBzdG9yYWdlIG1vZGVsIGlzIHVzZWQuIEN1cnJlbnQgb3BlbiBmaWxlcyAlenUsIG1heCBhbGxvd2VkIG9wZW4gZmlsZXMgJXp1LgBNYXggdGFibGVzcGFjZSBpZCBpcyB0b28gaGlnaCwgJWx1AFRyeWluZyB0byBhY2Nlc3MgbWlzc2luZyB0YWJsZXNwYWNlICVsdQBUcnlpbmcgdG8gY2xvc2UvZGVsZXRlIHRhYmxlc3BhY2UgJyVzJyBidXQgdGhlcmUgYXJlICVsdSBwZW5kaW5nIG9wZXJhdGlvbnMgb24gaXQuAFRyeWluZyB0byBkZWxldGUvY2xvc2UgdGFibGVzcGFjZSAnJXMnIGJ1dCB0aGVyZSBhcmUgJWx1IGZsdXNoZXMgYW5kICV6dSBwZW5kaW5nIEkvTydzIG9uIGl0LgAlcwBDYW5ub3QgZGVsZXRlIHRhYmxlc3BhY2UgJWx1IGJlY2F1c2UgaXQgaXMgbm90IGZvdW5kIGluIHRoZSB0YWJsZXNwYWNlIG1lbW9yeSBjYWNoZS4AV2hpbGUgZGVsZXRpbmcgdGFibGVzcGFjZSAlbHUgaW4gRElTQ0FSRCBUQUJMRVNQQUNFLiBGaWxlIHJlbmFtZS9kZWxldGUgZmFpbGVkOiAlcwBDYW5ub3QgZGVsZXRlIHRhYmxlc3BhY2UgJWx1IGluIERJU0NBUkQgVEFCTEVTUEFDRTogJXMAQ2Fubm90IHJlbmFtZSAnJXMnIHRvICclcycgZm9yIHNwYWNlIElEICVsdSBiZWNhdXNlIHRoZSBzb3VyY2UgZmlsZSBkb2VzIG5vdCBleGlzdC4AQ2Fubm90IHJlbmFtZSAnJXMnIHRvICclcycgZm9yIHNwYWNlIElEICVsdSBiZWNhdXNlIHRoZSB0YXJnZXQgZmlsZSBleGlzdHMuIFJlbW92ZSB0aGUgdGFyZ2V0IGZpbGUgYW5kIHRyeSBhZ2Fpbi4AQ2Fubm90IHJlbmFtZSBmaWxlICclcycgKHNwYWNlIGlkICVsdSkgcmV0cmllZCAlbGx1IHRpbWVzLiBUaGVyZSBhcmUgZWl0aGVyIHBlbmRpbmcgSU9zIG9yIGZsdXNoZXMgb3IgdGhlIGZpbGUgaXMgYmVpbmcgZXh0ZW5kZWQuAENhbm5vdCBmaW5kIHNwYWNlIGlkICVsdSBpbiB0aGUgdGFibGVzcGFjZSBtZW1vcnkgY2FjaGUsIHRob3VnaCB0aGUgZmlsZSAnJXMnIGluIGEgcmVuYW1lIG9wZXJhdGlvbiBzaG91bGQgaGF2ZSB0aGF0IElELgBSZW5hbWUgd2FpdGluZyBmb3IgSU8gdG8gcmVzdW1lAENhbm5vdCBmaW5kIHRhYmxlc3BhY2UgZm9yICclcycgaW4gdGhlIHRhYmxlc3BhY2UgbWVtb3J5IGNhY2hlAENhbm5vdCBmaW5kIHRhYmxlc3BhY2UgZm9yICclcycgaW4gdGhlIHRhYmxlc3BhY2UgbWVtb3J5IGNhY2hlAFRhYmxlc3BhY2UgJyVzJyBpcyBhbHJlYWR5IGluIHRoZSB0YWJsZXNwYWNlIG1lbW9yeSBjYWNoZQBDYW5ub3QgY3JlYXRlIGZpbGUgJyVzJwBUaGUgZmlsZSAnJXMnIGFscmVhZHkgZXhpc3RzIHRob3VnaCB0aGUgY29ycmVzcG9uZGluZyB0YWJsZSBkaWQgbm90IGV4aXN0LiBIYXZlIHlvdSBtb3ZlZCBJbm5vREIgLmliZCBmaWxlcyBhcm91bmQgd2l0aG91dCB1c2luZyB0aGUgU1FMIGNvbW1hbmRzIERJU0NBUkQgVEFCTEVTUEFDRSBhbmQgSU1QT1JUIFRBQkxFU1BBQ0UsIG9yIGRpZCBteXNxbGQgY3Jhc2ggaW4gdGhlIG1pZGRsZSBvZiBDUkVBVEUgVEFCTEU/IFlvdSBjYW4gcmVzb2x2ZSB0aGUgcHJvYmxlbSBieSByZW1vdmluZyB0aGUgZmlsZSAnJXMnIHVuZGVyIHRoZSAnZGF0YWRpcicgb2YgTXlTUUwuAHBvc2l4X2ZhbGxvY2F0ZSgpOiBGYWlsZWQgdG8gcHJlYWxsb2NhdGUgZGF0YSBmb3IgZmlsZSAlcywgZGVzaXJlZCBzaXplICVsbHUgT3BlcmF0aW5nIHN5c3RlbSBlcnJvciBudW1iZXIgJWQgLSAlcy4gQ2hlY2sgdGhhdCB0aGUgZGlzayBpcyBub3QgZnVsbCBvciBhIGRpc2sgcXVvdGEgZXhjZWVkZWQuIE1ha2Ugc3VyZSB0aGUgZmlsZSBzeXN0ZW0gc3VwcG9ydHMgdGhpcyBmdW5jdGlvbi4gUmVmZXIgdG8geW91ciBvcGVyYXRpbmcgc3lzdGVtIGRvY3VtZW50YXRpb24gZm9yIG9wZXJhdGluZyBzeXN0ZW0gZXJyb3IgY29kZSBpbmZvcm1hdGlvbi4AQ291bGQgbm90IHdyaXRlIHRoZSBmaXJzdCBwYWdlIHRvIHRhYmxlc3BhY2UgJyVzJwBGaWxlIGZsdXNoIG9mIHRhYmxlc3BhY2UgJyVzJyBmYWlsZWQAQ291bGQgbm90IGZpbmQgYSB2YWxpZCB0YWJsZXNwYWNlIGZpbGUgZm9yIGAlc2AuICVzAElnbm9yaW5nIGRhdGEgZmlsZSAnJXMnIHdpdGggc3BhY2UgSUQgJWx1LiBBbm90aGVyIGRhdGEgZmlsZSBjYWxsZWQgJyVzJyBleGlzdHMgd2l0aCB0aGUgc2FtZSBzcGFjZSBJRAAlcwAlcwAlcwAlcwBDYW4ndCBzZXQgZW5jcnlwdGlvbiBpbmZvcm1hdGlvbiBmb3IgdGFibGVzcGFjZSAlcyEAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAVGhlIGRhdGFmaWxlICclcycgZm9yIHRhYmxlc3BhY2UgJXMgaXMgaW4gYW4gdW5wcm90ZWN0ZWQgbG9jYXRpb24uIFRoaXMgZmlsZSBjYW5ub3QgYmUgcmVjb3ZlcmVkIGFmdGVyIGEgY3Jhc2ggdW50aWwgdGhpcyBsb2NhdGlvbiBpcyBhZGRlZCB0byBpbm5vZGJfZGlyZWN0b3JpZXMuACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzAFNjYW4gcGF0aCAnJXMnIGlzIGlnbm9yZWQgYmVjYXVzZSAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwBBIGdlbmVyYWwgdGFibGVzcGFjZSBjYW5ub3QgYmUgbG9jYXRlZCB1bmRlciB0aGUgZGF0YWRpci4gQ2Fubm90IG9wZW4gZmlsZSAnJXMnLgBBIGZpbGUtcGVyLXRhYmxlIHRhYmxlc3BhY2UgY2Fubm90IGJlIGxvY2F0ZWQgaW4gdGhlIGRhdGFkaXIuIENhbm5vdCBvcGVuIGZpbGUgJyVzJy4AJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAQ2Fubm90IGNyZWF0ZSBhIHRhYmxlc3BhY2UgZm9yIHRhYmxlICVzIGJlY2F1c2UgdGhlIGRpcmVjdG9yeSBpcyBub3QgYSB2YWxpZCBsb2NhdGlvbi4gJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAQmxvY2tlZCBIaWdoIFByaW9yaXR5IFRyYW5zYWN0aW9uIChJRCAlbGx1LCBUaHJlYWQgSUQgJXMpIGZvcmNlcyByb2xsYmFjayBvZiB0aGUgYmxvY2tpbmcgdHJhbnNhY3Rpb24gKElEICVsbHUgLSAlcykuACVzACVzAEJsb2NrZWQgSGlnaCBQcmlvcml0eSBUcmFuc2FjdGlvbiAoVGhyZWFkIElEICVzKSB3YWtpbmcgdXAgdGhlIGJsb2NraW5nIHRyYW5zYWN0aW9uIChJRCAlbGx1KSBieSBwcmV0ZW5kaW5nIGl0J3MgYSBkZWFkbG9jayB2aWN0aW0uACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzAFRoZSB0cmFuc2FjdGlvbiBsb2cgc2l6ZSBpcyB0b28gbGFyZ2UgZm9yIGlubm9kYl9sb2dfYnVmZmVyX3NpemUgKCVsdSA+PSAlbHUgLyAyKS4gVHJ5aW5nIHRvIGV4dGVuZCBpdC4AaW5ub2RiX2xvZ19idWZmZXJfc2l6ZSB3YXMgZXh0ZW5kZWQgdG8gJWx1IGJ5dGVzLgBUaGUgdHJhbnNhY3Rpb24gbG9nIGZpbGVzIGFyZSB0b28gc21hbGwgZm9yIHRoZSBzaW5nbGUgdHJhbnNhY3Rpb24gbG9nIChzaXplPSVsdSkuIFNvLCB0aGUgbGFzdCBjaGVja3BvaW50IGFnZSBtaWdodCBleGNlZWQgdGhlIGxvZyBncm91cCBjYXBhY2l0eSAlbGx1LgBUaGUgYWdlIG9mIHRoZSBsYXN0IGNoZWNrcG9pbnQgaXMgJWxsdSwgd2hpY2ggZXhjZWVkcyB0aGUgbG9nIGdyb3VwIGNhcGFjaXR5ICVsbHUuAENhbm5vdCBjb250aW51ZSBvcGVyYXRpb24uIGliX2xvZ2ZpbGVzIGFyZSB0b28gc21hbGwgZm9yIGlubm9kYl90aHJlYWRfY29uY3VycmVuY3kgJWx1LiBUaGUgY29tYmluZWQgc2l6ZSBvZiBpYl9sb2dmaWxlcyBzaG91bGQgYmUgYmlnZ2VyIHRoYW4gMjAwIGtCICogaW5ub2RiX3RocmVhZF9jb25jdXJyZW5jeS4gVG8gZ2V0IG15c3FsZCB0byBzdGFydCB1cCwgc2V0IGlubm9kYl90aHJlYWRfY29uY3VycmVuY3kgaW4gbXkuY25mIHRvIGEgbG93ZXIgdmFsdWUsIGZvciBleGFtcGxlLCB0byA4LiBBZnRlciBhbiBFUlJPUi1GUkVFIHNodXRkb3duIG9mIG15c3FsZCB5b3UgY2FuIGFkanVzdCB0aGUgc2l6ZSBvZiBpYl9sb2dmaWxlcy4gJXMAUmVkbyBsb2cgd2FzIGVuY3J5cHRlZCwgYnV0IGtleXJpbmcgcGx1Z2luIGlzIG5vdCBsb2FkZWQuAFJlYWQgcmVkbyBsb2cgZW5jcnlwdGlvbiBtZXRhZGF0YSBzdWNjZXNzZnVsLgBDYW4ndCBzZXQgcmVkbyBsb2cgdGFibGVzcGFjZSBlbmNyeXB0aW9uIG1ldGFkYXRhLgBDYW5ub3QgcmVhZCB0aGUgZW5jcnlwdGlvbiBpbmZvcm1hdGlvbiBpbiBsb2cgZmlsZSBoZWFkZXIsIHBsZWFzZSBjaGVjayBpZiBrZXlyaW5nIHBsdWdpbiBsb2FkZWQgYW5kIHRoZSBrZXkgZmlsZSBleGlzdHMuAENhbid0IHNldCByZWRvIGxvZyB0YWJsZXNwYWNlIHRvIGJlIGVuY3J5cHRlZCBpbiByZWFkLW9ubHkgbW9kZS4AQ2FuJ3Qgc2V0IHJlZG8gbG9nIHRhYmxlc3BhY2UgdG8gYmUgZW5jcnlwdGVkLgBDYW4ndCBzZXQgcmVkbyBsb2cgdGFibGVzcGFjZSB0byBiZSBlbmNyeXB0ZWQuAFJlZG8gbG9nIGVuY3J5cHRpb24gaXMgZW5hYmxlZC4ARmx1c2ggd2FpdGluZyBmb3IgYXJjaGl2ZXIgdG8gY2F0Y2ggdXAgbGFnIExTTjogJWxsdQBGbHVzaCBvdmVyd3JpdGluZyBkYXRhIHRvIGFyY2hpdmUgLSB3YWl0IHRvbyBsb25nICgxIG1pbnV0ZSkgbGFnIExTTjogJWxsdQAlcwBTdGFydGluZyBzaHV0ZG93bi4uLgBXYWl0aW5nIGZvciAlcyB0byBleGl0AFdhaXRpbmcgZm9yICVsdSBhY3RpdmUgdHJhbnNhY3Rpb25zIHRvIGZpbmlzaABXYWl0aW5nIGZvciBtYXN0ZXIgdGhyZWFkIHRvIGJlIHN1c3BlbmRlZABXYWl0aW5nIGZvciBwYWdlX2NsZWFuZXIgdG8gZmluaXNoIGZsdXNoaW5nIG9mIGJ1ZmZlciBwb29sAFBlbmRpbmcgY2hlY2twb2ludF93cml0ZXM6ICVsdS4gUGVuZGluZyBsb2cgZmx1c2ggd3JpdGVzOiAlbHUuAFdhaXRpbmcgZm9yICVsdSBidWZmZXIgcGFnZSBJL09zIHRvIGNvbXBsZXRlAE15U1FMIGhhcyByZXF1ZXN0ZWQgYSB2ZXJ5IGZhc3Qgc2h1dGRvd24gd2l0aG91dCBmbHVzaGluZyB0aGUgSW5ub0RCIGJ1ZmZlciBwb29sIHRvIGRhdGEgZmlsZXMuIEF0IHRoZSBuZXh0IG15c3FsZCBzdGFydHVwIElubm9EQiB3aWxsIGRvIGEgY3Jhc2ggcmVjb3ZlcnkhAEJhY2tncm91bmQgdGhyZWFkICVzIHdva2UgdXAgZHVyaW5nIHNodXRkb3duAFdhaXRpbmcgZm9yIGFyY2hpdmVyIHRvIGZpbmlzaCBhcmNoaXZpbmcgcGFnZSBhbmQgbG9nAEJhY2tncm91bmQgdGhyZWFkICVzIHdva2UgdXAgZHVyaW5nIHNodXRkb3duAFdhaXRpbmcgZm9yIGRpcnR5IGJ1ZmZlciBwYWdlcyB0byBiZSBmbHVzaGVkAExvZyBzZXF1ZW5jZSBudW1iZXIgYXQgc2h1dGRvd24gJWxsdSBpcyBsb3dlciB0aGFuIGF0IHN0YXJ0dXAgJWxsdSEAV2FpdGluZyBmb3IgYXJjaGl2ZXIgdG8gZmluaXNoIGFyY2hpdmluZyBwYWdlIGFuZCBsb2cAIyMjIyMjIyMjIyMjIyMjIENPUlJVUFQgTE9HIFJFQ09SRCBGT1VORCAjIyMjIyMjIyMjIyMjIyMATG9nIHJlY29yZCB0eXBlICVkLCBwYWdlICVsdTolbHUuIExvZyBwYXJzaW5nIHByb2NlZWRlZCBzdWNjZXNzZnVsbHkgdXAgdG8gJWxsdS4gUHJldmlvdXMgbG9nIHJlY29yZCB0eXBlICVkLCBpcyBtdWx0aSAlbGx1IFJlY3Ygb2Zmc2V0ICV6ZCwgcHJldiAlbGx1AEhleCBkdW1wIHN0YXJ0aW5nICVsbHUgYnl0ZXMgYmVmb3JlIGFuZCBlbmRpbmcgJWxsdSBieXRlcyBhZnRlciB0aGUgY29ycnVwdGVkIHJlY29yZDoAU2V0IGlubm9kYl9mb3JjZV9yZWNvdmVyeSB0byBpZ25vcmUgdGhpcyBlcnJvci4AVGhlIHJlZG8gbG9nIGZpbGUgbWF5IGhhdmUgYmVlbiBjb3JydXB0IGFuZCBpdCBpcyBwb3NzaWJsZSB0aGF0IHRoZSBsb2cgc2NhbiBkaWQgbm90IHByb2NlZWQgZmFyIGVub3VnaCBpbiByZWNvdmVyeSEgUGxlYXNlIHJ1biBDSEVDSyBUQUJMRSBvbiB5b3VyIElubm9EQiB0YWJsZXMgdG8gY2hlY2sgdGhhdCB0aGV5IGFyZSBvayEgSWYgbXlzcWxkIGNyYXNoZXMgYWZ0ZXIgdGhpcyByZWNvdmVyeTsgJXMAJWxsdSBwYWdlcyB3aXRoIGxvZyByZWNvcmRzIHdlcmUgbGVmdCB1bnByb2Nlc3NlZCEAVXBncmFkZSBhZnRlciBhIGNyYXNoIGlzIG5vdCBzdXBwb3J0ZWQuIFRoaXMgcmVkbyBsb2cgd2FzIGNyZWF0ZWQgd2l0aCAlcywgYW5kIGl0IGFwcGVhcnMgY29ycnVwdGVkLiBQbGVhc2UgZm9sbG93IHRoZSBpbnN0cnVjdGlvbnMgYXQgJXMAVXBncmFkZSBpcyBub3Qgc3VwcG9ydGVkIGFmdGVyIGEgY3Jhc2ggb3Igc2h1dGRvd24gd2l0aCBpbm5vZGJfZmFzdF9zaHV0ZG93biA9IDIuIFRoaXMgcmVkbyBsb2cgd2FzIGNyZWF0ZWQgd2l0aCAlcywgYW5kIGl0IGFwcGVhcnMgbG9naWNhbGx5IG5vbiBlbXB0eS4gUGxlYXNlIGZvbGxvdyB0aGUgaW5zdHJ1Y3Rpb25zIGF0ICVzACVzACVzAFJlZG8gbG9nIGZvcm1hdCBpcyB2JWx1LiBUaGUgcmVkbyBsb2cgd2FzIGNyZWF0ZWQgYmVmb3JlIE15U1FMIDguMC4zMC4AVW5rbm93biByZWRvIGxvZyBmb3JtYXQgKHYlbHUpIGluIGZpbGUgJXMuIFBsZWFzZSBmb2xsb3cgdGhlIGluc3RydWN0aW9ucyBhdCAlcwBObyB2YWxpZCBjaGVja3BvaW50IGZvdW5kIChjb3JydXB0ZWQgcmVkbyBsb2cpLiBZb3UgY2FuIHRyeSAtLWlubm9kYi1mb3JjZS1yZWNvdmVyeT02IGFzIGEgbGFzdCByZXNvcnQuAEFwcGx5aW5nIGEgYmF0Y2ggb2YgJWxsdSByZWRvIGxvZyByZWNvcmRzIC4uLgAlcwAlcwBBcHBseSBiYXRjaCBjb21wbGV0ZWQhACVzACVzACVzACVzACVzACVzAEFuIG9wdGltaXplZCh3aXRob3V0IHJlZG8gbG9nZ2luZykgRERMIG9wZXJhdGlvbiBoYXMgYmVlbiBwZXJmb3JtZWQuIEFsbCBtb2RpZmllZCBwYWdlcyBtYXkgbm90IGhhdmUgYmVlbiBmbHVzaGVkIHRvIHRoZSBkaXNrIHlldC4KVGhpcyBvZmZsaW5lIGJhY2t1cCBtYXkgbm90IGJlIGNvbnNpc3RlbnQARXh0ZW5kaW5nIHRhYmxlc3BhY2UgOiAlbHUgc3BhY2UgbmFtZTogJXMgdG8gbmV3IHNpemU6ICVsdSBwYWdlcyBkdXJpbmcgcmVjb3ZlcnkuAENvdWxkIG5vdCBleHRlbmQgdGFibGVzcGFjZTogJWx1IHNwYWNlIG5hbWU6ICVzIHRvIG5ldyBzaXplOiAlbHUgcGFnZXMgZHVyaW5nIHJlY292ZXJ5LgBMb2cgYmxvY2sgJWx1IGF0IGxzbiAlbGx1IGhhcyB2YWxpZCBoZWFkZXIsIGJ1dCBjaGVja3N1bSBmaWVsZCBjb250YWlucyAlbHUsIHNob3VsZCBiZSAlbHUuAFJlY292ZXJ5IHNraXBwZWQsIC0taW5ub2RiLXJlYWQtb25seSBzZXQhAExvZyBzY2FuIHByb2dyZXNzZWQgcGFzdCB0aGUgY2hlY2twb2ludCBMU04gJWxsdS4ATG9nIHBhcnNpbmcgYnVmZmVyIG92ZXJmbG93LiBSZWNvdmVyeSBtYXkgaGF2ZSBmYWlsZWQhIFBsZWFzZSBzZXQgbG9nX2J1ZmZlcl9zaXplIHRvIGEgdmFsdWUgaGlnaGVyIHRoYW4gJWx1LgBTZXQgaW5ub2RiX2ZvcmNlX3JlY292ZXJ5IHRvIGlnbm9yZSB0aGlzIGVycm9yLgBEb2luZyByZWNvdmVyeTogc2Nhbm5lZCB1cCB0byBsb2cgc2VxdWVuY2UgbnVtYmVyICVsbHUARGF0YWJhc2Ugd2FzIG5vdCBzaHV0ZG93biBub3JtYWxseSEAU3RhcnRpbmcgY3Jhc2ggcmVjb3ZlcnkuAFRoZSB1c2VyIGhhcyBzZXQgU1JWX0ZPUkNFX05PX0xPR19SRURPIG9uLCBza2lwcGluZyBsb2cgcmVkbwBDYW5ub3QgcmVzdG9yZSBmcm9tIG15c3FsYmFja3VwLCBJbm5vREIgcnVubmluZyBpbiByZWFkLW9ubHkgbW9kZSEAVGhlIHJlZG8gbG9nIGZpbGUgd2FzIGNyZWF0ZWQgYnkgbXlzcWxiYWNrdXAgLS1hcHBseS1sb2cgYXQgJXMuIFRoZSBmb2xsb3dpbmcgY3Jhc2ggcmVjb3ZlcnkgaXMgcGFydCBvZiBhIG5vcm1hbCByZXN0b3JlLgBPcGVuaW5nIGNsb25lZCBkYXRhYmFzZQBSZWRvIGxvZyBpcyBmcm9tIGFuIGVhcmxpZXIgdmVyc2lvbiwgdiVsdS4AUmVkbyBsb2cgZm9ybWF0IHYlbHUgbm90IHN1cHBvcnRlZC4gQ3VycmVudCBzdXBwb3J0ZWQgZm9ybWF0IGlzIHYlbHUuAEFyZSB5b3Ugc3VyZSB5b3UgYXJlIHVzaW5nIHRoZSByaWdodCByZWRvIGxvZyBmaWxlcyB0byBzdGFydCB1cCB0aGUgZGF0YWJhc2U/IExvZyBzZXF1ZW5jZSBudW1iZXIgaW4gdGhlIHJlZG8gbG9nIGZpbGVzIGlzICVsbHUsIGxlc3MgdGhhbiB0aGUgbG9nIHNlcXVlbmNlIG51bWJlciBpbiB0aGUgZmlyc3Qgc3lzdGVtIHRhYmxlc3BhY2UgZmlsZSBoZWFkZXIsICVsbHUuAFRoZSBsb2cgc2VxdWVuY2UgbnVtYmVyICVsbHUgaW4gdGhlIHN5c3RlbSB0YWJsZXNwYWNlIGRvZXMgbm90IG1hdGNoIHRoZSBsb2cgc2VxdWVuY2UgbnVtYmVyICVsbHUgaW4gdGhlIHJlZG8gbG9nIGZpbGVzIQBDYW4ndCBpbml0aWF0ZSBkYXRhYmFzZSByZWNvdmVyeSwgcnVubmluZyBpbiByZWFkLW9ubHktbW9kZS4AV2Ugc2Nhbm5lZCB0aGUgbG9nIHVwIHRvICVsbHUuIEEgY2hlY2twb2ludCB3YXMgYXQgJWxsdSBhbmQgdGhlIG1heGltdW0gTFNOIG9uIGEgZGF0YWJhc2UgcGFnZSB3YXMgJWxsdS4gSXQgaXMgcG9zc2libGUgdGhhdCB0aGUgZGF0YWJhc2UgaXMgbm93IGNvcnJ1cHQhAFdhaXRpbmcgZm9yIHJlY3Zfd3JpdGVyIHRvIGZpbmlzaCBmbHVzaGluZyBvZiBidWZmZXIgcG9vbABSZWNvdmVyeSBwYXJzaW5nIGJ1ZmZlciBleHRlbmRlZCB0byAlenUuAE91dCBvZiBtZW1vcnkgd2hpbGUgcmVzaXppbmcgcmVjb3ZlcnkgcGFyc2luZyBidWZmZXIuACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzAENhbid0IGVuY3J5cHQgZGF0YSBvZiByZWRvIGxvZwAlcwAlcwBEZWNyeXB0aW9uIG9mIHJlZG8gbG9nIGJsb2NrIGF0IG9mZnNldCAlbGx1IGluIGZpbGUgJXMgZmFpbGVkIGJlY2F1c2UgdGhlcmUncyBubyBrZXlyaW5nIGNvbmZpZ3VyZWQAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAT2xkIGxvZyBzZXF1ZW5jZSBudW1iZXIgJWxsdSB3YXMgZ3JlYXRlciB0aGFuIHRoZSBuZXcgbG9nIHNlcXVlbmNlIG51bWJlciAlbGx1LiBQbGVhc2Ugc3VibWl0IGEgYnVnIHJlcG9ydCB0byBodHRwOi8vYnVncy5teXNxbC5jb20AU2VtYXBob3JlIHdhaXQgaGFzIGxhc3RlZCA+ICVsbHUgc2Vjb25kcy4gV2UgaW50ZW50aW9uYWxseSBjcmFzaCB0aGUgc2VydmVyIGJlY2F1c2UgaXQgYXBwZWFycyB0byBiZSBodW5nLgBXYWl0aW5nIGZvciAlbGx1IHRhYmxlKHMpIHRvIGJlIGRyb3BwZWQAV2FpdGluZyBmb3IgY2hhbmdlIGJ1ZmZlciBtZXJnZSB0byBjb21wbGV0ZSBudW1iZXIgb2YgYnl0ZXMgb2YgY2hhbmdlIGJ1ZmZlciBqdXN0IG1lcmdlZDogJWxsdQBDYW4ndCBzZXQgdW5kbyB0YWJsZXNwYWNlKHMpIHRvIGJlIGVuY3J5cHRlZCBzaW5jZSAtLWlubm9kYl91bmRvX3RhYmxlc3BhY2VzPTAuAENhbid0IHNldCB1bmRvIHRhYmxlc3BhY2UocykgdG8gYmUgZW5jcnlwdGVkIGluIHJlYWQtb25seS1tb2RlLgBDYW4ndCBzZXQgdW5kbyB0YWJsZXNwYWNlICclcycgdG8gYmUgZW5jcnlwdGVkLgBDYW4ndCBzZXQgdW5kbyB0YWJsZXNwYWNlICclcycgdG8gYmUgZW5jcnlwdGVkLiBGYWlsZWQgdG8gd3JpdGUgaGVhZGVyIHBhZ2UuAENhbid0IHNldCB1bmRvIHRhYmxlc3BhY2UgJyVzJyB0byBiZSBlbmNyeXB0ZWQuIEVycm9yICVkIC0gJXMARW5jcnlwdGlvbiBpcyBlbmFibGVkIGZvciB1bmRvIHRhYmxlc3BhY2UgJyVzJy4AQ2FuJ3Qgcm90YXRlIGVuY3J5cHRpb24gb24gdW5kbyB0YWJsZXNwYWNlICclcycuAEVuY3J5cHRpb24gaXMgZW5hYmxlZCBmb3IgdW5kbyB0YWJsZXNwYWNlICclcycuAG9zX2ZpbGVfZ2V0X3N0YXR1cygpIGZhaWxlZCBvbiAnJXMnLiBDYW4ndCBkZXRlcm1pbmUgZmlsZSBwZXJtaXNzaW9ucy4AJXMgY2FuJ3QgYmUgb3BlbmVkIGluICVzIG1vZGUuACclcycgbm90IGEgcmVndWxhciBmaWxlLgBDYW5ub3QgY3JlYXRlICVzAFNldHRpbmcgZmlsZSAlcyBzaXplIHRvICVsbHUgTUIuIFByb2dyZXNzIDogJXUlJQBDYW5ub3QgcmVzaXplIHJlZG8gbG9nIGZpbGUgJXMgdG8gJWxsdSBNQiAoJXMpAENhbm5vdCBjcmVhdGUgcmVkbyBsb2cgZmlsZXMgaW4gcmVhZC1vbmx5IG1vZGUgKC0taW5ub2RiLXJlYWQtb25seSkuAFJlZG8gbG9nIGVuY3J5cHRpb24gaXMgZW5hYmxlZCwgYnV0IHRoZSBrZXlyaW5nIGlzIG5vdCBsb2FkZWQuAEZhaWxlZCB0byBjcmVhdGUgcmVkbyBsb2cgZmlsZSAlcyAoZXJyb3I6ICVkKSBmb3Igc3RhcnQgTFNOICVsbHUAUmVuYW1pbmcgbG9nIGZpbGUgJXMgdG8gJXMATmV3IHJlZG8gbG9nIGZpbGVzIGNyZWF0ZWQsIExTTj0lbGx1AFVuYWJsZSB0byBvcGVuICclcycgKGVycm9yOiAlZCkuAENhbm5vdCBjcmVhdGUgY29uc3RydWN0aW9uIGxvZyBmaWxlICclcycgZm9yIHVuZG8gdGFibGVzcGFjZSAnJXMnLgBDcmVhdGluZyBVTkRPIFRhYmxlc3BhY2UgJXMAU2V0dGluZyBmaWxlICVzIHNpemUgdG8gJWxsdSBNQgBQaHlzaWNhbGx5IHdyaXRpbmcgdGhlIGZpbGUgZnVsbABFcnJvciBpbiBjcmVhdGluZyAlczogcHJvYmFibHkgb3V0IG9mIGRpc2sgc3BhY2UAQ2FuJ3Qgc2V0IGVuY3J5cHRpb24gbWV0YWRhdGEgZm9yIHNwYWNlICVzAENhbm5vdCByZWFkIGZpcnN0IHBhZ2Ugb2YgJyVzJyAtICVzAFVuZG8gdGFibGVzcGFjZSBudW1iZXIgJWx1IHdhcyBiZWluZyB0cnVuY2F0ZWQgd2hlbiBteXNxbGQgcXVpdC4AQ2Fubm90IHJlY292ZXIgYSB0cnVuY2F0ZWQgdW5kbyB0YWJsZXNwYWNlIGluIHJlYWQtb25seSBtb2RlAFJlY29uc3RydWN0aW5nIHVuZG8gdGFibGVzcGFjZSBudW1iZXIgJWx1LgBDYW5ub3QgY3JlYXRlICVzIGJlY2F1c2UgJXMgYWxyZWFkeSB1c2VzIFNwYWNlIElEPSVsdSEgRGlkIHlvdSBjaGFuZ2UgaW5ub2RiX3VuZG9fZGlyZWN0b3J5PwBVTkRPIHRhYmxlc3BhY2UgJXMgbXVzdCBiZSAlcwBFcnJvciBjcmVhdGluZyBmaWxlIGZvciAlcwBFcnJvciByZWFkaW5nIGVuY3J5cHRpb24gZm9yICVzAFVuYWJsZSB0byBvcGVuIHVuZG8gdGFibGVzcGFjZSBudW1iZXIgJWx1AE9wZW5lZCAlbGx1IGV4aXN0aW5nIHVuZG8gdGFibGVzcGFjZXMuAENhbm5vdCBjcmVhdGUgdW5kbyB0YWJsZXNwYWNlcyBzaW5jZSBpbm5vZGJfJXMgaGFzIGJlZW4gc2V0LiBVc2luZyAlbGx1IGV4aXN0aW5nIHVuZG8gdGFibGVzcGFjZXMuAENhbm5vdCBjb250aW51ZSBJbm5vREIgc3RhcnR1cCBpbiAlcyBtb2RlIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGV4aXN0aW5nIHVuZG8gdGFibGVzcGFjZXMgZm91bmQuAENvdWxkIG5vdCBjcmVhdGUgdW5kbyB0YWJsZXNwYWNlICclcycuAEVycm9yICVkIC0gJXMgLSBvcGVuaW5nIG5ld2x5IGNyZWF0ZWQgdW5kbyB0YWJsZXNwYWNlICclcycuAENyZWF0ZWQgJWxsdSB1bmRvIHRhYmxlc3BhY2VzLgBVbmFibGUgdG8gY3JlYXRlIGVuY3J5cHRlZCB1bmRvIHRhYmxlc3BhY2UgbnVtYmVyICVsdS4gcGxlYXNlIGNoZWNrIGlmIHRoZSBrZXlyaW5nIGlzIGluaXRpYWxpemVkIGNvcnJlY3RseQBFbmNyeXB0aW9uIGlzIGVuYWJsZWQgZm9yIHVuZG8gdGFibGVzcGFjZSBudW1iZXIgJWx1LgBVbmFibGUgdG8gaW5pdGlhbGl6ZSB0aGUgaGVhZGVyIHBhZ2UgaW4gdW5kbyB0YWJsZXNwYWNlIG51bWJlciAlbHUuAENhbm5vdCBkZWxldGUgb2xkIHVuZG8gdGFibGVzcGFjZXMgYmVjYXVzZSB0aGV5IGNvbnRhaW4gdW5kbyBsb2dzIGZvciBYQSBQUkVQQVJFRCB0cmFuc2FjdGlvbnMuAFVwZ3JhZGluZyAlenUgZXhpc3RpbmcgdW5kbyB0YWJsZXNwYWNlcyB0aGF0IHdlcmUgdHJhY2tlZCBpbiB0aGUgc3lzdGVtIHRhYmxlc3BhY2UgdG8gJWx1IG5ldyBpbmRlcGVuZGVudCB1bmRvIHRhYmxlc3BhY2VzLgBEZWxldGluZyAlbGx1IG5ldyBpbmRlcGVuZGVudCB1bmRvIHRhYmxlc3BhY2VzIHRoYXQgd2UganVzdCBjcmVhdGVkLgBXYWl0aW5nIGZvciBwdXJnZSB0byBzdGFydABDcmVhdGluZyBzaGFyZWQgdGFibGVzcGFjZSBmb3IgdGVtcG9yYXJ5IHRhYmxlcwBUaGUgJXMgZGF0YSBmaWxlIG11c3QgYmUgd3JpdGFibGUhAENvdWxkIG5vdCBjcmVhdGUgdGhlIHNoYXJlZCAlcy4AVW5hYmxlIHRvIGNyZWF0ZSB0aGUgc2hhcmVkICVzLgBUaGUgJXMgZGF0YSBmaWxlIGNhbm5vdCBiZSByZS1vcGVuZWQgYWZ0ZXIgY2hlY2tfZmlsZV9zcGVjKCkgc3VjY2VlZGVkIQAlZCB0aHJlYWRzIGNyZWF0ZWQgYnkgSW5ub0RCIGhhZCBub3QgZXhpdGVkIGF0IHNodXRkb3duIQBJbm5vREIgRGF0YWJhc2UgY3JlYXRpb24gd2FzIGFib3J0ZWQgJXN3aXRoIGVycm9yICVzLiBZb3UgbWF5IG5lZWQgdG8gZGVsZXRlIHRoZSBpYmRhdGExIGZpbGUgYmVmb3JlIHRyeWluZyB0byBzdGFydCB1cCBhZ2Fpbi4AUGx1Z2luIGluaXRpYWxpemF0aW9uIGFib3J0ZWQgJXN3aXRoIGVycm9yICVzLgBXYWl0aW5nIGZvciAlenUgYnVmZmVyIHBhZ2UgSS9PcyB0byBjb21wbGV0ZS4AUFVOQ0ggSE9MRSBzdXBwb3J0IGF2YWlsYWJsZQBQVU5DSCBIT0xFIHN1cHBvcnQgbm90IGF2YWlsYWJsZQBTaXplIG9mIElubm9EQidzIHVsaW50IGlzICV6dSBidXQgc2l6ZSBvZiB2b2lkKiBpcyAlenUuIFRoZSBzaXplcyBzaG91bGQgYmUgdGhlIHNhbWUgc28gdGhhdCBvbiBhIDY0LWJpdCBwbGF0Zm9ybXMgeW91IGNhbiBhbGxvY2F0ZSBtb3JlIHRoYW4gNCBHQiBvZiBtZW1vcnkuAERhdGFiYXNlIHVwZ3JhZGUgY2Fubm90IGJlIGFjY29tcGxpc2hlZCBpbiByZWFkLW9ubHkgbW9kZS4ARGF0YWJhc2UgdXBncmFkZSBjYW5ub3QgYmUgYWNjb21wbGlzaGVkIHdpdGggaW5ub2RiX2ZvcmNlX3JlY292ZXJ5ID4gMAAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwBNeVNRTCB3YXMgYnVpbHQgd2l0aG91dCBhIG1lbW9yeSBiYXJyaWVyIGNhcGFiaWxpdHkgb24gdGhpcyBhcmNoaXRlY3R1cmUsIHdoaWNoIG1pZ2h0IGFsbG93IGEgbXV0ZXgvcndfbG9jayB2aW9sYXRpb24gdW5kZXIgaGlnaCB0aHJlYWQgY29uY3VycmVuY3kuIFRoaXMgbWF5IGNhdXNlIGEgaGFuZy4AQ29tcHJlc3NlZCB0YWJsZXMgdXNlIHpsaWIgJXMAJXMAU3RhcnR1cCBjYWxsZWQgc2Vjb25kIHRpbWUgZHVyaW5nIHRoZSBwcm9jZXNzIGxpZmV0aW1lLiBJbiB0aGUgTXlTUUwgRW1iZWRkZWQgU2VydmVyIExpYnJhcnkgeW91IGNhbm5vdCBjYWxsIHNlcnZlcl9pbml0KCkgbW9yZSB0aGFuIG9uY2UgZHVyaW5nIHRoZSBwcm9jZXNzIGxpZmV0aW1lLgAlcwBVbmFibGUgdG8gY3JlYXRlIG1vbml0b3IgZmlsZSAlczogJXMARGlzYWJsaW5nIGJhY2tncm91bmQgaWJ1ZiBJTyByZWFkIHRocmVhZHMuAENhbm5vdCBpbml0aWFsaXplIEFJTyBzdWItc3lzdGVtAEluaXRpYWxpemluZyBidWZmZXIgcG9vbCwgdG90YWwgc2l6ZSA9ICVsZiVjLCBpbnN0YW5jZXMgPSAlbHUsIGNodW5rIHNpemUgPSVsZiVjIABDYW5ub3QgYWxsb2NhdGUgbWVtb3J5IGZvciB0aGUgYnVmZmVyIHBvb2wAQ29tcGxldGVkIGluaXRpYWxpemF0aW9uIG9mIGJ1ZmZlciBwb29sAFNtYWxsIGJ1ZmZlciBwb29sIHNpemUgKCVsbHVNKSwgdGhlIGZsc3RfdmFsaWRhdGUoKSBkZWJ1ZyBmdW5jdGlvbiBjYW4gY2F1c2UgYSBkZWFkbG9jayBpZiB0aGUgYnVmZmVyIHBvb2wgZmlsbHMgdXAuAENvdWxkIG5vdCBvcGVuIG9yIGNyZWF0ZSB0aGUgc3lzdGVtIHRhYmxlc3BhY2UuIElmIHlvdSB0cmllZCB0byBhZGQgbmV3IGRhdGEgZmlsZXMgdG8gdGhlIHN5c3RlbSB0YWJsZXNwYWNlLCBhbmQgaXQgZmFpbGVkIGhlcmUsIHlvdSBzaG91bGQgbm93IGVkaXQgaW5ub2RiX2RhdGFfZmlsZV9wYXRoIGluIG15LmNuZiBiYWNrIHRvIHdoYXQgaXQgd2FzLCBhbmQgcmVtb3ZlIHRoZSBuZXcgaWJkYXRhIGZpbGVzIElubm9EQiBjcmVhdGVkIGluIHRoaXMgZmFpbGVkIGF0dGVtcHQuIElubm9EQiBvbmx5IHdyb3RlIHRob3NlIGZpbGVzIGZ1bGwgb2YgemVyb3MsIGJ1dCBkaWQgbm90IHlldCB1c2UgdGhlbSBpbiBhbnkgd2F5LiBCdXQgYmUgY2FyZWZ1bDogZG8gbm90IHJlbW92ZSBvbGQgZGF0YSBmaWxlcyB3aGljaCBjb250YWluIHlvdXIgcHJlY2lvdXMgZGF0YSEAQ2Fubm90IGNyZWF0ZSByZWRvIGxvZyBmaWxlcyBiZWNhdXNlIGRhdGEgZmlsZXMgYXJlIGNvcnJ1cHQgb3IgdGhlIGRhdGFiYXNlIHdhcyBub3Qgc2h1dCBkb3duIGNsZWFubHkgYWZ0ZXIgY3JlYXRpbmcgdGhlIGRhdGEgZmlsZXMuAE9ubHkgb25lIHJlZG8gbG9nIGZpbGUgZm91bmQAVGhlIHJlZG8gbG9nIGZpbGUgJXMgc2l6ZSAlbGx1IGlzIG5vdCBhIG11bHRpcGxlIG9mIGlubm9kYl9wYWdlX3NpemUAVGhlIHJlZG8gbG9nIGZpbGUgJXMgaXMgb2YgZGlmZmVyZW50IHNpemUgJWxsdSBieXRlcyB0aGFuIG90aGVyIGxvZyBmaWxlcyAlbGx1IGJ5dGVzIQBVc2UgLS1pbm5vZGItZGlyZWN0b3JpZXMgdG8gZmluZCB0aGUgdGFibGVzcGFjZSBmaWxlcy4gSWYgdGhhdCBmYWlscyB0aGVuIHVzZSAtLWlubm9kYi1mb3JjZS1yZWNvdmVyeT0xIHRvIGlnbm9yZSB0aGlzIGFuZCB0byBwZXJtYW5lbnRseSBsb3NlIGFsbCBjaGFuZ2VzIHRvIHRoZSBtaXNzaW5nIHRhYmxlc3BhY2UocykAVGhlIHJlZG8gbG9nIGZpbGUgbWF5IGhhdmUgYmVlbiBjb3JydXB0IGFuZCBpdCBpcyBwb3NzaWJsZSB0aGF0IHRoZSBsb2cgc2NhbiBvciBwYXJzaW5nIGRpZCBub3QgcHJvY2VlZCBmYXIgZW5vdWdoIGluIHJlY292ZXJ5LiBQbGVhc2UgcnVuIENIRUNLIFRBQkxFIG9uIHlvdXIgSW5ub0RCIHRhYmxlcyB0byBjaGVjayB0aGF0IHRoZXkgYXJlIG9rISBJdCBtYXkgYmUgc2FmZXN0IHRvIHJlY292ZXIgeW91ciBJbm5vREIgZGF0YWJhc2UgZnJvbSBhIGJhY2t1cCEAQ2Fubm90IHJlc2l6ZSByZWRvIGxvZyBmaWxlcyBpbiByZWFkLW9ubHkgbW9kZS4gUHJvdmlkZSAtLWlubm9kYl9yZWRvX2xvZ19jYXBhY2l0eSA+PSAlbGx1TUIgb3Igc3RhcnQgd2l0aG91dCAtLWlubm9kYi1yZWFkLW9ubHkuAENhbm5vdCBvcGVuIEREIHRhYmxlc3BhY2UuAFN0YXJ0aW5nIHRvIGRlbGV0ZSBhbmQgcmV3cml0ZSByZWRvIGxvZyBmaWxlcy4AVW5kbyBmcm9tIDUuNyBmb3VuZC4gSXQgd2lsbCBiZSBwdXJnZWQAJXMAJXMAVGFibGVzcGFjZSBzaXplIHN0b3JlZCBpbiBoZWFkZXIgaXMgJWx1IHBhZ2VzLCBidXQgdGhlIHN1bSBvZiBkYXRhIGZpbGUgc2l6ZXMgaXMgJWx1IHBhZ2VzAENhbm5vdCBzdGFydCBJbm5vREIuIFRoZSB0YWlsIG9mIHRoZSBzeXN0ZW0gdGFibGVzcGFjZSBpcyBtaXNzaW5nLiBIYXZlIHlvdSBlZGl0ZWQgaW5ub2RiX2RhdGFfZmlsZV9wYXRoIGluIG15LmNuZiBpbiBhbiBpbmFwcHJvcHJpYXRlIHdheSwgcmVtb3ZpbmcgaWJkYXRhIGZpbGVzIGZyb20gdGhlcmU/IFlvdSBjYW4gc2V0IGlubm9kYl9mb3JjZV9yZWNvdmVyeT0xIGluIG15LmNuZiB0byBmb3JjZSBhIHN0YXJ0dXAgaWYgeW91IGFyZSB0cnlpbmcgdG8gcmVjb3ZlciBhIGJhZGx5IGNvcnJ1cHQgZGF0YWJhc2UuAFRhYmxlc3BhY2Ugc2l6ZSBzdG9yZWQgaW4gaGVhZGVyIGlzICVsdSBwYWdlcywgYnV0IHRoZSBzdW0gb2YgZGF0YSBmaWxlIHNpemVzIGlzIG9ubHkgJWx1IHBhZ2VzAENhbm5vdCBzdGFydCBJbm5vREIuIFRoZSB0YWlsIG9mIHRoZSBzeXN0ZW0gdGFibGVzcGFjZSBpcyBtaXNzaW5nLiBIYXZlIHlvdSBlZGl0ZWQgaW5ub2RiX2RhdGFfZmlsZV9wYXRoIGluIG15LmNuZiBpbiBhbiBJbm5vREI6IGluYXBwcm9wcmlhdGUgd2F5LCByZW1vdmluZyBpYmRhdGEgZmlsZXMgZnJvbSB0aGVyZT8gWW91IGNhbiBzZXQgaW5ub2RiX2ZvcmNlX3JlY292ZXJ5PTEgaW4gbXkuY25mIHRvIGZvcmNlIElubm9EQjogYSBzdGFydHVwIGlmIHlvdSBhcmUgdHJ5aW5nIHRvIHJlY292ZXIgYSBiYWRseSBjb3JydXB0IGRhdGFiYXNlLgAlcyBzdGFydGVkOyBsb2cgc2VxdWVuY2UgbnVtYmVyICVsbHUAV2FpdGluZyBmb3IgcHVyZ2UgdG8gY29tcGxldGUAV2FpdGluZyBmb3IgZGljdF9zdGF0c190aHJlYWQgdG8gZXhpdABRdWVyeSBjb3VudGVyIHNob3dzICVsbGQgcXVlcmllcyBzdGlsbCBpbnNpZGUgSW5ub0RCIGF0IHNodXRkb3duAFNodXRkb3duIGNvbXBsZXRlZDsgbG9nIHNlcXVlbmNlIG51bWJlciAlbGx1AENhbm5vdCBjb250aW51ZSBvcGVyYXRpb24uACVzACVzACVzACVzACVzACVzACVzACVzACVzAFVuYWJsZSB0byByZWFkIHRoZSBleGlzdGluZyB1bmRvIHRydW5jYXRlIGxvZyBmaWxlICclcycuIFRoZSBlcnJvciBpcyAlcwBVbmRvIHRhYmxlc3BhY2UgJXMgaXMgbWFya2VkIGZvciB0cnVuY2F0ZQAlcwBUcnVuY2F0aW5nIFVORE8gdGFibGVzcGFjZSAlcwAlcwBDYW5ub3QgY3JlYXRlIHRydW5jYXRlIGxvZyBmb3IgdW5kbyB0YWJsZXNwYWNlICclcycuACVzAEZhaWxlZCB0byB0cnVuY2F0ZSB1bmRvIHRhYmxlc3BhY2UgJyVzJy4AJXMAQ29tcGxldGVkIHRydW5jYXRlIG9mIHVuZG8gdGFibGVzcGFjZSAlcy4AJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAUm9sbGJhY2sgb2Ygbm9uLXByZXBhcmVkIHRyYW5zYWN0aW9ucyBjb21wbGV0ZWQAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAQmxvY2tlZCBIaWdoIFByaW9yaXR5IFRyYW5zYWN0aW9uIChJRCAlbGx1LCBUaHJlYWQgSUQgJXMpIGtpbGxlZCB0aGUgYmxvY2tpbmcgdHJhbnNhY3Rpb24gKElEICVsbHUgLSAlcykgYnkgcm9sbGluZyBpdCBiYWNrLgAlcwBnZXR0aW1lb2ZkYXkoKSBmYWlsZWQ6ICVzAENhbid0IGNyZWF0ZSBVTkRPIHRhYmxlc3BhY2UgJXMgJXMAJXMAUmVzaXppbmcgcmVkbyBsb2cgZnJvbSAlbGx1TSB0byAlbGx1TSAoTFNOPSVsbHUpIHN5bmNocm9ub3VzbHkuIElmIHRoaXMgdGFrZXMgdG9vIGxvbmcsIGNvbnNpZGVyIHN0YXJ0aW5nIHRoZSBzZXJ2ZXIgd2l0aCBsYXJnZSAtLWlubm9kYl9yZWRvX2xvZ19jYXBhY2l0eSwgYW5kIHJlc2l6aW5nIHRoZSByZWRvIGxvZyBvbmxpbmUgdXNpbmcgU0VULgAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwBPdXQgb2Ygc3BhY2UgaW4gdGhlIHJlZG8gbG9nLiBDaGVja3BvaW50IExTTjogJWxsdS4gQ29uc2lkZXIgaW5jcmVhc2luZyBpbm5vZGJfcmVkb19sb2dfY2FwYWNpdHkuACVzAExvZyB3cml0ZXIgd2FpdGVkIHRvbyBsb25nIGZvciByZWRvLWFyY2hpdmVyIHRvIGFkdmFuY2UgKDEgc2Vjb25kKS4gVGhlcmUgYXJlIHVuYXJjaGl2ZWQ6ICVsbHUgYnl0ZXMuIEFyY2hpdmVyIExTTjogJWxsdS4gQWJvcnRlZCB0aGUgcmVkby1hcmNoaXZlci4gQ29uc2lkZXIgaW5jcmVhc2luZyBpbm5vZGJfcmVkb19sb2dfY2FwYWNpdHkuAExvZyB3cml0ZXIgaXMgd2FpdGluZyBmb3IgcmVkby1hcmNoaXZlciB0byBjYXRjaCB1cCB1bmFyY2hpdmVkOiAlbGx1IGJ5dGVzLiBBcmNoaXZlciBMU046ICVsbHUuIENvbnNpZGVyIGluY3JlYXNpbmcgaW5ub2RiX3JlZG9fbG9nX2NhcGFjaXR5LgAlcwAlcwAlcwAlcwBDYW4ndCBzZXQgcmVkbyBsb2cgZmlsZXMgdG8gYmUgZW5jcnlwdGVkIGluIHJlYWQtb25seSBtb2RlLgBDYW4ndCBzZXQgcmVkbyBsb2cgZmlsZXMgdG8gYmUgZW5jcnlwdGVkLgBDYW4ndCBzZXQgcmVkbyBsb2cgdGFibGVzcGFjZSB0byBiZSBlbmNyeXB0ZWQuAFJlZG8gbG9nIGVuY3J5cHRpb24gaXMgZW5hYmxlZC4AV2FpdGluZyBmb3IgYXJjaGl2ZXIgdG8gZmluaXNoIGFyY2hpdmluZyBwYWdlIGFuZCBsb2cAU3RhcnRpbmcgc2h1dGRvd24uLi4AV2FpdGluZyBmb3IgJXMgdG8gZXhpdC4AV2FpdGluZyBmb3Igcm9sbGJhY2sgb2YgJXp1IHJlY292ZXJlZCB0cmFuc2FjdGlvbnMsIGJlZm9yZSBzaHV0ZG93bi4AV2FpdGluZyBmb3IgbWFzdGVyIHRocmVhZCB0byBiZSBzdXNwZW5kZWQuAFdhaXRpbmcgZm9yIHBhZ2VfY2xlYW5lciB0byBmaW5pc2ggZmx1c2hpbmcgb2YgYnVmZmVyIHBvb2wuAFNodXRkb3duIGlzIHdhaXRpbmcgZm9yICV6dSBidWZmZXIgcGFnZSBJL09zIHRvIGNvbXBsZXRlLgBNeVNRTCBoYXMgcmVxdWVzdGVkIGEgdmVyeSBmYXN0IHNodXRkb3duIHdpdGhvdXQgZmx1c2hpbmcgdGhlIElubm9EQiBidWZmZXIgcG9vbCB0byBkYXRhIGZpbGVzLiBBdCB0aGUgbmV4dCBteXNxbGQgc3RhcnR1cCBJbm5vREIgd2lsbCBkbyBhIGNyYXNoIHJlY292ZXJ5IQAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwBJbnZhbGlkIHJlZG8gbG9nIGhlYWRlciBjaGVja3N1bS4AVW5zdXBwb3J0ZWQgcmVkbyBsb2cgZm9ybWF0ICh2JWx1KS4gVGhlIHJlZG8gbG9nIHdhcyBjcmVhdGVkIGJlZm9yZSBNeVNRTCA1LjcuOQAlcwBDYW5ub3QgY29udGludWUgb3BlcmF0aW9uLiBUaGUgaW5ub2RiX3JlZG9fbG9nX2NhcGFjaXR5PSVsbHVNIGlzIHRvbyBzbWFsbCBmb3IgdGhlIGlubm9kYl90aHJlYWRfY29uY3VycmVuY3k9JWx1LiBUaGUgY2FwYWNpdHkgb2YgcmVkbyBzaG91bGQgYmUgPj0gJWxsdU0uIFRvIGdldCBteXNxbGQgcnVubmluZywgc2V0IGlubm9kYl90aHJlYWRfY29uY3VycmVuY3kgdG8gYSBzbWFsbGVyIHZhbHVlIG9yIGluY3JlYXNlIGlubm9kYl9yZWRvX2xvZ19jYXBhY2l0eS4gJXMAJXMAJXMAVXNlciBoYXMgc2V0IGlubm9kYl90aHJlYWRfY29uY3VycmVuY3kgdG8gJWx1LgBTVE9QIFJFUExJQ0EgY29tbWFuZCBleGVjdXRpb24gaXMgaW5jb21wbGV0ZTogUmVwbGljYSBTUUwgdGhyZWFkIGdvdCB0aGUgc3RvcCBzaWduYWwsIHRocmVhZCBpcyBidXN5LCBTUUwgdGhyZWFkIHdpbGwgc3RvcCBvbmNlIHRoZSBjdXJyZW50IHRhc2sgaXMgY29tcGxldGUuAFNUT1AgUkVQTElDQSBjb21tYW5kIGV4ZWN1dGlvbiBpcyBpbmNvbXBsZXRlOiBSZXBsaWNhIElPIHRocmVhZCBnb3QgdGhlIHN0b3Agc2lnbmFsLCB0aHJlYWQgaXMgYnVzeSwgSU8gdGhyZWFkIHdpbGwgc3RvcCBvbmNlIHRoZSBjdXJyZW50IHRhc2sgaXMgY29tcGxldGUuAFN0YXRlbWVudCB2aW9sYXRlcyBHVElEIGNvbnNpc3RlbmN5OiBVcGRhdGVzIHRvIG5vbi10cmFuc2FjdGlvbmFsIHRhYmxlcyBjYW4gb25seSBiZSBkb25lIGluIGVpdGhlciBhdXRvY29tbWl0dGVkIHN0YXRlbWVudHMgb3Igc2luZ2xlLXN0YXRlbWVudCB0cmFuc2FjdGlvbnMsIGFuZCBuZXZlciBpbiB0aGUgc2FtZSBzdGF0ZW1lbnQgYXMgdXBkYXRlcyB0byB0cmFuc2FjdGlvbmFsIHRhYmxlcy4AU3RhdGVtZW50IHZpb2xhdGVzIEdUSUQgY29uc2lzdGVuY3k6IENSRUFURSBUQUJMRSAuLi4gU0VMRUNULgBTdGF0ZW1lbnQgdmlvbGF0ZXMgR1RJRCBjb25zaXN0ZW5jeTogQ1JFQVRFIFRFTVBPUkFSWSBUQUJMRSBhbmQgRFJPUCBURU1QT1JBUlkgVEFCTEUgY2FuIG9ubHkgYmUgZXhlY3V0ZWQgb3V0c2lkZSB0cmFuc2FjdGlvbmFsIGNvbnRleHQuICBUaGVzZSBzdGF0ZW1lbnRzIGFyZSBhbHNvIG5vdCBhbGxvd2VkIGluIGEgZnVuY3Rpb24gb3IgdHJpZ2dlciBiZWNhdXNlIGZ1bmN0aW9ucyBhbmQgdHJpZ2dlcnMgYXJlIGFsc28gY29uc2lkZXJlZCB0byBiZSBtdWx0aS1zdGF0ZW1lbnQgdHJhbnNhY3Rpb25zLgBXaGVuICUuMTkycywgdGhlIG9wdGlvbiBiaW5sb2dfcm93X3ZhbHVlX29wdGlvbnM9JS4xOTJzIHdpbGwgYmUgaWdub3JlZCBhbmQgdXBkYXRlcyB3aWxsIGJlIHdyaXR0ZW4gaW4gZnVsbCBmb3JtYXQgdG8gYmluYXJ5IGxvZy4AV2hlbiAlLjE5MnMsIHRoZSBvcHRpb24gbG9nX2Jpbl91c2VfdjFfcm93X2V2ZW50cz0xIHdpbGwgYmUgaWdub3JlZCBhbmQgcm93IGV2ZW50cyB3aWxsIGJlIHdyaXR0ZW4gaW4gbmV3IGZvcm1hdCB0byBiaW5hcnkgbG9nLgBXaGVuICUuMTkycywgdGhlIG9wdGlvbiBiaW5sb2dfcm93X3ZhbHVlX29wdGlvbnM9JS4xOTJzIHdpbGwgYmUgdXNlZCBvbmx5IGZvciB0aGUgYWZ0ZXItaW1hZ2UuIEZ1bGwgdmFsdWVzIHdpbGwgYmUgd3JpdHRlbiBpbiB0aGUgYmVmb3JlLWltYWdlLCBzbyB0aGUgc2F2aW5nIGluIGRpc2sgc3BhY2UgZHVlIHRvIGJpbmxvZ19yb3dfdmFsdWVfb3B0aW9ucyBpcyBsaW1pdGVkIHRvIGxlc3MgdGhhbiA1MCUlLgBBYm9ydGVkIGNvbm5lY3Rpb24gJXUgdG8gZGI6ICclLS4xOTJzJyB1c2VyOiAnJS0uNDhzJyBob3N0OiAnJS0uMjU1cycgKCUtLjY0cykuACVzOiBOb3JtYWwgc2h1dGRvd24uAENhbiBub3QgcGVyZm9ybSBrZXlyaW5nIG1pZ3JhdGlvbiA6ICVzLgBUaGUgbWVtYmVyIGlzIGNvbmZpZ3VyZWQgd2l0aCBhIGxvd2VyX2Nhc2VfdGFibGVfbmFtZXMgb3B0aW9uIHZhbHVlICcldScgZGlmZmVyZW50IGZyb20gdGhlIGdyb3VwICcldScuIFRoZSBtZW1iZXIgd2lsbCBub3cgZXhpdCB0aGUgZ3JvdXAuIElmIHRoZXJlIGlzIGV4aXN0aW5nIGRhdGEgb24gbWVtYmVyLCBpdCBtYXkgYmUgaW5jb21wYXRpYmxlIHdpdGggZ3JvdXAgaWYgaXQgd2FzIGNyZWF0ZWQgd2l0aCBhIGxvd2VyX2Nhc2VfdGFibGVfbmFtZXMgdmFsdWUgZGlmZmVyZW50IGZyb20gdGhlIGdyb3VwLgBBbiBvdXQtb2YtbWVtb3J5IGVycm9yIG9jY3VycmVkIHdoaWxlIHNhdmluZyB0aGUgc2V0IG9mIEdUSURzIGZyb20gdGhlIGxhc3QgYmluYXJ5IGxvZyBpbnRvIHRoZSBteXNxbC5ndGlkX2V4ZWN1dGVkIHRhYmxlAFRoZSBsb3dlcl9jYXNlX3RhYmxlX25hbWVzIHNldHRpbmcgZm9yIHRoZSBkYXRhIGRpY3Rpb25hcnkgd2FzIG5vdCBmb3VuZC4gU3RhcnRpbmcgdGhlIHNlcnZlciB1c2luZyBsb3dlcl9jYXNlX3RhYmxlX25hbWVzID0gJyV1Jy4AQSBjYXB0dXJlIGdyb3VwIGhhcyBhbiBpbnZhbGlkIG5hbWUuAFZhcmlhYmxlICclLS42NHMnIGNhbid0IGJlIHNldCB0byB0aGUgdmFsdWUgb2YgJyUtLjIwMHMnAFN0b3BwaW5nIHNlcnZpY2VzIGZhaWxlZCB3aXRoIGVycm9yICIlcyIAUXVlcnkgY2F1c2VkIGRpZmZlcmVudCBlcnJvcnMgb24gc291cmNlIGFuZCByZXBsaWNhLiBFcnJvciBvbiBzb3VyY2U6IG1lc3NhZ2UgKGZvcm1hdCk9JyVzJyBlcnJvciBjb2RlPSVkOyBFcnJvciBvbiByZXBsaWNhOmFjdHVhbCBtZXNzYWdlPSclcycsIGVycm9yIGNvZGU9JWQuIERlZmF1bHQgZGF0YWJhc2U6JyVzJy4gUXVlcnk6JyVzJwBHb3QgZmF0YWwgZXJyb3IgJWQgZnJvbSBzb3VyY2Ugd2hlbiByZWFkaW5nIGRhdGEgZnJvbSBiaW5hcnkgbG9nOiAnJS0uNTEycycAUmVwbGljYXRpb24gZXZlbnQgY2hlY2tzdW0gdmVyaWZpY2F0aW9uIGZhaWxlZCB3aGlsZSByZWFkaW5nIGZyb20gbmV0d29yay4ARmFpbGVkIHRvIGNyZWF0ZSAlcwBGYXRhbCBlcnJvcjogJXMAVW5leHBlY3RlZCBzb3VyY2UncyBoZWFydGJlYXQgZGF0YTogJXMAVGhlIGluY2lkZW50ICVzIG9jY3VycmVkIG9uIHRoZSBzb3VyY2UuIE1lc3NhZ2U6ICVzAFNvdXJjZSBjb21tYW5kICVzIGZhaWxlZDogJXMAUmVsYXkgbG9nIHJlYWQgZmFpbHVyZTogJXMAUmVsYXkgbG9nIHdyaXRlIGZhaWx1cmU6ICVzAFJlcGxpY2EgZmFpbGVkIHRvIGluaXRpYWxpemUgY29ubmVjdGlvbiBtZXRhZGF0YSBzdHJ1Y3R1cmUgZnJvbSB0aGUgcmVwb3NpdG9yeQBSZXBsaWNhIGZhaWxlZCB0byBpbml0aWFsaXplIGFwcGxpZXIgbWV0YWRhdGEgc3RydWN0dXJlIGZyb20gdGhlIHJlcG9zaXRvcnkAR290IGEgcGFja2V0IGJpZ2dlciB0aGFuICdtYXhfYWxsb3dlZF9wYWNrZXQnIGJ5dGVzAEFjY2VzcyB0byAlLjY0cyAnJS42NHMuJS42NHMnIGlzIHJlamVjdGVkLgBVbmtub3duIGVycm9yAFVua25vd24gc3lzdGVtIHZhcmlhYmxlICclLS42NHMnAEEgbWVzc2FnZSBpbnRlbmRlZCBmb3IgYSBjbGllbnQgY2Fubm90IGJlIHNlbnQgdGhlcmUgYXMgbm8gY2xpZW50LXNlc3Npb24gaXMgYXR0YWNoZWQuIFRoZXJlZm9yZSwgd2UncmUgc2VuZGluZyB0aGUgaW5mb3JtYXRpb24gdG8gdGhlIGVycm9yLWxvZyBpbnN0ZWFkOiBNWS0lMDZkIC0gJXMAQWJvcnRlZCBjb25uZWN0aW9uICV1IHRvIGRiOiAnJS0uMTkycycgdXNlcjogJyUtLjQ4cycgaG9zdDogJyUtLjI1NXMnICglLS42NHM7IGRpYWdub3N0aWNzIGFyZWE6IE1ZLSUwNmQgLSAlLS42NHMpAE91dCBvZiBzb3J0IG1lbW9yeSwgY29uc2lkZXIgaW5jcmVhc2luZyBzZXJ2ZXIgc29ydCBidWZmZXIgc2l6ZSEAVGhlIHRhYmxlICclLS4xOTJzJyBpcyBmdWxsIQBDcmVhdGUgdGFibGUvdGFibGVzcGFjZSAnJS0uMTkycycgZmFpbGVkLCBhcyBkaXNrIGlzIGZ1bGwuAEhhbmRsZXIgcmVwb3J0ZWQgZXJyb3IgJWQgLSAlcwBJbmNvcnJlY3QgaW5mb3JtYXRpb24gaW4gZmlsZTogJyUtLjIwMHMnAENhbid0IG9wZW4gZmlsZTogJyUtLjIwMHMnIChPUyBlcnJubzogJWQgLSAlcykAQ2FuJ3QgZmluZCBmaWxlOiAnJS0uMjAwcycgKE9TIGVycm5vOiAlZCAtICVzKQAnJS0uMTkycycgaXMgbG9ja2VkIGFnYWluc3QgY2hhbmdlIChPUyBlcnJubzogJWQgLSAlcykAQ2Fubm90IGxvYWQgZnJvbSAlcy4lcy4gVGhlIHRhYmxlIGlzIHByb2JhYmx5IGNvcnJ1cHRlZCEARXJyb3IgaW4gZGlhZ25vc3RpY3MgYXJlYTogTVktJTA2ZCAtICVzAEluY29ycmVjdCBkZWZpbml0aW9uIG9mIHRhYmxlICVzLiVzOiBleHBlY3RlZCBjb2x1bW4gJyVzJyBhdCBwb3NpdGlvbiAlZCwgZm91bmQgJyVzJy4AVGhlIGNvbHVtbiBjb3VudCBvZiAlcy4lcyBpcyB3cm9uZy4gRXhwZWN0ZWQgJWQsIGZvdW5kICVkLiBDcmVhdGVkIHdpdGggTXlTUUwgJWQsIG5vdyBydW5uaW5nICVkLiBQbGVhc2UgcGVyZm9ybSB0aGUgTXlTUUwgdXBncmFkZSBwcm9jZWR1cmUuAENvbHVtbiBjb3VudCBvZiAlcy4lcyBpcyB3cm9uZy4gRXhwZWN0ZWQgJWQsIGZvdW5kICVkLiBUaGUgdGFibGUgaXMgcHJvYmFibHkgY29ycnVwdGVkACIAUmVwbGljYSBTUUwgdGhyZWFkIGFib3J0ZWQuIENhbid0IGV4ZWN1dGUgaW5pdF9yZXBsaWNhIHF1ZXJ5LCBNWS0lMDZkIC0gJyVzJwBDb2x1bW4gJWQgb2YgdGFibGUgJyUtLjE5MnMuJS0uMTkycycgY2Fubm90IGJlIGNvbnZlcnRlZCBmcm9tIHR5cGUgJyUtLjMycycgdG8gdHlwZSAnJS0uMzJzJwBSZXBsaWNhIFNRTCB0aHJlYWQgaWdub3JlZCB0aGUgcXVlcnkgYmVjYXVzZSBvZiByZXBsaWNhdGUtKi10YWJsZSBydWxlcwBDYW5ub3QgcmVwbGljYXRlIGFub255bW91cyB0cmFuc2FjdGlvbiB3aGVuIEFVVE9fUE9TSVRJT04gPSAxLCBhdCBmaWxlICUuNDAwcywgcG9zaXRpb24gJWxsZC4AQ2Fubm90IHJlcGxpY2F0ZSBhbm9ueW1vdXMgdHJhbnNhY3Rpb24gd2hlbiBAQEdMT0JBTC5HVElEX01PREUgPSBPTiwgYXQgZmlsZSAlLjQwMHMsIHBvc2l0aW9uICVsbGQuAENhbm5vdCByZXBsaWNhdGUgR1RJRC10cmFuc2FjdGlvbiB3aGVuIEBAR0xPQkFMLkdUSURfTU9ERSA9IE9GRiwgYXQgZmlsZSAlLjQwMHMsIHBvc2l0aW9uICVsbGQuAFNpbXVsYXRlZCBlcnJvcgAlcwBBdWRpdCBMb2cgZmlsdGVyaW5nIGhhcyBub3QgYmVlbiBpbnN0YWxsZWQuAEZhaWxlZCB0byBvcGVuIHRoZSAlcyBmaWx0ZXIgdGFibGVzLgBGYWlsZWQgdG8gb3BlbiAnJXMuJXMnICVzIHRhYmxlLgBGaWx0ZXIgbmFtZSBjYW5ub3QgYmUgZW1wdHkuAEludmFsaWQgY2hhcmFjdGVyIGluIHRoZSB1c2VyIG5hbWUuAFJlcXVlc3QgaWdub3JlZCBmb3IgJyVzJ0AnJXMnLiBTVVBFUiBvciBBVURJVF9BRE1JTiBuZWVkZWQgdG8gcGVyZm9ybSBvcGVyYXRpb24ATm8ga2V5cmluZyBpbnN0YWxsZWQuAEludmFsaWQgY2hhcmFjdGVyIGluIHRoZSBob3N0IG5hbWUuAEF1ZGl0IGxvZyBlbmNyeXB0aW9uIHBhc3N3b3JkIGhhcyBub3QgYmVlbiBzZXQ7IGl0IHdpbGwgYmUgZ2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkuIFVzZSBhdWRpdF9sb2dfZW5jcnlwdGlvbl9wYXNzd29yZF9nZXQgdG8gb2J0YWluIHRoZSBwYXNzd29yZCBvciBhdWRpdF9sb2dfZW5jcnlwdGlvbl9wYXNzd29yZF9zZXQgdG8gc2V0IGEgbmV3IG9uZS4AQ291bGQgbm90IGNyZWF0ZSBBRVMga2V5LiBPcGVuU1NMJ3MgRVZQX0J5dGVzVG9LZXkgZnVuY3Rpb24gZmFpbGVkLgBBdWRpdCBsb2cgZW5jcnlwdGlvbiBwYXNzd29yZCBjYW5ub3QgYmUgZmV0Y2hlZCBmcm9tIHRoZSBrZXlyaW5nLiBQYXNzd29yZCB1c2VkIHNvIGZhciBpcyB1c2VkIGZvciBlbmNyeXB0aW9uLgBDb3VsZCBub3QgcmVpbml0aWFsaXplIGF1ZGl0IGxvZyBmaWx0ZXJzLgBVc2VyIGNhbm5vdCBiZSBlbXB0eS4ARmlyc3QgY2hhcmFjdGVyIG9mIHRoZSB1c2VyIG5hbWUgbXVzdCBiZSBhbHBoYW51bWVyaWMuAFNwZWNpZmllZCBmaWx0ZXIgaGFzIG5vdCBiZWVuIGZvdW5kLgBDYW5ub3QgdXBncmFkZSBzZXJ2ZXIgZWFybGllciB0aGFuIDUuNyB0byA4LjAAJXMgKG15c3FsZCAlcykgaW5pdGlhbGl6aW5nIG9mIHNlcnZlciBpbiBwcm9ncmVzcyBhcyBwcm9jZXNzICVsdQAlcyAobXlzcWxkICVzKSBpbml0aWFsaXppbmcgb2Ygc2VydmVyIGhhcyBjb21wbGV0ZWQAQ2Fubm90IGJvb3Qgc2VydmVyIHZlcnNpb24gJWx1IG9uIGRhdGEgZGlyZWN0b3J5IGJ1aWx0IGJ5IHZlcnNpb24gJWxsdS4gRG93bmdyYWRlIGlzIG5vdCBzdXBwb3J0ZWQAUmVjZWl2ZWQgU0hVVERPV04gZnJvbSB1c2VyICVzLiBTaHV0dGluZyBkb3duIG15c3FsZCAoVmVyc2lvbjogJXMpLgBUaGUgcGx1Z2luIGVuY291bnRlcmVkIGEgY3JpdGljYWwgZXJyb3IgYW5kIHdpbGwgYWJvcnQ6ICVzAEludmFsaWQgbWF0Y2ggbW9kZSBmbGFnIGluIHJlZ3VsYXIgZXhwcmVzc2lvbi4AVGhlIHVzZSBvZiByZXBsaWNhdGlvbiBmaWx0ZXJzIHdpdGggWEEgdHJhbnNhY3Rpb25zIGlzIG5vdCBzdXBwb3J0ZWQsIGFuZCBjYW4gbGVhZCB0byBhbiB1bmRlZmluZWQgc3RhdGUgaW4gdGhlIHJlcGxpY2EuAENhbm5vdCB1cGRhdGUgR1RJRF9QVVJHRUQgd2l0aCB0aGUgR3JvdXAgUmVwbGljYXRpb24gcGx1Z2luIHJ1bm5pbmcAJyVzLiVzJyB0YWJsZSBkZWZpbml0aW9uIGhhcyBub3QgYmVlbiB1cGdyYWRlZDsgUGxlYXNlIHBlcmZvcm0gdGhlIE15U1FMIHVwZ3JhZGUgcHJvY2VkdXJlLgBFeGVjdXRpb24gb2Ygc2VydmVyLXNpZGUgU1FMIHN0YXRlbWVudCAnJXMnIGZhaWxlZCB3aXRoIGVycm9yIGNvZGUgPSAlZCwgZXJyb3IgbWVzc2FnZSA9ICclcycuAE5vIHBhdGhzIGFsbG93ZWQgZm9yIHNoYXJlZCBsaWJyYXJ5LgBGdW5jdGlvbiAnJS0uMTkycycgYWxyZWFkeSBleGlzdHMuAEdvdCBFcnJvcjogJWxkIGZyb20gU2V0RXZlbnQuAEVycm9yIGFsbG9jYXRpbmcgU1NMIEJJTy4AJXMAT25lIG9yIHNldmVyYWwgbG9jYXRpb25zIHdlcmUgaW5hY2Nlc3NpYmxlIHdoaWxlIGNoZWNraW5nIFBJRCBmaWxlcGF0aC4AQ3VycmVudGx5IHVua25vd24gdmFyaWFibGUgJyVzJyB3YXMgcmVhZCBmcm9tIHRoZSBwZXJzaXN0ZWQgY29uZmlnIGZpbGUuAEZhdGFsIGVycm9yIGluIGRlZmF1bHRzIGhhbmRsaW5nLiBQcm9ncmFtIGFib3J0ZWQhAER1cGxpY2F0ZSB2YXJpYWJsZSBuYW1lICclcycuAEZhaWxlZCB0byBpbml0aWFsaXplIHN5c3RlbSB2YXJpYWJsZXMuAFZhcmlhYmxlIG5hbWUgJyVzJyBub3QgZm91bmQuAFNvbWUgKCVkKSB0aHJlYWRzIGFyZSBzdGlsbCBhY3RpdmUAJXMAU291cmNlIHRhYmxlc3BhY2UgaXMgZW5jcnlwdGVkIGJ1dCB0YXJnZXQgdGFibGVzcGFjZSBpcyBub3QuAFdhaXRpbmcgZm9yIHRhYmxlc3BhY2VfYWx0ZXJfZW5jcnlwdF90aHJlYWQgdG8gZXhpdAAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlczogQ291bGQgbm90IGFkZCBzdXBwcmVzc2lvbiBydWxlIGZvciBjb2RlICIlcyIuIFJ1bGUtc2V0IG1heSBiZSBmdWxsLCBvciBjb2RlIG1heSBub3QgY29ycmVzcG9uZCB0byBhbiBlcnJvci1sb2cgbWVzc2FnZS4ASW52YWxpZCB2YWx1ZSBmb3IgY29tbWFuZCBsaW5lIG9wdGlvbiBiaW5kLWFkZHJlc3NlczogJyVzJwBJZ25vcmluZyB0aGUgQEBnbG9iYWwucmVsYXlfbG9nX3NwYWNlX2xpbWl0IG9wdGlvbiBiZWNhdXNlIEBAZ2xvYmFsLnJlbGF5X2xvZ19wdXJnZSBpcyBkaXNhYmxlZC4ARXJyb3Igd2hlbiBleHRyYWN0aW5nIEdUSUQgZXhlY3V0aW9uIGluZm9ybWF0aW9uOiAlcwBNZXNzYWdlIHJlY2VpdmVkIHdpdGhvdXQgYSBwcm9wZXIgZ3JvdXAgY29vcmRpbmF0b3IgbW9kdWxlLgBBIG1lbWJlciBjYW5ub3Qgam9pbiB0aGUgZ3JvdXAgd2hpbGUgYSBncm91cCBjb25maWd1cmF0aW9uIG9wZXJhdGlvbiAnJXMnIGlzIHJ1bm5pbmcgaW5pdGlhdGVkIGJ5ICclcycuAEEgbWVtYmVyIGlzIGpvaW5pbmcgdGhlIGdyb3VwIHdoaWxlIGEgZ3JvdXAgY29uZmlndXJhdGlvbiBvcGVyYXRpb24gJyVzJyBpcyBydW5uaW5nIGluaXRpYXRlZCBieSAnJXMnLiBUaGUgbWVtYmVyIHdpbGwgbm93IGxlYXZlIHRoZSBncm91cC4AQ2FuJ3Qgc3RhcnQgJXMgZm9yIGNoYW5uZWwgJyVzJyB3aGVuIGdyb3VwIHJlcGxpY2F0aW9uIGlzIHJ1bm5pbmcgYSBncm91cCBjb25maWd1cmF0aW9uIG9wZXJhdGlvbiAnJXMnIGluaXRpYXRlZCBieSAnJXMnLgBBIHByaW1hcnkgZWxlY3Rpb24gd2FzIGludm9rZWQgYnV0IHRoZSByZXF1ZXN0ZWQgcHJpbWFyeSBtZW1iZXIgaXMgbm90IGluIHRoZSBncm91cC4gUmVxdWVzdCBpZ25vcmVkLgBFcnJvciB3aGlsZSBzZW5kaW5nIG1lc3NhZ2UuIENvbnRleHQ6ICVzAEVycm9yIHdoaWxlIGV4ZWN1dGluZyBhIGdyb3VwIGNvbmZpZ3VyYXRpb24gb3BlcmF0aW9uOiAlcwBDb25maWd1cmF0aW9uIG9wZXJhdGlvbiAnJXMnIHRlcm1pbmF0ZWQuICVzAFN0YXJ0aW5nIGdyb3VwIG9wZXJhdGlvbiBsb2NhbCBleGVjdXRpb246ICVzAFRlcm1pbmF0aW9uIG9mIGdyb3VwIG9wZXJhdGlvbiBsb2NhbCBleGVjdXRpb246ICVzAEEgY29uZmlndXJhdGlvbiBjaGFuZ2Ugd2FzIGtpbGxlZCBpbiB0aGlzIG1lbWJlci4gVGhlIG1lbWJlciB3aWxsIG5vdyBsZWF2ZSB0aGUgZ3JvdXAgYXMgaXRzIGNvbmZpZ3VyYXRpb24gbWF5IGhhdmUgZGl2ZXJnZWQuAFRoZXJlIHdhcyBhbiBpc3N1ZSBvbiB0aGUgcHJpbWFyeSBlbGVjdGlvbiBwcm9jZXNzOiAlcyBUaGUgbWVtYmVyIHdpbGwgbm93IGxlYXZlIHRoZSBncm91cC4AVGhlcmUgd2FzIGFuIGlzc3VlIHdoZW4gc3RvcHBpbmcgYSBwcmV2aW91cyBlbGVjdGlvbiBwcm9jZXNzOiAlcwBJdCB3YXMgbm90IHBvc3NpYmxlIHRvIGluaXRpYWxpemUgc3RhZ2UgbG9nZ2luZyBmb3IgdGhpcyB0YXNrLiBUaGUgb3BlcmF0aW9uIHdpbGwgc3RpbGwgcnVuIHdpdGhvdXQgc3RhZ2UgdHJhY2tpbmcuAENvdWxkIG5vdCBleGVjdXRlIHRoZSBpbnN0YWxsYXRpb24gb2YgR3JvdXAgUmVwbGljYXRpb24gVURGIGZ1bmN0aW9uOiAlcy4gQ2hlY2sgaWYgdGhlIGZ1bmN0aW9uIGlzIGFscmVhZHkgcHJlc2VudCwgaWYgc28sIHRyeSB0byByZW1vdmUgaXQAQ291bGQgbm90IHVuaW5zdGFsbCBHcm91cCBSZXBsaWNhdGlvbiBVREYgZnVuY3Rpb25zLiBUcnkgdG8gcmVtb3ZlIHRoZW0gbWFudWFsbHkgaWYgcHJlc2VudC4AQ291bGQgbm90IGV4ZWN1dGUgdGhlIGluc3RhbGxhdGlvbiBvZiBHcm91cCBSZXBsaWNhdGlvbiBVREYgZnVuY3Rpb25zLiBDaGVjayBmb3Igb3RoZXIgZXJyb3JzIGluIHRoZSBsb2cgYW5kIHRyeSB0byByZWluc3RhbGwgdGhlIHBsdWdpbgBUaGUgZnVuY3Rpb24gJyVzJyBmYWlsZWQuICVzAERvIG5vdCBzcGVjaWZ5IHRoZSBjdXJyZW50IHBhc3N3b3JkIHdoaWxlIGNoYW5naW5nIGl0IGZvciBvdGhlciB1c2Vycy4ASW5jb3JyZWN0IGN1cnJlbnQgcGFzc3dvcmQuIFNwZWNpZnkgdGhlIGNvcnJlY3QgcGFzc3dvcmQgd2hpY2ggaGFzIHRvIGJlIHJlcGxhY2VkLgBDdXJyZW50IHBhc3N3b3JkIG5lZWRzIHRvIGJlIHNwZWNpZmllZCBpbiB0aGUgUkVQTEFDRSBjbGF1c2UgaW4gb3JkZXIgdG8gY2hhbmdlIGl0LgBWYXJpYWJsZSAnJS0uNjRzJyBjYW4ndCBiZSBzZXQgdG8gdGhlIHZhbHVlIG9mICclLS4yMDBzJwAlcyB3YXMgdW5hYmxlIHRvIGNyZWF0ZSBhIG5ldyBXaW5kb3dzIHJlZ2lzdHJ5IGtleSAlcyBmb3IgJXM7IGNvbnRpbnVpbmcgdG8gdXNlIHRoZSBwcmV2aW91cyBpZGVudC4AU3RhdGVtZW50IHZpb2xhdGVzIEdUSUQgY29uc2lzdGVuY3k6IENSRUFURSBURU1QT1JBUlkgVEFCTEUgYW5kIERST1AgVEVNUE9SQVJZIFRBQkxFIGFyZSBub3QgYWxsb3dlZCBpbnNpZGUgYSB0cmFuc2FjdGlvbiBvciBpbnNpZGUgYSBwcm9jZWR1cmUgaW4gYSB0cmFuc2FjdGlvbmFsIGNvbnRleHQgd2hlbiBAQHNlc3Npb24uYmlubG9nX2Zvcm1hdD1TVEFURU1FTlQuAFNlY29uZGFyeSBlbmdpbmUgb3BlcmF0aW9uIGZhaWxlZC4gJXMuAERETHMgb24gYSB0YWJsZSB3aXRoIGEgc2Vjb25kYXJ5IGVuZ2luZSBkZWZpbmVkIGFyZSBub3QgYWxsb3dlZC4AVW5hYmxlIHRvIGFsbG9jYXRlIHRlbXBvcmFyeSB0YWJsZXNwYWNlIGZvciB0aGlzIHNlc3Npb24AVW5hYmxlIHRvIHN3aXRjaCBzZWN1cml0eSBjb250ZXh0IHRvIHVzZXI6ICVzAFN0YXRlbWVudCB2aW9sYXRlcyBHVElEIGNvbnNpc3RlbmN5OiBBTFRFUiBUQUJMRSAuLi4gQUREIENPTFVNTiAuLiB3aXRoIGV4cHJlc3Npb24gYXMgREVGQVVMVC4ARXJyb3IgaW4gcGFyc2luZyAlcyAnJXMnLiclcycgZHVyaW5nIHVwZ3JhZGUuICVzAFRoZSBkZXNpZ25hdGVkIGRhdGEgZGlyZWN0b3J5ICVzIGlzIHVudXNhYmxlLiBZb3UgY2FuIHJlbW92ZSBhbGwgZmlsZXMgdGhhdCB0aGUgc2VydmVyIGFkZGVkIHRvIGl0LgBHcm91cCBzZWFyY2ggcmViaW5kaW5nIHZpYSByb290IEROOiAlcyAARXJyb3IgaW5zdGFsbGluZyBwbHVnaW4gJyVzJzogJXMARXJyb3IgdW5pbnN0YWxsaW5nIHBsdWdpbiAnJXMnOiAlcwBQYXJ0aXRpb25lZCB0YWJsZSAnJXMnIGlzIG5vdCBhbGxvd2VkIHRvIHVzZSBzaGFyZWQgdGFibGVzcGFjZSAnJXMnLiBQbGVhc2UgbW92ZSBhbGwgcGFydGl0aW9ucyB0byBmaWxlLXBlci10YWJsZSB0YWJsZXNwYWNlcyBiZWZvcmUgdXBncmFkZS4AQ2Fubm90IGRldGVybWluZSB0aGUgdHlwZSBvZiB0aGUgdGFibGVzcGFjZSBuYW1lZCAnJXMnLgAlczogJ3V0ZjgnIGlzIGN1cnJlbnRseSBhbiBhbGlhcyBmb3IgdGhlIGNoYXJhY3RlciBzZXQgVVRGOE1CMywgYnV0IHdpbGwgYmUgYW4gYWxpYXMgZm9yIFVURjhNQjQgaW4gYSBmdXR1cmUgcmVsZWFzZS4gUGxlYXNlIGNvbnNpZGVyIHVzaW5nIFVURjhNQjQgaW4gb3JkZXIgdG8gYmUgdW5hbWJpZ3VvdXMuACVzOiBUaGUgY2hhcmFjdGVyIHNldCBVVEY4TUIzIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLiBQbGVhc2UgY29uc2lkZXIgdXNpbmcgVVRGOE1CNCBpbnN0ZWFkLgAlczogJyUtLjY0cycgaXMgYSBjb2xsYXRpb24gb2YgdGhlIGRlcHJlY2F0ZWQgY2hhcmFjdGVyIHNldCBVVEY4TUIzLiBQbGVhc2UgY29uc2lkZXIgdXNpbmcgVVRGOE1CNCB3aXRoIGFuIGFwcHJvcHJpYXRlIGNvbGxhdGlvbiBpbnN0ZWFkLgBUaGUgU1NMIGxpYnJhcnkgZnVuY3Rpb24gJXMgZmFpbGVkLiBUaGlzIGlzIHR5cGljYWxseSBjYXVzZWQgYnkgdGhlIFNTTCBsaWJyYXJ5IGFscmVhZHkgYmVpbmcgdXNlZC4gQXMgYSByZXN1bHQgdGhlIFNTTCBtZW1vcnkgYWxsb2NhdGlvbiB3aWxsIG5vdCBiZSBpbnN0cnVtZW50ZWQuAERpc2FibGluZyBAQGNvcmVfZmlsZSBiZWNhdXNlIEBAaW5ub2RiX2J1ZmZlcl9wb29sX2luX2NvcmVfZmlsZSBpcyBkaXNhYmxlZCwgeWV0IE1BRFZfRE9OVERVTVAgaXMgbm90IHN1cHBvcnRlZCBvbiB0aGlzIHBsYXRmb3JtAERpc2FibGluZyBAQGNvcmVfZmlsZSBiZWNhdXNlIEBAaW5ub2RiX2J1ZmZlcl9wb29sX2luX2NvcmVfZmlsZSBpcyBkaXNhYmxlZCwgeWV0IG1hZHZpc2UoJXAsJXp1LCVzKSBmYWlsZWQgd2l0aCAlcwBDb3VsZCBub3QgY2hhbmdlIGNvbHVtbiAnJXMnIG9mIHRhYmxlICclcycuIFRoZSByZXN1bHRpbmcgc2l6ZSBvZiBpbmRleCAnJXMnIHdvdWxkIGV4Y2VlZCB0aGUgbWF4IGtleSBsZW5ndGggb2YgJWQgYnl0ZXMuAHNxbF9tb2RlPTB4JTA4eCBoYXMgYmVlbiByZW1vdmVkIGFuZCB3aWxsIGJlIGlnbm9yZWQARmFpbGVkIHRvIGFsbG9jYXRlIG1lbW9yeSBmb3IgYSBwb29sIG9mIHNpemUgJXp1IGJ5dGVzLiBXaWxsIHdhaXQgZm9yICV6dSBzZWNvbmRzIGZvciBhIHRocmVhZCB0byBmcmVlIGEgcmVzb3VyY2UuAE51bWJlciBvZiBwb29sczogJXp1AFVzaW5nIHVuZG8gdGFibGVzcGFjZSAnJXMnLgAlcyBVbmFibGUgdG8gc2F2ZSB0aGUgY3VycmVudCBzdGF0ZSBvZiB0YWJsZXNwYWNlICclcycgdG8gdGhlIGRhdGEgZGljdGlvbmFyeQBDYW5ub3QgY3JlYXRlIHVuZG8gdGFibGVzcGFjZSAlcyBhdCAlcyBiZWNhdXNlICVkIHVuZG8gdGFibGVzcGFjZXMgYWxyZWFkeSBleGlzdC4ARXJyb3IgJWQgb3BlbmluZyBuZXdseSBjcmVhdGVkIHVuZG8gdGFibGVzcGFjZSAlcy4AU0RJIENvbXByZXNzaW9uIGZhaWxlZCwgWl9CVUZfRVJST1IAU0RJIENvbXByZXNzaW9uIGZhaWxlZCwgWl9NRU1fRVJST1IAU0RJIENvbXByZXNzaW9uIGZhaWxlZCwgWl9TVFJFQU1fRVJST1IAJXMARXhwZWN0ZWQgdG8gZmluZCB1bmRvIHRhYmxlc3BhY2UgJyVzJyBmb3IgU3BhY2UgSUQ9JWx1LCBidXQgZm91bmQgJyVzJyBpbnN0ZWFkISAgRGlkIHlvdSBjaGFuZ2UgaW5ub2RiX3VuZG9fZGlyZWN0b3J5PwBDYW5ub3QgdXNlICVzIGFzIGFuIHVuZG8gdGFibGVzcGFjZSBiZWNhdXNlIGl0IGRvZXMgbm90IGVuZCB3aXRoICcuaWJ1Jy4AaWJfdW5kb190cnVuY19lbXB0eV9maWxlAGliX3VuZG9fdHJ1bmNfYmVmb3JlX2RkX3VwZGF0ZQBpYl91bmRvX3RydW5jX2JlZm9yZV9kb25lX2xvZ2dpbmcAaWJfdW5kb190cnVuY19iZWZvcmVfcnNlZ3MAJXMgRmFpbGVkIHRvIGZpbmlzaCB0cnVuY2F0aW5nIFVuZG8gVGFibGVzcGFjZSAnJXMnAFRoZSBzZXR0aW5nIElOTk9EQl9VTkRPX1RBQkxFU1BBQ0VTIGlzIGRlcHJlY2F0ZWQgYW5kIGlzIG5vIGxvbmdlciB1c2VkLiAgSW5ub0RCIGFsd2F5cyBjcmVhdGVzIDIgdW5kbyB0YWJsZXNwYWNlcyB0byBzdGFydCB3aXRoLiBJZiB5b3UgbmVlZCBtb3JlLCBwbGVhc2UgdXNlIENSRUFURSBVTkRPIFRBQkxFU1BBQ0UuAFRoZSBkaXJlY3RvcnkgZm9yIHRhYmxlc3BhY2UgJXMgZG9lcyBub3QgZXhpc3Qgb3IgaXMgaW5jb3JyZWN0LgAlcwBDbG9uZSBkb25vciByZXBvcnRlZCA6ICUuNTEycy4AQ2xvbmUgcmVjZWl2ZWQgdW5leHBlY3RlZCByZXNwb25zZSBmcm9tIGRvbm9yIDogJS41MTJzLgBDbGllbnQ6ICUuNTEycy4AU2VydmVyOiAlLjUxMnMuAEZhaWxlZCB0byBpbml0aWFsaXplIHRoZSBwZXJmb3JtYW5jZSBzY2hlbWEgdGFibGVzIHNlcnZpY2UuAEZhaWxlZCB0byBhZGQgdGhyZWFkIHBvb2wgcGVyZm9ybWFuY2Ugc2NoZW1hIHRhYmxlcy4ARmFpbGVkIHRvIHNldCBkYXRhZGlyIHRvICclLS4yMDBzJyAoT1MgZXJybm86ICVkIC0gJXMpAFRoZSBpbm5vZGJfdW5kb19kaXJlY3RvcnkgaXMgbm90IGFsbG93ZWQgdG8gYmUgYW4gYW5jZXN0b3Igb2YgdGhlIGRhdGFkaXIuAEZhaWxlZCB0byBmZXRjaCBrZXkgZnJvbSBrZXlyaW5nLCBwbGVhc2UgY2hlY2sgaWYga2V5cmluZyBpcyBsb2FkZWQuAENhbid0IGZpbmQga2V5IGZyb20ga2V5cmluZywgcGxlYXNlIGNoZWNrIGluIHRoZSBzZXJ2ZXIgbG9nIGlmIGEga2V5cmluZyBpcyBsb2FkZWQgYW5kIGluaXRpYWxpemVkIHN1Y2Nlc3NmdWxseS4ARmV0Y2hlZCBhbiBpbnZhbGlkIGtleSBmcm9tIGtleXJpbmcuAEVycm9yIHJlYWRpbmcgYSByZXBsaWNhdGlvbiBsb2cgZW5jcnlwdGlvbiBoZWFkZXI6ICVzLgBGYWlsZWQgdG8gcm90YXRlIHNvbWUgbG9ncyBhZnRlciBjaGFuZ2luZyBiaW5sb2cgZW5jcnlwdGlvbiBzZXR0aW5ncy4gUGxlYXNlIGZpeCB0aGUgcHJvYmxlbSBhbmQgcm90YXRlIHRoZSBsb2dzIG1hbnVhbGx5LgBLZXkgJXMgZXhpc3RzIHVuZXhwZWN0ZWQuAEZhaWxlZCB0byBnZW5lcmF0ZSBrZXksIHBsZWFzZSBjaGVjayBpZiBrZXlyaW5nIGlzIGxvYWRlZC4ARmFpbGVkIHRvIHN0b3JlIGtleSwgcGxlYXNlIGNoZWNrIGlmIGtleXJpbmcgaXMgbG9hZGVkLgBGYWlsZWQgdG8gcmVtb3ZlIGtleSwgcGxlYXNlIGNoZWNrIGlmIGtleXJpbmcgaXMgbG9hZGVkLgBVbmFibGUgdG8gcmVjb3ZlciBiaW5sb2cgZW5jcnlwdGlvbiBtYXN0ZXIga2V5LCBwbGVhc2UgY2hlY2sgaWYga2V5cmluZyBpcyBsb2FkZWQuAEZhaWxlZCB0byBpbml0aWFsaXplIGJpbmxvZyBlbmNyeXB0aW9uLCBwbGVhc2UgY2hlY2sgaWYga2V5cmluZyBpcyBsb2FkZWQuAEZhaWxlZCB0byByb3RhdGUgYmlubG9nIGVuY3J5cHRpb24gbWFzdGVyIGtleSBhdCBzdGFydHVwLCBwbGVhc2UgY2hlY2sgaWYga2V5cmluZyBpcyBsb2FkZWQuAElnbm9yaW5nIGJpbmxvZ19yb3RhdGVfZW5jcnlwdGlvbl9tYXN0ZXJfa2V5X2F0X3N0YXJ0dXAgYmVjYXVzZSBiaW5sb2dfZW5jcnlwdGlvbiBvcHRpb24gaXMgZGlzYWJsZWQuAEludmFsaWQgdmFsdWUgZm9yIGNvbW1hbmQgbGluZSBvcHRpb24gYWRtaW4tYWRkcmVzczogJyVzJwBBZG1pbiBpbnRlcmZhY2UgcmVhZHkgZm9yIGNvbm5lY3Rpb25zLCBhZGRyZXNzOiAnJXMnICBwb3J0OiAlZABDYW4ndCBjcmVhdGUgdGhyZWFkIHRvIGhhbmRsZSBhZG1pbiBjb25uZWN0aW9ucyAoZXJybm89ICVkKQBSRVRBSU4gQ1VSUkVOVCBQQVNTV09SRCBpZ25vcmVkIGZvciB1c2VyICclcydAJyVzJyBhcyBpdHMgYXV0aGVudGljYXRpb24gcGx1Z2luICVzIGRvZXMgbm90IHN1cHBvcnQgbXVsdGlwbGUgcGFzc3dvcmRzLgBESVNDQVJEIE9MRCBQQVNTV09SRCBpZ25vcmVkIGZvciB1c2VyICclcydAJyVzJyBhcyBpdHMgYXV0aGVudGljYXRpb24gcGx1Z2luICVzIGRvZXMgbm90IHN1cHBvcnQgbXVsdGlwbGUgcGFzc3dvcmRzLgBFbXB0eSBwYXNzd29yZCBjYW4gbm90IGJlIHJldGFpbmVkIGFzIHNlY29uZCBwYXNzd29yZCBmb3IgdXNlciAnJXMnQCclcycuAEN1cnJlbnQgcGFzc3dvcmQgY2FuIG5vdCBiZSByZXRhaW5lZCBmb3IgdXNlciAnJXMnQCclcycgYmVjYXVzZSBhdXRoZW50aWNhdGlvbiBwbHVnaW4gaXMgYmVpbmcgY2hhbmdlZC4AQ3VycmVudCBwYXNzd29yZCBjYW4gbm90IGJlIHJldGFpbmVkIGZvciB1c2VyICclcydAJyVzJyBiZWNhdXNlIG5ldyBwYXNzd29yZCBpcyBlbXB0eS4AQ2FuIG5vdCByZWFkIGFuZCBwcm9jZXNzIHZhbHVlIG9mIFVzZXJfYXR0cmlidXRlcyBjb2x1bW4gZnJvbSBteXNxbC51c2VyIHRhYmxlIGZvciB1c2VyOiAnJXNAJXMnOyBJZ25vcmluZyB1c2VyLgBTZWNvbmQgcGFzc3dvcmQgd2FzIHVzZWQgZm9yIGxvZ2luIGJ5IHVzZXI6ICclcydAJyVzJy4AU2Vjb25kIHBhc3N3b3JkIHdhcyB1c2VkIGZvciBsb2dpbiBieSB1c2VyOiAnJXMnQCclcycuAFNlY29uZCBwYXNzd29yZCB3YXMgdXNlZCBmb3IgbG9naW4gYnkgdXNlcjogJyVzJ0AnJXMnLgBFcnJvciBzZW5kaW5nIHRyYW5zYWN0aW9uICclZDolbGxkJyBwcmVwYXJlZCBtZXNzYWdlIGZyb20gc2Vzc2lvbiAnJXUnLgBFcnJvciByZWxlYXNpbmcgdHJhbnNhY3Rpb24gJyVkOiVsbGQnIGZvciBjb21taXQgb24gc2Vzc2lvbiAnJXUnIGFmdGVyIGJlaW5nIHByZXBhcmVkIG9uIGFsbCBncm91cCBtZW1iZXJzLgBUcmFuc2FjdGlvbiAnJWQ6JWxsZCcgYWxyZWFkeSBleGlzdHMgb24gR3JvdXAgUmVwbGljYXRpb24gY29uc2lzdGVuY3kgbWFuYWdlciB3aGlsZSBiZWluZyByZWdpc3RlcmVkIGFmdGVyIGNvbmZsaWN0IGRldGVjdGlvbi4ARXJyb3IgcmVnaXN0ZXJpbmcgdHJhbnNhY3Rpb24gJyVkOiVsbGQnIG9uIEdyb3VwIFJlcGxpY2F0aW9uIGNvbnNpc3RlbmN5IG1hbmFnZXIgYWZ0ZXIgY29uZmxpY3QgZGV0ZWN0aW9uLgBFcnJvciByZWdpc3RlcmluZyB0cmFuc2FjdGlvbiAnJWQ6JWxsZCcgZnJvbSBzZXNzaW9uICcldScgdG8gd2FpdCBmb3IgYmVpbmcgcHJlcGFyZWQgb24gYWxsIGdyb3VwIG1lbWJlcnMuAEVycm9yIG9uIHRyYW5zYWN0aW9uICclZDolbGxkJyBmcm9tIHNlc3Npb24gJyV1JyB3aGlsZSB3YWl0aW5nIGZvciBiZWluZyBwcmVwYXJlZCBvbiBhbGwgZ3JvdXAgbWVtYmVycy4AVHJhbnNhY3Rpb24gJyVkOiVsbGQnIGRvZXMgbm90IGV4aXN0IG9uIEdyb3VwIFJlcGxpY2F0aW9uIGNvbnNpc3RlbmN5IG1hbmFnZXIgd2hpbGUgcmVjZWl2aW5nIHJlbW90ZSB0cmFuc2FjdGlvbiBwcmVwYXJlLgBFcnJvciByZWxlYXNpbmcgdHJhbnNhY3Rpb24gJyVkOiVsbGQnIGZvciBleGVjdXRpb24gb24gc2Vzc2lvbiAnJXUnIGFmdGVyIGl0cyBkZXBlbmRlbmNpZXMgZGlkIGNvbXBsZXRlIGNvbW1pdC4ARXJyb3IgcmVnaXN0ZXJpbmcgdHJhbnNhY3Rpb24gZnJvbSBzZXNzaW9uICcldScgdG8gd2FpdCBmb3IgaXRzIGRlcGVuZGVuY2llcyB0byBjb21wbGV0ZSBjb21taXQuAEVycm9yIG9uIHNlc3Npb24gJyV1JyB3aGlsZSB3YWl0aW5nIGZvciBpdHMgZGVwZW5kZW5jaWVzIHRvIGNvbXBsZXRlIGNvbW1pdC4ARXJyb3IgcmVnaXN0ZXJpbmcgdHJhbnNhY3Rpb24gZnJvbSBzZXNzaW9uICcldScgdG8gd2FpdCBmb3Igc3luYyBiZWZvcmUgZXhlY3V0aW9uLgBFcnJvciBzZW5kaW5nIHN5bmMgYmVmb3JlIGV4ZWN1dGlvbiBtZXNzYWdlIGZyb20gc2Vzc2lvbiAnJXUnLgBFcnJvciBvbiB0cmFuc2FjdGlvbiBmcm9tIHNlc3Npb24gJyV1JyB3aGlsZSB3YWl0aW5nIGZvciBzeW5jIGJlZm9yZSBleGVjdXRpb24uAEVycm9yIHJlbGVhc2luZyB0cmFuc2FjdGlvbiBmb3IgZXhlY3V0aW9uIG9uIHNlc3Npb24gJyV1JyBhZnRlciB3YWl0IGZvciBzeW5jIGJlZm9yZSBleGVjdXRpb24uAEVycm9yIHdhaXRpbmcgZm9yIGdyb3VwIGV4ZWN1dGVkIHRyYW5zYWN0aW9ucyBjb21taXQgb24gc2Vzc2lvbiAnJXUnLgBUaGVyZSdzIG5vIHVuaXQgb2YgbWVhc3VyZSBuYW1lZCAnJXMnLgBUaGUgZnVuY3Rpb24gJXMgdXNlcyAlcyBhcyBhIHVuaXQsIGJ1dCB3YXMgcGFzc2VkIGdlb21ldHJ5IHdpdGhvdXQgdW5pdHMgKCJTUklEIDAiKS4gQ29udmVyc2lvbiBpcyBub3QgcG9zc2libGUuAENvdWxkIG5vdCBwYXJzZSBrZXktdmFsdWUgcGFpcnMgaW4gcHJvcGVydHkgc3RyaW5nICclcycAUHJvcGVydHkga2V5ICclcycgaXMgaW52YWxpZC4ARXJyb3Igd2hlbiBleHRyYWN0aW5nIHRoZSBncm91cF9yZXBsaWNhdGlvbl9hcHBsaWVyIGNoYW5uZWwgcmVjZWl2ZWQgdHJhbnNhY3Rpb25zIHNldC4gVW5hYmxlIHRvIGVuc3VyZSB0aGUgZXhlY3V0aW9uIG9mIGdyb3VwIHRyYW5zYWN0aW9ucyByZWNlaXZlZCBkdXJpbmcgcmVjb3ZlcnkuAEZhaWxlZCB0byBlbmNyeXB0IGNvbnRlbnQgdG8gd3JpdGUgaW50byBiaW5sb2cgZmlsZTogJXMuAENhbm5vdCBnZXQgdGhlIHNlcnZlciB2ZXJzaW9uIG51bWJlciBmcm9tIHRoZSBkaWN0aW9uYXJ5IHRhYmxlc3BhY2UgaGVhZGVyLgBDYW5ub3Qgc2V0IHRoZSBzZXJ2ZXIgdmVyc2lvbiBudW1iZXIgaW4gdGhlIGRpY3Rpb25hcnkgdGFibGVzcGFjZSBoZWFkZXIuAFVwZ3JhZGluZyB0aGUgc2VydmVyIGZyb20gc2VydmVyIHZlcnNpb24gJyV1JyBpcyBub3Qgc3VwcG9ydGVkLgBNeVNRTCBzZXJ2ZXIgdXBncmFkaW5nIGZyb20gdmVyc2lvbiAnJXUnIHRvICcldScuAFRoZSBjZXJ0aWZpY2F0aW9uIGluZm9ybWF0aW9uIGNvdWxkIG5vdCBiZSBzZXQgaW4gdGhpcyBzZXJ2ZXI6ICclcycAQSByZXF1ZXN0IHRvIGZvcmNlIGEgbmV3IGdyb3VwIG1lbWJlcnNoaXAgd2FzIGlzc3VlZCB3aGVuIHRoZSBtZW1iZXIgaXMgbGVhdmluZyB0aGUgZ3JvdXAuAFRyaWdnZXIgJXMuJXMgZm9yIHRhYmxlICVzLiVzIGlzIGxpc3RlZCBpbiB3cm9uZyBvcmRlci4gUGxlYXNlIGRyb3AgYW5kIHJlY3JlYXRlIGFsbCB0cmlnZ2VycyBmb3IgdGhlIHRhYmxlLgAlcwBTcGVjaWFsIGhhbmRsaW5nIGZvciBncm91cCBzZWFyY2gsIHtHQX0gbm90IGZvdW5kAFVzZXIgZ3JvdXAgcmV0cmlldmFsOiBVc2VyIG9iamVjdCBoYXMgZ3JvdXAgaW5mb3JtYXRpb24AR3JvdXAgaW5mb3JtYXRpb24gZm91bmQgaW4gbXVsdGlwbGUgdXNlciBvYmplY3RzLiBTZWFyY2ggZmlsdGVyIGNvbmZpZ3VyYXRpb24gaXMgaW5jb3JyZWN0LgBVc2VyIGdyb3VwIHJldHJpZXZhbDogbm8gZ3JvdXAgYXR0cmlidXRlIGZvdW5kLiBJbmNvcnJlY3QgZ3JvdXAgc2VhcmNoIGF0dHJpYnV0ZS4gAFVzZXIgZ3JvdXAgcmV0cmlldmFsOiBHcm91cCBhdHRyaWJ1dGUgdmFsdWVzIGlzIE5VTEwuIABVc2VyIGdyb3VwIHJldHJpZXZhbDogcGFyc2luZyBETiBmYWlsZWQuIABVc2VyIGdyb3VwIHJldHJpZXZhbDogR3JvdXAgb2JqZWN0IGhhcyB1c2VyIGluZm9ybWF0aW9uAFJlc2VydmVkIHBvcnQgZm9yIGxkYXBzIHVzaW5nIGxkYXBzAEdldCB1c2VyIHByb3h5AEdldCB1c2VyIHByb3h5OiBVc2VyIGRvZXNuJ3QgYmVsb25ncyB0byBhbnkgZ3JvdXAsIHVzZXIgbmFtZSB3aWxsIGJlIHRyZWF0ZWQgYXMgYXV0aGVudGljYXRlZCB1c2VyLgBHZXQgdXNlciBwcm94eTogY29uZmlndXJlZCBtYXBwaW5nIGluZm86ICVzAEdldCB1c2VyIHByb3h5OiBVc2VyIGRvZXNuJ3QgaGF2ZSBncm91cCBtYXBwaW5nIGluZm9ybWF0aW9uLCBGaXJzdCBMREFQIGdyb3VwIHdpbGwgYmUgdHJlYXRlZCBhcyBhdXRoZW50aWNhdGVkIHVzZXIuAFByb2Nlc3MgZ3JvdXAgcHJveHkgbWFwcGluZwBDaGVjayBkZWxpbWl0ZXIgYWZ0ZXIgcXVvdGUAUHJvY2Vzc2luZyBkZWxpbWl0ZXIAUHJvY2Vzc2luZyBkZWxpbWl0ZXIsIHNlcGFyYXRvciA9IG5vdCBmb3VuZCwgcmVzZXR0aW5nIHBvc2l0aW9uACJQcm9jZXNzaW5nIGRlbGltaXRlciwgZmFpbGVkIHRvIGdldCBkYXRhIGZvciA9IHNlcGFyYXRvciB0cnkgZm9yIHNlcGFyYXRvciAsLiIAUHJvY2Vzc2luZyBkZWxpbWl0ZXIsIHNlcGFyYXRvciAsIG5vdCBmb3VuZCwgcmVzZXR0aW5nIHBvc2l0aW9uAFByb2Nlc3NpbmcgZGVsaW1pdGVyOiBObyBtYXBwaW5nIHNlcGFyYXRvciBpcyBmb3VuZCwgZW5kIG9mIGdyb3VwIGluZm9ybWF0aW9uAEdldHRpbmcgbmV4dCBtYXBwaW5nIGluZm9ybWF0aW9uAFBhcnNpbmcgbWFwcGluZywgY3VycmVudCBzdGF0ZTogJWQgIGRlbGltaXRlciBjaGFyOiAlYyAAUGFyc2luZyBtYXBwaW5nIGluZm8sIExEQVAgZ3JvdXA6ICVzIE15U1FMIHByb3h5OiAlcwBNYXBwaW5nIHBhcnNpbmcgZXJyb3IAVHJpbW1pbmcgbGVmdCBzcGFjZXMAQ2hlY2tpbmcgaWYgY3VycmVudCBjaGFyYWN0ZXJzIGlzIHF1b3RlAE5vdCBkZXNpcmVkIHN0YXRlIG9yIHVuLWRlZmluZWQgc3RhdGVzLgBJbnZhbGlkIHZhbHVlIGZvciBuYW1lZF9waXBlX2Z1bGxfYWNjZXNzX2dyb3VwLgBSZXRyeSB0aGUgc3RhdGVtZW50IHVzaW5nIGEgc2Vjb25kYXJ5IHN0b3JhZ2UgZW5naW5lLgAnJXMnIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLiBQbGVhc2UgdXNlICVzIGluc3RlYWQAQ2Fubm90IHNldCBtYW5kYXRvcnlfcm9sZXM6IEF1dGhJZCBgJS42NHNgQGAlLjY0c2AgaGFzICclcycgcHJpdmlsZWdlLgBVbmFibGUgdG8gcmVjb3ZlciBiaW5hcnkgbG9nIG1hc3RlciBrZXksIHRoZSBjb21iaW5hdGlvbiBvZiBuZXdfbWFzdGVyX2tleV9zZXFubz0ldSwgbWFzdGVyX2tleV9zZXFubz0ldSBhbmQgb2xkX21hc3Rlcl9rZXlfc2Vxbm89JXUgYXJlIHdyb25nLgBGYWlsZWQgdG8gcmVtb3ZlIGF1eGlsaWFyeSBiaW5hcnkgbG9nIGVuY3J5cHRpb24ga2V5IGZyb20ga2V5cmluZywgcGxlYXNlIGNoZWNrIGlmIGtleXJpbmcgaXMgbG9hZGVkLiBUaGUgY2xlYW51cCBvZiB0aGUgYmluYXJ5IGxvZyBtYXN0ZXIga2V5IHJvdGF0aW9uIHByb2Nlc3MgZGlkIG5vdCBmaW5pc2ggYXMgZXhwZWN0ZWQgYW5kIHRoZSBjbGVhbnVwIHdpbGwgdGFrZSBwbGFjZSB1cG9uIHNlcnZlciByZXN0YXJ0IG9yIG5leHQgJ0FMVEVSIElOU1RBTkNFIFJPVEFURSBCSU5MT0cgTUFTVEVSIEtFWScgZXhlY3V0aW9uLgBBdXRoSWQgYCUuNjRzYEBgJS42NHNgIGlzIHNldCBhcyBtYW5kYXRvcnlfcm9sZXMuIENhbm5vdCBncmFudCB0aGUgJyVzJyBwcml2aWxlZ2UuACclcycgcHJpdmlsZWdlIGZvciBkYXRhYmFzZSAnJXMnIGV4aXN0cyBib3RoIGFzIHBhcnRpYWwgcmV2b2tlIGFuZCBteXNxbC5kYiBzaW11bHRhbmVvdXNseS4gSXQgY291bGQgbWVhbiAnbXlzcWwnIHNjaGVtYSBpcyBjb3JydXB0ZWQuAEFjY2VzcyBkZW5pZWQgZm9yIEF1dGhJZCBgJS42NHNgQGAlLjY0c2AgdG8gZGF0YWJhc2UgJyUtLjE5MnMnLgBBdCBsZWFzdCBvbmUgcGFydGlhbCByZXZva2UgZXhpc3RzIG9uIGEgZGF0YWJhc2UuIFRoZSBzeXN0ZW0gdmFyaWFibGUgJ0BAcGFydGlhbF9yZXZva2VzJyBtdXN0IGJlIHNldCB0byBPTi4AQXQgbGVhc3Qgb25lIHBhcnRpYWwgcmV2b2tlIGV4aXN0cyBvbiBhIGRhdGFiYXNlLiBUdXJuaW5nIE9OIHRoZSBzeXN0ZW0gdmFyaWFibGUgJ0BAcGFydGlhbF9yZXZva2VzJy4ARm9yIHVzZXIgJyVzJ0AnJXMnLCBvbmUgb3IgbW9yZSBwcml2aWxlZ2VzIGdyYW50ZWQgdGhyb3VnaCBteXNxbC5kYiBmb3IgZGF0YWJhc2UgJyVzJywgY29uZmxpY3Qgd2l0aCBwYXJ0aWFsIHJldm9rZS4gSXQgY291bGQgbWVhbiAnbXlzcWwnIHNjaGVtYSBpcyBjb3JydXB0ZWQuAEZvciB1c2VyICVzLCBpZ25vcmVkIHJlc3RyaWN0aW9ucyBmb3IgcHJpdmlsZWdlKHMpICclcycgZm9yIGRhdGFiYXNlICclcycgYXMgdGhlc2UgYXJlIG5vdCB2YWxpZCBkYXRhYmFzZSBwcml2aWxlZ2VzLgBGb3IgdXNlciAlcywgaWdub3JlZCByZXN0cmljdGlvbnMgZm9yIHByaXZpbGVnZShzKSAnJXMnIGZvciBkYXRhYmFzZSAnJXMnIGFzIGNvcnJlc3BvbmRpbmcgZ2xvYmFsIHByaXZpbGVnZShzKSBhcmUgbm90IGdyYW50ZWQuACclcycgaXMgYW4gaW52YWxpZCB2YWx1ZSBmb3IgZ3JvdXBfcmVwbGljYXRpb25fY29tbXVuaWNhdGlvbl9wcm90b2NvbF9qb2luLCBwbGVhc2UgdXNlIGEgTXlTUUwgdmVyc2lvbiBiZXR3ZWVuIDUuNy4xNCBhbmQgdGhpcyBzZXJ2ZXIncyB2ZXJzaW9uAFN0YXJ0ZWQgYXV0by1yZWpvaW4gcHJvY2VkdXJlIGF0dGVtcHQgJWx1IG9mICVsdQBUaW1lb3V0IHdoaWxlIHdhaXRpbmcgZm9yIGEgdmlldyBjaGFuZ2UgZXZlbnQgZHVyaW5nIHRoZSBhdXRvLXJlam9pbiBwcm9jZWR1cmUAQXV0by1yZWpvaW4gcHJvY2VkdXJlIGF0dGVtcHQgJWx1IG9mICVsdSBmaW5pc2hlZC4gTWVtYmVyIHdhcyVzIGFibGUgdG8gam9pbiB0aGUgZ3JvdXAuAFRoZSBtZW1iZXIgaXMgY29uZmlndXJlZCB3aXRoIGEgZGVmYXVsdF90YWJsZV9lbmNyeXB0aW9uIG9wdGlvbiB2YWx1ZSAnJWQnIGRpZmZlcmVudCBmcm9tIHRoZSBncm91cCAnJWQnLiBUaGUgbWVtYmVyIHdpbGwgbm93IGV4aXQgdGhlIGdyb3VwLgBTZXJ2ZXIgc2h1dHRpbmcgZG93biBiZWNhdXNlIHVwZ3JhZGUgaXMgcmVxdWlyZWQsIHlldCBwcm9oaWJpdGVkIGJ5IHRoZSBjb21tYW5kIGxpbmUgb3B0aW9uICctLXVwZ3JhZGU9Tk9ORScuAFNlcnZlciB1cGdyYWRlIGlzIHJlcXVpcmVkLCBidXQgc2tpcHBlZCBieSBjb21tYW5kIGxpbmUgb3B0aW9uICctLXVwZ3JhZGU9TUlOSU1BTCcuAFNlcnZlciB1cGdyYWRlIHN0YXJ0ZWQgd2l0aCB2ZXJzaW9uICVkLCBidXQgc2VydmVyIHVwZ3JhZGUgb2YgdmVyc2lvbiAlZCBpcyBzdGlsbCBwZW5kaW5nLgBGYWlsZWQgdG8gdXBncmFkZSBzZXJ2ZXIuAFNlcnZlciB1cGdyYWRlIGZyb20gJyVkJyB0byAnJWQnICVzLgBUYWJsZSAnJXMnIHJlcXVpcmVzIHJlcGFpci4AVGFibGUgJyVzJyByZXBhaXIgJXMuAENvdWxkIG5vdCBvcGVuIHNlcnZlciB1cGdyYWRlIGluZm8gZmlsZSAnJXMnIGZvciB3cml0aW5nLiBQbGVhc2UgbWFrZSBzdXJlIHRoZSBmaWxlIGlzIHdyaXRhYmxlLgBVcGdyYWRpbmcgdGhlIHN5cyBzY2hlbWEuAFJ1bm5pbmcgcXVlcmllcyB0byB1cGdyYWRlIE15U1FMIHNlcnZlci4AVXBncmFkaW5nIHN5c3RlbSB0YWJsZSBkYXRhLgBGb3VuZCBlbXB0eSBzeXMgZGF0YWJhc2UuIEluc3RhbGxpbmcgdGhlIHN5cyBzY2hlbWEuAEEgc3lzIHNjaGVtYSBleGlzdHMgd2l0aCBubyBzeXMudmVyc2lvbiB2aWV3LiBJZiB5b3UgaGF2ZSBhIHVzZXIgY3JlYXRlZCBzeXMgc2NoZW1hLCB0aGlzIG11c3QgYmUgcmVuYW1lZCBmb3IgdGhlIHVwZ3JhZGUgdG8gc3VjY2VlZC4AQSBzeXMgc2NoZW1hIGV4aXN0cyB3aXRoIGEgc3lzLnZlcnNpb24gdmlldywgYnV0IGl0IHJldHVybnMgbm8gcmVzdWx0cy4ARm91bmQgb3V0ZGF0ZWQgc3lzIHNjaGVtYSB2ZXJzaW9uICVzLgBUaGUgc3lzIHNjaGVtYSBpcyBhbHJlYWR5IHVwIHRvIGRhdGUgKHZlcnNpb24gJXMpLgBGb3VuZCAlZCBzeXMgJXMsIGJ1dCBleHBlY3RlZCAlZC4gUmUtaW5zdGFsbGluZyB0aGUgc3lzIHNjaGVtYS4AQ2hlY2tpbmcgJyVzJyBzY2hlbWEuAFRvbyBtYW55IGNvbmN1cnJlbnQgdHJhbnNhY3Rpb25zIHdoaWxlIGNsZWFyaW5nIHRoZSBEREwgTG9nLiBQbGVhc2UgaW5jcmVhc2UgdGhlIG51bWJlciBvZiBSb2xsYmFjayBTZWdtZW50cy4ARXJyb3IgaW4gRERMIExvZyByZWNvdmVyeSBkdXJpbmcgUG9zdC1SZWNvdmVyeSBwcm9jZXNzaW5nLgBFcnJvciBpbiBQb3N0LVRhYmxlc3BhY2UtRW5jcnlwdGlvbiBkdXJpbmcgUG9zdC1SZWNvdmVyeSBwcm9jZXNzaW5nLgBFcnJvciBpbiBETEwgTG9nIGNsZWFudXAgZHVyaW5nIFBvc3QtRERMIHByb2Nlc3NpbmcuACclcycgc3RhdGVtZW50IGlzIHVuc2FmZSBiZWNhdXNlIGl0IHVzZXMgYSBzeXN0ZW0gZnVuY3Rpb24gdGhhdCBtYXkgcmV0dXJuIGEgZGlmZmVyZW50IHZhbHVlIG9uIHRoZSByZXBsaWNhLgBVcGdyYWRlIG9mIGhlbHAgdGFibGVzICVzLgBFcnJvciB3aGVuIHdhaXRpbmcgZm9yIHRoZSBzZXJ2ZXIgdG8gZXhlY3V0ZSBsb2NhbCB0cmFuc2FjdGlvbnMgaW4gb3JkZXIgYXNzdXJlIHRoZSBncm91cCBjaGFuZ2UgcHJvcGVyIGxvZ2dpbmcAVW5hYmxlIHRvIGxvZyB0aGUgZ3JvdXAgY2hhbmdlIFZpZXcgbG9nIGV2ZW50IGluIGl0cyBleGFjdGlvbiBwb3NpdGlvbiBpbiB0aGUgbG9nLiBUaGlzIHdpbGwgbm90IGhvd2V2ZXIgYWZmZWN0IHRoZSBncm91cCByZXBsaWNhdGlvbiByZWNvdmVyeSBwcm9jZXNzIG9yIHRoZSBvdmVyYWxsIHBsdWdpbiBwcm9jZXNzLgBDYW5ub3QgZ3JhbnQgcm9sZXMgdG8gYW4gYW5vbnltb3VzIHVzZXIuAFVuYWJsZSB0byBjcmVhdGUgYSBuZXcgYmlubG9nIGZpbGU6IFRhYmxlIGBteXNxbC5ndGlkX2V4ZWN1dGVkYCBjb3VsZG4ndCBiZSBvcGVuZWQuICVzAE5ldHdvcmsgTmFtZXNwYWNlcyBpcyBub3Qgc3VwcG9ydGVkIG9uIHRoaXMgcGxhdGZvcm0AVW5rbm93biBuZXR3b3JrIG5hbWVzcGFjZSAnJXMnAE5ldHdvcmsgbmFtZXNwYWNlIG5vdCBhbGxvd2VkIGZvciB3aWxkY2FyZCBpbnRlcmZhY2UgYWRkcmVzcwBzZXRucygpIGZhaWxlZCB3aXRoIGVycm9yICclcycAV2lsZGNhcmQgYWRkcmVzcyB2YWx1ZSBub3QgYWxsb3dlZCBmb3IgbXVsdGl2YWx1ZWQgYmluZCBhZGRyZXNzAFRoZSBwYXRoIHRvIGEgc3BlY2lhbCBuZXR3b3JrIG5hbWVzcGFjZSBmaWxlIGlzIHRvbyBsb25nLiAoZ290ICV1ID4gbWF4ICV1KQBDYW5ub3QgY3JlYXRlIHRhYmxlc3BhY2UgJyVzJy4gVGhlIGZpbGVwYXRoIGlzIHRvbyBsb25nIGZvciB0aGlzIE9TLgBUaGUgbGFzdCBibG9jayBvZiByZWRvIGhhZCBjb3JydXB0ZWQgZmlyc3RfcmVjX2dyb3VwIGFuZCBiZWNhbWUgZml4ZWQgKCV1IC0+ICV1KS4ARGF0YSBkaWN0aW9uYXJ5IHVwZ3JhZGUgZnJvbSB2ZXJzaW9uICcldScgdG8gJyV1JyBjb21wbGV0ZWQuAFNlcnZlciBTU0wgY2VydGlmaWNhdGUgZG9lc24ndCB2ZXJpZnk6ICVzAFRydW5jYXRlZCBhIHVzZXIgbmFtZSBmb3IgJXMgdGhhdCB3YXMgdG9vIGxvbmcgd2hpbGUgcmVhZGluZyB0aGUgcGVyc2lzdGVkIHZhcmlhYmxlcyBmaWxlAFRydW5jYXRlZCBhIGhvc3QgbmFtZSBmb3IgJXMgdGhhdCB3YXMgdG9vIGxvbmcgd2hpbGUgcmVhZGluZyB0aGUgcGVyc2lzdGVkIHZhcmlhYmxlcyBmaWxlAFRoZSB3YWl0X3RpbWVvdXQgcGVyaW9kIHdhcyBleGNlZWRlZCwgdGhlIGlkbGUgdGltZSBzaW5jZSBsYXN0IGNvbW1hbmQgd2FzIHRvbyBsb25nLgAnJXMnIGZvdW5kIG5vdCBlbmNyeXB0ZWQgd2hpbGUgJyVzJyBpcyBPTi4gVHJ5aW5nIHRvIGVuY3J5cHQgaXQgbm93LgBDTE9DS19NT05PVE9OSUMgaXMgdW5zdXBwb3J0ZWQsIHNvIGRvIG5vdCBjaGFuZ2UgdGhlIHN5c3RlbSB0aW1lIHdoZW4gTXlTUUwgaXMgcnVubmluZyAhAGNsb2NrX2dldHRpbWUoKSBmYWlsZWQ6ICVzAFBsdWdpbiAnJXMnIGlzIG5vdCB0byBiZSB1c2VkIGFzIGFuICJlYXJseSIgcGx1Z2luLiBEb24ndCBhZGQgaXQgdG8gLS1lYXJseS1wbHVnaW4tbG9hZCwga2V5cmluZyBtaWdyYXRpb24gZXRjLgBQbHVnaW4gJyVzJyBpcyBtYXJrZWQgYXMgbm90IGR5bmFtaWNhbGx5IGluc3RhbGxhYmxlLiBZb3UgaGF2ZSB0byBzdG9wIHRoZSBzZXJ2ZXIgdG8gaW5zdGFsbCBpdC4AU1FMX0NBTENfRk9VTkRfUk9XUyBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4gQ29uc2lkZXIgdXNpbmcgdHdvIHNlcGFyYXRlIHF1ZXJpZXMgaW5zdGVhZC4ARk9VTkRfUk9XUygpIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLiBDb25zaWRlciB1c2luZyBDT1VOVCgqKSBpbnN0ZWFkLgBUaGUgc3RhdGVtZW50IGlzIHVuc2FmZSBiZWNhdXNlIGl0IGludm9rZXMgYSB0cmlnZ2VyIG9yIGEgc3RvcmVkIGZ1bmN0aW9uIHRoYXQgbW9kaWZpZXMgYSB0YWJsZSB0aGF0IGhhcyBhIGNvbHVtbiB3aXRoIGEgREVGQVVMVCBleHByZXNzaW9uIHRoYXQgbWF5IHJldHVybiBhIGRpZmZlcmVudCB2YWx1ZSBvbiB0aGUgcmVwbGljYS4ATWVtYmVyIHZlcnNpb24gaXMgcmVhZCBjb21wYXRpYmxlIHdpdGggdGhlIGdyb3VwLgBMb2NrIG9yZGVyIGRpc2FibGVkIChyZWFzb246IGluaXQgZmFpbGVkKS4AS2V5cmluZyBJRCB0aW1lc3RhbXAgdmFsdWUgaXMgaW52YWxpZDogJyVzJwBDYW5ub3QgcHJvY2VzcyBhdWRpdCBsb2cgZmlsZS4gRmlsZSBuYW1lIHRpbWVzdGFtcCB2YWx1ZSBpcyBtaXNzaW5nIG9yIGludmFsaWQ6ICclcycAQ2Fubm90IHByb2Nlc3MgYXVkaXQgbG9nIGZpbGUuIEZpbGUgbmFtZSBkb2VzIG5vdCBoYXZlIHJlcXVpcmVkIGZvcm1hdDogJyVzJwBDYW5ub3QgcHJvY2VzcyBhdWRpdCBsb2cgZmlsZS4gRmlsZSBuYW1lIGtleXJpbmcgSUQgdmFsdWUgaXMgbWlzc2luZzogJyVzJwBBdWRpdCBsb2cgZmlsZSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgcHJvY2Vzc2VkOiAnJXMnAENvdWxkIG5vdCBvcGVuIGF1ZGl0IGxvZyBmaWxlIGZvciByZWFkaW5nOiAnJXMnAEludmFsaWQgYXVkaXQgbG9nIGZpbGUgY29udGVudDogJyVzJwBDYW5ub3QgcmVhZCBwYXNzd29yZDogJyUuMzJzJy4AQ2Fubm90IHN0b3JlIHBhc3N3b3JkOiAnJS4zMnMnLgBDYW5ub3QgcmVtb3ZlIHBhc3N3b3JkOiAnJS4zMnMnLgAnYXVkaXRfbG9nJyBwYXNzd29yZCBoYXMgYmVlbiBjb3BpZWQgaW50byAnJS4zMnMnIGFuZCB3aWxsIGJlIHJlbW92ZWQgd2l0aCBmaXJzdCBwdXJnZWQgcGFzc3dvcmQuAFJlcXVlc3QgaWdub3JlZCBmb3IgJyUuNjRzJ0AnJS42NHMnLiBSb2xlIG5lZWRlZCB0byBwZXJmb3JtIG9wZXJhdGlvbjogJyUuMzJzJwBDYW4ndCBzdG9yZSBhbiBhcnJheSBvciBhbiBvYmplY3QgaW4gYSBzY2FsYXIga2V5IHBhcnQgb2YgdGhlIGluZGV4ICclLjE5MnMnAENhbm5vdCB1c2UgZnVuY3Rpb25hbCBpbmRleCAnJS0uNjRzJyBkdWUgdG8gdHlwZSBvciBjb2xsYXRpb24gY29udmVyc2lvbgBFeGNlZWRlZCBtYXggbnVtYmVyIG9mIHZhbHVlcyBwZXIgcmVjb3JkIGZvciBtdWx0aS12YWx1ZWQgaW5kZXggJyUtLjY0cycgYnkgJXUgdmFsdWUocykARXhjZWVkZWQgbWF4IHRvdGFsIGxlbmd0aCBvZiB2YWx1ZXMgcGVyIHJlY29yZCBmb3IgbXVsdGktdmFsdWVkIGluZGV4ICclLS42NHMnIGJ5ICV1IGJ5dGVzAERhdGEgdG9vIGxvbmcgZm9yIGZ1bmN0aW9uYWwgaW5kZXggJyUtLjY0cycASW52YWxpZCBKU09OIHZhbHVlIGZvciBDQVNUIGZvciBmdW5jdGlvbmFsIGluZGV4ICclLS42NHMnAE91dCBvZiByYW5nZSBKU09OIHZhbHVlIGZvciBDQVNUIGZvciBmdW5jdGlvbmFsIGluZGV4ICclLS42NHMnAEVtcHR5IHVzZXIgZG4gb3IgcGFzc3dvcmQgaXMgbm90IGFsbG93ZWQsIG5vdCBhdHRlbXB0aW5nIExEQVAgYmluZC4AR3JvdXBpbmcgb24gdGVtcG9yYWwgaXMgbm9uLWRldGVybWluaXN0aWMgZm9yIHRpbWV6b25lcyBoYXZpbmcgRFNULiBQbGVhc2UgY29uc2lkZXIgc3dpdGNoaW5nIHRvIFVUQyBmb3IgdGhpcyBxdWVyeS4AVGhlIGN1cnJlbnQgbGF5b3V0IG9mIHRoZSBBQ0wgdGFibGVzIGRvZXMgbm90IGNvbmZvcm0gdG8gdGhlIHNlcnZlcidzIGV4cGVjdGVkIGxheW91dC4gVGhleSdyZSBlaXRoZXIgYWx0ZXJlZCwgbWlzc2luZyBvciBub3QgdXBncmFkZWQgZnJvbSBhIHByZXZpb3VzIHZlcnNpb24uIEhvd2V2ZXIgYSBiZXN0IGVmZm9ydCBhdHRlbXB0IHRvIHJlYWQgZGF0YSBmcm9tIHRoZXNlIHRhYmxlcyB3aWxsIHN0aWxsIGJlIG1hZGUuAExPQ0tfT1JERVI6IEZhaWxlZCB0byB3cml0ZSB0byBmaWxlIDwlcz4uAExPQ0tfT1JERVI6IEZhaWxlZCB0byByZWFkIGZyb20gZmlsZSA8JXM+LgBMT0NLX09SREVSIG1lc3NhZ2U6ICVzAExvY2sgb3JkZXIgZGVwZW5kZW5jaWVzIGZpbGUgPCVzPiAoJWQ6JWQpIC0gKCVkOiVkKSA6ICVzAExvY2sgb3JkZXIgc2Nhbm5lcjogKCVkOiVkKSAtICglZDolZCkgOiAlcwBUaGUgbmV3bHkgY3JlYXRlZCBkYXRhIGRpcmVjdG9yeSAlcyBieSAtLWluaXRpYWxpemUgaXMgdW51c2FibGUuIFlvdSBjYW4gcmVtb3ZlIGl0LgBOby4gb2YgQi10cmVlIGxldmVsIGNyZWF0ZWQgZm9yIGluZGV4ICVzIGhhcyBjcm9zc2VkIHRoZSBwZXJtaXNzaWJsZSBsaW1pdC4gSWYgZGVidWcgb3B0aW9uIGlubm9kYl9saW1pdF9vcHRpbWlzdGljX2luc2VydF9kZWJ1ZyBpcyBiZWluZyB1c2VkIHRyeSB0d2Vha2luZyBpdCB0byBpbmNsdWRlIG1vcmUgcmVjb3JkcyBpbiBhIHBhZ2UuACVzACVzACVzAENsb25lIHJlbW92aW5nIGFsbCB1c2VyIGRhdGEgZm9yIHByb3Zpc2lvbmluZzogJXMATm9uIGlubm9kYiB0YWJsZTogJXMuJXMgaXMgbm90IGNsb25lZCBhbmQgaXMgZW1wdHkuAENsb25lIHNodXR0aW5nIGRvd24gc2VydmVyIGFzIFJFU1RBUlQgZmFpbGVkLiBQbGVhc2Ugc3RhcnQgc2VydmVyIHRvIGNvbXBsZXRlIGNsb25lIG9wZXJhdGlvbi4ARXJyb3Igd2hlbiBleHRyYWN0aW5nIHRoaXMgbWVtYmVyIEdUSUQgcHVyZ2VkIHNldC4gT3BlcmF0aW9ucyBhbmQgY2hlY2tzIG1hZGUgdG8gZ3JvdXAgam9pbmVycyBtYXkgYmUgaW5jb21wbGV0ZS4AVGhlcmUgd2FzIGFuIGlzc3VlIHdoZW4gY29uZmlndXJpbmcgdGhlIHJlbW90ZSBjbG9uaW5nIHByb2Nlc3M6ICVzAFRoZXJlIHdhcyBhbiBpc3N1ZSB3aGVuIGNsb25pbmcgZnJvbSBhbm90aGVyIHNlcnZlcjogJXMAVGhlcmUgd2FzIGFuIGlzc3VlIHdoZW4gdHJ5aW5nIHRvIGV2YWx1YXRlIHRoZSBiZXN0IGRpc3RyaWJ1dGVkIHJlY292ZXJ5IHN0cmF0ZWd5IHdoaWxlIGpvaW5pbmcuJXMATm8gdmFsaWQgb3IgT05MSU5FIG1lbWJlcnMgZXhpc3QgdG8gZ2V0IHRoZSBtaXNzaW5nIGRhdGEgZnJvbSB0aGUgZ3JvdXAuIEZvciBjbG9uaW5nIGNoZWNrIGlmIGRvbm9ycyBvZiB0aGUgc2FtZSB2ZXJzaW9uIGFuZCB3aXRoIGNsb25lIHBsdWdpbiBpbnN0YWxsZWQgZXhpc3QuIEZvciBpbmNyZW1lbnRhbCByZWNvdmVyeSBjaGVjayBpZiB5b3UgaGF2ZSBkb25vcnMgd2hlcmUgdGhlIHJlcXVpcmVkIGRhdGEgd2FzIG5vdCBwdXJnZWQgZnJvbSB0aGUgYmluYXJ5IGxvZ3MuAFRoZSBncm91cCByZXBsaWNhdGlvbiBwbHVnaW4gY291bGQgbm90IGtpbGwgdGhlIHBsdWdpbiByb3V0aW5lIGZvciAlcy4gJXMAVGhpcyBtZW1iZXIgd2lsbCBzdGFydCBkaXN0cmlidXRlZCByZWNvdmVyeSB1c2luZyBjbG9uZS4gSXQgaXMgZHVlIHRvIHRoZSBudW1iZXIgb2YgbWlzc2luZyB0cmFuc2FjdGlvbnMgYmVpbmcgaGlnaGVyIHRoYW4gdGhlIGNvbmZpZ3VyZWQgdGhyZXNob2xkIG9mICVsbHUuAFRoaXMgbWVtYmVyIHdpbGwgc3RhcnQgZGlzdHJpYnV0ZWQgcmVjb3ZlcnkgdXNpbmcgY2xvbmUuIEl0IGlzIGR1ZSB0byBubyBPTkxJTkUgbWVtYmVyIGhhcyB0aGUgbWlzc2luZyBkYXRhIGZvciByZWNvdmVyaW5nIGluIGl0cyBiaW5hcnkgbG9ncy4ARGlzdHJpYnV0ZWQgcmVjb3Zlcnkgd2lsbCB0cmFuc2ZlciBkYXRhIHVzaW5nOiAlcwBEdWUgdG8gc29tZSBpc3N1ZSBvbiB0aGUgcHJldmlvdXMgc3RlcCBkaXN0cmlidXRlZCByZWNvdmVyeSBpcyBub3cgZXhlY3V0aW5nOiAlcwBEdWUgdG8gYSBjcml0aWNhbCBjbG9uaW5nIGVycm9yIG9yIGxhY2sgb2YgZG9ub3JzLCBkaXN0cmlidXRlZCByZWNvdmVyeSBjYW5ub3QgYmUgZXhlY3V0ZWQuIFRoZSBtZW1iZXIgd2lsbCBub3cgbGVhdmUgdGhlIGdyb3VwLgBUaGUgJyVzJyB0aHJlYWQgb2YgY2hhbm5lbCAnJXMnIHdpbGwgZXJyb3Igb3V0IGFzIHRoZSBzZXJ2ZXIgd2lsbCBhdHRlbXB0IHRvIGNsb25lIGFub3RoZXIgc2VydmVyAFVua25vd24gdGFibGUgJyUtLjEyOXMnAExvbmcgZGF0YWJhc2UgbmFtZSBhbmQgaWRlbnRpZmllciBmb3Igb2JqZWN0IHJlc3VsdGVkIGluIHBhdGggbGVuZ3RoIGV4Y2VlZGluZyAlZCBjaGFyYWN0ZXJzLiBQYXRoOiAnJXMnLgBYQTogRmFpbGVkIHRvIHRha2UgTURMIExvY2sgYmFja3VwIG9mIFBSRVBBUkVEIFhBIHRyYW5zYWN0aW9uIGR1cmluZyBjbGllbnQgZGlzY29ubmVjdC4AU1VQRVIgcHJpdmlsZWdlIG9yIEFVRElUX0FETUlOIHJvbGUgcmVxdWlyZWQgZm9yICclcydAJyVzJyB1c2VyLgBJbnZhbGlkIGFyZ3VtZW50IHR5cGUASW52YWxpZCBhcmd1bWVudCBjb3VudABhdWRpdF9sb2cgcGx1Z2luIGhhcyBub3QgYmVlbiBpbnN0YWxsZWQgdXNpbmcgSU5TVEFMTCBQTFVHSU4gc3ludGF4LgBJbnZhbGlkICJtYXhfYXJyYXlfbGVuZ3RoIiBhcmd1bWVudCB0eXBlLgBGYWlsZWQgdG8gd3JpdGUgdG8gJXM6ICVzICglcykAVXBncmFkaW5nIGZyb20gc2VydmVyIHZlcnNpb24gJWQgd2l0aCBwYXJ0aXRpb25lZCB0YWJsZXMgYW5kIGxvd2VyX2Nhc2VfdGFibGVfbmFtZXMgPT0gMSBvbiBhIGNhc2Ugc2Vuc2l0aXZlIGZpbGUgc3lzdGVtIG1heSBjYXVzZSBpc3N1ZXMsIGFuZCBpcyB0aGVyZWZvcmUgcHJvaGliaXRlZC4gVG8gdXBncmFkZSBhbnl3YXksIHJlc3RhcnQgdGhlIG5ldyBzZXJ2ZXIgdmVyc2lvbiB3aXRoIHRoZSBjb21tYW5kIGxpbmUgb3B0aW9uICd1cGdyYWRlPUZPUkNFJy4gV2hlbiB1cGdyYWRlIGlzIGNvbXBsZXRlZCwgcGxlYXNlIGV4ZWN1dGUgJ1JFTkFNRSBUQUJMRSA8cGFydF90YWJsZV9uYW1lPiBUTyA8bmV3X3RhYmxlX25hbWU+OyBSRU5BTUUgVEFCTEUgPG5ld190YWJsZV9uYW1lPiBUTyA8cGFydF90YWJsZV9uYW1lPjsnIGZvciBlYWNoIG9mIHRoZSBwYXJ0aXRpb25lZCB0YWJsZXMuIFBsZWFzZSBzZWUgdGhlIGRvY3VtZW50YXRpb24gZm9yIGZ1cnRoZXIgaW5mb3JtYXRpb24uAEluY29ycmVjdCBlbnZpcm9ubWVudCB2YXJpYWJsZSAlcywgaW52YWxpZCBwb3J0OiAlcwBUaGUgc2VydmVyIHdhcyBhdXRvbWF0aWNhbGx5IHNldCBpbnRvIG9mZmxpbmUgbW9kZSBhZnRlciBhbiBlcnJvciB3YXMgZGV0ZWN0ZWQuAEEgbWVzc2FnZSBzZW50IHRocm91Z2ggdGhlIEdyb3VwIFJlcGxpY2F0aW9uIG1lc3NhZ2UgZGVsaXZlciBzZXJ2aWNlIHdhcyBub3QgZGVsaXZlcmVkIHN1Y2Nlc3NmdWxseS4gVGhlIHNlcnZlciB3aWxsIG5vdyBsZWF2ZSB0aGUgZ3JvdXAuIFRyeSB0byBhZGQgdGhlIHNlcnZlciBiYWNrIHRvIHRoZSBncm91cCBhbmQgY2hlY2sgaWYgdGhlIHByb2JsZW0gcGVyc2lzdHMsIG9yIGNoZWNrIHByZXZpb3VzIG1lc3NhZ2VzIGluIHRoZSBsb2cgZm9yIGhpbnRzIG9mIHdoYXQgY291bGQgYmUgdGhlIHByb2JsZW0uAEludmFsaWQgU09VUkNFX0NPTVBSRVNTSU9OX0FMR09SSVRITVMgJyUuMTkycycgZm91bmQgaW4gcmVwb3NpdG9yeSBmb3IgY2hhbm5lbCAnJS4xOTJzJy4gUmVzZXR0aW5nIHRvICd1bmNvbXByZXNzZWQnIChubyBjb21wcmVzc2lvbikuAEludmFsaWQgU09VUkNFX1pTVERfQ09NUFJFU1NJT05fTEVWRUwgZm91bmQgaW4gcmVwb3NpdG9yeSBmb3IgY2hhbm5lbCAnJS4xOTJzJy4gUmVzZXR0aW5nIHRvICV1LgBPcHRpb24gLS1wcm90b2NvbC1jb21wcmVzc2lvbi1hbGdvcml0aG1zIGlzIHJlc2V0IHRvIGRlZmF1bHQgdmFsdWUuAEZhdGFsIGVycm9yIHdoaWxlIGNvbXByZXNzaW5nIG91dGdvaW5nIGRhdGEgLSAlcwAlcwBVbmtub3duIGtleXJpbmdfYXdzX3JlZ2lvbiAnJS4xOTJzJy4gQ29ubmVjdGlvbiB0byBBV1MgS01TIG1heSBmYWlsLgBQUklWSUxFR0VfQ0hFQ0tTX1VTRVIgZm9yIHJlcGxpY2F0aW9uIGNoYW5uZWwgJyUuMTkycycgd2FzIHNldCB0byBgJS42NHNgQGAlLjI1NXNgLCBidXQgdGhpcyBpcyBub3QgYW4gZXhpc3RpbmcgdXNlci4gQ29ycmVjdCB0aGlzIGJlZm9yZSBzdGFydGluZyByZXBsaWNhdGlvbiB0aHJlYWRzLgBJbnZhbGlkLCBjb3JydXB0ZWQgUFJJVklMRUdFX0NIRUNLU19VU0VSIHdhcyBmb3VuZCBpbiB0aGUgcmVwbGljYXRpb24gY29uZmlndXJhdGlvbiByZXBvc2l0b3J5IGZvciBjaGFubmVsICclLjE5MnMnLiBVc2UgQ0hBTkdFIFJFUExJQ0FUSU9OIFNPVVJDRSBUTyBQUklWSUxFR0VfQ0hFQ0tTX1VTRVIgdG8gY29ycmVjdCB0aGUgY29uZmlndXJhdGlvbi4AUFJJVklMRUdFX0NIRUNLU19VU0VSIGZvciByZXBsaWNhdGlvbiBjaGFubmVsICclLjE5MnMnIHdhcyBzZXQgdG8gYCUuNjRzYEBgJS4yNTVzYCwgYnV0IHRoaXMgdXNlciBkb2VzIG5vdCBoYXZlIFJFUExJQ0FUSU9OX0FQUExJRVIgcHJpdmlsZWdlLiBDb3JyZWN0IHRoaXMgYmVmb3JlIHN0YXJ0aW5nIHRoZSByZXBsaWNhdGlvbiB0aHJlYWRzLgBUaGUgUFJJVklMRUdFX0NIRUNLU19VU0VSIGZvciBjaGFubmVsICclLjE5MnMnIHdvdWxkIG5lZWQgRklMRSBwcml2aWxlZ2UgdG8gZXhlY3V0ZSBhIExPQUQgREFUQSBJTkZJTEUgc3RhdGVtZW50IHJlcGxpY2F0ZWQgaW4gc3RhdGVtZW50IGZvcm1hdC4gQ29uc2lkZXIgdXNpbmcgYmlubG9nX2Zvcm1hdD1ST1cgb24gc291cmNlLiBJZiB0aGUgcmVwbGljYXRlZCBldmVudHMgYXJlIHRydXN0ZWQsIHJlY292ZXIgZnJvbSB0aGUgZmFpbHVyZSBieSB0ZW1wb3JhcmlseSBncmFudGluZyBGSUxFIHRvIHRoZSBQUklWSUxFR0VfQ0hFQ0tTX1VTRVIuAFJlcGxpY2EgU1FMIHRocmVhZCVzIGluaXRpYWxpemVkLCBzdGFydGluZyByZXBsaWNhdGlvbiBpbiBsb2cgJyVzJyBhdCBwb3NpdGlvbiAlcywgcmVsYXkgbG9nICclcycgcG9zaXRpb246ICVzLCB1c2VyOiAnJS42NHMnQCclLjI1NXMnLCByb2xlczogJS41MTJzAENhbm5vdCBnZW5lcmF0ZSBwYXNzd29yZDogJyUuMzJzJwBGYWlsZWQgdG8gZ2VuZXJhdGUgYSByYW5kb20gcGFzc3dvcmQgZm9yIHJvb3QuIFByb2JhYmFibHkgbm90IGVub3VnaCBlbnRocm9weS4ASWdub3JpbmcgLS1wbHVnaW4tbG9hZFtfYWRkXSBsaXN0IGFzIHRoZSBzZXJ2ZXIgaXMgcnVubmluZyB3aXRoIC0taW5pdGlhbGl6ZSgtaW5zZWN1cmUpLgBDYW5ub3Qgc2V0IG1hbmRhdG9yeV9yb2xlczogQXV0aElkIGAlLjY0c2BAYCUuNjRzYCBoYXMgJyVzJyBwcml2aWxlZ2UuIEF1dGhJZChzKSBzZXQgaW4gdGhlIG1hbmRhdG9yeV9yb2xlcyBhcmUgaWdub3JlZC4ARGlyZWN0b3J5ICclcycgd2lsbCBub3QgYmUgc2Nhbm5lZCBiZWNhdXNlIGl0IGlzIGEgaGlkZGVuIGRpcmVjdG9yeS4AU2VydmVyIHdhcyBub3QgYWJsZSB0byBmaW5kIGEgcm90YXRlIGV2ZW50IGZyb20gc291cmNlIHNlcnZlciB0byBpbml0aWFsaXplIHJlbGF5IGxvZyByZWNvdmVyeSBmb3IgY2hhbm5lbCAnJXMnLiBTa2lwcGluZyByZWxheSBsb2cgcmVjb3ZlcnkgZm9yIHRoZSBjaGFubmVsLgBSb2xsaW5nIGJhY2sgTE9CIGZvciB0cmFuc2FjdGlvbiAlbGx1IHVuZG8gbnVtYmVyICVsbHUgOiBjdXJyZW50IGluZGV4IGxlbmd0aCAlbGx1LiAoaXRlcmF0aW9uICVsbHUpAEVycm9yIGluIHByb2Nlc3NpbmcgKHBvc3NpYmx5IGRlcHJlY2F0ZWQpIGV4cHJlc3Npb24gb3IgZnVuY3Rpb24gJyUuMTI4cycgZm9yIGdlbmVyYXRlZCBjb2x1bW4gJS42NHMuJS42NHMuJS42NHMAVGhlIHF1ZXVlIGV2ZW50IGZhaWxlZCBmb3IgY2hhbm5lbCAnJXMnIGFzIGFuIGludmFsaWQgZXZlbnQgYWNjb3JkaW5nIHRvIFJFUVVJUkVfUk9XX0ZPUk1BVCB3YXMgZm91bmQuAFRoZSBhcHBsaWNhdGlvbiBvZiByZWxheSBldmVudHMgZmFpbGVkIGZvciBjaGFubmVsICclcycgYXMgYW4gaW52YWxpZCBldmVudCBhY2NvcmRpbmcgdG8gUkVRVUlSRV9ST1dfRk9STUFUIHdhcyBmb3VuZC4AUFJJVklMRUdFX0NIRUNLU19VU0VSIGZvciByZXBsaWNhdGlvbiBjaGFubmVsICclLjE5MnMnIGNhbid0IGJlIHNldCB0byBgJS42NHNgQGAlLjI1NXNgIHVubGVzcyBSRVFVSVJFX1JPV19GT1JNQVQgaXMgYWxzbyBzZXQgdG8gJWQuAEFuIHVuZXhwZWN0ZWQgZXZlbnQgc2VxdWVuY2Ugd2FzIGRldGVjdGVkIGJ5IHRoZSBTUUwgdGhyZWFkIHdoaWxlIGFwcGx5aW5nIGFuIGV2ZW50LgBVcGRhdGluZyBwYXJ0aXRpb24gZmlsZSBuYW1lICclcycgdG8gJyVzJyBhbmQgYWxsIG90aGVyIHBhcnRpdGlvbiBmaWxlcyBkdXJpbmcgdXBncmFkZQBVcGRhdGluZyBwYXJ0aXRpb24gZmlsZSBuYW1lICclcycgdG8gJyVzJyBhbmQgYWxsIG90aGVyIHBhcnRpdGlvbiBmaWxlcyBkdXJpbmcgZG93bmdyYWRlAFVwZGF0aW5nIHBhcnRpdGlvbiBmaWxlIG5hbWUgJyVzJyB0byAnJXMnIGZvciBpbXBvcnQAVW5hYmxlIHRvIG9wZW4gcGFydGl0aW9uIGZpbGUgd2l0aCBuZXcgbmFtZSAnJXMnLiBQbGVhc2UgY2hlY2sgaWYgaW5ub2RiX2RpcmVjdG9yaWVzIGlzIHNldCB0byBpbmNsdWRlIGFsbCBleHRlcm5hbCBmaWxlIHBhdGhzACVzIEREIElEOiAlbGx1IC0gUGFydGl0aW9uIHRhYmxlc3BhY2UgJXUsIG5hbWUgJyVzJyBpcyBjb3JyZWN0ZWQgdG8gJyVzJwAlcyBERCBJRDogJWxsdSAtIFRhYmxlc3BhY2UgJXUsIG5hbWUgJyVzJywgJyVzJyBpcyBtb3ZlZCB0byAnJXMnACVzIEREIElEOiAlbGx1IC0gUGFydGl0aW9uIHRhYmxlc3BhY2UgJXUsIG5hbWUgJyVzJywgJyVzJyBpcyB1cGRhdGVkIHRvICclcycAJXMgVG9vIG1hbnkgZmlsZXMgaGF2ZSBiZWVuIG1vdmVkLCBkaXNhYmxpbmcgbG9nZ2luZyBvZiBkZXRhaWxlZCBtZXNzYWdlcwBFbGVjdGVkIHByaW1hcnkgbWVtYmVyICVzOiAlcwBTY2hlbWEgbmFtZSAnJXMnIGNvbnRhaW5pbmcgdXBwZXIgY2FzZSBjaGFyYWN0ZXJzIGlzIG5vdCBhbGxvd2VkIHdpdGggbG93ZXJfY2FzZV90YWJsZV9uYW1lcyA9IDEuAFRhYmxlIG5hbWUgJyVzLiVzJyBjb250YWluaW5nIHVwcGVyIGNhc2UgY2hhcmFjdGVycyBpcyBub3QgYWxsb3dlZCB3aXRoIGxvd2VyX2Nhc2VfdGFibGVfbmFtZXMgPSAxLgBTY2hlbWEgbmFtZSAnJXMnIGNvbnRhaW5pbmcgdXBwZXIgY2FzZSBjaGFyYWN0ZXJzLCB1c2VkIGJ5IGZvcmVpZ24ga2V5ICclcycgaW4gdGFibGUgJyVzLiVzJywgaXMgbm90IGFsbG93ZWQgd2l0aCBsb3dlcl9jYXNlX3RhYmxlX25hbWVzID0gMS4AVGFibGUgbmFtZSAnJXMuJXMnIGNvbnRhaW5pbmcgdXBwZXIgY2FzZSBjaGFyYWN0ZXJzLCB1c2VkIGJ5IGZvcmVpZ24ga2V5ICclcycgaW4gdGFibGUgJyVzLiVzJywgaXMgbm90IGFsbG93ZWQgd2l0aCBsb3dlcl9jYXNlX3RhYmxlX25hbWVzID0gMS4AVGFibGUgUGFydGl0aW9uOiAlcyBpcyBub3QgZm91bmQgaW4gSW5ub0RCIGRpY3Rpb25hcnkAQWNjZXNzIGRlbmllZCBmb3IgdXNlciAnJS0uNDhzJ0AnJS0uNjRzJy4gQWNjb3VudCBpcyBibG9ja2VkIGZvciAlcyBkYXkocykgKCVzIGRheShzKSByZW1haW5pbmcpIGR1ZSB0byAldSBjb25zZWN1dGl2ZSBmYWlsZWQgbG9naW5zLiBVc2UgRkxVU0ggUFJJVklMRUdFUyBvciBBTFRFUiBVU0VSIHRvIHJlc2V0LgAlcwBVcGdyYWRlIGNhbm5vdCBwcm9jZWVkIGR1ZSB0byBhbiBleGlzdGluZyBwcmVwYXJlZCBYQSB0cmFuc2FjdGlvbi4AQ291bGQgbm90IGFsbG9jYXRlIG1lbW9yeSBmb3Iga2V5X2luZm8gd2hlbiBtaWdyYXRpbmcgdGFibGUgJXMuJXMAQXBwbGllciBtZXRhZGF0YSBpbmZvcm1hdGlvbiBmb3IgY2hhbm5lbCAnJXMnIHdhcyBmb3VuZCBhZnRlciBhIGNsb25lIG9wZXJhdGlvbi4gUmVsYXkgbG9nIHJlY292ZXJ5IHdpbGwgYmUgZXhlY3V0ZWQgdG8gYWRqdXN0IHBvc2l0aW9ucyBhbmQgZmlsZSBpbmZvcm1hdGlvbiBmb3IgdGhpcyBuZXcgc2VydmVyLiBTaG91bGQgdGhhdCBhdXRvbWF0aWMgcHJvY2VkdXJlIGZhaWwgcGxlYXNlIGFkanVzdCB0aGUgcG9zaXRpb25zIHRocm91Z2ggJ0NIQU5HRSBSRVBMSUNBVElPTiBTT1VSQ0UgVE8nAEZhaWxlZCB0byBkZWxldGUgNS43IHVuZG8gdGFibGVzcGFjZTogJXMgZHVyaW5nIHVwZ3JhZGUARW1wdHkgZG91Ymxld3JpdGUgZmlsZTogJXMAVXNpbmcgJyVzJyBmb3IgZG91Ymxld3JpdGUARXJyb3IgcmVhZGluZyBkb3VibGV3cml0ZSBidWZmZXIgZnJvbSB0aGUgc3lzdGVtIHRhYmxlc3BhY2UAQ2Fubm90IGNyZWF0ZSBkb3VibGV3cml0ZSBidWZmZXI6IHlvdSBtdXN0IGluY3JlYXNlIHlvdXIgYnVmZmVyIHBvb2wgc2l6ZS4gQ2Fubm90IGNvbnRpbnVlIG9wZXJhdGlvbi4AVGhlIHBhZ2UgaW4gdGhlIGRvdWJsZXdyaXRlIGZpbGUgaXMgY29ycnVwdC4gQ2Fubm90IGNvbnRpbnVlIG9wZXJhdGlvbi4gWW91IGNhbiB0cnkgdG8gcmVjb3ZlciB0aGUgZGF0YWJhc2Ugd2l0aCBpbm5vZGJfZm9yY2VfcmVjb3Zlcnk9NgBUaGUgZG91Ymxld3JpdGUgZmlsZW5hbWUgJyVzJyBpcyBpbmNvcnJlY3QuACVzAERvdWJsZXdyaXRlIGZpbGUgY3JlYXRlIGZhaWxlZDogJXMAREJMV1JUaHJlYWQ6IHB0aHJlYWRfc2V0YWZmaW5pdHkoKSBmYWlsZWQhACVzACVzAERvdWJsZXdyaXRlIGZpbGUgcmVhZCBmYWlsZWQ6ICVzAER1bXAgb2YgdGhlIGRhdGEgZmlsZSBwYWdlOgAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwBEb3VibGV3cml0ZSBsb2FkIGZpbGUgJXMgc2l6ZSAlbHUgaXMgbm90IGEgbXVsdGlwbGUgb2YgdGhlIGNvbmZpZ3VyZWQgcGFnZSBzaXplICVsdSIARG91Ymxld3JpdGUgZmlsZSAlcyB0cnVuY2F0ZSBmYWlsZWQARG91Ymxld3JpdGUgZmlsZSAlcyBmYWlsZWQgdG8gd3JpdCB6ZXJvcwBEb3VibGV3cml0ZSBjcmVhdGUgZmlsZSAlcyBzaXplICVsdSBpcyBub3QgYSBtdWx0aXBsZSBvZiB0aGUgY29uZmlndXJlZCBwYWdlIHNpemUgJWx1IgAlcwAlcwAlcwAlcwAlcwBDb3VsZCBub3QgZmx1c2ggYWxsIEdUSURzIGR1cmluZyBzbG93IHNodXRkb3duLiBXaWxsIHJlY292ZXIgR1RJRHMgd2hlbiBzZXJ2ZXIgcmVzdGFydHMuAEZhaWxlZCB0byBkZWxldGUgNS43IHN0YXQgdGFibGVzcGFjZTogJXMgZHVyaW5nIHVwZ3JhZGUASW5zdGFsbGluZyBuZGJpbmZvIHNjaGVtYSB2ZXJzaW9uICVzAEluc3RhbGxlZCBuZGJpbmZvIHNjaGVtYSBpcyBjdXJyZW50LiBOb3QgdXBncmFkaW5nLgBGYWlsZWQgdG8gdXBncmFkZSBuZGJpbmZvIHNjaGVtYS4AJXMASW5ub0RCIGluaXRpYWxpemF0aW9uIGhhcyBzdGFydGVkLgBJbm5vREIgaW5pdGlhbGl6YXRpb24gaGFzIGVuZGVkLgBDb3VsZCBub3QgZmluZCBhcHByb3ByaWF0ZSByZXNldCBwb2ludHMuAFVuYWJsZSB0byBmbHVzaC4gUGFnZSBhcmNoaXZpbmcgZGF0YSBtYXkgYmUgY29ycnVwdCBpbiBjYXNlIG9mIGEgY3Jhc2guAFBhZ2UgYXJjaGl2ZXIncyBkb3VibGV3cml0ZSBidWZmZXIgZm9yICVsZCBpcyBub3QgdmFsaWQuAFBhZ2UgYXJjaGl2ZXIgc3lzdGVtJ3MgcmVjb3ZlcnkgZmFpbGVkLgBJbnZhbGlkIGFyY2hpdmVkIGZpbGUgbmFtZSBmb3JtYXQuIFRoZSBhcmNoaXZlZCBmaWxlIGlzIHN1cHBvc2VkIHRvIGhhdmUgdGhlIGZvcm1hdCAlcyArIFswLTldKi4AWCBQbHVnaW5zIFVOSVggc29ja2V0IG11c3QgdXNlIGRpZmZlcmVudCBmaWxlIHRoYW4gTXlTUUwgc2VydmVyLiBYIFBsdWdpbiB3b24ndCBiZSBhY2Nlc3NpYmxlIHRocm91Z2ggVU5JWCBzb2NrZXQAJXMAQ29sdW1uICclLjY0cy4lLjY0cy4lLjY0cycgaGF2aW5nIHByZWZpeCBrZXkgcGFydCAnJS42NHMoJXUpJyBpcyBpZ25vcmVkIGJ5IHRoZSBwYXJ0aXRpb25pbmcgZnVuY3Rpb24uIFVzZSBvZiBwcmVmaXhlZCBjb2x1bW5zIGluIHRoZSBQQVJUSVRJT04gQlkgS0VZKCkgY2xhdXNlIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgBVbmRvIFRydW5jYXRpb24gaXMgb2NjdXJyaW5nIHRvbyBvZnRlbi4gQ29uc2lkZXIgaW5jcmVhc2luZyAtLWlubm9kYi1tYXgtdW5kby1sb2ctc2l6ZS4AUGx1Z2luICdncm91cF9yZXBsaWNhdGlvbicgaXMgc3RhcnRpbmcuAENhbm5vdCBjcmVhdGUgdGFibGVzcGFjZSAlcyBiZWNhdXNlIHRoZSBkaXJlY3RvcnkgaXMgbm90IGEgdmFsaWQgbG9jYXRpb24uICVzAFNjYW5uZWQgZmlsZSAnJXMnIGZvciB0YWJsZXNwYWNlICVzIGNhbm5vdCBiZSBvcGVuZWQgYmVjYXVzZSBpdCBpcyBub3QgaW4gYSBzdWItZGlyZWN0b3J5IG5hbWVkIGZvciB0aGUgc2NoZW1hLgBDYW5ub3QgZmluZCB1bmRvIHRhYmxlc3BhY2UgJXMgd2l0aCBmaWxlbmFtZSAnJXMnIGFzIGluZGljYXRlZCBieSB0aGUgRGF0YSBEaWN0aW9uYXJ5LiBEaWQgeW91IG1vdmUgb3IgZGVsZXRlIHRoaXMgdGFibGVzcGFjZT8gQW55IHVuZG8gbG9ncyBpbiBpdCBjYW5ub3QgYmUgdXNlZC4ASW52YWxpZCBpbnB1dCB2YWx1ZSBmb3IgcmVjb3Zlcnkgc29ja2V0IGVuZHBvaW50cyAnJXMnLiBQbGVhc2UsIHByb3ZpZGUgYSB2YWxpZCwgY29tbWEgc2VwYXJhdGVkLCBsaXN0IG9mIGVuZHBvaW50cyAoSVA6cG9ydCkAVGhlIHNlcnZlciBpcyBub3QgbGlzdGVuaW5nIG9uIGVuZHBvaW50ICclcycuIE9ubHkgZW5kcG9pbnRzIHRoYXQgdGhlIHNlcnZlciBpcyBsaXN0ZW5pbmcgb24gYXJlIHZhbGlkIHJlY292ZXJ5IGVuZHBvaW50cy4AUmVjZWl2ZWQgaW52YWxpZCByZWNvdmVyeSBlbmRwb2ludHMgY29uZmlndXJhdGlvbiBmcm9tIGRvbm9yLiBUaGlzIG1lbWJlciBpcyBub3QgYSB2YWxpZCBkb25vciBmb3IgcmVjb3ZlcnksIHNvIGl0IHdpbGwgYmUgc2tpcHBlZC4ARmFpbGVkIHRvIHJldHJpZXZlIElQIGFkZHJlc3NlcyBmcm9tIGVuYWJsZWQgaG9zdCBuZXR3b3JrIGludGVyZmFjZXMuAEZhaWxlZCB0byBpbml0aWFsaXplIFRMUyBmb3IgY2hhbm5lbDogJXMuIFNlZSBiZWxvdyBmb3IgdGhlIGRlc2NyaXB0aW9uIG9mIGV4YWN0IGlzc3VlLgBWYWxpZGF0aW9uIG9mIHZhbHVlICclcycgc2V0IHRvIGBNeXNxbHhfYmluZF9hZGRyZXNzYCBmYWlsZWQ6ICVzLiBTa2lwcGluZyB0aGlzIHZhbHVlLgBWYWx1ZSAnJXMnIHNldCB0byBgTXlzcWx4X2JpbmRfYWRkcmVzc2AsIFggUGx1Z2luIGNhbid0IGJpbmQgdG8gaXQuIFNraXBwaW5nIHRoaXMgdmFsdWUuAFNlcnZlciB3YXMga2lsbGVkIHdoZW4gSW5ub0RCIHJlZG8gbG9nZ2luZyB3YXMgZGlzYWJsZWQuIERhdGEgZmlsZXMgY291bGQgYmUgY29ycnVwdC4gWW91IGNhbiB0cnkgdG8gcmVzdGFydCB0aGUgZGF0YWJhc2Ugd2l0aCBpbm5vZGJfZm9yY2VfcmVjb3Zlcnk9NgBJbm5vREIgY2Fubm90IGRvIGNvbGQgc2h1dGRvd24gJ2lubm9kYl9mYXN0X3NodXRkb3duID0gMicgYW5kIGlzIGZvcmNpbmcgJ2lubm9kYl9mYXN0X3NodXRkb3duID0gMScgYXMgcmVkbyBsb2dnaW5nIGlzIGRpc2FibGVkLiBJbm5vREIgd291bGQgZmx1c2ggYWxsIGRpcnR5IHBhZ2VzIHRvIGVuc3VyZSBwaHlzaWNhbCBkYXRhIGNvbnNpc3RlbmN5LgBJbm5vREIgcmVkbyBsb2dnaW5nIGlzIGRpc2FibGVkLiBBbGwgZGF0YSBjb3VsZCBiZSBsb3N0IGluIGNhc2Ugb2YgYSBzZXJ2ZXIgY3Jhc2guAElubm9EQiByZWRvIGxvZ2dpbmcgaXMgZW5hYmxlZC4gRGF0YSBpcyBub3cgc2FmZSBhbmQgY2FuIGJlIHJlY292ZXJlZCBpbiBjYXNlIG9mIGEgc2VydmVyIGNyYXNoLgBDaGFubmVsICVzIGNvbmZpZ3VyZWQgdG8gc3VwcG9ydCBUTFMuIEVuY3J5cHRlZCBjb25uZWN0aW9ucyBhcmUgbm93IHN1cHBvcnRlZCBmb3IgdGhpcyBjaGFubmVsLgBObyBUTFMgY29uZmlndXJhdGlvbiB3YXMgZ2l2ZW4gZm9yIGNoYW5uZWwgJXM7IHJlLXVzaW5nIFRMUyBjb25maWd1cmF0aW9uIG9mIGNoYW5uZWwgJXMuAFNraXBwaW5nIElubm9EQiB0YWJsZXNwYWNlIHBhdGggdmFsaWRhdGlvbi4gTWFudWFsbHkgbW92ZWQgdGFibGVzcGFjZSBmaWxlcyB3aWxsIG5vdCBiZSBkZXRlY3RlZCEAVXBncmFkZSBmYWlsZWQgYmVjYXVzZSBkYXRhYmFzZSBjb250YWlucyBkaXNjYXJkZWQgdGFibGVzcGFjZXMuAFRoZSB1c2VyIG5hbWUgJyVzJyBleGNlZWRzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBhbGxvd2VkIGNoYXJhY3RlcnMgJWQgYW5kIGlzIHRydW5rYXRlZC4AVGhlIGhvc3QgbmFtZSAnJXMnIGV4Y2VlZHMgdGhlIG1heGltdW0gbnVtYmVyIG9mIGFsbG93ZWQgY2hhcmFjdGVycyAlZCBhbmQgaXMgdHJ1bmthdGVkLgBSb2xsYmFjayBvZiBub24tcHJlcGFyZWQgdHJhbnNhY3Rpb25zIG5vdCBjb21wbGV0ZWQsIGR1ZSB0byBmYXN0IHNodXRkb3duAEZvdW5kIGFuIGVudHJ5IGluIHRoZSAncm9sZV9lZGdlcycgdGFibGUgd2l0aCBlbXB0eSBhdXRob3JpemF0aW9uIElEOyBTa2lwcGVkAEZvdW5kIGFuIGVudHJ5IGluIHRoZSAncm9sZV9lZGdlcycgdGFibGUgd2l0aCB1bmtub3duIGF1dGhvcml6YXRpb24gSUQgJyVzJzsgU2tpcHBlZABGb3VuZCBhbiBlbnRyeSBpbiB0aGUgJ2RlZmF1bHRfcm9sZXMnIHRhYmxlIHdpdGggZW1wdHkgYXV0aG9yaXphdGlvbiBJRDsgU2tpcHBlZABGb3VuZCBhbiBlbnRyeSBpbiB0aGUgJ2RlZmF1bHRfcm9sZXMnIHRhYmxlIHdpdGggdW5rbm93biBhdXRob3JpemF0aW9uIElEICclcyc7IFNraXBwZWQAQ291bGRuJ3QgaW5zZXJ0IGVudHJ5IGluIGRkbCBsb2cgZm9yIGRkbC4AJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAVGhlIHN0YXRlIG9mIHVuZG8gdGFibGVzcGFjZSAlcyBpcyBzZXQgdG8gYWN0aXZlIGltcGxpY2l0bHkuAFRoZSBzdGF0ZSBvZiB1bmRvIHRhYmxlc3BhY2UgJXMgaXMgc2V0IHRvICdhY3RpdmUnIGJ5IEFMVEVSIFRBQkxFU1BBQ0UuAFRoZSBzdGF0ZSBvZiB1bmRvIHRhYmxlc3BhY2UgJXMgaXMgc2V0IHRvICdpbmFjdGl2ZScgYnkgQUxURVIgVEFCTEVTUEFDRS4AVGhlIHN0YXRlIG9mIHVuZG8gdGFibGVzcGFjZSAlcyBpcyBzZXQgdG8gJ2VtcHR5Jy4ARGVsYXlpbmcgdHJ1bmNhdGUgb2YgdW5kbyB0YWJsZXNwYWNlICVzIGR1ZSB0byBjbG9uZSBhY3Rpdml0eS4ARGVsYXlpbmcgdHJ1bmNhdGUgb2YgdW5kbyB0YWJsZXNwYWNlICVzIGR1ZSB0byBhIG1ldGFkYXRhIGxvY2suAEluamVjdGVkIGRlYnVnIGNyYXNoIHBvaW50OiAlcwBJbmplY3RlZCBkZWJ1ZyBmYWlsdXJlIHBvaW50OiAlcwBUaW1lb3V0IHdoaWxlIHdhaXRpbmcgZm9yIGEgdmlldyBjaGFuZ2UgZXZlbnQgZHVyaW5nIHRoZSBsZWF2ZSBzdGVwIGJlZm9yZSBhIGF1dG8tcmVqb2luIGF0dGVtcHQuAEZhaWxlZCB0byBhdXRvbWF0aWNhbGx5IHJlLWNvbm5lY3QgdG8gYSBkaWZmZXJlbnQgc291cmNlLCBmb3IgY2hhbm5lbCAnJXMnLCBiZWNhdXNlICVzLiBUbyBmaXggdGhpcyAlcy4AQ291bGQgbm90IGV4ZWN1dGUgdGhlIGluc3RhbGxhdGlvbiBvZiBVREYgZnVuY3Rpb25zLiBDaGVjayBmb3Igb3RoZXIgZXJyb3JzIGluIHRoZSBsb2cAQ291bGQgbm90IGV4ZWN1dGUgdGhlIGluc3RhbGxhdGlvbiBvZiBVREYgZnVuY3Rpb246ICVzLiBDaGVjayBpZiB0aGUgZnVuY3Rpb24gaXMgYWxyZWFkeSBwcmVzZW50LCBpZiBzbywgdHJ5IHRvIHJlbW92ZSBpdC4AQ291bGQgbm90IHVuaW5zdGFsbCBVREYgZnVuY3Rpb25zLiBUcnkgdG8gcmVtb3ZlIHRoZW0gbWFudWFsbHkgaWYgcHJlc2VudC4AQW4gZW1wdHkgb3IgaWxsZWdhbCBwcml2aWxlZ2UgaWRlbnRpZmllciB3YXMgaWdub3JlZCB3aGVuIGdsb2JhbCBwcml2aWxlZ2VzIHdlcmUgcmVhZCBmcm9tIGRpc2suACVzAEEgdG1wZGlyIHRlbXBvcmFyeSBwYXRoICIlcyIgaXMgdG9vIGxvbmcgKD4gJXp1KSBmb3IgdGhpcyBPUy4gVGhpcyB3b3VsZCBub3QgbGVhdmUgZW5vdWdoIHNwYWNlIGZvciBhIHRlbXBvcmFyeSBmaWxlbmFtZSBvZiBsZW5ndGggJXp1IHdpdGhpbiBpdC4ARXJyb3ItbG9nIGRlc3RpbmF0aW9uICIlcyIgaXMgbm90IGEgZmlsZS4gQ2FuIG5vdCByZXN0b3JlIGVycm9yIGxvZyBtZXNzYWdlcyBmcm9tIHByZXZpb3VzIHJ1bi4ATm9uZSBvZiB0aGUgbG9nLXNpbmtzIHNlbGVjdGVkIHdpdGggLS1sb2ctZXJyb3Itc2VydmljZXM9Li4uIHByb3ZpZGVzIGEgbG9nLXBhcnNlci4gVGhlIHNlcnZlciB3aWxsIG5vdCBiZSBhYmxlIHRvIG1ha2UgdGhlIHByZXZpb3VzIHJ1bnMnIGVycm9yLWxvZ3MgYXZhaWxhYmxlIGluIHBlcmZvcm1hbmNlX3NjaGVtYS5lcnJvcl9sb2cuAFRoZSBzY2hlbWEgIiUuNjRzIiByZWZlcmVuY2VkIGJ5ICUuMTZzICIlLjEyOHMiIGRvZXMgbm90IGV4aXN0LiBQbGVhc2UgY2xlYW4gdXAgYW55IG9ycGhhbiAlLjE2cyBiZWZvcmUgdXBncmFkaW5nLgBDcmVhdGVkIHVuZG8gdGFibGVzcGFjZSAnJXMnLgBEcm9wcGVkIHVuZG8gdGFibGVzcGFjZSAnJXMnLgBUaGUgSW5ub0RCIEVuY3J5cHRpb24gTWFzdGVyIEtleSBoYXMgYmVlbiByb3RhdGVkIGluICVkIHRhYmxlc3BhY2VzLgBGYWlsZWQgdG8gZGVjb21wcmVzcyBhIERCTFdSIHBhZ2UgKGVycj0lZCkuICBUaGUgb3JpZ2luYWwgc2l6ZSBpcyAlZC4gUmVwb3J0aW5nIHRoZSBkYmx3ciBwYWdlIGFzIGNvcnJ1cHRlZC4ARGVjcnlwdGluZyBhIHBhZ2UgaW4gZG91Ymxld3JpdGUgZmlsZSBmYWlsZWQ6ICVzLgBFbmNyeXB0aW9uIGtleSBtaXNzaW5nOiAlcy4ASS9PIGVycm9yIHdoaWxlIHdyaXRpbmcgdG8gZmlsZTogJXMuIFJldHJ5aW5nIC4uLgBGYWlsZWQgdG8gd3JpdGUgZGF0YSB0byBmaWxlOiAlcwBMb2cgY29tcG9uZW50ICVzIGZhaWxlZCB0byBpbml0aWFsaXplLgBUaGUgTW9uaXRvciBJTyB0aHJlYWQgZmFpbGVkIHRvIGNvbm5lY3QgdG8gdGhlIHNvdXJjZSAoaG9zdDolcyBwb3J0OiV1IG5ldHdvcmtfbmFtZXNwYWNlOiVzKSBmb3IgY2hhbm5lbCAnJXMnLCB0aGVuY2UgaXQgd2lsbCB0cnkgdG8gY29ubmVjdCB0byBhbm90aGVyIHNvdXJjZS4AVGhlIHNvdXJjZSAoaG9zdDolcyBwb3J0OiV1IG5ldHdvcmtfbmFtZXNwYWNlOiVzKSBmb3IgY2hhbm5lbCAnJXMnIGhhcyBqb2luZWQgdGhlIGdyb3VwIChncm91cF9uYW1lOiAlcyksIGFuZCBzbyBhZGRlZCBpdHMgZW50cnkgaW50byByZXBsaWNhdGlvbl9hc3luY2hyb25vdXNfY29ubmVjdGlvbl9mYWlsb3ZlciB0YWJsZS4AVGhlIHNvdXJjZSAoaG9zdDolcyBwb3J0OiV1IG5ldHdvcmtfbmFtZXNwYWNlOiVzKSBmb3IgY2hhbm5lbCAnJXMnIGhhcyBsZWZ0IHRoZSBncm91cCAoZ3JvdXBfbmFtZTogJXMpLCBhbmQgc28gcmVtb3ZlZCBpdHMgZW50cnkgZnJvbSByZXBsaWNhdGlvbl9hc3luY2hyb25vdXNfY29ubmVjdGlvbl9mYWlsb3ZlciB0YWJsZS4AVGhlIE1vbml0b3IgSU8gdGhyZWFkIGRldGVjdGVkIHRoYXQgdGhlIHNvdXJjZSAoaG9zdDolcyBwb3J0OiV1IG5ldHdvcmtfbmFtZXNwYWNlOiVzKSBkb2VzIG5vdCBiZWxvbmcgdG8gdGhlIGdyb3VwIG1ham9yaXR5LCB0aGVuY2UgdGhlIGNoYW5uZWwgJyVzJyB3aWxsIHRyeSB0byBjb25uZWN0IHRvIGFub3RoZXIgc291cmNlLgBUaGUgSU8gdGhyZWFkIGRldGVjdGVkIHRoYXQgdGhlIHNvdXJjZSAoaG9zdDolcyBwb3J0OiV1IG5ldHdvcmtfbmFtZXNwYWNlOiVzKSBkb2VzIG5vdCBiZWxvbmcgdG8gdGhlIGdyb3VwIG1ham9yaXR5LCB0aGVuY2UgdGhlIGNoYW5uZWwgJyVzJyB3aWxsIHRyeSB0byBjb25uZWN0IHRvIGFub3RoZXIgc291cmNlLgAlcyBvbiB0aGUgc291cmNlIChob3N0OiVzIHBvcnQ6JXUgbmV0d29ya19uYW1lc3BhY2U6JXMpIGZvciBjaGFubmVsICclcycuAFJlcGxpY2EgTW9uaXRvciBJTyB0aHJlYWQgZXhpdGluZy4AVGhlIGdyb3VwIChncm91cF9uYW1lOiAlcykgZm9yIHRoZSBjaGFubmVsICclcycgaGFzIGJlZW4gcmVtb3ZlZCwgYW5kIHNvIHJlbW92ZWQgaXRzIGVudHJ5IGZyb20gcmVwbGljYXRpb25fYXN5bmNocm9ub3VzX2Nvbm5lY3Rpb25fZmFpbG92ZXJfbWFuYWdlZCBhbmQgYWxsIHRoZSBncm91cCBtZW1iZXJzIGZyb20gcmVwbGljYXRpb25fYXN5bmNocm9ub3VzX2Nvbm5lY3Rpb25fZmFpbG92ZXIgdGFibGUuAFRoZSBncm91cCAoZ3JvdXBfbmFtZTogJXMpIGZvciB0aGUgY2hhbm5lbCAnJXMnIGhhcyBiZWVuIGFkZGVkLCBhbmQgc28gYWRkZWQgaXRzIGVudHJ5IGluIHJlcGxpY2F0aW9uX2FzeW5jaHJvbm91c19jb25uZWN0aW9uX2ZhaWxvdmVyX21hbmFnZWQgYW5kIHNvdXJjZSB0byByZXBsaWNhdGlvbl9hc3luY2hyb25vdXNfY29ubmVjdGlvbl9mYWlsb3ZlciB0YWJsZS4ARXJyb3IgcmVhZGluZyBmYWlsb3ZlciBzb3VyY2VzIGZvciBjaGFubmVsICclcycgZnJvbSByZXBsaWNhdGlvbl9hc3luY2hyb25vdXNfY29ubmVjdGlvbl9mYWlsb3ZlciB0YWJsZS4ARXJyb3IgJXMgdGhlIGNoYW5uZWwgJyVzJywgdGhlIG9wZXJhdGlvbiB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgcmV0cmllZC4AUmVwbGljYXRpb24gY2hhbm5lbCAnJS4xOTJzJyBpcyBjb25maWd1cmVkIHdpdGggQVNTSUdOX0dUSURTX1RPX0FOT05ZTU9VU19UUkFOU0FDVElPTlM9JyVzJywgd2hpY2ggaXMgaW52YWxpZCB3aGVuIEdUSURfTU9ERSA8PiBPTi4gSWYgeW91IGludGVuZCB0byB1c2UgR1RJRF9NT0RFID0gT04gZXZlcnl3aGVyZSwgY2hhbmdlIHRvIEFTU0lHTl9HVElEU19UT19BTk9OWU1PVVNfVFJBTlNBQ1RJT05TID0gT0ZGIGFuZCB1c2UgdGhlIHByb2NlZHVyZSBmb3IgZW5hYmxpbmcgR1RJRHMgb25saW5lIChzZWUgdGhlIGRvY3VtZW50YXRpb24pLiBJZiB5b3UgaW50ZW5kIHRvIHVzZSBHVElEcyBvbiB0aGlzIHJlcGxpY2EgYW5kIGNhbm5vdCBlbmFibGUgR1RJRHMgb24gdGhlIHNvdXJjZSwgZW5hYmxlIEdUSURfTU9ERSA9IE9OIGFuZCBsZWF2ZSBBU1NJR05fR1RJRFNfVE9fQU5PTllNT1VTX1RSQU5TQUNUSU9OUyA9IExPQ0FMfDxVVUlEPi4gSWYgeW91IGludGVuZCB0byBub3QgdXNlIEdUSURzIGF0IGFsbCBpbiB0aGUgcmVwbGljYXRpb24gdG9wb2xvZ3ksIGNoYW5nZSB0byBBU1NJR05fR1RJRFNfVE9fQU5PTllNT1VTX1RSQU5TQUNUSU9OUz1PRkYgYW5kIGxlYXZlIEdUSURfTU9ERSA9ICclcycuAFJlcGxpY2F0aW9uIGNoYW5uZWwgJyUuMTkycycgaXMgY29uZmlndXJlZCB3aXRoIEFTU0lHTl9HVElEU19UT19BTk9OWU1PVVNfVFJBTlNBQ1RJT05TPSclcycgd2hpY2ggaXMgZXF1YWwgdG8gZ3JvdXBfcmVwbGljYXRpb25fZ3JvdXBfbmFtZS4gVG8gZml4IHRoaXMgaXNzdWUsIGVpdGhlciBjaGFuZ2UgdGhlIGdyb3VwX3JlcGxpY2F0aW9uX2dyb3VwX25hbWUgIG9yIHVzZSBhIGRpZmZlcmVudCB2YWx1ZSBmb3IgQVNTSUdOX0dUSURTX1RPX0FOT05ZTU9VU19UUkFOU0FDVElPTlMuAFRoZSBncm91cF9yZXBsaWNhdGlvbl9ncm91cF9uYW1lICclcycgaXMgdGhlIHNhbWUgYXMgdGhlIFVVSUQgdmFsdWUgZm9yIEFTU0lHTl9HVElEU19UT19BTk9OWU1PVVNfVFJBTlNBQ1RJT05TIGluIGEgc2VydmVyIGNoYW5uZWwAVGhlIGludGVnZXIgY29tcG9uZW50IG9mIHRoZSBHVElEIG51bWJlciBpcyBoaWdoLiBTdWdnZXN0IHJlc3RhcnRpbmcgdGhlIHNlcnZlciB3aXRoIGEgbmV3IHNlcnZlcl91dWlkIHRvIHByZXZlbnQgaXQgZnJvbSByZWFjaGluZyB0aGUgbWF4aW11bSBudW1iZXIgMl42My0xLCB3aGljaCB3aWxsIG1ha2UgaXQgaW1wb3NzaWJsZSB0byB3cml0ZSB0aGUgYmluYXJ5IGxvZyBhbmQgaW52b2tlIHRoZSBiZWhhdmlvciBzcGVjaWZpZWQgYnkgYmlubG9nX2Vycm9yX2FjdGlvbi4AJXMAJXMAJXMAJXM6IFdhcm5pbmcgTGV2ZWwgMSAoJWxsdSBNaUIpOiBtb3VudCBwb2ludCA9ICclcycsIGF2YWlsYWJsZSA9ICVsbHUgTWlCLCB0b3RhbCA9ICVsbHUgTWlCLCB1c2VkID0gJS4yZiUlLCBsb3cgbGltaXQgPSAlbGx1IE1pQiwgY3JpdGljYWwgbGV2ZWwgPSAlbGx1IE1pQgAlczogV2FybmluZyBMZXZlbCAyICglbGx1IE1pQik6IG1vdW50IHBvaW50ID0gJyVzJywgYXZhaWxhYmxlID0gJWxsdSBNaUIsIHRvdGFsID0gJWxsdSBNaUIsIHVzZWQgPSAlLjJmJSUsIGxvdyBsaW1pdCA9ICVsbHUgTWlCLCBjcml0aWNhbCBsZXZlbCA9ICVsbHUgTWlCACVzOiBXYXJuaW5nIExldmVsIDMgKCVsbHUgTWlCKTogbW91bnQgcG9pbnQgPSAnJXMnLCBhdmFpbGFibGUgPSAlbGx1IE1pQiwgdG90YWwgPSAlbGx1IE1pQiwgdXNlZCA9ICUuMmYlJSwgbG93IGxpbWl0ID0gJWxsdSBNaUIsIGNyaXRpY2FsIGxldmVsID0gJWxsdSBNaUIASW5ub0RCOiBTaXplIG9mIHRhYmxlc3BhY2UgJXMgaXMgbW9yZSB0aGFuIHRoZSBtYXhpbXVtIHNpemUgYWxsb3dlZC4AVGhlIGdyb3VwX3JlcGxpY2F0aW9uX2FwcGxpZXIgY2hhbm5lbCBpcyBzdGlsbCBydW5uaW5nLCBtb3N0IGxpa2VseSBpdCBpcyB3YWl0aW5nIGZvciBhIGRhdGFiYXNlL3RhYmxlIGxvY2ssIHdoaWNoIGlzIHByZXZlbnRpbmcgdGhlIGNoYW5uZWwgZnJvbSBzdG9wcGluZy4gUGxlYXNlIGNoZWNrIGRhdGFiYXNlL3RhYmxlIGxvY2tzLCBpbmNsdWRpbmcgdGhlIG9uZXMgY3JlYXRlZCBieSBiYWNrdXAgdG9vbHMuAERldGVjdGVkIG1pc2NvbmZpZ3VyYXRpb246IHJlcGxpY2F0aW9uIGNoYW5uZWwgJyUuMTkycycgd2FzIGNvbmZpZ3VyZWQgd2l0aCBTT1VSQ0VfQ09OTkVDVElPTl9BVVRPX0ZBSUxPVkVSID0gMSwgYnV0IHRoZSBzZXJ2ZXIgd2FzIHN0YXJ0ZWQgd2l0aCBhIHZhbHVlIG90aGVyIHRoZW4gLS1ndGlkLW1vZGUgPSBPTi4gRWl0aGVyIHJlY29uZmlndXJlIHJlcGxpY2F0aW9uIHVzaW5nIENIQU5HRSBSRVBMSUNBVElPTiBTT1VSQ0UgVE8gU09VUkNFX0NPTk5FQ1RJT05fQVVUT19GQUlMT1ZFUiA9IDAgRk9SIENIQU5ORUwgJyUuMTkycycsIG9yIGNoYW5nZSBHVElEX01PREUgdG8gdmFsdWUgT04sIGJlZm9yZSBzdGFydGluZyB0aGUgcmVwbGljYSByZWNlaXZlciB0aHJlYWQuAENvdWxkIG5vdCBhY3F1aXJlIHJlcXVpcmVkIGNvbXBvbmVudCBzZXJ2aWNlcy4AQXV0b21hdGljIHJlZ2lzdHJhdGlvbiBvZiBmdW5jdGlvbihzKSBmYWlsZWQuAEF1dG9tYXRpYyByZWdpc3RyYXRpb24gb2YgUGVyZm9ybWFuY2Ugc2NoZW1hIHRhYmxlKHMpIGZhaWxlZC4AJXMARmFpbGVkIHRvIGF1dG8tcHJ1bmUgZmlsZSAnJXMnLCBFcnJvciAoJWQpOiAlcwBGaWxlICclcycgYXV0by1wcnVuZWQAUmVjZWl2ZWQgYW4gZXJyb3Igd2hpbGUgcHJvY2Vzc2luZyBjb21wb25lbnRzIGZyb20gbWFuaWZlc3QgZmlsZTogJXMAUmVjZWl2ZWQgYW4gZXJyb3Igd2hpbGUgdW5sb2FkaW5nIGNvbXBvbmVudHMgcmVhZCBmcm9tIG1hbmlmZXN0IGZpbGU6ICVzAE1hbmlmZXN0IGZpbGUgJyVzJyBpcyBub3QgcmVhZC1vbmx5LiBGb3IgYmV0dGVyIHNlY3VyaXR5LCBwbGVhc2UgbWFrZSBzdXJlIHRoYXQgdGhlIGZpbGUgaXMgcmVhZC1vbmx5LgBObyBzdWl0YWJsZSAnJXMnIHNlcnZpY2UgaW1wbGVtZW50YXRpb24gZm91bmQgdG8gZnVsZmlsbCB0aGUgcmVxdWVzdC4AS2V5cmluZyBjb21wb25lbnQgaW5pdGlhbGl6ZWQgc3VjY2Vzc2Z1bGx5LgBUaGUgY29tcG9uZW50IGlzIG5vdCBpbml0aWFsaXplZCBwcm9wZXJseS4gTWFrZSBzdXJlIHRoYXQgY29uZmlndXJhdGlvbiBpcyBwcm9wZXIgYW5kIHVzZSBBTFRFUiBJTlNUQU5DRSBSRUxPQUQgS0VZUklORyB0byByZWluaXRpYWxpemUgdGhlIGNvbXBvbmVudC4AS2V5cmluZyBjb21wb25lbnQgZW5jb3VudGVyZWQgYW4gZXhjZXB0aW9uIHdoaWxlIGV4ZWN1dGluZyA6ICclcycgQVBJIG9mIHNlcnZpY2U6ICclcycARmFpbGVkIHRvIGFsbG9jYXRlZCBtZW1vcnkgZm9yICclcycgd2hpbGUgZXhlY3V0aW5nOiAnJXMnIEFQSSBvZiBzZXJ2aWNlOiAnJXMnAEVtcHR5IG9yIDAgdmFsdWVzIGZvciBBRVMgZW5jcnlwdGlvbiBtb2RlIGFuZC9vciBibG9jayBzaXplIGFyZSBub3QgcGVybWl0dGVkLgBBIHZhbGlkIGRhdGEgaWRlbnRpZmllciBpcyByZXF1aXJlZCBpbiBvcmRlciB0byBmZXRjaCB0aGUga2V5IHJlcXVpcmVkIGZvciB0aGUgQUVTIG9wZXJhdGlvbi4AS2V5IGlkZW50aWZpZWQgYnkgRGF0YSBJRDogJyVzJyBhbmQgQXV0aCBJRDogJyVzJyBpcyBub3Qgb2YgdHlwZSBBRVMuAEVuY291bnRlcmVkIGVycm9yOiAnJXMnIHdoaWxlIGV4ZWN1dGluZyAnJXMnIEFQSSBvZiBrZXlyaW5nX2FlcyBzZXJ2aWNlLiBLZXkgZGV0YWlscyBhcmUgRGF0YSBJRDogJyVzJyBhbmQgQXV0aCBJRDogJyVzJy4AQ291bGQgbm90IGZpbmQgdGhlIGRhdGEgY29ycmVzcG9uZGluZyB0byBEYXRhIElEOiAnJXMnLCBBdXRoIElEOiAnJXMnLgBNYXhpbXVtIHBlcm1pc3NpYmxlIHNpemUgb2YgZGF0YSBpcyAnJXp1JyBiaXRzAEVycm9yIHdyaXRpbmcgZGF0YSBmb3IgRGF0YSBJRDogJyVzJywgQXV0aCBJRDogJyVzJy4gRWl0aGVyIGRhdGEgYWxyZWFkeSBleGlzdHMgd2l0aCBzYW1lIGlkZW50aWZpZXIgb3Iga2V5cmluZyBiYWNrZW5kIGVuY291bnRlcmVkIGFuIGVycm9yLgBFcnJvciByZW1vdmluZyBkYXRhIGZvciBEYXRhIElEOiAnJXMnLCBBdXRoIElEOiAnJXMnLiBFaXRoZXIgZGF0YSBkb2VzIG5vdCBleGlzdHMgd2l0aCBzYW1lIGlkZW50aWZpZXIgb3Iga2V5cmluZyBiYWNrZW5kIGVuY291bnRlcmVkIGFuIGVycm9yLgBFcnJvciBnZW5lcmF0aW5nIGRhdGEgZm9yIERhdGEgSUQ6ICclcycsIEF1dGggSUQ6ICclcycuIEVpdGhlciBkYXRhIGFscmVhZHkgZXhpc3RzIHdpdGggc2FtZSBpZGVudGlmaWVyIG9yIGtleXJpbmcgYmFja2VuZCBlbmNvdW50ZXJlZCBhbiBlcnJvci4ARmFpbGVkIHRvIGdldCBtZXRhZGF0YSBmcm9tIGN1cnJlbnQga2V5cyBtZXRhZGF0YSBpdGVyYXRvciBwb3NpdGlvbi4AS2V5IGFuZCB2YWx1ZSBsZW5ndGggcGFyYW1ldGVycyBtdXN0IG5vdCBiZSBudWxsLgBJbm5vZGIgY291bGQgbm90IGFjcXVpcmUgc2VydmljZSA6ICVzAENvbHVtbiAlcyBvZiB0eXBlIEdFT01FVFJZIGlzIGluIG9sZCAoNS42KSBmb3JtYXQgd2hpY2ggY291bGQgYmUgZGVwcmVjYXRlZCBpbiB0aGUgZnV0dXJlLiBUbyBjaGFuZ2UgdGhlIGZvcm1hdCB0byBsYXRlc3QsIHBsZWFzZSBjb25zaWRlciByZWJ1aWxkaW5nIHRoZSB0YWJsZSBhZnRlciB0aGUgdXBncmFkZS4AJ3dhaXRfdGltZW91dCcgcGVyaW9kIG9mICVzIHNlY29uZHMgd2FzIGV4Y2VlZGVkIGZvciAlcy4gVGhlIGlkbGUgdGltZSBzaW5jZSBsYXN0IGNvbW1hbmQgd2FzIHRvbyBsb25nLgBUaGUgbWVtYmVyIGFjdGlvbiAiJXMiIGZvciBldmVudCAiJXMiIHdpdGggcHJpb3JpdHkgIiV1IiB3aWxsIGJlIHJ1bi4AVGhlIG1lbWJlciBhY3Rpb24gIiVzIiBmb3IgZXZlbnQgIiVzIiB3aXRoIHByaW9yaXR5ICIldSIgZmFpbGVkLCB0aGlzIGVycm9yIGlzIGlnbm9yZWQgYXMgaW5zdHJ1Y3RlZC4gUGxlYXNlIGNoZWNrIHByZXZpb3VzIG1lc3NhZ2VzIGluIHRoZSBlcnJvciBsb2cgZm9yIGhpbnRzIGFib3V0IHdoYXQgY291bGQgaGF2ZSBjYXVzZWQgdGhpcyBmYWlsdXJlLgBUaGUgbWVtYmVyIGFjdGlvbiAiJXMiIGZvciBldmVudCAiJXMiIHdpdGggcHJpb3JpdHkgIiV1IiBmYWlsZWQuIFBsZWFzZSBjaGVjayBwcmV2aW91cyBtZXNzYWdlcyBpbiB0aGUgZXJyb3IgbG9nIGZvciBoaW50cyBhYm91dCB3aGF0IGNvdWxkIGhhdmUgY2F1c2VkIHRoaXMgZmFpbHVyZS4AVW5hYmxlIHRvIHBhcnNlIHRoZSBtZW1iZXIgYWN0aW9ucyBjb25maWd1cmF0aW9uIHNlbnQgYnkgdGhlIHByaW1hcnkuAFVuYWJsZSB0byB1cGRhdGUgdGhlIG1lbWJlciBhY3Rpb25zIGNvbmZpZ3VyYXRpb24gd2l0aCB0aGUgb25lIHNlbnQgYnkgdGhlIHByaW1hcnkuIFBsZWFzZSBjaGVjayB0aGUgdGFibGVzICdteXNxbC5yZXBsaWNhdGlvbl9ncm91cF9tZW1iZXJfYWN0aW9ucycgYW5kICdteXNxbC5yZXBsaWNhdGlvbl9ncm91cF9jb25maWd1cmF0aW9uX3ZlcnNpb24nLgBVbmFibGUgdG8gcmVhZCB0aGUgbWVtYmVyIGFjdGlvbnMgY29uZmlndXJhdGlvbiBkdXJpbmcgZ3JvdXAgbWVtYmVyc2hpcCBjaGFuZ2UuIFBsZWFzZSBjaGVjayB0aGUgdGFibGVzICdteXNxbC5yZXBsaWNhdGlvbl9ncm91cF9tZW1iZXJfYWN0aW9ucycgYW5kICdteXNxbC5yZXBsaWNhdGlvbl9ncm91cF9jb25maWd1cmF0aW9uX3ZlcnNpb24nLgBUaGlzIG1lbWJlciBqb2luZWQgYSBncm91cCBvbiB3aGljaCBhbGwgbWVtYmVycyBkbyBub3Qgc3VwcG9ydCBtZW1iZXIgYWN0aW9ucywgYXMgc3VjaCBpdCBkaWQgcmVzZXQgaXRzIG1lbWJlciBjb25maWd1cmF0aW9uIHRvIHRoZSBkZWZhdWx0IG9uZS4AVW5hYmxlIHRvIHJlc2V0IHRvIG1lbWJlciBhY3Rpb25zIGRlZmF1bHQgY29uZmlndXJhdGlvbiBvbiBtZW1iZXIgam9pbi4gUGxlYXNlIGNoZWNrIHRoZSB0YWJsZXMgJ215c3FsLnJlcGxpY2F0aW9uX2dyb3VwX21lbWJlcl9hY3Rpb25zJyBhbmQgJ215c3FsLnJlcGxpY2F0aW9uX2dyb3VwX2NvbmZpZ3VyYXRpb25fdmVyc2lvbicuAFVuYWJsZSB0byBwYXJzZSB0aGUgbWVtYmVyIGFjdGlvbnMgY29uZmlndXJhdGlvbiBzZW50IGJ5IHRoZSBncm91cCBvbiBtZW1iZXIgam9pbi4AVW5hYmxlIHRvIHVwZGF0ZSB0aGUgbWVtYmVyIGFjdGlvbnMgY29uZmlndXJhdGlvbiBvbiBtZW1iZXIgam9pbi4gUGxlYXNlIGNoZWNrIHRoZSB0YWJsZXMgJ215c3FsLnJlcGxpY2F0aW9uX2dyb3VwX21lbWJlcl9hY3Rpb25zJyBhbmQgJ215c3FsLnJlcGxpY2F0aW9uX2dyb3VwX2NvbmZpZ3VyYXRpb25fdmVyc2lvbicuAFRoZSBncm91cCBtZW1iZXJzIHdlcmUgdW5hYmxlIHRvIHNlbmQgdGhlaXIgbWVtYmVyIGFjdGlvbnMgY29uZmlndXJhdGlvbi4gUGxlYXNlIGNoZWNrIHRoZSB0YWJsZXMgJ215c3FsLnJlcGxpY2F0aW9uX2dyb3VwX21lbWJlcl9hY3Rpb25zJyBhbmQgJ215c3FsLnJlcGxpY2F0aW9uX2dyb3VwX2NvbmZpZ3VyYXRpb25fdmVyc2lvbicgb24gYWxsIG1lbWJlcnMuAE1lbWJlciBhY3Rpb24gZW5hYmxlZDogIiVzIiwgdHlwZTogIiVzIiwgZXZlbnQ6ICIlcyIsIHByaW9yaXR5OiAiJXUiLCBlcnJvcl9oYW5kbGluZzogIiVzIi4ATWVtYmVyIGFjdGlvbiBkaXNhYmxlZDogIiVzIiwgdHlwZTogIiVzIiwgZXZlbnQ6ICIlcyIsIHByaW9yaXR5OiAiJXUiLCBlcnJvcl9oYW5kbGluZzogIiVzIi4ATWVtYmVyIGFjdGlvbnMgY29uZmlndXJhdGlvbiB3YXMgcmVzZXQuAEFjY2VwdGVkIGEgY29ubmVjdGlvbiB3aXRoIGRlcHJlY2F0ZWQgcHJvdG9jb2wgJyVzJyBmb3IgYWNjb3VudCBgJXNgQGAlc2AgZnJvbSBob3N0IGAlc2AuIENsaWVudCBzdXBwbGllZCB1c2VybmFtZSBgJXNgAEEgZGVwcmVjYXRlZCBUTFMgdmVyc2lvbiAlcyBpcyBlbmFibGVkIGZvciBjaGFubmVsICVzAFVzZXIgcHJvZmlsZSAnJXMnIGxvYWRlZC4gRmlyZXdhbGwgdXNlciBwcm9maWxlcyBhcmUgZGVwcmVjYXRlZCwgY29uc2lkZXIgbWlncmF0aW5nIHRvIGdyb3VwIHByb2ZpbGVzLgBJbnZhbGlkIGlucHV0IHZhbHVlIGZvciBncm91cF9yZXBsaWNhdGlvbl92aWV3X2NoYW5nZV91dWlkICclcycuIFBsZWFzZSwgcHJvdmlkZSBhIHZhbGlkIFVVSUQuAFZhcmlhYmxlICdncm91cF9yZXBsaWNhdGlvbl92aWV3X2NoYW5nZV91dWlkJyBjYW5ub3QgYmUgc2V0IHRvIHRoZSB2YWx1ZSBvZiAnJXMnLiBJZiB5b3Ugd2FudCB0byB1c2UgdGhlIFVVSUQgb2YgJ2dyb3VwX3JlcGxpY2F0aW9uX2dyb3VwX25hbWUnIGZvciB0aGUgVVVJRCBvZiBWaWV3X2NoYW5nZV9sb2dfZXZlbnRzLCBwbGVhc2Ugc2V0ICdncm91cF9yZXBsaWNhdGlvbl92aWV3X2NoYW5nZV91dWlkJyB0byBBVVRPTUFUSUMuAGdyb3VwX3JlcGxpY2F0aW9uX2dyb3VwX25hbWUgJyVzJywgd2hpY2ggaXMgdGhlIHNhbWUgYXMgZ3JvdXBfcmVwbGljYXRpb25fdmlld19jaGFuZ2VfdXVpZC4gUGxlYXNlIGNoYW5nZSBncm91cF9yZXBsaWNhdGlvbl92aWV3X2NoYW5nZV91dWlkIHRvIEFVVE9NQVRJQwBUaGUgZ3JvdXBfcmVwbGljYXRpb25fdmlld19jaGFuZ2VfdXVpZCAnJXMnIGlzIHRoZSBzYW1lIGFzIHRoZSBVVUlEIHZhbHVlIGZvciBBU1NJR05fR1RJRFNfVE9fQU5PTllNT1VTX1RSQU5TQUNUSU9OUyBpbiBhIHNlcnZlciBjaGFubmVsAGdyb3VwX3JlcGxpY2F0aW9uX3ZpZXdfY2hhbmdlX3V1aWQgaXMgaW5jb21wYXRpYmxlIHdpdGggZ3JvdXAuIGdyb3VwX3JlcGxpY2F0aW9uX3ZpZXdfY2hhbmdlX3V1aWQgJXMgbWF0Y2hlcyBzZXJ2ZXJfdXVpZCAlcy4AVGhlIG1lbWJlciBpcyBjb25maWd1cmVkIHdpdGggYSBncm91cF9yZXBsaWNhdGlvbl92aWV3X2NoYW5nZV91dWlkIG9wdGlvbiB2YWx1ZSAnJXMnIGRpZmZlcmVudCBmcm9tIHRoZSBncm91cCAnJXMnLiBUaGUgbWVtYmVyIHdpbGwgbm93IGV4aXQgdGhlIGdyb3VwLgBSZXBsaWNhdGlvbiBjaGFubmVsICclLjE5MnMnIGlzIGNvbmZpZ3VyZWQgd2l0aCBBU1NJR05fR1RJRFNfVE9fQU5PTllNT1VTX1RSQU5TQUNUSU9OUz0nJXMnIHdoaWNoIGlzIGVxdWFsIHRvIGdyb3VwX3JlcGxpY2F0aW9uX3ZpZXdfY2hhbmdlX3V1aWQuIFRvIGZpeCB0aGlzIGlzc3VlLCBlaXRoZXIgY2hhbmdlIHRoZSBncm91cF9yZXBsaWNhdGlvbl92aWV3X2NoYW5nZV91dWlkIG9yIHVzZSBhIGRpZmZlcmVudCB2YWx1ZSBmb3IgQVNTSUdOX0dUSURTX1RPX0FOT05ZTU9VU19UUkFOU0FDVElPTlMuAFVuYWJsZSB0byBwYXJzZSB0aGUgZ3JvdXBfcmVwbGljYXRpb25fdmlld19jaGFuZ2VfdXVpZC4AVW5hYmxlIHRvIGdlbmVyYXRlIHNpZG5vIGZvciBncm91cF9yZXBsaWNhdGlvbl92aWV3X2NoYW5nZV91dWlkLgBVbmFibGUgdG8gcGFyc2UgdGhlIGdyb3VwX3JlcGxpY2F0aW9uX3ZpZXdfY2hhbmdlX3V1aWQgZHVyaW5nIHRoZSBDZXJ0aWZpY2F0aW9uIG1vZHVsZSBpbml0aWFsaXphdGlvbi4ARXJyb3IgdXBkYXRpbmcgZ3JvdXBfZ3RpZF9leGVjdXRlZCBHVElEIHNldCB3aXRoIHZpZXcgY2hhbmdlIHV1aWQgZHVyaW5nIHRoZSBDZXJ0aWZpY2F0aW9uIG1vZHVsZSBpbml0aWFsaXphdGlvbi4AVW5hYmxlIHRvIGFkZCB0aGUgZ3JvdXBfcmVwbGljYXRpb25fdmlld19jaGFuZ2VfdXVpZCBzaWRubyBpbiB0aGUgZ3JvdXBfZ3RpZF9zaWRfbWFwIGR1cmluZyB0aGUgQ2VydGlmaWNhdGlvbiBtb2R1bGUgaW5pdGlhbGl6YXRpb24uAFVuYWJsZSB0byBoYW5kbGUgdGhlIGRvbm9yJ3MgdmlldyBjaGFuZ2UgdXVpZCB0cmFuc2FjdGlvbiBpbmZvcm1hdGlvbiB3aGVuIGluaXRpYWxpemluZyB0aGUgY29uZmxpY3QgZGV0ZWN0aW9uIGNvbXBvbmVudC4gUG9zc2libGUgb3V0IG9mIG1lbW9yeSBlcnJvci4AVW5hYmxlIHRvIHJldHJpZXZlIGdyb3VwX3JlcGxpY2F0aW9uX3ZpZXdfY2hhbmdlX3V1aWQgZHVyaW5nIHNlcnZlciBjaGVja3Mgb24gcmVwbGljYXRpb24gb3BlcmF0aW9ucy4AQm90aCBhdWRpdF9sb2dfbWF4X3NpemUgYW5kIGF1ZGl0X2xvZ19wcnVuZV9zZWNvbmRzIGFyZSBzZXQgdG8gbm9uLXplcm8uIGF1ZGl0X2xvZ19tYXhfc2l6ZSB0YWtlcyBwcmVjZWRlbmNlIGFuZCBhdWRpdF9sb2dfcHJ1bmVfc2Vjb25kcyBpcyBpZ25vcmVkAGF1ZGl0X2xvZ19yb3RhdGVfb25fc2l6ZSBpcyBub3QgZ3JhbnVsYXIgZW5vdWdoIGZvciB0aGUgdmFsdWUgb2YgYXVkaXRfbG9nX21heF9zaXplIHN1cHBsaWVkLiBTaG91bGQgYmUgYXQgbGVhc3QgJWQgdGltZXMgc21hbGxlci4ASW52YWxpZCB0YWJsZSBkZWZpbml0aW9uIGZvciAnJXMuJXMnLgAlcwBDYW5ub3QgaW5zdGFsbCB0aGUgJS4xOTJzIHBsdWdpbiB3aGVuIHRoZSAlLjE5MnMgcGx1Z2luIGlzIGluc3RhbGxlZC4AVGhlIHZhcmlhYmxlICVzIGhhcyBiZWVuIHJlbmFtZWQgdG8gJXMsIGFuZCB0aGUgb2xkIG5hbWUgZGVwcmVjYXRlZC4gT25seSB0aGUgb2xkIG5hbWUgd2FzIGZvdW5kIGluIHRoZSBwZXJzaXN0ZWQgdmFyaWFibGUgZmlsZS4gTmV4dCB0aW1lIHRoZSBmaWxlIGlzIHNhdmVkLCBib3RoIG5hbWVzIHdpbGwgYmUgc3RvcmVkLiBJc3N1ZSBhbnkgU0VUIFBFUlNJU1QgY29tbWFuZCB0byBzYXZlIHRoZSBmaWxlLCBnZXQgcmlkIG9mIHRoaXMgd2FybmluZywgYW5kIHByZXBhcmUgdGhlIHBlcnNpc3RlZCBjb25maWd1cmF0aW9uIGZvciB3aGVuIHRoZSB2YXJpYWJsZSBpcyByZW1vdmVkIGluIGEgZnV0dXJlIHZlcnNpb24uACVkIGVycm9yIGxvZ2dpbmcgY29tcG9uZW50KHMpIGZhaWxlZCB0byBmbHVzaC4gRm9yIGZpbGUtYmFzZWQgbG9ncyB0aGlzIGNhbiBoYXBwZW4gd2hlbiB0aGUgcGF0aCBvciBwZXJtaXNzaW9ucyBvZiB0aGUgbG9nLWZpbGUgaGF2ZSBjaGFuZ2VkLiBGYWlsdXJlIHRvIGZsdXNoIGZpbGVkLWJhc2VkIGxvZ3MgbWF5IGFmZmVjdCBsb2ctcm90YXRpb24uAFRhYmxlc3BhY2Uga2V5IGZvciAlcyBoYXMgYmVlbiByZS1lbmNyeXB0ZWQgdXNpbmcgdGhlIGxhdGVzdCBJbm5vREIgbWFzdGVyIGtleS4gSG93ZXZlciwgd2UgcmVjb21tZW5kIHRoYXQgeW91IHJlYnVpbGQgdGhlIHRhYmxlIGZvciBiZXR0ZXIgc2VjdXJpdHkuAFRhYmxlc3BhY2Uga2V5IGZvciAlcyBoYXMgYmVlbiByZS1lbmNyeXB0ZWQgdXNpbmcgdGhlIGxhdGVzdCBJbm5vREIgbWFzdGVyIGtleS4gSG93ZXZlciwgd2UgcmVjb21tZW5kIHRoYXQgeW91IHJlZW5jcnlwdCB0aGUgdGFibGVzcGFjZSBmb3IgYmV0dGVyIHNlY3VyaXR5LgBQYWdlIEFyY2hpdmVyJ3MgZG91Ymxld3JpdGUgYnVmZmVyIGluaXRpYWxpc2F0aW9uIGZhaWxlZC4gUGFnZSB0cmFja2luZyBpcyBhdCByaXNrIG9mIGxvc2luZyB0cmFja2VkIGluZm9ybWF0aW9uLgBUaGVyZSBpcyBub3QgZW5vdWdoIGZyZWUgc3BhY2UgaW4gdGhlIHJlZG8gbG9nIGR1cmluZyByZWNvdmVyeSB0byBwZXJmb3JtIHBlbmRpbmcgaWJ1ZiBtZXJnZXMuIFBsZWFzZSByZXRyeSBzdGFydGluZyBNeVNRTCB3aXRoIC0taW5ub2RiLWZvcmNlLXJlY292ZXJ5PTQuAFRoZXJlIGlzIG5vdCBlbm91Z2ggZnJlZSBzcGFjZSBpbiB0aGUgcmVkbyBsb2cgZHVyaW5nIHJlY292ZXJ5LCByZXN0b3JlIGZyb20gYmFja3VwIChvciByZXRyeSB3aXRoIC0taW5ub2RiLWZvcmNlLXJlY292ZXJ5PTYpLgBhdWRpdF9sb2dfZm9ybWF0X3VuaXhfdGltZXN0YW1wIGlzIGFwcGxpY2FibGUgb25seSB3aGVuIGF1ZGl0X2xvZ19mb3JtYXQgPSBKU09OLgBSZXRyeSB0aGUgc3RhdGVtZW50IHVzaW5nIHRoZSBwcmltYXJ5IHN0b3JhZ2UgZW5naW5lLgBQYXJhbGxlbCBpbml0aWFsaXphdGlvbiBvZiByc2VnIGNvbXBsZXRlAFRpbWUgdGFrZW4gdG8gaW5pdGlhbGl6ZSByc2VnIHVzaW5nICV1IHRocmVhZDogJXUgbXMuAERETCBmYWlsZWQgdG8gY3JlYXRlIGEgdGhyZWFkIHRvIGxvYWQgYW4gaW5kZXgsIGZhbGwgYmFjayB0byBzaW5nbGUgdGhyZWFkAERlYnVnX2NoZWNrX25vX2xhdGNoaW5nIGZhaWxlZCwgc2xvdC0+dHlwZT0lZABGYWlsZWQgdG8gZXN0YWJsaXNoIE15U1FMIGNsaWVudCBjb25uZWN0aW9uIGluIEdyb3VwIFJlcGxpY2F0aW9uLiBFcnJvciBlc3RhYmxpc2hpbmcgY29ubmVjdGlvbi4gUGxlYXNlIHJlZmVyIHRvIHRoZSBtYW51YWwgdG8gbWFrZSBzdXJlIHRoYXQgeW91IGNvbmZpZ3VyZWQgR3JvdXAgUmVwbGljYXRpb24gcHJvcGVybHkgdG8gd29yayB3aXRoIE15U1FMIFByb3RvY29sIGNvbm5lY3Rpb25zLgBGYWlsZWQgdG8gZXN0YWJsaXNoIE15U1FMIGNsaWVudCBjb25uZWN0aW9uIGluIEdyb3VwIFJlcGxpY2F0aW9uLiBFcnJvciBzZW5kaW5nIGNvbm5lY3Rpb24gZGVsZWdhdGlvbiBjb21tYW5kLiBQbGVhc2UgcmVmZXIgdG8gdGhlIG1hbnVhbCB0byBtYWtlIHN1cmUgdGhhdCB5b3UgY29uZmlndXJlZCBHcm91cCBSZXBsaWNhdGlvbiBwcm9wZXJseSB0byB3b3JrIHdpdGggTXlTUUwgUHJvdG9jb2wgY29ubmVjdGlvbnMuAFVuYWJsZSB0byByZWFkIHRoZSByZXBsaWNhdGlvbiBmYWlsb3ZlciBjaGFubmVscyBjb25maWd1cmF0aW9uIGR1cmluZyBncm91cCBtZW1iZXJzaGlwIGNoYW5nZS4gUGxlYXNlIGNoZWNrIHRoZSB0YWJsZXMgJ215c3FsLnJlcGxpY2F0aW9uX2FzeW5jaHJvbm91c19jb25uZWN0aW9uX2ZhaWxvdmVyJywgJ215c3FsLnJlcGxpY2F0aW9uX2FzeW5jaHJvbm91c19jb25uZWN0aW9uX2ZhaWxvdmVyX21hbmFnZWQnIGFuZCAnbXlzcWwucmVwbGljYXRpb25fZ3JvdXBfY29uZmlndXJhdGlvbl92ZXJzaW9uJy4AVGhpcyBtZW1iZXIgam9pbmVkIGEgZ3JvdXAgb24gd2hpY2ggYWxsIG1lbWJlcnMgZG8gbm90IHN1cHBvcnQgcmVwbGljYXRpb24gZmFpbG92ZXIgY2hhbm5lbHMgaW50ZWdyYXRpb24gb24gR3JvdXAgUmVwbGljYXRpb24sIGFzIHN1Y2ggaXQgZGlkIHJlc2V0IGl0cyByZXBsaWNhdGlvbiBmYWlsb3ZlciBjaGFubmVscyBjb25maWd1cmF0aW9uIHRvIHRoZSBkZWZhdWx0IG9uZS4AVW5hYmxlIHRvIHJlc2V0IHRvIHJlcGxpY2F0aW9uIGZhaWxvdmVyIGNoYW5uZWxzIGRlZmF1bHQgY29uZmlndXJhdGlvbiBvbiBtZW1iZXIgam9pbi4gUGxlYXNlIGNoZWNrIHRoZSB0YWJsZXMgJ215c3FsLnJlcGxpY2F0aW9uX2FzeW5jaHJvbm91c19jb25uZWN0aW9uX2ZhaWxvdmVyJywgJ215c3FsLnJlcGxpY2F0aW9uX2FzeW5jaHJvbm91c19jb25uZWN0aW9uX2ZhaWxvdmVyX21hbmFnZWQnIGFuZCAnbXlzcWwucmVwbGljYXRpb25fZ3JvdXBfY29uZmlndXJhdGlvbl92ZXJzaW9uJy4AVW5hYmxlIHRvIHBhcnNlIHRoZSByZXBsaWNhdGlvbiBmYWlsb3ZlciBjaGFubmVscyBjb25maWd1cmF0aW9uIHNlbnQgYnkgdGhlIGdyb3VwIG9uIG1lbWJlciBqb2luLgBVbmFibGUgdG8gc2V0IFNPVVJDRV9DT05ORUNUSU9OX0FVVE9fRkFJTE9WRVIgb24gYSBub24tZXhpc3RlbnQgb3IgbWlzY29uZmlndXJlZCByZXBsaWNhdGlvbiBjaGFubmVsICclcycsIHBsZWFzZSBjcmVhdGUgdGhlIGNoYW5uZWwgYW5kIHJlam9pbiB0aGUgc2VydmVyIHRvIHRoZSBncm91cC4AVW5hYmxlIHRvIHJlZ2lzdGVyIHRoZSBsaXN0ZW5lciAncmVwbGljYXRpb25fYXN5bmNocm9ub3VzX2Nvbm5lY3Rpb25fZmFpbG92ZXJfY29uZmlndXJhdGlvbicgdG8gdGhlIHNlcnZpY2UgJ2dyb3VwX3JlcGxpY2F0aW9uX21lc3NhZ2Vfc2VydmljZV9yZWN2Jy4AVGhpcyBzZXJ2ZXIgaXMgbm90IGFibGUgdG8gcmVhY2ggYSBtYWpvcml0eSBvZiBtZW1iZXJzIGluIHRoZSBncm91cC4gVGhpcyBzZXJ2ZXIgd2lsbCBza2lwIHRoZSByZXBsaWNhdGlvbiBmYWlsb3ZlciBjaGFubmVscyBoYW5kbGluZyB1bnRpbCB0aGlzIHNlcnZlciBpcyBiYWNrIHRvIHRoZSBncm91cCBtYWpvcml0eS4AVGhpcyBzZXJ2ZXIgaXMgYmFjayB0byB0aGUgZ3JvdXAgbWFqb3JpdHkuIFJlcGxpY2F0aW9uIGZhaWxvdmVyIGNoYW5uZWxzIGhhbmRsaW5nIGlzIHJlc3VtZWQuAEVycm9yIGluY3JlbWVudGluZyBtZW1iZXIgYWN0aW9uIGNvbmZpZ3VyYXRpb24gdmVyc2lvbiBmb3IgJXMuJXMgdGFibGUuAFRoZSAnJXMnIHRocmVhZCBvZiBjaGFubmVsICclcycgd2lsbCBlcnJvciBvdXQgYXMgdGhpcyBzZXJ2ZXIgaXMgYSBncm91cCBzZWNvbmRhcnkuAENsb25lIERETCBOb3RpZmljYXRpb246ICVzAENsb25lIERETCBBUFBMWTogJXMAQ2xvbmUgRERMIEludmFsaWRhdGUgOiAlcwBFbmNyeXB0aW9uIGtleSBpcyBsb2FkZWQgZm9yIHVuZG8gdGFibGVzcGFjZSAnJXMnLgBJZ25vcmluZyBlbmNyeXB0aW9uIElORk8gc2l6ZSBpbiByZWRvIGxvZzogJXp1LCBleHBlY3RlZDogJXp1AE9wdGlvbiAtLWF1dGhlbnRpY2F0aW9uLXBvbGljeSBpcyBzZXQgdG8gYW4gaW52YWxpZCB2YWx1ZS4gUGxlYXNlIGNoZWNrIGlmIHRoZSBzcGVjaWZpZWQgYXV0aGVudGljYXRpb24gcGx1Z2lucyBhcmUgdmFsaWQuAFNpZ25hdHVyZSB2ZXJpZmljYXRpb24gZmFpbGVkIGR1cmluZyByZWdpc3RyYXRpb24uAEJ1ZmZlciB0b28gc21hbGwgdG8gaG9sZCByZWdpc3RyYXRpb24gY2hhbGxlbmdlIHJlc3BvbnNlLgBGSURPIGRldmljZSBhdXRoZW50aWNhdG9yIGRhdGEgY29ycnVwdC4ARklETyBkZXZpY2Ugc2lnbmF0dXJlIGNvcnJ1cHQuAFNpZ25hdHVyZSB2ZXJpZmljYXRpb24gZmFpbGVkIGR1cmluZyBhdXRoZW50aWNhdGlvbi4AT3V0IG9mIG1lbW9yeS4AQ2FuJ3QgaW5pdGlhbGl6ZSBsb2dnaW5nIHNlcnZpY2UAUmVwbGljYXRpb24gY2hhbm5lbCAnJS4xOTJzJyBpcyBjb25maWd1cmVkIHdpdGggR1RJRF9PTkxZPTEsIHdoaWNoIGlzIGludmFsaWQgd2hlbiBHVElEX01PREUgPD4gT04uIElmIHlvdSBpbnRlbmQgdG8gZGlzYWJsZSBHVElEcyBpbiB0aGUgcmVwbGljYXRpb24gdG9wb2xvZ3ksIGNoYW5nZSBHVElEX09OTFkgdG8gMC4AVGhlIHJlcGxpY2F0aW9uIHBvc2l0aW9ucyByZWxhdGl2ZSB0byB0aGUgc291cmNlIG1heSBiZSBvdXQtb2YtZGF0ZSBvbiBjaGFubmVsICclLjE5MnMnLCBkdWUgdG8gdGhlIHVzZSBvZiBHVElEX09OTFk9MS4gVGhlIG91dC1vZi1kYXRlIHBvc2l0aW9ucyBjYW4gc3RpbGwgYmUgdXNlZCBpbiBzb21lIGNhc2VzIHNvLCBpbiBvcmRlciB0byB1cGRhdGUgdGhlbSwgd2Ugc3VnZ2VzdCB0aGF0IHlvdSBzdGFydCB0aGUgcmVwbGljYXRpb24gdG8gcmVjZWl2ZSBhbmQgYXBwbHkgYXQgbGVhc3Qgb25lIHRyYW5zYWN0aW9uLCB3aGljaCB3aWxsIHNldCB0aGUgcG9zaXRpb25zIHRvIHZhbGlkIHZhbHVlcy4AQ291bGQgbm90IG9wZW4gcmVsYXkgbG9nOiAlcwBBdXRoZW50aWNhdGlvbiBwbHVnaW4gbm90IGluaXRpYWxpemVkLgBDYW5ub3QgdXNlIHRoZSBnZW5lcmF0ZWQgcHJpdmF0ZSBrZXkgZmlsZS4AVW5hdmFpbGFibGUgcHVibGljIGtleSB3aXRoIGZpbmdlcnByaW50ICVzIGZvciB1c2VyICVzIGluIHRlbmFuY3kgJXMgLgBDYW5ub3Qgb2J0YWluIHRoZSBPQ0kgY29uZmlndXJhdGlvbiBmcm9tIHRoZSBJTURTIHNlcnZpY2UuAENhbm5vdCBpbml0aWFsaXplIHRoZSBJQU0gc2VydmljZS4ASW52YWxpZCBhdXRoZW50aWNhdGlvbiBzdHJpbmcgZGV0YWlscyBmb3IgdXNlcjogYCVzYEBgJXNgLgBOb25lIG9mIHRoZSBncm91cHMgcmV0dXJuZWQgYnkgSUFNIG1hdGNoZXMgYW55IG9mIHRoZSBlbnRyaWVzIGZyb20gYXV0aGVudGljYXRpb24gc3RyaW5nLgBVc2VyIGlzIG5vdCBwYXJ0IG9mIGFueSBncm91cHMuIEhvd2V2ZXIsIGFjY291bnQgaXMgY29uZmlndXJlZCB0byB1c2UgZ3JvdXAgbWFwcGluZy4AUmVjZWl2ZWQgT3BlblNTTCBlcnJvcjogJXMgd2hpbGUgYXV0aGVudGljYXRpbmcgdXNlciAlcyB3aXRoIGZpbmdlcnByaW50ICVzIGluIHRlbmFuY3kgJXMgLgAlczogV2FybmluZyBMZXZlbCAxICglbGx1IE1pQik6IGF2YWlsYWJsZT0lbGx1IE1pQiwgdG90YWw9JWxsdSBNaUIsIHVzZWQ9JS4yZiUlLCBteXNxbGQ9JWxsdSBNaUIAJXM6IFdhcm5pbmcgTGV2ZWwgMiAoJWxsdSBNaUIpOiBhdmFpbGFibGU9JWxsdSBNaUIsIHRvdGFsPSVsbHUgTWlCLCB1c2VkPSUuMmYlJSwgbXlzcWxkPSVsbHUgTWlCACVzOiBXYXJuaW5nIExldmVsIDMgKCVsbHUgTWlCKTogYXZhaWxhYmxlPSVsbHUgTWlCLCB0b3RhbD0lbGx1IE1pQiwgdXNlZD0lLjJmJSUsIG15c3FsZD0lbGx1IE1pQgBUaGUgbWVtYmVyICVzOiV1LCB3aXRoIFVVSUQ6ICVzLCB3YXMgc2V0IGFzIHRoZSBzaW5nbGUgcHJlZmVycmVkIGNvbnNlbnN1cyBsZWFkZXIuAFNvbWV0aGluZyB3ZW50IHdyb25nIHRyeWluZyB0byBzZXQgdGhlIG1lbWJlciAlczoldSwgd2l0aCBVVUlEOiAlcywgYXMgdGhlIHNpbmdsZSBwcmVmZXJyZWQgY29uc2Vuc3VzIGxlYWRlci4gUGxlYXNlIHF1ZXJ5IHRoZSBwZXJmb3JtYW5jZV9zY2hlbWEucmVwbGljYXRpb25fZ3JvdXBfY29tbXVuaWNhdGlvbl9pbmZvcm1hdGlvbiB0YWJsZSB0byBzZWUgd2hldGhlciB0aGUgb3BlcmF0aW9uIHRvb2sgZWZmZWN0LCBpLmUuIHdoZXRoZXIgdGhlIHByZWZlcnJlZCBjb25zZW5zdXMgbGVhZGVyIG1hdGNoZXMgdGhlIGN1cnJlbnQgcHJpbWFyeS4gSWYgbm90LCBjb25zaWRlciBlbGVjdGluZyBhIGRpZmZlcmVudCBwcmltYXJ5IHRvIHRyeSBhZ2Fpbi4gUGxlYXNlIGNoZWNrIHRoZSBlcnJvciBsb2cgYW5kIEdDU19ERUJVR19UUkFDRSBmb3IgbW9yZSBpbmZvcm1hdGlvbiB0aGF0IG1heSBoZWxwIHVuZGVyc3RhbmRpbmcgd2hhdCB3ZW50IHdyb25nLgBBbGwgbWVtYmVycyB3ZXJlIHNldCBhcyBjb25zZW5zdXMgbGVhZGVycy4AU29tZXRoaW5nIHdlbnQgd3JvbmcgdHJ5aW5nIHRvIHNldCBhbGwgbWVtYmVycyBhcyBjb25zZW5zdXMgbGVhZGVycy4gUGxlYXNlIHF1ZXJ5IHRoZSBwZXJmb3JtYW5jZV9zY2hlbWEucmVwbGljYXRpb25fZ3JvdXBfY29tbXVuaWNhdGlvbl9pbmZvcm1hdGlvbiB0YWJsZSB0byBzZWUgd2hldGhlciB0aGUgb3BlcmF0aW9uIHRvb2sgZWZmZWN0LCBpLmUuIHdoZXRoZXIgdGhlIGNvbnNlbnN1cyBsZWFkZXJzIG1hdGNoIGFsbCBtZW1iZXJzLiBJZiBub3QsIGNvbnNpZGVyIHJlc2V0dGluZyB0aGUgZ3JvdXAgY29tbXVuaWNhdGlvbiBwcm90b2NvbCB0byBhIHZlcnNpb24gPCA4LjAuMjIsIG9yIHN3aXRjaCB0byBzaW5nbGUtcHJpbWFyeSBtb2RlIGFuZCBiYWNrIGFnYWluIHRvIG11bHRpLXByaW1hcnkgbW9kZSwgdG8gdHJ5IGFnYWluLiBQbGVhc2UgY2hlY2sgdGhlIGVycm9yIGxvZyBhbmQgR0NTX0RFQlVHX1RSQUNFIGZvciBtb3JlIGluZm9ybWF0aW9uIHRoYXQgbWF5IGhlbHAgdW5kZXJzdGFuZGluZyB3aGF0IHdlbnQgd3JvbmcuAFRoaXMgbWVtYmVyIGlzIGNvbmZpZ3VyZWQgd2l0aCBhIGdyb3VwX3JlcGxpY2F0aW9uX3BheG9zX3NpbmdsZV9sZWFkZXIgb3B0aW9uIHZhbHVlIG9mICclZCcgdGhhdCBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgZ3JvdXAncyB2YWx1ZSAoJyVkJykuIFRoaXMgbWVtYmVyIHdpbGwgbm93IGV4aXQgdGhlIGdyb3VwLgBJbnZhbGlkIGFuZC9vciBjb3JydXB0ZWQgbXVsdGkgZmFjdG9yIGF1dGhlbnRpY2F0aW9uIG1ldGhvZHMgaW4gVXNlcl9hdHRyaWJ1dGVzIGNvbHVtbiBpbiBteXNxbC51c2VyIHRhYmxlLiAiJXMiLgBQbHVnaW4gJyUtLjE5MnMnIGlzIG5vdCBsb2FkZWQ7IElnbm9yaW5nIHVzZXIAJXM6IFRoZSBjaGFyYWN0ZXIgc2V0ICVzIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLiBQbGVhc2UgY29uc2lkZXIgdXNpbmcgJXMgaW5zdGVhZC4AJXM6ICclLS42NHMnIGlzIGEgY29sbGF0aW9uIG9mIHRoZSBkZXByZWNhdGVkIGNoYXJhY3RlciBzZXQgJXMuIFBsZWFzZSBjb25zaWRlciB1c2luZyAlcyB3aXRoIGFuIGFwcHJvcHJpYXRlIGNvbGxhdGlvbiBpbnN0ZWFkLgBNaXNzaW5nIGRhdGEgZGlyZWN0b3J5IGZvciBJQ1UgcmVndWxhciBleHByZXNzaW9uczogJXMuAE1vcmUgdGhhbiA5MCUlIG9mIGZpbGVzIG9wZW5lZCBvdXQgb2YgdGhlIGlubm9kYl9vcGVuX2ZpbGVzIGxpbWl0IGFyZSBmaWxlcyB0aGF0IGFyZSBub3QgZWFzeSB0byBjbG9zZS4gVGhlIHBlcmZvcm1hbmNlIG9mIHN5c3RlbSBtYXkgZGVncmFkZS4gQ29uc2lkZXIgaW5jcmVhc2luZyB2YWx1ZSBvZiB0aGUgaW5ub2RiX29wZW5fZmlsZXMgc3lzdGVtIHZhcmlhYmxlLiBUaGVyZSBhcmUgJXp1IHN1Y2ggZmlsZXMgb3BlbmVkIG91dCBvZiB0aGUgdG90YWwgbGltaXQgZm9yIGFsbCBmaWxlcyBvcGVuZWQgb2YgJXp1LgBUcnlpbmcgdG8gb3BlbiBhIGZpbGUgZm9yICVsbGQgc2Vjb25kcy4gQ29uZmlndXJhdGlvbiBvbmx5IGFsbG93cyBmb3IgJXp1IG9wZW4gZmlsZXMuIENvbnNpZGVyIHNldHRpbmcgaW5ub2Jhc2Vfb3Blbl9maWxlcyBoaWdoZXIuAENvbm5lY3Rpb24gY2xvc2VkLiBHbG9iYWwgY29ubmVjdGlvbiBtZW1vcnkgbGltaXQgJWxsdSBieXRlcyBleGNlZWRlZC4gQ29uc3VtZWQgJWxsdSBieXRlcy4AQ29ubmVjdGlvbiBjbG9zZWQuIENvbm5lY3Rpb24gbWVtb3J5IGxpbWl0ICVsbHUgYnl0ZXMgZXhjZWVkZWQuIENvbnN1bWVkICVsbHUgYnl0ZXMuAEF1ZGl0IExvZyBpcyBkaXNhYmxlZC4gRW5hYmxlIGl0IHdpdGggYXVkaXRfbG9nX2Rpc2FibGUgPSBmYWxzZS4AT3B0aW9uIC0tdGxzLXZlcnNpb24gb3IgLS1hZG1pbi10bHMtdmVyc2lvbiBpcyBzZXQgdG8gYW4gaW52YWxpZCB2YWx1ZSAlcy4AUmVsYXkgbG9nIHJlY292ZXJ5IG9uIGNoYW5uZWwgd2l0aCBHVElEX09OTFk9MS4gVGhlIGNoYW5uZWwgd2lsbCBzd2l0Y2ggdG8gYSBuZXcgcmVsYXkgbG9nIGFuZCB0aGUgR1RJRCBwcm90b2NvbCB3aWxsIGJlIHVzZWQgdG8gcmVwbGljYXRlIHVuYXBwbGllZCB0cmFuc2FjdGlvbnMuAE51bWJlciBvZiBTVEFOREJZX1NFUlZFUiB2YWx1ZXMgZXhjZWVkZWQgbWF4aW11bSBsaW1pdCBvZiA2NC4AU291cmNlIGtleXJpbmcgZG9lcyBub3QgaGF2ZSBhbnkga2V5cyB0byBtaWdyYXRlLgBDYW5ub3QgcGVyc2lzdCBTRU5TSVRJVkUgc3lzdGVtIHZhcmlhYmxlcyBiZWNhdXNlIGtleXJpbmcgY29tcG9uZW50IHN1cHBvcnQgaXMgdW5hdmFpbGFibGUgYW5kIHBlcnNpc3Rfc2Vuc2l0aXZlX3ZhcmlhYmxlc19pbl9wbGFpbnRleHQgaXMgc2V0IHRvIE9GRi4gUGxlYXNlIG1ha2Ugc3VyZSB0aGF0IGtleXJpbmcgc2VydmljZXMgYXJlIGFjdGl2ZSBhbmQgcmVxdWlyZWQga2V5cyBhcmUgYXZhaWxhYmxlLgBDYW5ub3QgaW50ZXJwcmV0IHBlcnNpc3RlZCBTRU5TSVRJVkUgc3lzdGVtIHZhcmlhYmxlcy4gUGxlYXNlIG1ha2Ugc3VyZSB0aGF0IGtleXJpbmcgc2VydmljZXMgYXJlIGFjdGl2ZSBhbmQgcmVxdWlyZWQga2V5cyBhcmUgYXZhaWxhYmxlLgBLZXlyaW5nIGhhcyB0byBiZSBsb2FkZWQgdGhyb3VnaCBtYW5pZmVzdCBmaWxlIGluIG9yZGVyIHRvIHN1cHBvcnQgc2VjdXJlIHN0b3JhZ2UgZm9yIHBlcnNpc3RlZCB2YXJpYWJsZXMAQ291bGQgbm90IGZpbmQgbWFzdGVyIGtleSAlcyBpbiBrZXlyaW5nAEEgbmV3IG1hc3RlciBrZXkgJXMgY291bGQgbm90IGJlIGdlbmVyYXRlZABGYWlsZWQgdG8gZW5jcnlwdCAlcyB1c2luZyAlcwBGYWlsZWQgdG8gZGVjcnlwdCAlcyB1c2luZyAlcwBQZXJzaXN0aW5nIFNFTlNJVElWRSB2YXJpYWJsZXMgaW4gZW5jcnlwdGVkIGZvcm0gcmVxdWlyZXMga2V5cmluZyBjb21wb25lbnQgbG9hZGVkIHRocm91Z2ggbWFuaWZlc3QgZmlsZS4AVXNpbmcgamVtYWxsb2MuZGxsIGZvciBteV9tYWxsb2MgYW5kIHV0OjptYWxsb2MgZXRjLgAlcy4AJXMuACVzLgBQYXNzd29yZCBmb3IgdGhlIGFjY291bnQgJyUtLjQ4cydAJyUtLjY0cycgaGFzIGV4cGlyZWQuIFRvIGxvZyBpbiwgZWl0aGVyIGNoYW5nZSBpdCB1c2luZyBhIGNsaWVudCB0aGF0IHN1cHBvcnRzIGV4cGlyZWQgcGFzc3dvcmRzIG9yIHNlbmQgdGhlIGNoYW5nZSByZXF1ZXN0IHRvIGFuIGFkbWluaXN0cmF0b3IuAFRocmVhZCBwb29sIHBsdWdpbiBzdGFydGVkIHN1Y2Nlc3NmdWxseSB3aXRoIHBhcmFtZXRlcnM6ICVzAHRocmVhZF9wb29sX2RlZGljYXRlZF9saXN0ZW5lcnMgY2Fubm90IGJlIHNldCB1bmxlc3MgdGhyZWFkX3Bvb2xfbWF4X3RyYW5zYWN0aW9uc19saW1pdCA+IDAAJXMAJXMAVGhlIHJlZG8gbG9nIGZpbGUgJXMgaXMgZW1wdHksIHdoaWNoIGluZGljYXRlcyBpdCB3YXMgbm90IGdlbmVyYXRlZCBieSBJbm5vREIgb3IgYmVjb21lIGNvcnJ1cHRlZC4gUGxlYXNlIHJlc3RvcmUgdGhlIGNvcnJlY3QgZmlsZSBvciB0cnkgcmVjb3ZlcmluZyB3aXRob3V0IHRoZSByZWRvIGZpbGVzLCBpbiByZWFkLW9ubHkgbW9kZSwgYnkgcHJvdmlkaW5nIC0taW5ub2RiLWZvcmNlLXJlY292ZXJ5PTYuAFRoZSByZWRvIGxvZyBmaWxlICVzIGlzIHNtYWxsZXIgdGhhbiAlbGx1IGJ5dGVzLCB3aGljaCBpbmRpY2F0ZXMgaXQgd2FzIG5vdCBnZW5lcmF0ZWQgYnkgSW5ub0RCIG9yIGJlY29tZSBjb3JydXB0ZWQuIFBsZWFzZSByZXN0b3JlIHRoZSBjb3JyZWN0IGZpbGUuAFRoZSByZWRvIGxvZyBmaWxlICVzIGlzIGxhcmdlciB0aGFuICVsbHUgYnl0ZXMsIHdoaWNoIGluZGljYXRlcyBpdCB3YXMgbm90IGdlbmVyYXRlZCBieSBJbm5vREIgb3IgYmVjb21lIGNvcnJ1cHRlZC4gUGxlYXNlIHJlc3RvcmUgdGhlIGNvcnJlY3QgZmlsZS4ARmFpbGVkIHRvIHJlYWQgaGVhZGVyIG9mIHRoZSByZWRvIGxvZyBmaWxlICVzAC0taW5pdGlhbGl6ZSBzcGVjaWZpZWQgYnV0IHRoZSByZWRvIGxvZyBkaXJlY3RvcnkgJXMgaGFzIHJlZG8gbG9nIGZpbGVzIGluc2lkZS4gQWJvcnRpbmcuAEZhaWxlZCB0byBsaXN0IHJlZG8gbG9nIGZpbGVzIGluIHRoZSByZWRvIGxvZyBkaXJlY3RvcnkgJXMATmVpdGhlciBmb3VuZCAlcyBzdWJkaXJlY3RvcnksIG5vciAlcyogZmlsZXMgaW4gJXMAQ2Fubm90IHJlc3RvcmUgY2xvbmVkIGRhdGEgZGlyZWN0b3J5LCBJbm5vREIgcnVubmluZyBpbiByZWFkLW9ubHkgbW9kZSEARXJyb3IgJWQgZW5jb3VudGVyZWQgd2hlbiB3cml0aW5nIHRvIHRoZSByZWRvIGxvZyBmaWxlOiAlcy4AUmVkbyBsb2cgd3JpdGVyIGlzIHdhaXRpbmcgZm9yIGEgbmV3IHJlZG8gbG9nIGZpbGUuIENvbnNpZGVyIGluY3JlYXNpbmcgaW5ub2RiX3JlZG9fbG9nX2NhcGFjaXR5LgBGb3VuZCBjaGVja3BvaW50IExTTiAlbGx1IGluIGEgcmVkbyBsb2cgZmlsZSAlcywgYnV0IHRoZSBmaWxlIHJlcHJlc2VudHMgcmFuZ2Ugb2YgTFNOIHZhbHVlcyBbJWxsdSwgJWxsdSksIHNvIHRoZSBmaWxlIGlzIGNvcnJ1cHRlZC4AUmVkbyBsb2cgaXMgcnVubmluZyBvdXQgb2YgZnJlZSBzcGFjZSwgcGF1c2luZyB1c2VyIHRocmVhZHMuLi4gQ29uc2lkZXIgaW5jcmVhc2luZyBpbm5vZGJfcmVkb19sb2dfY2FwYWNpdHkuAFJlZG8gbG9nIHJlY2xhaW1lZCBzb21lIGZyZWUgc3BhY2UsIHJlc3VtaW5nIHVzZXIgdGhyZWFkcy4ASWdub3JlZCBkZXByZWNhdGVkIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyIGlubm9kYl9sb2dfZmlsZV9zaXplLiBVc2VkIGlubm9kYl9yZWRvX2xvZ19jYXBhY2l0eSBpbnN0ZWFkLgBJZ25vcmVkIGRlcHJlY2F0ZWQgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgaW5ub2RiX2xvZ19maWxlc19pbl9ncm91cC4gVXNlZCBpbm5vZGJfcmVkb19sb2dfY2FwYWNpdHkgaW5zdGVhZC4AQ2Fubm90IHVwZ3JhZGUgZm9ybWF0ICh2JWx1KSBvZiByZWRvIGxvZyBmaWxlcyB3aGVuIGlubm9kYi1mb3JjZS1yZWNvdmVyeSA+IDAuAENhbm5vdCB1cGdyYWRlIGZvcm1hdCAodiVsdSkgb2YgcmVkbyBsb2cgZmlsZXMgaW4gcmVhZC1vbmx5IG1vZGUgKC0taW5ub2RiLXJlYWQtb25seSkuAENhbm5vdCB1cGdyYWRlIGZvcm1hdCAodiVsdSkgb2YgcmVkbyBsb2cgZmlsZXMgb24gY2xvbmVkIGRhdGEgZGlyZWN0b3J5LiBQbGVhc2UgdXNlIGFuIG9sZGVyIHZlcnNpb24gb2YgTXlTUUwgLSByZWNvdmVyIGFuZCBzaHV0ZG93biAod2l0aCBpbm5vZGItZmFzdC1zaHV0ZG93biA8IDIpLgBDYW5ub3QgdXBncmFkZSBmb3JtYXQgKHYlbHUpIG9mIHJlZG8gbG9nIGZpbGVzIGJlY2F1c2UgdGhleSBhcmUgbWFya2VkIGFzIHVuaW5pdGlhbGl6ZWQuIFBsZWFzZSB1c2UgYW4gb2xkZXIgdmVyc2lvbiBvZiBNeVNRTCAtIHJlY292ZXIgYW5kIHNodXRkb3duICh3aXRoIGlubm9kYi1mYXN0LXNodXRkb3duIDwgMikuAENhbm5vdCB1cGdyYWRlIGZvcm1hdCAodiVsdSkgb2YgcmVkbyBsb2cgZmlsZXMgd2hlbiB0aGUgcmVkbyBsb2cgaXMgY29ycnVwdGVkLiBQbGVhc2UgdXNlIGFuIG9sZGVyIHZlcnNpb24gb2YgTXlTUUwgLSByZWNvdmVyIGFuZCBzaHV0ZG93biAod2l0aCBpbm5vZGItZmFzdC1zaHV0ZG93biA8IDIpLgBDYW5ub3QgdXBncmFkZSBmb3JtYXQgKHYlbHUpIG9mIHJlZG8gbG9nIGZpbGVzIHdoZW4gdGhlcmUgaXMgbm9uLXBlcnNpc3RlZCBERCBtZXRhZGF0YSBpbiByZWRvLiBQbGVhc2UgdXNlIGFuIG9sZGVyIHZlcnNpb24gb2YgTXlTUUwgLSByZWNvdmVyIGFuZCBzaHV0ZG93biAod2l0aCBpbm5vZGItZmFzdC1zaHV0ZG93biA8IDIpLgBDYW5ub3QgdXBncmFkZSBmb3JtYXQgKHYlbHUpIG9mIHJlZG8gbG9nIGZpbGVzLCBiZWNhdXNlIElubm9EQiBmYWlsZWQgdG8gcmVhY2ggc3RhdGUgaW4gd2hpY2ggcmVkbyBsb2cgaXMgbG9naWNhbGx5IGVtcHR5LiBQbGVhc2UgdXNlIGFuIG9sZGVyIHZlcnNpb24gb2YgTXlTUUwgLSByZWNvdmVyIGFuZCBzaHV0ZG93biAod2l0aCBpbm5vZGItZmFzdC1zaHV0ZG93biA8IDIpLgBGYWlsZWQgdG8gcmVzaXplIHRoZSByZWRvIGxvZyBzeW5jaHJvbm91c2x5LCBiZWNhdXNlIElubm9EQiBmYWlsZWQgdG8gcmVhY2ggc3RhdGUgaW4gd2hpY2ggcmVkbyBsb2cgaXMgbG9naWNhbGx5IGVtcHR5LiBQbGVhc2UgdXNlIGFuIG9sZGVyIHZlcnNpb24gb2YgTXlTUUwgLSByZWNvdmVyIGFuZCBzaHV0ZG93biAod2l0aCBpbm5vZGItZmFzdC1zaHV0ZG93biA8IDIpLgBUaGUgcmVkbyBsb2cgZmlsZSAlcyBjb21lcyBmcm9tIG90aGVyIGRhdGEgZGlyZWN0b3J5IHRoYW4gcmVkbyBsb2cgZmlsZSAlcy4AVGhlIHJlZG8gbG9nIGZpbGUgJXMgaGFzIGludmFsaWQgc3RhcnRfbHNuICVsbHUuAFRoZSByZWRvIGxvZyBmaWxlICVzIGhhcyBzdGFydF9sc24gJWxsdSBidXQgZXhwZWN0ZWQgJWxsdSAoZW5kX2xzbiBvZiB0aGUgcHJldmlvdXMgcmVkbyBsb2cgZmlsZSkuAE1pc3NpbmcgcmVkbyBsb2cgZmlsZSAlcyAod2l0aCBzdGFydF9sc24gPSAlbGx1KS4AVGhlIGxhdGVzdCBmb3VuZCBjaGVja3BvaW50IGlzIGF0IGxzbiA9ICVsbHUgaW4gcmVkbyBsb2cgZmlsZSAlcy4AVXNlciBoYXMgc2V0IGlubm9kYl9yZWRvX2xvZ19jYXBhY2l0eSB0byAlbGx1TS4AUmVkbyBsb2cgaGFzIGJlZW4gcmVxdWVzdGVkIHRvIHJlc2l6ZSBmcm9tICVsbHVNIHRvICVsbHVNLgBSZWRvIGxvZyByZXNpemUgaGFzIGJlZW4gY2FuY2VsbGVkLgBSZWRvIGxvZyBoYXMgYmVlbiByZXNpemVkIHRvICVsbHVNLgBVcGdyYWRpbmcgcmVkbyBsb2c6ICVsbHVNLCBMU049JWxsdS4ATWFya2VkIHRoZSBjdXJyZW50IHJlZG8gbG9nIGZpbGUgJXMgYXMgaW5jb21wbGV0ZS4ARmFpbGVkIHRvIHJlbW92ZSByZWRvIGxvZyBmaWxlICVzLgBGYWlsZWQgdG8gcmVuYW1lICVzIHdoZW4gY3JlYXRpbmcgcmVkbyBsb2cgZmlsZSAlcyAoZXJyb3I6ICVkKQBSZWRvIGxvZyBmaWxlcyBjcmVhdGVkIGJ5IHVua25vd24gY3JlYXRvciAlcy4ARm91bmQgZXhpc3RpbmcgcmVkbyBsb2cgZmlsZXMsIGJ1dCBhdCBsZWFzdCBvbmUgaXMgbWlzc2luZy4gSXQgaXMgdW5rbm93biBpZiByZWNvdmVyeSBjb3VsZCByZWFjaCBwaHlzaWNhbGx5IGNvbnNpc3RlbnQgc3RhdGUuIFBsZWFzZSBjb25zaWRlciByZXN0b3JpbmcgZnJvbSBiYWNrdXAgb3IgcHJvdmlkaW5nIC0taW5ub2RiLWZvcmNlLXJlY292ZXJ5ID4gMC4ARm91bmQgcmVkbyBsb2cgZmlsZSAlcyB3aGljaCBoYXMgZm9ybWF0ICh2JWx1KSBhbmQgaXMgc3RvcmVkIG91dHNpZGUgI2lubm9kYl9yZWRvLgBGb3VuZCByZWRvIGxvZyBmaWxlICVzIHdoaWNoIGhhcyBmb3JtYXQgKHYlbHUpIGFuZCBpcyBzdG9yZWQgaW5zaWRlICNpbm5vZGJfcmVkby4ARm91bmQgcmVkbyBsb2cgZmlsZXMgd2l0aCBkaWZmZXJlbnQgZm9ybWF0czogJXMgaGFzIGZvcm1hdCB2JWx1LCAlcyBoYXMgZm9ybWF0IHYlbHUuAE1pc3NpbmcgaWJfbG9nZmlsZTAgaW4gdGhlIGRpcmVjdG9yeSAlcy4ARmFpbGVkIHRvIGluaXRpYWxpemUgc2VydmljZXMgcmVxdWlyZWQgdG8gaGFuZGxlIHJlZG8gbG9nIFBGUyB0YWJsZXMuAEZhaWxlZCB0byBjcmVhdGUgcmVkbyBsb2cgUEZTIHRhYmxlcy4AVHJ1bmNhdGluZyByZWRvIGxvZyBmaWxlICVzLi4uAEZhaWxlZCB0byByZXNpemUgdW51c2VkIHJlZG8gbG9nIGZpbGUgJXMgdG8gJWxsdSBNQiAoJXMpLgBGYWlsZWQgdG8gcmVtb3ZlIHVudXNlZCByZWRvIGxvZyBmaWxlICVzLgBGYWlsZWQgdG8gcmVuYW1lIHVudXNlZCByZWRvIGxvZyBmaWxlICVzIHRvICVzLgBGYWlsZWQgdG8gbWFyayB1bnVzZWQgcmVkbyBsb2cgZmlsZSAlcyBhcyBpbiB1c2UgKGJ5IHJlbmFtaW5nIHRvICVzKS4ARmFpbGVkIHRvIG1hcmsgcmVkbyBsb2cgZmlsZSAlcyBhcyB1bnVzZWQgKGJ5IHJlbmFtaW5nIHRvICVzKS4AT3B0aW9uIGlubm9kYl9kZWRpY2F0ZWRfc2VydmVyIGlzIGlnbm9yZWQgZm9yIGlubm9kYl9yZWRvX2xvZ19jYXBhY2l0eSwgYmVjYXVzZSBpbm5vZGJfcmVkb19sb2dfY2FwYWNpdHksIGlubm9kYl9sb2dfZmlsZV9zaXplIG9yIGlubm9kYl9sb2dfZmlsZXNfaW5fZ3JvdXAgaXMgc3BlY2lmaWVkIGV4cGxpY2l0bHkuIFJlZG8gbG9nIGNhcGFjaXR5OiAlbGx1TS4ARGVwcmVjYXRlZCBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgaW5ub2RiX2xvZ19maWxlX3NpemUgYW5kL29yIGlubm9kYl9sb2dfZmlsZXNfaW5fZ3JvdXAgaGF2ZSBiZWVuIHVzZWQgdG8gY29tcHV0ZSBpbm5vZGJfcmVkb19sb2dfY2FwYWNpdHk9JWxsdS4gUGxlYXNlIHVzZSBpbm5vZGJfcmVkb19sb2dfY2FwYWNpdHkgaW5zdGVhZC4AVGhpcyBtZW1iZXIgd2FzIHVuYWJsZSB0byBsb2cgdGhlIFZpZXdfY2hhbmdlX2xvZ19ldmVudCBpbnRvIHRoZSBiaW5hcnkgbG9nLCBoZW5jZSBpdCB3aWxsIGxlYXZlIHRoZSBncm91cC4gUGxlYXNlIGNoZWNrIHRoYXQgdGhlcmUgaXMgYXZhaWxhYmxlIGRpc2sgc3BhY2UgYW5kIGFkZCB0aGUgbWVtYmVyIGJhY2sgdG8gdGhlIGdyb3VwLgBGb3VuZCBpbnZhbGlkIGV2ZW50IHNlcXVlbmNlIHdoaWxlIHJlY292ZXJpbmcgZnJvbSBiaW5hcnkgbG9nIGZpbGUgJyVzJywgYmV0d2VlbiBwb3NpdGlvbnMgJWxsdSBhbmQgJWxsdTogJXMuIFRoZSByZWNvdmVyeSBwcm9jZXNzIHdhcyBzdG9wcGVkIGVhcmx5IGFuZCBubyB0cmFuc2FjdGlvbiB3YXMgcmVjb3ZlcmVkLiBTaWRlIGVmZmVjdHMgbWF5IGJlIHRyYW5zYWN0aW9ucyBpbiBhbiBpbmNvbnNpc3RlbnQgc3RhdGUgYmV0d2VlbiB0aGUgYmluYXJ5IGxvZyBhbmQgdGhlIHN0b3JhZ2UgZW5naW5lcywgb3IgdHJhbnNhY3Rpb25zIGtlcHQgYnkgc3RvcmFnZSBlbmdpbmVzIGluIGEgcHJlcGFyZWQgc3RhdGUgKHBvc3NpYmx5IGhvbGRpbmcgbG9ja3MpLiBFaXRoZXIgZml4IHRoZSBpc3N1ZXMgd2l0aCB0aGUgYmluYXJ5IGxvZyBvciwgdG8gcmVsZWFzZSBwb3NzaWJseSBhY3F1aXJlZCBsb2NrcywgZGlzYWJsZSB0aGUgYmluYXJ5IGxvZyBkdXJpbmcgc2VydmVyIHJlY292ZXJ5LiBOb3RlIHRoYXQgZGlzYWJsaW5nIHRoZSBiaW5hcnkgbG9nIG1heSBsZWFkIHRvIGxvc3Mgb2YgdHJhbnNhY3Rpb25zIHRoYXQgd2VyZSBhbHJlYWR5IGFja25vd2xlZGdlZCBhcyBzdWNjZXNzZnVsIHRvIGNsaWVudCBjb25uZWN0aW9ucyBhbmQgbWF5IGhhdmUgYmVlbiByZXBsaWNhdGVkIHRvIG90aGVyIHNlcnZlcnMgaW4gdGhlIHRvcG9sb2d5LgBTdG9yYWdlIGVuZ2luZXMgZmFpbGVkIHRvIHJlY292ZXIgb25lIG9yIG1vcmUgdHJhbnNhY3Rpb25zLiBUaGUgcmVjb3ZlcnkgcHJvY2VzcyB3YXMgc3RvcHBlZCBlYXJseSwgY2hlY2sgcHJldmlvdXMgbWVzc2FnZXMgZm9yIHRoZSBkZXRhaWxzIG9uIGZhaWxlZCB0cmFuc2FjdGlvbnMuIFNpZGUgZWZmZWN0cyBtYXkgYmUgdHJhbnNhY3Rpb25zIGluIGFuIGluY29uc2lzdGVudCBzdGF0ZSBiZXR3ZWVuIHRoZSBiaW5hcnkgbG9nIGFuZCB0aGUgc3RvcmFnZSBlbmdpbmVzLCBvciB0cmFuc2FjdGlvbnMga2VwdCBieSBzdG9yYWdlIGVuZ2luZXMgaW4gYSBwcmVwYXJlZCBzdGF0ZSAocG9zc2libHkgaG9sZGluZyBsb2NrcykuIEVpdGhlciBmaXggdGhlIGlzc3VlcyB3aXRoIHRoZSBzdG9yYWdlIGVuZ2luZSAob3V0LW9mLW1lbW9yeSwgbm8gZGlzayBzcGFjZSwgZXRjKSBvciwgdG8gcmVsZWFzZSBwb3NzaWJseSBhY3F1aXJlZCBsb2NrcyBoZWxkIGJ5IFhBIHRyYW5zYWN0aW9ucywgZGlzYWJsZSB0aGUgYmluYXJ5IGxvZyBkdXJpbmcgc2VydmVyIHJlY292ZXJ5IGFuZCBjaGVjayBjb25zaXN0ZW5jeSBiZXR3ZWVuIHN0b3JhZ2UgZW5naW5lcyBhbmQgYmluYXJ5IGxvZyBmaWxlcy4AQ3Jhc2ggcmVjb3ZlcnkgZmluaXNoZWQgaW4gJXMgZW5naW5lLiAlcwBGYWlsZWQgdG8gY29tbWl0ICVzIGluICVzLCB3aXRoIGZhaWx1cmUgY29kZSAlcy4ARmFpbGVkIHRvIHJvbGxiYWNrICVzIGluICVzLCB3aXRoIGZhaWx1cmUgY29kZSAlcy4ARmFpbGVkIHRvIHByZXBhcmUgJXMgaW4gJXMsIHdpdGggZmFpbHVyZSBjb2RlICVzLgBDYW5ub3QgcmVnaXN0ZXIgdmFyaWFibGUgJyVzJy4gUGxlYXNlIGNoZWNrIGlmIGl0IGlzIG5vdCBhbHJlYWR5IHJlZ2lzdGVyZWQgYnkgYW5vdGhlciBjb21wb25lbnQuAENhbm5vdCB1bnJlZ2lzdGVyIHZhcmlhYmxlICclcycuIFBsZWFzZSBjaGVjayBpZiBpdCB3YXMgcmVnaXN0ZXJlZCBwcm9wZXJseSBpbiB0aGUgZmlyc3QgcGxhY2UuAENhbm5vdCByZWdpc3RlciBmdW5jdGlvbiAnJXMnLiBQbGVhc2UgY2hlY2sgaWYgaXQgaXMgbm90IGFscmVhZHkgcmVnaXN0ZXJlZC4AQ2Fubm90IHVucmVnaXN0ZXIgZnVuY3Rpb24gJyVzJy4gUGxlYXNlIGNoZWNrIGlmIGl0IHdhcyByZWdpc3RlcmVkIHByb3Blcmx5IGluIHRoZSBmaXJzdCBwbGFjZS4ASW52YWxpZCBhcmd1bWVudHMgdG8gZnVuY3Rpb24gJyVzJy4gRXhwZWN0ZWQgdmFsdWVzOiAlcy4ASW52YWxpZCBhbGdvcml0aG0gdmFsdWUgJyUuMjBzJyBpbiBmdW5jdGlvbiAlcy4ASW52YWxpZCBrZXkgbGVuZ3RoICclZCcgZm9yIGZ1bmN0aW9uICclcycgd2l0aCBhbGdvcml0aG0gJyUuMjBzJy4gUGxlYXNlIHByb3ZpZGUgYSB2YWx1ZSBiZXR3ZWVuIFslZCwgJWRdLgBGYWlsZWQgdG8gZ2VuZXJhdGUgcHJpdmF0ZSBrZXkgb2YgbGVuZ3RoICclZCcgd2l0aCBhbGdvcml0aG0gJyUuMjBzJyBpbiBmdW5jdGlvbiAnJXMnLiBNb3JlIGRldGFpbHMgYWJvdXQgdGhlIGVycm9yIHdvdWxkIGhhdmUgYmVlbiBsb2dnZWQgYmVmb3JlIHRoaXMgbWVzc2FnZS4ARmFpbGVkIHRvIGdlbmVyYXRlIHB1YmxpYyBrZXkgd2l0aCBhbGdvcml0aG0gJyUuMjBzJyBmb3IgZ2l2ZW4gcHJpdmF0ZSBrZXkgaW4gZnVuY3Rpb24gJyVzJy4gTW9yZSBkZXRhaWxzIGFib3V0IHRoZSBlcnJvciB3b3VsZCBoYXZlIGJlZW4gbG9nZ2VkIGJlZm9yZSB0aGlzIG1lc3NhZ2UuAEludmFsaWQgZGF0YSBsZW5ndGggJyVkJyAoaW4gYnl0ZXMpIGZvciBmdW5jdGlvbiAnJXMnIHdpdGggYWxnb3JpdGhtICclLjIwcycuIFRoZSBtYXhpbXVtIHN1cHBvcnQgZGF0YSBsZW5ndGggZm9yIGdpdmVuIHByaXZhdGUga2V5IGlzICVkIChpbiBieXRlcykuAENvdWxkIG5vdCBlbmNyeXB0IGRhdGEgaW4gZnVuY3Rpb24gJyVzJyB1c2luZyBhbGdvcml0aG0gJyUuMjBzJy4gRGF0YSBsZW5ndGggd2FzICclZCcgYnl0ZXMuIE1vcmUgZGV0YWlscyBhYm91dCB0aGUgZXJyb3Igd291bGQgaGF2ZSBiZWVuIGxvZ2dlZCBiZWZvcmUgdGhpcyBtZXNzYWdlLgBDb3VsZCBub3QgZGVjcnlwdCBkYXRhIGluIGZ1bmN0aW9uICclcycgdXNpbmcgYWxnb3JpdGhtICclLjIwcycuIERhdGEgbGVuZ3RoIHdhcyAnJWQnIGJ5dGVzLiBNb3JlIGRldGFpbHMgYWJvdXQgdGhlIGVycm9yIHdvdWxkIGhhdmUgYmVlbiBsb2dnZWQgYmVmb3JlIHRoaXMgbWVzc2FnZS4AQ291bGQgbm90IHNpZ24gZGF0YSBpbiBmdW5jdGlvbiAnJXMnIHVzaW5nIGFsZ29yaXRobSAnJS4yMHMnIGFuZCBkaWdlc3QgdHlwZSAnJS4yMHMnLiBNb3JlIGRldGFpbHMgYWJvdXQgdGhlIGVycm9yIHdvdWxkIGhhdmUgbG9nZ2VkIGJlZm9yZSB0aGlzIG1lc3NhZ2UuAFJlY2VpdmVkIE9wZW5TU0wgZXJyb3IgaW4gZnVuY3Rpb24gJyVzJyBmb3IgYWxnb3JpdGhtICclcyc6ICclcycASW4gZnVuY3Rpb24gJyVzJyB3aXRoIGFsZ29yaXRobSAnJXMnOiBpbnN1ZmZpY2llbnQgb3V0cHV0IGJ1ZmZlciBsZW5ndGggJyV6dScuIFJlcXVpcmVkIGxlbmd0aCAnJXp1Jy4AJXMlcwBTZXR0aW5nIHNlc3Npb24gdmFsdWVzIGZvciBzeXN0ZW0gdmFyaWFibGVzIG9ubHkgbWFrZXMgc2Vuc2UgaW4gYSB1c2VyIHNlc3Npb24gKGZhaWxlZCB0byBzZXQgJyUuMjU2cycpLgBCdWlsZElEW3NoYTFdPSVzAEZhaWxlZCB0byByZWdpc3RlciBkeW5hbWljIHByaXZpbGVnZSAlcy4AUmVkbyBsb2cgd3JpdGVyIGlzIHdhaXRpbmcgZm9yICVzIHJlZG8gbG9nIGNvbnN1bWVyIHdoaWNoIGlzIGN1cnJlbnRseSByZWFkaW5nIExTTj0lbGx1IHByZXZlbnRpbmcgcmVjbGFtYXRpb24gb2Ygc3Vic2VxdWVudCBwb3J0aW9uIG9mIHRoZSByZWRvIGxvZy4gQ29uc2lkZXIgaW5jcmVhc2luZyBpbm5vZGJfcmVkb19sb2dfY2FwYWNpdHkuACVzAFJlY292ZXJ5OiBHZW5lcmF0aW5nIGluZGV4IGluZm9ybWF0aW9uIGZvciBJTlNUQU5UIERETCBUYWJsZSBpbiA4LjAuMjkgZm9ybWF0AEZhaWxlZCB0byBzd2l0Y2ggcmVzb3VyY2UgZ3JvdXAuICVzAEZhaWxlZCB0byBzd2l0Y2ggcmVzb3VyY2UgZ3JvdXAuIENvdWxkIG5vdCBhY3F1aXJlIHJlc291cmNlIGdyb3VwcyBnbG9iYWwgbG9jay4ARmFpbGVkIHRvIHN3aXRjaCByZXNvdXJjZSBncm91cC4gQ291bGQgbm90IGFjcXVpcmUgbG9jayBvbiByZXNvdXJjZSBncm91cCAlcy4ARmFpbGVkIHRvIHN3aXRjaCByZXNvdXJjZSBncm91cC4gVW5hYmxlIHRvIGFwcGx5IHJlc291cmNlIGdyb3VwIGNvbnRyb2xsZXIgJXMuAEZhaWxlZCB0byBjbGVhciBpbnN0YW50IGRyb3AgY29sdW1uIG1ldGFkYXRhIGZvciB0YWJsZSAlcwBDYW5ub3Qgb3BlbiBzaWduaW5nIGtleSBmaWxlICVzLgBPdXQgb2YgbWVtb3J5ISBDYW5ub3QgY3JlYXRlIHByaXZhdGUga2V5LgBDYW5ub3QgcmVhZCBzaWduaW5nIGtleSBmaWxlICVzLgBJbmNvbXBsZXRlIGtleTogbWlzc2luZyBOYW1lL1R5cGUgZm9yIHRoZSBLZXk6ICVzLgBEdXBsaWNhdGUga2V5IGZvdW5kIGluIGtleXJpbmcgd2l0aCBOYW1lOiAlcyBhbmQgT3duZXI6ICVzLgBFcnJvciBwYXJzaW5nIEpTT04gcmVzcG9uc2UgJXMuAEludmFsaWQgSlNPTiByZXNwb25zZSEASFRUUCByZXF1ZXN0IGZhaWxlZCB3aXRoIGVycm9yOiAnJXMnAFZhcmlhYmxlIHRocmVhZF9wb29sLiVzIHdhcyB1cGRhdGVkOiAlcwAlcwBTdGF0dXMgY29kZSAldTogQ29tcGxldGVkAFN0YXR1cyBjb2RlICV1OiAldSUlIGNvbXBsZXRlAFN0YXR1cyBjb2RlICV1OiAlcwBJbnZhbGlkIHZhbHVlIHNldCB0byB0aHJlYWRfcG9vbF9xdWVyeV90aHJlYWRzX3Blcl9ncm91cC4gVmFsaWQgdmFsdWUgcmFuZ2UgaXMgJXUgLSAldS4AUXVlcnkgdGhyZWFkcyBjb3VudCgldSkgZXhjZWVkcyB0cmFuc2FjdGlvbiB0aHJlYWRzIGxpbWl0KCV1KSBwZXIgZ3JvdXAuIFBsZWFzZSB1c2UgcXVlcnkgdGhyZWFkcyBjb3VudCBwZXIgZ3JvdXAgc21hbGxlciBvciBlcXVhbCB0byBtYXggdHJhbnNhY3Rpb24gdGhyZWFkcyBsaW1pdCBwZXIgZ3JvdXAARm91bmQgcGFnZSB0eXBlIG1pc21hdGNoLiBFeHBlY3RlZCAldSwgZm91bmQgJXUsIGluIHBhZ2U6IHNwYWNlX2lkPSVsdSBwYWdlX25vPSAlbHUAcHJlYWRlcjogc3BhY2VfaWQ9JXp1LCB0YWJsZT0lcywgaW5kZXg9JXMsIHNjYW5fY3R4PSV6dSwgY3R4PSV6dSwgdGhyZWFkX2lkPSV6dSwgbl90aHJlYWRzPSV6dQBidWxrbG9hZDogc3BhY2VfaWQ9JXp1LCB0YWJsZT0lcywgaW5kZXg9JXMsIGhlaWdodD0lenUsIG5fZXh0ZW50cz0lenUsIG5fcGFnZXM9JXp1AGJ1bGtmbHVzaGVyOiBzbGVlcF9jb3VudD0lenUsIHNsZWVwX2R1cmF0aW9uPSV6dSBtaWxsaXNlY29uZHMsIHRvdGFsX3NsZWVwPSV6dSBtaWxsaXNlY29uZHMsIHBhZ2VzX2ZsdXNoZWQ9JXp1ACVzOiBPdmVyIDY3IHBlcmNlbnQgb2YgdGhlIGJ1ZmZlciBwb29sIChjdXJyX3NpemU9JXp1IE1CKSBpcyBvY2N1cGllZCBieSBsb2NrIGhlYXBzIG9yIHRoZSBhZGFwdGl2ZSBoYXNoIGluZGV4IG9yIEJVRl9CTE9DS19NRU1PUlkgcGFnZXMuIENoZWNrIHRoYXQgeW91ciB0cmFuc2FjdGlvbnMgZG8gbm90IHNldCB0b28gbWFueSByb3cgbG9ja3MuIE1heWJlIHlvdSBzaG91bGQgbWFrZSB0aGUgYnVmZmVyIHBvb2wgYmlnZ2VyPy4gU3RhcnRpbmcgdGhlIElubm9EQiBNb25pdG9yIHRvIHByaW50IGRpYWdub3N0aWNzLgAlczogT3ZlciA5NSBwZXJjZW50IG9mIHRoZSBidWZmZXIgcG9vbCAoY3Vycl9zaXplPSV6dSBNQikgaXMgb2NjdXBpZWQgYnkgbG9jayBoZWFwcyBvciB0aGUgYWRhcHRpdmUgaGFzaCBpbmRleCBvciBCVUZfQkxPQ0tfTUVNT1JZIHBhZ2VzLiBDaGVjayB0aGF0IHlvdXIgdHJhbnNhY3Rpb25zIGRvIG5vdCBzZXQgdG9vIG1hbnkgcm93IGxvY2tzLiBNYXliZSB5b3Ugc2hvdWxkIG1ha2UgdGhlIGJ1ZmZlciBwb29sIGJpZ2dlcj8uIFdlIGludGVudGlvbmFsbHkgZ2VuZXJhdGUgYSBzZWcgZmF1bHQgdG8gcHJpbnQgYSBzdGFjayB0cmFjZSBvbiBMaW51eCEAJXM6IHRhYmxlPSVzLCBpbmRleD0lcywgbl91bmlxPSV6dSwgbl9maWVsZHM9JXp1LCBsaHM9KCVzKSwgcmhzPSglcykARmFpbGVkIHRvIGFwcGx5IHJvdyBldmVudCB3aXRoICVkIGNvbHVtbnMsIG9yaWdpbmF0aW5nIGZyb20gYSBzZXJ2ZXIgb2YgdmVyc2lvbiAlcyBvbiB0YWJsZSAnJS0uMTkycy4lLS4xOTJzJywgd2hpY2ggaGFzICVkIGNvbHVtbnMsIG9uZSBvZiB3aGljaCBpcyBhIGdlbmVyYXRlZCBpbXBsaWNpdCBwcmltYXJ5IGtleS4gUmVwbGljYXRpb24gaXMgdW5zdXBwb3J0ZWQgd2hlbiB0aGUgc291cmNlIHNlcnZlciBpcyBvbGRlciB0aGFuIDguMC4zMCwgdGhlIHJlcGxpY2EgdGFibGUgaGFzIGEgZ2VuZXJhdGVkIGltcGxpY2l0IHByaW1hcnkga2V5LCBhbmQgdGhlcmUgaXMgYSBkaWZmZXJlbmNlIGluIGNvbHVtbiBjb3VudCwgbm90IGNvdW50aW5nIHRoZSByZXBsaWNhJ3MgZ2VuZXJhdGVkIGltcGxpY2l0IHByaW1hcnkga2V5LiBBbGlnbiB0aGUgdGFibGUgc2NoZW1hcyBvbiBzb3VyY2UgYW5kIHJlcGxpY2EsIGFuZCByZXN0YXJ0IHJlcGxpY2F0aW9uLgBCdWxrIGV4ZWN1dG9yOiAlcwBCdWxrIGxvYWRlcjogJXMAVGhlIGZpcnN0IGZpbGUgYmVpbmcgbG9hZGVkIGNvbnRhaW5lZCBsZXNzIGxpbmVzIHRoYW4gdGhlIGlnbm9yZSBjbGF1c2UAQnVsayByZWFkZXI6ICVzAEJ1bGsgcmVhZGVyIGZhaWxlZCB0byBpbml0aWFsaXplIGxpYmN1cmwAQnVsayByZWFkZXIgZ290IGxpYmN1cmwgZXJyb3I6ICVzAEJ1bGsgcmVhZGVyIGdvdCBlcnJvciByZXNwb25zZSBmcm9tIHNlcnZlcjogJWxkAEJ1bGsgcmVhZGVyIGdvdCBlcnJvciBpbiBjb21tdW5pY2F0aW9uIHdpdGggc291cmNlIHNlcnZlciwgY2hlY2sgdGhlIGVycm9yIGxvZyBmb3IgYWRkaXRpb25hbCBkZXRhaWxzAE1pc3NpbmcgRU5DTE9TRUQgQlkgY2hhcmFjdGVyIGF0IHJvdyAlbGQgaW4gZmlsZSAlcy4gQWRkIE9QVElPTkFMTFkgdG8gdGhlIEVOQ0xPU0VEIEJZIGNsYXVzZSB0byBhbGxvdyB0aGlzIGlucHV0LgBUaGUgbnVtYmVyIG9mIGlucHV0IGNvbHVtbnMgdGhhdCBuZWVkIHRvIGJlIGJ1ZmZlcmVkIGZvciBwYXJzaW5nIGV4Y2VlZGVkIHByZWRlZmluZWQgYnVmZmVyIG1heCBzaXplIGZvciBmaWxlICclcycuAFRoZSBjb2x1bW4gZGF0YSB0aGF0IG5lZWRlZCB0byBiZSBjb3BpZWQgZHVlIHRvIGVzY2FwZWQgY2hhcmFjdGVycyBleGNlZWRlZCB0aGUgc2l6ZSBvZiB0aGUgaW50ZXJuYWwgY29weSBidWZmZXIgZm9yIGZpbGUgJyVzJy4AVW5leHBlY3RlZCBlbmQgb2YgaW5wdXQgZm91bmQgYXQgcm93ICVsZCBpbiBmaWxlICclcycuIERhdGEgZm9yIHNvbWUgY29sdW1ucyBpcyBtaXNzaW5nLgBVbmV4cGVjdGVkIHJvdyB0ZXJtaW5hdG9yIGZvdW5kIGF0IHJvdyAlbGQgaW4gZmlsZSAnJXMnLiBEYXRhIGZvciBzb21lIGNvbHVtbnMgaXMgbWlzc2luZy4AVW5leHBlY3RlZCBjaGFyYWN0ZXJzIGFmdGVyIGVuZGluZyBFTkNMT1NFRCBCWSBjaGFyYWN0ZXIgZm91bmQgYXQgcm93ICVsZCBpbiBmaWxlICclcycuAFVuZXhwZWN0ZWQgY2hhcmFjdGVycyBhZnRlciBOVUxMIGVzY2FwZSAoTikgZm91bmQgYXQgcm93ICVsZCBpbiBmaWxlICclcycuAFVuZXhwZWN0ZWQgY2hhcmFjdGVycyBhZnRlciBjb2x1bW4gdGVybWluYXRvciBmb3VuZCBhdCByb3cgJWxkIGluIGZpbGUgJyVzJy4AVW5leHBlY3RlZCBlbmQgb2YgaW5wdXQgZm91bmQgYXQgcm93ICVsZCBpbiBmaWxlICclcycgcmVzdWx0aW5nIGluIGluY29tcGxldGUgZXNjYXBlIHNlcXVlbmNlLgBJbmNvcnJlY3QgJS0uMzJzIHZhbHVlOiAnJS0uMTI4cycgZm9yIGNvbHVtbiAnJS0uMTkycycgYXQgcm93ICVsZCBpbiBmaWxlICclLS4xOTJzJwBOVUxMIHN1cHBsaWVkIHRvIE5PVCBOVUxMIGNvbHVtbiAnJXMnIGF0IHJvdyAlbGQgaW4gZmlsZSAnJS0uMTkycycAJXM6IExPQUQgQlVMSyBEQVRBIHRocmVhZCBmYWlsdXJlIChlcnI9JWx1KSwgdGFibGU9JXMsIGluZGV4PSVzACVzOiBGYWlsZWQgdG8gbWVyZ2Ugc3ViLXRyZWVzIGluIExPQUQgQlVMSyBEQVRBLCB0YWJsZT0lcywgaW5kZXg9JXMsIGRldGFpbHM9JXMATE9BRCBCVUxLIERBVEE6IEJ1ZmZlciBwb29sIHNpemUgaXMgJXp1LiBSZWR1Y2luZyBjb25jdXJyZW5jeSBmcm9tICV6dSB0byAlenUuIHRhYmxlPSVzLgBDKysgRXhjZXB0aW9uIGNhdWdodCB3aGlsZSAlcyB0aGUgJXMgcGx1Z2luOiBbJXNdAFJlcGxpY2F0aW9uIGNvbmZpZ3VyYXRpb24gYXBwZWFycyB0byBiZSBjb3JydXB0ZWQuIE9uIEdyb3VwIFJlcGxpY2F0aW9uIGNoYW5uZWwgJyVzJywgc2V0dGluZyBSRVFVSVJFX1RBQkxFX1BSSU1BUllfS0VZX0NIRUNLIHRvICdHRU5FUkFURScgaXMgbm90IGFsbG93ZWQuIFJ1biBSRVNFVCBSRVBMSUNBIEFMTCB0byByZXNldCBpdC4AUmVjb3JkIGhhcyBib3RoIGluc3RhbnQgYW5kIHZlcnNpb24gYml0IHNldC4AVGhpcyBtZW1iZXIgaXMgY29uZmlndXJlZCB3aXRoIGEgZ3JvdXBfcmVwbGljYXRpb25fcGF4b3Nfc2luZ2xlX2xlYWRlciBvcHRpb24gdmFsdWUgb2YgMSBhbmQgaXQgaXMgdHJ5aW5nIHRvIGpvaW4gYSBncm91cCB3aXRoIENvbW11bmljYXRpb24gUHJvdG9jb2wgVmVyc2lvbiBiZWxvdyA4LjAuMjcuIEluIG9yZGVyIHRvIGpvaW4gdGhpcyBncm91cCwgZ3JvdXBfcmVwbGljYXRpb25fcGF4b3Nfc2luZ2xlX2xlYWRlciB2YWx1ZSBtdXN0IGJlIGNvbmZpZ3VyZWQgdG8gdGhlIHZhbHVlIDAuIFRoaXMgbWVtYmVyIHdpbGwgbm93IGV4aXQgdGhlIGdyb3VwLgBJZ25vcmVkIHRoZSBpbm5vZGItcmVkby1sb2ctY2FwYWNpdHkgb3B0aW9uIGluIHRoZSBJbm5vZGIgcmVhZC1vbmx5IG1vZGUuIFNlcnZlciBpcyB1c2luZyBhY3RpdmUgcmVkbyBsb2cgZmlsZXMuAFVuZXhwZWN0ZWQgSU5TVEFOVExZIEFkZGVkIC8gRHJvcHBlZCBjb2x1bW46ICclcycgYXQgcG9zaXRpb24gJWx1IGZvciBUYWJsZSAnJXMnLCBJbmRleCAnJXMnIHdoaWxlIGdldHRpbmcgUHJpbWFyeSBLZXkgZm9yIHJvdyBsb2dnaW5nACVzAENvbHVtbiBuYW1lICVzIGFuZCBpbnRlcm5hbGx5IGdlbmVyYXRlZCBJTlNUQU5UIERST1AgY29sdW1uIG5hbWUgJXMgaXMgY2F1c2luZyBhIGNvbmZsaWN0LgBGaWVsZCBudW1iZXI6ICVsbHUgdG9vIGxhcmdlLCBUb3RhbCBmaWVsZHMgaW4gUmVjb3JkOiAlenUuACVzAFRoZSBjb25uZWN0aW9uIGhhcyB0aW1lZCBvdXQgYWZ0ZXIgJWx1IHJldHJpZXMgY29ubmVjdGluZyB0byAnJXNAJXM6JWQnJXMsIGFuZCB0aGVyZWZvcmUgdGhlIE15U1FMIHNlcnZlciBpcyBnb2luZyB0byBhdHRlbXB0IGFuIGFzeW5jaHJvbm91cyByZXBsaWNhdGlvbiBjb25uZWN0aW9uIGZhaWxvdmVyLCB0byAnJXNAJXM6JWQnAFRoZSBSZXBsaWNhIHdoaWNoIHdhcyBjb25uZWN0ZWQgdG8gc291cmNlICclczolZCcsIGlzIG5vdyBjb25uZWN0ZWQgdG8gbmV3IHNvdXJjZSAnJXM6JWQnLCBidXQgc3RpbGwgaGFzIHRoZSBzYW1lIHNlcnZlcl91dWlkICVzLgBUaGUgc2VydmVyX3V1aWQgZm9yIHNvdXJjZSBzZXJ2ZXIgJyVzOiVkJyBoYXMgY2hhbmdlZCBmcm9tICVzIHRvICVzLiBUaGlzIHNob3VsZCBub3QgaGFwcGVuIHVubGVzcyB5b3UgaGF2ZSBjaGFuZ2VkIGl0IG1hbnVhbGx5LgBUaGUgc291cmNlIHNlcnZlciBoYXMgY2hhbmdlZCBmcm9tICclczolZCcgd2l0aCBzZXJ2ZXJfdXVpZCAlcywgdG8gJyVzOiVkJyB3aXRoIHNlcnZlcl91dWlkICVzLgBSZXBsaWNhIHJlY2VpdmVyIHRocmVhZCVzOiBjb25uZWN0ZWQgdG8gc291cmNlICclc0AlczolZCcgd2l0aCBzZXJ2ZXJfdXVpZD0lcywgc2VydmVyX2lkPSVkLiBTdGFydGluZyByZXBsaWNhdGlvbiBmcm9tIGZpbGUgJyVzJywgcG9zaXRpb24gJyVzJy4AUmVwbGljYSByZWNlaXZlciB0aHJlYWQlczogY29ubmVjdGVkIHRvIHNvdXJjZSAnJXNAJXM6JWQnIHdpdGggc2VydmVyX3V1aWQ9JXMsIHNlcnZlcl9pZD0lZC4gU3RhcnRpbmcgR1RJRC1iYXNlZCByZXBsaWNhdGlvbi4ATG9hZGVyOjpidWlsZF9hbGwoKTogQ29tcGxldGVkIGJ1aWxkaW5nICV6dSBpbmRleGVzIGZvciBvbGRfdGFibGU9JXMsIG5ld190YWJsZT0lcywgZXJyPSV6dS4AQnVpbGRlcjo6ZmluaXNoKCk6IENvbXBsZXRlZCBidWlsZGluZyBpbmRleD0lcyBvZiB0YWJsZT0lcywgZXJyPSV6dS4AJXM6ICclcycgaXMgYSB1c2VyIGRlZmluZWQgY29sbGF0aW9uLiBVc2VyIGRlZmluZWQgY29sbGF0aW9ucyBhcmUgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuIENvbnNpZGVyIHVzaW5nIGEgY29tcGlsZWQgY29sbGF0aW9uIGluc3RlYWQuAEJ1aWxkZXI6OmluaXQoKTogSW5pdGlhbGl6ZSBmb3IgYnVpbGRpbmcgaW5kZXg9JXMgb2YgdGFibGU9JXMsIG5fdGhyZWFkcz0lenUsIHNvcnQgYnVmZmVyIHNpemU9JXp1IGJ5dGVzLCBpL28gYnVmZmVyIHNpemU9JXp1IGJ5dGVzLgBTRUxFQ1QgQ09VTlQoKikgRlJPTSB0YWJsZT0lcywgbl90aHJlYWRzPSV6dSwgbl9wYXJ0aXRpb25zPSV6dS4ASW5kZXggbG9nIHZlcnNpb24gJXUgZGlkIG5vdCBtYXRjaC4gTWF4IGluZGV4IHZlcnNpb24gaXMgJXUuIFJlY292ZXJ5IGNhbid0IGNvbnRpbnVlLiBQbGVhc2UgbWFrZSBzdXJlIHNlcnZlciBpcyBub3Qgc3RhcnRpbmcgdXAgd2l0aCB0aGUgZGF0YWRpciBnZW5lcmF0ZWQgaW4gZnV0dXJlIHZlcnNpb24uAE11bHRpcGxlIGtleXJpbmcgY29tcG9uZW50IFVSTnMgJyVzJyBmb3VuZCBpbiBtYW5pZmVzdCBmaWxlICclcycuIE9ubHkgb25lIGtleXJpbmcgY29tcG9uZW50IGNhbiBiZSBsb2FkZWQgYXQgYSB0aW1lLgBQbHVnaW4gJ2dyb3VwX3JlcGxpY2F0aW9uJyBoYXMgYmVlbiBzdGFydGVkLgBNaW5pbXVtIHJlY29yZCBmbGFnIGlzIHdyb25nbHkgc2V0IHRvIHJlYyBvbiBwYWdlICclbHUnIGF0IGxldmVsICclbHUnIGZvciBpbmRleCAnJXMnIG9mIHRhYmxlICclcycuAE1pbmltdW0gcmVjb3JkIGZsYWcgaXMgbm90IHNldCB0byBmaXJzdCByZWMgb24gcGFnZSAnJWx1JyBhdCBsZXZlbCAnJWx1JyBmb3IgaW5kZXggJyVzJyBvZiB0YWJsZSAnJXMnLgBTdWNjZXNzZnVsbHkgcmVnaXN0ZXJlZCBzbG90ICclZCcgZm9yIGNvbXBvbmVudCAnJXMnLgBTdWNjZXNzZnVsbHkgZGUtcmVnaXN0ZXJlZCBzbG90ICclZCcgZnJvbSBjb21wb25lbnQgJyVzJy4AQ2Fubm90IGZyZWUgcmVzb3VyY2VzIHN0b3JlZCBieSBjb21wb25lbnQgJyVzJyBpbiB0aHJlYWQgd2l0aCBJRDogJyVkJy4gQ29tcG9uZW50IGZhaWxlZCB0byBmcmVlIHJlcXVpcmVkIHJlc291cmNlcy4AVHJhbnNhY3Rpb24gSUQ6ICVsdSBmb3VuZCBmb3IgcmVzdXJyZWN0aW5nIGluc2VydHMAVHJhbnNhY3Rpb24gSUQ6ICVsdSBmb3VuZCBmb3IgcmVzdXJyZWN0aW5nIHVwZGF0ZXMASWRlbnRpZmllZCB0YWJsZSBJRDogJWx1IHRvIGFjcXVpcmUgbG9jawBBY3F1aXJlZCBsb2NrIG9uIHRhYmxlIElEOiAlbHUsIG5hbWU6ICVzAFJlY29yZHMgcmVhZDogJWx1IC0gUGFnZXMgcmVhZDogJWx1AFRvdGFsIHJlY29yZHMgcmVzdXJyZWN0ZWQ6ICVsdSAtIFRvdGFsIHBhZ2VzIHJlYWQ6ICVsdSAtIFRvdGFsIHRhYmxlcyBhY3F1aXJlZDogJWx1AFJlc3VycmVjdGVkICVsdSB0cmFuc2FjdGlvbnMgZG9pbmcgaW5zZXJ0cy4AUmVzdXJyZWN0ZWQgJWx1IHRyYW5zYWN0aW9ucyBkb2luZyB1cGRhdGVzLgBJbnZhbGlkIHNlY3VyaXR5IHRva2VuIHByb3ZpZGVkIGJ5ICclcycgZm9yICclcydAJyVzJzogJXMuAFVua25vd24gdXNlci90ZW5hbmN5ICh1c2VyOiAlcyB0ZW5hbmN5OiAlcykgZm91bmQgaW4gc2VjdXJpdHkgdG9rZW4gcHJvdmlkZWQgYnkgJyVzJyBmb3IgJyVzJ0AnJXMnLgBWZXJpZmljYXRpb24gZmFpbGVkIGZvciBzZWN1cml0eSB0b2tlbiBwcm92aWRlZCBieSAnJXMnIGZvciAnJXMnQCclcycgOiAlcy4AQ291bGQgbm90IGRvd25sb2FkIElERFAgUHVibGljIGtleS4gUGxlYXNlIGNoZWNrIGlmIHNlY3VyaXR5IHRva2VuIHByb3ZpZGVkIGJ5ICclcycgZm9yICclcydAJyVzJyBpcyB2YWxpZC4ATm9uZSBvZiB0aGUgZ3JvdXBzIGV4dHJhY3RlZCBmcm9tIHNlY3VyaXR5IHRva2VuIG1hdGNoZXMgYW55IG9mIHRoZSBlbnRyaWVzIGZyb20gYXV0aGVudGljYXRpb24gc3RyaW5nLgBDYW5ub3QgcmVnaXN0ZXIgdmFyaWFibGUgJyVzJy4gUGxlYXNlIGNoZWNrIGlmIGl0IGlzIG5vdCBhbHJlYWR5IHJlZ2lzdGVyZWQgYnkgYW5vdGhlciBjb21wb25lbnQuAENhbm5vdCB1bnJlZ2lzdGVyIHZhcmlhYmxlICclcycuIFBsZWFzZSBjaGVjayBpZiBpdCB3YXMgcmVnaXN0ZXJlZCBwcm9wZXJseSBpbiB0aGUgZmlyc3QgcGxhY2UuAENhbm5vdCByZWdpc3RlciBmdW5jdGlvbiAnJXMnLiBQbGVhc2UgY2hlY2sgaWYgaXQgaXMgbm90IGFscmVhZHkgcmVnaXN0ZXJlZCBieSBhbm90aGVyIGNvbXBvbmVudC4AQ2Fubm90IHVucmVnaXN0ZXIgZnVuY3Rpb24gJyVzJy4gUGxlYXNlIGNoZWNrIGlmIGl0IHdhcyByZWdpc3RlcmVkIHByb3Blcmx5IGluIHRoZSBmaXJzdCBwbGFjZS4AQ2Fubm90IHJlZ2lzdGVyIHByaXZpbGVnZSAnJXMnLiBQbGVhc2UgY2hlY2sgaWYgaXQgaXMgbm90IGFscmVhZHkgcmVnaXN0ZXJlZC4AQ2Fubm90IHVucmVnaXN0ZXIgcHJpdmlsZWdlICclcycuIFBsZWFzZSBjaGVjayBpZiBpdCB3YXMgcmVnaXN0ZXJlZCBwcm9wZXJseSBpbiB0aGUgZmlyc3QgcGxhY2UuAEVycm9yIHdoaWxlIGV4ZWN1dGluZyBVREYgJXMuAEVycm9yIHdoaWxlIGV4ZWN1dGluZyBVREYgJXM6ICVzLgAlcyBmYWlsZWQuACVzIGZhaWxlZCB3aXRoICV1LgBMb2NrIGZhaWxlZCBhdCAlcyA6ICV1LgBMb2NrIGZyb20gJXMgOiAldSBmYWlsZWQgdG8gdW5sb2NrLgBNYXNraW5nIGNvbXBvbmVudCBlcnJvcjogJyVzJy4AJXMgZmFpbGVkLgAlcyBmYWlsZWQgYmVjYXVzZSAlcy4AQ3JlYXRpb24gb2YgcmFuZG9tIGNvbnRleHQgZmFpbGVkLgBDcmVhdGlvbiBvZiByYW5kb20gY29udGV4dCBmYWlsZWQgYmVjYXVzZSAlcy4AQ2Fubm90IGFjY2VzcyAlcy4lcyB0YWJsZS4AQ2Fubm90IHJlY292ZXIgZnJvbSBkZXRlY3Rfb25seSBkb3VibGV3cml0ZSBidWZmZXIgYXMgcGFnZSAldSBmcm9tIGJhdGNoIGRvdWJsZXdyaXRlIGZpbGUgaXMgY29ycnVwdGVkLgBEYXRhYmFzZSBwYWdlIGNvcnJ1cHRpb24gb2YgdGFibGVzcGFjZSAlcyBzcGFjZV9pZDogJXUgcGFnZV9udW06ICV1LiBDYW5ub3QgcmVjb3ZlciBpdCBmcm9tIHRoZSBkb3VibGV3cml0ZSBidWZmZXIgYmVjYXVzZSBpdCB3YXMgd3JpdHRlbiBpbiBkZXRlY3Rfb25seS1kb3VibGV3cml0ZSBtb2RlLgBpbml0X2Nvbm5lY3QgdmFyaWFibGUgaXMgaWdub3JlZCBmb3IgdXNlcjogJXMgaG9zdDogJXMgZHVlIHRvIG11bHRpLWZhY3RvciByZWdpc3RyYXRpb24gcmVxdWlyZWQgc2FuZGJveGluZwBFeGVjdXRpb24gb2YgYWx0ZXIgdGFibGUgJXMgJXMgZmFpbGVkIGJlY2F1c2UgJXMuAFRQIGNvbm4gKHBvcnQ6IG1hbmFnZWQoZGVsdGEpLCBhY3RpdmUsIG9wZW5lZCwgY2xvc2VkLCBhZGRlZCwgZHJvcHBlZCk6ICVzAFNjaGVkdWxlZCBydW4gb2YgdGFzayAlcyBmYWlsZWQASW52YWxpZCBmbHVzaCBpbnRlcnZhbCBzcGVjaWZpZWQ6ICVsdS4gVmFsaWQgdmFsdWVzIGFyZSAwIChvZmYpIG9yIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlZC4gQWRqdXN0aW5nIHRvICVkAENvdWxkIG5vdCBwdXJnZSBiaW5hcnkgbG9ncyBzaW5jZSBhbm90aGVyIHNlc3Npb24gaXMgZXhlY3V0aW5nIExPQ0sgSU5TVEFOQ0UgRk9SIEJBQ0tVUC4gV2FpdCBmb3IgdGhhdCBzZXNzaW9uIHRvIHJlbGVhc2UgdGhlIGxvY2suAE11bHRpLXZhbHVlcyBjYW5ub3QgYmUgY29udmVydGVkIHRvIE15U1FMIGZvcm1hdDogJXMASGVhcCByZXF1aXJlZCB0byBjb252ZXJ0IGNvbHVtbnMgaXMgbm90IHByZXNlbnQuAE15U1FMIHNlcnZlciBkb3duZ3JhZGluZyBmcm9tIHZlcnNpb24gJyV1JyB0byAnJXUnLgBJbnZhbGlkIE15U1FMIHNlcnZlciBkb3duZ3JhZGU6IENhbm5vdCBkb3duZ3JhZGUgZnJvbSAldSB0byAldS4gVGFyZ2V0IE15U1FMIHNlcnZlciB2ZXJzaW9uIGlzIGxvd2VyIHRoYW4gdGhlIHNlcnZlciBkb3duZ3JhZGUgdGhyZXNob2xkICV1LgBJbnZhbGlkIE15U1FMIHNlcnZlciB1cGdyYWRlOiBDYW5ub3QgdXBncmFkZSBmcm9tICV1IHRvICV1LiBUYXJnZXQgTXlTUUwgc2VydmVyIHZlcnNpb24gaXMgbG93ZXIgdGhhbiB0aGUgc2VydmVyIHVwZ3JhZGUgdGhyZXNob2xkICV1LgBJbnZhbGlkIE15U1FMIHNlcnZlciB1cGdyYWRlOiBDYW5ub3QgdXBncmFkZSBmcm9tICV1IHRvICV1LiBVcGdyYWRlIHRvIG5leHQgbWFqb3IgdmVyc2lvbiBpcyBvbmx5IGFsbG93ZWQgZnJvbSB0aGUgbGFzdCBMVFMgcmVsZWFzZSwgd2hpY2ggdmVyc2lvbiAldSBpcyBub3QuAEludmFsaWQgTXlTUUwgc2VydmVyIGRvd25ncmFkZTogQ2Fubm90IGRvd25ncmFkZSBmcm9tICV1IHRvICV1LiBEb3duZ3JhZGUgaXMgb25seSBwZXJtaXR0ZWQgYmV0d2VlbiBwYXRjaCByZWxlYXNlcy4ARmFpbGVkIHRvIGdldCB0aGUgZGF0YSBkaWN0aW9uYXJ5IHByb3BlcnR5ICVzLgBGYWlsZWQgdG8gc2V0IHRoZSBkYXRhIGRpY3Rpb25hcnkgcHJvcGVydHkgJXMuAFNlcnZlciBkb3duZ3JhZGUgZnJvbSAnJWQnIHRvICclZCcgJXMuACVzIGluZm9ybWF0aW9uIHNjaGVtYSBmcm9tIHZlcnNpb24gJXUgdG8gJXUuACVzIHBlcmZvcm1hbmNlIHNjaGVtYSBmcm9tIHZlcnNpb24gJXUgdG8gJXUuAFZhbHVlIGZvciBvcHRpb24gJyVzJyBjb250YWlucyBjaXBoZXIgJyVzJyB0aGF0IGlzIGVpdGhlciBibG9ja2VkIG9yIGRlcHJlY2F0ZWQgKGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZSkuIFBsZWFzZSByZWZlciB0byB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBkZXRhaWxzLgBEREwgZmFpbGVkIGFzIEJ1aWxkZXIgaXMgYWxyZWFkeSBmcmVlZC4gQnVpbGRlcjogc3RhdGU9JXUsIGVycm9yX3N0YXRlPSV1LiBJbmRleDogaWQ9JXp1LCBuYW1lPSclcycsIHNwYWNlX2lkPSV1LCBwYWdlPSV1LiBUYWJsZTogb2xkX25hbWU9JyVzJywgbmV3X25hbWU9JyVzJy4ATWVtYmVyIGlkZW50aWZpZWQgJXM6ICclcycgZG9lcyBub3QgZXhpc3Qgb24gR3JvdXAgUmVwbGljYXRpb24gbWVtYmVyc2hpcCBkdXJpbmcgJXMuAERlcHJlY2F0ZWQgJyVzJyB1c2VkICVzIHRpbWVzLCBsYXN0IHRpbWUgdXNlZCAnJXMnLgBXYWl0aW5nIGZvciAldSBjb25uZWN0aW9ucyB0byBiZSBjbG9zZWQuAFdhaXRpbmcgZm9yIFRIRHMgaW4gcGFydGl0aW9uICV1IHRvIGJlIGNsb3NlZCwgJXUgc3RpbGwgbGVmdC4gJXUgVEhEcyBsZWZ0IGluIHRvdGFsIGZvciBhbGwgcGFydGl0aW9ucy4ASW5kZXggJXMgb2YgJXMuJXMgZXhjZWVkcyBsaW1pdCBvZiAlbHUgYnl0ZXMgcGVyIGNvbHVtbi4ARmFpbGVkIHRvIHVwZGF0ZSBkYXRhIGRpcmVjdG9yeSBmbGFnIGZvciBkZCB0YWJsZSB3aXRoIHRhYmxlc3BhY2UgaWQgJyVsbHUnIHdoZW4gaWJkIGZpbGUgZm9yICclcycgaXMgbW92ZWQgdG8gbmV3IGxvY2F0aW9uICclcycgZHVyaW5nIHNlcnZlciBzaHV0ZG93bgAlcyBERCBJRDogJWxsdSAtIFRhYmxlc3BhY2UgJXUsIG5hbWUgJyVzJywgZm91bmQgYXQgJyVzJyBvdXRzaWRlIGRlZmF1bHQgZGF0YSBkaXJlY3RvcnksIGJ1dCBERCBtaXNzZXMgaW5mbyBhYm91dCBEQVRBIERJUkVDVE9SWQBVcG9uIHJlY29ubmVjdGlvbiB3aXRoIHRoZSByZXBsaWNhLCB3aGlsZSBpbml0aWFsaXppbmcgdGhlIGR1bXAgdGhyZWFkIGZvciAlcyA8JXM+LCBhbiBleGlzdGluZyBkdW1wIHRocmVhZCB3aXRoIHRoZSBzYW1lICVzIHdhcyBkZXRlY3RlZC4gVGhlIHNvdXJjZSBpcyB0ZXJtaW5hdGluZyB0aGUgcHJldmlvdXMgZHVtcCB0aHJlYWQgKCV1KSwgd2hpY2ggaXMgbm9ybWFsIGFuZCBleHBlY3RlZC4AVGhlIHRyYW5zYWN0aW9uICclLS4xOTJzJyB3aWxsIGNvbW1pdCBvdXQgb2Ygb3JkZXIgd2l0aCByZXNwZWN0IHRvIGl0cyBzb3VyY2UgdG8gZm9sbG93IHRoZSBncm91cCBnbG9iYWwgb3JkZXIuAENhbiBub3Qgb3BlbiB0YWJsZSBgJXNgLmAlc2A7IGZ1bmN0aW9ucyBpbiBjb25zdHJhaW50cywgcGFydGl0aW9ucywgb3IgdmlydHVhbCBjb2x1bW5zIG1heSBoYXZlIGZhaWxlZC4AJXMARmFpbGVkIHRvIGNyZWF0ZSB0aGUgR3JvdXAgUmVwbGljYXRpb24gY2VydGlmaWVyIGJyb2FkY2FzdCB0aHJlYWQgKFRIRF9jZXJ0aWZpZXJfYnJvYWRjYXN0KS4AVGhlIEdyb3VwIFJlcGxpY2F0aW9uIGNlcnRpZmllciBicm9hZGNhc3QgdGhyZWFkIChUSERfY2VydGlmaWVyX2Jyb2FkY2FzdCkgc3RhcnRlZC4AVGhlIEdyb3VwIFJlcGxpY2F0aW9uIGNlcnRpZmllciBicm9hZGNhc3QgdGhyZWFkIChUSERfY2VydGlmaWVyX2Jyb2FkY2FzdCkgc3RvcHBlZC4A
Base64 mode: content will be decoded on save.
Save
Close
Exit & Reset
Directory Contents
Dirs: 0 × Files: 1
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
errmsg.sys
386.40 KB
lrw-r--r--
2025-03-31 09:54:51
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).