Name: series-workflow6969x Phase: Failed StartedAt: 2026-09-06 19:41:15 +0000 UTC FinishedAt: 2026-09-06 20:22:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6969x[0] Phase: Succeeded StartedAt: 2026-09-06 19:41:15 +0000 UTC FinishedAt: 2026-09-06 20:22:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6969x[0].run-triage Phase: Succeeded StartedAt: 2026-09-06 19:41:15 +0000 UTC FinishedAt: 2026-09-06 20:22:22 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA2IDIwOjIxPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggc2VyaWVzIHJlcGxhY2VzIGJvaWxlcnBsYXRlIG1vZHVsZV9pbml0L21vZHVsZV9leGl0IGZ1bmN0aW9ucyB3aXRoIG1vZHVsZV9kcml2ZXIoKSBtYWNyb3MgYWNyb3NzIHNldmVyYWwgQWNvcm4gZXhwYW5zaW9uIGNhcmQgKGVjYXJkKSBkcml2ZXJzLiBBbGwgbW9kaWZpZWQgZHJpdmVycyBkZXBlbmQgb24gQVJDSF9BQ09STiBhbmQgQVJNLCBtYWtpbmcgdGhlbSBleGNsdXNpdmUgdG8gdGhlIEFSTSBhcmNoaXRlY3R1cmUgYW5kIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBvbiB0aGUgdGFyZ2V0IGFtZDY0IGFyY2hpdGVjdHVyZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDYgMjA6MjE8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBiYjdhZjgxZmE4MGQ5ZTRiYzkzZTM5NjZiMTkyOTRiM2Q1ODJjYzMzXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFN1biBTZXAgNiAyMDoyMTozNyAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL2F0YS9wYXRhX2ljc2lkZS5jIGIvZHJpdmVycy9hdGEvcGF0YV9pY3NpZGUuY1xuaW5kZXggNzBmMDU2ZTQ3ZTZiZC4uZGY3MjAzYTc0ZjQ1ZCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvYXRhL3BhdGFfaWNzaWRlLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvYXRhL3BhdGFfaWNzaWRlLmNcbkBAIC02MTMsMTkgJiM0Mzs2MTMsOCBAQCBzdGF0aWMgc3RydWN0IGVjYXJkX2RyaXZlciBwYXRhX2ljc2lkZV9kcml2ZXIgPSB7XG4gXHR9LFxuIH07XG4gXG4tc3RhdGljIGludCBfX2luaXQgcGF0YV9pY3NpZGVfaW5pdCh2b2lkKVxuLXtcbi1cdHJldHVybiBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIoXHUwMDI2cGF0YV9pY3NpZGVfZHJpdmVyKTtcbi19XG4tXG4tc3RhdGljIHZvaWQgX19leGl0IHBhdGFfaWNzaWRlX2V4aXQodm9pZClcbi17XG4tXHRlY2FyZF9yZW1vdmVfZHJpdmVyKFx1MDAyNnBhdGFfaWNzaWRlX2RyaXZlcik7XG4tfVxuJiM0Mzttb2R1bGVfZHJpdmVyKHBhdGFfaWNzaWRlX2RyaXZlciwgZWNhcmRfcmVnaXN0ZXJfZHJpdmVyLCBlY2FyZF9yZW1vdmVfZHJpdmVyKTtcbiBcbiBNT0RVTEVfQVVUSE9SKFwmIzM0O1J1c3NlbGwgS2luZyBcdTAwM2NybWtAYXJtLmxpbnV4Lm9yZy51a1x1MDAzZVwmIzM0Oyk7XG4gTU9EVUxFX0xJQ0VOU0UoXCYjMzQ7R1BMXCYjMzQ7KTtcbiBNT0RVTEVfREVTQ1JJUFRJT04oXCYjMzQ7SUNTIFBBVEEgZHJpdmVyXCYjMzQ7KTtcbi1cbi1tb2R1bGVfaW5pdChwYXRhX2ljc2lkZV9pbml0KTtcbi1tb2R1bGVfZXhpdChwYXRhX2ljc2lkZV9leGl0KTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pODI1eHgvZXRoZXIxLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pODI1eHgvZXRoZXIxLmNcbmluZGV4IDNlN2Q3YzRiYWZkYzIuLmQyMWFlYjgzMTUzMTcgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pODI1eHgvZXRoZXIxLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2k4MjV4eC9ldGhlcjEuY1xuQEAgLTEwNzAsMTcgJiM0MzsxMDcwLDYgQEAgc3RhdGljIHN0cnVjdCBlY2FyZF9kcml2ZXIgZXRoZXIxX2RyaXZlciA9IHtcbiBcdH0sXG4gfTtcbiBcbi1zdGF0aWMgaW50IF9faW5pdCBldGhlcjFfaW5pdCh2b2lkKVxuLXtcbi1cdHJldHVybiBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIoXHUwMDI2ZXRoZXIxX2RyaXZlcik7XG4tfVxuLVxuLXN0YXRpYyB2b2lkIF9fZXhpdCBldGhlcjFfZXhpdCh2b2lkKVxuLXtcbi1cdGVjYXJkX3JlbW92ZV9kcml2ZXIoXHUwMDI2ZXRoZXIxX2RyaXZlcik7XG4tfVxuLVxuLW1vZHVsZV9pbml0KGV0aGVyMV9pbml0KTtcbi1tb2R1bGVfZXhpdChldGhlcjFfZXhpdCk7XG4mIzQzO21vZHVsZV9kcml2ZXIoZXRoZXIxX2RyaXZlciwgZWNhcmRfcmVnaXN0ZXJfZHJpdmVyLCBlY2FyZF9yZW1vdmVfZHJpdmVyKTtcbiBcbiBNT0RVTEVfTElDRU5TRShcJiMzNDtHUExcJiMzNDspO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NlZXEvZXRoZXIzLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZWVxL2V0aGVyMy5jXG5pbmRleCAyMGRhZDM5YjVhYjk0Li5iMGQyY2JjMzU5MTQ3IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2VlcS9ldGhlcjMuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2VlcS9ldGhlcjMuY1xuQEAgLTg4MiwxNyAmIzQzOzg4Miw2IEBAIHN0YXRpYyBzdHJ1Y3QgZWNhcmRfZHJpdmVyIGV0aGVyM19kcml2ZXIgPSB7XG4gXHR9LFxuIH07XG4gXG4tc3RhdGljIGludCBfX2luaXQgZXRoZXIzX2luaXQodm9pZClcbi17XG4tXHRyZXR1cm4gZWNhcmRfcmVnaXN0ZXJfZHJpdmVyKFx1MDAyNmV0aGVyM19kcml2ZXIpO1xuLX1cbi1cbi1zdGF0aWMgdm9pZCBfX2V4aXQgZXRoZXIzX2V4aXQodm9pZClcbi17XG4tXHRlY2FyZF9yZW1vdmVfZHJpdmVyKFx1MDAyNmV0aGVyM19kcml2ZXIpO1xuLX1cbi1cbi1tb2R1bGVfaW5pdChldGhlcjNfaW5pdCk7XG4tbW9kdWxlX2V4aXQoZXRoZXIzX2V4aXQpO1xuJiM0Mzttb2R1bGVfZHJpdmVyKGV0aGVyM19kcml2ZXIsIGVjYXJkX3JlZ2lzdGVyX2RyaXZlciwgZWNhcmRfcmVtb3ZlX2RyaXZlcik7XG4gXG4gTU9EVUxFX0xJQ0VOU0UoXCYjMzQ7R1BMXCYjMzQ7KTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYXJtL2Fjb3Juc2NzaS5jIGIvZHJpdmVycy9zY3NpL2FybS9hY29ybnNjc2kuY1xuaW5kZXggNzlkN2Q3MzM2YjZhYy4uOGI4OTlmYmYwOTJlMSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvc2NzaS9hcm0vYWNvcm5zY3NpLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvc2NzaS9hcm0vYWNvcm5zY3NpLmNcbkBAIC0yOTAyLDE4ICYjNDM7MjkwMiw3IEBAIHN0YXRpYyBzdHJ1Y3QgZWNhcmRfZHJpdmVyIGFjb3Juc2NzaV9kcml2ZXIgPSB7XG4gXHR9LFxuIH07XG4gXG4tc3RhdGljIGludCBfX2luaXQgYWNvcm5zY3NpX2luaXQodm9pZClcbi17XG4tXHRyZXR1cm4gZWNhcmRfcmVnaXN0ZXJfZHJpdmVyKFx1MDAyNmFjb3Juc2NzaV9kcml2ZXIpO1xuLX1cbi1cbi1zdGF0aWMgdm9pZCBfX2V4aXQgYWNvcm5zY3NpX2V4aXQodm9pZClcbi17XG4tXHRlY2FyZF9yZW1vdmVfZHJpdmVyKFx1MDAyNmFjb3Juc2NzaV9kcml2ZXIpO1xuLX1cbi1cbi1tb2R1bGVfaW5pdChhY29ybnNjc2lfaW5pdCk7XG4tbW9kdWxlX2V4aXQoYWNvcm5zY3NpX2V4aXQpO1xuJiM0Mzttb2R1bGVfZHJpdmVyKGFjb3Juc2NzaV9kcml2ZXIsIGVjYXJkX3JlZ2lzdGVyX2RyaXZlciwgZWNhcmRfcmVtb3ZlX2RyaXZlcik7XG4gXG4gTU9EVUxFX0FVVEhPUihcJiMzNDtSdXNzZWxsIEtpbmdcJiMzNDspO1xuIE1PRFVMRV9ERVNDUklQVElPTihcJiMzNDtBY29yblNDU0kgZHJpdmVyXCYjMzQ7KTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYXJtL2FyeGVzY3NpLmMgYi9kcml2ZXJzL3Njc2kvYXJtL2FyeGVzY3NpLmNcbmluZGV4IDkyNWQwYmQ2OGFhNWIuLjJkM2Y1YjA1MTlkMWEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3Njc2kvYXJtL2FyeGVzY3NpLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvc2NzaS9hcm0vYXJ4ZXNjc2kuY1xuQEAgLTM0NCwyMCAmIzQzOzM0NCw4IEBAIHN0YXRpYyBzdHJ1Y3QgZWNhcmRfZHJpdmVyIGFyeGVzY3NpX2RyaXZlciA9IHtcbiBcdH0sXG4gfTtcbiBcbi1zdGF0aWMgaW50IF9faW5pdCBpbml0X2FyeGVfc2NzaV9kcml2ZXIodm9pZClcbi17XG4tXHRyZXR1cm4gZWNhcmRfcmVnaXN0ZXJfZHJpdmVyKFx1MDAyNmFyeGVzY3NpX2RyaXZlcik7XG4tfVxuLVxuLXN0YXRpYyB2b2lkIF9fZXhpdCBleGl0X2FyeGVfc2NzaV9kcml2ZXIodm9pZClcbi17XG4tXHRlY2FyZF9yZW1vdmVfZHJpdmVyKFx1MDAyNmFyeGVzY3NpX2RyaXZlcik7XG4tfVxuLVxuLW1vZHVsZV9pbml0KGluaXRfYXJ4ZV9zY3NpX2RyaXZlcik7XG4tbW9kdWxlX2V4aXQoZXhpdF9hcnhlX3Njc2lfZHJpdmVyKTtcbiYjNDM7bW9kdWxlX2RyaXZlcihhcnhlc2NzaV9kcml2ZXIsIGVjYXJkX3JlZ2lzdGVyX2RyaXZlciwgZWNhcmRfcmVtb3ZlX2RyaXZlcik7XG4gXG4gTU9EVUxFX0FVVEhPUihcJiMzNDtTdGVmYW4gSGFuc2tlXCYjMzQ7KTtcbiBNT0RVTEVfREVTQ1JJUFRJT04oXCYjMzQ7QVJYRVNDU0kgZHJpdmVyIGZvciBBY29ybiBtYWNoaW5lc1wmIzM0Oyk7XG4gTU9EVUxFX0xJQ0VOU0UoXCYjMzQ7R1BMXCYjMzQ7KTtcbi1cbmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYXJtL2N1bWFuYV8xLmMgYi9kcml2ZXJzL3Njc2kvYXJtL2N1bWFuYV8xLmNcbmluZGV4IGQxYTJhMjJmZmU4YzcuLjYyYzExMTY4ZjMyMTEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3Njc2kvYXJtL2N1bWFuYV8xLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvc2NzaS9hcm0vY3VtYW5hXzEuY1xuQEAgLTMyNCwxOCAmIzQzOzMyNCw3IEBAIHN0YXRpYyBzdHJ1Y3QgZWNhcmRfZHJpdmVyIGN1bWFuYXNjc2kxX2RyaXZlciA9IHtcbiBcdH0sXG4gfTtcbiBcbi1zdGF0aWMgaW50IF9faW5pdCBjdW1hbmFzY3NpX2luaXQodm9pZClcbi17XG4tXHRyZXR1cm4gZWNhcmRfcmVnaXN0ZXJfZHJpdmVyKFx1MDAyNmN1bWFuYXNjc2kxX2RyaXZlcik7XG4tfVxuLVxuLXN0YXRpYyB2b2lkIF9fZXhpdCBjdW1hbmFzY3NpX2V4aXQodm9pZClcbi17XG4tXHRlY2FyZF9yZW1vdmVfZHJpdmVyKFx1MDAyNmN1bWFuYXNjc2kxX2RyaXZlcik7XG4tfVxuLVxuLW1vZHVsZV9pbml0KGN1bWFuYXNjc2lfaW5pdCk7XG4tbW9kdWxlX2V4aXQoY3VtYW5hc2NzaV9leGl0KTtcbiYjNDM7bW9kdWxlX2RyaXZlcihjdW1hbmFzY3NpMV9kcml2ZXIsIGVjYXJkX3JlZ2lzdGVyX2RyaXZlciwgZWNhcmRfcmVtb3ZlX2RyaXZlcik7XG4gXG4gTU9EVUxFX0RFU0NSSVBUSU9OKFwmIzM0O0N1bWFuYSBTQ1NJLTEgZHJpdmVyIGZvciBBY29ybiBtYWNoaW5lc1wmIzM0Oyk7XG4gTU9EVUxFX0xJQ0VOU0UoXCYjMzQ7R1BMXCYjMzQ7KTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYXJtL2N1bWFuYV8yLmMgYi9kcml2ZXJzL3Njc2kvYXJtL2N1bWFuYV8yLmNcbmluZGV4IGU0NjAwNjhmNjgzNGIuLjI0OTQ1ZTE3NjVhZTAgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3Njc2kvYXJtL2N1bWFuYV8yLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvc2NzaS9hcm0vY3VtYW5hXzIuY1xuQEAgLTUwNCwxOCAmIzQzOzUwNCw3IEBAIHN0YXRpYyBzdHJ1Y3QgZWNhcmRfZHJpdmVyIGN1bWFuYXNjc2kyX2RyaXZlciA9IHtcbiBcdH0sXG4gfTtcbiBcbi1zdGF0aWMgaW50IF9faW5pdCBjdW1hbmFzY3NpMl9pbml0KHZvaWQpXG4te1xuLVx0cmV0dXJuIGVjYXJkX3JlZ2lzdGVyX2RyaXZlcihcdTAwMjZjdW1hbmFzY3NpMl9kcml2ZXIpO1xuLX1cbi1cbi1zdGF0aWMgdm9pZCBfX2V4aXQgY3VtYW5hc2NzaTJfZXhpdCh2b2lkKVxuLXtcbi1cdGVjYXJkX3JlbW92ZV9kcml2ZXIoXHUwMDI2Y3VtYW5hc2NzaTJfZHJpdmVyKTtcbi19XG4tXG4tbW9kdWxlX2luaXQoY3VtYW5hc2NzaTJfaW5pdCk7XG4tbW9kdWxlX2V4aXQoY3VtYW5hc2NzaTJfZXhpdCk7XG4mIzQzO21vZHVsZV9kcml2ZXIoY3VtYW5hc2NzaTJfZHJpdmVyLCBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIsIGVjYXJkX3JlbW92ZV9kcml2ZXIpO1xuIFxuIE1PRFVMRV9BVVRIT1IoXCYjMzQ7UnVzc2VsbCBLaW5nXCYjMzQ7KTtcbiBNT0RVTEVfREVTQ1JJUFRJT04oXCYjMzQ7Q3VtYW5hIFNDU0ktMiBkcml2ZXIgZm9yIEFjb3JuIG1hY2hpbmVzXCYjMzQ7KTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYXJtL2Vlc294LmMgYi9kcml2ZXJzL3Njc2kvYXJtL2Vlc294LmNcbmluZGV4IDk5YmU5ZGE4NzU3ZjQuLjgyM2FkMTc5ZjI0Y2MgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3Njc2kvYXJtL2Vlc294LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvc2NzaS9hcm0vZWVzb3guY1xuQEAgLTYyNiwxOCAmIzQzOzYyNiw3IEBAIHN0YXRpYyBzdHJ1Y3QgZWNhcmRfZHJpdmVyIGVlc294c2NzaV9kcml2ZXIgPSB7XG4gXHR9LFxuIH07XG4gXG4tc3RhdGljIGludCBfX2luaXQgZWVzb3hfaW5pdCh2b2lkKVxuLXtcbi1cdHJldHVybiBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIoXHUwMDI2ZWVzb3hzY3NpX2RyaXZlcik7XG4tfVxuLVxuLXN0YXRpYyB2b2lkIF9fZXhpdCBlZXNveF9leGl0KHZvaWQpXG4te1xuLVx0ZWNhcmRfcmVtb3ZlX2RyaXZlcihcdTAwMjZlZXNveHNjc2lfZHJpdmVyKTtcbi19XG4tXG4tbW9kdWxlX2luaXQoZWVzb3hfaW5pdCk7XG4tbW9kdWxlX2V4aXQoZWVzb3hfZXhpdCk7XG4mIzQzO21vZHVsZV9kcml2ZXIoZWVzb3hzY3NpX2RyaXZlciwgZWNhcmRfcmVnaXN0ZXJfZHJpdmVyLCBlY2FyZF9yZW1vdmVfZHJpdmVyKTtcbiBcbiBNT0RVTEVfQVVUSE9SKFwmIzM0O1J1c3NlbGwgS2luZ1wmIzM0Oyk7XG4gTU9EVUxFX0RFU0NSSVBUSU9OKFwmIzM0O0VFU09YICYjMzk7RmFzdCYjMzk7IFNDU0kgZHJpdmVyIGZvciBBY29ybiBtYWNoaW5lc1wmIzM0Oyk7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2FybS9vYWsuYyBiL2RyaXZlcnMvc2NzaS9hcm0vb2FrLmNcbmluZGV4IGQ2OTI0NTAwNzA5NjcuLmFlYTIxYmIxMzM1NTIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3Njc2kvYXJtL29hay5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3Njc2kvYXJtL29hay5jXG5AQCAtMTk0LDIwICYjNDM7MTk0LDggQEAgc3RhdGljIHN0cnVjdCBlY2FyZF9kcml2ZXIgb2Frc2NzaV9kcml2ZXIgPSB7XG4gXHR9LFxuIH07XG4gXG4tc3RhdGljIGludCBfX2luaXQgb2Frc2NzaV9pbml0KHZvaWQpXG4te1xuLVx0cmV0dXJuIGVjYXJkX3JlZ2lzdGVyX2RyaXZlcihcdTAwMjZvYWtzY3NpX2RyaXZlcik7XG4tfVxuLVxuLXN0YXRpYyB2b2lkIF9fZXhpdCBvYWtzY3NpX2V4aXQodm9pZClcbi17XG4tXHRlY2FyZF9yZW1vdmVfZHJpdmVyKFx1MDAyNm9ha3Njc2lfZHJpdmVyKTtcbi19XG4tXG4tbW9kdWxlX2luaXQob2Frc2NzaV9pbml0KTtcbi1tb2R1bGVfZXhpdChvYWtzY3NpX2V4aXQpO1xuJiM0Mzttb2R1bGVfZHJpdmVyKG9ha3Njc2lfZHJpdmVyLCBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIsIGVjYXJkX3JlbW92ZV9kcml2ZXIpO1xuIFxuIE1PRFVMRV9BVVRIT1IoXCYjMzQ7UnVzc2VsbCBLaW5nXCYjMzQ7KTtcbiBNT0RVTEVfREVTQ1JJUFRJT04oXCYjMzQ7T2FrIFNDU0kgZHJpdmVyXCYjMzQ7KTtcbiBNT0RVTEVfTElDRU5TRShcJiMzNDtHUExcJiMzNDspO1xuLVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9hcm0vcG93ZXJ0ZWMuYyBiL2RyaXZlcnMvc2NzaS9hcm0vcG93ZXJ0ZWMuY1xuaW5kZXggODIzYzY1ZmY2YzEyYi4uNjdmMDcxYTA1NDNiNiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvc2NzaS9hcm0vcG93ZXJ0ZWMuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9zY3NpL2FybS9wb3dlcnRlYy5jXG5AQCAtNDMyLDE4ICYjNDM7NDMyLDcgQEAgc3RhdGljIHN0cnVjdCBlY2FyZF9kcml2ZXIgcG93ZXJ0ZWNzY3NpX2RyaXZlciA9IHtcbiBcdH0sXG4gfTtcbiBcbi1zdGF0aWMgaW50IF9faW5pdCBwb3dlcnRlY3Njc2lfaW5pdCh2b2lkKVxuLXtcbi1cdHJldHVybiBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIoXHUwMDI2cG93ZXJ0ZWNzY3NpX2RyaXZlcik7XG4tfVxuLVxuLXN0YXRpYyB2b2lkIF9fZXhpdCBwb3dlcnRlY3Njc2lfZXhpdCh2b2lkKVxuLXtcbi1cdGVjYXJkX3JlbW92ZV9kcml2ZXIoXHUwMDI2cG93ZXJ0ZWNzY3NpX2RyaXZlcik7XG4tfVxuLVxuLW1vZHVsZV9pbml0KHBvd2VydGVjc2NzaV9pbml0KTtcbi1tb2R1bGVfZXhpdChwb3dlcnRlY3Njc2lfZXhpdCk7XG4mIzQzO21vZHVsZV9kcml2ZXIocG93ZXJ0ZWNzY3NpX2RyaXZlciwgZWNhcmRfcmVnaXN0ZXJfZHJpdmVyLCBlY2FyZF9yZW1vdmVfZHJpdmVyKTtcbiBcbiBNT0RVTEVfQVVUSE9SKFwmIzM0O1J1c3NlbGwgS2luZ1wmIzM0Oyk7XG4gTU9EVUxFX0RFU0NSSVBUSU9OKFwmIzM0O1Bvd2VydGVjIFNDU0kgZHJpdmVyXCYjMzQ7KTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3R0eS9zZXJpYWwvODI1MC84MjUwX2Fjb3JuLmMgYi9kcml2ZXJzL3R0eS9zZXJpYWwvODI1MC84MjUwX2Fjb3JuLmNcbmluZGV4IGZiNTk2MjYyYjljNzEuLmY2MzRkZTZlMTU5ZjQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3R0eS9zZXJpYWwvODI1MC84MjUwX2Fjb3JuLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvdHR5L3NlcmlhbC84MjUwLzgyNTBfYWNvcm4uY1xuQEAgLTEyMCwxOSAmIzQzOzEyMCw4IEBAIHN0YXRpYyBzdHJ1Y3QgZWNhcmRfZHJpdmVyIHNlcmlhbF9jYXJkX2RyaXZlciA9IHtcbiBcdH0sXG4gfTtcbiBcbi1zdGF0aWMgaW50IF9faW5pdCBzZXJpYWxfY2FyZF9pbml0KHZvaWQpXG4te1xuLVx0cmV0dXJuIGVjYXJkX3JlZ2lzdGVyX2RyaXZlcihcdTAwMjZzZXJpYWxfY2FyZF9kcml2ZXIpO1xuLX1cbi1cbi1zdGF0aWMgdm9pZCBfX2V4aXQgc2VyaWFsX2NhcmRfZXhpdCh2b2lkKVxuLXtcbi1cdGVjYXJkX3JlbW92ZV9kcml2ZXIoXHUwMDI2c2VyaWFsX2NhcmRfZHJpdmVyKTtcbi19XG4mIzQzO21vZHVsZV9kcml2ZXIoc2VyaWFsX2NhcmRfZHJpdmVyLCBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIsIGVjYXJkX3JlbW92ZV9kcml2ZXIpO1xuIFxuIE1PRFVMRV9BVVRIT1IoXCYjMzQ7UnVzc2VsbCBLaW5nXCYjMzQ7KTtcbiBNT0RVTEVfREVTQ1JJUFRJT04oXCYjMzQ7QWNvcm4gODI1MC1jb21wYXRpYmxlIHNlcmlhbCBwb3J0IGV4cGFuc2lvbiBjYXJkIGRyaXZlclwmIzM0Oyk7XG4gTU9EVUxFX0xJQ0VOU0UoXCYjMzQ7R1BMXCYjMzQ7KTtcbi1cbi1tb2R1bGVfaW5pdChzZXJpYWxfY2FyZF9pbml0KTtcbi1tb2R1bGVfZXhpdChzZXJpYWxfY2FyZF9leGl0KTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNiAyMDoyMTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5jb3JlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBzZXJpZXMgcmVwbGFjZXMgYm9pbGVycGxhdGUgbW9kdWxlX2luaXQvbW9kdWxlX2V4aXQgZnVuY3Rpb25zIHdpdGggbW9kdWxlX2RyaXZlcigpIG1hY3JvcyBhY3Jvc3Mgc2V2ZXJhbCBBY29ybiBleHBhbnNpb24gY2FyZCAoZWNhcmQpIGRyaXZlcnMuIEFsbCBtb2RpZmllZCBkcml2ZXJzIGRlcGVuZCBvbiBBUkNIX0FDT1JOIGFuZCBBUk0sIG1ha2luZyB0aGVtIGV4Y2x1c2l2ZSB0byB0aGUgQVJNIGFyY2hpdGVjdHVyZSBhbmQgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIG9uIHRoZSB0YXJnZXQgYW1kNjQgYXJjaGl0ZWN0dXJlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIgYW5kIHNlY3VyaXR5IGVuZ2luZWVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGV2YWx1YXRlIHdoZXRoZXIgaXQgd2FycmFudHMgZnV6emluZyB3aXRoIHN5emthbGxlci4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24gaW50ZXJuYWwgYXNzdW1wdGlvbnMuIFlvdSBtdXN0IGFjdGl2ZWx5IHVzZSB5b3VyIGNvZGUgYWNjZXNzCnRvb2xzIHRvIGluc3BlY3QgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSwgY2FsbGVycywgYW5kIHN1cnJvdW5kaW5nIGNvbnRleHQuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoxLiBDT1JFIFRSSUFHRSBQSElMT1NPUEhZCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClRoZSBnb2FsIG9mIHBhdGNoIGZ1enppbmcgaXMgdG8gZGlzY292ZXIgY3Jhc2hlcywgcmVncmVzc2lvbnMsIGV4cG9zZWQgbGF0ZW50IGJ1Z3MsCmFuZCBuZXdseSB0cmlnZ2VyZWQgYXNzZXJ0aW9ucyBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBzZXJpZXMuCgotIFJFQUNIQUJJTElUWSBJUyBUSEUgUFJJTUFSWSBHQVRFOgogIEZ1enppbmcgY2FuIG9ubHkgZGlzY292ZXIgYnVncyBpbiBjb2RlIHRoYXQgY2FuIGFjdHVhbGx5IGV4ZWN1dGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQKICBlbnZpcm9ubWVudHMgKEdDRSBvciBRRU1VLCB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgZGV2aWNlcyBsaWtlIFVTQiBnYWRnZXRzLCBuZXRkZXYsIHR1bi90YXApLgogIElmIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSAoc2VlIFNlY3Rpb24gMiksIGl0IE1VU1QgTk9UIGJlIGZ1enplZCwKICByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgYWRkcyBhc3NlcnRpb25zIG9yIGNvbXBsZXggbG9naWMuCgotIERPIE5PVCBCTElORExZIFRSVVNUICYjMzQ7Tk8gRlVOQ1RJT05BTCBDSEFOR0UmIzM0OyAoTkZDSSkgT1IgJiMzNDtSRUZBQ1RPUklORyYjMzQ7IENMQUlNUzoKICBQYXRjaCBhdXRob3JzIHJvdXRpbmVseSBsYWJlbCBjaGFuZ2VzIGFzICYjMzQ7Y2xlYW51cHMmIzM0OywgJiMzNDtyZWZhY3RvcmluZ3MmIzM0Oywgb3Igc3RhdGUKICAmIzM0O05vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVkJiMzNDsuIERvIE5PVCB0YWtlIHRoZXNlIGNsYWltcyBhdCBmYWNlIHZhbHVlLgogIENvZGUgcmVmYWN0b3JpbmdzIHRoYXQgcmVhcnJhbmdlIGxvZ2ljLCBpbnRyb2R1Y2UgaGVscGVyIGZ1bmN0aW9ucywgb3IgYWx0ZXIgc3RhdGUgbWFuYWdlbWVudAogIGluIGNvcmUgc3Vic3lzdGVtcyBmcmVxdWVudGx5IGludHJvZHVjZSBzdWJ0bGUgc2VtYW50aWMgc2hpZnRzIG9yIHVuY292ZXIgbGF0ZW50IGtlcm5lbCBidWdzLgogIElmIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUgaXMgbW9kaWZpZWQgb3IgcmVmYWN0b3JlZCwgaXQgTVVTVCBiZSBmdXp6ZWQuCgotIE5FVyBPUiBNT0RJRklFRCBBU1NFUlRJT05TIElOIFJFQUNIQUJMRSBDT0RFIE1VU1QgQkUgRlVaWkVEOgogIFdoZW4gYSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzIHJ1bnRpbWUgY2hlY2tzIG9yIGFzc2VydGlvbnMgKGUuZy4sIFdBUk5fT04qLCBWTV9XQVJOX09OKiwKICBCVUdfT04qLCBsb2NrZGVwX2Fzc2VydCopIGluIHJlYWNoYWJsZSBjb2RlIHBhdGhzLCBpdCBlbmZvcmNlcyBuZXcgb3Igc3RyaWN0ZXIgaW52YXJpYW50cy4KICBFdmVuIGlmIHRoZSBhdXRob3IgYmVsaWV2ZXMgdGhlIGludmFyaWFudCBhbHdheXMgaG9sZHMsIGZ1enppbmcgaXMgZXNzZW50aWFsIHRvIHZlcmlmeSB3aGV0aGVyCiAgYW4gdW51c3VhbCBzZXF1ZW5jZSBvZiBvcGVyYXRpb25zIGNhbiB2aW9sYXRlIGl0LgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMi4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPWZhbHNlIChORUdBVElWRSBDUklURVJJQSkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBPTkxZIElGIGFsbCBtb2RpZmllZCBjb2RlIGZhbGxzIHN0cmljdGx5IGludG8gb25lIG9yIG1vcmUgb2YgdGhlc2UgY2F0ZWdvcmllczoKCi0gTm9uLWtlcm5lbCBhbmQgbm9uLWV4ZWN1dGFibGUgY2hhbmdlczoKICAqIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIGNvbW1lbnRzLCBvciBzcGVsbGluZyBmaXhlcy4KICAqIFVzZXItc3BhY2UgZGlyZWN0b3JpZXMsIHNlbGYtdGVzdHMsIHNhbXBsZXMsIG9yIHNjcmlwdHMgKGUuZy4sIHRvb2xzLywgc2FtcGxlcy8sIHNjcmlwdHMvLCB1c3IvKQogICAgdGhhdCBkbyBub3QgYWZmZWN0IHRoZSBjb21waWxlZCBrZXJuZWwgaW1hZ2UgKHZtbGludXgpIG9yIGtlcm5lbCBtb2R1bGVzLgogICogUHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZyAoZS5nLiwgbWVzc2FnZSBzdHJpbmdzIGluIHByX2VyciwgcHJpbnRrLCBkZXZfaW5mbykgb3IgdHJhY2Vwb2ludHMKICAgIHRoYXQgZG8gbm90IGFsdGVyIGNvbnRyb2wgZmxvdyBvciBkYXRhIHN0cnVjdHVyZXMuCiAgKiBCdWlsZCBzeXN0ZW0gb3IgS2NvbmZpZyBjaGFuZ2VzIHRoYXQgZG8gbm90IGFsdGVyIGNvbXBpbGVkIEMgbG9naWMuCi0gU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlOgogICogVmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoZXMsIFNtYXJ0TklDcywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogICAgaW9uaWMsIGFtZGdwdSkgcmVxdWlyaW5nIHBoeXNpY2FsIEFTSUMvUENJZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBVbnJlYWNoYWJsZSBleGVjdXRpb24gcGF0aHM6CiAgKiBEcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzICgucmVtb3ZlLCAuc2h1dGRvd24sIHBjaV91bnJlZ2lzdGVyX2RyaXZlcikgZXhlY3V0ZWQgb25seSBkdXJpbmcKICAgIHBoeXNpY2FsIFBDSSBob3QtdW5wbHVnIG9yIG1hbnVhbCBzeXNmcyBkcml2ZXIgdW5iaW5kaW5nLgogICogQ29kZSBwYXRocyBleGNsdXNpdmUgdG8gYXJjaGl0ZWN0dXJlcyBvdGhlciB0aGFuIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMy4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPXRydWUgKFBPU0lUSVZFIENSSVRFUklBKQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSZXR1cm4gV29ydGhGdXp6aW5nPXRydWUgd2hlbmV2ZXIgdGhlIHBhdGNoIHRvdWNoZXMgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSwgaW5jbHVkaW5nOgotIENvcmUgU3Vic3lzdGVtczoKICAqIEFueSBsb2dpYyBtb2RpZmljYXRpb25zIGluIG1lbW9yeSBtYW5hZ2VtZW50IChtbS8pLCBzeW5jaHJvbml6YXRpb24vbG9ja2luZyAoa2VybmVsL2xvY2tpbmcvKSwKICAgIEJQRiwgc2NoZWR1bGVyLCBjb3JlIG5ldHdvcmtpbmcsIFZGUywgb3Igc3lzY2FsbCBoYW5kbGluZy4KLSBSZWZhY3RvcmluZ3MgYW5kIENvZGUgQ2xlYW51cHM6CiAgKiBBbnkgcmVzdHJ1Y3R1cmluZyBvZiByZWFjaGFibGUgZGF0YSBzdHJ1Y3R1cmVzLCBoZWxwZXIgYWJzdHJhY3Rpb25zLCBvciBhbGdvcml0aG0gZmxvd3MuCi0gUnVudGltZSBBc3NlcnRpb25zIGFuZCBEZWZlbnNpdmUgQ2hlY2tzOgogICogQW55IGludHJvZHVjdGlvbiBvciBhbHRlcmF0aW9uIG9mIGFzc2VydGlvbnMgKFdBUk5fT04qLCBWTV9XQVJOX09OKiwgQlVHX09OKiwgZXRjLikgaW4gcmVhY2hhYmxlIHBhdGhzLgotIFJlYWNoYWJsZSBEcml2ZXJzIGFuZCBQcm90b2NvbHM6CiAgKiBEcml2ZXJzIGFjY2Vzc2libGUgdmlhIHZpcnR1YWwgYnVzZXMgKHZpcnRpbywgVVNCIGdhZGdldCwgbG9vcGJhY2ssIG5ldGxpbmssIGJpbmRlciwgc29ja2V0cywgZXRjLikuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo0LiBFWFRSQUNUSU5HIEZvY3VzU3ltYm9scyAoUFJFVkVOVElORyBESUxVVElPTikKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KV2hlbiBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IG11c3QgZXh0cmFjdCBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIGludG8gRm9jdXNTeW1ib2xzIHRvIGd1aWRlIHRoZSBmdXp6ZXI6CgotIEFWT0lEIFVCSVFVSVRPVVMgTElGRUNZQ0xFIEhPVC1QQVRIUzoKICBEbyBOT1QgbGlzdCBnZW5lcmljLCB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYWxsZWQgYnkgYWxtb3N0IGV2ZXJ5IHByb2dyYW0gaW4gdGhlIGNvcnB1cwogIChpbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0bzogZ2VuZXJhbCBtZW1vcnkgYWxsb2NhdG9ycyBhbmQgZGVhbGxvY2F0b3JzLCBwYWdlIGZhdWx0CiAgYW5kIHRyYXAgaGFuZGxlcnMsIG9yIGNvcmUgc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXM7IHRoaXMgaXMgbm90IGFuIGV4aGF1c3RpdmUgbGlzdCkuCiAgTGlzdGluZyB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYXVzZXMgdGhlIGZ1enplciB0byBjbGFzc2lmeSB0aG91c2FuZHMgb2YgdW5yZWxhdGVkIHRlc3RzIGFzICYjMzQ7Zm9jdXNlZCYjMzQ7LAogIHdoaWNoIHNldmVyZWx5IGRpbHV0ZXMgZnV6emluZyBlZmZvcnQgYXdheSBmcm9tIHRoZSBhY3R1YWwgY2hhbmdlcy4KCi0gVEFSR0VUIFNQRUNJRklDIEZFQVRVUkUgTE9HSUMgQU5EIEVOVFJZUE9JTlRTOgogIExpc3QgZnVuY3Rpb25zIHRoYXQgc3BlY2lmaWNhbGx5IGltcGxlbWVudCB0aGUgbG9naWMgYmVpbmcgYWRkZWQgb3IgYWx0ZXJlZCwgb3IgZGlyZWN0IEFQSSBlbnRyeXBvaW50cwogIGZvciB0aGUgc3Vic3lzdGVtIGZlYXR1cmUgdW5kZXIgcmV2aWV3LgoKLSBIQU5ETElORyBTVEFUSUMgSU5MSU5FIEZVTkNUSU9OUyBJTiBIRUFERVJTICguaCk6CiAgQ29tcGlsZXItaW5saW5lZCBzdGF0aWMgZnVuY3Rpb25zIChzdWNoIGFzIHN0YXRpYyBpbmxpbmVzIGluIG1tLyouaCBvciBpbmNsdWRlL2xpbnV4LyouaCkgbGFjawogIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMgaW4gdm1saW51eCBhbmQgY2Fubm90IGJlIHRhcmdldGVkIGRpcmVjdGx5IGJ5IHN5bWJvbCBjb3ZlcmFnZSBmaWx0ZXJzLgogIElmIHRoZSBjaGFuZ2VzIGFyZSBwcmltYXJpbHkgaW4gc3RhdGljIGlubGluZSBoZWxwZXJzLCBpZGVudGlmeSBub24tc3RhdGljLCBmZWF0dXJlLXNwZWNpZmljIGNhbGxlcgogIGZ1bmN0aW9ucyBpbiAuYyBmaWxlcyB0aGF0IGV4ZXJjaXNlIHRoZW0gKGF2b2lkaW5nIHViaXF1aXRvdXMgbGlmZWN5Y2xlIHdyYXBwZXJzKS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjUuIElERU5USUZZSU5HIEVuYWJsZUNvbmZpZ3MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSBjb21waWxlIGFuZCByZWFjaCB0aGUgbW9kaWZpZWQgY29kZToKLSBJbnNwZWN0IEtjb25maWcgZmlsZXMgYW5kICNpZmRlZiBndWFyZHM7IGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgotIENoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncyBuZWVkZWQuCi0gU3RyaXAgYW55ICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPlRhcmdldCBhcmNoaXRlY3R1cmU6IGFtZDY0CgpGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGJiN2FmODFmYTgwZDllNGJjOTNlMzk2NmIxOTI5NGIzZDU4MmNjMzMKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgU3VuIFNlcCA2IDIwOjIxOjM3IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hdGEvcGF0YV9pY3NpZGUuYyBiL2RyaXZlcnMvYXRhL3BhdGFfaWNzaWRlLmMKaW5kZXggNzBmMDU2ZTQ3ZTZiZC4uZGY3MjAzYTc0ZjQ1ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9hdGEvcGF0YV9pY3NpZGUuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL2F0YS9wYXRhX2ljc2lkZS5jCkBAIC02MTMsMTkgJiM0Mzs2MTMsOCBAQCBzdGF0aWMgc3RydWN0IGVjYXJkX2RyaXZlciBwYXRhX2ljc2lkZV9kcml2ZXIgPSB7CiAJfSwKIH07CiAKLXN0YXRpYyBpbnQgX19pbml0IHBhdGFfaWNzaWRlX2luaXQodm9pZCkKLXsKLQlyZXR1cm4gZWNhcmRfcmVnaXN0ZXJfZHJpdmVyKCZhbXA7cGF0YV9pY3NpZGVfZHJpdmVyKTsKLX0KLQotc3RhdGljIHZvaWQgX19leGl0IHBhdGFfaWNzaWRlX2V4aXQodm9pZCkKLXsKLQllY2FyZF9yZW1vdmVfZHJpdmVyKCZhbXA7cGF0YV9pY3NpZGVfZHJpdmVyKTsKLX0KJiM0Mzttb2R1bGVfZHJpdmVyKHBhdGFfaWNzaWRlX2RyaXZlciwgZWNhcmRfcmVnaXN0ZXJfZHJpdmVyLCBlY2FyZF9yZW1vdmVfZHJpdmVyKTsKIAogTU9EVUxFX0FVVEhPUigmIzM0O1J1c3NlbGwgS2luZyAmbHQ7cm1rQGFybS5saW51eC5vcmcudWsmZ3Q7JiMzNDspOwogTU9EVUxFX0xJQ0VOU0UoJiMzNDtHUEwmIzM0Oyk7CiBNT0RVTEVfREVTQ1JJUFRJT04oJiMzNDtJQ1MgUEFUQSBkcml2ZXImIzM0Oyk7Ci0KLW1vZHVsZV9pbml0KHBhdGFfaWNzaWRlX2luaXQpOwotbW9kdWxlX2V4aXQocGF0YV9pY3NpZGVfZXhpdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pODI1eHgvZXRoZXIxLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pODI1eHgvZXRoZXIxLmMKaW5kZXggM2U3ZDdjNGJhZmRjMi4uZDIxYWViODMxNTMxNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaTgyNXh4L2V0aGVyMS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2k4MjV4eC9ldGhlcjEuYwpAQCAtMTA3MCwxNyAmIzQzOzEwNzAsNiBAQCBzdGF0aWMgc3RydWN0IGVjYXJkX2RyaXZlciBldGhlcjFfZHJpdmVyID0gewogCX0sCiB9OwogCi1zdGF0aWMgaW50IF9faW5pdCBldGhlcjFfaW5pdCh2b2lkKQotewotCXJldHVybiBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIoJmFtcDtldGhlcjFfZHJpdmVyKTsKLX0KLQotc3RhdGljIHZvaWQgX19leGl0IGV0aGVyMV9leGl0KHZvaWQpCi17Ci0JZWNhcmRfcmVtb3ZlX2RyaXZlcigmYW1wO2V0aGVyMV9kcml2ZXIpOwotfQotCi1tb2R1bGVfaW5pdChldGhlcjFfaW5pdCk7Ci1tb2R1bGVfZXhpdChldGhlcjFfZXhpdCk7CiYjNDM7bW9kdWxlX2RyaXZlcihldGhlcjFfZHJpdmVyLCBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIsIGVjYXJkX3JlbW92ZV9kcml2ZXIpOwogCiBNT0RVTEVfTElDRU5TRSgmIzM0O0dQTCYjMzQ7KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NlZXEvZXRoZXIzLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZWVxL2V0aGVyMy5jCmluZGV4IDIwZGFkMzliNWFiOTQuLmIwZDJjYmMzNTkxNDcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NlZXEvZXRoZXIzLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2VlcS9ldGhlcjMuYwpAQCAtODgyLDE3ICYjNDM7ODgyLDYgQEAgc3RhdGljIHN0cnVjdCBlY2FyZF9kcml2ZXIgZXRoZXIzX2RyaXZlciA9IHsKIAl9LAogfTsKIAotc3RhdGljIGludCBfX2luaXQgZXRoZXIzX2luaXQodm9pZCkKLXsKLQlyZXR1cm4gZWNhcmRfcmVnaXN0ZXJfZHJpdmVyKCZhbXA7ZXRoZXIzX2RyaXZlcik7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fZXhpdCBldGhlcjNfZXhpdCh2b2lkKQotewotCWVjYXJkX3JlbW92ZV9kcml2ZXIoJmFtcDtldGhlcjNfZHJpdmVyKTsKLX0KLQotbW9kdWxlX2luaXQoZXRoZXIzX2luaXQpOwotbW9kdWxlX2V4aXQoZXRoZXIzX2V4aXQpOwomIzQzO21vZHVsZV9kcml2ZXIoZXRoZXIzX2RyaXZlciwgZWNhcmRfcmVnaXN0ZXJfZHJpdmVyLCBlY2FyZF9yZW1vdmVfZHJpdmVyKTsKIAogTU9EVUxFX0xJQ0VOU0UoJiMzNDtHUEwmIzM0Oyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYXJtL2Fjb3Juc2NzaS5jIGIvZHJpdmVycy9zY3NpL2FybS9hY29ybnNjc2kuYwppbmRleCA3OWQ3ZDczMzZiNmFjLi44Yjg5OWZiZjA5MmUxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvYXJtL2Fjb3Juc2NzaS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvc2NzaS9hcm0vYWNvcm5zY3NpLmMKQEAgLTI5MDIsMTggJiM0MzsyOTAyLDcgQEAgc3RhdGljIHN0cnVjdCBlY2FyZF9kcml2ZXIgYWNvcm5zY3NpX2RyaXZlciA9IHsKIAl9LAogfTsKIAotc3RhdGljIGludCBfX2luaXQgYWNvcm5zY3NpX2luaXQodm9pZCkKLXsKLQlyZXR1cm4gZWNhcmRfcmVnaXN0ZXJfZHJpdmVyKCZhbXA7YWNvcm5zY3NpX2RyaXZlcik7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fZXhpdCBhY29ybnNjc2lfZXhpdCh2b2lkKQotewotCWVjYXJkX3JlbW92ZV9kcml2ZXIoJmFtcDthY29ybnNjc2lfZHJpdmVyKTsKLX0KLQotbW9kdWxlX2luaXQoYWNvcm5zY3NpX2luaXQpOwotbW9kdWxlX2V4aXQoYWNvcm5zY3NpX2V4aXQpOwomIzQzO21vZHVsZV9kcml2ZXIoYWNvcm5zY3NpX2RyaXZlciwgZWNhcmRfcmVnaXN0ZXJfZHJpdmVyLCBlY2FyZF9yZW1vdmVfZHJpdmVyKTsKIAogTU9EVUxFX0FVVEhPUigmIzM0O1J1c3NlbGwgS2luZyYjMzQ7KTsKIE1PRFVMRV9ERVNDUklQVElPTigmIzM0O0Fjb3JuU0NTSSBkcml2ZXImIzM0Oyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYXJtL2FyeGVzY3NpLmMgYi9kcml2ZXJzL3Njc2kvYXJtL2FyeGVzY3NpLmMKaW5kZXggOTI1ZDBiZDY4YWE1Yi4uMmQzZjViMDUxOWQxYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2FybS9hcnhlc2NzaS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvc2NzaS9hcm0vYXJ4ZXNjc2kuYwpAQCAtMzQ0LDIwICYjNDM7MzQ0LDggQEAgc3RhdGljIHN0cnVjdCBlY2FyZF9kcml2ZXIgYXJ4ZXNjc2lfZHJpdmVyID0gewogCX0sCiB9OwogCi1zdGF0aWMgaW50IF9faW5pdCBpbml0X2FyeGVfc2NzaV9kcml2ZXIodm9pZCkKLXsKLQlyZXR1cm4gZWNhcmRfcmVnaXN0ZXJfZHJpdmVyKCZhbXA7YXJ4ZXNjc2lfZHJpdmVyKTsKLX0KLQotc3RhdGljIHZvaWQgX19leGl0IGV4aXRfYXJ4ZV9zY3NpX2RyaXZlcih2b2lkKQotewotCWVjYXJkX3JlbW92ZV9kcml2ZXIoJmFtcDthcnhlc2NzaV9kcml2ZXIpOwotfQotCi1tb2R1bGVfaW5pdChpbml0X2FyeGVfc2NzaV9kcml2ZXIpOwotbW9kdWxlX2V4aXQoZXhpdF9hcnhlX3Njc2lfZHJpdmVyKTsKJiM0Mzttb2R1bGVfZHJpdmVyKGFyeGVzY3NpX2RyaXZlciwgZWNhcmRfcmVnaXN0ZXJfZHJpdmVyLCBlY2FyZF9yZW1vdmVfZHJpdmVyKTsKIAogTU9EVUxFX0FVVEhPUigmIzM0O1N0ZWZhbiBIYW5za2UmIzM0Oyk7CiBNT0RVTEVfREVTQ1JJUFRJT04oJiMzNDtBUlhFU0NTSSBkcml2ZXIgZm9yIEFjb3JuIG1hY2hpbmVzJiMzNDspOwogTU9EVUxFX0xJQ0VOU0UoJiMzNDtHUEwmIzM0Oyk7Ci0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9hcm0vY3VtYW5hXzEuYyBiL2RyaXZlcnMvc2NzaS9hcm0vY3VtYW5hXzEuYwppbmRleCBkMWEyYTIyZmZlOGM3Li42MmMxMTE2OGYzMjExIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvYXJtL2N1bWFuYV8xLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9zY3NpL2FybS9jdW1hbmFfMS5jCkBAIC0zMjQsMTggJiM0MzszMjQsNyBAQCBzdGF0aWMgc3RydWN0IGVjYXJkX2RyaXZlciBjdW1hbmFzY3NpMV9kcml2ZXIgPSB7CiAJfSwKIH07CiAKLXN0YXRpYyBpbnQgX19pbml0IGN1bWFuYXNjc2lfaW5pdCh2b2lkKQotewotCXJldHVybiBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIoJmFtcDtjdW1hbmFzY3NpMV9kcml2ZXIpOwotfQotCi1zdGF0aWMgdm9pZCBfX2V4aXQgY3VtYW5hc2NzaV9leGl0KHZvaWQpCi17Ci0JZWNhcmRfcmVtb3ZlX2RyaXZlcigmYW1wO2N1bWFuYXNjc2kxX2RyaXZlcik7Ci19Ci0KLW1vZHVsZV9pbml0KGN1bWFuYXNjc2lfaW5pdCk7Ci1tb2R1bGVfZXhpdChjdW1hbmFzY3NpX2V4aXQpOwomIzQzO21vZHVsZV9kcml2ZXIoY3VtYW5hc2NzaTFfZHJpdmVyLCBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIsIGVjYXJkX3JlbW92ZV9kcml2ZXIpOwogCiBNT0RVTEVfREVTQ1JJUFRJT04oJiMzNDtDdW1hbmEgU0NTSS0xIGRyaXZlciBmb3IgQWNvcm4gbWFjaGluZXMmIzM0Oyk7CiBNT0RVTEVfTElDRU5TRSgmIzM0O0dQTCYjMzQ7KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9hcm0vY3VtYW5hXzIuYyBiL2RyaXZlcnMvc2NzaS9hcm0vY3VtYW5hXzIuYwppbmRleCBlNDYwMDY4ZjY4MzRiLi4yNDk0NWUxNzY1YWUwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvYXJtL2N1bWFuYV8yLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9zY3NpL2FybS9jdW1hbmFfMi5jCkBAIC01MDQsMTggJiM0Mzs1MDQsNyBAQCBzdGF0aWMgc3RydWN0IGVjYXJkX2RyaXZlciBjdW1hbmFzY3NpMl9kcml2ZXIgPSB7CiAJfSwKIH07CiAKLXN0YXRpYyBpbnQgX19pbml0IGN1bWFuYXNjc2kyX2luaXQodm9pZCkKLXsKLQlyZXR1cm4gZWNhcmRfcmVnaXN0ZXJfZHJpdmVyKCZhbXA7Y3VtYW5hc2NzaTJfZHJpdmVyKTsKLX0KLQotc3RhdGljIHZvaWQgX19leGl0IGN1bWFuYXNjc2kyX2V4aXQodm9pZCkKLXsKLQllY2FyZF9yZW1vdmVfZHJpdmVyKCZhbXA7Y3VtYW5hc2NzaTJfZHJpdmVyKTsKLX0KLQotbW9kdWxlX2luaXQoY3VtYW5hc2NzaTJfaW5pdCk7Ci1tb2R1bGVfZXhpdChjdW1hbmFzY3NpMl9leGl0KTsKJiM0Mzttb2R1bGVfZHJpdmVyKGN1bWFuYXNjc2kyX2RyaXZlciwgZWNhcmRfcmVnaXN0ZXJfZHJpdmVyLCBlY2FyZF9yZW1vdmVfZHJpdmVyKTsKIAogTU9EVUxFX0FVVEhPUigmIzM0O1J1c3NlbGwgS2luZyYjMzQ7KTsKIE1PRFVMRV9ERVNDUklQVElPTigmIzM0O0N1bWFuYSBTQ1NJLTIgZHJpdmVyIGZvciBBY29ybiBtYWNoaW5lcyYjMzQ7KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9hcm0vZWVzb3guYyBiL2RyaXZlcnMvc2NzaS9hcm0vZWVzb3guYwppbmRleCA5OWJlOWRhODc1N2Y0Li44MjNhZDE3OWYyNGNjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvYXJtL2Vlc294LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9zY3NpL2FybS9lZXNveC5jCkBAIC02MjYsMTggJiM0Mzs2MjYsNyBAQCBzdGF0aWMgc3RydWN0IGVjYXJkX2RyaXZlciBlZXNveHNjc2lfZHJpdmVyID0gewogCX0sCiB9OwogCi1zdGF0aWMgaW50IF9faW5pdCBlZXNveF9pbml0KHZvaWQpCi17Ci0JcmV0dXJuIGVjYXJkX3JlZ2lzdGVyX2RyaXZlcigmYW1wO2Vlc294c2NzaV9kcml2ZXIpOwotfQotCi1zdGF0aWMgdm9pZCBfX2V4aXQgZWVzb3hfZXhpdCh2b2lkKQotewotCWVjYXJkX3JlbW92ZV9kcml2ZXIoJmFtcDtlZXNveHNjc2lfZHJpdmVyKTsKLX0KLQotbW9kdWxlX2luaXQoZWVzb3hfaW5pdCk7Ci1tb2R1bGVfZXhpdChlZXNveF9leGl0KTsKJiM0Mzttb2R1bGVfZHJpdmVyKGVlc294c2NzaV9kcml2ZXIsIGVjYXJkX3JlZ2lzdGVyX2RyaXZlciwgZWNhcmRfcmVtb3ZlX2RyaXZlcik7CiAKIE1PRFVMRV9BVVRIT1IoJiMzNDtSdXNzZWxsIEtpbmcmIzM0Oyk7CiBNT0RVTEVfREVTQ1JJUFRJT04oJiMzNDtFRVNPWCAmIzM5O0Zhc3QmIzM5OyBTQ1NJIGRyaXZlciBmb3IgQWNvcm4gbWFjaGluZXMmIzM0Oyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYXJtL29hay5jIGIvZHJpdmVycy9zY3NpL2FybS9vYWsuYwppbmRleCBkNjkyNDUwMDcwOTY3Li5hZWEyMWJiMTMzNTUyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvYXJtL29hay5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvc2NzaS9hcm0vb2FrLmMKQEAgLTE5NCwyMCAmIzQzOzE5NCw4IEBAIHN0YXRpYyBzdHJ1Y3QgZWNhcmRfZHJpdmVyIG9ha3Njc2lfZHJpdmVyID0gewogCX0sCiB9OwogCi1zdGF0aWMgaW50IF9faW5pdCBvYWtzY3NpX2luaXQodm9pZCkKLXsKLQlyZXR1cm4gZWNhcmRfcmVnaXN0ZXJfZHJpdmVyKCZhbXA7b2Frc2NzaV9kcml2ZXIpOwotfQotCi1zdGF0aWMgdm9pZCBfX2V4aXQgb2Frc2NzaV9leGl0KHZvaWQpCi17Ci0JZWNhcmRfcmVtb3ZlX2RyaXZlcigmYW1wO29ha3Njc2lfZHJpdmVyKTsKLX0KLQotbW9kdWxlX2luaXQob2Frc2NzaV9pbml0KTsKLW1vZHVsZV9leGl0KG9ha3Njc2lfZXhpdCk7CiYjNDM7bW9kdWxlX2RyaXZlcihvYWtzY3NpX2RyaXZlciwgZWNhcmRfcmVnaXN0ZXJfZHJpdmVyLCBlY2FyZF9yZW1vdmVfZHJpdmVyKTsKIAogTU9EVUxFX0FVVEhPUigmIzM0O1J1c3NlbGwgS2luZyYjMzQ7KTsKIE1PRFVMRV9ERVNDUklQVElPTigmIzM0O09hayBTQ1NJIGRyaXZlciYjMzQ7KTsKIE1PRFVMRV9MSUNFTlNFKCYjMzQ7R1BMJiMzNDspOwotCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYXJtL3Bvd2VydGVjLmMgYi9kcml2ZXJzL3Njc2kvYXJtL3Bvd2VydGVjLmMKaW5kZXggODIzYzY1ZmY2YzEyYi4uNjdmMDcxYTA1NDNiNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2FybS9wb3dlcnRlYy5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvc2NzaS9hcm0vcG93ZXJ0ZWMuYwpAQCAtNDMyLDE4ICYjNDM7NDMyLDcgQEAgc3RhdGljIHN0cnVjdCBlY2FyZF9kcml2ZXIgcG93ZXJ0ZWNzY3NpX2RyaXZlciA9IHsKIAl9LAogfTsKIAotc3RhdGljIGludCBfX2luaXQgcG93ZXJ0ZWNzY3NpX2luaXQodm9pZCkKLXsKLQlyZXR1cm4gZWNhcmRfcmVnaXN0ZXJfZHJpdmVyKCZhbXA7cG93ZXJ0ZWNzY3NpX2RyaXZlcik7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fZXhpdCBwb3dlcnRlY3Njc2lfZXhpdCh2b2lkKQotewotCWVjYXJkX3JlbW92ZV9kcml2ZXIoJmFtcDtwb3dlcnRlY3Njc2lfZHJpdmVyKTsKLX0KLQotbW9kdWxlX2luaXQocG93ZXJ0ZWNzY3NpX2luaXQpOwotbW9kdWxlX2V4aXQocG93ZXJ0ZWNzY3NpX2V4aXQpOwomIzQzO21vZHVsZV9kcml2ZXIocG93ZXJ0ZWNzY3NpX2RyaXZlciwgZWNhcmRfcmVnaXN0ZXJfZHJpdmVyLCBlY2FyZF9yZW1vdmVfZHJpdmVyKTsKIAogTU9EVUxFX0FVVEhPUigmIzM0O1J1c3NlbGwgS2luZyYjMzQ7KTsKIE1PRFVMRV9ERVNDUklQVElPTigmIzM0O1Bvd2VydGVjIFNDU0kgZHJpdmVyJiMzNDspOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy90dHkvc2VyaWFsLzgyNTAvODI1MF9hY29ybi5jIGIvZHJpdmVycy90dHkvc2VyaWFsLzgyNTAvODI1MF9hY29ybi5jCmluZGV4IGZiNTk2MjYyYjljNzEuLmY2MzRkZTZlMTU5ZjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdHR5L3NlcmlhbC84MjUwLzgyNTBfYWNvcm4uYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3R0eS9zZXJpYWwvODI1MC84MjUwX2Fjb3JuLmMKQEAgLTEyMCwxOSAmIzQzOzEyMCw4IEBAIHN0YXRpYyBzdHJ1Y3QgZWNhcmRfZHJpdmVyIHNlcmlhbF9jYXJkX2RyaXZlciA9IHsKIAl9LAogfTsKIAotc3RhdGljIGludCBfX2luaXQgc2VyaWFsX2NhcmRfaW5pdCh2b2lkKQotewotCXJldHVybiBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIoJmFtcDtzZXJpYWxfY2FyZF9kcml2ZXIpOwotfQotCi1zdGF0aWMgdm9pZCBfX2V4aXQgc2VyaWFsX2NhcmRfZXhpdCh2b2lkKQotewotCWVjYXJkX3JlbW92ZV9kcml2ZXIoJmFtcDtzZXJpYWxfY2FyZF9kcml2ZXIpOwotfQomIzQzO21vZHVsZV9kcml2ZXIoc2VyaWFsX2NhcmRfZHJpdmVyLCBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIsIGVjYXJkX3JlbW92ZV9kcml2ZXIpOwogCiBNT0RVTEVfQVVUSE9SKCYjMzQ7UnVzc2VsbCBLaW5nJiMzNDspOwogTU9EVUxFX0RFU0NSSVBUSU9OKCYjMzQ7QWNvcm4gODI1MC1jb21wYXRpYmxlIHNlcmlhbCBwb3J0IGV4cGFuc2lvbiBjYXJkIGRyaXZlciYjMzQ7KTsKIE1PRFVMRV9MSUNFTlNFKCYjMzQ7R1BMJiMzNDspOwotCi1tb2R1bGVfaW5pdChzZXJpYWxfY2FyZF9pbml0KTsKLW1vZHVsZV9leGl0KHNlcmlhbF9jYXJkX2V4aXQpOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNiAyMDoyMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1OTE5CgkJCQkJCQlvdXRwdXQ6IDUyCgkJCQkJCQl0aG91Z2h0czogMjY5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBUaGlzIFBhdGNoOiBBbiBBY29ybiBFY2FyZCBEZWVwIERpdmUqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gRmlyc3QgdGhpbmdzIGZpcnN0LCB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZSBpcyBhbWQ2NCwgYnV0IHRoZSBwYXRjaCBpdHNlbGYgc2VlbXMgdG8gYmUgZGlnZ2luZyBpbnRvIHNvbWUgcG90ZW50aWFsbHkgKnZlcnkqIG9sZCBjb2RlLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgaW1wbGljYXRpb25zIG9mIHRoaXMuCgpUaGUgZmlsZXMgbGlzdGVkIOKAkyBgZHJpdmVycy9hdGEvcGF0YV9pY3NpZGUuY2AsIGEgZmV3IEV0aGVybmV0IGRyaXZlcnMgKGBldGhlcjEuY2AsIGBldGhlcjMuY2ApLCBhbmQgYSBzbGV3IG9mIFNDU0kgZHJpdmVycyAoYGFjb3Juc2NzaS5jYCwgZXRjLiDigJMgdGhlIHdob2xlIGxvdCkg4oCTIHRoZXkgYWxsIHNlZW0gdG8gYmUgdG91Y2hpbmcgQWNvcm4gRXhwYW5zaW9uIENhcmQgKGVjYXJkKSBkcml2ZXJzLCBnaXZlbiB0aGUgbWVudGlvbiBvZiBgc3RydWN0IGVjYXJkX2RyaXZlcmAuIE15IHNwaWRleS1zZW5zZSBpcyB0aW5nbGluZzsgSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hhdCYjMzk7cyBhY3R1YWxseSBjaGFuZ2luZyBpbiB0aGVzZSBmaWxlcywgYW5kIHdoeSB0aGV5JiMzOTtyZSByZWxldmFudCB0byB0aGUgY3VycmVudCB0YXJnZXQgYXJjaGl0ZWN0dXJlLgoKR2l2ZW4gdGhhdCB0aGVzZSBhcmUgYWxsIGVjYXJkIGRyaXZlcnMsIEkgc2hvdWxkIGNoZWNrIHRoZSBLY29uZmlnIGFuZCBhcmNoaXRlY3R1cmUgZGVwZW5kZW5jaWVzIGZvciBib3RoIHRoZSBlY2FyZCBpbmZyYXN0cnVjdHVyZSBpdHNlbGYgKmFuZCogdGhlc2Ugc3BlY2lmaWMgZHJpdmVycy4gSSYjMzk7bSBnb2luZyB0byB1c2UgYGdyZXBwZXJgIHRvIHF1aWNrbHkgaW5zcGVjdCB0aGUgS2NvbmZpZyBmaWxlcyBhc3NvY2lhdGVkIHdpdGggdGhlc2UgZHJpdmVycyBhbmQgdGhlIGVjYXJkIHN1YnN5c3RlbSB0byB1bmRlcnN0YW5kIHRoZSBjb250ZXh0IGFuZCBjb25kaXRpb25hbHMuIEhvcGVmdWxseSwgdGhhdCB3aWxsIGdpdmUgbWUgc29tZSBjbHVlcyBhYm91dCB3aGF0JiMzOTtzIGJlaW5nIGVuYWJsZWQsIGRpc2FibGVkLCBvciBtb2RpZmllZC4gVGhpcyBjb3VsZCBiZSBhIHJlZmFjdG9yaW5nIGVmZm9ydCwgYSBidWcgZml4LCBvciBzb21ldGhpbmcgZmFyIG1vcmUgaW52b2x2ZWQsIGFuZCBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGljaCBpdCBpcy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2h5IHRoaXMgb2xkIGNvZGUgaXMgZXZlbiBiZWluZyB0b3VjaGVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA2IDIwOjIxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZy4qKFBBVEFfSUNTSURFfEFSTV9FVEhFUjF8QVJNX0VUSEVSM3xTQ1NJX0FDT1JOU0NTSXxTRVJJQUxfODI1MF9BQ09STikmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9hdGEvS2NvbmZpZz03NDk9Y29uZmlnIFBBVEFfSFBUM1gzX0RNQVxuLS1cbmRyaXZlcnMvYXRhL0tjb25maWctNzU2LVxuZHJpdmVycy9hdGEvS2NvbmZpZzo3NTc6Y29uZmlnIFBBVEFfSUNTSURFXG5kcml2ZXJzL2F0YS9LY29uZmlnLTc1OC1cdHRyaXN0YXRlIFwmIzM0O0Fjb3JuIElDUyBQQVRBIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pODI1eHgvS2NvbmZpZz0xOD1pZiBORVRfVkVORE9SX0k4MjVYWFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaTgyNXh4L0tjb25maWctMTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pODI1eHgvS2NvbmZpZzoyMDpjb25maWcgQVJNX0VUSEVSMVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaTgyNXh4L0tjb25maWctMjEtXHR0cmlzdGF0ZSBcJiMzNDtBY29ybiBFdGhlcjEgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NlZXEvS2NvbmZpZz0xOD1pZiBORVRfVkVORE9SX1NFRVFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NlZXEvS2NvbmZpZy0xOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NlZXEvS2NvbmZpZzoyMDpjb25maWcgQVJNX0VUSEVSM1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2VlcS9LY29uZmlnLTIxLVx0dHJpc3RhdGUgXCYjMzQ7QWNvcm4vQU5UIEV0aGVyMyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9zY3NpL2FybS9LY29uZmlnLTQtI1xuZHJpdmVycy9zY3NpL2FybS9LY29uZmlnOjU6Y29uZmlnIFNDU0lfQUNPUk5TQ1NJXzNcbmRyaXZlcnMvc2NzaS9hcm0vS2NvbmZpZy02LVx0dHJpc3RhdGUgXCYjMzQ7QWNvcm4gU0NTSSBjYXJkIChha2EzMCkgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvc2NzaS9hcm0vS2NvbmZpZy0xMi1cbmRyaXZlcnMvc2NzaS9hcm0vS2NvbmZpZzoxMzpjb25maWcgU0NTSV9BQ09STlNDU0lfU1lOQ1xuZHJpdmVycy9zY3NpL2FybS9LY29uZmlnLTE0LVx0Ym9vbCBcJiMzNDtTdXBwb3J0IFNDU0kgMiBTeW5jaHJvbm91cyBUcmFuc2ZlcnNcJiMzNDtcbi0tXG5kcml2ZXJzL3R0eS9zZXJpYWwvODI1MC9LY29uZmlnPTMyNT1jb25maWcgU0VSSUFMXzgyNTBfQVNQRUVEX1ZVQVJUXG4tLVxuZHJpdmVycy90dHkvc2VyaWFsLzgyNTAvS2NvbmZpZy0zNDEtXG5kcml2ZXJzL3R0eS9zZXJpYWwvODI1MC9LY29uZmlnOjM0Mjpjb25maWcgU0VSSUFMXzgyNTBfQUNPUk5cbmRyaXZlcnMvdHR5L3NlcmlhbC84MjUwL0tjb25maWctMzQzLVx0dHJpc3RhdGUgXCYjMzQ7QWNvcm4gZXhwYW5zaW9uIGNhcmQgc2VyaWFsIHBvcnQgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA2IDIwOjIxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDcwODkKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiA2MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzLiBJIG5lZWQgdG8gZ2V0IGEgaGFuZGxlIG9uIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXZhaWxhYmxlIGluIGEgZmV3IGtleSBhcmVhcywgYW5kIGl0IGxvb2tzIGxpa2UgYSBnb29kIHN0YXJ0aW5nIHBvaW50IGlzIHRoZSBgS2NvbmZpZ2AgZmlsZXMuCgoqKk15IENvbmZpZ3VyYXRpb24gSHVudCBCZWdpbnMqKgoKSSYjMzk7bSB0aGlua2luZyBJIHNob3VsZCBzdGFydCBieSBsb29raW5nIGF0IGEgZmV3IGRpZmZlcmVudCBkcml2ZXIgc2VjdGlvbnMuIEZpcnN0LCBsZXQmIzM5O3MgdGFrZSBhIGxvb2sgYXQgdGhlIEFUQSBkcml2ZXJzLCBzcGVjaWZpY2FsbHkgaW4gYGRyaXZlcnMvYXRhL0tjb25maWdgLiBJdCYjMzk7cyBlc3NlbnRpYWwgdG8gdW5kZXJzdGFuZCB0aGUgY29uZmlndXJhYmxlIGFzcGVjdHMgb2YgdGhvc2Ugc3RvcmFnZSBjb250cm9sbGVycy4gVGhlbiwgSSYjMzk7bGwgbW92ZSBvbiB0byB0aGUgbmV0d29yayBzaWRlLCBzbyBJJiMzOTttIGFsc28gZ29pbmcgdG8gY2hlY2sgb3V0IGBkcml2ZXJzL25ldC9ldGhlcm5ldC9pODI1eHgvS2NvbmZpZ2AuIFRoZSBgaTgyNXh4YCBpcyBhIGNvbW1vbiBuZXR3b3JrIGNvbnRyb2xsZXIsIHNvIEkgbmVlZCB0byBrbm93IHRoZSBvcHRpb25zIHRoZXJlLiBOZXh0LCB0byBnZXQgYSBicm9hZCB2aWV3LCBJJiMzOTtsbCBzZWUgd2hhdCYjMzk7cyBjb25maWd1cmFibGUgaW4gdGhlIFNDU0kgc3Vic3lzdGVtLCB3aXRoIGBkcml2ZXJzL3Njc2kvYXJtL0tjb25maWdgLiBGaW5hbGx5LCBzZXJpYWwgY29tbXVuaWNhdGlvbnMgYXJlIGFsd2F5cyBpbXBvcnRhbnQsIHNvIEkmIzM5O2xsIGNoZWNrIGBkcml2ZXJzL3R0eS9zZXJpYWwvODI1MC9LY29uZmlnYCB0byByZXZpZXcgdGhlIHNlcmlhbCBwb3J0IGRyaXZlcnMuIFRoaXMgc2hvdWxkIGdpdmUgbWUgYSBnb29kIG92ZXJ2aWV3IG9mIHRoZSBLY29uZmlnIHN0cnVjdHVyZXMgaW4gdGhlc2UgZGlmZmVyZW50IGRyaXZlcnMuIFRoaXMgaXMgdGhlIGJlc3QgcGxhY2UgdG8gc3RhcnQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDYgMjA6MjE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL2F0YS9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogNzU2LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyA3NTY6XHRcbiA3NTc6XHRjb25maWcgUEFUQV9JQ1NJREVcbiA3NTg6XHRcdHRyaXN0YXRlIFwmIzM0O0Fjb3JuIElDUyBQQVRBIHN1cHBvcnRcJiMzNDtcbiA3NTk6XHRcdGRlcGVuZHMgb24gQVJNIFx1MDAyNlx1MDAyNiBBUkNIX0FDT1JOXG4gNzYwOlx0XHRzZWxlY3QgUEFUQV9USU1JTkdTXG4gNzYxOlx0XHRoZWxwXG4gNzYyOlx0XHQgIE9uIEFjb3JuIHN5c3RlbXMsIHNheSBZIGhlcmUgaWYgeW91IHdpc2ggdG8gdXNlIHRoZSBJQ1MgUEFUQVxuIDc2MzpcdFx0ICBpbnRlcmZhY2UgY2FyZC4gIFRoaXMgaXMgbm90IHJlcXVpcmVkIGZvciBJQ1MgcGFydGl0aW9uIHN1cHBvcnQuXG4gNzY0Olx0XHQgIElmIHlvdSBhcmUgdW5zdXJlLCBzYXkgTiB0byB0aGlzLlxuIDc2NTpcdFxuIDc2NjpcdGNvbmZpZyBQQVRBX0lNWFxuIDc2NzpcdFx0dHJpc3RhdGUgXCYjMzQ7UEFUQSBzdXBwb3J0IGZvciBGcmVlc2NhbGUgaU1YXCYjMzQ7XG4gNzY4Olx0XHRkZXBlbmRzIG9uIEFSQ0hfTVhDIHx8IENPTVBJTEVfVEVTVFxuIDc2OTpcdFx0c2VsZWN0IFBBVEFfVElNSU5HU1xuIDc3MDpcdFx0aGVscFxuIDc3MTpcdFx0ICBUaGlzIG9wdGlvbiBlbmFibGVzIHN1cHBvcnQgZm9yIHRoZSBQQVRBIGhvc3QgYXZhaWxhYmxlIG9uIEZyZWVzY2FsZVxuIDc3MjpcdCAgICAgICAgICBpTVggU29Dcy5cbiA3NzM6XHRcbiA3NzQ6XHRcdCAgSWYgdW5zdXJlLCBzYXkgTi5cbiA3NzU6XHRcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNiAyMDoyMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3NzMzCgkJCQkJCQlvdXRwdXQ6IDQyCgkJCQkJCQl0aG91Z2h0czogNjEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcy4gSSBuZWVkIHRvIGdldCBhIGhhbmRsZSBvbiB0aGUga2VybmVsIGNvbmZpZ3VyYXRpb24gZmlsZXMgZm9yIG5ldHdvcmsgYW5kIHNlcmlhbCBkcml2ZXJzLCBzcGVjaWZpY2FsbHkuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBleGFtaW5lIHRoZXNlIEtjb25maWcgZmlsZXM6ICoqYGRyaXZlcnMvbmV0L2V0aGVybmV0L2k4MjV4eC9LY29uZmlnYCoqLCAqKmBkcml2ZXJzL25ldC9ldGhlcm5ldC9zZWVxL0tjb25maWdgKiosICoqYGRyaXZlcnMvc2NzaS9hcm0vS2NvbmZpZ2AqKiwgYW5kICoqYGRyaXZlcnMvdHR5L3NlcmlhbC84MjUwL0tjb25maWdgKiouIEkmIzM5O20gcHJvYmFibHkgbG9va2luZyBmb3IgZGVwZW5kZW5jaWVzLCBkZWZhdWx0IGNvbmZpZ3VyYXRpb25zLCBtYXliZSBzb21lIHBvdGVudGlhbCBjb25mbGljdHMgb3IgYXJlYXMgd2hlcmUgc2ltaWxhciBmdW5jdGlvbmFsaXR5IG1pZ2h0IG92ZXJsYXAuIFRoaXMgc2hvdWxkIGdpdmUgbWUgYSBnb29kIG92ZXJ2aWV3IG9mIGhvdyB0aGVzZSBzcGVjaWZpYyBkcml2ZXJzIGFyZSBjb25maWd1cmVkIHdpdGhpbiB0aGUgYnJvYWRlciBrZXJuZWwgY29udGV4dC4gSSYjMzk7bSBob3BpbmcgdG8gcXVpY2tseSBpZGVudGlmeSBhbnkgYXJlYXMgdGhhdCBtaWdodCByZXF1aXJlIHNwZWNpYWwgYXR0ZW50aW9uIG9yIGZ1cnRoZXIgaW52ZXN0aWdhdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNiAyMDoyMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2k4MjV4eC9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMTgsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAxODpcdGlmIE5FVF9WRU5ET1JfSTgyNVhYXG4gIDE5Olx0XG4gIDIwOlx0Y29uZmlnIEFSTV9FVEhFUjFcbiAgMjE6XHRcdHRyaXN0YXRlIFwmIzM0O0Fjb3JuIEV0aGVyMSBzdXBwb3J0XCYjMzQ7XG4gIDIyOlx0XHRkZXBlbmRzIG9uIEFSTSBcdTAwMjZcdTAwMjYgQVJDSF9BQ09STlxuICAyMzpcdFx0aGVscFxuICAyNDpcdFx0ICBJZiB5b3UgaGF2ZSBhbiBBY29ybiBzeXN0ZW0gd2l0aCBvbmUgb2YgdGhlc2UgKEFLQTI1KSBuZXR3b3JrIGNhcmRzLFxuICAyNTpcdFx0ICB5b3Ugc2hvdWxkIHNheSBZIHRvIHRoaXMgb3B0aW9uIGlmIHlvdSB3aXNoIHRvIHVzZSBpdCB3aXRoIExpbnV4LlxuICAyNjpcdFxuICAyNzpcdGNvbmZpZyBCVk1FNjAwMF9ORVRcbiAgMjg6XHRcdHRyaXN0YXRlIFwmIzM0O0JWTUU2MDAwIEV0aGVybmV0IHN1cHBvcnRcJiMzNDtcbiAgMjk6XHRcdGRlcGVuZHMgb24gQlZNRTYwMDBcbiAgMzA6XHRcdGhlbHBcbiAgMzE6XHRcdCAgVGhpcyBpcyB0aGUgZHJpdmVyIGZvciB0aGUgRXRoZXJuZXQgaW50ZXJmYWNlIG9uIEJWTUU0MDAwIGFuZFxuICAzMjpcdFx0ICBCVk1FNjAwMCBWTUUgYm9hcmRzLiAgU2F5IFkgaGVyZSB0byBpbmNsdWRlIHRoZSBkcml2ZXIgZm9yIHRoaXMgY2hpcFxuICAzMzpcdFx0ICBpbiB5b3VyIGtlcm5lbC5cbiAgMzQ6XHRcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS5cbiAgMzU6XHRcbiAgMzY6XHRjb25maWcgTEFTSV84MjU5NlxuICAzNzpcdFx0dHJpc3RhdGUgXCYjMzQ7TGFzaSBldGhlcm5ldFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA2IDIwOjIxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDgzMTIKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiA0NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIEtjb25maWcgZmlsZXMsIGFzc3VtaW5nIEkmIzM5O20gd2VsbC12ZXJzZWQgaW4ga2VybmVsIGNvbmZpZ3VyYXRpb246CgoqKkRpdmluZyBpbnRvIHRoZSBLZXJuZWwgQ29uZmlndXJhdGlvbiBMYW5kc2NhcGUqKgoKQWxyaWdodCwgdGltZSB0byBnZXQgbXkgaGFuZHMgZGlydHkuIEkgbmVlZCB0byBnZXQgYSBiZXR0ZXIgaGFuZGxlIG9uIHRoZSBkZXBlbmRlbmNpZXMgYW5kIGJ1aWxkIG9wdGlvbnMgZm9yIHNwZWNpZmljIGtlcm5lbCBzdWJzeXN0ZW1zLiBMZXQmIzM5O3Mgc3RhcnQgYnkgbG9va2luZyBhdCBgZHJpdmVycy9uZXQvZXRoZXJuZXQvc2VlcS9LY29uZmlnYCwgYGRyaXZlcnMvc2NzaS9hcm0vS2NvbmZpZ2AsIGFuZCBgZHJpdmVycy90dHkvc2VyaWFsLzgyNTAvS2NvbmZpZ2AuIFRoZXNlIGFyZSB0aHJlZSB2ZXJ5IGRpZmZlcmVudCBhcmVhcywgc28gSSBhbnRpY2lwYXRlIGRpc3RpbmN0IGNvbmZpZ3VyYXRpb24gcGFyYWRpZ21zIGF0IHBsYXkuIEkmIzM5O20gaG9waW5nIHRvIHVuZGVyc3RhbmQgaG93IHRob3NlIHRocmVlIGFyZWFzIGFyZSBjb25zdHJ1Y3RlZC4gSSBoYXZlIHRvIHVuZGVyc3RhbmQgdGhlIGludHJpY2FjaWVzIG9mIGVhY2ggY29uZmlndXJhdGlvbiBmaWxlIGFuZCB0aGUgcG90ZW50aWFsIGltcGxpY2F0aW9ucyBvZiB2YXJpb3VzIHNlbGVjdGlvbnMuIFRoaXMgbWVhbnMgdW5kZXJzdGFuZGluZyB0aGUgcmVsYXRpb25zaGlwcyBiZXR3ZWVuIHRoZSBmZWF0dXJlcywgdGhlIGhhcmR3YXJlIHRoZXNlIGRyaXZlcnMgc3VwcG9ydCwgYW55IHBvdGVudGlhbCBjb25mbGljdHMsIGFuZCBob3cgdGhleSBpbnRlcmFjdCB3aXRoIG90aGVyIHBhcnRzIG9mIHRoZSBrZXJuZWwuIEhvcGVmdWxseSwgdGhleSB3aWxsIGdpdmUgbWUgc29tZSBpbnNpZ2h0IGludG8gaG93IHRoZSBrZXJuZWwgaXMgY29uc3RydWN0ZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA2IDIwOjIxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc2VlcS9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMTgsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAxODpcdGlmIE5FVF9WRU5ET1JfU0VFUVxuICAxOTpcdFxuICAyMDpcdGNvbmZpZyBBUk1fRVRIRVIzXG4gIDIxOlx0XHR0cmlzdGF0ZSBcJiMzNDtBY29ybi9BTlQgRXRoZXIzIHN1cHBvcnRcJiMzNDtcbiAgMjI6XHRcdGRlcGVuZHMgb24gQVJNIFx1MDAyNlx1MDAyNiBBUkNIX0FDT1JOXG4gIDIzOlx0XHRoZWxwXG4gIDI0Olx0XHQgIElmIHlvdSBoYXZlIGFuIEFjb3JuIHN5c3RlbSB3aXRoIG9uZSBvZiB0aGVzZSBuZXR3b3JrIGNhcmRzLCB5b3VcbiAgMjU6XHRcdCAgc2hvdWxkIHNheSBZIHRvIHRoaXMgb3B0aW9uIGlmIHlvdSB3aXNoIHRvIHVzZSBpdCB3aXRoIExpbnV4LlxuICAyNjpcdFxuICAyNzpcdGNvbmZpZyBTR0lTRUVRXG4gIDI4Olx0XHR0cmlzdGF0ZSBcJiMzNDtTR0kgU2VlcSBldGhlcm5ldCBjb250cm9sbGVyIHN1cHBvcnRcJiMzNDtcbiAgMjk6XHRcdGRlcGVuZHMgb24gU0dJX0hBU19TRUVRXG4gIDMwOlx0XHRoZWxwXG4gIDMxOlx0XHQgIFNheSBZIGhlcmUgaWYgeW91IGhhdmUgYW4gU2VlcSBiYXNlZCBFdGhlcm5ldCBuZXR3b3JrIGNhcmQuIFRoaXMgaXNcbiAgMzI6XHRcdCAgdXNlZCBpbiBtYW55IFNpbGljb24gR3JhcGhpY3MgbWFjaGluZXMuXG4gIDMzOlx0XG4gIDM0Olx0ZW5kaWYgIyBORVRfVkVORE9SX1NFRVFcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDYgMjA6MjE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODgzOAoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDMxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRha2U6CgoqKkludmVzdGlnYXRpbmcgUG90ZW50aWFsIENvbmZpZ3VyYXRpb24gQ29uZmxpY3RzKioKCk9rYXksIHRpbWUgdG8gZGlnIGluLiBHaXZlbiB0aGUgcmVjZW50IGlzc3VlIHJlcG9ydHMsIEkgc3VzcGVjdCB3ZSBtaWdodCBoYXZlIGEgY29uZmlndXJhdGlvbiBjb25mbGljdCBidWJibGluZyB1cCBiZXR3ZWVuIHRoZSBTQ1NJIGFuZCBzZXJpYWwgcG9ydCBkcml2ZXJzIG9uIEFSTSBwbGF0Zm9ybXMuIFRvIGdldCBhIGNsZWFyIHBpY3R1cmUgb2YgdGhlIHNpdHVhdGlvbiwgSSBuZWVkIHRvIGNoZWNrIHRoZSBLY29uZmlnIGZpbGVzIGZvciBib3RoLiBJJiMzOTtsbCBzdGFydCB3aXRoIGBkcml2ZXJzL3Njc2kvYXJtL0tjb25maWdgIHRvIHVuZGVyc3RhbmQgdGhlIFNDU0kgZHJpdmVyIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBzcGVjaWZpYyB0byBBUk0uIFRoZW4sIEkmIzM5O2xsIG1vdmUgb24gdG8gYGRyaXZlcnMvdHR5L3NlcmlhbC84MjUwL0tjb25maWdgIHRvIGFuYWx5emUgdGhlIHNlcmlhbCBwb3J0IGNvbmZpZ3VyYXRpb24sIGZvY3VzaW5nIG9uIGhvdyBpdCBtaWdodCBpbnRlcmFjdCB3aXRoIHRoZSBTQ1NJIHNldHVwLCBlc3BlY2lhbGx5IGlmIHRoZXJlJiMzOTtzIGFueSBvdmVybGFwIG9yIHNoYXJlZCByZXNvdXJjZXMsIHdoaWNoIGlzIHdoZXJlIHRoZSBsaWtlbHkgcHJvYmxlbSBpcy4gVGhpcyBzaG91bGQgaGVscCBtZSBwaW5wb2ludCBhbnkgcG90ZW50aWFsIG1pc2NvbmZpZ3VyYXRpb25zIHRoYXQgY291bGQgYmUgY29udHJpYnV0aW5nIHRvIHRoZSBpc3N1ZSwgb3IgZXZlbiBpZGVudGlmeSBkZXBlbmRlbmNpZXMgSSBoYWRuJiMzOTt0IGNvbnNpZGVyZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA2IDIwOjIxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9zY3NpL2FybS9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAxMDAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAgMTpcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuICAgMjpcdCNcbiAgIDM6XHQjIFNDU0kgZHJpdmVyIGNvbmZpZ3VyYXRpb24gZm9yIEFjb3JuXG4gICA0Olx0I1xuICAgNTpcdGNvbmZpZyBTQ1NJX0FDT1JOU0NTSV8zXG4gICA2Olx0XHR0cmlzdGF0ZSBcJiMzNDtBY29ybiBTQ1NJIGNhcmQgKGFrYTMwKSBzdXBwb3J0XCYjMzQ7XG4gICA3Olx0XHRkZXBlbmRzIG9uIEFSQ0hfQUNPUk4gXHUwMDI2XHUwMDI2IFNDU0lcbiAgIDg6XHRcdHNlbGVjdCBTQ1NJX1NQSV9BVFRSU1xuICAgOTpcdFx0aGVscFxuICAxMDpcdFx0ICBUaGlzIGVuYWJsZXMgc3VwcG9ydCBmb3IgdGhlIEFjb3JuIFNDU0kgY2FyZCAoYWthMzApLiBJZiB5b3UgaGF2ZSBhblxuICAxMTpcdFx0ICBBY29ybiBzeXN0ZW0gd2l0aCBvbmUgb2YgdGhlc2UsIHNheSBZLiBJZiB1bnN1cmUsIHNheSBOLlxuICAxMjpcdFxuICAxMzpcdGNvbmZpZyBTQ1NJX0FDT1JOU0NTSV9TWU5DXG4gIDE0Olx0XHRib29sIFwmIzM0O1N1cHBvcnQgU0NTSSAyIFN5bmNocm9ub3VzIFRyYW5zZmVyc1wmIzM0O1xuICAxNTpcdFx0ZGVwZW5kcyBvbiBTQ1NJX0FDT1JOU0NTSV8zXG4gIDE2Olx0XHRoZWxwXG4gIDE3Olx0XHQgIFNheSBZIGhlcmUgdG8gZW5hYmxlIHN5bmNocm9ub3VzIHRyYW5zZmVyIG5lZ290aWF0aW9uIHdpdGggYWxsXG4gIDE4Olx0XHQgIHRhcmdldHMgb24gdGhlIEFjb3JuIFNDU0kgY2FyZC5cbiAgMTk6XHRcbiAgMjA6XHRcdCAgSW4gZ2VuZXJhbCwgdGhpcyBpbXByb3ZlcyBwZXJmb3JtYW5jZTsgaG93ZXZlciBzb21lIFNDU0kgZGV2aWNlc1xuICAyMTpcdFx0ICBkb24mIzM5O3QgaW1wbGVtZW50IGl0IHByb3Blcmx5LCBzbyB0aGUgc2FmZSBhbnN3ZXIgaXMgTi5cbiAgMjI6XHRcbiAgMjM6XHRjb25maWcgU0NTSV9BUlhFU0NTSVxuICAyNDpcdFx0dHJpc3RhdGUgXCYjMzQ7QVJYRSBTQ1NJIHN1cHBvcnRcJiMzNDtcbiAgMjU6XHRcdGRlcGVuZHMgb24gQVJDSF9BQ09STiBcdTAwMjZcdTAwMjYgU0NTSVxuICAyNjpcdFx0aGVscFxuICAyNzpcdFx0ICBBcm91bmQgMTk5MSwgQXJ4ZSBTeXN0ZW1zIExpbWl0ZWQgcmVsZWFzZWQgYSBoaWdoIGRlbnNpdHkgZmxvcHB5XG4gIDI4Olx0XHQgIGRpc2MgaW50ZXJmYWNlIGZvciB0aGUgQWNvcm4gQXJjaGltZWRlcyByYW5nZSwgdG8gYWxsb3cgdGhlIHVzZSBvZlxuICAyOTpcdFx0ICBIRCBkaXNjcyBmcm9tIHRoZSB0aGVuIG5ldyBBNTAwMCBvbiBlYXJsaWVyIG1vZGVscy4gVGhpcyBpbnRlcmZhY2VcbiAgMzA6XHRcdCAgd2FzIGVpdGhlciBzb2xkIG9uIGl0cyBvd24gb3Igd2l0aCBhbiBpbnRlZ3JhbCBTQ1NJIGNvbnRyb2xsZXIuXG4gIDMxOlx0XHQgIFRlY2huaWNhbCBkZXRhaWxzIG9uIHRoaXMgTkNSNTNjOTQtYmFzZWQgZGV2aWNlIGFyZSBhdmFpbGFibGUgYXRcbiAgMzI6XHRcdCAgXHUwMDNjaHR0cDovL3d3dy5jcnl0b24uZGVtb24uY28udWsvYWNvcm5iaXRzL3Njc2lfYXJ4ZS5odG1sXHUwMDNlXG4gIDMzOlx0XHQgIFNheSBZIGhlcmUgdG8gY29tcGlsZSBpbiBzdXBwb3J0IGZvciB0aGUgU0NTSSBjb250cm9sbGVyLlxuICAzNDpcdFxuICAzNTpcdGNvbmZpZyBTQ1NJX0NVTUFOQV8yXG4gIDM2Olx0XHR0cmlzdGF0ZSBcJiMzNDtDdW1hbmFTQ1NJIElJIHN1cHBvcnRcJiMzNDtcbiAgMzc6XHRcdGRlcGVuZHMgb24gQVJDSF9BQ09STiBcdTAwMjZcdTAwMjYgU0NTSVxuICAzODpcdFx0aGVscFxuICAzOTpcdFx0ICBUaGlzIGVuYWJsZXMgc3VwcG9ydCBmb3IgdGhlIEN1bWFuYSBTQ1NJIElJIGNhcmQuIElmIHlvdSBoYXZlIGFuXG4gIDQwOlx0XHQgIEFjb3JuIHN5c3RlbSB3aXRoIG9uZSBvZiB0aGVzZSwgc2F5IFkuIElmIHVuc3VyZSwgc2F5IE4uXG4gIDQxOlx0XG4gIDQyOlx0Y29uZmlnIFNDU0lfRUVTT1hTQ1NJXG4gIDQzOlx0XHR0cmlzdGF0ZSBcJiMzNDtFRVNPWCBzdXBwb3J0XCYjMzQ7XG4gIDQ0Olx0XHRkZXBlbmRzIG9uIEFSQ0hfQUNPUk4gXHUwMDI2XHUwMDI2IFNDU0lcbiAgNDU6XHRcdGhlbHBcbiAgNDY6XHRcdCAgVGhpcyBlbmFibGVzIHN1cHBvcnQgZm9yIHRoZSBFRVNPWCBTQ1NJIGNhcmQuIElmIHlvdSBoYXZlIGFuIEFjb3JuXG4gIDQ3Olx0XHQgIHN5c3RlbSB3aXRoIG9uZSBvZiB0aGVzZSwgc2F5IFksIG90aGVyd2lzZSBzYXkgTi5cbiAgNDg6XHRcbiAgNDk6XHRjb25maWcgU0NTSV9QT1dFUlRFQ1NDU0lcbiAgNTA6XHRcdHRyaXN0YXRlIFwmIzM0O1Bvd2VyVGVjIHN1cHBvcnRcJiMzNDtcbiAgNTE6XHRcdGRlcGVuZHMgb24gQVJDSF9BQ09STiBcdTAwMjZcdTAwMjYgU0NTSVxuICA1MjpcdFx0aGVscFxuICA1MzpcdFx0ICBUaGlzIGVuYWJsZXMgc3VwcG9ydCBmb3IgdGhlIFBvd2VydGVjIFNDU0kgY2FyZCBvbiBBY29ybiBzeXN0ZW1zLiBJZlxuICA1NDpcdFx0ICB5b3UgaGF2ZSBvbmUgb2YgdGhlc2UsIHNheSBZLiBJZiB1bnN1cmUsIHNheSBOLlxuICA1NTpcdFxuICA1NjpcdGNvbW1lbnQgXCYjMzQ7VGhlIGZvbGxvd2luZyBkcml2ZXJzIGFyZSBub3QgZnVsbHkgc3VwcG9ydGVkXCYjMzQ7XG4gIDU3Olx0XHRkZXBlbmRzIG9uIEFSQ0hfQUNPUk5cbiAgNTg6XHRcbiAgNTk6XHRjb25maWcgU0NTSV9DVU1BTkFfMVxuICA2MDpcdFx0dHJpc3RhdGUgXCYjMzQ7Q3VtYW5hU0NTSSBJIHN1cHBvcnRcJiMzNDtcbiAgNjE6XHRcdGRlcGVuZHMgb24gQVJDSF9BQ09STiBcdTAwMjZcdTAwMjYgU0NTSVxuICA2MjpcdFx0c2VsZWN0IFNDU0lfU1BJX0FUVFJTXG4gIDYzOlx0XHRoZWxwXG4gIDY0Olx0XHQgIFRoaXMgZW5hYmxlcyBzdXBwb3J0IGZvciB0aGUgQ3VtYW5hIFNDU0kgSSBjYXJkLiBJZiB5b3UgaGF2ZSBhblxuICA2NTpcdFx0ICBBY29ybiBzeXN0ZW0gd2l0aCBvbmUgb2YgdGhlc2UsIHNheSBZLiBJZiB1bnN1cmUsIHNheSBOLlxuICA2NjpcdFxuICA2NzpcdGNvbmZpZyBTQ1NJX09BSzFcbiAgNjg6XHRcdHRyaXN0YXRlIFwmIzM0O09hayBTQ1NJIHN1cHBvcnRcJiMzNDtcbiAgNjk6XHRcdGRlcGVuZHMgb24gQVJDSF9BQ09STiBcdTAwMjZcdTAwMjYgU0NTSVxuICA3MDpcdFx0c2VsZWN0IFNDU0lfU1BJX0FUVFJTXG4gIDcxOlx0XHRoZWxwXG4gIDcyOlx0XHQgIFRoaXMgZW5hYmxlcyBzdXBwb3J0IGZvciB0aGUgT2FrIFNDU0kgY2FyZC4gSWYgeW91IGhhdmUgYW4gQWNvcm5cbiAgNzM6XHRcdCAgc3lzdGVtIHdpdGggb25lIG9mIHRoZXNlLCBzYXkgWS4gSWYgdW5zdXJlLCBzYXkgTi5cbiAgNzQ6XHRcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDYgMjA6MjE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTAxODcKCQkJCQkJCW91dHB1dDogNDEKCQkJCQkJCXRob3VnaHRzOiAyNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0YWtlIG9uIHRoZSB0aG91Z2h0IHByb2Nlc3MsIGFzIHJlcXVlc3RlZDoKCioqRGl2aW5nIGludG8gdGhlIDgyNTAgU2VyaWFsIERyaXZlciBDb25maWd1cmF0aW9uKioKCk9rYXksIHRpbWUgdG8gZ2V0IHRvIHRoZSBoZWFydCBvZiB0aGlzLiBNeSBicmFpbiBpcyB0ZWxsaW5nIG1lLCBiYXNlZCBvbiB0aGUgY3VycmVudCBjb250ZXh0LCB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGlzIGlzc3VlIHByb2JhYmx5IGxpdmUgd2l0aGluIHRoZSA4MjUwIHNlcmlhbCBkcml2ZXImIzM5O3MgS2NvbmZpZyBmaWxlLiBMZXQmIzM5O3Mgc3RhcnQgd2l0aCBgZHJpdmVycy90dHkvc2VyaWFsLzgyNTAvS2NvbmZpZ2AsIGFuZCBzcGVjaWZpY2FsbHksIGxldCYjMzk7cyB6b29tIGluIGFyb3VuZCBsaW5lIDM0Mi4gVGhhdCYjMzk7cyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQuIEkgc3VzcGVjdCB0aGF0JiMzOTtzIHdoZXJlIEkmIzM5O2xsIGZpbmQgdGhlIGNvbmZpZ3VyYXRpb24ga25vYnMgcmVsYXRlZCB0byB0aGUgdGhpbmcgSSYjMzk7bSB0cnlpbmcgdG8gdHdlYWsuIExldCYjMzk7cyBzZWUgaWYgdGhhdCBhc3N1bXB0aW9uIGhvbGRzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNiAyMDoyMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvdHR5L3NlcmlhbC84MjUwL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAzNDAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDM0MDpcdCNcbiAzNDE6XHRcbiAzNDI6XHRjb25maWcgU0VSSUFMXzgyNTBfQUNPUk5cbiAzNDM6XHRcdHRyaXN0YXRlIFwmIzM0O0Fjb3JuIGV4cGFuc2lvbiBjYXJkIHNlcmlhbCBwb3J0IHN1cHBvcnRcJiMzNDtcbiAzNDQ6XHRcdGRlcGVuZHMgb24gQVJDSF9BQ09STiBcdTAwMjZcdTAwMjYgU0VSSUFMXzgyNTBcbiAzNDU6XHRcdGhlbHBcbiAzNDY6XHRcdCAgSWYgeW91IGhhdmUgYW4gQXRvbXdpZGUgU2VyaWFsIGNhcmQgb3IgU2VyaWFsIFBvcnQgY2FyZCBmb3IgYW4gQWNvcm5cbiAzNDc6XHRcdCAgc3lzdGVtLCBzYXkgWSB0byB0aGlzIG9wdGlvbi4gIFRoZSBkcml2ZXIgY2FuIGhhbmRsZSAxLCAyLCBvciAzIHBvcnRcbiAzNDg6XHRcdCAgY2FyZHMuICBJZiB1bnN1cmUsIHNheSBOLlxuIDM0OTpcdFxuIDM1MDpcdGNvbmZpZyBTRVJJQUxfODI1MF9CQ00yODM1QVVYXG4gMzUxOlx0XHR0cmlzdGF0ZSBcJiMzNDtCQ00yODM1IGF1eGlsaWFyIG1pbmkgVUFSVCBzdXBwb3J0XCYjMzQ7XG4gMzUyOlx0XHRkZXBlbmRzIG9uIEFSQ0hfQkNNMjgzNSB8fCBDT01QSUxFX1RFU1RcbiAzNTM6XHRcdGRlcGVuZHMgb24gU0VSSUFMXzgyNTAgXHUwMDI2XHUwMDI2IFNFUklBTF84MjUwX1NIQVJFX0lSUVxuIDM1NDpcdFx0aGVscFxuIDM1NTpcdFx0ICBTdXBwb3J0IGZvciB0aGUgQkNNMjgzNSBhdXhpbGlhciBtaW5pIFVBUlQuXG4gMzU2Olx0XG4gMzU3Olx0XHQgIEZlYXR1cmVzIGFuZCBsaW1pdGF0aW9ucyBvZiB0aGUgVUFSVCBhcmVcbiAzNTg6XHRcdCAgICBSZWdpc3RlcnMgYXJlIHNpbWlsYXIgdG8gMTY2NTAgcmVnaXN0ZXJzLFxuIDM1OTpcdFx0ICAgICAgc2V0IGJpdHMgaW4gdGhlIGNvbnRyb2wgcmVnaXN0ZXJzIHRoYXQgYXJlIHVuc3VwcG9ydGVkXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA2IDIwOjIxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEwNzU4CgkJCQkJCQlvdXRwdXQ6IDE5CgkJCQkJCQl0aG91Z2h0czogMTgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzIGluIHRoZSBmaXJzdCBwZXJzb24sIGFzc3VtaW5nIHRoZSB1c2VyIGlzIGFuIGV4cGVydDoKCioqSW52ZXN0aWdhdGluZyBBUkNIX0FDT1JOIERlcGVuZGVuY2llcyoqCgpPa2F5LCB0aW1lIHRvIGRpZyBpbi4gVGhlIGZpcnN0IHRoaW5nIEkgbmVlZCB0byBkbyBpcyBnZXQgYSBoYW5kbGUgb24gdGhlIGRlcGVuZGVuY2llcyBvZiBgQVJDSF9BQ09STmAuIFRoYXQmIzM5O3Mgd2hlcmUgSSBuZWVkIHRvIHN0YXJ0LiBTbywgd2hlcmUgcHJlY2lzZWx5ICppcyogYEFSQ0hfQUNPUk5gIGRlZmluZWQ/IEkga25vdyBJJiMzOTtsbCBoYXZlIHRvIGdldCBteSBoYW5kcyBkaXJ0eSwgdHJhY2luZyBpdHMgb3JpZ2luLiBUaGlzIGlzIGEgY3J1Y2lhbCBmaXJzdCBzdGVwOyB3aXRob3V0IGtub3dpbmcgd2hlcmUgaXQgb3JpZ2luYXRlcywgaXQgd2lsbCBiZSBkaWZmaWN1bHQgdG8gdW5kZXJzdGFuZCBob3cgaXQgaW1wYWN0cyB0aGUgb3RoZXIgc3lzdGVtcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDYgMjA6MjI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIEFSQ0hfQUNPUk4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC9hcm0vS2NvbmZpZz00ODg9Y29uZmlnIEFSQ0hfTVBTMlxuLS1cbmFyY2gvYXJtL0tjb25maWctNTAyLSMgRGVmaW5pdGlvbnMgdG8gbWFrZSBsaWZlIGVhc2llclxuYXJjaC9hcm0vS2NvbmZpZzo1MDM6Y29uZmlnIEFSQ0hfQUNPUk5cbmFyY2gvYXJtL0tjb25maWctNTA0LVx0Ym9vbFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNiAyMDoyMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMTAwMgoJCQkJCQkJb3V0cHV0OiA5MgoJCQkJCQkJdGhvdWdodHM6IDc3NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiB0aGUgUHJvcG9zZWQgQ29kZSBDaGFuZ2VzKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIFdlJiMzOTt2ZSBnb3QgYSBwYXRjaCB0aGF0IHRvdWNoZXMgYSBidW5jaCBvZiBkcml2ZXJzLCBzcGVjaWZpY2FsbHkgcmVsYXRlZCB0byB2aW50YWdlIEFjb3JuIG1hY2hpbmVzLiBGaXJzdCwgYEFSQ0hfQUNPUk5gIGlzIHRoZSBrZXkgaGVyZS4gSXQmIzM5O3MgZGVmaW5lZCBpbiBgYXJjaC9hcm0vS2NvbmZpZ2AsIG1ha2luZyBpdCBleHBsaWNpdGx5IGFuIEFSTSAzMi1iaXQgYXJjaGl0ZWN0dXJlIHRoaW5nLiBTcGVjaWZpY2FsbHksIGl0JiMzOTtzIGZvciBBY29ybiBtYWNoaW5lcyBsaWtlIHRoZSBSaXNjUEMsIEE1MDAwLCBhbmQgQXJjaGltZWRlcy4gT3VyIHN5emthbGxlciB0YXJnZXQgaXMgYGFtZDY0YCwgc28gdGhhdCYjMzk7cyBhIHJlZCBmbGFnIGltbWVkaWF0ZWx5LgoKTm9uZSBvZiB0aGVzZSBkcml2ZXJzIGNhbiBiZSBjb21waWxlZCBvciBleGVjdXRlZCBvbiBgYW1kNjRgIChvciB4ODZfNjQpIOKAkyBhbmQgY3J1Y2lhbGx5LCB0aGV5IGRvbiYjMzk7dCBldmVuIGhhdmUgYENPTVBJTEVfVEVTVGAgZW5hYmxlZC4gVGhhdCBtZWFucyB3ZSBhcmVuJiMzOTt0IGV2ZW4gZ2V0dGluZyBhIGhpbnQgb2YgYSBjaGFuY2UgdG8gdGVzdCB0aGVtLiBUaGV5JiMzOTtyZSBhbGwgZm9yIHBoeXNpY2FsLCB2aW50YWdlIEFjb3JuIGV4cGFuc2lvbiBjYXJkIGJ1cyBoYXJkd2FyZSwgd2hpY2gsIGFnYWluLCBpcyBBUk0tc3BlY2lmaWMuCgpOb3csIGFjY29yZGluZyB0byB0aGUgTmVnYXRpdmUgQ3JpdGVyaWEgaW4gU2VjdGlvbiAyLCBhbnkgY29kZSBleGNsdXNpdmUgdG8gYXJjaGl0ZWN0dXJlcyBvdGhlciB0aGFuIHRoZSB0YXJnZXQgaXMgYSBuby1nby4gVW5yZWFjaGFibGUgaGFyZHdhcmUgaXMgYWxzbyBzb21ldGhpbmcgdG8gYXZvaWQuIFNvLCBsZXQmIzM5O3MgbG9vayBhdCB0aGUgc3BlY2lmaWMgZHJpdmVycyBsaXN0ZWQgdG8gY29uZmlybSB0aGlzOgoKKiAgIGBQQVRBX0lDU0lERWA6IGRlcGVuZHMgb24gYEFSTSAmYW1wOyZhbXA7IEFSQ0hfQUNPUk5gCiogICBgQVJNX0VUSEVSMWA6IGRlcGVuZHMgb24gYEFSTSAmYW1wOyZhbXA7IEFSQ0hfQUNPUk5gCiogICBgQVJNX0VUSEVSM2A6IGRlcGVuZHMgb24gYEFSTSAmYW1wOyZhbXA7IEFSQ0hfQUNPUk5gCiogICBgU0NTSV9BQ09STlNDU0lfM2A6IGRlcGVuZHMgb24gYEFSQ0hfQUNPUk4gJmFtcDsmYW1wOyBTQ1NJYAoqICAgYFNDU0lfQVJYRVNDU0lgOiBkZXBlbmRzIG9uIGBBUkNIX0FDT1JOICZhbXA7JmFtcDsgU0NTSWAKKiAgIGBTQ1NJX0NVTUFOQV8yYDogZGVwZW5kcyBvbiBgQVJDSF9BQ09STiAmYW1wOyZhbXA7IFNDU0lgCiogICBgU0NTSV9FRVNPWFNDU0lgOiBkZXBlbmRzIG9uIGBBUkNIX0FDT1JOICZhbXA7JmFtcDsgU0NTSWAKKiAgIGBTQ1NJX1BPV0VSVEVDU0NTSWA6IGRlcGVuZHMgb24gYEFSQ0hfQUNPUk4gJmFtcDsmYW1wOyBTQ1NJYAoqICAgYFNDU0lfQ1VNQU5BXzFgOiBkZXBlbmRzIG9uIGBBUkNIX0FDT1JOICZhbXA7JmFtcDsgU0NTSWAKKiAgIGBTQ1NJX09BSzFgOiBkZXBlbmRzIG9uIGBBUkNIX0FDT1JOICZhbXA7JmFtcDsgU0NTSWAKKiAgIGBTRVJJQUxfODI1MF9BQ09STmA6IGRlcGVuZHMgb24gYEFSQ0hfQUNPUk4gJmFtcDsmYW1wOyBTRVJJQUxfODI1MGAKCkV2ZXJ5IHNpbmdsZSBvbmUgb2YgdGhlc2UgZHJpdmVycyBleHBsaWNpdGx5IHJlbGllcyBvbiBgQVJDSF9BQ09STmAsIHdoaWNoIHRpZXMgdGhlbSB0byB0aGUgQVJNIGFyY2hpdGVjdHVyZSwgYW5kIGlzIG5vdCBzb21ldGhpbmcgdGhhdCB3b3VsZCBldmVyIGV4aXN0IG9uIGFtZDY0LiBGdXJ0aGVybW9yZSwgdGhpcyBjb2RlIGlzIHNpbXBseSByZWZhY3RvcmluZyB0aGUgYG1vZHVsZV9pbml0YC9gbW9kdWxlX2V4aXRgIHJlZ2lzdHJhdGlvbiBoZWxwZXJzIHdpdGggYG1vZHVsZV9kcml2ZXIoLi4uKWAuIFRoaXMgZG9lc24mIzM5O3QgY2hhbmdlIHRoZWlyIGFyY2hpdGVjdHVyZS1zcGVjaWZpYyBuYXR1cmUuCgpMZXQmIzM5O3MgcXVpY2tseSBjb25maXJtIGFsbCB0aGUgZmlsZXMgY2hhbmdlZDoKCiogICBgZHJpdmVycy9hdGEvcGF0YV9pY3NpZGUuY2AKKiAgIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9pODI1eHgvZXRoZXIxLmNgCiogICBgZHJpdmVycy9uZXQvZXRoZXJuZXQvc2VlcS9ldGhlcjMuY2AKKiAgIGBkcml2ZXJzL3Njc2kvYXJtL2Fjb3Juc2NzaS5jYAoqICAgYGRyaXZlcnMvc2NzaS9hcm0vYXJ4ZXNjc2kuY2AKKiAgIGBkcml2ZXJzL3Njc2kvYXJtL2N1bWFuYV8xLmNgCiogICBgZHJpdmVycy9zY3NpL2FybS9jdW1hbmFfMi5jYAoqICAgYGRyaXZlcnMvc2NzaS9hcm0vZWVzb3guY2AKKiAgIGBkcml2ZXJzL3Njc2kvYXJtL29hay5jYAoqICAgYGRyaXZlcnMvc2NzaS9hcm0vcG93ZXJ0ZWMuY2AKKiAgIGBkcml2ZXJzL3R0eS9zZXJpYWwvODI1MC84MjUwX2Fjb3JuLmNgCgpZdXAsIGFsbCBlbGV2ZW4gYXJlIGRyaXZlcnMgZm9yIEFjb3JuIGV4cGFuc2lvbiBjYXJkcywgYW5kIHRoZXJlZm9yZSBBUk0tb25seS4KCioqQ29uY2x1c2lvbjoqKgoKVGhpcyBwYXRjaCBpcyBtb2RpZnlpbmcgbW9kdWxlIGluaXRpYWxpemF0aW9uL2V4aXQgYm9pbGVycGxhdGUgaW4gdmFyaW91cyBBY29ybiBFeHBhbnNpb24gQ2FyZCAoZWNhcmQpIGRyaXZlcnMuIEFsbCB0aGUgbW9kaWZpZWQgZHJpdmVycyBkZXBlbmQgZXhjbHVzaXZlbHkgb24gdGhlIEFSTSBhbmQgYEFSQ0hfQUNPUk5gIGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4gVGhlc2UgYXJlIGxpbWl0ZWQgdG8gdGhlIDMyLWJpdCBBUk0gYXJjaGl0ZWN0dXJlLCBhbmQgdGh1cyBhcmUgbm90IGJ1aWxkYWJsZSBvciBleGVjdXRhYmxlIG9uIHRoZSB0YXJnZXQgYW1kNjQgYXJjaGl0ZWN0dXJlLgoKKiAgIGBXb3J0aEZ1enppbmdgOiBmYWxzZQoqICAgYEVuYWJsZUNvbmZpZ3NgOiBcWyBdCiogICBgRm9jdXNTeW1ib2xzYDogXFsgXQoKSSYjMzk7bGwgZ28gYWhlYWQgYW5kIHNldCB0aGUgcmVzdWx0cyBhY2NvcmRpbmdseS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDYgMjA6MjI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBzZXJpZXMgcmVwbGFjZXMgYm9pbGVycGxhdGUgbW9kdWxlX2luaXQvbW9kdWxlX2V4aXQgZnVuY3Rpb25zIHdpdGggbW9kdWxlX2RyaXZlcigpIG1hY3JvcyBhY3Jvc3Mgc2V2ZXJhbCBBY29ybiBleHBhbnNpb24gY2FyZCAoZWNhcmQpIGRyaXZlcnMuIEFsbCBtb2RpZmllZCBkcml2ZXJzIGRlcGVuZCBvbiBBUkNIX0FDT1JOIGFuZCBBUk0sIG1ha2luZyB0aGVtIGV4Y2x1c2l2ZSB0byB0aGUgQVJNIGFyY2hpdGVjdHVyZSBhbmQgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIG9uIHRoZSB0YXJnZXQgYW1kNjQgYXJjaGl0ZWN0dXJlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggc2VyaWVzIHJlcGxhY2VzIGJvaWxlcnBsYXRlIG1vZHVsZV9pbml0L21vZHVsZV9leGl0IGZ1bmN0aW9ucyB3aXRoIG1vZHVsZV9kcml2ZXIoKSBtYWNyb3MgYWNyb3NzIHNldmVyYWwgQWNvcm4gZXhwYW5zaW9uIGNhcmQgKGVjYXJkKSBkcml2ZXJzLiBBbGwgbW9kaWZpZWQgZHJpdmVycyBkZXBlbmQgb24gQVJDSF9BQ09STiBhbmQgQVJNLCBtYWtpbmcgdGhlbSBleGNsdXNpdmUgdG8gdGhlIEFSTSBhcmNoaXRlY3R1cmUgYW5kIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBvbiB0aGUgdGFyZ2V0IGFtZDY0IGFyY2hpdGVjdHVyZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTkvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA2IDIwOjIyPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5JZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOS0wNlQyMDoyMTozOC4wNjQ1NTY2MzZaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMjY5MDI1MDk5OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2UsXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIHNlcmllcyByZXBsYWNlcyBib2lsZXJwbGF0ZSBtb2R1bGVfaW5pdC9tb2R1bGVfZXhpdCBmdW5jdGlvbnMgd2l0aCBtb2R1bGVfZHJpdmVyKCkgbWFjcm9zIGFjcm9zcyBzZXZlcmFsIEFjb3JuIGV4cGFuc2lvbiBjYXJkIChlY2FyZCkgZHJpdmVycy4gQWxsIG1vZGlmaWVkIGRyaXZlcnMgZGVwZW5kIG9uIEFSQ0hfQUNPUk4gYW5kIEFSTSwgbWFraW5nIHRoZW0gZXhjbHVzaXZlIHRvIHRoZSBBUk0gYXJjaGl0ZWN0dXJlIGFuZCBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgb24gdGhlIHRhcmdldCBhbWQ2NCBhcmNoaXRlY3R1cmUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNlQyMDoyMTozOC4wNjQ1NjQxMjZaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY4NTgyMzI5OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGJiN2FmODFmYTgwZDllNGJjOTNlMzk2NmIxOTI5NGIzZDU4MmNjMzNcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFN1biBTZXAgNiAyMDoyMTozNyAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL2F0YS9wYXRhX2ljc2lkZS5jIGIvZHJpdmVycy9hdGEvcGF0YV9pY3NpZGUuY1xcbmluZGV4IDcwZjA1NmU0N2U2YmQuLmRmNzIwM2E3NGY0NWQgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9hdGEvcGF0YV9pY3NpZGUuY1xcbisrKyBiL2RyaXZlcnMvYXRhL3BhdGFfaWNzaWRlLmNcXG5AQCAtNjEzLDE5ICs2MTMsOCBAQCBzdGF0aWMgc3RydWN0IGVjYXJkX2RyaXZlciBwYXRhX2ljc2lkZV9kcml2ZXIgPSB7XFxuIFxcdH0sXFxuIH07XFxuIFxcbi1zdGF0aWMgaW50IF9faW5pdCBwYXRhX2ljc2lkZV9pbml0KHZvaWQpXFxuLXtcXG4tXFx0cmV0dXJuIGVjYXJkX3JlZ2lzdGVyX2RyaXZlcihcXHUwMDI2cGF0YV9pY3NpZGVfZHJpdmVyKTtcXG4tfVxcbi1cXG4tc3RhdGljIHZvaWQgX19leGl0IHBhdGFfaWNzaWRlX2V4aXQodm9pZClcXG4te1xcbi1cXHRlY2FyZF9yZW1vdmVfZHJpdmVyKFxcdTAwMjZwYXRhX2ljc2lkZV9kcml2ZXIpO1xcbi19XFxuK21vZHVsZV9kcml2ZXIocGF0YV9pY3NpZGVfZHJpdmVyLCBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIsIGVjYXJkX3JlbW92ZV9kcml2ZXIpO1xcbiBcXG4gTU9EVUxFX0FVVEhPUihcXFwiUnVzc2VsbCBLaW5nIFxcdTAwM2NybWtAYXJtLmxpbnV4Lm9yZy51a1xcdTAwM2VcXFwiKTtcXG4gTU9EVUxFX0xJQ0VOU0UoXFxcIkdQTFxcXCIpO1xcbiBNT0RVTEVfREVTQ1JJUFRJT04oXFxcIklDUyBQQVRBIGRyaXZlclxcXCIpO1xcbi1cXG4tbW9kdWxlX2luaXQocGF0YV9pY3NpZGVfaW5pdCk7XFxuLW1vZHVsZV9leGl0KHBhdGFfaWNzaWRlX2V4aXQpO1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pODI1eHgvZXRoZXIxLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pODI1eHgvZXRoZXIxLmNcXG5pbmRleCAzZTdkN2M0YmFmZGMyLi5kMjFhZWI4MzE1MzE3IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2k4MjV4eC9ldGhlcjEuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2k4MjV4eC9ldGhlcjEuY1xcbkBAIC0xMDcwLDE3ICsxMDcwLDYgQEAgc3RhdGljIHN0cnVjdCBlY2FyZF9kcml2ZXIgZXRoZXIxX2RyaXZlciA9IHtcXG4gXFx0fSxcXG4gfTtcXG4gXFxuLXN0YXRpYyBpbnQgX19pbml0IGV0aGVyMV9pbml0KHZvaWQpXFxuLXtcXG4tXFx0cmV0dXJuIGVjYXJkX3JlZ2lzdGVyX2RyaXZlcihcXHUwMDI2ZXRoZXIxX2RyaXZlcik7XFxuLX1cXG4tXFxuLXN0YXRpYyB2b2lkIF9fZXhpdCBldGhlcjFfZXhpdCh2b2lkKVxcbi17XFxuLVxcdGVjYXJkX3JlbW92ZV9kcml2ZXIoXFx1MDAyNmV0aGVyMV9kcml2ZXIpO1xcbi19XFxuLVxcbi1tb2R1bGVfaW5pdChldGhlcjFfaW5pdCk7XFxuLW1vZHVsZV9leGl0KGV0aGVyMV9leGl0KTtcXG4rbW9kdWxlX2RyaXZlcihldGhlcjFfZHJpdmVyLCBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIsIGVjYXJkX3JlbW92ZV9kcml2ZXIpO1xcbiBcXG4gTU9EVUxFX0xJQ0VOU0UoXFxcIkdQTFxcXCIpO1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZWVxL2V0aGVyMy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2VlcS9ldGhlcjMuY1xcbmluZGV4IDIwZGFkMzliNWFiOTQuLmIwZDJjYmMzNTkxNDcgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2VlcS9ldGhlcjMuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NlZXEvZXRoZXIzLmNcXG5AQCAtODgyLDE3ICs4ODIsNiBAQCBzdGF0aWMgc3RydWN0IGVjYXJkX2RyaXZlciBldGhlcjNfZHJpdmVyID0ge1xcbiBcXHR9LFxcbiB9O1xcbiBcXG4tc3RhdGljIGludCBfX2luaXQgZXRoZXIzX2luaXQodm9pZClcXG4te1xcbi1cXHRyZXR1cm4gZWNhcmRfcmVnaXN0ZXJfZHJpdmVyKFxcdTAwMjZldGhlcjNfZHJpdmVyKTtcXG4tfVxcbi1cXG4tc3RhdGljIHZvaWQgX19leGl0IGV0aGVyM19leGl0KHZvaWQpXFxuLXtcXG4tXFx0ZWNhcmRfcmVtb3ZlX2RyaXZlcihcXHUwMDI2ZXRoZXIzX2RyaXZlcik7XFxuLX1cXG4tXFxuLW1vZHVsZV9pbml0KGV0aGVyM19pbml0KTtcXG4tbW9kdWxlX2V4aXQoZXRoZXIzX2V4aXQpO1xcbittb2R1bGVfZHJpdmVyKGV0aGVyM19kcml2ZXIsIGVjYXJkX3JlZ2lzdGVyX2RyaXZlciwgZWNhcmRfcmVtb3ZlX2RyaXZlcik7XFxuIFxcbiBNT0RVTEVfTElDRU5TRShcXFwiR1BMXFxcIik7XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9hcm0vYWNvcm5zY3NpLmMgYi9kcml2ZXJzL3Njc2kvYXJtL2Fjb3Juc2NzaS5jXFxuaW5kZXggNzlkN2Q3MzM2YjZhYy4uOGI4OTlmYmYwOTJlMSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL3Njc2kvYXJtL2Fjb3Juc2NzaS5jXFxuKysrIGIvZHJpdmVycy9zY3NpL2FybS9hY29ybnNjc2kuY1xcbkBAIC0yOTAyLDE4ICsyOTAyLDcgQEAgc3RhdGljIHN0cnVjdCBlY2FyZF9kcml2ZXIgYWNvcm5zY3NpX2RyaXZlciA9IHtcXG4gXFx0fSxcXG4gfTtcXG4gXFxuLXN0YXRpYyBpbnQgX19pbml0IGFjb3Juc2NzaV9pbml0KHZvaWQpXFxuLXtcXG4tXFx0cmV0dXJuIGVjYXJkX3JlZ2lzdGVyX2RyaXZlcihcXHUwMDI2YWNvcm5zY3NpX2RyaXZlcik7XFxuLX1cXG4tXFxuLXN0YXRpYyB2b2lkIF9fZXhpdCBhY29ybnNjc2lfZXhpdCh2b2lkKVxcbi17XFxuLVxcdGVjYXJkX3JlbW92ZV9kcml2ZXIoXFx1MDAyNmFjb3Juc2NzaV9kcml2ZXIpO1xcbi19XFxuLVxcbi1tb2R1bGVfaW5pdChhY29ybnNjc2lfaW5pdCk7XFxuLW1vZHVsZV9leGl0KGFjb3Juc2NzaV9leGl0KTtcXG4rbW9kdWxlX2RyaXZlcihhY29ybnNjc2lfZHJpdmVyLCBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIsIGVjYXJkX3JlbW92ZV9kcml2ZXIpO1xcbiBcXG4gTU9EVUxFX0FVVEhPUihcXFwiUnVzc2VsbCBLaW5nXFxcIik7XFxuIE1PRFVMRV9ERVNDUklQVElPTihcXFwiQWNvcm5TQ1NJIGRyaXZlclxcXCIpO1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYXJtL2FyeGVzY3NpLmMgYi9kcml2ZXJzL3Njc2kvYXJtL2FyeGVzY3NpLmNcXG5pbmRleCA5MjVkMGJkNjhhYTViLi4yZDNmNWIwNTE5ZDFhIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvc2NzaS9hcm0vYXJ4ZXNjc2kuY1xcbisrKyBiL2RyaXZlcnMvc2NzaS9hcm0vYXJ4ZXNjc2kuY1xcbkBAIC0zNDQsMjAgKzM0NCw4IEBAIHN0YXRpYyBzdHJ1Y3QgZWNhcmRfZHJpdmVyIGFyeGVzY3NpX2RyaXZlciA9IHtcXG4gXFx0fSxcXG4gfTtcXG4gXFxuLXN0YXRpYyBpbnQgX19pbml0IGluaXRfYXJ4ZV9zY3NpX2RyaXZlcih2b2lkKVxcbi17XFxuLVxcdHJldHVybiBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIoXFx1MDAyNmFyeGVzY3NpX2RyaXZlcik7XFxuLX1cXG4tXFxuLXN0YXRpYyB2b2lkIF9fZXhpdCBleGl0X2FyeGVfc2NzaV9kcml2ZXIodm9pZClcXG4te1xcbi1cXHRlY2FyZF9yZW1vdmVfZHJpdmVyKFxcdTAwMjZhcnhlc2NzaV9kcml2ZXIpO1xcbi19XFxuLVxcbi1tb2R1bGVfaW5pdChpbml0X2FyeGVfc2NzaV9kcml2ZXIpO1xcbi1tb2R1bGVfZXhpdChleGl0X2FyeGVfc2NzaV9kcml2ZXIpO1xcbittb2R1bGVfZHJpdmVyKGFyeGVzY3NpX2RyaXZlciwgZWNhcmRfcmVnaXN0ZXJfZHJpdmVyLCBlY2FyZF9yZW1vdmVfZHJpdmVyKTtcXG4gXFxuIE1PRFVMRV9BVVRIT1IoXFxcIlN0ZWZhbiBIYW5za2VcXFwiKTtcXG4gTU9EVUxFX0RFU0NSSVBUSU9OKFxcXCJBUlhFU0NTSSBkcml2ZXIgZm9yIEFjb3JuIG1hY2hpbmVzXFxcIik7XFxuIE1PRFVMRV9MSUNFTlNFKFxcXCJHUExcXFwiKTtcXG4tXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9hcm0vY3VtYW5hXzEuYyBiL2RyaXZlcnMvc2NzaS9hcm0vY3VtYW5hXzEuY1xcbmluZGV4IGQxYTJhMjJmZmU4YzcuLjYyYzExMTY4ZjMyMTEgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9zY3NpL2FybS9jdW1hbmFfMS5jXFxuKysrIGIvZHJpdmVycy9zY3NpL2FybS9jdW1hbmFfMS5jXFxuQEAgLTMyNCwxOCArMzI0LDcgQEAgc3RhdGljIHN0cnVjdCBlY2FyZF9kcml2ZXIgY3VtYW5hc2NzaTFfZHJpdmVyID0ge1xcbiBcXHR9LFxcbiB9O1xcbiBcXG4tc3RhdGljIGludCBfX2luaXQgY3VtYW5hc2NzaV9pbml0KHZvaWQpXFxuLXtcXG4tXFx0cmV0dXJuIGVjYXJkX3JlZ2lzdGVyX2RyaXZlcihcXHUwMDI2Y3VtYW5hc2NzaTFfZHJpdmVyKTtcXG4tfVxcbi1cXG4tc3RhdGljIHZvaWQgX19leGl0IGN1bWFuYXNjc2lfZXhpdCh2b2lkKVxcbi17XFxuLVxcdGVjYXJkX3JlbW92ZV9kcml2ZXIoXFx1MDAyNmN1bWFuYXNjc2kxX2RyaXZlcik7XFxuLX1cXG4tXFxuLW1vZHVsZV9pbml0KGN1bWFuYXNjc2lfaW5pdCk7XFxuLW1vZHVsZV9leGl0KGN1bWFuYXNjc2lfZXhpdCk7XFxuK21vZHVsZV9kcml2ZXIoY3VtYW5hc2NzaTFfZHJpdmVyLCBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIsIGVjYXJkX3JlbW92ZV9kcml2ZXIpO1xcbiBcXG4gTU9EVUxFX0RFU0NSSVBUSU9OKFxcXCJDdW1hbmEgU0NTSS0xIGRyaXZlciBmb3IgQWNvcm4gbWFjaGluZXNcXFwiKTtcXG4gTU9EVUxFX0xJQ0VOU0UoXFxcIkdQTFxcXCIpO1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYXJtL2N1bWFuYV8yLmMgYi9kcml2ZXJzL3Njc2kvYXJtL2N1bWFuYV8yLmNcXG5pbmRleCBlNDYwMDY4ZjY4MzRiLi4yNDk0NWUxNzY1YWUwIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvc2NzaS9hcm0vY3VtYW5hXzIuY1xcbisrKyBiL2RyaXZlcnMvc2NzaS9hcm0vY3VtYW5hXzIuY1xcbkBAIC01MDQsMTggKzUwNCw3IEBAIHN0YXRpYyBzdHJ1Y3QgZWNhcmRfZHJpdmVyIGN1bWFuYXNjc2kyX2RyaXZlciA9IHtcXG4gXFx0fSxcXG4gfTtcXG4gXFxuLXN0YXRpYyBpbnQgX19pbml0IGN1bWFuYXNjc2kyX2luaXQodm9pZClcXG4te1xcbi1cXHRyZXR1cm4gZWNhcmRfcmVnaXN0ZXJfZHJpdmVyKFxcdTAwMjZjdW1hbmFzY3NpMl9kcml2ZXIpO1xcbi19XFxuLVxcbi1zdGF0aWMgdm9pZCBfX2V4aXQgY3VtYW5hc2NzaTJfZXhpdCh2b2lkKVxcbi17XFxuLVxcdGVjYXJkX3JlbW92ZV9kcml2ZXIoXFx1MDAyNmN1bWFuYXNjc2kyX2RyaXZlcik7XFxuLX1cXG4tXFxuLW1vZHVsZV9pbml0KGN1bWFuYXNjc2kyX2luaXQpO1xcbi1tb2R1bGVfZXhpdChjdW1hbmFzY3NpMl9leGl0KTtcXG4rbW9kdWxlX2RyaXZlcihjdW1hbmFzY3NpMl9kcml2ZXIsIGVjYXJkX3JlZ2lzdGVyX2RyaXZlciwgZWNhcmRfcmVtb3ZlX2RyaXZlcik7XFxuIFxcbiBNT0RVTEVfQVVUSE9SKFxcXCJSdXNzZWxsIEtpbmdcXFwiKTtcXG4gTU9EVUxFX0RFU0NSSVBUSU9OKFxcXCJDdW1hbmEgU0NTSS0yIGRyaXZlciBmb3IgQWNvcm4gbWFjaGluZXNcXFwiKTtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2FybS9lZXNveC5jIGIvZHJpdmVycy9zY3NpL2FybS9lZXNveC5jXFxuaW5kZXggOTliZTlkYTg3NTdmNC4uODIzYWQxNzlmMjRjYyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL3Njc2kvYXJtL2Vlc294LmNcXG4rKysgYi9kcml2ZXJzL3Njc2kvYXJtL2Vlc294LmNcXG5AQCAtNjI2LDE4ICs2MjYsNyBAQCBzdGF0aWMgc3RydWN0IGVjYXJkX2RyaXZlciBlZXNveHNjc2lfZHJpdmVyID0ge1xcbiBcXHR9LFxcbiB9O1xcbiBcXG4tc3RhdGljIGludCBfX2luaXQgZWVzb3hfaW5pdCh2b2lkKVxcbi17XFxuLVxcdHJldHVybiBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIoXFx1MDAyNmVlc294c2NzaV9kcml2ZXIpO1xcbi19XFxuLVxcbi1zdGF0aWMgdm9pZCBfX2V4aXQgZWVzb3hfZXhpdCh2b2lkKVxcbi17XFxuLVxcdGVjYXJkX3JlbW92ZV9kcml2ZXIoXFx1MDAyNmVlc294c2NzaV9kcml2ZXIpO1xcbi19XFxuLVxcbi1tb2R1bGVfaW5pdChlZXNveF9pbml0KTtcXG4tbW9kdWxlX2V4aXQoZWVzb3hfZXhpdCk7XFxuK21vZHVsZV9kcml2ZXIoZWVzb3hzY3NpX2RyaXZlciwgZWNhcmRfcmVnaXN0ZXJfZHJpdmVyLCBlY2FyZF9yZW1vdmVfZHJpdmVyKTtcXG4gXFxuIE1PRFVMRV9BVVRIT1IoXFxcIlJ1c3NlbGwgS2luZ1xcXCIpO1xcbiBNT0RVTEVfREVTQ1JJUFRJT04oXFxcIkVFU09YICdGYXN0JyBTQ1NJIGRyaXZlciBmb3IgQWNvcm4gbWFjaGluZXNcXFwiKTtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2FybS9vYWsuYyBiL2RyaXZlcnMvc2NzaS9hcm0vb2FrLmNcXG5pbmRleCBkNjkyNDUwMDcwOTY3Li5hZWEyMWJiMTMzNTUyIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvc2NzaS9hcm0vb2FrLmNcXG4rKysgYi9kcml2ZXJzL3Njc2kvYXJtL29hay5jXFxuQEAgLTE5NCwyMCArMTk0LDggQEAgc3RhdGljIHN0cnVjdCBlY2FyZF9kcml2ZXIgb2Frc2NzaV9kcml2ZXIgPSB7XFxuIFxcdH0sXFxuIH07XFxuIFxcbi1zdGF0aWMgaW50IF9faW5pdCBvYWtzY3NpX2luaXQodm9pZClcXG4te1xcbi1cXHRyZXR1cm4gZWNhcmRfcmVnaXN0ZXJfZHJpdmVyKFxcdTAwMjZvYWtzY3NpX2RyaXZlcik7XFxuLX1cXG4tXFxuLXN0YXRpYyB2b2lkIF9fZXhpdCBvYWtzY3NpX2V4aXQodm9pZClcXG4te1xcbi1cXHRlY2FyZF9yZW1vdmVfZHJpdmVyKFxcdTAwMjZvYWtzY3NpX2RyaXZlcik7XFxuLX1cXG4tXFxuLW1vZHVsZV9pbml0KG9ha3Njc2lfaW5pdCk7XFxuLW1vZHVsZV9leGl0KG9ha3Njc2lfZXhpdCk7XFxuK21vZHVsZV9kcml2ZXIob2Frc2NzaV9kcml2ZXIsIGVjYXJkX3JlZ2lzdGVyX2RyaXZlciwgZWNhcmRfcmVtb3ZlX2RyaXZlcik7XFxuIFxcbiBNT0RVTEVfQVVUSE9SKFxcXCJSdXNzZWxsIEtpbmdcXFwiKTtcXG4gTU9EVUxFX0RFU0NSSVBUSU9OKFxcXCJPYWsgU0NTSSBkcml2ZXJcXFwiKTtcXG4gTU9EVUxFX0xJQ0VOU0UoXFxcIkdQTFxcXCIpO1xcbi1cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2FybS9wb3dlcnRlYy5jIGIvZHJpdmVycy9zY3NpL2FybS9wb3dlcnRlYy5jXFxuaW5kZXggODIzYzY1ZmY2YzEyYi4uNjdmMDcxYTA1NDNiNiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL3Njc2kvYXJtL3Bvd2VydGVjLmNcXG4rKysgYi9kcml2ZXJzL3Njc2kvYXJtL3Bvd2VydGVjLmNcXG5AQCAtNDMyLDE4ICs0MzIsNyBAQCBzdGF0aWMgc3RydWN0IGVjYXJkX2RyaXZlciBwb3dlcnRlY3Njc2lfZHJpdmVyID0ge1xcbiBcXHR9LFxcbiB9O1xcbiBcXG4tc3RhdGljIGludCBfX2luaXQgcG93ZXJ0ZWNzY3NpX2luaXQodm9pZClcXG4te1xcbi1cXHRyZXR1cm4gZWNhcmRfcmVnaXN0ZXJfZHJpdmVyKFxcdTAwMjZwb3dlcnRlY3Njc2lfZHJpdmVyKTtcXG4tfVxcbi1cXG4tc3RhdGljIHZvaWQgX19leGl0IHBvd2VydGVjc2NzaV9leGl0KHZvaWQpXFxuLXtcXG4tXFx0ZWNhcmRfcmVtb3ZlX2RyaXZlcihcXHUwMDI2cG93ZXJ0ZWNzY3NpX2RyaXZlcik7XFxuLX1cXG4tXFxuLW1vZHVsZV9pbml0KHBvd2VydGVjc2NzaV9pbml0KTtcXG4tbW9kdWxlX2V4aXQocG93ZXJ0ZWNzY3NpX2V4aXQpO1xcbittb2R1bGVfZHJpdmVyKHBvd2VydGVjc2NzaV9kcml2ZXIsIGVjYXJkX3JlZ2lzdGVyX2RyaXZlciwgZWNhcmRfcmVtb3ZlX2RyaXZlcik7XFxuIFxcbiBNT0RVTEVfQVVUSE9SKFxcXCJSdXNzZWxsIEtpbmdcXFwiKTtcXG4gTU9EVUxFX0RFU0NSSVBUSU9OKFxcXCJQb3dlcnRlYyBTQ1NJIGRyaXZlclxcXCIpO1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3R0eS9zZXJpYWwvODI1MC84MjUwX2Fjb3JuLmMgYi9kcml2ZXJzL3R0eS9zZXJpYWwvODI1MC84MjUwX2Fjb3JuLmNcXG5pbmRleCBmYjU5NjI2MmI5YzcxLi5mNjM0ZGU2ZTE1OWY0IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvdHR5L3NlcmlhbC84MjUwLzgyNTBfYWNvcm4uY1xcbisrKyBiL2RyaXZlcnMvdHR5L3NlcmlhbC84MjUwLzgyNTBfYWNvcm4uY1xcbkBAIC0xMjAsMTkgKzEyMCw4IEBAIHN0YXRpYyBzdHJ1Y3QgZWNhcmRfZHJpdmVyIHNlcmlhbF9jYXJkX2RyaXZlciA9IHtcXG4gXFx0fSxcXG4gfTtcXG4gXFxuLXN0YXRpYyBpbnQgX19pbml0IHNlcmlhbF9jYXJkX2luaXQodm9pZClcXG4te1xcbi1cXHRyZXR1cm4gZWNhcmRfcmVnaXN0ZXJfZHJpdmVyKFxcdTAwMjZzZXJpYWxfY2FyZF9kcml2ZXIpO1xcbi19XFxuLVxcbi1zdGF0aWMgdm9pZCBfX2V4aXQgc2VyaWFsX2NhcmRfZXhpdCh2b2lkKVxcbi17XFxuLVxcdGVjYXJkX3JlbW92ZV9kcml2ZXIoXFx1MDAyNnNlcmlhbF9jYXJkX2RyaXZlcik7XFxuLX1cXG4rbW9kdWxlX2RyaXZlcihzZXJpYWxfY2FyZF9kcml2ZXIsIGVjYXJkX3JlZ2lzdGVyX2RyaXZlciwgZWNhcmRfcmVtb3ZlX2RyaXZlcik7XFxuIFxcbiBNT0RVTEVfQVVUSE9SKFxcXCJSdXNzZWxsIEtpbmdcXFwiKTtcXG4gTU9EVUxFX0RFU0NSSVBUSU9OKFxcXCJBY29ybiA4MjUwLWNvbXBhdGlibGUgc2VyaWFsIHBvcnQgZXhwYW5zaW9uIGNhcmQgZHJpdmVyXFxcIik7XFxuIE1PRFVMRV9MSUNFTlNFKFxcXCJHUExcXFwiKTtcXG4tXFxuLW1vZHVsZV9pbml0KHNlcmlhbF9jYXJkX2luaXQpO1xcbi1tb2R1bGVfZXhpdChzZXJpYWxfY2FyZF9leGl0KTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDZUMjA6MjE6MzguNzUxMzc3NDQ1WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiY29yZSIsIkR1cmF0aW9uIjozMjAwMzQxMTQ2MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggc2VyaWVzIHJlcGxhY2VzIGJvaWxlcnBsYXRlIG1vZHVsZV9pbml0L21vZHVsZV9leGl0IGZ1bmN0aW9ucyB3aXRoIG1vZHVsZV9kcml2ZXIoKSBtYWNyb3MgYWNyb3NzIHNldmVyYWwgQWNvcm4gZXhwYW5zaW9uIGNhcmQgKGVjYXJkKSBkcml2ZXJzLiBBbGwgbW9kaWZpZWQgZHJpdmVycyBkZXBlbmQgb24gQVJDSF9BQ09STiBhbmQgQVJNLCBtYWtpbmcgdGhlbSBleGNsdXNpdmUgdG8gdGhlIEFSTSBhcmNoaXRlY3R1cmUgYW5kIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBvbiB0aGUgdGFyZ2V0IGFtZDY0IGFyY2hpdGVjdHVyZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyIGFuZCBzZWN1cml0eSBlbmdpbmVlci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZXZhbHVhdGUgd2hldGhlciBpdCB3YXJyYW50cyBmdXp6aW5nIHdpdGggc3l6a2FsbGVyLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiBpbnRlcm5hbCBhc3N1bXB0aW9ucy4gWW91IG11c3QgYWN0aXZlbHkgdXNlIHlvdXIgY29kZSBhY2Nlc3NcbnRvb2xzIHRvIGluc3BlY3QgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSwgY2FsbGVycywgYW5kIHN1cnJvdW5kaW5nIGNvbnRleHQuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4xLiBDT1JFIFRSSUFHRSBQSElMT1NPUEhZXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuVGhlIGdvYWwgb2YgcGF0Y2ggZnV6emluZyBpcyB0byBkaXNjb3ZlciBjcmFzaGVzLCByZWdyZXNzaW9ucywgZXhwb3NlZCBsYXRlbnQgYnVncyxcbmFuZCBuZXdseSB0cmlnZ2VyZWQgYXNzZXJ0aW9ucyBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBzZXJpZXMuXG5cbi0gUkVBQ0hBQklMSVRZIElTIFRIRSBQUklNQVJZIEdBVEU6XG4gIEZ1enppbmcgY2FuIG9ubHkgZGlzY292ZXIgYnVncyBpbiBjb2RlIHRoYXQgY2FuIGFjdHVhbGx5IGV4ZWN1dGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWRcbiAgZW52aXJvbm1lbnRzIChHQ0Ugb3IgUUVNVSwgdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGRldmljZXMgbGlrZSBVU0IgZ2FkZ2V0cywgbmV0ZGV2LCB0dW4vdGFwKS5cbiAgSWYgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIChzZWUgU2VjdGlvbiAyKSwgaXQgTVVTVCBOT1QgYmUgZnV6emVkLFxuICByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgYWRkcyBhc3NlcnRpb25zIG9yIGNvbXBsZXggbG9naWMuXG5cbi0gRE8gTk9UIEJMSU5ETFkgVFJVU1QgXCJOTyBGVU5DVElPTkFMIENIQU5HRVwiIChORkNJKSBPUiBcIlJFRkFDVE9SSU5HXCIgQ0xBSU1TOlxuICBQYXRjaCBhdXRob3JzIHJvdXRpbmVseSBsYWJlbCBjaGFuZ2VzIGFzIFwiY2xlYW51cHNcIiwgXCJyZWZhY3RvcmluZ3NcIiwgb3Igc3RhdGVcbiAgXCJObyBmdW5jdGlvbmFsIGNoYW5nZSBpbnRlbmRlZFwiLiBEbyBOT1QgdGFrZSB0aGVzZSBjbGFpbXMgYXQgZmFjZSB2YWx1ZS5cbiAgQ29kZSByZWZhY3RvcmluZ3MgdGhhdCByZWFycmFuZ2UgbG9naWMsIGludHJvZHVjZSBoZWxwZXIgZnVuY3Rpb25zLCBvciBhbHRlciBzdGF0ZSBtYW5hZ2VtZW50XG4gIGluIGNvcmUgc3Vic3lzdGVtcyBmcmVxdWVudGx5IGludHJvZHVjZSBzdWJ0bGUgc2VtYW50aWMgc2hpZnRzIG9yIHVuY292ZXIgbGF0ZW50IGtlcm5lbCBidWdzLlxuICBJZiByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlIGlzIG1vZGlmaWVkIG9yIHJlZmFjdG9yZWQsIGl0IE1VU1QgYmUgZnV6emVkLlxuXG4tIE5FVyBPUiBNT0RJRklFRCBBU1NFUlRJT05TIElOIFJFQUNIQUJMRSBDT0RFIE1VU1QgQkUgRlVaWkVEOlxuICBXaGVuIGEgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllcyBydW50aW1lIGNoZWNrcyBvciBhc3NlcnRpb25zIChlLmcuLCBXQVJOX09OKiwgVk1fV0FSTl9PTiosXG4gIEJVR19PTiosIGxvY2tkZXBfYXNzZXJ0KikgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMsIGl0IGVuZm9yY2VzIG5ldyBvciBzdHJpY3RlciBpbnZhcmlhbnRzLlxuICBFdmVuIGlmIHRoZSBhdXRob3IgYmVsaWV2ZXMgdGhlIGludmFyaWFudCBhbHdheXMgaG9sZHMsIGZ1enppbmcgaXMgZXNzZW50aWFsIHRvIHZlcmlmeSB3aGV0aGVyXG4gIGFuIHVudXN1YWwgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucyBjYW4gdmlvbGF0ZSBpdC5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjIuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz1mYWxzZSAoTkVHQVRJVkUgQ1JJVEVSSUEpXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBPTkxZIElGIGFsbCBtb2RpZmllZCBjb2RlIGZhbGxzIHN0cmljdGx5IGludG8gb25lIG9yIG1vcmUgb2YgdGhlc2UgY2F0ZWdvcmllczpcblxuLSBOb24ta2VybmVsIGFuZCBub24tZXhlY3V0YWJsZSBjaGFuZ2VzOlxuICAqIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIGNvbW1lbnRzLCBvciBzcGVsbGluZyBmaXhlcy5cbiAgKiBVc2VyLXNwYWNlIGRpcmVjdG9yaWVzLCBzZWxmLXRlc3RzLCBzYW1wbGVzLCBvciBzY3JpcHRzIChlLmcuLCB0b29scy8sIHNhbXBsZXMvLCBzY3JpcHRzLywgdXNyLylcbiAgICB0aGF0IGRvIG5vdCBhZmZlY3QgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAodm1saW51eCkgb3Iga2VybmVsIG1vZHVsZXMuXG4gICogUHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZyAoZS5nLiwgbWVzc2FnZSBzdHJpbmdzIGluIHByX2VyciwgcHJpbnRrLCBkZXZfaW5mbykgb3IgdHJhY2Vwb2ludHNcbiAgICB0aGF0IGRvIG5vdCBhbHRlciBjb250cm9sIGZsb3cgb3IgZGF0YSBzdHJ1Y3R1cmVzLlxuICAqIEJ1aWxkIHN5c3RlbSBvciBLY29uZmlnIGNoYW5nZXMgdGhhdCBkbyBub3QgYWx0ZXIgY29tcGlsZWQgQyBsb2dpYy5cbi0gU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlOlxuICAqIFZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgICBpb25pYywgYW1kZ3B1KSByZXF1aXJpbmcgcGh5c2ljYWwgQVNJQy9QQ0llIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBVbnJlYWNoYWJsZSBleGVjdXRpb24gcGF0aHM6XG4gICogRHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoLnJlbW92ZSwgLnNodXRkb3duLCBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIpIGV4ZWN1dGVkIG9ubHkgZHVyaW5nXG4gICAgcGh5c2ljYWwgUENJIGhvdC11bnBsdWcgb3IgbWFudWFsIHN5c2ZzIGRyaXZlciB1bmJpbmRpbmcuXG4gICogQ29kZSBwYXRocyBleGNsdXNpdmUgdG8gYXJjaGl0ZWN0dXJlcyBvdGhlciB0aGFuIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuMy4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPXRydWUgKFBPU0lUSVZFIENSSVRFUklBKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZSB3aGVuZXZlciB0aGUgcGF0Y2ggdG91Y2hlcyByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlLCBpbmNsdWRpbmc6XG4tIENvcmUgU3Vic3lzdGVtczpcbiAgKiBBbnkgbG9naWMgbW9kaWZpY2F0aW9ucyBpbiBtZW1vcnkgbWFuYWdlbWVudCAobW0vKSwgc3luY2hyb25pemF0aW9uL2xvY2tpbmcgKGtlcm5lbC9sb2NraW5nLyksXG4gICAgQlBGLCBzY2hlZHVsZXIsIGNvcmUgbmV0d29ya2luZywgVkZTLCBvciBzeXNjYWxsIGhhbmRsaW5nLlxuLSBSZWZhY3RvcmluZ3MgYW5kIENvZGUgQ2xlYW51cHM6XG4gICogQW55IHJlc3RydWN0dXJpbmcgb2YgcmVhY2hhYmxlIGRhdGEgc3RydWN0dXJlcywgaGVscGVyIGFic3RyYWN0aW9ucywgb3IgYWxnb3JpdGhtIGZsb3dzLlxuLSBSdW50aW1lIEFzc2VydGlvbnMgYW5kIERlZmVuc2l2ZSBDaGVja3M6XG4gICogQW55IGludHJvZHVjdGlvbiBvciBhbHRlcmF0aW9uIG9mIGFzc2VydGlvbnMgKFdBUk5fT04qLCBWTV9XQVJOX09OKiwgQlVHX09OKiwgZXRjLikgaW4gcmVhY2hhYmxlIHBhdGhzLlxuLSBSZWFjaGFibGUgRHJpdmVycyBhbmQgUHJvdG9jb2xzOlxuICAqIERyaXZlcnMgYWNjZXNzaWJsZSB2aWEgdmlydHVhbCBidXNlcyAodmlydGlvLCBVU0IgZ2FkZ2V0LCBsb29wYmFjaywgbmV0bGluaywgYmluZGVyLCBzb2NrZXRzLCBldGMuKS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjQuIEVYVFJBQ1RJTkcgRm9jdXNTeW1ib2xzIChQUkVWRU5USU5HIERJTFVUSU9OKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbldoZW4gV29ydGhGdXp6aW5nPXRydWUsIHlvdSBtdXN0IGV4dHJhY3Qgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyBpbnRvIEZvY3VzU3ltYm9scyB0byBndWlkZSB0aGUgZnV6emVyOlxuXG4tIEFWT0lEIFVCSVFVSVRPVVMgTElGRUNZQ0xFIEhPVC1QQVRIUzpcbiAgRG8gTk9UIGxpc3QgZ2VuZXJpYywgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2FsbGVkIGJ5IGFsbW9zdCBldmVyeSBwcm9ncmFtIGluIHRoZSBjb3JwdXNcbiAgKGluY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvOiBnZW5lcmFsIG1lbW9yeSBhbGxvY2F0b3JzIGFuZCBkZWFsbG9jYXRvcnMsIHBhZ2UgZmF1bHRcbiAgYW5kIHRyYXAgaGFuZGxlcnMsIG9yIGNvcmUgc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXM7IHRoaXMgaXMgbm90IGFuIGV4aGF1c3RpdmUgbGlzdCkuXG4gIExpc3RpbmcgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2F1c2VzIHRoZSBmdXp6ZXIgdG8gY2xhc3NpZnkgdGhvdXNhbmRzIG9mIHVucmVsYXRlZCB0ZXN0cyBhcyBcImZvY3VzZWRcIixcbiAgd2hpY2ggc2V2ZXJlbHkgZGlsdXRlcyBmdXp6aW5nIGVmZm9ydCBhd2F5IGZyb20gdGhlIGFjdHVhbCBjaGFuZ2VzLlxuXG4tIFRBUkdFVCBTUEVDSUZJQyBGRUFUVVJFIExPR0lDIEFORCBFTlRSWVBPSU5UUzpcbiAgTGlzdCBmdW5jdGlvbnMgdGhhdCBzcGVjaWZpY2FsbHkgaW1wbGVtZW50IHRoZSBsb2dpYyBiZWluZyBhZGRlZCBvciBhbHRlcmVkLCBvciBkaXJlY3QgQVBJIGVudHJ5cG9pbnRzXG4gIGZvciB0aGUgc3Vic3lzdGVtIGZlYXR1cmUgdW5kZXIgcmV2aWV3LlxuXG4tIEhBTkRMSU5HIFNUQVRJQyBJTkxJTkUgRlVOQ1RJT05TIElOIEhFQURFUlMgKC5oKTpcbiAgQ29tcGlsZXItaW5saW5lZCBzdGF0aWMgZnVuY3Rpb25zIChzdWNoIGFzIHN0YXRpYyBpbmxpbmVzIGluIG1tLyouaCBvciBpbmNsdWRlL2xpbnV4LyouaCkgbGFja1xuICBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzIGluIHZtbGludXggYW5kIGNhbm5vdCBiZSB0YXJnZXRlZCBkaXJlY3RseSBieSBzeW1ib2wgY292ZXJhZ2UgZmlsdGVycy5cbiAgSWYgdGhlIGNoYW5nZXMgYXJlIHByaW1hcmlseSBpbiBzdGF0aWMgaW5saW5lIGhlbHBlcnMsIGlkZW50aWZ5IG5vbi1zdGF0aWMsIGZlYXR1cmUtc3BlY2lmaWMgY2FsbGVyXG4gIGZ1bmN0aW9ucyBpbiAuYyBmaWxlcyB0aGF0IGV4ZXJjaXNlIHRoZW0gKGF2b2lkaW5nIHViaXF1aXRvdXMgbGlmZWN5Y2xlIHdyYXBwZXJzKS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjUuIElERU5USUZZSU5HIEVuYWJsZUNvbmZpZ3Ncbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5JZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IGNvbXBpbGUgYW5kIHJlYWNoIHRoZSBtb2RpZmllZCBjb2RlOlxuLSBJbnNwZWN0IEtjb25maWcgZmlsZXMgYW5kICNpZmRlZiBndWFyZHM7IGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuLSBDaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MgbmVlZGVkLlxuLSBTdHJpcCBhbnkgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiVGFyZ2V0IGFyY2hpdGVjdHVyZTogYW1kNjRcblxuRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgYmI3YWY4MWZhODBkOWU0YmM5M2UzOTY2YjE5Mjk0YjNkNTgyY2MzM1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTdW4gU2VwIDYgMjA6MjE6MzcgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL2F0YS9wYXRhX2ljc2lkZS5jIGIvZHJpdmVycy9hdGEvcGF0YV9pY3NpZGUuY1xuaW5kZXggNzBmMDU2ZTQ3ZTZiZC4uZGY3MjAzYTc0ZjQ1ZCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvYXRhL3BhdGFfaWNzaWRlLmNcbisrKyBiL2RyaXZlcnMvYXRhL3BhdGFfaWNzaWRlLmNcbkBAIC02MTMsMTkgKzYxMyw4IEBAIHN0YXRpYyBzdHJ1Y3QgZWNhcmRfZHJpdmVyIHBhdGFfaWNzaWRlX2RyaXZlciA9IHtcbiBcdH0sXG4gfTtcbiBcbi1zdGF0aWMgaW50IF9faW5pdCBwYXRhX2ljc2lkZV9pbml0KHZvaWQpXG4te1xuLVx0cmV0dXJuIGVjYXJkX3JlZ2lzdGVyX2RyaXZlcihcdTAwMjZwYXRhX2ljc2lkZV9kcml2ZXIpO1xuLX1cbi1cbi1zdGF0aWMgdm9pZCBfX2V4aXQgcGF0YV9pY3NpZGVfZXhpdCh2b2lkKVxuLXtcbi1cdGVjYXJkX3JlbW92ZV9kcml2ZXIoXHUwMDI2cGF0YV9pY3NpZGVfZHJpdmVyKTtcbi19XG4rbW9kdWxlX2RyaXZlcihwYXRhX2ljc2lkZV9kcml2ZXIsIGVjYXJkX3JlZ2lzdGVyX2RyaXZlciwgZWNhcmRfcmVtb3ZlX2RyaXZlcik7XG4gXG4gTU9EVUxFX0FVVEhPUihcIlJ1c3NlbGwgS2luZyBcdTAwM2NybWtAYXJtLmxpbnV4Lm9yZy51a1x1MDAzZVwiKTtcbiBNT0RVTEVfTElDRU5TRShcIkdQTFwiKTtcbiBNT0RVTEVfREVTQ1JJUFRJT04oXCJJQ1MgUEFUQSBkcml2ZXJcIik7XG4tXG4tbW9kdWxlX2luaXQocGF0YV9pY3NpZGVfaW5pdCk7XG4tbW9kdWxlX2V4aXQocGF0YV9pY3NpZGVfZXhpdCk7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaTgyNXh4L2V0aGVyMS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaTgyNXh4L2V0aGVyMS5jXG5pbmRleCAzZTdkN2M0YmFmZGMyLi5kMjFhZWI4MzE1MzE3IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaTgyNXh4L2V0aGVyMS5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pODI1eHgvZXRoZXIxLmNcbkBAIC0xMDcwLDE3ICsxMDcwLDYgQEAgc3RhdGljIHN0cnVjdCBlY2FyZF9kcml2ZXIgZXRoZXIxX2RyaXZlciA9IHtcbiBcdH0sXG4gfTtcbiBcbi1zdGF0aWMgaW50IF9faW5pdCBldGhlcjFfaW5pdCh2b2lkKVxuLXtcbi1cdHJldHVybiBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIoXHUwMDI2ZXRoZXIxX2RyaXZlcik7XG4tfVxuLVxuLXN0YXRpYyB2b2lkIF9fZXhpdCBldGhlcjFfZXhpdCh2b2lkKVxuLXtcbi1cdGVjYXJkX3JlbW92ZV9kcml2ZXIoXHUwMDI2ZXRoZXIxX2RyaXZlcik7XG4tfVxuLVxuLW1vZHVsZV9pbml0KGV0aGVyMV9pbml0KTtcbi1tb2R1bGVfZXhpdChldGhlcjFfZXhpdCk7XG4rbW9kdWxlX2RyaXZlcihldGhlcjFfZHJpdmVyLCBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIsIGVjYXJkX3JlbW92ZV9kcml2ZXIpO1xuIFxuIE1PRFVMRV9MSUNFTlNFKFwiR1BMXCIpO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NlZXEvZXRoZXIzLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZWVxL2V0aGVyMy5jXG5pbmRleCAyMGRhZDM5YjVhYjk0Li5iMGQyY2JjMzU5MTQ3IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2VlcS9ldGhlcjMuY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2VlcS9ldGhlcjMuY1xuQEAgLTg4MiwxNyArODgyLDYgQEAgc3RhdGljIHN0cnVjdCBlY2FyZF9kcml2ZXIgZXRoZXIzX2RyaXZlciA9IHtcbiBcdH0sXG4gfTtcbiBcbi1zdGF0aWMgaW50IF9faW5pdCBldGhlcjNfaW5pdCh2b2lkKVxuLXtcbi1cdHJldHVybiBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIoXHUwMDI2ZXRoZXIzX2RyaXZlcik7XG4tfVxuLVxuLXN0YXRpYyB2b2lkIF9fZXhpdCBldGhlcjNfZXhpdCh2b2lkKVxuLXtcbi1cdGVjYXJkX3JlbW92ZV9kcml2ZXIoXHUwMDI2ZXRoZXIzX2RyaXZlcik7XG4tfVxuLVxuLW1vZHVsZV9pbml0KGV0aGVyM19pbml0KTtcbi1tb2R1bGVfZXhpdChldGhlcjNfZXhpdCk7XG4rbW9kdWxlX2RyaXZlcihldGhlcjNfZHJpdmVyLCBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIsIGVjYXJkX3JlbW92ZV9kcml2ZXIpO1xuIFxuIE1PRFVMRV9MSUNFTlNFKFwiR1BMXCIpO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9hcm0vYWNvcm5zY3NpLmMgYi9kcml2ZXJzL3Njc2kvYXJtL2Fjb3Juc2NzaS5jXG5pbmRleCA3OWQ3ZDczMzZiNmFjLi44Yjg5OWZiZjA5MmUxIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9zY3NpL2FybS9hY29ybnNjc2kuY1xuKysrIGIvZHJpdmVycy9zY3NpL2FybS9hY29ybnNjc2kuY1xuQEAgLTI5MDIsMTggKzI5MDIsNyBAQCBzdGF0aWMgc3RydWN0IGVjYXJkX2RyaXZlciBhY29ybnNjc2lfZHJpdmVyID0ge1xuIFx0fSxcbiB9O1xuIFxuLXN0YXRpYyBpbnQgX19pbml0IGFjb3Juc2NzaV9pbml0KHZvaWQpXG4te1xuLVx0cmV0dXJuIGVjYXJkX3JlZ2lzdGVyX2RyaXZlcihcdTAwMjZhY29ybnNjc2lfZHJpdmVyKTtcbi19XG4tXG4tc3RhdGljIHZvaWQgX19leGl0IGFjb3Juc2NzaV9leGl0KHZvaWQpXG4te1xuLVx0ZWNhcmRfcmVtb3ZlX2RyaXZlcihcdTAwMjZhY29ybnNjc2lfZHJpdmVyKTtcbi19XG4tXG4tbW9kdWxlX2luaXQoYWNvcm5zY3NpX2luaXQpO1xuLW1vZHVsZV9leGl0KGFjb3Juc2NzaV9leGl0KTtcbittb2R1bGVfZHJpdmVyKGFjb3Juc2NzaV9kcml2ZXIsIGVjYXJkX3JlZ2lzdGVyX2RyaXZlciwgZWNhcmRfcmVtb3ZlX2RyaXZlcik7XG4gXG4gTU9EVUxFX0FVVEhPUihcIlJ1c3NlbGwgS2luZ1wiKTtcbiBNT0RVTEVfREVTQ1JJUFRJT04oXCJBY29yblNDU0kgZHJpdmVyXCIpO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9hcm0vYXJ4ZXNjc2kuYyBiL2RyaXZlcnMvc2NzaS9hcm0vYXJ4ZXNjc2kuY1xuaW5kZXggOTI1ZDBiZDY4YWE1Yi4uMmQzZjViMDUxOWQxYSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvc2NzaS9hcm0vYXJ4ZXNjc2kuY1xuKysrIGIvZHJpdmVycy9zY3NpL2FybS9hcnhlc2NzaS5jXG5AQCAtMzQ0LDIwICszNDQsOCBAQCBzdGF0aWMgc3RydWN0IGVjYXJkX2RyaXZlciBhcnhlc2NzaV9kcml2ZXIgPSB7XG4gXHR9LFxuIH07XG4gXG4tc3RhdGljIGludCBfX2luaXQgaW5pdF9hcnhlX3Njc2lfZHJpdmVyKHZvaWQpXG4te1xuLVx0cmV0dXJuIGVjYXJkX3JlZ2lzdGVyX2RyaXZlcihcdTAwMjZhcnhlc2NzaV9kcml2ZXIpO1xuLX1cbi1cbi1zdGF0aWMgdm9pZCBfX2V4aXQgZXhpdF9hcnhlX3Njc2lfZHJpdmVyKHZvaWQpXG4te1xuLVx0ZWNhcmRfcmVtb3ZlX2RyaXZlcihcdTAwMjZhcnhlc2NzaV9kcml2ZXIpO1xuLX1cbi1cbi1tb2R1bGVfaW5pdChpbml0X2FyeGVfc2NzaV9kcml2ZXIpO1xuLW1vZHVsZV9leGl0KGV4aXRfYXJ4ZV9zY3NpX2RyaXZlcik7XG4rbW9kdWxlX2RyaXZlcihhcnhlc2NzaV9kcml2ZXIsIGVjYXJkX3JlZ2lzdGVyX2RyaXZlciwgZWNhcmRfcmVtb3ZlX2RyaXZlcik7XG4gXG4gTU9EVUxFX0FVVEhPUihcIlN0ZWZhbiBIYW5za2VcIik7XG4gTU9EVUxFX0RFU0NSSVBUSU9OKFwiQVJYRVNDU0kgZHJpdmVyIGZvciBBY29ybiBtYWNoaW5lc1wiKTtcbiBNT0RVTEVfTElDRU5TRShcIkdQTFwiKTtcbi1cbmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYXJtL2N1bWFuYV8xLmMgYi9kcml2ZXJzL3Njc2kvYXJtL2N1bWFuYV8xLmNcbmluZGV4IGQxYTJhMjJmZmU4YzcuLjYyYzExMTY4ZjMyMTEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3Njc2kvYXJtL2N1bWFuYV8xLmNcbisrKyBiL2RyaXZlcnMvc2NzaS9hcm0vY3VtYW5hXzEuY1xuQEAgLTMyNCwxOCArMzI0LDcgQEAgc3RhdGljIHN0cnVjdCBlY2FyZF9kcml2ZXIgY3VtYW5hc2NzaTFfZHJpdmVyID0ge1xuIFx0fSxcbiB9O1xuIFxuLXN0YXRpYyBpbnQgX19pbml0IGN1bWFuYXNjc2lfaW5pdCh2b2lkKVxuLXtcbi1cdHJldHVybiBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIoXHUwMDI2Y3VtYW5hc2NzaTFfZHJpdmVyKTtcbi19XG4tXG4tc3RhdGljIHZvaWQgX19leGl0IGN1bWFuYXNjc2lfZXhpdCh2b2lkKVxuLXtcbi1cdGVjYXJkX3JlbW92ZV9kcml2ZXIoXHUwMDI2Y3VtYW5hc2NzaTFfZHJpdmVyKTtcbi19XG4tXG4tbW9kdWxlX2luaXQoY3VtYW5hc2NzaV9pbml0KTtcbi1tb2R1bGVfZXhpdChjdW1hbmFzY3NpX2V4aXQpO1xuK21vZHVsZV9kcml2ZXIoY3VtYW5hc2NzaTFfZHJpdmVyLCBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIsIGVjYXJkX3JlbW92ZV9kcml2ZXIpO1xuIFxuIE1PRFVMRV9ERVNDUklQVElPTihcIkN1bWFuYSBTQ1NJLTEgZHJpdmVyIGZvciBBY29ybiBtYWNoaW5lc1wiKTtcbiBNT0RVTEVfTElDRU5TRShcIkdQTFwiKTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYXJtL2N1bWFuYV8yLmMgYi9kcml2ZXJzL3Njc2kvYXJtL2N1bWFuYV8yLmNcbmluZGV4IGU0NjAwNjhmNjgzNGIuLjI0OTQ1ZTE3NjVhZTAgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3Njc2kvYXJtL2N1bWFuYV8yLmNcbisrKyBiL2RyaXZlcnMvc2NzaS9hcm0vY3VtYW5hXzIuY1xuQEAgLTUwNCwxOCArNTA0LDcgQEAgc3RhdGljIHN0cnVjdCBlY2FyZF9kcml2ZXIgY3VtYW5hc2NzaTJfZHJpdmVyID0ge1xuIFx0fSxcbiB9O1xuIFxuLXN0YXRpYyBpbnQgX19pbml0IGN1bWFuYXNjc2kyX2luaXQodm9pZClcbi17XG4tXHRyZXR1cm4gZWNhcmRfcmVnaXN0ZXJfZHJpdmVyKFx1MDAyNmN1bWFuYXNjc2kyX2RyaXZlcik7XG4tfVxuLVxuLXN0YXRpYyB2b2lkIF9fZXhpdCBjdW1hbmFzY3NpMl9leGl0KHZvaWQpXG4te1xuLVx0ZWNhcmRfcmVtb3ZlX2RyaXZlcihcdTAwMjZjdW1hbmFzY3NpMl9kcml2ZXIpO1xuLX1cbi1cbi1tb2R1bGVfaW5pdChjdW1hbmFzY3NpMl9pbml0KTtcbi1tb2R1bGVfZXhpdChjdW1hbmFzY3NpMl9leGl0KTtcbittb2R1bGVfZHJpdmVyKGN1bWFuYXNjc2kyX2RyaXZlciwgZWNhcmRfcmVnaXN0ZXJfZHJpdmVyLCBlY2FyZF9yZW1vdmVfZHJpdmVyKTtcbiBcbiBNT0RVTEVfQVVUSE9SKFwiUnVzc2VsbCBLaW5nXCIpO1xuIE1PRFVMRV9ERVNDUklQVElPTihcIkN1bWFuYSBTQ1NJLTIgZHJpdmVyIGZvciBBY29ybiBtYWNoaW5lc1wiKTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYXJtL2Vlc294LmMgYi9kcml2ZXJzL3Njc2kvYXJtL2Vlc294LmNcbmluZGV4IDk5YmU5ZGE4NzU3ZjQuLjgyM2FkMTc5ZjI0Y2MgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3Njc2kvYXJtL2Vlc294LmNcbisrKyBiL2RyaXZlcnMvc2NzaS9hcm0vZWVzb3guY1xuQEAgLTYyNiwxOCArNjI2LDcgQEAgc3RhdGljIHN0cnVjdCBlY2FyZF9kcml2ZXIgZWVzb3hzY3NpX2RyaXZlciA9IHtcbiBcdH0sXG4gfTtcbiBcbi1zdGF0aWMgaW50IF9faW5pdCBlZXNveF9pbml0KHZvaWQpXG4te1xuLVx0cmV0dXJuIGVjYXJkX3JlZ2lzdGVyX2RyaXZlcihcdTAwMjZlZXNveHNjc2lfZHJpdmVyKTtcbi19XG4tXG4tc3RhdGljIHZvaWQgX19leGl0IGVlc294X2V4aXQodm9pZClcbi17XG4tXHRlY2FyZF9yZW1vdmVfZHJpdmVyKFx1MDAyNmVlc294c2NzaV9kcml2ZXIpO1xuLX1cbi1cbi1tb2R1bGVfaW5pdChlZXNveF9pbml0KTtcbi1tb2R1bGVfZXhpdChlZXNveF9leGl0KTtcbittb2R1bGVfZHJpdmVyKGVlc294c2NzaV9kcml2ZXIsIGVjYXJkX3JlZ2lzdGVyX2RyaXZlciwgZWNhcmRfcmVtb3ZlX2RyaXZlcik7XG4gXG4gTU9EVUxFX0FVVEhPUihcIlJ1c3NlbGwgS2luZ1wiKTtcbiBNT0RVTEVfREVTQ1JJUFRJT04oXCJFRVNPWCAnRmFzdCcgU0NTSSBkcml2ZXIgZm9yIEFjb3JuIG1hY2hpbmVzXCIpO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9hcm0vb2FrLmMgYi9kcml2ZXJzL3Njc2kvYXJtL29hay5jXG5pbmRleCBkNjkyNDUwMDcwOTY3Li5hZWEyMWJiMTMzNTUyIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9zY3NpL2FybS9vYWsuY1xuKysrIGIvZHJpdmVycy9zY3NpL2FybS9vYWsuY1xuQEAgLTE5NCwyMCArMTk0LDggQEAgc3RhdGljIHN0cnVjdCBlY2FyZF9kcml2ZXIgb2Frc2NzaV9kcml2ZXIgPSB7XG4gXHR9LFxuIH07XG4gXG4tc3RhdGljIGludCBfX2luaXQgb2Frc2NzaV9pbml0KHZvaWQpXG4te1xuLVx0cmV0dXJuIGVjYXJkX3JlZ2lzdGVyX2RyaXZlcihcdTAwMjZvYWtzY3NpX2RyaXZlcik7XG4tfVxuLVxuLXN0YXRpYyB2b2lkIF9fZXhpdCBvYWtzY3NpX2V4aXQodm9pZClcbi17XG4tXHRlY2FyZF9yZW1vdmVfZHJpdmVyKFx1MDAyNm9ha3Njc2lfZHJpdmVyKTtcbi19XG4tXG4tbW9kdWxlX2luaXQob2Frc2NzaV9pbml0KTtcbi1tb2R1bGVfZXhpdChvYWtzY3NpX2V4aXQpO1xuK21vZHVsZV9kcml2ZXIob2Frc2NzaV9kcml2ZXIsIGVjYXJkX3JlZ2lzdGVyX2RyaXZlciwgZWNhcmRfcmVtb3ZlX2RyaXZlcik7XG4gXG4gTU9EVUxFX0FVVEhPUihcIlJ1c3NlbGwgS2luZ1wiKTtcbiBNT0RVTEVfREVTQ1JJUFRJT04oXCJPYWsgU0NTSSBkcml2ZXJcIik7XG4gTU9EVUxFX0xJQ0VOU0UoXCJHUExcIik7XG4tXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2FybS9wb3dlcnRlYy5jIGIvZHJpdmVycy9zY3NpL2FybS9wb3dlcnRlYy5jXG5pbmRleCA4MjNjNjVmZjZjMTJiLi42N2YwNzFhMDU0M2I2IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9zY3NpL2FybS9wb3dlcnRlYy5jXG4rKysgYi9kcml2ZXJzL3Njc2kvYXJtL3Bvd2VydGVjLmNcbkBAIC00MzIsMTggKzQzMiw3IEBAIHN0YXRpYyBzdHJ1Y3QgZWNhcmRfZHJpdmVyIHBvd2VydGVjc2NzaV9kcml2ZXIgPSB7XG4gXHR9LFxuIH07XG4gXG4tc3RhdGljIGludCBfX2luaXQgcG93ZXJ0ZWNzY3NpX2luaXQodm9pZClcbi17XG4tXHRyZXR1cm4gZWNhcmRfcmVnaXN0ZXJfZHJpdmVyKFx1MDAyNnBvd2VydGVjc2NzaV9kcml2ZXIpO1xuLX1cbi1cbi1zdGF0aWMgdm9pZCBfX2V4aXQgcG93ZXJ0ZWNzY3NpX2V4aXQodm9pZClcbi17XG4tXHRlY2FyZF9yZW1vdmVfZHJpdmVyKFx1MDAyNnBvd2VydGVjc2NzaV9kcml2ZXIpO1xuLX1cbi1cbi1tb2R1bGVfaW5pdChwb3dlcnRlY3Njc2lfaW5pdCk7XG4tbW9kdWxlX2V4aXQocG93ZXJ0ZWNzY3NpX2V4aXQpO1xuK21vZHVsZV9kcml2ZXIocG93ZXJ0ZWNzY3NpX2RyaXZlciwgZWNhcmRfcmVnaXN0ZXJfZHJpdmVyLCBlY2FyZF9yZW1vdmVfZHJpdmVyKTtcbiBcbiBNT0RVTEVfQVVUSE9SKFwiUnVzc2VsbCBLaW5nXCIpO1xuIE1PRFVMRV9ERVNDUklQVElPTihcIlBvd2VydGVjIFNDU0kgZHJpdmVyXCIpO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvdHR5L3NlcmlhbC84MjUwLzgyNTBfYWNvcm4uYyBiL2RyaXZlcnMvdHR5L3NlcmlhbC84MjUwLzgyNTBfYWNvcm4uY1xuaW5kZXggZmI1OTYyNjJiOWM3MS4uZjYzNGRlNmUxNTlmNCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvdHR5L3NlcmlhbC84MjUwLzgyNTBfYWNvcm4uY1xuKysrIGIvZHJpdmVycy90dHkvc2VyaWFsLzgyNTAvODI1MF9hY29ybi5jXG5AQCAtMTIwLDE5ICsxMjAsOCBAQCBzdGF0aWMgc3RydWN0IGVjYXJkX2RyaXZlciBzZXJpYWxfY2FyZF9kcml2ZXIgPSB7XG4gXHR9LFxuIH07XG4gXG4tc3RhdGljIGludCBfX2luaXQgc2VyaWFsX2NhcmRfaW5pdCh2b2lkKVxuLXtcbi1cdHJldHVybiBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIoXHUwMDI2c2VyaWFsX2NhcmRfZHJpdmVyKTtcbi19XG4tXG4tc3RhdGljIHZvaWQgX19leGl0IHNlcmlhbF9jYXJkX2V4aXQodm9pZClcbi17XG4tXHRlY2FyZF9yZW1vdmVfZHJpdmVyKFx1MDAyNnNlcmlhbF9jYXJkX2RyaXZlcik7XG4tfVxuK21vZHVsZV9kcml2ZXIoc2VyaWFsX2NhcmRfZHJpdmVyLCBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIsIGVjYXJkX3JlbW92ZV9kcml2ZXIpO1xuIFxuIE1PRFVMRV9BVVRIT1IoXCJSdXNzZWxsIEtpbmdcIik7XG4gTU9EVUxFX0RFU0NSSVBUSU9OKFwiQWNvcm4gODI1MC1jb21wYXRpYmxlIHNlcmlhbCBwb3J0IGV4cGFuc2lvbiBjYXJkIGRyaXZlclwiKTtcbiBNT0RVTEVfTElDRU5TRShcIkdQTFwiKTtcbi1cbi1tb2R1bGVfaW5pdChzZXJpYWxfY2FyZF9pbml0KTtcbi1tb2R1bGVfZXhpdChzZXJpYWxfY2FyZF9leGl0KTtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA2VDIwOjIxOjM4Ljc1MTM3OTkwNVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjUwNjIzMjU2MTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIFRoaXMgUGF0Y2g6IEFuIEFjb3JuIEVjYXJkIERlZXAgRGl2ZSoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gRmlyc3QgdGhpbmdzIGZpcnN0LCB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZSBpcyBhbWQ2NCwgYnV0IHRoZSBwYXRjaCBpdHNlbGYgc2VlbXMgdG8gYmUgZGlnZ2luZyBpbnRvIHNvbWUgcG90ZW50aWFsbHkgKnZlcnkqIG9sZCBjb2RlLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgaW1wbGljYXRpb25zIG9mIHRoaXMuXG5cblRoZSBmaWxlcyBsaXN0ZWQg4oCTIGBkcml2ZXJzL2F0YS9wYXRhX2ljc2lkZS5jYCwgYSBmZXcgRXRoZXJuZXQgZHJpdmVycyAoYGV0aGVyMS5jYCwgYGV0aGVyMy5jYCksIGFuZCBhIHNsZXcgb2YgU0NTSSBkcml2ZXJzIChgYWNvcm5zY3NpLmNgLCBldGMuIOKAkyB0aGUgd2hvbGUgbG90KSDigJMgdGhleSBhbGwgc2VlbSB0byBiZSB0b3VjaGluZyBBY29ybiBFeHBhbnNpb24gQ2FyZCAoZWNhcmQpIGRyaXZlcnMsIGdpdmVuIHRoZSBtZW50aW9uIG9mIGBzdHJ1Y3QgZWNhcmRfZHJpdmVyYC4gTXkgc3BpZGV5LXNlbnNlIGlzIHRpbmdsaW5nOyBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGF0J3MgYWN0dWFsbHkgY2hhbmdpbmcgaW4gdGhlc2UgZmlsZXMsIGFuZCB3aHkgdGhleSdyZSByZWxldmFudCB0byB0aGUgY3VycmVudCB0YXJnZXQgYXJjaGl0ZWN0dXJlLlxuXG5HaXZlbiB0aGF0IHRoZXNlIGFyZSBhbGwgZWNhcmQgZHJpdmVycywgSSBzaG91bGQgY2hlY2sgdGhlIEtjb25maWcgYW5kIGFyY2hpdGVjdHVyZSBkZXBlbmRlbmNpZXMgZm9yIGJvdGggdGhlIGVjYXJkIGluZnJhc3RydWN0dXJlIGl0c2VsZiAqYW5kKiB0aGVzZSBzcGVjaWZpYyBkcml2ZXJzLiBJJ20gZ29pbmcgdG8gdXNlIGBncmVwcGVyYCB0byBxdWlja2x5IGluc3BlY3QgdGhlIEtjb25maWcgZmlsZXMgYXNzb2NpYXRlZCB3aXRoIHRoZXNlIGRyaXZlcnMgYW5kIHRoZSBlY2FyZCBzdWJzeXN0ZW0gdG8gdW5kZXJzdGFuZCB0aGUgY29udGV4dCBhbmQgY29uZGl0aW9uYWxzLiBIb3BlZnVsbHksIHRoYXQgd2lsbCBnaXZlIG1lIHNvbWUgY2x1ZXMgYWJvdXQgd2hhdCdzIGJlaW5nIGVuYWJsZWQsIGRpc2FibGVkLCBvciBtb2RpZmllZC4gVGhpcyBjb3VsZCBiZSBhIHJlZmFjdG9yaW5nIGVmZm9ydCwgYSBidWcgZml4LCBvciBzb21ldGhpbmcgZmFyIG1vcmUgaW52b2x2ZWQsIGFuZCBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGljaCBpdCBpcy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2h5IHRoaXMgb2xkIGNvZGUgaXMgZXZlbiBiZWluZyB0b3VjaGVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1OTE5LCJPdXRwdXRUb2tlbnMiOjUyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjY5LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDZUMjA6MjE6NDMuODEzNzA3ODE4WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMzNDM0NjY2MjksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnLiooUEFUQV9JQ1NJREV8QVJNX0VUSEVSMXxBUk1fRVRIRVIzfFNDU0lfQUNPUk5TQ1NJfFNFUklBTF84MjUwX0FDT1JOKVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL2F0YS9LY29uZmlnPTc0OT1jb25maWcgUEFUQV9IUFQzWDNfRE1BXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnLTc1Ni1cXG5kcml2ZXJzL2F0YS9LY29uZmlnOjc1Nzpjb25maWcgUEFUQV9JQ1NJREVcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTc1OC1cXHR0cmlzdGF0ZSBcXFwiQWNvcm4gSUNTIFBBVEEgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2k4MjV4eC9LY29uZmlnPTE4PWlmIE5FVF9WRU5ET1JfSTgyNVhYXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaTgyNXh4L0tjb25maWctMTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaTgyNXh4L0tjb25maWc6MjA6Y29uZmlnIEFSTV9FVEhFUjFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pODI1eHgvS2NvbmZpZy0yMS1cXHR0cmlzdGF0ZSBcXFwiQWNvcm4gRXRoZXIxIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZWVxL0tjb25maWc9MTg9aWYgTkVUX1ZFTkRPUl9TRUVRXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2VlcS9LY29uZmlnLTE5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NlZXEvS2NvbmZpZzoyMDpjb25maWcgQVJNX0VUSEVSM1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NlZXEvS2NvbmZpZy0yMS1cXHR0cmlzdGF0ZSBcXFwiQWNvcm4vQU5UIEV0aGVyMyBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9zY3NpL2FybS9LY29uZmlnLTQtI1xcbmRyaXZlcnMvc2NzaS9hcm0vS2NvbmZpZzo1OmNvbmZpZyBTQ1NJX0FDT1JOU0NTSV8zXFxuZHJpdmVycy9zY3NpL2FybS9LY29uZmlnLTYtXFx0dHJpc3RhdGUgXFxcIkFjb3JuIFNDU0kgY2FyZCAoYWthMzApIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3Njc2kvYXJtL0tjb25maWctMTItXFxuZHJpdmVycy9zY3NpL2FybS9LY29uZmlnOjEzOmNvbmZpZyBTQ1NJX0FDT1JOU0NTSV9TWU5DXFxuZHJpdmVycy9zY3NpL2FybS9LY29uZmlnLTE0LVxcdGJvb2wgXFxcIlN1cHBvcnQgU0NTSSAyIFN5bmNocm9ub3VzIFRyYW5zZmVyc1xcXCJcXG4tLVxcbmRyaXZlcnMvdHR5L3NlcmlhbC84MjUwL0tjb25maWc9MzI1PWNvbmZpZyBTRVJJQUxfODI1MF9BU1BFRURfVlVBUlRcXG4tLVxcbmRyaXZlcnMvdHR5L3NlcmlhbC84MjUwL0tjb25maWctMzQxLVxcbmRyaXZlcnMvdHR5L3NlcmlhbC84MjUwL0tjb25maWc6MzQyOmNvbmZpZyBTRVJJQUxfODI1MF9BQ09STlxcbmRyaXZlcnMvdHR5L3NlcmlhbC84MjUwL0tjb25maWctMzQzLVxcdHRyaXN0YXRlIFxcXCJBY29ybiBleHBhbnNpb24gY2FyZCBzZXJpYWwgcG9ydCBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNlQyMDoyMTo0Ny4xNTcxODAyNDdaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoyNzAzNTM2NTg5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBkaXZlIGludG8gdGhpcy4gSSBuZWVkIHRvIGdldCBhIGhhbmRsZSBvbiB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGF2YWlsYWJsZSBpbiBhIGZldyBrZXkgYXJlYXMsIGFuZCBpdCBsb29rcyBsaWtlIGEgZ29vZCBzdGFydGluZyBwb2ludCBpcyB0aGUgYEtjb25maWdgIGZpbGVzLlxuXG4qKk15IENvbmZpZ3VyYXRpb24gSHVudCBCZWdpbnMqKlxuXG5JJ20gdGhpbmtpbmcgSSBzaG91bGQgc3RhcnQgYnkgbG9va2luZyBhdCBhIGZldyBkaWZmZXJlbnQgZHJpdmVyIHNlY3Rpb25zLiBGaXJzdCwgbGV0J3MgdGFrZSBhIGxvb2sgYXQgdGhlIEFUQSBkcml2ZXJzLCBzcGVjaWZpY2FsbHkgaW4gYGRyaXZlcnMvYXRhL0tjb25maWdgLiBJdCdzIGVzc2VudGlhbCB0byB1bmRlcnN0YW5kIHRoZSBjb25maWd1cmFibGUgYXNwZWN0cyBvZiB0aG9zZSBzdG9yYWdlIGNvbnRyb2xsZXJzLiBUaGVuLCBJJ2xsIG1vdmUgb24gdG8gdGhlIG5ldHdvcmsgc2lkZSwgc28gSSdtIGFsc28gZ29pbmcgdG8gY2hlY2sgb3V0IGBkcml2ZXJzL25ldC9ldGhlcm5ldC9pODI1eHgvS2NvbmZpZ2AuIFRoZSBgaTgyNXh4YCBpcyBhIGNvbW1vbiBuZXR3b3JrIGNvbnRyb2xsZXIsIHNvIEkgbmVlZCB0byBrbm93IHRoZSBvcHRpb25zIHRoZXJlLiBOZXh0LCB0byBnZXQgYSBicm9hZCB2aWV3LCBJJ2xsIHNlZSB3aGF0J3MgY29uZmlndXJhYmxlIGluIHRoZSBTQ1NJIHN1YnN5c3RlbSwgd2l0aCBgZHJpdmVycy9zY3NpL2FybS9LY29uZmlnYC4gRmluYWxseSwgc2VyaWFsIGNvbW11bmljYXRpb25zIGFyZSBhbHdheXMgaW1wb3J0YW50LCBzbyBJJ2xsIGNoZWNrIGBkcml2ZXJzL3R0eS9zZXJpYWwvODI1MC9LY29uZmlnYCB0byByZXZpZXcgdGhlIHNlcmlhbCBwb3J0IGRyaXZlcnMuIFRoaXMgc2hvdWxkIGdpdmUgbWUgYSBnb29kIG92ZXJ2aWV3IG9mIHRoZSBLY29uZmlnIHN0cnVjdHVyZXMgaW4gdGhlc2UgZGlmZmVyZW50IGRyaXZlcnMuIFRoaXMgaXMgdGhlIGJlc3QgcGxhY2UgdG8gc3RhcnQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjcwODksIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wNlQyMDoyMTo0OS44NjA3MjAyMTZaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzAzODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9hdGEvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiA3NTYsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiA3NTY6XFx0XFxuIDc1NzpcXHRjb25maWcgUEFUQV9JQ1NJREVcXG4gNzU4OlxcdFxcdHRyaXN0YXRlIFxcXCJBY29ybiBJQ1MgUEFUQSBzdXBwb3J0XFxcIlxcbiA3NTk6XFx0XFx0ZGVwZW5kcyBvbiBBUk0gXFx1MDAyNlxcdTAwMjYgQVJDSF9BQ09STlxcbiA3NjA6XFx0XFx0c2VsZWN0IFBBVEFfVElNSU5HU1xcbiA3NjE6XFx0XFx0aGVscFxcbiA3NjI6XFx0XFx0ICBPbiBBY29ybiBzeXN0ZW1zLCBzYXkgWSBoZXJlIGlmIHlvdSB3aXNoIHRvIHVzZSB0aGUgSUNTIFBBVEFcXG4gNzYzOlxcdFxcdCAgaW50ZXJmYWNlIGNhcmQuICBUaGlzIGlzIG5vdCByZXF1aXJlZCBmb3IgSUNTIHBhcnRpdGlvbiBzdXBwb3J0LlxcbiA3NjQ6XFx0XFx0ICBJZiB5b3UgYXJlIHVuc3VyZSwgc2F5IE4gdG8gdGhpcy5cXG4gNzY1OlxcdFxcbiA3NjY6XFx0Y29uZmlnIFBBVEFfSU1YXFxuIDc2NzpcXHRcXHR0cmlzdGF0ZSBcXFwiUEFUQSBzdXBwb3J0IGZvciBGcmVlc2NhbGUgaU1YXFxcIlxcbiA3Njg6XFx0XFx0ZGVwZW5kcyBvbiBBUkNIX01YQyB8fCBDT01QSUxFX1RFU1RcXG4gNzY5OlxcdFxcdHNlbGVjdCBQQVRBX1RJTUlOR1NcXG4gNzcwOlxcdFxcdGhlbHBcXG4gNzcxOlxcdFxcdCAgVGhpcyBvcHRpb24gZW5hYmxlcyBzdXBwb3J0IGZvciB0aGUgUEFUQSBob3N0IGF2YWlsYWJsZSBvbiBGcmVlc2NhbGVcXG4gNzcyOlxcdCAgICAgICAgICBpTVggU29Dcy5cXG4gNzczOlxcdFxcbiA3NzQ6XFx0XFx0ICBJZiB1bnN1cmUsIHNheSBOLlxcbiA3NzU6XFx0XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA2VDIwOjIxOjQ5Ljg2MDk1NDExNloiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjE2NTI0NDI4ODQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIGRpdmUgaW50byB0aGlzLiBJIG5lZWQgdG8gZ2V0IGEgaGFuZGxlIG9uIHRoZSBrZXJuZWwgY29uZmlndXJhdGlvbiBmaWxlcyBmb3IgbmV0d29yayBhbmQgc2VyaWFsIGRyaXZlcnMsIHNwZWNpZmljYWxseS4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGV4YW1pbmUgdGhlc2UgS2NvbmZpZyBmaWxlczogKipgZHJpdmVycy9uZXQvZXRoZXJuZXQvaTgyNXh4L0tjb25maWdgKiosICoqYGRyaXZlcnMvbmV0L2V0aGVybmV0L3NlZXEvS2NvbmZpZ2AqKiwgKipgZHJpdmVycy9zY3NpL2FybS9LY29uZmlnYCoqLCBhbmQgKipgZHJpdmVycy90dHkvc2VyaWFsLzgyNTAvS2NvbmZpZ2AqKi4gSSdtIHByb2JhYmx5IGxvb2tpbmcgZm9yIGRlcGVuZGVuY2llcywgZGVmYXVsdCBjb25maWd1cmF0aW9ucywgbWF5YmUgc29tZSBwb3RlbnRpYWwgY29uZmxpY3RzIG9yIGFyZWFzIHdoZXJlIHNpbWlsYXIgZnVuY3Rpb25hbGl0eSBtaWdodCBvdmVybGFwLiBUaGlzIHNob3VsZCBnaXZlIG1lIGEgZ29vZCBvdmVydmlldyBvZiBob3cgdGhlc2Ugc3BlY2lmaWMgZHJpdmVycyBhcmUgY29uZmlndXJlZCB3aXRoaW4gdGhlIGJyb2FkZXIga2VybmVsIGNvbnRleHQuIEknbSBob3BpbmcgdG8gcXVpY2tseSBpZGVudGlmeSBhbnkgYXJlYXMgdGhhdCBtaWdodCByZXF1aXJlIHNwZWNpYWwgYXR0ZW50aW9uIG9yIGZ1cnRoZXIgaW52ZXN0aWdhdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6NzczMywiT3V0cHV0VG9rZW5zIjo0MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjYxLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDZUMjA6MjE6NTEuNTEzMzk5NzkxWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjA3MjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvaTgyNXh4L0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMTgsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgMTg6XFx0aWYgTkVUX1ZFTkRPUl9JODI1WFhcXG4gIDE5OlxcdFxcbiAgMjA6XFx0Y29uZmlnIEFSTV9FVEhFUjFcXG4gIDIxOlxcdFxcdHRyaXN0YXRlIFxcXCJBY29ybiBFdGhlcjEgc3VwcG9ydFxcXCJcXG4gIDIyOlxcdFxcdGRlcGVuZHMgb24gQVJNIFxcdTAwMjZcXHUwMDI2IEFSQ0hfQUNPUk5cXG4gIDIzOlxcdFxcdGhlbHBcXG4gIDI0OlxcdFxcdCAgSWYgeW91IGhhdmUgYW4gQWNvcm4gc3lzdGVtIHdpdGggb25lIG9mIHRoZXNlIChBS0EyNSkgbmV0d29yayBjYXJkcyxcXG4gIDI1OlxcdFxcdCAgeW91IHNob3VsZCBzYXkgWSB0byB0aGlzIG9wdGlvbiBpZiB5b3Ugd2lzaCB0byB1c2UgaXQgd2l0aCBMaW51eC5cXG4gIDI2OlxcdFxcbiAgMjc6XFx0Y29uZmlnIEJWTUU2MDAwX05FVFxcbiAgMjg6XFx0XFx0dHJpc3RhdGUgXFxcIkJWTUU2MDAwIEV0aGVybmV0IHN1cHBvcnRcXFwiXFxuICAyOTpcXHRcXHRkZXBlbmRzIG9uIEJWTUU2MDAwXFxuICAzMDpcXHRcXHRoZWxwXFxuICAzMTpcXHRcXHQgIFRoaXMgaXMgdGhlIGRyaXZlciBmb3IgdGhlIEV0aGVybmV0IGludGVyZmFjZSBvbiBCVk1FNDAwMCBhbmRcXG4gIDMyOlxcdFxcdCAgQlZNRTYwMDAgVk1FIGJvYXJkcy4gIFNheSBZIGhlcmUgdG8gaW5jbHVkZSB0aGUgZHJpdmVyIGZvciB0aGlzIGNoaXBcXG4gIDMzOlxcdFxcdCAgaW4geW91ciBrZXJuZWwuXFxuICAzNDpcXHRcXHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmUuXFxuICAzNTpcXHRcXG4gIDM2OlxcdGNvbmZpZyBMQVNJXzgyNTk2XFxuICAzNzpcXHRcXHR0cmlzdGF0ZSBcXFwiTGFzaSBldGhlcm5ldFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDZUMjA6MjE6NTEuNTEzNDYyMzJaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoxODg3MjMwNDIyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSBLY29uZmlnIGZpbGVzLCBhc3N1bWluZyBJJ20gd2VsbC12ZXJzZWQgaW4ga2VybmVsIGNvbmZpZ3VyYXRpb246XG5cbioqRGl2aW5nIGludG8gdGhlIEtlcm5lbCBDb25maWd1cmF0aW9uIExhbmRzY2FwZSoqXG5cbkFscmlnaHQsIHRpbWUgdG8gZ2V0IG15IGhhbmRzIGRpcnR5LiBJIG5lZWQgdG8gZ2V0IGEgYmV0dGVyIGhhbmRsZSBvbiB0aGUgZGVwZW5kZW5jaWVzIGFuZCBidWlsZCBvcHRpb25zIGZvciBzcGVjaWZpYyBrZXJuZWwgc3Vic3lzdGVtcy4gTGV0J3Mgc3RhcnQgYnkgbG9va2luZyBhdCBgZHJpdmVycy9uZXQvZXRoZXJuZXQvc2VlcS9LY29uZmlnYCwgYGRyaXZlcnMvc2NzaS9hcm0vS2NvbmZpZ2AsIGFuZCBgZHJpdmVycy90dHkvc2VyaWFsLzgyNTAvS2NvbmZpZ2AuIFRoZXNlIGFyZSB0aHJlZSB2ZXJ5IGRpZmZlcmVudCBhcmVhcywgc28gSSBhbnRpY2lwYXRlIGRpc3RpbmN0IGNvbmZpZ3VyYXRpb24gcGFyYWRpZ21zIGF0IHBsYXkuIEknbSBob3BpbmcgdG8gdW5kZXJzdGFuZCBob3cgdGhvc2UgdGhyZWUgYXJlYXMgYXJlIGNvbnN0cnVjdGVkLiBJIGhhdmUgdG8gdW5kZXJzdGFuZCB0aGUgaW50cmljYWNpZXMgb2YgZWFjaCBjb25maWd1cmF0aW9uIGZpbGUgYW5kIHRoZSBwb3RlbnRpYWwgaW1wbGljYXRpb25zIG9mIHZhcmlvdXMgc2VsZWN0aW9ucy4gVGhpcyBtZWFucyB1bmRlcnN0YW5kaW5nIHRoZSByZWxhdGlvbnNoaXBzIGJldHdlZW4gdGhlIGZlYXR1cmVzLCB0aGUgaGFyZHdhcmUgdGhlc2UgZHJpdmVycyBzdXBwb3J0LCBhbnkgcG90ZW50aWFsIGNvbmZsaWN0cywgYW5kIGhvdyB0aGV5IGludGVyYWN0IHdpdGggb3RoZXIgcGFydHMgb2YgdGhlIGtlcm5lbC4gSG9wZWZ1bGx5LCB0aGV5IHdpbGwgZ2l2ZSBtZSBzb21lIGluc2lnaHQgaW50byBob3cgdGhlIGtlcm5lbCBpcyBjb25zdHJ1Y3RlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6ODMxMiwiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ0LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDZUMjA6MjE6NTMuNDAwNjk1NDcyWiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYzMDUwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3NlZXEvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxOCxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAxODpcXHRpZiBORVRfVkVORE9SX1NFRVFcXG4gIDE5OlxcdFxcbiAgMjA6XFx0Y29uZmlnIEFSTV9FVEhFUjNcXG4gIDIxOlxcdFxcdHRyaXN0YXRlIFxcXCJBY29ybi9BTlQgRXRoZXIzIHN1cHBvcnRcXFwiXFxuICAyMjpcXHRcXHRkZXBlbmRzIG9uIEFSTSBcXHUwMDI2XFx1MDAyNiBBUkNIX0FDT1JOXFxuICAyMzpcXHRcXHRoZWxwXFxuICAyNDpcXHRcXHQgIElmIHlvdSBoYXZlIGFuIEFjb3JuIHN5c3RlbSB3aXRoIG9uZSBvZiB0aGVzZSBuZXR3b3JrIGNhcmRzLCB5b3VcXG4gIDI1OlxcdFxcdCAgc2hvdWxkIHNheSBZIHRvIHRoaXMgb3B0aW9uIGlmIHlvdSB3aXNoIHRvIHVzZSBpdCB3aXRoIExpbnV4LlxcbiAgMjY6XFx0XFxuICAyNzpcXHRjb25maWcgU0dJU0VFUVxcbiAgMjg6XFx0XFx0dHJpc3RhdGUgXFxcIlNHSSBTZWVxIGV0aGVybmV0IGNvbnRyb2xsZXIgc3VwcG9ydFxcXCJcXG4gIDI5OlxcdFxcdGRlcGVuZHMgb24gU0dJX0hBU19TRUVRXFxuICAzMDpcXHRcXHRoZWxwXFxuICAzMTpcXHRcXHQgIFNheSBZIGhlcmUgaWYgeW91IGhhdmUgYW4gU2VlcSBiYXNlZCBFdGhlcm5ldCBuZXR3b3JrIGNhcmQuIFRoaXMgaXNcXG4gIDMyOlxcdFxcdCAgdXNlZCBpbiBtYW55IFNpbGljb24gR3JhcGhpY3MgbWFjaGluZXMuXFxuICAzMzpcXHRcXG4gIDM0OlxcdGVuZGlmICMgTkVUX1ZFTkRPUl9TRUVRXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA2VDIwOjIxOjUzLjQwMDc2MDkzMloiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoxOTYwOTg1NzUwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZTpcblxuKipJbnZlc3RpZ2F0aW5nIFBvdGVudGlhbCBDb25maWd1cmF0aW9uIENvbmZsaWN0cyoqXG5cbk9rYXksIHRpbWUgdG8gZGlnIGluLiBHaXZlbiB0aGUgcmVjZW50IGlzc3VlIHJlcG9ydHMsIEkgc3VzcGVjdCB3ZSBtaWdodCBoYXZlIGEgY29uZmlndXJhdGlvbiBjb25mbGljdCBidWJibGluZyB1cCBiZXR3ZWVuIHRoZSBTQ1NJIGFuZCBzZXJpYWwgcG9ydCBkcml2ZXJzIG9uIEFSTSBwbGF0Zm9ybXMuIFRvIGdldCBhIGNsZWFyIHBpY3R1cmUgb2YgdGhlIHNpdHVhdGlvbiwgSSBuZWVkIHRvIGNoZWNrIHRoZSBLY29uZmlnIGZpbGVzIGZvciBib3RoLiBJJ2xsIHN0YXJ0IHdpdGggYGRyaXZlcnMvc2NzaS9hcm0vS2NvbmZpZ2AgdG8gdW5kZXJzdGFuZCB0aGUgU0NTSSBkcml2ZXIgY29uZmlndXJhdGlvbiBvcHRpb25zIHNwZWNpZmljIHRvIEFSTS4gVGhlbiwgSSdsbCBtb3ZlIG9uIHRvIGBkcml2ZXJzL3R0eS9zZXJpYWwvODI1MC9LY29uZmlnYCB0byBhbmFseXplIHRoZSBzZXJpYWwgcG9ydCBjb25maWd1cmF0aW9uLCBmb2N1c2luZyBvbiBob3cgaXQgbWlnaHQgaW50ZXJhY3Qgd2l0aCB0aGUgU0NTSSBzZXR1cCwgZXNwZWNpYWxseSBpZiB0aGVyZSdzIGFueSBvdmVybGFwIG9yIHNoYXJlZCByZXNvdXJjZXMsIHdoaWNoIGlzIHdoZXJlIHRoZSBsaWtlbHkgcHJvYmxlbSBpcy4gVGhpcyBzaG91bGQgaGVscCBtZSBwaW5wb2ludCBhbnkgcG90ZW50aWFsIG1pc2NvbmZpZ3VyYXRpb25zIHRoYXQgY291bGQgYmUgY29udHJpYnV0aW5nIHRvIHRoZSBpc3N1ZSwgb3IgZXZlbiBpZGVudGlmeSBkZXBlbmRlbmNpZXMgSSBoYWRuJ3QgY29uc2lkZXJlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6ODgzOCwiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMxLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDZUMjA6MjE6NTUuMzYxNzUxNDMyWiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExODQ0MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL3Njc2kvYXJtL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogMTAwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuICAgMjpcXHQjXFxuICAgMzpcXHQjIFNDU0kgZHJpdmVyIGNvbmZpZ3VyYXRpb24gZm9yIEFjb3JuXFxuICAgNDpcXHQjXFxuICAgNTpcXHRjb25maWcgU0NTSV9BQ09STlNDU0lfM1xcbiAgIDY6XFx0XFx0dHJpc3RhdGUgXFxcIkFjb3JuIFNDU0kgY2FyZCAoYWthMzApIHN1cHBvcnRcXFwiXFxuICAgNzpcXHRcXHRkZXBlbmRzIG9uIEFSQ0hfQUNPUk4gXFx1MDAyNlxcdTAwMjYgU0NTSVxcbiAgIDg6XFx0XFx0c2VsZWN0IFNDU0lfU1BJX0FUVFJTXFxuICAgOTpcXHRcXHRoZWxwXFxuICAxMDpcXHRcXHQgIFRoaXMgZW5hYmxlcyBzdXBwb3J0IGZvciB0aGUgQWNvcm4gU0NTSSBjYXJkIChha2EzMCkuIElmIHlvdSBoYXZlIGFuXFxuICAxMTpcXHRcXHQgIEFjb3JuIHN5c3RlbSB3aXRoIG9uZSBvZiB0aGVzZSwgc2F5IFkuIElmIHVuc3VyZSwgc2F5IE4uXFxuICAxMjpcXHRcXG4gIDEzOlxcdGNvbmZpZyBTQ1NJX0FDT1JOU0NTSV9TWU5DXFxuICAxNDpcXHRcXHRib29sIFxcXCJTdXBwb3J0IFNDU0kgMiBTeW5jaHJvbm91cyBUcmFuc2ZlcnNcXFwiXFxuICAxNTpcXHRcXHRkZXBlbmRzIG9uIFNDU0lfQUNPUk5TQ1NJXzNcXG4gIDE2OlxcdFxcdGhlbHBcXG4gIDE3OlxcdFxcdCAgU2F5IFkgaGVyZSB0byBlbmFibGUgc3luY2hyb25vdXMgdHJhbnNmZXIgbmVnb3RpYXRpb24gd2l0aCBhbGxcXG4gIDE4OlxcdFxcdCAgdGFyZ2V0cyBvbiB0aGUgQWNvcm4gU0NTSSBjYXJkLlxcbiAgMTk6XFx0XFxuICAyMDpcXHRcXHQgIEluIGdlbmVyYWwsIHRoaXMgaW1wcm92ZXMgcGVyZm9ybWFuY2U7IGhvd2V2ZXIgc29tZSBTQ1NJIGRldmljZXNcXG4gIDIxOlxcdFxcdCAgZG9uJ3QgaW1wbGVtZW50IGl0IHByb3Blcmx5LCBzbyB0aGUgc2FmZSBhbnN3ZXIgaXMgTi5cXG4gIDIyOlxcdFxcbiAgMjM6XFx0Y29uZmlnIFNDU0lfQVJYRVNDU0lcXG4gIDI0OlxcdFxcdHRyaXN0YXRlIFxcXCJBUlhFIFNDU0kgc3VwcG9ydFxcXCJcXG4gIDI1OlxcdFxcdGRlcGVuZHMgb24gQVJDSF9BQ09STiBcXHUwMDI2XFx1MDAyNiBTQ1NJXFxuICAyNjpcXHRcXHRoZWxwXFxuICAyNzpcXHRcXHQgIEFyb3VuZCAxOTkxLCBBcnhlIFN5c3RlbXMgTGltaXRlZCByZWxlYXNlZCBhIGhpZ2ggZGVuc2l0eSBmbG9wcHlcXG4gIDI4OlxcdFxcdCAgZGlzYyBpbnRlcmZhY2UgZm9yIHRoZSBBY29ybiBBcmNoaW1lZGVzIHJhbmdlLCB0byBhbGxvdyB0aGUgdXNlIG9mXFxuICAyOTpcXHRcXHQgIEhEIGRpc2NzIGZyb20gdGhlIHRoZW4gbmV3IEE1MDAwIG9uIGVhcmxpZXIgbW9kZWxzLiBUaGlzIGludGVyZmFjZVxcbiAgMzA6XFx0XFx0ICB3YXMgZWl0aGVyIHNvbGQgb24gaXRzIG93biBvciB3aXRoIGFuIGludGVncmFsIFNDU0kgY29udHJvbGxlci5cXG4gIDMxOlxcdFxcdCAgVGVjaG5pY2FsIGRldGFpbHMgb24gdGhpcyBOQ1I1M2M5NC1iYXNlZCBkZXZpY2UgYXJlIGF2YWlsYWJsZSBhdFxcbiAgMzI6XFx0XFx0ICBcXHUwMDNjaHR0cDovL3d3dy5jcnl0b24uZGVtb24uY28udWsvYWNvcm5iaXRzL3Njc2lfYXJ4ZS5odG1sXFx1MDAzZVxcbiAgMzM6XFx0XFx0ICBTYXkgWSBoZXJlIHRvIGNvbXBpbGUgaW4gc3VwcG9ydCBmb3IgdGhlIFNDU0kgY29udHJvbGxlci5cXG4gIDM0OlxcdFxcbiAgMzU6XFx0Y29uZmlnIFNDU0lfQ1VNQU5BXzJcXG4gIDM2OlxcdFxcdHRyaXN0YXRlIFxcXCJDdW1hbmFTQ1NJIElJIHN1cHBvcnRcXFwiXFxuICAzNzpcXHRcXHRkZXBlbmRzIG9uIEFSQ0hfQUNPUk4gXFx1MDAyNlxcdTAwMjYgU0NTSVxcbiAgMzg6XFx0XFx0aGVscFxcbiAgMzk6XFx0XFx0ICBUaGlzIGVuYWJsZXMgc3VwcG9ydCBmb3IgdGhlIEN1bWFuYSBTQ1NJIElJIGNhcmQuIElmIHlvdSBoYXZlIGFuXFxuICA0MDpcXHRcXHQgIEFjb3JuIHN5c3RlbSB3aXRoIG9uZSBvZiB0aGVzZSwgc2F5IFkuIElmIHVuc3VyZSwgc2F5IE4uXFxuICA0MTpcXHRcXG4gIDQyOlxcdGNvbmZpZyBTQ1NJX0VFU09YU0NTSVxcbiAgNDM6XFx0XFx0dHJpc3RhdGUgXFxcIkVFU09YIHN1cHBvcnRcXFwiXFxuICA0NDpcXHRcXHRkZXBlbmRzIG9uIEFSQ0hfQUNPUk4gXFx1MDAyNlxcdTAwMjYgU0NTSVxcbiAgNDU6XFx0XFx0aGVscFxcbiAgNDY6XFx0XFx0ICBUaGlzIGVuYWJsZXMgc3VwcG9ydCBmb3IgdGhlIEVFU09YIFNDU0kgY2FyZC4gSWYgeW91IGhhdmUgYW4gQWNvcm5cXG4gIDQ3OlxcdFxcdCAgc3lzdGVtIHdpdGggb25lIG9mIHRoZXNlLCBzYXkgWSwgb3RoZXJ3aXNlIHNheSBOLlxcbiAgNDg6XFx0XFxuICA0OTpcXHRjb25maWcgU0NTSV9QT1dFUlRFQ1NDU0lcXG4gIDUwOlxcdFxcdHRyaXN0YXRlIFxcXCJQb3dlclRlYyBzdXBwb3J0XFxcIlxcbiAgNTE6XFx0XFx0ZGVwZW5kcyBvbiBBUkNIX0FDT1JOIFxcdTAwMjZcXHUwMDI2IFNDU0lcXG4gIDUyOlxcdFxcdGhlbHBcXG4gIDUzOlxcdFxcdCAgVGhpcyBlbmFibGVzIHN1cHBvcnQgZm9yIHRoZSBQb3dlcnRlYyBTQ1NJIGNhcmQgb24gQWNvcm4gc3lzdGVtcy4gSWZcXG4gIDU0OlxcdFxcdCAgeW91IGhhdmUgb25lIG9mIHRoZXNlLCBzYXkgWS4gSWYgdW5zdXJlLCBzYXkgTi5cXG4gIDU1OlxcdFxcbiAgNTY6XFx0Y29tbWVudCBcXFwiVGhlIGZvbGxvd2luZyBkcml2ZXJzIGFyZSBub3QgZnVsbHkgc3VwcG9ydGVkXFxcIlxcbiAgNTc6XFx0XFx0ZGVwZW5kcyBvbiBBUkNIX0FDT1JOXFxuICA1ODpcXHRcXG4gIDU5OlxcdGNvbmZpZyBTQ1NJX0NVTUFOQV8xXFxuICA2MDpcXHRcXHR0cmlzdGF0ZSBcXFwiQ3VtYW5hU0NTSSBJIHN1cHBvcnRcXFwiXFxuICA2MTpcXHRcXHRkZXBlbmRzIG9uIEFSQ0hfQUNPUk4gXFx1MDAyNlxcdTAwMjYgU0NTSVxcbiAgNjI6XFx0XFx0c2VsZWN0IFNDU0lfU1BJX0FUVFJTXFxuICA2MzpcXHRcXHRoZWxwXFxuICA2NDpcXHRcXHQgIFRoaXMgZW5hYmxlcyBzdXBwb3J0IGZvciB0aGUgQ3VtYW5hIFNDU0kgSSBjYXJkLiBJZiB5b3UgaGF2ZSBhblxcbiAgNjU6XFx0XFx0ICBBY29ybiBzeXN0ZW0gd2l0aCBvbmUgb2YgdGhlc2UsIHNheSBZLiBJZiB1bnN1cmUsIHNheSBOLlxcbiAgNjY6XFx0XFxuICA2NzpcXHRjb25maWcgU0NTSV9PQUsxXFxuICA2ODpcXHRcXHR0cmlzdGF0ZSBcXFwiT2FrIFNDU0kgc3VwcG9ydFxcXCJcXG4gIDY5OlxcdFxcdGRlcGVuZHMgb24gQVJDSF9BQ09STiBcXHUwMDI2XFx1MDAyNiBTQ1NJXFxuICA3MDpcXHRcXHRzZWxlY3QgU0NTSV9TUElfQVRUUlNcXG4gIDcxOlxcdFxcdGhlbHBcXG4gIDcyOlxcdFxcdCAgVGhpcyBlbmFibGVzIHN1cHBvcnQgZm9yIHRoZSBPYWsgU0NTSSBjYXJkLiBJZiB5b3UgaGF2ZSBhbiBBY29yblxcbiAgNzM6XFx0XFx0ICBzeXN0ZW0gd2l0aCBvbmUgb2YgdGhlc2UsIHNheSBZLiBJZiB1bnN1cmUsIHNheSBOLlxcbiAgNzQ6XFx0XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA2VDIwOjIxOjU1LjM2MTg3MjI3MloiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoyNTA3NTI2NzgyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aGUgdGhvdWdodCBwcm9jZXNzLCBhcyByZXF1ZXN0ZWQ6XG5cbioqRGl2aW5nIGludG8gdGhlIDgyNTAgU2VyaWFsIERyaXZlciBDb25maWd1cmF0aW9uKipcblxuT2theSwgdGltZSB0byBnZXQgdG8gdGhlIGhlYXJ0IG9mIHRoaXMuIE15IGJyYWluIGlzIHRlbGxpbmcgbWUsIGJhc2VkIG9uIHRoZSBjdXJyZW50IGNvbnRleHQsIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoaXMgaXNzdWUgcHJvYmFibHkgbGl2ZSB3aXRoaW4gdGhlIDgyNTAgc2VyaWFsIGRyaXZlcidzIEtjb25maWcgZmlsZS4gTGV0J3Mgc3RhcnQgd2l0aCBgZHJpdmVycy90dHkvc2VyaWFsLzgyNTAvS2NvbmZpZ2AsIGFuZCBzcGVjaWZpY2FsbHksIGxldCdzIHpvb20gaW4gYXJvdW5kIGxpbmUgMzQyLiBUaGF0J3MgYSBnb29kIHN0YXJ0aW5nIHBvaW50LiBJIHN1c3BlY3QgdGhhdCdzIHdoZXJlIEknbGwgZmluZCB0aGUgY29uZmlndXJhdGlvbiBrbm9icyByZWxhdGVkIHRvIHRoZSB0aGluZyBJJ20gdHJ5aW5nIHRvIHR3ZWFrLiBMZXQncyBzZWUgaWYgdGhhdCBhc3N1bXB0aW9uIGhvbGRzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMDE4NywiT3V0cHV0VG9rZW5zIjo0MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI2LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDZUMjA6MjE6NTcuODY5NDAyNTYzWiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExNDYxMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL3R0eS9zZXJpYWwvODI1MC9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDM0MCxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDM0MDpcXHQjXFxuIDM0MTpcXHRcXG4gMzQyOlxcdGNvbmZpZyBTRVJJQUxfODI1MF9BQ09STlxcbiAzNDM6XFx0XFx0dHJpc3RhdGUgXFxcIkFjb3JuIGV4cGFuc2lvbiBjYXJkIHNlcmlhbCBwb3J0IHN1cHBvcnRcXFwiXFxuIDM0NDpcXHRcXHRkZXBlbmRzIG9uIEFSQ0hfQUNPUk4gXFx1MDAyNlxcdTAwMjYgU0VSSUFMXzgyNTBcXG4gMzQ1OlxcdFxcdGhlbHBcXG4gMzQ2OlxcdFxcdCAgSWYgeW91IGhhdmUgYW4gQXRvbXdpZGUgU2VyaWFsIGNhcmQgb3IgU2VyaWFsIFBvcnQgY2FyZCBmb3IgYW4gQWNvcm5cXG4gMzQ3OlxcdFxcdCAgc3lzdGVtLCBzYXkgWSB0byB0aGlzIG9wdGlvbi4gIFRoZSBkcml2ZXIgY2FuIGhhbmRsZSAxLCAyLCBvciAzIHBvcnRcXG4gMzQ4OlxcdFxcdCAgY2FyZHMuICBJZiB1bnN1cmUsIHNheSBOLlxcbiAzNDk6XFx0XFxuIDM1MDpcXHRjb25maWcgU0VSSUFMXzgyNTBfQkNNMjgzNUFVWFxcbiAzNTE6XFx0XFx0dHJpc3RhdGUgXFxcIkJDTTI4MzUgYXV4aWxpYXIgbWluaSBVQVJUIHN1cHBvcnRcXFwiXFxuIDM1MjpcXHRcXHRkZXBlbmRzIG9uIEFSQ0hfQkNNMjgzNSB8fCBDT01QSUxFX1RFU1RcXG4gMzUzOlxcdFxcdGRlcGVuZHMgb24gU0VSSUFMXzgyNTAgXFx1MDAyNlxcdTAwMjYgU0VSSUFMXzgyNTBfU0hBUkVfSVJRXFxuIDM1NDpcXHRcXHRoZWxwXFxuIDM1NTpcXHRcXHQgIFN1cHBvcnQgZm9yIHRoZSBCQ00yODM1IGF1eGlsaWFyIG1pbmkgVUFSVC5cXG4gMzU2OlxcdFxcbiAzNTc6XFx0XFx0ICBGZWF0dXJlcyBhbmQgbGltaXRhdGlvbnMgb2YgdGhlIFVBUlQgYXJlXFxuIDM1ODpcXHRcXHQgICAgUmVnaXN0ZXJzIGFyZSBzaW1pbGFyIHRvIDE2NjUwIHJlZ2lzdGVycyxcXG4gMzU5OlxcdFxcdCAgICAgIHNldCBiaXRzIGluIHRoZSBjb250cm9sIHJlZ2lzdGVycyB0aGF0IGFyZSB1bnN1cHBvcnRlZFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNlQyMDoyMTo1Ny44Njk1MTk0NDNaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MjYxOTI3MzQ1MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcyBpbiB0aGUgZmlyc3QgcGVyc29uLCBhc3N1bWluZyB0aGUgdXNlciBpcyBhbiBleHBlcnQ6XG5cbioqSW52ZXN0aWdhdGluZyBBUkNIX0FDT1JOIERlcGVuZGVuY2llcyoqXG5cbk9rYXksIHRpbWUgdG8gZGlnIGluLiBUaGUgZmlyc3QgdGhpbmcgSSBuZWVkIHRvIGRvIGlzIGdldCBhIGhhbmRsZSBvbiB0aGUgZGVwZW5kZW5jaWVzIG9mIGBBUkNIX0FDT1JOYC4gVGhhdCdzIHdoZXJlIEkgbmVlZCB0byBzdGFydC4gU28sIHdoZXJlIHByZWNpc2VseSAqaXMqIGBBUkNIX0FDT1JOYCBkZWZpbmVkPyBJIGtub3cgSSdsbCBoYXZlIHRvIGdldCBteSBoYW5kcyBkaXJ0eSwgdHJhY2luZyBpdHMgb3JpZ2luLiBUaGlzIGlzIGEgY3J1Y2lhbCBmaXJzdCBzdGVwOyB3aXRob3V0IGtub3dpbmcgd2hlcmUgaXQgb3JpZ2luYXRlcywgaXQgd2lsbCBiZSBkaWZmaWN1bHQgdG8gdW5kZXJzdGFuZCBob3cgaXQgaW1wYWN0cyB0aGUgb3RoZXIgc3lzdGVtcy5cblxuXG4iLCJJbnB1dFRva2VucyI6MTA3NTgsIk91dHB1dFRva2VucyI6MTksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxOCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA2VDIwOjIyOjAwLjQ4ODc5NTgwM1oiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjYxMTkwMTM4MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgQVJDSF9BQ09STlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL2FybS9LY29uZmlnPTQ4OD1jb25maWcgQVJDSF9NUFMyXFxuLS1cXG5hcmNoL2FybS9LY29uZmlnLTUwMi0jIERlZmluaXRpb25zIHRvIG1ha2UgbGlmZSBlYXNpZXJcXG5hcmNoL2FybS9LY29uZmlnOjUwMzpjb25maWcgQVJDSF9BQ09STlxcbmFyY2gvYXJtL0tjb25maWctNTA0LVxcdGJvb2xcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDZUMjA6MjI6MDMuMTAwNzAyNTkzWiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjc2NTQwNDY4OTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhlIFByb3Bvc2VkIENvZGUgQ2hhbmdlcyoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gV2UndmUgZ290IGEgcGF0Y2ggdGhhdCB0b3VjaGVzIGEgYnVuY2ggb2YgZHJpdmVycywgc3BlY2lmaWNhbGx5IHJlbGF0ZWQgdG8gdmludGFnZSBBY29ybiBtYWNoaW5lcy4gRmlyc3QsIGBBUkNIX0FDT1JOYCBpcyB0aGUga2V5IGhlcmUuIEl0J3MgZGVmaW5lZCBpbiBgYXJjaC9hcm0vS2NvbmZpZ2AsIG1ha2luZyBpdCBleHBsaWNpdGx5IGFuIEFSTSAzMi1iaXQgYXJjaGl0ZWN0dXJlIHRoaW5nLiBTcGVjaWZpY2FsbHksIGl0J3MgZm9yIEFjb3JuIG1hY2hpbmVzIGxpa2UgdGhlIFJpc2NQQywgQTUwMDAsIGFuZCBBcmNoaW1lZGVzLiBPdXIgc3l6a2FsbGVyIHRhcmdldCBpcyBgYW1kNjRgLCBzbyB0aGF0J3MgYSByZWQgZmxhZyBpbW1lZGlhdGVseS5cblxuTm9uZSBvZiB0aGVzZSBkcml2ZXJzIGNhbiBiZSBjb21waWxlZCBvciBleGVjdXRlZCBvbiBgYW1kNjRgIChvciB4ODZfNjQpIOKAkyBhbmQgY3J1Y2lhbGx5LCB0aGV5IGRvbid0IGV2ZW4gaGF2ZSBgQ09NUElMRV9URVNUYCBlbmFibGVkLiBUaGF0IG1lYW5zIHdlIGFyZW4ndCBldmVuIGdldHRpbmcgYSBoaW50IG9mIGEgY2hhbmNlIHRvIHRlc3QgdGhlbS4gVGhleSdyZSBhbGwgZm9yIHBoeXNpY2FsLCB2aW50YWdlIEFjb3JuIGV4cGFuc2lvbiBjYXJkIGJ1cyBoYXJkd2FyZSwgd2hpY2gsIGFnYWluLCBpcyBBUk0tc3BlY2lmaWMuXG5cbk5vdywgYWNjb3JkaW5nIHRvIHRoZSBOZWdhdGl2ZSBDcml0ZXJpYSBpbiBTZWN0aW9uIDIsIGFueSBjb2RlIGV4Y2x1c2l2ZSB0byBhcmNoaXRlY3R1cmVzIG90aGVyIHRoYW4gdGhlIHRhcmdldCBpcyBhIG5vLWdvLiBVbnJlYWNoYWJsZSBoYXJkd2FyZSBpcyBhbHNvIHNvbWV0aGluZyB0byBhdm9pZC4gU28sIGxldCdzIGxvb2sgYXQgdGhlIHNwZWNpZmljIGRyaXZlcnMgbGlzdGVkIHRvIGNvbmZpcm0gdGhpczpcblxuKiAgIGBQQVRBX0lDU0lERWA6IGRlcGVuZHMgb24gYEFSTSBcdTAwMjZcdTAwMjYgQVJDSF9BQ09STmBcbiogICBgQVJNX0VUSEVSMWA6IGRlcGVuZHMgb24gYEFSTSBcdTAwMjZcdTAwMjYgQVJDSF9BQ09STmBcbiogICBgQVJNX0VUSEVSM2A6IGRlcGVuZHMgb24gYEFSTSBcdTAwMjZcdTAwMjYgQVJDSF9BQ09STmBcbiogICBgU0NTSV9BQ09STlNDU0lfM2A6IGRlcGVuZHMgb24gYEFSQ0hfQUNPUk4gXHUwMDI2XHUwMDI2IFNDU0lgXG4qICAgYFNDU0lfQVJYRVNDU0lgOiBkZXBlbmRzIG9uIGBBUkNIX0FDT1JOIFx1MDAyNlx1MDAyNiBTQ1NJYFxuKiAgIGBTQ1NJX0NVTUFOQV8yYDogZGVwZW5kcyBvbiBgQVJDSF9BQ09STiBcdTAwMjZcdTAwMjYgU0NTSWBcbiogICBgU0NTSV9FRVNPWFNDU0lgOiBkZXBlbmRzIG9uIGBBUkNIX0FDT1JOIFx1MDAyNlx1MDAyNiBTQ1NJYFxuKiAgIGBTQ1NJX1BPV0VSVEVDU0NTSWA6IGRlcGVuZHMgb24gYEFSQ0hfQUNPUk4gXHUwMDI2XHUwMDI2IFNDU0lgXG4qICAgYFNDU0lfQ1VNQU5BXzFgOiBkZXBlbmRzIG9uIGBBUkNIX0FDT1JOIFx1MDAyNlx1MDAyNiBTQ1NJYFxuKiAgIGBTQ1NJX09BSzFgOiBkZXBlbmRzIG9uIGBBUkNIX0FDT1JOIFx1MDAyNlx1MDAyNiBTQ1NJYFxuKiAgIGBTRVJJQUxfODI1MF9BQ09STmA6IGRlcGVuZHMgb24gYEFSQ0hfQUNPUk4gXHUwMDI2XHUwMDI2IFNFUklBTF84MjUwYFxuXG5FdmVyeSBzaW5nbGUgb25lIG9mIHRoZXNlIGRyaXZlcnMgZXhwbGljaXRseSByZWxpZXMgb24gYEFSQ0hfQUNPUk5gLCB3aGljaCB0aWVzIHRoZW0gdG8gdGhlIEFSTSBhcmNoaXRlY3R1cmUsIGFuZCBpcyBub3Qgc29tZXRoaW5nIHRoYXQgd291bGQgZXZlciBleGlzdCBvbiBhbWQ2NC4gRnVydGhlcm1vcmUsIHRoaXMgY29kZSBpcyBzaW1wbHkgcmVmYWN0b3JpbmcgdGhlIGBtb2R1bGVfaW5pdGAvYG1vZHVsZV9leGl0YCByZWdpc3RyYXRpb24gaGVscGVycyB3aXRoIGBtb2R1bGVfZHJpdmVyKC4uLilgLiBUaGlzIGRvZXNuJ3QgY2hhbmdlIHRoZWlyIGFyY2hpdGVjdHVyZS1zcGVjaWZpYyBuYXR1cmUuXG5cbkxldCdzIHF1aWNrbHkgY29uZmlybSBhbGwgdGhlIGZpbGVzIGNoYW5nZWQ6XG5cbiogICBgZHJpdmVycy9hdGEvcGF0YV9pY3NpZGUuY2BcbiogICBgZHJpdmVycy9uZXQvZXRoZXJuZXQvaTgyNXh4L2V0aGVyMS5jYFxuKiAgIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9zZWVxL2V0aGVyMy5jYFxuKiAgIGBkcml2ZXJzL3Njc2kvYXJtL2Fjb3Juc2NzaS5jYFxuKiAgIGBkcml2ZXJzL3Njc2kvYXJtL2FyeGVzY3NpLmNgXG4qICAgYGRyaXZlcnMvc2NzaS9hcm0vY3VtYW5hXzEuY2BcbiogICBgZHJpdmVycy9zY3NpL2FybS9jdW1hbmFfMi5jYFxuKiAgIGBkcml2ZXJzL3Njc2kvYXJtL2Vlc294LmNgXG4qICAgYGRyaXZlcnMvc2NzaS9hcm0vb2FrLmNgXG4qICAgYGRyaXZlcnMvc2NzaS9hcm0vcG93ZXJ0ZWMuY2BcbiogICBgZHJpdmVycy90dHkvc2VyaWFsLzgyNTAvODI1MF9hY29ybi5jYFxuXG5ZdXAsIGFsbCBlbGV2ZW4gYXJlIGRyaXZlcnMgZm9yIEFjb3JuIGV4cGFuc2lvbiBjYXJkcywgYW5kIHRoZXJlZm9yZSBBUk0tb25seS5cblxuKipDb25jbHVzaW9uOioqXG5cblRoaXMgcGF0Y2ggaXMgbW9kaWZ5aW5nIG1vZHVsZSBpbml0aWFsaXphdGlvbi9leGl0IGJvaWxlcnBsYXRlIGluIHZhcmlvdXMgQWNvcm4gRXhwYW5zaW9uIENhcmQgKGVjYXJkKSBkcml2ZXJzLiBBbGwgdGhlIG1vZGlmaWVkIGRyaXZlcnMgZGVwZW5kIGV4Y2x1c2l2ZWx5IG9uIHRoZSBBUk0gYW5kIGBBUkNIX0FDT1JOYCBjb25maWd1cmF0aW9uIG9wdGlvbnMuIFRoZXNlIGFyZSBsaW1pdGVkIHRvIHRoZSAzMi1iaXQgQVJNIGFyY2hpdGVjdHVyZSwgYW5kIHRodXMgYXJlIG5vdCBidWlsZGFibGUgb3IgZXhlY3V0YWJsZSBvbiB0aGUgdGFyZ2V0IGFtZDY0IGFyY2hpdGVjdHVyZS5cblxuKiAgIGBXb3J0aEZ1enppbmdgOiBmYWxzZVxuKiAgIGBFbmFibGVDb25maWdzYDogXFxbIF1cbiogICBgRm9jdXNTeW1ib2xzYDogXFxbIF1cblxuSSdsbCBnbyBhaGVhZCBhbmQgc2V0IHRoZSByZXN1bHRzIGFjY29yZGluZ2x5LlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMTAwMiwiT3V0cHV0VG9rZW5zIjo5MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjc3NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wNlQyMDoyMjoxMC43NTQ3NTI5NzVaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMzExMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBzZXJpZXMgcmVwbGFjZXMgYm9pbGVycGxhdGUgbW9kdWxlX2luaXQvbW9kdWxlX2V4aXQgZnVuY3Rpb25zIHdpdGggbW9kdWxlX2RyaXZlcigpIG1hY3JvcyBhY3Jvc3Mgc2V2ZXJhbCBBY29ybiBleHBhbnNpb24gY2FyZCAoZWNhcmQpIGRyaXZlcnMuIEFsbCBtb2RpZmllZCBkcml2ZXJzIGRlcGVuZCBvbiBBUkNIX0FDT1JOIGFuZCBBUk0sIG1ha2luZyB0aGVtIGV4Y2x1c2l2ZSB0byB0aGUgQVJNIGFyY2hpdGVjdHVyZSBhbmQgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIG9uIHRoZSB0YXJnZXQgYW1kNjQgYXJjaGl0ZWN0dXJlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggc2VyaWVzIHJlcGxhY2VzIGJvaWxlcnBsYXRlIG1vZHVsZV9pbml0L21vZHVsZV9leGl0IGZ1bmN0aW9ucyB3aXRoIG1vZHVsZV9kcml2ZXIoKSBtYWNyb3MgYWNyb3NzIHNldmVyYWwgQWNvcm4gZXhwYW5zaW9uIGNhcmQgKGVjYXJkKSBkcml2ZXJzLiBBbGwgbW9kaWZpZWQgZHJpdmVycyBkZXBlbmQgb24gQVJDSF9BQ09STiBhbmQgQVJNLCBtYWtpbmcgdGhlbSBleGNsdXNpdmUgdG8gdGhlIEFSTSBhcmNoaXRlY3R1cmUgYW5kIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBvbiB0aGUgdGFyZ2V0IGFtZDY0IGFyY2hpdGVjdHVyZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA2VDIwOjIyOjEwLjc1NDc5MTM5NVoiLCJTZXEiOjE5LCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDM3MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow6969x[0].run-triage(0) Phase: Succeeded StartedAt: 2026-09-06 19:41:15 +0000 UTC FinishedAt: 2026-09-06 20:22:12 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA2IDIwOjIxPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggc2VyaWVzIHJlcGxhY2VzIGJvaWxlcnBsYXRlIG1vZHVsZV9pbml0L21vZHVsZV9leGl0IGZ1bmN0aW9ucyB3aXRoIG1vZHVsZV9kcml2ZXIoKSBtYWNyb3MgYWNyb3NzIHNldmVyYWwgQWNvcm4gZXhwYW5zaW9uIGNhcmQgKGVjYXJkKSBkcml2ZXJzLiBBbGwgbW9kaWZpZWQgZHJpdmVycyBkZXBlbmQgb24gQVJDSF9BQ09STiBhbmQgQVJNLCBtYWtpbmcgdGhlbSBleGNsdXNpdmUgdG8gdGhlIEFSTSBhcmNoaXRlY3R1cmUgYW5kIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBvbiB0aGUgdGFyZ2V0IGFtZDY0IGFyY2hpdGVjdHVyZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDYgMjA6MjE8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBiYjdhZjgxZmE4MGQ5ZTRiYzkzZTM5NjZiMTkyOTRiM2Q1ODJjYzMzXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFN1biBTZXAgNiAyMDoyMTozNyAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL2F0YS9wYXRhX2ljc2lkZS5jIGIvZHJpdmVycy9hdGEvcGF0YV9pY3NpZGUuY1xuaW5kZXggNzBmMDU2ZTQ3ZTZiZC4uZGY3MjAzYTc0ZjQ1ZCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvYXRhL3BhdGFfaWNzaWRlLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvYXRhL3BhdGFfaWNzaWRlLmNcbkBAIC02MTMsMTkgJiM0Mzs2MTMsOCBAQCBzdGF0aWMgc3RydWN0IGVjYXJkX2RyaXZlciBwYXRhX2ljc2lkZV9kcml2ZXIgPSB7XG4gXHR9LFxuIH07XG4gXG4tc3RhdGljIGludCBfX2luaXQgcGF0YV9pY3NpZGVfaW5pdCh2b2lkKVxuLXtcbi1cdHJldHVybiBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIoXHUwMDI2cGF0YV9pY3NpZGVfZHJpdmVyKTtcbi19XG4tXG4tc3RhdGljIHZvaWQgX19leGl0IHBhdGFfaWNzaWRlX2V4aXQodm9pZClcbi17XG4tXHRlY2FyZF9yZW1vdmVfZHJpdmVyKFx1MDAyNnBhdGFfaWNzaWRlX2RyaXZlcik7XG4tfVxuJiM0Mzttb2R1bGVfZHJpdmVyKHBhdGFfaWNzaWRlX2RyaXZlciwgZWNhcmRfcmVnaXN0ZXJfZHJpdmVyLCBlY2FyZF9yZW1vdmVfZHJpdmVyKTtcbiBcbiBNT0RVTEVfQVVUSE9SKFwmIzM0O1J1c3NlbGwgS2luZyBcdTAwM2NybWtAYXJtLmxpbnV4Lm9yZy51a1x1MDAzZVwmIzM0Oyk7XG4gTU9EVUxFX0xJQ0VOU0UoXCYjMzQ7R1BMXCYjMzQ7KTtcbiBNT0RVTEVfREVTQ1JJUFRJT04oXCYjMzQ7SUNTIFBBVEEgZHJpdmVyXCYjMzQ7KTtcbi1cbi1tb2R1bGVfaW5pdChwYXRhX2ljc2lkZV9pbml0KTtcbi1tb2R1bGVfZXhpdChwYXRhX2ljc2lkZV9leGl0KTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pODI1eHgvZXRoZXIxLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pODI1eHgvZXRoZXIxLmNcbmluZGV4IDNlN2Q3YzRiYWZkYzIuLmQyMWFlYjgzMTUzMTcgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pODI1eHgvZXRoZXIxLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2k4MjV4eC9ldGhlcjEuY1xuQEAgLTEwNzAsMTcgJiM0MzsxMDcwLDYgQEAgc3RhdGljIHN0cnVjdCBlY2FyZF9kcml2ZXIgZXRoZXIxX2RyaXZlciA9IHtcbiBcdH0sXG4gfTtcbiBcbi1zdGF0aWMgaW50IF9faW5pdCBldGhlcjFfaW5pdCh2b2lkKVxuLXtcbi1cdHJldHVybiBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIoXHUwMDI2ZXRoZXIxX2RyaXZlcik7XG4tfVxuLVxuLXN0YXRpYyB2b2lkIF9fZXhpdCBldGhlcjFfZXhpdCh2b2lkKVxuLXtcbi1cdGVjYXJkX3JlbW92ZV9kcml2ZXIoXHUwMDI2ZXRoZXIxX2RyaXZlcik7XG4tfVxuLVxuLW1vZHVsZV9pbml0KGV0aGVyMV9pbml0KTtcbi1tb2R1bGVfZXhpdChldGhlcjFfZXhpdCk7XG4mIzQzO21vZHVsZV9kcml2ZXIoZXRoZXIxX2RyaXZlciwgZWNhcmRfcmVnaXN0ZXJfZHJpdmVyLCBlY2FyZF9yZW1vdmVfZHJpdmVyKTtcbiBcbiBNT0RVTEVfTElDRU5TRShcJiMzNDtHUExcJiMzNDspO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NlZXEvZXRoZXIzLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZWVxL2V0aGVyMy5jXG5pbmRleCAyMGRhZDM5YjVhYjk0Li5iMGQyY2JjMzU5MTQ3IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2VlcS9ldGhlcjMuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2VlcS9ldGhlcjMuY1xuQEAgLTg4MiwxNyAmIzQzOzg4Miw2IEBAIHN0YXRpYyBzdHJ1Y3QgZWNhcmRfZHJpdmVyIGV0aGVyM19kcml2ZXIgPSB7XG4gXHR9LFxuIH07XG4gXG4tc3RhdGljIGludCBfX2luaXQgZXRoZXIzX2luaXQodm9pZClcbi17XG4tXHRyZXR1cm4gZWNhcmRfcmVnaXN0ZXJfZHJpdmVyKFx1MDAyNmV0aGVyM19kcml2ZXIpO1xuLX1cbi1cbi1zdGF0aWMgdm9pZCBfX2V4aXQgZXRoZXIzX2V4aXQodm9pZClcbi17XG4tXHRlY2FyZF9yZW1vdmVfZHJpdmVyKFx1MDAyNmV0aGVyM19kcml2ZXIpO1xuLX1cbi1cbi1tb2R1bGVfaW5pdChldGhlcjNfaW5pdCk7XG4tbW9kdWxlX2V4aXQoZXRoZXIzX2V4aXQpO1xuJiM0Mzttb2R1bGVfZHJpdmVyKGV0aGVyM19kcml2ZXIsIGVjYXJkX3JlZ2lzdGVyX2RyaXZlciwgZWNhcmRfcmVtb3ZlX2RyaXZlcik7XG4gXG4gTU9EVUxFX0xJQ0VOU0UoXCYjMzQ7R1BMXCYjMzQ7KTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYXJtL2Fjb3Juc2NzaS5jIGIvZHJpdmVycy9zY3NpL2FybS9hY29ybnNjc2kuY1xuaW5kZXggNzlkN2Q3MzM2YjZhYy4uOGI4OTlmYmYwOTJlMSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvc2NzaS9hcm0vYWNvcm5zY3NpLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvc2NzaS9hcm0vYWNvcm5zY3NpLmNcbkBAIC0yOTAyLDE4ICYjNDM7MjkwMiw3IEBAIHN0YXRpYyBzdHJ1Y3QgZWNhcmRfZHJpdmVyIGFjb3Juc2NzaV9kcml2ZXIgPSB7XG4gXHR9LFxuIH07XG4gXG4tc3RhdGljIGludCBfX2luaXQgYWNvcm5zY3NpX2luaXQodm9pZClcbi17XG4tXHRyZXR1cm4gZWNhcmRfcmVnaXN0ZXJfZHJpdmVyKFx1MDAyNmFjb3Juc2NzaV9kcml2ZXIpO1xuLX1cbi1cbi1zdGF0aWMgdm9pZCBfX2V4aXQgYWNvcm5zY3NpX2V4aXQodm9pZClcbi17XG4tXHRlY2FyZF9yZW1vdmVfZHJpdmVyKFx1MDAyNmFjb3Juc2NzaV9kcml2ZXIpO1xuLX1cbi1cbi1tb2R1bGVfaW5pdChhY29ybnNjc2lfaW5pdCk7XG4tbW9kdWxlX2V4aXQoYWNvcm5zY3NpX2V4aXQpO1xuJiM0Mzttb2R1bGVfZHJpdmVyKGFjb3Juc2NzaV9kcml2ZXIsIGVjYXJkX3JlZ2lzdGVyX2RyaXZlciwgZWNhcmRfcmVtb3ZlX2RyaXZlcik7XG4gXG4gTU9EVUxFX0FVVEhPUihcJiMzNDtSdXNzZWxsIEtpbmdcJiMzNDspO1xuIE1PRFVMRV9ERVNDUklQVElPTihcJiMzNDtBY29yblNDU0kgZHJpdmVyXCYjMzQ7KTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYXJtL2FyeGVzY3NpLmMgYi9kcml2ZXJzL3Njc2kvYXJtL2FyeGVzY3NpLmNcbmluZGV4IDkyNWQwYmQ2OGFhNWIuLjJkM2Y1YjA1MTlkMWEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3Njc2kvYXJtL2FyeGVzY3NpLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvc2NzaS9hcm0vYXJ4ZXNjc2kuY1xuQEAgLTM0NCwyMCAmIzQzOzM0NCw4IEBAIHN0YXRpYyBzdHJ1Y3QgZWNhcmRfZHJpdmVyIGFyeGVzY3NpX2RyaXZlciA9IHtcbiBcdH0sXG4gfTtcbiBcbi1zdGF0aWMgaW50IF9faW5pdCBpbml0X2FyeGVfc2NzaV9kcml2ZXIodm9pZClcbi17XG4tXHRyZXR1cm4gZWNhcmRfcmVnaXN0ZXJfZHJpdmVyKFx1MDAyNmFyeGVzY3NpX2RyaXZlcik7XG4tfVxuLVxuLXN0YXRpYyB2b2lkIF9fZXhpdCBleGl0X2FyeGVfc2NzaV9kcml2ZXIodm9pZClcbi17XG4tXHRlY2FyZF9yZW1vdmVfZHJpdmVyKFx1MDAyNmFyeGVzY3NpX2RyaXZlcik7XG4tfVxuLVxuLW1vZHVsZV9pbml0KGluaXRfYXJ4ZV9zY3NpX2RyaXZlcik7XG4tbW9kdWxlX2V4aXQoZXhpdF9hcnhlX3Njc2lfZHJpdmVyKTtcbiYjNDM7bW9kdWxlX2RyaXZlcihhcnhlc2NzaV9kcml2ZXIsIGVjYXJkX3JlZ2lzdGVyX2RyaXZlciwgZWNhcmRfcmVtb3ZlX2RyaXZlcik7XG4gXG4gTU9EVUxFX0FVVEhPUihcJiMzNDtTdGVmYW4gSGFuc2tlXCYjMzQ7KTtcbiBNT0RVTEVfREVTQ1JJUFRJT04oXCYjMzQ7QVJYRVNDU0kgZHJpdmVyIGZvciBBY29ybiBtYWNoaW5lc1wmIzM0Oyk7XG4gTU9EVUxFX0xJQ0VOU0UoXCYjMzQ7R1BMXCYjMzQ7KTtcbi1cbmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYXJtL2N1bWFuYV8xLmMgYi9kcml2ZXJzL3Njc2kvYXJtL2N1bWFuYV8xLmNcbmluZGV4IGQxYTJhMjJmZmU4YzcuLjYyYzExMTY4ZjMyMTEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3Njc2kvYXJtL2N1bWFuYV8xLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvc2NzaS9hcm0vY3VtYW5hXzEuY1xuQEAgLTMyNCwxOCAmIzQzOzMyNCw3IEBAIHN0YXRpYyBzdHJ1Y3QgZWNhcmRfZHJpdmVyIGN1bWFuYXNjc2kxX2RyaXZlciA9IHtcbiBcdH0sXG4gfTtcbiBcbi1zdGF0aWMgaW50IF9faW5pdCBjdW1hbmFzY3NpX2luaXQodm9pZClcbi17XG4tXHRyZXR1cm4gZWNhcmRfcmVnaXN0ZXJfZHJpdmVyKFx1MDAyNmN1bWFuYXNjc2kxX2RyaXZlcik7XG4tfVxuLVxuLXN0YXRpYyB2b2lkIF9fZXhpdCBjdW1hbmFzY3NpX2V4aXQodm9pZClcbi17XG4tXHRlY2FyZF9yZW1vdmVfZHJpdmVyKFx1MDAyNmN1bWFuYXNjc2kxX2RyaXZlcik7XG4tfVxuLVxuLW1vZHVsZV9pbml0KGN1bWFuYXNjc2lfaW5pdCk7XG4tbW9kdWxlX2V4aXQoY3VtYW5hc2NzaV9leGl0KTtcbiYjNDM7bW9kdWxlX2RyaXZlcihjdW1hbmFzY3NpMV9kcml2ZXIsIGVjYXJkX3JlZ2lzdGVyX2RyaXZlciwgZWNhcmRfcmVtb3ZlX2RyaXZlcik7XG4gXG4gTU9EVUxFX0RFU0NSSVBUSU9OKFwmIzM0O0N1bWFuYSBTQ1NJLTEgZHJpdmVyIGZvciBBY29ybiBtYWNoaW5lc1wmIzM0Oyk7XG4gTU9EVUxFX0xJQ0VOU0UoXCYjMzQ7R1BMXCYjMzQ7KTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYXJtL2N1bWFuYV8yLmMgYi9kcml2ZXJzL3Njc2kvYXJtL2N1bWFuYV8yLmNcbmluZGV4IGU0NjAwNjhmNjgzNGIuLjI0OTQ1ZTE3NjVhZTAgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3Njc2kvYXJtL2N1bWFuYV8yLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvc2NzaS9hcm0vY3VtYW5hXzIuY1xuQEAgLTUwNCwxOCAmIzQzOzUwNCw3IEBAIHN0YXRpYyBzdHJ1Y3QgZWNhcmRfZHJpdmVyIGN1bWFuYXNjc2kyX2RyaXZlciA9IHtcbiBcdH0sXG4gfTtcbiBcbi1zdGF0aWMgaW50IF9faW5pdCBjdW1hbmFzY3NpMl9pbml0KHZvaWQpXG4te1xuLVx0cmV0dXJuIGVjYXJkX3JlZ2lzdGVyX2RyaXZlcihcdTAwMjZjdW1hbmFzY3NpMl9kcml2ZXIpO1xuLX1cbi1cbi1zdGF0aWMgdm9pZCBfX2V4aXQgY3VtYW5hc2NzaTJfZXhpdCh2b2lkKVxuLXtcbi1cdGVjYXJkX3JlbW92ZV9kcml2ZXIoXHUwMDI2Y3VtYW5hc2NzaTJfZHJpdmVyKTtcbi19XG4tXG4tbW9kdWxlX2luaXQoY3VtYW5hc2NzaTJfaW5pdCk7XG4tbW9kdWxlX2V4aXQoY3VtYW5hc2NzaTJfZXhpdCk7XG4mIzQzO21vZHVsZV9kcml2ZXIoY3VtYW5hc2NzaTJfZHJpdmVyLCBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIsIGVjYXJkX3JlbW92ZV9kcml2ZXIpO1xuIFxuIE1PRFVMRV9BVVRIT1IoXCYjMzQ7UnVzc2VsbCBLaW5nXCYjMzQ7KTtcbiBNT0RVTEVfREVTQ1JJUFRJT04oXCYjMzQ7Q3VtYW5hIFNDU0ktMiBkcml2ZXIgZm9yIEFjb3JuIG1hY2hpbmVzXCYjMzQ7KTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYXJtL2Vlc294LmMgYi9kcml2ZXJzL3Njc2kvYXJtL2Vlc294LmNcbmluZGV4IDk5YmU5ZGE4NzU3ZjQuLjgyM2FkMTc5ZjI0Y2MgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3Njc2kvYXJtL2Vlc294LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvc2NzaS9hcm0vZWVzb3guY1xuQEAgLTYyNiwxOCAmIzQzOzYyNiw3IEBAIHN0YXRpYyBzdHJ1Y3QgZWNhcmRfZHJpdmVyIGVlc294c2NzaV9kcml2ZXIgPSB7XG4gXHR9LFxuIH07XG4gXG4tc3RhdGljIGludCBfX2luaXQgZWVzb3hfaW5pdCh2b2lkKVxuLXtcbi1cdHJldHVybiBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIoXHUwMDI2ZWVzb3hzY3NpX2RyaXZlcik7XG4tfVxuLVxuLXN0YXRpYyB2b2lkIF9fZXhpdCBlZXNveF9leGl0KHZvaWQpXG4te1xuLVx0ZWNhcmRfcmVtb3ZlX2RyaXZlcihcdTAwMjZlZXNveHNjc2lfZHJpdmVyKTtcbi19XG4tXG4tbW9kdWxlX2luaXQoZWVzb3hfaW5pdCk7XG4tbW9kdWxlX2V4aXQoZWVzb3hfZXhpdCk7XG4mIzQzO21vZHVsZV9kcml2ZXIoZWVzb3hzY3NpX2RyaXZlciwgZWNhcmRfcmVnaXN0ZXJfZHJpdmVyLCBlY2FyZF9yZW1vdmVfZHJpdmVyKTtcbiBcbiBNT0RVTEVfQVVUSE9SKFwmIzM0O1J1c3NlbGwgS2luZ1wmIzM0Oyk7XG4gTU9EVUxFX0RFU0NSSVBUSU9OKFwmIzM0O0VFU09YICYjMzk7RmFzdCYjMzk7IFNDU0kgZHJpdmVyIGZvciBBY29ybiBtYWNoaW5lc1wmIzM0Oyk7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2FybS9vYWsuYyBiL2RyaXZlcnMvc2NzaS9hcm0vb2FrLmNcbmluZGV4IGQ2OTI0NTAwNzA5NjcuLmFlYTIxYmIxMzM1NTIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3Njc2kvYXJtL29hay5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3Njc2kvYXJtL29hay5jXG5AQCAtMTk0LDIwICYjNDM7MTk0LDggQEAgc3RhdGljIHN0cnVjdCBlY2FyZF9kcml2ZXIgb2Frc2NzaV9kcml2ZXIgPSB7XG4gXHR9LFxuIH07XG4gXG4tc3RhdGljIGludCBfX2luaXQgb2Frc2NzaV9pbml0KHZvaWQpXG4te1xuLVx0cmV0dXJuIGVjYXJkX3JlZ2lzdGVyX2RyaXZlcihcdTAwMjZvYWtzY3NpX2RyaXZlcik7XG4tfVxuLVxuLXN0YXRpYyB2b2lkIF9fZXhpdCBvYWtzY3NpX2V4aXQodm9pZClcbi17XG4tXHRlY2FyZF9yZW1vdmVfZHJpdmVyKFx1MDAyNm9ha3Njc2lfZHJpdmVyKTtcbi19XG4tXG4tbW9kdWxlX2luaXQob2Frc2NzaV9pbml0KTtcbi1tb2R1bGVfZXhpdChvYWtzY3NpX2V4aXQpO1xuJiM0Mzttb2R1bGVfZHJpdmVyKG9ha3Njc2lfZHJpdmVyLCBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIsIGVjYXJkX3JlbW92ZV9kcml2ZXIpO1xuIFxuIE1PRFVMRV9BVVRIT1IoXCYjMzQ7UnVzc2VsbCBLaW5nXCYjMzQ7KTtcbiBNT0RVTEVfREVTQ1JJUFRJT04oXCYjMzQ7T2FrIFNDU0kgZHJpdmVyXCYjMzQ7KTtcbiBNT0RVTEVfTElDRU5TRShcJiMzNDtHUExcJiMzNDspO1xuLVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9hcm0vcG93ZXJ0ZWMuYyBiL2RyaXZlcnMvc2NzaS9hcm0vcG93ZXJ0ZWMuY1xuaW5kZXggODIzYzY1ZmY2YzEyYi4uNjdmMDcxYTA1NDNiNiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvc2NzaS9hcm0vcG93ZXJ0ZWMuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9zY3NpL2FybS9wb3dlcnRlYy5jXG5AQCAtNDMyLDE4ICYjNDM7NDMyLDcgQEAgc3RhdGljIHN0cnVjdCBlY2FyZF9kcml2ZXIgcG93ZXJ0ZWNzY3NpX2RyaXZlciA9IHtcbiBcdH0sXG4gfTtcbiBcbi1zdGF0aWMgaW50IF9faW5pdCBwb3dlcnRlY3Njc2lfaW5pdCh2b2lkKVxuLXtcbi1cdHJldHVybiBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIoXHUwMDI2cG93ZXJ0ZWNzY3NpX2RyaXZlcik7XG4tfVxuLVxuLXN0YXRpYyB2b2lkIF9fZXhpdCBwb3dlcnRlY3Njc2lfZXhpdCh2b2lkKVxuLXtcbi1cdGVjYXJkX3JlbW92ZV9kcml2ZXIoXHUwMDI2cG93ZXJ0ZWNzY3NpX2RyaXZlcik7XG4tfVxuLVxuLW1vZHVsZV9pbml0KHBvd2VydGVjc2NzaV9pbml0KTtcbi1tb2R1bGVfZXhpdChwb3dlcnRlY3Njc2lfZXhpdCk7XG4mIzQzO21vZHVsZV9kcml2ZXIocG93ZXJ0ZWNzY3NpX2RyaXZlciwgZWNhcmRfcmVnaXN0ZXJfZHJpdmVyLCBlY2FyZF9yZW1vdmVfZHJpdmVyKTtcbiBcbiBNT0RVTEVfQVVUSE9SKFwmIzM0O1J1c3NlbGwgS2luZ1wmIzM0Oyk7XG4gTU9EVUxFX0RFU0NSSVBUSU9OKFwmIzM0O1Bvd2VydGVjIFNDU0kgZHJpdmVyXCYjMzQ7KTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3R0eS9zZXJpYWwvODI1MC84MjUwX2Fjb3JuLmMgYi9kcml2ZXJzL3R0eS9zZXJpYWwvODI1MC84MjUwX2Fjb3JuLmNcbmluZGV4IGZiNTk2MjYyYjljNzEuLmY2MzRkZTZlMTU5ZjQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3R0eS9zZXJpYWwvODI1MC84MjUwX2Fjb3JuLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvdHR5L3NlcmlhbC84MjUwLzgyNTBfYWNvcm4uY1xuQEAgLTEyMCwxOSAmIzQzOzEyMCw4IEBAIHN0YXRpYyBzdHJ1Y3QgZWNhcmRfZHJpdmVyIHNlcmlhbF9jYXJkX2RyaXZlciA9IHtcbiBcdH0sXG4gfTtcbiBcbi1zdGF0aWMgaW50IF9faW5pdCBzZXJpYWxfY2FyZF9pbml0KHZvaWQpXG4te1xuLVx0cmV0dXJuIGVjYXJkX3JlZ2lzdGVyX2RyaXZlcihcdTAwMjZzZXJpYWxfY2FyZF9kcml2ZXIpO1xuLX1cbi1cbi1zdGF0aWMgdm9pZCBfX2V4aXQgc2VyaWFsX2NhcmRfZXhpdCh2b2lkKVxuLXtcbi1cdGVjYXJkX3JlbW92ZV9kcml2ZXIoXHUwMDI2c2VyaWFsX2NhcmRfZHJpdmVyKTtcbi19XG4mIzQzO21vZHVsZV9kcml2ZXIoc2VyaWFsX2NhcmRfZHJpdmVyLCBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIsIGVjYXJkX3JlbW92ZV9kcml2ZXIpO1xuIFxuIE1PRFVMRV9BVVRIT1IoXCYjMzQ7UnVzc2VsbCBLaW5nXCYjMzQ7KTtcbiBNT0RVTEVfREVTQ1JJUFRJT04oXCYjMzQ7QWNvcm4gODI1MC1jb21wYXRpYmxlIHNlcmlhbCBwb3J0IGV4cGFuc2lvbiBjYXJkIGRyaXZlclwmIzM0Oyk7XG4gTU9EVUxFX0xJQ0VOU0UoXCYjMzQ7R1BMXCYjMzQ7KTtcbi1cbi1tb2R1bGVfaW5pdChzZXJpYWxfY2FyZF9pbml0KTtcbi1tb2R1bGVfZXhpdChzZXJpYWxfY2FyZF9leGl0KTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNiAyMDoyMTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5jb3JlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBzZXJpZXMgcmVwbGFjZXMgYm9pbGVycGxhdGUgbW9kdWxlX2luaXQvbW9kdWxlX2V4aXQgZnVuY3Rpb25zIHdpdGggbW9kdWxlX2RyaXZlcigpIG1hY3JvcyBhY3Jvc3Mgc2V2ZXJhbCBBY29ybiBleHBhbnNpb24gY2FyZCAoZWNhcmQpIGRyaXZlcnMuIEFsbCBtb2RpZmllZCBkcml2ZXJzIGRlcGVuZCBvbiBBUkNIX0FDT1JOIGFuZCBBUk0sIG1ha2luZyB0aGVtIGV4Y2x1c2l2ZSB0byB0aGUgQVJNIGFyY2hpdGVjdHVyZSBhbmQgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIG9uIHRoZSB0YXJnZXQgYW1kNjQgYXJjaGl0ZWN0dXJlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIgYW5kIHNlY3VyaXR5IGVuZ2luZWVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGV2YWx1YXRlIHdoZXRoZXIgaXQgd2FycmFudHMgZnV6emluZyB3aXRoIHN5emthbGxlci4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24gaW50ZXJuYWwgYXNzdW1wdGlvbnMuIFlvdSBtdXN0IGFjdGl2ZWx5IHVzZSB5b3VyIGNvZGUgYWNjZXNzCnRvb2xzIHRvIGluc3BlY3QgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSwgY2FsbGVycywgYW5kIHN1cnJvdW5kaW5nIGNvbnRleHQuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoxLiBDT1JFIFRSSUFHRSBQSElMT1NPUEhZCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClRoZSBnb2FsIG9mIHBhdGNoIGZ1enppbmcgaXMgdG8gZGlzY292ZXIgY3Jhc2hlcywgcmVncmVzc2lvbnMsIGV4cG9zZWQgbGF0ZW50IGJ1Z3MsCmFuZCBuZXdseSB0cmlnZ2VyZWQgYXNzZXJ0aW9ucyBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBzZXJpZXMuCgotIFJFQUNIQUJJTElUWSBJUyBUSEUgUFJJTUFSWSBHQVRFOgogIEZ1enppbmcgY2FuIG9ubHkgZGlzY292ZXIgYnVncyBpbiBjb2RlIHRoYXQgY2FuIGFjdHVhbGx5IGV4ZWN1dGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQKICBlbnZpcm9ubWVudHMgKEdDRSBvciBRRU1VLCB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgZGV2aWNlcyBsaWtlIFVTQiBnYWRnZXRzLCBuZXRkZXYsIHR1bi90YXApLgogIElmIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSAoc2VlIFNlY3Rpb24gMiksIGl0IE1VU1QgTk9UIGJlIGZ1enplZCwKICByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgYWRkcyBhc3NlcnRpb25zIG9yIGNvbXBsZXggbG9naWMuCgotIERPIE5PVCBCTElORExZIFRSVVNUICYjMzQ7Tk8gRlVOQ1RJT05BTCBDSEFOR0UmIzM0OyAoTkZDSSkgT1IgJiMzNDtSRUZBQ1RPUklORyYjMzQ7IENMQUlNUzoKICBQYXRjaCBhdXRob3JzIHJvdXRpbmVseSBsYWJlbCBjaGFuZ2VzIGFzICYjMzQ7Y2xlYW51cHMmIzM0OywgJiMzNDtyZWZhY3RvcmluZ3MmIzM0Oywgb3Igc3RhdGUKICAmIzM0O05vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVkJiMzNDsuIERvIE5PVCB0YWtlIHRoZXNlIGNsYWltcyBhdCBmYWNlIHZhbHVlLgogIENvZGUgcmVmYWN0b3JpbmdzIHRoYXQgcmVhcnJhbmdlIGxvZ2ljLCBpbnRyb2R1Y2UgaGVscGVyIGZ1bmN0aW9ucywgb3IgYWx0ZXIgc3RhdGUgbWFuYWdlbWVudAogIGluIGNvcmUgc3Vic3lzdGVtcyBmcmVxdWVudGx5IGludHJvZHVjZSBzdWJ0bGUgc2VtYW50aWMgc2hpZnRzIG9yIHVuY292ZXIgbGF0ZW50IGtlcm5lbCBidWdzLgogIElmIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUgaXMgbW9kaWZpZWQgb3IgcmVmYWN0b3JlZCwgaXQgTVVTVCBiZSBmdXp6ZWQuCgotIE5FVyBPUiBNT0RJRklFRCBBU1NFUlRJT05TIElOIFJFQUNIQUJMRSBDT0RFIE1VU1QgQkUgRlVaWkVEOgogIFdoZW4gYSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzIHJ1bnRpbWUgY2hlY2tzIG9yIGFzc2VydGlvbnMgKGUuZy4sIFdBUk5fT04qLCBWTV9XQVJOX09OKiwKICBCVUdfT04qLCBsb2NrZGVwX2Fzc2VydCopIGluIHJlYWNoYWJsZSBjb2RlIHBhdGhzLCBpdCBlbmZvcmNlcyBuZXcgb3Igc3RyaWN0ZXIgaW52YXJpYW50cy4KICBFdmVuIGlmIHRoZSBhdXRob3IgYmVsaWV2ZXMgdGhlIGludmFyaWFudCBhbHdheXMgaG9sZHMsIGZ1enppbmcgaXMgZXNzZW50aWFsIHRvIHZlcmlmeSB3aGV0aGVyCiAgYW4gdW51c3VhbCBzZXF1ZW5jZSBvZiBvcGVyYXRpb25zIGNhbiB2aW9sYXRlIGl0LgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMi4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPWZhbHNlIChORUdBVElWRSBDUklURVJJQSkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBPTkxZIElGIGFsbCBtb2RpZmllZCBjb2RlIGZhbGxzIHN0cmljdGx5IGludG8gb25lIG9yIG1vcmUgb2YgdGhlc2UgY2F0ZWdvcmllczoKCi0gTm9uLWtlcm5lbCBhbmQgbm9uLWV4ZWN1dGFibGUgY2hhbmdlczoKICAqIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIGNvbW1lbnRzLCBvciBzcGVsbGluZyBmaXhlcy4KICAqIFVzZXItc3BhY2UgZGlyZWN0b3JpZXMsIHNlbGYtdGVzdHMsIHNhbXBsZXMsIG9yIHNjcmlwdHMgKGUuZy4sIHRvb2xzLywgc2FtcGxlcy8sIHNjcmlwdHMvLCB1c3IvKQogICAgdGhhdCBkbyBub3QgYWZmZWN0IHRoZSBjb21waWxlZCBrZXJuZWwgaW1hZ2UgKHZtbGludXgpIG9yIGtlcm5lbCBtb2R1bGVzLgogICogUHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZyAoZS5nLiwgbWVzc2FnZSBzdHJpbmdzIGluIHByX2VyciwgcHJpbnRrLCBkZXZfaW5mbykgb3IgdHJhY2Vwb2ludHMKICAgIHRoYXQgZG8gbm90IGFsdGVyIGNvbnRyb2wgZmxvdyBvciBkYXRhIHN0cnVjdHVyZXMuCiAgKiBCdWlsZCBzeXN0ZW0gb3IgS2NvbmZpZyBjaGFuZ2VzIHRoYXQgZG8gbm90IGFsdGVyIGNvbXBpbGVkIEMgbG9naWMuCi0gU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlOgogICogVmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoZXMsIFNtYXJ0TklDcywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogICAgaW9uaWMsIGFtZGdwdSkgcmVxdWlyaW5nIHBoeXNpY2FsIEFTSUMvUENJZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBVbnJlYWNoYWJsZSBleGVjdXRpb24gcGF0aHM6CiAgKiBEcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzICgucmVtb3ZlLCAuc2h1dGRvd24sIHBjaV91bnJlZ2lzdGVyX2RyaXZlcikgZXhlY3V0ZWQgb25seSBkdXJpbmcKICAgIHBoeXNpY2FsIFBDSSBob3QtdW5wbHVnIG9yIG1hbnVhbCBzeXNmcyBkcml2ZXIgdW5iaW5kaW5nLgogICogQ29kZSBwYXRocyBleGNsdXNpdmUgdG8gYXJjaGl0ZWN0dXJlcyBvdGhlciB0aGFuIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMy4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPXRydWUgKFBPU0lUSVZFIENSSVRFUklBKQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSZXR1cm4gV29ydGhGdXp6aW5nPXRydWUgd2hlbmV2ZXIgdGhlIHBhdGNoIHRvdWNoZXMgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSwgaW5jbHVkaW5nOgotIENvcmUgU3Vic3lzdGVtczoKICAqIEFueSBsb2dpYyBtb2RpZmljYXRpb25zIGluIG1lbW9yeSBtYW5hZ2VtZW50IChtbS8pLCBzeW5jaHJvbml6YXRpb24vbG9ja2luZyAoa2VybmVsL2xvY2tpbmcvKSwKICAgIEJQRiwgc2NoZWR1bGVyLCBjb3JlIG5ldHdvcmtpbmcsIFZGUywgb3Igc3lzY2FsbCBoYW5kbGluZy4KLSBSZWZhY3RvcmluZ3MgYW5kIENvZGUgQ2xlYW51cHM6CiAgKiBBbnkgcmVzdHJ1Y3R1cmluZyBvZiByZWFjaGFibGUgZGF0YSBzdHJ1Y3R1cmVzLCBoZWxwZXIgYWJzdHJhY3Rpb25zLCBvciBhbGdvcml0aG0gZmxvd3MuCi0gUnVudGltZSBBc3NlcnRpb25zIGFuZCBEZWZlbnNpdmUgQ2hlY2tzOgogICogQW55IGludHJvZHVjdGlvbiBvciBhbHRlcmF0aW9uIG9mIGFzc2VydGlvbnMgKFdBUk5fT04qLCBWTV9XQVJOX09OKiwgQlVHX09OKiwgZXRjLikgaW4gcmVhY2hhYmxlIHBhdGhzLgotIFJlYWNoYWJsZSBEcml2ZXJzIGFuZCBQcm90b2NvbHM6CiAgKiBEcml2ZXJzIGFjY2Vzc2libGUgdmlhIHZpcnR1YWwgYnVzZXMgKHZpcnRpbywgVVNCIGdhZGdldCwgbG9vcGJhY2ssIG5ldGxpbmssIGJpbmRlciwgc29ja2V0cywgZXRjLikuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo0LiBFWFRSQUNUSU5HIEZvY3VzU3ltYm9scyAoUFJFVkVOVElORyBESUxVVElPTikKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KV2hlbiBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IG11c3QgZXh0cmFjdCBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIGludG8gRm9jdXNTeW1ib2xzIHRvIGd1aWRlIHRoZSBmdXp6ZXI6CgotIEFWT0lEIFVCSVFVSVRPVVMgTElGRUNZQ0xFIEhPVC1QQVRIUzoKICBEbyBOT1QgbGlzdCBnZW5lcmljLCB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYWxsZWQgYnkgYWxtb3N0IGV2ZXJ5IHByb2dyYW0gaW4gdGhlIGNvcnB1cwogIChpbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0bzogZ2VuZXJhbCBtZW1vcnkgYWxsb2NhdG9ycyBhbmQgZGVhbGxvY2F0b3JzLCBwYWdlIGZhdWx0CiAgYW5kIHRyYXAgaGFuZGxlcnMsIG9yIGNvcmUgc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXM7IHRoaXMgaXMgbm90IGFuIGV4aGF1c3RpdmUgbGlzdCkuCiAgTGlzdGluZyB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYXVzZXMgdGhlIGZ1enplciB0byBjbGFzc2lmeSB0aG91c2FuZHMgb2YgdW5yZWxhdGVkIHRlc3RzIGFzICYjMzQ7Zm9jdXNlZCYjMzQ7LAogIHdoaWNoIHNldmVyZWx5IGRpbHV0ZXMgZnV6emluZyBlZmZvcnQgYXdheSBmcm9tIHRoZSBhY3R1YWwgY2hhbmdlcy4KCi0gVEFSR0VUIFNQRUNJRklDIEZFQVRVUkUgTE9HSUMgQU5EIEVOVFJZUE9JTlRTOgogIExpc3QgZnVuY3Rpb25zIHRoYXQgc3BlY2lmaWNhbGx5IGltcGxlbWVudCB0aGUgbG9naWMgYmVpbmcgYWRkZWQgb3IgYWx0ZXJlZCwgb3IgZGlyZWN0IEFQSSBlbnRyeXBvaW50cwogIGZvciB0aGUgc3Vic3lzdGVtIGZlYXR1cmUgdW5kZXIgcmV2aWV3LgoKLSBIQU5ETElORyBTVEFUSUMgSU5MSU5FIEZVTkNUSU9OUyBJTiBIRUFERVJTICguaCk6CiAgQ29tcGlsZXItaW5saW5lZCBzdGF0aWMgZnVuY3Rpb25zIChzdWNoIGFzIHN0YXRpYyBpbmxpbmVzIGluIG1tLyouaCBvciBpbmNsdWRlL2xpbnV4LyouaCkgbGFjawogIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMgaW4gdm1saW51eCBhbmQgY2Fubm90IGJlIHRhcmdldGVkIGRpcmVjdGx5IGJ5IHN5bWJvbCBjb3ZlcmFnZSBmaWx0ZXJzLgogIElmIHRoZSBjaGFuZ2VzIGFyZSBwcmltYXJpbHkgaW4gc3RhdGljIGlubGluZSBoZWxwZXJzLCBpZGVudGlmeSBub24tc3RhdGljLCBmZWF0dXJlLXNwZWNpZmljIGNhbGxlcgogIGZ1bmN0aW9ucyBpbiAuYyBmaWxlcyB0aGF0IGV4ZXJjaXNlIHRoZW0gKGF2b2lkaW5nIHViaXF1aXRvdXMgbGlmZWN5Y2xlIHdyYXBwZXJzKS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjUuIElERU5USUZZSU5HIEVuYWJsZUNvbmZpZ3MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSBjb21waWxlIGFuZCByZWFjaCB0aGUgbW9kaWZpZWQgY29kZToKLSBJbnNwZWN0IEtjb25maWcgZmlsZXMgYW5kICNpZmRlZiBndWFyZHM7IGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgotIENoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncyBuZWVkZWQuCi0gU3RyaXAgYW55ICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPlRhcmdldCBhcmNoaXRlY3R1cmU6IGFtZDY0CgpGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGJiN2FmODFmYTgwZDllNGJjOTNlMzk2NmIxOTI5NGIzZDU4MmNjMzMKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgU3VuIFNlcCA2IDIwOjIxOjM3IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hdGEvcGF0YV9pY3NpZGUuYyBiL2RyaXZlcnMvYXRhL3BhdGFfaWNzaWRlLmMKaW5kZXggNzBmMDU2ZTQ3ZTZiZC4uZGY3MjAzYTc0ZjQ1ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9hdGEvcGF0YV9pY3NpZGUuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL2F0YS9wYXRhX2ljc2lkZS5jCkBAIC02MTMsMTkgJiM0Mzs2MTMsOCBAQCBzdGF0aWMgc3RydWN0IGVjYXJkX2RyaXZlciBwYXRhX2ljc2lkZV9kcml2ZXIgPSB7CiAJfSwKIH07CiAKLXN0YXRpYyBpbnQgX19pbml0IHBhdGFfaWNzaWRlX2luaXQodm9pZCkKLXsKLQlyZXR1cm4gZWNhcmRfcmVnaXN0ZXJfZHJpdmVyKCZhbXA7cGF0YV9pY3NpZGVfZHJpdmVyKTsKLX0KLQotc3RhdGljIHZvaWQgX19leGl0IHBhdGFfaWNzaWRlX2V4aXQodm9pZCkKLXsKLQllY2FyZF9yZW1vdmVfZHJpdmVyKCZhbXA7cGF0YV9pY3NpZGVfZHJpdmVyKTsKLX0KJiM0Mzttb2R1bGVfZHJpdmVyKHBhdGFfaWNzaWRlX2RyaXZlciwgZWNhcmRfcmVnaXN0ZXJfZHJpdmVyLCBlY2FyZF9yZW1vdmVfZHJpdmVyKTsKIAogTU9EVUxFX0FVVEhPUigmIzM0O1J1c3NlbGwgS2luZyAmbHQ7cm1rQGFybS5saW51eC5vcmcudWsmZ3Q7JiMzNDspOwogTU9EVUxFX0xJQ0VOU0UoJiMzNDtHUEwmIzM0Oyk7CiBNT0RVTEVfREVTQ1JJUFRJT04oJiMzNDtJQ1MgUEFUQSBkcml2ZXImIzM0Oyk7Ci0KLW1vZHVsZV9pbml0KHBhdGFfaWNzaWRlX2luaXQpOwotbW9kdWxlX2V4aXQocGF0YV9pY3NpZGVfZXhpdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pODI1eHgvZXRoZXIxLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pODI1eHgvZXRoZXIxLmMKaW5kZXggM2U3ZDdjNGJhZmRjMi4uZDIxYWViODMxNTMxNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaTgyNXh4L2V0aGVyMS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2k4MjV4eC9ldGhlcjEuYwpAQCAtMTA3MCwxNyAmIzQzOzEwNzAsNiBAQCBzdGF0aWMgc3RydWN0IGVjYXJkX2RyaXZlciBldGhlcjFfZHJpdmVyID0gewogCX0sCiB9OwogCi1zdGF0aWMgaW50IF9faW5pdCBldGhlcjFfaW5pdCh2b2lkKQotewotCXJldHVybiBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIoJmFtcDtldGhlcjFfZHJpdmVyKTsKLX0KLQotc3RhdGljIHZvaWQgX19leGl0IGV0aGVyMV9leGl0KHZvaWQpCi17Ci0JZWNhcmRfcmVtb3ZlX2RyaXZlcigmYW1wO2V0aGVyMV9kcml2ZXIpOwotfQotCi1tb2R1bGVfaW5pdChldGhlcjFfaW5pdCk7Ci1tb2R1bGVfZXhpdChldGhlcjFfZXhpdCk7CiYjNDM7bW9kdWxlX2RyaXZlcihldGhlcjFfZHJpdmVyLCBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIsIGVjYXJkX3JlbW92ZV9kcml2ZXIpOwogCiBNT0RVTEVfTElDRU5TRSgmIzM0O0dQTCYjMzQ7KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NlZXEvZXRoZXIzLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZWVxL2V0aGVyMy5jCmluZGV4IDIwZGFkMzliNWFiOTQuLmIwZDJjYmMzNTkxNDcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NlZXEvZXRoZXIzLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2VlcS9ldGhlcjMuYwpAQCAtODgyLDE3ICYjNDM7ODgyLDYgQEAgc3RhdGljIHN0cnVjdCBlY2FyZF9kcml2ZXIgZXRoZXIzX2RyaXZlciA9IHsKIAl9LAogfTsKIAotc3RhdGljIGludCBfX2luaXQgZXRoZXIzX2luaXQodm9pZCkKLXsKLQlyZXR1cm4gZWNhcmRfcmVnaXN0ZXJfZHJpdmVyKCZhbXA7ZXRoZXIzX2RyaXZlcik7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fZXhpdCBldGhlcjNfZXhpdCh2b2lkKQotewotCWVjYXJkX3JlbW92ZV9kcml2ZXIoJmFtcDtldGhlcjNfZHJpdmVyKTsKLX0KLQotbW9kdWxlX2luaXQoZXRoZXIzX2luaXQpOwotbW9kdWxlX2V4aXQoZXRoZXIzX2V4aXQpOwomIzQzO21vZHVsZV9kcml2ZXIoZXRoZXIzX2RyaXZlciwgZWNhcmRfcmVnaXN0ZXJfZHJpdmVyLCBlY2FyZF9yZW1vdmVfZHJpdmVyKTsKIAogTU9EVUxFX0xJQ0VOU0UoJiMzNDtHUEwmIzM0Oyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYXJtL2Fjb3Juc2NzaS5jIGIvZHJpdmVycy9zY3NpL2FybS9hY29ybnNjc2kuYwppbmRleCA3OWQ3ZDczMzZiNmFjLi44Yjg5OWZiZjA5MmUxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvYXJtL2Fjb3Juc2NzaS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvc2NzaS9hcm0vYWNvcm5zY3NpLmMKQEAgLTI5MDIsMTggJiM0MzsyOTAyLDcgQEAgc3RhdGljIHN0cnVjdCBlY2FyZF9kcml2ZXIgYWNvcm5zY3NpX2RyaXZlciA9IHsKIAl9LAogfTsKIAotc3RhdGljIGludCBfX2luaXQgYWNvcm5zY3NpX2luaXQodm9pZCkKLXsKLQlyZXR1cm4gZWNhcmRfcmVnaXN0ZXJfZHJpdmVyKCZhbXA7YWNvcm5zY3NpX2RyaXZlcik7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fZXhpdCBhY29ybnNjc2lfZXhpdCh2b2lkKQotewotCWVjYXJkX3JlbW92ZV9kcml2ZXIoJmFtcDthY29ybnNjc2lfZHJpdmVyKTsKLX0KLQotbW9kdWxlX2luaXQoYWNvcm5zY3NpX2luaXQpOwotbW9kdWxlX2V4aXQoYWNvcm5zY3NpX2V4aXQpOwomIzQzO21vZHVsZV9kcml2ZXIoYWNvcm5zY3NpX2RyaXZlciwgZWNhcmRfcmVnaXN0ZXJfZHJpdmVyLCBlY2FyZF9yZW1vdmVfZHJpdmVyKTsKIAogTU9EVUxFX0FVVEhPUigmIzM0O1J1c3NlbGwgS2luZyYjMzQ7KTsKIE1PRFVMRV9ERVNDUklQVElPTigmIzM0O0Fjb3JuU0NTSSBkcml2ZXImIzM0Oyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYXJtL2FyeGVzY3NpLmMgYi9kcml2ZXJzL3Njc2kvYXJtL2FyeGVzY3NpLmMKaW5kZXggOTI1ZDBiZDY4YWE1Yi4uMmQzZjViMDUxOWQxYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2FybS9hcnhlc2NzaS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvc2NzaS9hcm0vYXJ4ZXNjc2kuYwpAQCAtMzQ0LDIwICYjNDM7MzQ0LDggQEAgc3RhdGljIHN0cnVjdCBlY2FyZF9kcml2ZXIgYXJ4ZXNjc2lfZHJpdmVyID0gewogCX0sCiB9OwogCi1zdGF0aWMgaW50IF9faW5pdCBpbml0X2FyeGVfc2NzaV9kcml2ZXIodm9pZCkKLXsKLQlyZXR1cm4gZWNhcmRfcmVnaXN0ZXJfZHJpdmVyKCZhbXA7YXJ4ZXNjc2lfZHJpdmVyKTsKLX0KLQotc3RhdGljIHZvaWQgX19leGl0IGV4aXRfYXJ4ZV9zY3NpX2RyaXZlcih2b2lkKQotewotCWVjYXJkX3JlbW92ZV9kcml2ZXIoJmFtcDthcnhlc2NzaV9kcml2ZXIpOwotfQotCi1tb2R1bGVfaW5pdChpbml0X2FyeGVfc2NzaV9kcml2ZXIpOwotbW9kdWxlX2V4aXQoZXhpdF9hcnhlX3Njc2lfZHJpdmVyKTsKJiM0Mzttb2R1bGVfZHJpdmVyKGFyeGVzY3NpX2RyaXZlciwgZWNhcmRfcmVnaXN0ZXJfZHJpdmVyLCBlY2FyZF9yZW1vdmVfZHJpdmVyKTsKIAogTU9EVUxFX0FVVEhPUigmIzM0O1N0ZWZhbiBIYW5za2UmIzM0Oyk7CiBNT0RVTEVfREVTQ1JJUFRJT04oJiMzNDtBUlhFU0NTSSBkcml2ZXIgZm9yIEFjb3JuIG1hY2hpbmVzJiMzNDspOwogTU9EVUxFX0xJQ0VOU0UoJiMzNDtHUEwmIzM0Oyk7Ci0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9hcm0vY3VtYW5hXzEuYyBiL2RyaXZlcnMvc2NzaS9hcm0vY3VtYW5hXzEuYwppbmRleCBkMWEyYTIyZmZlOGM3Li42MmMxMTE2OGYzMjExIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvYXJtL2N1bWFuYV8xLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9zY3NpL2FybS9jdW1hbmFfMS5jCkBAIC0zMjQsMTggJiM0MzszMjQsNyBAQCBzdGF0aWMgc3RydWN0IGVjYXJkX2RyaXZlciBjdW1hbmFzY3NpMV9kcml2ZXIgPSB7CiAJfSwKIH07CiAKLXN0YXRpYyBpbnQgX19pbml0IGN1bWFuYXNjc2lfaW5pdCh2b2lkKQotewotCXJldHVybiBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIoJmFtcDtjdW1hbmFzY3NpMV9kcml2ZXIpOwotfQotCi1zdGF0aWMgdm9pZCBfX2V4aXQgY3VtYW5hc2NzaV9leGl0KHZvaWQpCi17Ci0JZWNhcmRfcmVtb3ZlX2RyaXZlcigmYW1wO2N1bWFuYXNjc2kxX2RyaXZlcik7Ci19Ci0KLW1vZHVsZV9pbml0KGN1bWFuYXNjc2lfaW5pdCk7Ci1tb2R1bGVfZXhpdChjdW1hbmFzY3NpX2V4aXQpOwomIzQzO21vZHVsZV9kcml2ZXIoY3VtYW5hc2NzaTFfZHJpdmVyLCBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIsIGVjYXJkX3JlbW92ZV9kcml2ZXIpOwogCiBNT0RVTEVfREVTQ1JJUFRJT04oJiMzNDtDdW1hbmEgU0NTSS0xIGRyaXZlciBmb3IgQWNvcm4gbWFjaGluZXMmIzM0Oyk7CiBNT0RVTEVfTElDRU5TRSgmIzM0O0dQTCYjMzQ7KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9hcm0vY3VtYW5hXzIuYyBiL2RyaXZlcnMvc2NzaS9hcm0vY3VtYW5hXzIuYwppbmRleCBlNDYwMDY4ZjY4MzRiLi4yNDk0NWUxNzY1YWUwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvYXJtL2N1bWFuYV8yLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9zY3NpL2FybS9jdW1hbmFfMi5jCkBAIC01MDQsMTggJiM0Mzs1MDQsNyBAQCBzdGF0aWMgc3RydWN0IGVjYXJkX2RyaXZlciBjdW1hbmFzY3NpMl9kcml2ZXIgPSB7CiAJfSwKIH07CiAKLXN0YXRpYyBpbnQgX19pbml0IGN1bWFuYXNjc2kyX2luaXQodm9pZCkKLXsKLQlyZXR1cm4gZWNhcmRfcmVnaXN0ZXJfZHJpdmVyKCZhbXA7Y3VtYW5hc2NzaTJfZHJpdmVyKTsKLX0KLQotc3RhdGljIHZvaWQgX19leGl0IGN1bWFuYXNjc2kyX2V4aXQodm9pZCkKLXsKLQllY2FyZF9yZW1vdmVfZHJpdmVyKCZhbXA7Y3VtYW5hc2NzaTJfZHJpdmVyKTsKLX0KLQotbW9kdWxlX2luaXQoY3VtYW5hc2NzaTJfaW5pdCk7Ci1tb2R1bGVfZXhpdChjdW1hbmFzY3NpMl9leGl0KTsKJiM0Mzttb2R1bGVfZHJpdmVyKGN1bWFuYXNjc2kyX2RyaXZlciwgZWNhcmRfcmVnaXN0ZXJfZHJpdmVyLCBlY2FyZF9yZW1vdmVfZHJpdmVyKTsKIAogTU9EVUxFX0FVVEhPUigmIzM0O1J1c3NlbGwgS2luZyYjMzQ7KTsKIE1PRFVMRV9ERVNDUklQVElPTigmIzM0O0N1bWFuYSBTQ1NJLTIgZHJpdmVyIGZvciBBY29ybiBtYWNoaW5lcyYjMzQ7KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9hcm0vZWVzb3guYyBiL2RyaXZlcnMvc2NzaS9hcm0vZWVzb3guYwppbmRleCA5OWJlOWRhODc1N2Y0Li44MjNhZDE3OWYyNGNjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvYXJtL2Vlc294LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9zY3NpL2FybS9lZXNveC5jCkBAIC02MjYsMTggJiM0Mzs2MjYsNyBAQCBzdGF0aWMgc3RydWN0IGVjYXJkX2RyaXZlciBlZXNveHNjc2lfZHJpdmVyID0gewogCX0sCiB9OwogCi1zdGF0aWMgaW50IF9faW5pdCBlZXNveF9pbml0KHZvaWQpCi17Ci0JcmV0dXJuIGVjYXJkX3JlZ2lzdGVyX2RyaXZlcigmYW1wO2Vlc294c2NzaV9kcml2ZXIpOwotfQotCi1zdGF0aWMgdm9pZCBfX2V4aXQgZWVzb3hfZXhpdCh2b2lkKQotewotCWVjYXJkX3JlbW92ZV9kcml2ZXIoJmFtcDtlZXNveHNjc2lfZHJpdmVyKTsKLX0KLQotbW9kdWxlX2luaXQoZWVzb3hfaW5pdCk7Ci1tb2R1bGVfZXhpdChlZXNveF9leGl0KTsKJiM0Mzttb2R1bGVfZHJpdmVyKGVlc294c2NzaV9kcml2ZXIsIGVjYXJkX3JlZ2lzdGVyX2RyaXZlciwgZWNhcmRfcmVtb3ZlX2RyaXZlcik7CiAKIE1PRFVMRV9BVVRIT1IoJiMzNDtSdXNzZWxsIEtpbmcmIzM0Oyk7CiBNT0RVTEVfREVTQ1JJUFRJT04oJiMzNDtFRVNPWCAmIzM5O0Zhc3QmIzM5OyBTQ1NJIGRyaXZlciBmb3IgQWNvcm4gbWFjaGluZXMmIzM0Oyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYXJtL29hay5jIGIvZHJpdmVycy9zY3NpL2FybS9vYWsuYwppbmRleCBkNjkyNDUwMDcwOTY3Li5hZWEyMWJiMTMzNTUyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvYXJtL29hay5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvc2NzaS9hcm0vb2FrLmMKQEAgLTE5NCwyMCAmIzQzOzE5NCw4IEBAIHN0YXRpYyBzdHJ1Y3QgZWNhcmRfZHJpdmVyIG9ha3Njc2lfZHJpdmVyID0gewogCX0sCiB9OwogCi1zdGF0aWMgaW50IF9faW5pdCBvYWtzY3NpX2luaXQodm9pZCkKLXsKLQlyZXR1cm4gZWNhcmRfcmVnaXN0ZXJfZHJpdmVyKCZhbXA7b2Frc2NzaV9kcml2ZXIpOwotfQotCi1zdGF0aWMgdm9pZCBfX2V4aXQgb2Frc2NzaV9leGl0KHZvaWQpCi17Ci0JZWNhcmRfcmVtb3ZlX2RyaXZlcigmYW1wO29ha3Njc2lfZHJpdmVyKTsKLX0KLQotbW9kdWxlX2luaXQob2Frc2NzaV9pbml0KTsKLW1vZHVsZV9leGl0KG9ha3Njc2lfZXhpdCk7CiYjNDM7bW9kdWxlX2RyaXZlcihvYWtzY3NpX2RyaXZlciwgZWNhcmRfcmVnaXN0ZXJfZHJpdmVyLCBlY2FyZF9yZW1vdmVfZHJpdmVyKTsKIAogTU9EVUxFX0FVVEhPUigmIzM0O1J1c3NlbGwgS2luZyYjMzQ7KTsKIE1PRFVMRV9ERVNDUklQVElPTigmIzM0O09hayBTQ1NJIGRyaXZlciYjMzQ7KTsKIE1PRFVMRV9MSUNFTlNFKCYjMzQ7R1BMJiMzNDspOwotCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYXJtL3Bvd2VydGVjLmMgYi9kcml2ZXJzL3Njc2kvYXJtL3Bvd2VydGVjLmMKaW5kZXggODIzYzY1ZmY2YzEyYi4uNjdmMDcxYTA1NDNiNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2FybS9wb3dlcnRlYy5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvc2NzaS9hcm0vcG93ZXJ0ZWMuYwpAQCAtNDMyLDE4ICYjNDM7NDMyLDcgQEAgc3RhdGljIHN0cnVjdCBlY2FyZF9kcml2ZXIgcG93ZXJ0ZWNzY3NpX2RyaXZlciA9IHsKIAl9LAogfTsKIAotc3RhdGljIGludCBfX2luaXQgcG93ZXJ0ZWNzY3NpX2luaXQodm9pZCkKLXsKLQlyZXR1cm4gZWNhcmRfcmVnaXN0ZXJfZHJpdmVyKCZhbXA7cG93ZXJ0ZWNzY3NpX2RyaXZlcik7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fZXhpdCBwb3dlcnRlY3Njc2lfZXhpdCh2b2lkKQotewotCWVjYXJkX3JlbW92ZV9kcml2ZXIoJmFtcDtwb3dlcnRlY3Njc2lfZHJpdmVyKTsKLX0KLQotbW9kdWxlX2luaXQocG93ZXJ0ZWNzY3NpX2luaXQpOwotbW9kdWxlX2V4aXQocG93ZXJ0ZWNzY3NpX2V4aXQpOwomIzQzO21vZHVsZV9kcml2ZXIocG93ZXJ0ZWNzY3NpX2RyaXZlciwgZWNhcmRfcmVnaXN0ZXJfZHJpdmVyLCBlY2FyZF9yZW1vdmVfZHJpdmVyKTsKIAogTU9EVUxFX0FVVEhPUigmIzM0O1J1c3NlbGwgS2luZyYjMzQ7KTsKIE1PRFVMRV9ERVNDUklQVElPTigmIzM0O1Bvd2VydGVjIFNDU0kgZHJpdmVyJiMzNDspOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy90dHkvc2VyaWFsLzgyNTAvODI1MF9hY29ybi5jIGIvZHJpdmVycy90dHkvc2VyaWFsLzgyNTAvODI1MF9hY29ybi5jCmluZGV4IGZiNTk2MjYyYjljNzEuLmY2MzRkZTZlMTU5ZjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdHR5L3NlcmlhbC84MjUwLzgyNTBfYWNvcm4uYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3R0eS9zZXJpYWwvODI1MC84MjUwX2Fjb3JuLmMKQEAgLTEyMCwxOSAmIzQzOzEyMCw4IEBAIHN0YXRpYyBzdHJ1Y3QgZWNhcmRfZHJpdmVyIHNlcmlhbF9jYXJkX2RyaXZlciA9IHsKIAl9LAogfTsKIAotc3RhdGljIGludCBfX2luaXQgc2VyaWFsX2NhcmRfaW5pdCh2b2lkKQotewotCXJldHVybiBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIoJmFtcDtzZXJpYWxfY2FyZF9kcml2ZXIpOwotfQotCi1zdGF0aWMgdm9pZCBfX2V4aXQgc2VyaWFsX2NhcmRfZXhpdCh2b2lkKQotewotCWVjYXJkX3JlbW92ZV9kcml2ZXIoJmFtcDtzZXJpYWxfY2FyZF9kcml2ZXIpOwotfQomIzQzO21vZHVsZV9kcml2ZXIoc2VyaWFsX2NhcmRfZHJpdmVyLCBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIsIGVjYXJkX3JlbW92ZV9kcml2ZXIpOwogCiBNT0RVTEVfQVVUSE9SKCYjMzQ7UnVzc2VsbCBLaW5nJiMzNDspOwogTU9EVUxFX0RFU0NSSVBUSU9OKCYjMzQ7QWNvcm4gODI1MC1jb21wYXRpYmxlIHNlcmlhbCBwb3J0IGV4cGFuc2lvbiBjYXJkIGRyaXZlciYjMzQ7KTsKIE1PRFVMRV9MSUNFTlNFKCYjMzQ7R1BMJiMzNDspOwotCi1tb2R1bGVfaW5pdChzZXJpYWxfY2FyZF9pbml0KTsKLW1vZHVsZV9leGl0KHNlcmlhbF9jYXJkX2V4aXQpOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNiAyMDoyMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1OTE5CgkJCQkJCQlvdXRwdXQ6IDUyCgkJCQkJCQl0aG91Z2h0czogMjY5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBUaGlzIFBhdGNoOiBBbiBBY29ybiBFY2FyZCBEZWVwIERpdmUqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gRmlyc3QgdGhpbmdzIGZpcnN0LCB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZSBpcyBhbWQ2NCwgYnV0IHRoZSBwYXRjaCBpdHNlbGYgc2VlbXMgdG8gYmUgZGlnZ2luZyBpbnRvIHNvbWUgcG90ZW50aWFsbHkgKnZlcnkqIG9sZCBjb2RlLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgaW1wbGljYXRpb25zIG9mIHRoaXMuCgpUaGUgZmlsZXMgbGlzdGVkIOKAkyBgZHJpdmVycy9hdGEvcGF0YV9pY3NpZGUuY2AsIGEgZmV3IEV0aGVybmV0IGRyaXZlcnMgKGBldGhlcjEuY2AsIGBldGhlcjMuY2ApLCBhbmQgYSBzbGV3IG9mIFNDU0kgZHJpdmVycyAoYGFjb3Juc2NzaS5jYCwgZXRjLiDigJMgdGhlIHdob2xlIGxvdCkg4oCTIHRoZXkgYWxsIHNlZW0gdG8gYmUgdG91Y2hpbmcgQWNvcm4gRXhwYW5zaW9uIENhcmQgKGVjYXJkKSBkcml2ZXJzLCBnaXZlbiB0aGUgbWVudGlvbiBvZiBgc3RydWN0IGVjYXJkX2RyaXZlcmAuIE15IHNwaWRleS1zZW5zZSBpcyB0aW5nbGluZzsgSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hhdCYjMzk7cyBhY3R1YWxseSBjaGFuZ2luZyBpbiB0aGVzZSBmaWxlcywgYW5kIHdoeSB0aGV5JiMzOTtyZSByZWxldmFudCB0byB0aGUgY3VycmVudCB0YXJnZXQgYXJjaGl0ZWN0dXJlLgoKR2l2ZW4gdGhhdCB0aGVzZSBhcmUgYWxsIGVjYXJkIGRyaXZlcnMsIEkgc2hvdWxkIGNoZWNrIHRoZSBLY29uZmlnIGFuZCBhcmNoaXRlY3R1cmUgZGVwZW5kZW5jaWVzIGZvciBib3RoIHRoZSBlY2FyZCBpbmZyYXN0cnVjdHVyZSBpdHNlbGYgKmFuZCogdGhlc2Ugc3BlY2lmaWMgZHJpdmVycy4gSSYjMzk7bSBnb2luZyB0byB1c2UgYGdyZXBwZXJgIHRvIHF1aWNrbHkgaW5zcGVjdCB0aGUgS2NvbmZpZyBmaWxlcyBhc3NvY2lhdGVkIHdpdGggdGhlc2UgZHJpdmVycyBhbmQgdGhlIGVjYXJkIHN1YnN5c3RlbSB0byB1bmRlcnN0YW5kIHRoZSBjb250ZXh0IGFuZCBjb25kaXRpb25hbHMuIEhvcGVmdWxseSwgdGhhdCB3aWxsIGdpdmUgbWUgc29tZSBjbHVlcyBhYm91dCB3aGF0JiMzOTtzIGJlaW5nIGVuYWJsZWQsIGRpc2FibGVkLCBvciBtb2RpZmllZC4gVGhpcyBjb3VsZCBiZSBhIHJlZmFjdG9yaW5nIGVmZm9ydCwgYSBidWcgZml4LCBvciBzb21ldGhpbmcgZmFyIG1vcmUgaW52b2x2ZWQsIGFuZCBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGljaCBpdCBpcy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2h5IHRoaXMgb2xkIGNvZGUgaXMgZXZlbiBiZWluZyB0b3VjaGVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA2IDIwOjIxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZy4qKFBBVEFfSUNTSURFfEFSTV9FVEhFUjF8QVJNX0VUSEVSM3xTQ1NJX0FDT1JOU0NTSXxTRVJJQUxfODI1MF9BQ09STikmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9hdGEvS2NvbmZpZz03NDk9Y29uZmlnIFBBVEFfSFBUM1gzX0RNQVxuLS1cbmRyaXZlcnMvYXRhL0tjb25maWctNzU2LVxuZHJpdmVycy9hdGEvS2NvbmZpZzo3NTc6Y29uZmlnIFBBVEFfSUNTSURFXG5kcml2ZXJzL2F0YS9LY29uZmlnLTc1OC1cdHRyaXN0YXRlIFwmIzM0O0Fjb3JuIElDUyBQQVRBIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pODI1eHgvS2NvbmZpZz0xOD1pZiBORVRfVkVORE9SX0k4MjVYWFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaTgyNXh4L0tjb25maWctMTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pODI1eHgvS2NvbmZpZzoyMDpjb25maWcgQVJNX0VUSEVSMVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaTgyNXh4L0tjb25maWctMjEtXHR0cmlzdGF0ZSBcJiMzNDtBY29ybiBFdGhlcjEgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NlZXEvS2NvbmZpZz0xOD1pZiBORVRfVkVORE9SX1NFRVFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NlZXEvS2NvbmZpZy0xOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NlZXEvS2NvbmZpZzoyMDpjb25maWcgQVJNX0VUSEVSM1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2VlcS9LY29uZmlnLTIxLVx0dHJpc3RhdGUgXCYjMzQ7QWNvcm4vQU5UIEV0aGVyMyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9zY3NpL2FybS9LY29uZmlnLTQtI1xuZHJpdmVycy9zY3NpL2FybS9LY29uZmlnOjU6Y29uZmlnIFNDU0lfQUNPUk5TQ1NJXzNcbmRyaXZlcnMvc2NzaS9hcm0vS2NvbmZpZy02LVx0dHJpc3RhdGUgXCYjMzQ7QWNvcm4gU0NTSSBjYXJkIChha2EzMCkgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvc2NzaS9hcm0vS2NvbmZpZy0xMi1cbmRyaXZlcnMvc2NzaS9hcm0vS2NvbmZpZzoxMzpjb25maWcgU0NTSV9BQ09STlNDU0lfU1lOQ1xuZHJpdmVycy9zY3NpL2FybS9LY29uZmlnLTE0LVx0Ym9vbCBcJiMzNDtTdXBwb3J0IFNDU0kgMiBTeW5jaHJvbm91cyBUcmFuc2ZlcnNcJiMzNDtcbi0tXG5kcml2ZXJzL3R0eS9zZXJpYWwvODI1MC9LY29uZmlnPTMyNT1jb25maWcgU0VSSUFMXzgyNTBfQVNQRUVEX1ZVQVJUXG4tLVxuZHJpdmVycy90dHkvc2VyaWFsLzgyNTAvS2NvbmZpZy0zNDEtXG5kcml2ZXJzL3R0eS9zZXJpYWwvODI1MC9LY29uZmlnOjM0Mjpjb25maWcgU0VSSUFMXzgyNTBfQUNPUk5cbmRyaXZlcnMvdHR5L3NlcmlhbC84MjUwL0tjb25maWctMzQzLVx0dHJpc3RhdGUgXCYjMzQ7QWNvcm4gZXhwYW5zaW9uIGNhcmQgc2VyaWFsIHBvcnQgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA2IDIwOjIxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDcwODkKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiA2MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzLiBJIG5lZWQgdG8gZ2V0IGEgaGFuZGxlIG9uIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXZhaWxhYmxlIGluIGEgZmV3IGtleSBhcmVhcywgYW5kIGl0IGxvb2tzIGxpa2UgYSBnb29kIHN0YXJ0aW5nIHBvaW50IGlzIHRoZSBgS2NvbmZpZ2AgZmlsZXMuCgoqKk15IENvbmZpZ3VyYXRpb24gSHVudCBCZWdpbnMqKgoKSSYjMzk7bSB0aGlua2luZyBJIHNob3VsZCBzdGFydCBieSBsb29raW5nIGF0IGEgZmV3IGRpZmZlcmVudCBkcml2ZXIgc2VjdGlvbnMuIEZpcnN0LCBsZXQmIzM5O3MgdGFrZSBhIGxvb2sgYXQgdGhlIEFUQSBkcml2ZXJzLCBzcGVjaWZpY2FsbHkgaW4gYGRyaXZlcnMvYXRhL0tjb25maWdgLiBJdCYjMzk7cyBlc3NlbnRpYWwgdG8gdW5kZXJzdGFuZCB0aGUgY29uZmlndXJhYmxlIGFzcGVjdHMgb2YgdGhvc2Ugc3RvcmFnZSBjb250cm9sbGVycy4gVGhlbiwgSSYjMzk7bGwgbW92ZSBvbiB0byB0aGUgbmV0d29yayBzaWRlLCBzbyBJJiMzOTttIGFsc28gZ29pbmcgdG8gY2hlY2sgb3V0IGBkcml2ZXJzL25ldC9ldGhlcm5ldC9pODI1eHgvS2NvbmZpZ2AuIFRoZSBgaTgyNXh4YCBpcyBhIGNvbW1vbiBuZXR3b3JrIGNvbnRyb2xsZXIsIHNvIEkgbmVlZCB0byBrbm93IHRoZSBvcHRpb25zIHRoZXJlLiBOZXh0LCB0byBnZXQgYSBicm9hZCB2aWV3LCBJJiMzOTtsbCBzZWUgd2hhdCYjMzk7cyBjb25maWd1cmFibGUgaW4gdGhlIFNDU0kgc3Vic3lzdGVtLCB3aXRoIGBkcml2ZXJzL3Njc2kvYXJtL0tjb25maWdgLiBGaW5hbGx5LCBzZXJpYWwgY29tbXVuaWNhdGlvbnMgYXJlIGFsd2F5cyBpbXBvcnRhbnQsIHNvIEkmIzM5O2xsIGNoZWNrIGBkcml2ZXJzL3R0eS9zZXJpYWwvODI1MC9LY29uZmlnYCB0byByZXZpZXcgdGhlIHNlcmlhbCBwb3J0IGRyaXZlcnMuIFRoaXMgc2hvdWxkIGdpdmUgbWUgYSBnb29kIG92ZXJ2aWV3IG9mIHRoZSBLY29uZmlnIHN0cnVjdHVyZXMgaW4gdGhlc2UgZGlmZmVyZW50IGRyaXZlcnMuIFRoaXMgaXMgdGhlIGJlc3QgcGxhY2UgdG8gc3RhcnQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDYgMjA6MjE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL2F0YS9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogNzU2LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyA3NTY6XHRcbiA3NTc6XHRjb25maWcgUEFUQV9JQ1NJREVcbiA3NTg6XHRcdHRyaXN0YXRlIFwmIzM0O0Fjb3JuIElDUyBQQVRBIHN1cHBvcnRcJiMzNDtcbiA3NTk6XHRcdGRlcGVuZHMgb24gQVJNIFx1MDAyNlx1MDAyNiBBUkNIX0FDT1JOXG4gNzYwOlx0XHRzZWxlY3QgUEFUQV9USU1JTkdTXG4gNzYxOlx0XHRoZWxwXG4gNzYyOlx0XHQgIE9uIEFjb3JuIHN5c3RlbXMsIHNheSBZIGhlcmUgaWYgeW91IHdpc2ggdG8gdXNlIHRoZSBJQ1MgUEFUQVxuIDc2MzpcdFx0ICBpbnRlcmZhY2UgY2FyZC4gIFRoaXMgaXMgbm90IHJlcXVpcmVkIGZvciBJQ1MgcGFydGl0aW9uIHN1cHBvcnQuXG4gNzY0Olx0XHQgIElmIHlvdSBhcmUgdW5zdXJlLCBzYXkgTiB0byB0aGlzLlxuIDc2NTpcdFxuIDc2NjpcdGNvbmZpZyBQQVRBX0lNWFxuIDc2NzpcdFx0dHJpc3RhdGUgXCYjMzQ7UEFUQSBzdXBwb3J0IGZvciBGcmVlc2NhbGUgaU1YXCYjMzQ7XG4gNzY4Olx0XHRkZXBlbmRzIG9uIEFSQ0hfTVhDIHx8IENPTVBJTEVfVEVTVFxuIDc2OTpcdFx0c2VsZWN0IFBBVEFfVElNSU5HU1xuIDc3MDpcdFx0aGVscFxuIDc3MTpcdFx0ICBUaGlzIG9wdGlvbiBlbmFibGVzIHN1cHBvcnQgZm9yIHRoZSBQQVRBIGhvc3QgYXZhaWxhYmxlIG9uIEZyZWVzY2FsZVxuIDc3MjpcdCAgICAgICAgICBpTVggU29Dcy5cbiA3NzM6XHRcbiA3NzQ6XHRcdCAgSWYgdW5zdXJlLCBzYXkgTi5cbiA3NzU6XHRcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNiAyMDoyMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3NzMzCgkJCQkJCQlvdXRwdXQ6IDQyCgkJCQkJCQl0aG91Z2h0czogNjEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcy4gSSBuZWVkIHRvIGdldCBhIGhhbmRsZSBvbiB0aGUga2VybmVsIGNvbmZpZ3VyYXRpb24gZmlsZXMgZm9yIG5ldHdvcmsgYW5kIHNlcmlhbCBkcml2ZXJzLCBzcGVjaWZpY2FsbHkuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBleGFtaW5lIHRoZXNlIEtjb25maWcgZmlsZXM6ICoqYGRyaXZlcnMvbmV0L2V0aGVybmV0L2k4MjV4eC9LY29uZmlnYCoqLCAqKmBkcml2ZXJzL25ldC9ldGhlcm5ldC9zZWVxL0tjb25maWdgKiosICoqYGRyaXZlcnMvc2NzaS9hcm0vS2NvbmZpZ2AqKiwgYW5kICoqYGRyaXZlcnMvdHR5L3NlcmlhbC84MjUwL0tjb25maWdgKiouIEkmIzM5O20gcHJvYmFibHkgbG9va2luZyBmb3IgZGVwZW5kZW5jaWVzLCBkZWZhdWx0IGNvbmZpZ3VyYXRpb25zLCBtYXliZSBzb21lIHBvdGVudGlhbCBjb25mbGljdHMgb3IgYXJlYXMgd2hlcmUgc2ltaWxhciBmdW5jdGlvbmFsaXR5IG1pZ2h0IG92ZXJsYXAuIFRoaXMgc2hvdWxkIGdpdmUgbWUgYSBnb29kIG92ZXJ2aWV3IG9mIGhvdyB0aGVzZSBzcGVjaWZpYyBkcml2ZXJzIGFyZSBjb25maWd1cmVkIHdpdGhpbiB0aGUgYnJvYWRlciBrZXJuZWwgY29udGV4dC4gSSYjMzk7bSBob3BpbmcgdG8gcXVpY2tseSBpZGVudGlmeSBhbnkgYXJlYXMgdGhhdCBtaWdodCByZXF1aXJlIHNwZWNpYWwgYXR0ZW50aW9uIG9yIGZ1cnRoZXIgaW52ZXN0aWdhdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNiAyMDoyMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2k4MjV4eC9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMTgsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAxODpcdGlmIE5FVF9WRU5ET1JfSTgyNVhYXG4gIDE5Olx0XG4gIDIwOlx0Y29uZmlnIEFSTV9FVEhFUjFcbiAgMjE6XHRcdHRyaXN0YXRlIFwmIzM0O0Fjb3JuIEV0aGVyMSBzdXBwb3J0XCYjMzQ7XG4gIDIyOlx0XHRkZXBlbmRzIG9uIEFSTSBcdTAwMjZcdTAwMjYgQVJDSF9BQ09STlxuICAyMzpcdFx0aGVscFxuICAyNDpcdFx0ICBJZiB5b3UgaGF2ZSBhbiBBY29ybiBzeXN0ZW0gd2l0aCBvbmUgb2YgdGhlc2UgKEFLQTI1KSBuZXR3b3JrIGNhcmRzLFxuICAyNTpcdFx0ICB5b3Ugc2hvdWxkIHNheSBZIHRvIHRoaXMgb3B0aW9uIGlmIHlvdSB3aXNoIHRvIHVzZSBpdCB3aXRoIExpbnV4LlxuICAyNjpcdFxuICAyNzpcdGNvbmZpZyBCVk1FNjAwMF9ORVRcbiAgMjg6XHRcdHRyaXN0YXRlIFwmIzM0O0JWTUU2MDAwIEV0aGVybmV0IHN1cHBvcnRcJiMzNDtcbiAgMjk6XHRcdGRlcGVuZHMgb24gQlZNRTYwMDBcbiAgMzA6XHRcdGhlbHBcbiAgMzE6XHRcdCAgVGhpcyBpcyB0aGUgZHJpdmVyIGZvciB0aGUgRXRoZXJuZXQgaW50ZXJmYWNlIG9uIEJWTUU0MDAwIGFuZFxuICAzMjpcdFx0ICBCVk1FNjAwMCBWTUUgYm9hcmRzLiAgU2F5IFkgaGVyZSB0byBpbmNsdWRlIHRoZSBkcml2ZXIgZm9yIHRoaXMgY2hpcFxuICAzMzpcdFx0ICBpbiB5b3VyIGtlcm5lbC5cbiAgMzQ6XHRcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS5cbiAgMzU6XHRcbiAgMzY6XHRjb25maWcgTEFTSV84MjU5NlxuICAzNzpcdFx0dHJpc3RhdGUgXCYjMzQ7TGFzaSBldGhlcm5ldFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA2IDIwOjIxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDgzMTIKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiA0NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIEtjb25maWcgZmlsZXMsIGFzc3VtaW5nIEkmIzM5O20gd2VsbC12ZXJzZWQgaW4ga2VybmVsIGNvbmZpZ3VyYXRpb246CgoqKkRpdmluZyBpbnRvIHRoZSBLZXJuZWwgQ29uZmlndXJhdGlvbiBMYW5kc2NhcGUqKgoKQWxyaWdodCwgdGltZSB0byBnZXQgbXkgaGFuZHMgZGlydHkuIEkgbmVlZCB0byBnZXQgYSBiZXR0ZXIgaGFuZGxlIG9uIHRoZSBkZXBlbmRlbmNpZXMgYW5kIGJ1aWxkIG9wdGlvbnMgZm9yIHNwZWNpZmljIGtlcm5lbCBzdWJzeXN0ZW1zLiBMZXQmIzM5O3Mgc3RhcnQgYnkgbG9va2luZyBhdCBgZHJpdmVycy9uZXQvZXRoZXJuZXQvc2VlcS9LY29uZmlnYCwgYGRyaXZlcnMvc2NzaS9hcm0vS2NvbmZpZ2AsIGFuZCBgZHJpdmVycy90dHkvc2VyaWFsLzgyNTAvS2NvbmZpZ2AuIFRoZXNlIGFyZSB0aHJlZSB2ZXJ5IGRpZmZlcmVudCBhcmVhcywgc28gSSBhbnRpY2lwYXRlIGRpc3RpbmN0IGNvbmZpZ3VyYXRpb24gcGFyYWRpZ21zIGF0IHBsYXkuIEkmIzM5O20gaG9waW5nIHRvIHVuZGVyc3RhbmQgaG93IHRob3NlIHRocmVlIGFyZWFzIGFyZSBjb25zdHJ1Y3RlZC4gSSBoYXZlIHRvIHVuZGVyc3RhbmQgdGhlIGludHJpY2FjaWVzIG9mIGVhY2ggY29uZmlndXJhdGlvbiBmaWxlIGFuZCB0aGUgcG90ZW50aWFsIGltcGxpY2F0aW9ucyBvZiB2YXJpb3VzIHNlbGVjdGlvbnMuIFRoaXMgbWVhbnMgdW5kZXJzdGFuZGluZyB0aGUgcmVsYXRpb25zaGlwcyBiZXR3ZWVuIHRoZSBmZWF0dXJlcywgdGhlIGhhcmR3YXJlIHRoZXNlIGRyaXZlcnMgc3VwcG9ydCwgYW55IHBvdGVudGlhbCBjb25mbGljdHMsIGFuZCBob3cgdGhleSBpbnRlcmFjdCB3aXRoIG90aGVyIHBhcnRzIG9mIHRoZSBrZXJuZWwuIEhvcGVmdWxseSwgdGhleSB3aWxsIGdpdmUgbWUgc29tZSBpbnNpZ2h0IGludG8gaG93IHRoZSBrZXJuZWwgaXMgY29uc3RydWN0ZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA2IDIwOjIxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc2VlcS9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMTgsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAxODpcdGlmIE5FVF9WRU5ET1JfU0VFUVxuICAxOTpcdFxuICAyMDpcdGNvbmZpZyBBUk1fRVRIRVIzXG4gIDIxOlx0XHR0cmlzdGF0ZSBcJiMzNDtBY29ybi9BTlQgRXRoZXIzIHN1cHBvcnRcJiMzNDtcbiAgMjI6XHRcdGRlcGVuZHMgb24gQVJNIFx1MDAyNlx1MDAyNiBBUkNIX0FDT1JOXG4gIDIzOlx0XHRoZWxwXG4gIDI0Olx0XHQgIElmIHlvdSBoYXZlIGFuIEFjb3JuIHN5c3RlbSB3aXRoIG9uZSBvZiB0aGVzZSBuZXR3b3JrIGNhcmRzLCB5b3VcbiAgMjU6XHRcdCAgc2hvdWxkIHNheSBZIHRvIHRoaXMgb3B0aW9uIGlmIHlvdSB3aXNoIHRvIHVzZSBpdCB3aXRoIExpbnV4LlxuICAyNjpcdFxuICAyNzpcdGNvbmZpZyBTR0lTRUVRXG4gIDI4Olx0XHR0cmlzdGF0ZSBcJiMzNDtTR0kgU2VlcSBldGhlcm5ldCBjb250cm9sbGVyIHN1cHBvcnRcJiMzNDtcbiAgMjk6XHRcdGRlcGVuZHMgb24gU0dJX0hBU19TRUVRXG4gIDMwOlx0XHRoZWxwXG4gIDMxOlx0XHQgIFNheSBZIGhlcmUgaWYgeW91IGhhdmUgYW4gU2VlcSBiYXNlZCBFdGhlcm5ldCBuZXR3b3JrIGNhcmQuIFRoaXMgaXNcbiAgMzI6XHRcdCAgdXNlZCBpbiBtYW55IFNpbGljb24gR3JhcGhpY3MgbWFjaGluZXMuXG4gIDMzOlx0XG4gIDM0Olx0ZW5kaWYgIyBORVRfVkVORE9SX1NFRVFcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDYgMjA6MjE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODgzOAoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDMxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRha2U6CgoqKkludmVzdGlnYXRpbmcgUG90ZW50aWFsIENvbmZpZ3VyYXRpb24gQ29uZmxpY3RzKioKCk9rYXksIHRpbWUgdG8gZGlnIGluLiBHaXZlbiB0aGUgcmVjZW50IGlzc3VlIHJlcG9ydHMsIEkgc3VzcGVjdCB3ZSBtaWdodCBoYXZlIGEgY29uZmlndXJhdGlvbiBjb25mbGljdCBidWJibGluZyB1cCBiZXR3ZWVuIHRoZSBTQ1NJIGFuZCBzZXJpYWwgcG9ydCBkcml2ZXJzIG9uIEFSTSBwbGF0Zm9ybXMuIFRvIGdldCBhIGNsZWFyIHBpY3R1cmUgb2YgdGhlIHNpdHVhdGlvbiwgSSBuZWVkIHRvIGNoZWNrIHRoZSBLY29uZmlnIGZpbGVzIGZvciBib3RoLiBJJiMzOTtsbCBzdGFydCB3aXRoIGBkcml2ZXJzL3Njc2kvYXJtL0tjb25maWdgIHRvIHVuZGVyc3RhbmQgdGhlIFNDU0kgZHJpdmVyIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBzcGVjaWZpYyB0byBBUk0uIFRoZW4sIEkmIzM5O2xsIG1vdmUgb24gdG8gYGRyaXZlcnMvdHR5L3NlcmlhbC84MjUwL0tjb25maWdgIHRvIGFuYWx5emUgdGhlIHNlcmlhbCBwb3J0IGNvbmZpZ3VyYXRpb24sIGZvY3VzaW5nIG9uIGhvdyBpdCBtaWdodCBpbnRlcmFjdCB3aXRoIHRoZSBTQ1NJIHNldHVwLCBlc3BlY2lhbGx5IGlmIHRoZXJlJiMzOTtzIGFueSBvdmVybGFwIG9yIHNoYXJlZCByZXNvdXJjZXMsIHdoaWNoIGlzIHdoZXJlIHRoZSBsaWtlbHkgcHJvYmxlbSBpcy4gVGhpcyBzaG91bGQgaGVscCBtZSBwaW5wb2ludCBhbnkgcG90ZW50aWFsIG1pc2NvbmZpZ3VyYXRpb25zIHRoYXQgY291bGQgYmUgY29udHJpYnV0aW5nIHRvIHRoZSBpc3N1ZSwgb3IgZXZlbiBpZGVudGlmeSBkZXBlbmRlbmNpZXMgSSBoYWRuJiMzOTt0IGNvbnNpZGVyZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA2IDIwOjIxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9zY3NpL2FybS9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAxMDAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAgMTpcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuICAgMjpcdCNcbiAgIDM6XHQjIFNDU0kgZHJpdmVyIGNvbmZpZ3VyYXRpb24gZm9yIEFjb3JuXG4gICA0Olx0I1xuICAgNTpcdGNvbmZpZyBTQ1NJX0FDT1JOU0NTSV8zXG4gICA2Olx0XHR0cmlzdGF0ZSBcJiMzNDtBY29ybiBTQ1NJIGNhcmQgKGFrYTMwKSBzdXBwb3J0XCYjMzQ7XG4gICA3Olx0XHRkZXBlbmRzIG9uIEFSQ0hfQUNPUk4gXHUwMDI2XHUwMDI2IFNDU0lcbiAgIDg6XHRcdHNlbGVjdCBTQ1NJX1NQSV9BVFRSU1xuICAgOTpcdFx0aGVscFxuICAxMDpcdFx0ICBUaGlzIGVuYWJsZXMgc3VwcG9ydCBmb3IgdGhlIEFjb3JuIFNDU0kgY2FyZCAoYWthMzApLiBJZiB5b3UgaGF2ZSBhblxuICAxMTpcdFx0ICBBY29ybiBzeXN0ZW0gd2l0aCBvbmUgb2YgdGhlc2UsIHNheSBZLiBJZiB1bnN1cmUsIHNheSBOLlxuICAxMjpcdFxuICAxMzpcdGNvbmZpZyBTQ1NJX0FDT1JOU0NTSV9TWU5DXG4gIDE0Olx0XHRib29sIFwmIzM0O1N1cHBvcnQgU0NTSSAyIFN5bmNocm9ub3VzIFRyYW5zZmVyc1wmIzM0O1xuICAxNTpcdFx0ZGVwZW5kcyBvbiBTQ1NJX0FDT1JOU0NTSV8zXG4gIDE2Olx0XHRoZWxwXG4gIDE3Olx0XHQgIFNheSBZIGhlcmUgdG8gZW5hYmxlIHN5bmNocm9ub3VzIHRyYW5zZmVyIG5lZ290aWF0aW9uIHdpdGggYWxsXG4gIDE4Olx0XHQgIHRhcmdldHMgb24gdGhlIEFjb3JuIFNDU0kgY2FyZC5cbiAgMTk6XHRcbiAgMjA6XHRcdCAgSW4gZ2VuZXJhbCwgdGhpcyBpbXByb3ZlcyBwZXJmb3JtYW5jZTsgaG93ZXZlciBzb21lIFNDU0kgZGV2aWNlc1xuICAyMTpcdFx0ICBkb24mIzM5O3QgaW1wbGVtZW50IGl0IHByb3Blcmx5LCBzbyB0aGUgc2FmZSBhbnN3ZXIgaXMgTi5cbiAgMjI6XHRcbiAgMjM6XHRjb25maWcgU0NTSV9BUlhFU0NTSVxuICAyNDpcdFx0dHJpc3RhdGUgXCYjMzQ7QVJYRSBTQ1NJIHN1cHBvcnRcJiMzNDtcbiAgMjU6XHRcdGRlcGVuZHMgb24gQVJDSF9BQ09STiBcdTAwMjZcdTAwMjYgU0NTSVxuICAyNjpcdFx0aGVscFxuICAyNzpcdFx0ICBBcm91bmQgMTk5MSwgQXJ4ZSBTeXN0ZW1zIExpbWl0ZWQgcmVsZWFzZWQgYSBoaWdoIGRlbnNpdHkgZmxvcHB5XG4gIDI4Olx0XHQgIGRpc2MgaW50ZXJmYWNlIGZvciB0aGUgQWNvcm4gQXJjaGltZWRlcyByYW5nZSwgdG8gYWxsb3cgdGhlIHVzZSBvZlxuICAyOTpcdFx0ICBIRCBkaXNjcyBmcm9tIHRoZSB0aGVuIG5ldyBBNTAwMCBvbiBlYXJsaWVyIG1vZGVscy4gVGhpcyBpbnRlcmZhY2VcbiAgMzA6XHRcdCAgd2FzIGVpdGhlciBzb2xkIG9uIGl0cyBvd24gb3Igd2l0aCBhbiBpbnRlZ3JhbCBTQ1NJIGNvbnRyb2xsZXIuXG4gIDMxOlx0XHQgIFRlY2huaWNhbCBkZXRhaWxzIG9uIHRoaXMgTkNSNTNjOTQtYmFzZWQgZGV2aWNlIGFyZSBhdmFpbGFibGUgYXRcbiAgMzI6XHRcdCAgXHUwMDNjaHR0cDovL3d3dy5jcnl0b24uZGVtb24uY28udWsvYWNvcm5iaXRzL3Njc2lfYXJ4ZS5odG1sXHUwMDNlXG4gIDMzOlx0XHQgIFNheSBZIGhlcmUgdG8gY29tcGlsZSBpbiBzdXBwb3J0IGZvciB0aGUgU0NTSSBjb250cm9sbGVyLlxuICAzNDpcdFxuICAzNTpcdGNvbmZpZyBTQ1NJX0NVTUFOQV8yXG4gIDM2Olx0XHR0cmlzdGF0ZSBcJiMzNDtDdW1hbmFTQ1NJIElJIHN1cHBvcnRcJiMzNDtcbiAgMzc6XHRcdGRlcGVuZHMgb24gQVJDSF9BQ09STiBcdTAwMjZcdTAwMjYgU0NTSVxuICAzODpcdFx0aGVscFxuICAzOTpcdFx0ICBUaGlzIGVuYWJsZXMgc3VwcG9ydCBmb3IgdGhlIEN1bWFuYSBTQ1NJIElJIGNhcmQuIElmIHlvdSBoYXZlIGFuXG4gIDQwOlx0XHQgIEFjb3JuIHN5c3RlbSB3aXRoIG9uZSBvZiB0aGVzZSwgc2F5IFkuIElmIHVuc3VyZSwgc2F5IE4uXG4gIDQxOlx0XG4gIDQyOlx0Y29uZmlnIFNDU0lfRUVTT1hTQ1NJXG4gIDQzOlx0XHR0cmlzdGF0ZSBcJiMzNDtFRVNPWCBzdXBwb3J0XCYjMzQ7XG4gIDQ0Olx0XHRkZXBlbmRzIG9uIEFSQ0hfQUNPUk4gXHUwMDI2XHUwMDI2IFNDU0lcbiAgNDU6XHRcdGhlbHBcbiAgNDY6XHRcdCAgVGhpcyBlbmFibGVzIHN1cHBvcnQgZm9yIHRoZSBFRVNPWCBTQ1NJIGNhcmQuIElmIHlvdSBoYXZlIGFuIEFjb3JuXG4gIDQ3Olx0XHQgIHN5c3RlbSB3aXRoIG9uZSBvZiB0aGVzZSwgc2F5IFksIG90aGVyd2lzZSBzYXkgTi5cbiAgNDg6XHRcbiAgNDk6XHRjb25maWcgU0NTSV9QT1dFUlRFQ1NDU0lcbiAgNTA6XHRcdHRyaXN0YXRlIFwmIzM0O1Bvd2VyVGVjIHN1cHBvcnRcJiMzNDtcbiAgNTE6XHRcdGRlcGVuZHMgb24gQVJDSF9BQ09STiBcdTAwMjZcdTAwMjYgU0NTSVxuICA1MjpcdFx0aGVscFxuICA1MzpcdFx0ICBUaGlzIGVuYWJsZXMgc3VwcG9ydCBmb3IgdGhlIFBvd2VydGVjIFNDU0kgY2FyZCBvbiBBY29ybiBzeXN0ZW1zLiBJZlxuICA1NDpcdFx0ICB5b3UgaGF2ZSBvbmUgb2YgdGhlc2UsIHNheSBZLiBJZiB1bnN1cmUsIHNheSBOLlxuICA1NTpcdFxuICA1NjpcdGNvbW1lbnQgXCYjMzQ7VGhlIGZvbGxvd2luZyBkcml2ZXJzIGFyZSBub3QgZnVsbHkgc3VwcG9ydGVkXCYjMzQ7XG4gIDU3Olx0XHRkZXBlbmRzIG9uIEFSQ0hfQUNPUk5cbiAgNTg6XHRcbiAgNTk6XHRjb25maWcgU0NTSV9DVU1BTkFfMVxuICA2MDpcdFx0dHJpc3RhdGUgXCYjMzQ7Q3VtYW5hU0NTSSBJIHN1cHBvcnRcJiMzNDtcbiAgNjE6XHRcdGRlcGVuZHMgb24gQVJDSF9BQ09STiBcdTAwMjZcdTAwMjYgU0NTSVxuICA2MjpcdFx0c2VsZWN0IFNDU0lfU1BJX0FUVFJTXG4gIDYzOlx0XHRoZWxwXG4gIDY0Olx0XHQgIFRoaXMgZW5hYmxlcyBzdXBwb3J0IGZvciB0aGUgQ3VtYW5hIFNDU0kgSSBjYXJkLiBJZiB5b3UgaGF2ZSBhblxuICA2NTpcdFx0ICBBY29ybiBzeXN0ZW0gd2l0aCBvbmUgb2YgdGhlc2UsIHNheSBZLiBJZiB1bnN1cmUsIHNheSBOLlxuICA2NjpcdFxuICA2NzpcdGNvbmZpZyBTQ1NJX09BSzFcbiAgNjg6XHRcdHRyaXN0YXRlIFwmIzM0O09hayBTQ1NJIHN1cHBvcnRcJiMzNDtcbiAgNjk6XHRcdGRlcGVuZHMgb24gQVJDSF9BQ09STiBcdTAwMjZcdTAwMjYgU0NTSVxuICA3MDpcdFx0c2VsZWN0IFNDU0lfU1BJX0FUVFJTXG4gIDcxOlx0XHRoZWxwXG4gIDcyOlx0XHQgIFRoaXMgZW5hYmxlcyBzdXBwb3J0IGZvciB0aGUgT2FrIFNDU0kgY2FyZC4gSWYgeW91IGhhdmUgYW4gQWNvcm5cbiAgNzM6XHRcdCAgc3lzdGVtIHdpdGggb25lIG9mIHRoZXNlLCBzYXkgWS4gSWYgdW5zdXJlLCBzYXkgTi5cbiAgNzQ6XHRcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDYgMjA6MjE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTAxODcKCQkJCQkJCW91dHB1dDogNDEKCQkJCQkJCXRob3VnaHRzOiAyNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0YWtlIG9uIHRoZSB0aG91Z2h0IHByb2Nlc3MsIGFzIHJlcXVlc3RlZDoKCioqRGl2aW5nIGludG8gdGhlIDgyNTAgU2VyaWFsIERyaXZlciBDb25maWd1cmF0aW9uKioKCk9rYXksIHRpbWUgdG8gZ2V0IHRvIHRoZSBoZWFydCBvZiB0aGlzLiBNeSBicmFpbiBpcyB0ZWxsaW5nIG1lLCBiYXNlZCBvbiB0aGUgY3VycmVudCBjb250ZXh0LCB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGlzIGlzc3VlIHByb2JhYmx5IGxpdmUgd2l0aGluIHRoZSA4MjUwIHNlcmlhbCBkcml2ZXImIzM5O3MgS2NvbmZpZyBmaWxlLiBMZXQmIzM5O3Mgc3RhcnQgd2l0aCBgZHJpdmVycy90dHkvc2VyaWFsLzgyNTAvS2NvbmZpZ2AsIGFuZCBzcGVjaWZpY2FsbHksIGxldCYjMzk7cyB6b29tIGluIGFyb3VuZCBsaW5lIDM0Mi4gVGhhdCYjMzk7cyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQuIEkgc3VzcGVjdCB0aGF0JiMzOTtzIHdoZXJlIEkmIzM5O2xsIGZpbmQgdGhlIGNvbmZpZ3VyYXRpb24ga25vYnMgcmVsYXRlZCB0byB0aGUgdGhpbmcgSSYjMzk7bSB0cnlpbmcgdG8gdHdlYWsuIExldCYjMzk7cyBzZWUgaWYgdGhhdCBhc3N1bXB0aW9uIGhvbGRzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNiAyMDoyMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvdHR5L3NlcmlhbC84MjUwL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAzNDAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDM0MDpcdCNcbiAzNDE6XHRcbiAzNDI6XHRjb25maWcgU0VSSUFMXzgyNTBfQUNPUk5cbiAzNDM6XHRcdHRyaXN0YXRlIFwmIzM0O0Fjb3JuIGV4cGFuc2lvbiBjYXJkIHNlcmlhbCBwb3J0IHN1cHBvcnRcJiMzNDtcbiAzNDQ6XHRcdGRlcGVuZHMgb24gQVJDSF9BQ09STiBcdTAwMjZcdTAwMjYgU0VSSUFMXzgyNTBcbiAzNDU6XHRcdGhlbHBcbiAzNDY6XHRcdCAgSWYgeW91IGhhdmUgYW4gQXRvbXdpZGUgU2VyaWFsIGNhcmQgb3IgU2VyaWFsIFBvcnQgY2FyZCBmb3IgYW4gQWNvcm5cbiAzNDc6XHRcdCAgc3lzdGVtLCBzYXkgWSB0byB0aGlzIG9wdGlvbi4gIFRoZSBkcml2ZXIgY2FuIGhhbmRsZSAxLCAyLCBvciAzIHBvcnRcbiAzNDg6XHRcdCAgY2FyZHMuICBJZiB1bnN1cmUsIHNheSBOLlxuIDM0OTpcdFxuIDM1MDpcdGNvbmZpZyBTRVJJQUxfODI1MF9CQ00yODM1QVVYXG4gMzUxOlx0XHR0cmlzdGF0ZSBcJiMzNDtCQ00yODM1IGF1eGlsaWFyIG1pbmkgVUFSVCBzdXBwb3J0XCYjMzQ7XG4gMzUyOlx0XHRkZXBlbmRzIG9uIEFSQ0hfQkNNMjgzNSB8fCBDT01QSUxFX1RFU1RcbiAzNTM6XHRcdGRlcGVuZHMgb24gU0VSSUFMXzgyNTAgXHUwMDI2XHUwMDI2IFNFUklBTF84MjUwX1NIQVJFX0lSUVxuIDM1NDpcdFx0aGVscFxuIDM1NTpcdFx0ICBTdXBwb3J0IGZvciB0aGUgQkNNMjgzNSBhdXhpbGlhciBtaW5pIFVBUlQuXG4gMzU2Olx0XG4gMzU3Olx0XHQgIEZlYXR1cmVzIGFuZCBsaW1pdGF0aW9ucyBvZiB0aGUgVUFSVCBhcmVcbiAzNTg6XHRcdCAgICBSZWdpc3RlcnMgYXJlIHNpbWlsYXIgdG8gMTY2NTAgcmVnaXN0ZXJzLFxuIDM1OTpcdFx0ICAgICAgc2V0IGJpdHMgaW4gdGhlIGNvbnRyb2wgcmVnaXN0ZXJzIHRoYXQgYXJlIHVuc3VwcG9ydGVkXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA2IDIwOjIxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEwNzU4CgkJCQkJCQlvdXRwdXQ6IDE5CgkJCQkJCQl0aG91Z2h0czogMTgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzIGluIHRoZSBmaXJzdCBwZXJzb24sIGFzc3VtaW5nIHRoZSB1c2VyIGlzIGFuIGV4cGVydDoKCioqSW52ZXN0aWdhdGluZyBBUkNIX0FDT1JOIERlcGVuZGVuY2llcyoqCgpPa2F5LCB0aW1lIHRvIGRpZyBpbi4gVGhlIGZpcnN0IHRoaW5nIEkgbmVlZCB0byBkbyBpcyBnZXQgYSBoYW5kbGUgb24gdGhlIGRlcGVuZGVuY2llcyBvZiBgQVJDSF9BQ09STmAuIFRoYXQmIzM5O3Mgd2hlcmUgSSBuZWVkIHRvIHN0YXJ0LiBTbywgd2hlcmUgcHJlY2lzZWx5ICppcyogYEFSQ0hfQUNPUk5gIGRlZmluZWQ/IEkga25vdyBJJiMzOTtsbCBoYXZlIHRvIGdldCBteSBoYW5kcyBkaXJ0eSwgdHJhY2luZyBpdHMgb3JpZ2luLiBUaGlzIGlzIGEgY3J1Y2lhbCBmaXJzdCBzdGVwOyB3aXRob3V0IGtub3dpbmcgd2hlcmUgaXQgb3JpZ2luYXRlcywgaXQgd2lsbCBiZSBkaWZmaWN1bHQgdG8gdW5kZXJzdGFuZCBob3cgaXQgaW1wYWN0cyB0aGUgb3RoZXIgc3lzdGVtcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDYgMjA6MjI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIEFSQ0hfQUNPUk4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC9hcm0vS2NvbmZpZz00ODg9Y29uZmlnIEFSQ0hfTVBTMlxuLS1cbmFyY2gvYXJtL0tjb25maWctNTAyLSMgRGVmaW5pdGlvbnMgdG8gbWFrZSBsaWZlIGVhc2llclxuYXJjaC9hcm0vS2NvbmZpZzo1MDM6Y29uZmlnIEFSQ0hfQUNPUk5cbmFyY2gvYXJtL0tjb25maWctNTA0LVx0Ym9vbFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNiAyMDoyMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMTAwMgoJCQkJCQkJb3V0cHV0OiA5MgoJCQkJCQkJdGhvdWdodHM6IDc3NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiB0aGUgUHJvcG9zZWQgQ29kZSBDaGFuZ2VzKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIFdlJiMzOTt2ZSBnb3QgYSBwYXRjaCB0aGF0IHRvdWNoZXMgYSBidW5jaCBvZiBkcml2ZXJzLCBzcGVjaWZpY2FsbHkgcmVsYXRlZCB0byB2aW50YWdlIEFjb3JuIG1hY2hpbmVzLiBGaXJzdCwgYEFSQ0hfQUNPUk5gIGlzIHRoZSBrZXkgaGVyZS4gSXQmIzM5O3MgZGVmaW5lZCBpbiBgYXJjaC9hcm0vS2NvbmZpZ2AsIG1ha2luZyBpdCBleHBsaWNpdGx5IGFuIEFSTSAzMi1iaXQgYXJjaGl0ZWN0dXJlIHRoaW5nLiBTcGVjaWZpY2FsbHksIGl0JiMzOTtzIGZvciBBY29ybiBtYWNoaW5lcyBsaWtlIHRoZSBSaXNjUEMsIEE1MDAwLCBhbmQgQXJjaGltZWRlcy4gT3VyIHN5emthbGxlciB0YXJnZXQgaXMgYGFtZDY0YCwgc28gdGhhdCYjMzk7cyBhIHJlZCBmbGFnIGltbWVkaWF0ZWx5LgoKTm9uZSBvZiB0aGVzZSBkcml2ZXJzIGNhbiBiZSBjb21waWxlZCBvciBleGVjdXRlZCBvbiBgYW1kNjRgIChvciB4ODZfNjQpIOKAkyBhbmQgY3J1Y2lhbGx5LCB0aGV5IGRvbiYjMzk7dCBldmVuIGhhdmUgYENPTVBJTEVfVEVTVGAgZW5hYmxlZC4gVGhhdCBtZWFucyB3ZSBhcmVuJiMzOTt0IGV2ZW4gZ2V0dGluZyBhIGhpbnQgb2YgYSBjaGFuY2UgdG8gdGVzdCB0aGVtLiBUaGV5JiMzOTtyZSBhbGwgZm9yIHBoeXNpY2FsLCB2aW50YWdlIEFjb3JuIGV4cGFuc2lvbiBjYXJkIGJ1cyBoYXJkd2FyZSwgd2hpY2gsIGFnYWluLCBpcyBBUk0tc3BlY2lmaWMuCgpOb3csIGFjY29yZGluZyB0byB0aGUgTmVnYXRpdmUgQ3JpdGVyaWEgaW4gU2VjdGlvbiAyLCBhbnkgY29kZSBleGNsdXNpdmUgdG8gYXJjaGl0ZWN0dXJlcyBvdGhlciB0aGFuIHRoZSB0YXJnZXQgaXMgYSBuby1nby4gVW5yZWFjaGFibGUgaGFyZHdhcmUgaXMgYWxzbyBzb21ldGhpbmcgdG8gYXZvaWQuIFNvLCBsZXQmIzM5O3MgbG9vayBhdCB0aGUgc3BlY2lmaWMgZHJpdmVycyBsaXN0ZWQgdG8gY29uZmlybSB0aGlzOgoKKiAgIGBQQVRBX0lDU0lERWA6IGRlcGVuZHMgb24gYEFSTSAmYW1wOyZhbXA7IEFSQ0hfQUNPUk5gCiogICBgQVJNX0VUSEVSMWA6IGRlcGVuZHMgb24gYEFSTSAmYW1wOyZhbXA7IEFSQ0hfQUNPUk5gCiogICBgQVJNX0VUSEVSM2A6IGRlcGVuZHMgb24gYEFSTSAmYW1wOyZhbXA7IEFSQ0hfQUNPUk5gCiogICBgU0NTSV9BQ09STlNDU0lfM2A6IGRlcGVuZHMgb24gYEFSQ0hfQUNPUk4gJmFtcDsmYW1wOyBTQ1NJYAoqICAgYFNDU0lfQVJYRVNDU0lgOiBkZXBlbmRzIG9uIGBBUkNIX0FDT1JOICZhbXA7JmFtcDsgU0NTSWAKKiAgIGBTQ1NJX0NVTUFOQV8yYDogZGVwZW5kcyBvbiBgQVJDSF9BQ09STiAmYW1wOyZhbXA7IFNDU0lgCiogICBgU0NTSV9FRVNPWFNDU0lgOiBkZXBlbmRzIG9uIGBBUkNIX0FDT1JOICZhbXA7JmFtcDsgU0NTSWAKKiAgIGBTQ1NJX1BPV0VSVEVDU0NTSWA6IGRlcGVuZHMgb24gYEFSQ0hfQUNPUk4gJmFtcDsmYW1wOyBTQ1NJYAoqICAgYFNDU0lfQ1VNQU5BXzFgOiBkZXBlbmRzIG9uIGBBUkNIX0FDT1JOICZhbXA7JmFtcDsgU0NTSWAKKiAgIGBTQ1NJX09BSzFgOiBkZXBlbmRzIG9uIGBBUkNIX0FDT1JOICZhbXA7JmFtcDsgU0NTSWAKKiAgIGBTRVJJQUxfODI1MF9BQ09STmA6IGRlcGVuZHMgb24gYEFSQ0hfQUNPUk4gJmFtcDsmYW1wOyBTRVJJQUxfODI1MGAKCkV2ZXJ5IHNpbmdsZSBvbmUgb2YgdGhlc2UgZHJpdmVycyBleHBsaWNpdGx5IHJlbGllcyBvbiBgQVJDSF9BQ09STmAsIHdoaWNoIHRpZXMgdGhlbSB0byB0aGUgQVJNIGFyY2hpdGVjdHVyZSwgYW5kIGlzIG5vdCBzb21ldGhpbmcgdGhhdCB3b3VsZCBldmVyIGV4aXN0IG9uIGFtZDY0LiBGdXJ0aGVybW9yZSwgdGhpcyBjb2RlIGlzIHNpbXBseSByZWZhY3RvcmluZyB0aGUgYG1vZHVsZV9pbml0YC9gbW9kdWxlX2V4aXRgIHJlZ2lzdHJhdGlvbiBoZWxwZXJzIHdpdGggYG1vZHVsZV9kcml2ZXIoLi4uKWAuIFRoaXMgZG9lc24mIzM5O3QgY2hhbmdlIHRoZWlyIGFyY2hpdGVjdHVyZS1zcGVjaWZpYyBuYXR1cmUuCgpMZXQmIzM5O3MgcXVpY2tseSBjb25maXJtIGFsbCB0aGUgZmlsZXMgY2hhbmdlZDoKCiogICBgZHJpdmVycy9hdGEvcGF0YV9pY3NpZGUuY2AKKiAgIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9pODI1eHgvZXRoZXIxLmNgCiogICBgZHJpdmVycy9uZXQvZXRoZXJuZXQvc2VlcS9ldGhlcjMuY2AKKiAgIGBkcml2ZXJzL3Njc2kvYXJtL2Fjb3Juc2NzaS5jYAoqICAgYGRyaXZlcnMvc2NzaS9hcm0vYXJ4ZXNjc2kuY2AKKiAgIGBkcml2ZXJzL3Njc2kvYXJtL2N1bWFuYV8xLmNgCiogICBgZHJpdmVycy9zY3NpL2FybS9jdW1hbmFfMi5jYAoqICAgYGRyaXZlcnMvc2NzaS9hcm0vZWVzb3guY2AKKiAgIGBkcml2ZXJzL3Njc2kvYXJtL29hay5jYAoqICAgYGRyaXZlcnMvc2NzaS9hcm0vcG93ZXJ0ZWMuY2AKKiAgIGBkcml2ZXJzL3R0eS9zZXJpYWwvODI1MC84MjUwX2Fjb3JuLmNgCgpZdXAsIGFsbCBlbGV2ZW4gYXJlIGRyaXZlcnMgZm9yIEFjb3JuIGV4cGFuc2lvbiBjYXJkcywgYW5kIHRoZXJlZm9yZSBBUk0tb25seS4KCioqQ29uY2x1c2lvbjoqKgoKVGhpcyBwYXRjaCBpcyBtb2RpZnlpbmcgbW9kdWxlIGluaXRpYWxpemF0aW9uL2V4aXQgYm9pbGVycGxhdGUgaW4gdmFyaW91cyBBY29ybiBFeHBhbnNpb24gQ2FyZCAoZWNhcmQpIGRyaXZlcnMuIEFsbCB0aGUgbW9kaWZpZWQgZHJpdmVycyBkZXBlbmQgZXhjbHVzaXZlbHkgb24gdGhlIEFSTSBhbmQgYEFSQ0hfQUNPUk5gIGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4gVGhlc2UgYXJlIGxpbWl0ZWQgdG8gdGhlIDMyLWJpdCBBUk0gYXJjaGl0ZWN0dXJlLCBhbmQgdGh1cyBhcmUgbm90IGJ1aWxkYWJsZSBvciBleGVjdXRhYmxlIG9uIHRoZSB0YXJnZXQgYW1kNjQgYXJjaGl0ZWN0dXJlLgoKKiAgIGBXb3J0aEZ1enppbmdgOiBmYWxzZQoqICAgYEVuYWJsZUNvbmZpZ3NgOiBcWyBdCiogICBgRm9jdXNTeW1ib2xzYDogXFsgXQoKSSYjMzk7bGwgZ28gYWhlYWQgYW5kIHNldCB0aGUgcmVzdWx0cyBhY2NvcmRpbmdseS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDYgMjA6MjI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBzZXJpZXMgcmVwbGFjZXMgYm9pbGVycGxhdGUgbW9kdWxlX2luaXQvbW9kdWxlX2V4aXQgZnVuY3Rpb25zIHdpdGggbW9kdWxlX2RyaXZlcigpIG1hY3JvcyBhY3Jvc3Mgc2V2ZXJhbCBBY29ybiBleHBhbnNpb24gY2FyZCAoZWNhcmQpIGRyaXZlcnMuIEFsbCBtb2RpZmllZCBkcml2ZXJzIGRlcGVuZCBvbiBBUkNIX0FDT1JOIGFuZCBBUk0sIG1ha2luZyB0aGVtIGV4Y2x1c2l2ZSB0byB0aGUgQVJNIGFyY2hpdGVjdHVyZSBhbmQgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIG9uIHRoZSB0YXJnZXQgYW1kNjQgYXJjaGl0ZWN0dXJlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggc2VyaWVzIHJlcGxhY2VzIGJvaWxlcnBsYXRlIG1vZHVsZV9pbml0L21vZHVsZV9leGl0IGZ1bmN0aW9ucyB3aXRoIG1vZHVsZV9kcml2ZXIoKSBtYWNyb3MgYWNyb3NzIHNldmVyYWwgQWNvcm4gZXhwYW5zaW9uIGNhcmQgKGVjYXJkKSBkcml2ZXJzLiBBbGwgbW9kaWZpZWQgZHJpdmVycyBkZXBlbmQgb24gQVJDSF9BQ09STiBhbmQgQVJNLCBtYWtpbmcgdGhlbSBleGNsdXNpdmUgdG8gdGhlIEFSTSBhcmNoaXRlY3R1cmUgYW5kIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBvbiB0aGUgdGFyZ2V0IGFtZDY0IGFyY2hpdGVjdHVyZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTkvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA2IDIwOjIyPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5JZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOS0wNlQyMDoyMTozOC4wNjQ1NTY2MzZaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMjY5MDI1MDk5OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2UsXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIHNlcmllcyByZXBsYWNlcyBib2lsZXJwbGF0ZSBtb2R1bGVfaW5pdC9tb2R1bGVfZXhpdCBmdW5jdGlvbnMgd2l0aCBtb2R1bGVfZHJpdmVyKCkgbWFjcm9zIGFjcm9zcyBzZXZlcmFsIEFjb3JuIGV4cGFuc2lvbiBjYXJkIChlY2FyZCkgZHJpdmVycy4gQWxsIG1vZGlmaWVkIGRyaXZlcnMgZGVwZW5kIG9uIEFSQ0hfQUNPUk4gYW5kIEFSTSwgbWFraW5nIHRoZW0gZXhjbHVzaXZlIHRvIHRoZSBBUk0gYXJjaGl0ZWN0dXJlIGFuZCBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgb24gdGhlIHRhcmdldCBhbWQ2NCBhcmNoaXRlY3R1cmUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNlQyMDoyMTozOC4wNjQ1NjQxMjZaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY4NTgyMzI5OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGJiN2FmODFmYTgwZDllNGJjOTNlMzk2NmIxOTI5NGIzZDU4MmNjMzNcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFN1biBTZXAgNiAyMDoyMTozNyAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL2F0YS9wYXRhX2ljc2lkZS5jIGIvZHJpdmVycy9hdGEvcGF0YV9pY3NpZGUuY1xcbmluZGV4IDcwZjA1NmU0N2U2YmQuLmRmNzIwM2E3NGY0NWQgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9hdGEvcGF0YV9pY3NpZGUuY1xcbisrKyBiL2RyaXZlcnMvYXRhL3BhdGFfaWNzaWRlLmNcXG5AQCAtNjEzLDE5ICs2MTMsOCBAQCBzdGF0aWMgc3RydWN0IGVjYXJkX2RyaXZlciBwYXRhX2ljc2lkZV9kcml2ZXIgPSB7XFxuIFxcdH0sXFxuIH07XFxuIFxcbi1zdGF0aWMgaW50IF9faW5pdCBwYXRhX2ljc2lkZV9pbml0KHZvaWQpXFxuLXtcXG4tXFx0cmV0dXJuIGVjYXJkX3JlZ2lzdGVyX2RyaXZlcihcXHUwMDI2cGF0YV9pY3NpZGVfZHJpdmVyKTtcXG4tfVxcbi1cXG4tc3RhdGljIHZvaWQgX19leGl0IHBhdGFfaWNzaWRlX2V4aXQodm9pZClcXG4te1xcbi1cXHRlY2FyZF9yZW1vdmVfZHJpdmVyKFxcdTAwMjZwYXRhX2ljc2lkZV9kcml2ZXIpO1xcbi19XFxuK21vZHVsZV9kcml2ZXIocGF0YV9pY3NpZGVfZHJpdmVyLCBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIsIGVjYXJkX3JlbW92ZV9kcml2ZXIpO1xcbiBcXG4gTU9EVUxFX0FVVEhPUihcXFwiUnVzc2VsbCBLaW5nIFxcdTAwM2NybWtAYXJtLmxpbnV4Lm9yZy51a1xcdTAwM2VcXFwiKTtcXG4gTU9EVUxFX0xJQ0VOU0UoXFxcIkdQTFxcXCIpO1xcbiBNT0RVTEVfREVTQ1JJUFRJT04oXFxcIklDUyBQQVRBIGRyaXZlclxcXCIpO1xcbi1cXG4tbW9kdWxlX2luaXQocGF0YV9pY3NpZGVfaW5pdCk7XFxuLW1vZHVsZV9leGl0KHBhdGFfaWNzaWRlX2V4aXQpO1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pODI1eHgvZXRoZXIxLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pODI1eHgvZXRoZXIxLmNcXG5pbmRleCAzZTdkN2M0YmFmZGMyLi5kMjFhZWI4MzE1MzE3IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2k4MjV4eC9ldGhlcjEuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2k4MjV4eC9ldGhlcjEuY1xcbkBAIC0xMDcwLDE3ICsxMDcwLDYgQEAgc3RhdGljIHN0cnVjdCBlY2FyZF9kcml2ZXIgZXRoZXIxX2RyaXZlciA9IHtcXG4gXFx0fSxcXG4gfTtcXG4gXFxuLXN0YXRpYyBpbnQgX19pbml0IGV0aGVyMV9pbml0KHZvaWQpXFxuLXtcXG4tXFx0cmV0dXJuIGVjYXJkX3JlZ2lzdGVyX2RyaXZlcihcXHUwMDI2ZXRoZXIxX2RyaXZlcik7XFxuLX1cXG4tXFxuLXN0YXRpYyB2b2lkIF9fZXhpdCBldGhlcjFfZXhpdCh2b2lkKVxcbi17XFxuLVxcdGVjYXJkX3JlbW92ZV9kcml2ZXIoXFx1MDAyNmV0aGVyMV9kcml2ZXIpO1xcbi19XFxuLVxcbi1tb2R1bGVfaW5pdChldGhlcjFfaW5pdCk7XFxuLW1vZHVsZV9leGl0KGV0aGVyMV9leGl0KTtcXG4rbW9kdWxlX2RyaXZlcihldGhlcjFfZHJpdmVyLCBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIsIGVjYXJkX3JlbW92ZV9kcml2ZXIpO1xcbiBcXG4gTU9EVUxFX0xJQ0VOU0UoXFxcIkdQTFxcXCIpO1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZWVxL2V0aGVyMy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2VlcS9ldGhlcjMuY1xcbmluZGV4IDIwZGFkMzliNWFiOTQuLmIwZDJjYmMzNTkxNDcgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2VlcS9ldGhlcjMuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NlZXEvZXRoZXIzLmNcXG5AQCAtODgyLDE3ICs4ODIsNiBAQCBzdGF0aWMgc3RydWN0IGVjYXJkX2RyaXZlciBldGhlcjNfZHJpdmVyID0ge1xcbiBcXHR9LFxcbiB9O1xcbiBcXG4tc3RhdGljIGludCBfX2luaXQgZXRoZXIzX2luaXQodm9pZClcXG4te1xcbi1cXHRyZXR1cm4gZWNhcmRfcmVnaXN0ZXJfZHJpdmVyKFxcdTAwMjZldGhlcjNfZHJpdmVyKTtcXG4tfVxcbi1cXG4tc3RhdGljIHZvaWQgX19leGl0IGV0aGVyM19leGl0KHZvaWQpXFxuLXtcXG4tXFx0ZWNhcmRfcmVtb3ZlX2RyaXZlcihcXHUwMDI2ZXRoZXIzX2RyaXZlcik7XFxuLX1cXG4tXFxuLW1vZHVsZV9pbml0KGV0aGVyM19pbml0KTtcXG4tbW9kdWxlX2V4aXQoZXRoZXIzX2V4aXQpO1xcbittb2R1bGVfZHJpdmVyKGV0aGVyM19kcml2ZXIsIGVjYXJkX3JlZ2lzdGVyX2RyaXZlciwgZWNhcmRfcmVtb3ZlX2RyaXZlcik7XFxuIFxcbiBNT0RVTEVfTElDRU5TRShcXFwiR1BMXFxcIik7XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9hcm0vYWNvcm5zY3NpLmMgYi9kcml2ZXJzL3Njc2kvYXJtL2Fjb3Juc2NzaS5jXFxuaW5kZXggNzlkN2Q3MzM2YjZhYy4uOGI4OTlmYmYwOTJlMSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL3Njc2kvYXJtL2Fjb3Juc2NzaS5jXFxuKysrIGIvZHJpdmVycy9zY3NpL2FybS9hY29ybnNjc2kuY1xcbkBAIC0yOTAyLDE4ICsyOTAyLDcgQEAgc3RhdGljIHN0cnVjdCBlY2FyZF9kcml2ZXIgYWNvcm5zY3NpX2RyaXZlciA9IHtcXG4gXFx0fSxcXG4gfTtcXG4gXFxuLXN0YXRpYyBpbnQgX19pbml0IGFjb3Juc2NzaV9pbml0KHZvaWQpXFxuLXtcXG4tXFx0cmV0dXJuIGVjYXJkX3JlZ2lzdGVyX2RyaXZlcihcXHUwMDI2YWNvcm5zY3NpX2RyaXZlcik7XFxuLX1cXG4tXFxuLXN0YXRpYyB2b2lkIF9fZXhpdCBhY29ybnNjc2lfZXhpdCh2b2lkKVxcbi17XFxuLVxcdGVjYXJkX3JlbW92ZV9kcml2ZXIoXFx1MDAyNmFjb3Juc2NzaV9kcml2ZXIpO1xcbi19XFxuLVxcbi1tb2R1bGVfaW5pdChhY29ybnNjc2lfaW5pdCk7XFxuLW1vZHVsZV9leGl0KGFjb3Juc2NzaV9leGl0KTtcXG4rbW9kdWxlX2RyaXZlcihhY29ybnNjc2lfZHJpdmVyLCBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIsIGVjYXJkX3JlbW92ZV9kcml2ZXIpO1xcbiBcXG4gTU9EVUxFX0FVVEhPUihcXFwiUnVzc2VsbCBLaW5nXFxcIik7XFxuIE1PRFVMRV9ERVNDUklQVElPTihcXFwiQWNvcm5TQ1NJIGRyaXZlclxcXCIpO1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYXJtL2FyeGVzY3NpLmMgYi9kcml2ZXJzL3Njc2kvYXJtL2FyeGVzY3NpLmNcXG5pbmRleCA5MjVkMGJkNjhhYTViLi4yZDNmNWIwNTE5ZDFhIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvc2NzaS9hcm0vYXJ4ZXNjc2kuY1xcbisrKyBiL2RyaXZlcnMvc2NzaS9hcm0vYXJ4ZXNjc2kuY1xcbkBAIC0zNDQsMjAgKzM0NCw4IEBAIHN0YXRpYyBzdHJ1Y3QgZWNhcmRfZHJpdmVyIGFyeGVzY3NpX2RyaXZlciA9IHtcXG4gXFx0fSxcXG4gfTtcXG4gXFxuLXN0YXRpYyBpbnQgX19pbml0IGluaXRfYXJ4ZV9zY3NpX2RyaXZlcih2b2lkKVxcbi17XFxuLVxcdHJldHVybiBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIoXFx1MDAyNmFyeGVzY3NpX2RyaXZlcik7XFxuLX1cXG4tXFxuLXN0YXRpYyB2b2lkIF9fZXhpdCBleGl0X2FyeGVfc2NzaV9kcml2ZXIodm9pZClcXG4te1xcbi1cXHRlY2FyZF9yZW1vdmVfZHJpdmVyKFxcdTAwMjZhcnhlc2NzaV9kcml2ZXIpO1xcbi19XFxuLVxcbi1tb2R1bGVfaW5pdChpbml0X2FyeGVfc2NzaV9kcml2ZXIpO1xcbi1tb2R1bGVfZXhpdChleGl0X2FyeGVfc2NzaV9kcml2ZXIpO1xcbittb2R1bGVfZHJpdmVyKGFyeGVzY3NpX2RyaXZlciwgZWNhcmRfcmVnaXN0ZXJfZHJpdmVyLCBlY2FyZF9yZW1vdmVfZHJpdmVyKTtcXG4gXFxuIE1PRFVMRV9BVVRIT1IoXFxcIlN0ZWZhbiBIYW5za2VcXFwiKTtcXG4gTU9EVUxFX0RFU0NSSVBUSU9OKFxcXCJBUlhFU0NTSSBkcml2ZXIgZm9yIEFjb3JuIG1hY2hpbmVzXFxcIik7XFxuIE1PRFVMRV9MSUNFTlNFKFxcXCJHUExcXFwiKTtcXG4tXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9hcm0vY3VtYW5hXzEuYyBiL2RyaXZlcnMvc2NzaS9hcm0vY3VtYW5hXzEuY1xcbmluZGV4IGQxYTJhMjJmZmU4YzcuLjYyYzExMTY4ZjMyMTEgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9zY3NpL2FybS9jdW1hbmFfMS5jXFxuKysrIGIvZHJpdmVycy9zY3NpL2FybS9jdW1hbmFfMS5jXFxuQEAgLTMyNCwxOCArMzI0LDcgQEAgc3RhdGljIHN0cnVjdCBlY2FyZF9kcml2ZXIgY3VtYW5hc2NzaTFfZHJpdmVyID0ge1xcbiBcXHR9LFxcbiB9O1xcbiBcXG4tc3RhdGljIGludCBfX2luaXQgY3VtYW5hc2NzaV9pbml0KHZvaWQpXFxuLXtcXG4tXFx0cmV0dXJuIGVjYXJkX3JlZ2lzdGVyX2RyaXZlcihcXHUwMDI2Y3VtYW5hc2NzaTFfZHJpdmVyKTtcXG4tfVxcbi1cXG4tc3RhdGljIHZvaWQgX19leGl0IGN1bWFuYXNjc2lfZXhpdCh2b2lkKVxcbi17XFxuLVxcdGVjYXJkX3JlbW92ZV9kcml2ZXIoXFx1MDAyNmN1bWFuYXNjc2kxX2RyaXZlcik7XFxuLX1cXG4tXFxuLW1vZHVsZV9pbml0KGN1bWFuYXNjc2lfaW5pdCk7XFxuLW1vZHVsZV9leGl0KGN1bWFuYXNjc2lfZXhpdCk7XFxuK21vZHVsZV9kcml2ZXIoY3VtYW5hc2NzaTFfZHJpdmVyLCBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIsIGVjYXJkX3JlbW92ZV9kcml2ZXIpO1xcbiBcXG4gTU9EVUxFX0RFU0NSSVBUSU9OKFxcXCJDdW1hbmEgU0NTSS0xIGRyaXZlciBmb3IgQWNvcm4gbWFjaGluZXNcXFwiKTtcXG4gTU9EVUxFX0xJQ0VOU0UoXFxcIkdQTFxcXCIpO1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYXJtL2N1bWFuYV8yLmMgYi9kcml2ZXJzL3Njc2kvYXJtL2N1bWFuYV8yLmNcXG5pbmRleCBlNDYwMDY4ZjY4MzRiLi4yNDk0NWUxNzY1YWUwIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvc2NzaS9hcm0vY3VtYW5hXzIuY1xcbisrKyBiL2RyaXZlcnMvc2NzaS9hcm0vY3VtYW5hXzIuY1xcbkBAIC01MDQsMTggKzUwNCw3IEBAIHN0YXRpYyBzdHJ1Y3QgZWNhcmRfZHJpdmVyIGN1bWFuYXNjc2kyX2RyaXZlciA9IHtcXG4gXFx0fSxcXG4gfTtcXG4gXFxuLXN0YXRpYyBpbnQgX19pbml0IGN1bWFuYXNjc2kyX2luaXQodm9pZClcXG4te1xcbi1cXHRyZXR1cm4gZWNhcmRfcmVnaXN0ZXJfZHJpdmVyKFxcdTAwMjZjdW1hbmFzY3NpMl9kcml2ZXIpO1xcbi19XFxuLVxcbi1zdGF0aWMgdm9pZCBfX2V4aXQgY3VtYW5hc2NzaTJfZXhpdCh2b2lkKVxcbi17XFxuLVxcdGVjYXJkX3JlbW92ZV9kcml2ZXIoXFx1MDAyNmN1bWFuYXNjc2kyX2RyaXZlcik7XFxuLX1cXG4tXFxuLW1vZHVsZV9pbml0KGN1bWFuYXNjc2kyX2luaXQpO1xcbi1tb2R1bGVfZXhpdChjdW1hbmFzY3NpMl9leGl0KTtcXG4rbW9kdWxlX2RyaXZlcihjdW1hbmFzY3NpMl9kcml2ZXIsIGVjYXJkX3JlZ2lzdGVyX2RyaXZlciwgZWNhcmRfcmVtb3ZlX2RyaXZlcik7XFxuIFxcbiBNT0RVTEVfQVVUSE9SKFxcXCJSdXNzZWxsIEtpbmdcXFwiKTtcXG4gTU9EVUxFX0RFU0NSSVBUSU9OKFxcXCJDdW1hbmEgU0NTSS0yIGRyaXZlciBmb3IgQWNvcm4gbWFjaGluZXNcXFwiKTtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2FybS9lZXNveC5jIGIvZHJpdmVycy9zY3NpL2FybS9lZXNveC5jXFxuaW5kZXggOTliZTlkYTg3NTdmNC4uODIzYWQxNzlmMjRjYyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL3Njc2kvYXJtL2Vlc294LmNcXG4rKysgYi9kcml2ZXJzL3Njc2kvYXJtL2Vlc294LmNcXG5AQCAtNjI2LDE4ICs2MjYsNyBAQCBzdGF0aWMgc3RydWN0IGVjYXJkX2RyaXZlciBlZXNveHNjc2lfZHJpdmVyID0ge1xcbiBcXHR9LFxcbiB9O1xcbiBcXG4tc3RhdGljIGludCBfX2luaXQgZWVzb3hfaW5pdCh2b2lkKVxcbi17XFxuLVxcdHJldHVybiBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIoXFx1MDAyNmVlc294c2NzaV9kcml2ZXIpO1xcbi19XFxuLVxcbi1zdGF0aWMgdm9pZCBfX2V4aXQgZWVzb3hfZXhpdCh2b2lkKVxcbi17XFxuLVxcdGVjYXJkX3JlbW92ZV9kcml2ZXIoXFx1MDAyNmVlc294c2NzaV9kcml2ZXIpO1xcbi19XFxuLVxcbi1tb2R1bGVfaW5pdChlZXNveF9pbml0KTtcXG4tbW9kdWxlX2V4aXQoZWVzb3hfZXhpdCk7XFxuK21vZHVsZV9kcml2ZXIoZWVzb3hzY3NpX2RyaXZlciwgZWNhcmRfcmVnaXN0ZXJfZHJpdmVyLCBlY2FyZF9yZW1vdmVfZHJpdmVyKTtcXG4gXFxuIE1PRFVMRV9BVVRIT1IoXFxcIlJ1c3NlbGwgS2luZ1xcXCIpO1xcbiBNT0RVTEVfREVTQ1JJUFRJT04oXFxcIkVFU09YICdGYXN0JyBTQ1NJIGRyaXZlciBmb3IgQWNvcm4gbWFjaGluZXNcXFwiKTtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2FybS9vYWsuYyBiL2RyaXZlcnMvc2NzaS9hcm0vb2FrLmNcXG5pbmRleCBkNjkyNDUwMDcwOTY3Li5hZWEyMWJiMTMzNTUyIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvc2NzaS9hcm0vb2FrLmNcXG4rKysgYi9kcml2ZXJzL3Njc2kvYXJtL29hay5jXFxuQEAgLTE5NCwyMCArMTk0LDggQEAgc3RhdGljIHN0cnVjdCBlY2FyZF9kcml2ZXIgb2Frc2NzaV9kcml2ZXIgPSB7XFxuIFxcdH0sXFxuIH07XFxuIFxcbi1zdGF0aWMgaW50IF9faW5pdCBvYWtzY3NpX2luaXQodm9pZClcXG4te1xcbi1cXHRyZXR1cm4gZWNhcmRfcmVnaXN0ZXJfZHJpdmVyKFxcdTAwMjZvYWtzY3NpX2RyaXZlcik7XFxuLX1cXG4tXFxuLXN0YXRpYyB2b2lkIF9fZXhpdCBvYWtzY3NpX2V4aXQodm9pZClcXG4te1xcbi1cXHRlY2FyZF9yZW1vdmVfZHJpdmVyKFxcdTAwMjZvYWtzY3NpX2RyaXZlcik7XFxuLX1cXG4tXFxuLW1vZHVsZV9pbml0KG9ha3Njc2lfaW5pdCk7XFxuLW1vZHVsZV9leGl0KG9ha3Njc2lfZXhpdCk7XFxuK21vZHVsZV9kcml2ZXIob2Frc2NzaV9kcml2ZXIsIGVjYXJkX3JlZ2lzdGVyX2RyaXZlciwgZWNhcmRfcmVtb3ZlX2RyaXZlcik7XFxuIFxcbiBNT0RVTEVfQVVUSE9SKFxcXCJSdXNzZWxsIEtpbmdcXFwiKTtcXG4gTU9EVUxFX0RFU0NSSVBUSU9OKFxcXCJPYWsgU0NTSSBkcml2ZXJcXFwiKTtcXG4gTU9EVUxFX0xJQ0VOU0UoXFxcIkdQTFxcXCIpO1xcbi1cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2FybS9wb3dlcnRlYy5jIGIvZHJpdmVycy9zY3NpL2FybS9wb3dlcnRlYy5jXFxuaW5kZXggODIzYzY1ZmY2YzEyYi4uNjdmMDcxYTA1NDNiNiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL3Njc2kvYXJtL3Bvd2VydGVjLmNcXG4rKysgYi9kcml2ZXJzL3Njc2kvYXJtL3Bvd2VydGVjLmNcXG5AQCAtNDMyLDE4ICs0MzIsNyBAQCBzdGF0aWMgc3RydWN0IGVjYXJkX2RyaXZlciBwb3dlcnRlY3Njc2lfZHJpdmVyID0ge1xcbiBcXHR9LFxcbiB9O1xcbiBcXG4tc3RhdGljIGludCBfX2luaXQgcG93ZXJ0ZWNzY3NpX2luaXQodm9pZClcXG4te1xcbi1cXHRyZXR1cm4gZWNhcmRfcmVnaXN0ZXJfZHJpdmVyKFxcdTAwMjZwb3dlcnRlY3Njc2lfZHJpdmVyKTtcXG4tfVxcbi1cXG4tc3RhdGljIHZvaWQgX19leGl0IHBvd2VydGVjc2NzaV9leGl0KHZvaWQpXFxuLXtcXG4tXFx0ZWNhcmRfcmVtb3ZlX2RyaXZlcihcXHUwMDI2cG93ZXJ0ZWNzY3NpX2RyaXZlcik7XFxuLX1cXG4tXFxuLW1vZHVsZV9pbml0KHBvd2VydGVjc2NzaV9pbml0KTtcXG4tbW9kdWxlX2V4aXQocG93ZXJ0ZWNzY3NpX2V4aXQpO1xcbittb2R1bGVfZHJpdmVyKHBvd2VydGVjc2NzaV9kcml2ZXIsIGVjYXJkX3JlZ2lzdGVyX2RyaXZlciwgZWNhcmRfcmVtb3ZlX2RyaXZlcik7XFxuIFxcbiBNT0RVTEVfQVVUSE9SKFxcXCJSdXNzZWxsIEtpbmdcXFwiKTtcXG4gTU9EVUxFX0RFU0NSSVBUSU9OKFxcXCJQb3dlcnRlYyBTQ1NJIGRyaXZlclxcXCIpO1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3R0eS9zZXJpYWwvODI1MC84MjUwX2Fjb3JuLmMgYi9kcml2ZXJzL3R0eS9zZXJpYWwvODI1MC84MjUwX2Fjb3JuLmNcXG5pbmRleCBmYjU5NjI2MmI5YzcxLi5mNjM0ZGU2ZTE1OWY0IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvdHR5L3NlcmlhbC84MjUwLzgyNTBfYWNvcm4uY1xcbisrKyBiL2RyaXZlcnMvdHR5L3NlcmlhbC84MjUwLzgyNTBfYWNvcm4uY1xcbkBAIC0xMjAsMTkgKzEyMCw4IEBAIHN0YXRpYyBzdHJ1Y3QgZWNhcmRfZHJpdmVyIHNlcmlhbF9jYXJkX2RyaXZlciA9IHtcXG4gXFx0fSxcXG4gfTtcXG4gXFxuLXN0YXRpYyBpbnQgX19pbml0IHNlcmlhbF9jYXJkX2luaXQodm9pZClcXG4te1xcbi1cXHRyZXR1cm4gZWNhcmRfcmVnaXN0ZXJfZHJpdmVyKFxcdTAwMjZzZXJpYWxfY2FyZF9kcml2ZXIpO1xcbi19XFxuLVxcbi1zdGF0aWMgdm9pZCBfX2V4aXQgc2VyaWFsX2NhcmRfZXhpdCh2b2lkKVxcbi17XFxuLVxcdGVjYXJkX3JlbW92ZV9kcml2ZXIoXFx1MDAyNnNlcmlhbF9jYXJkX2RyaXZlcik7XFxuLX1cXG4rbW9kdWxlX2RyaXZlcihzZXJpYWxfY2FyZF9kcml2ZXIsIGVjYXJkX3JlZ2lzdGVyX2RyaXZlciwgZWNhcmRfcmVtb3ZlX2RyaXZlcik7XFxuIFxcbiBNT0RVTEVfQVVUSE9SKFxcXCJSdXNzZWxsIEtpbmdcXFwiKTtcXG4gTU9EVUxFX0RFU0NSSVBUSU9OKFxcXCJBY29ybiA4MjUwLWNvbXBhdGlibGUgc2VyaWFsIHBvcnQgZXhwYW5zaW9uIGNhcmQgZHJpdmVyXFxcIik7XFxuIE1PRFVMRV9MSUNFTlNFKFxcXCJHUExcXFwiKTtcXG4tXFxuLW1vZHVsZV9pbml0KHNlcmlhbF9jYXJkX2luaXQpO1xcbi1tb2R1bGVfZXhpdChzZXJpYWxfY2FyZF9leGl0KTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDZUMjA6MjE6MzguNzUxMzc3NDQ1WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiY29yZSIsIkR1cmF0aW9uIjozMjAwMzQxMTQ2MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggc2VyaWVzIHJlcGxhY2VzIGJvaWxlcnBsYXRlIG1vZHVsZV9pbml0L21vZHVsZV9leGl0IGZ1bmN0aW9ucyB3aXRoIG1vZHVsZV9kcml2ZXIoKSBtYWNyb3MgYWNyb3NzIHNldmVyYWwgQWNvcm4gZXhwYW5zaW9uIGNhcmQgKGVjYXJkKSBkcml2ZXJzLiBBbGwgbW9kaWZpZWQgZHJpdmVycyBkZXBlbmQgb24gQVJDSF9BQ09STiBhbmQgQVJNLCBtYWtpbmcgdGhlbSBleGNsdXNpdmUgdG8gdGhlIEFSTSBhcmNoaXRlY3R1cmUgYW5kIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBvbiB0aGUgdGFyZ2V0IGFtZDY0IGFyY2hpdGVjdHVyZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyIGFuZCBzZWN1cml0eSBlbmdpbmVlci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZXZhbHVhdGUgd2hldGhlciBpdCB3YXJyYW50cyBmdXp6aW5nIHdpdGggc3l6a2FsbGVyLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiBpbnRlcm5hbCBhc3N1bXB0aW9ucy4gWW91IG11c3QgYWN0aXZlbHkgdXNlIHlvdXIgY29kZSBhY2Nlc3NcbnRvb2xzIHRvIGluc3BlY3QgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSwgY2FsbGVycywgYW5kIHN1cnJvdW5kaW5nIGNvbnRleHQuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4xLiBDT1JFIFRSSUFHRSBQSElMT1NPUEhZXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuVGhlIGdvYWwgb2YgcGF0Y2ggZnV6emluZyBpcyB0byBkaXNjb3ZlciBjcmFzaGVzLCByZWdyZXNzaW9ucywgZXhwb3NlZCBsYXRlbnQgYnVncyxcbmFuZCBuZXdseSB0cmlnZ2VyZWQgYXNzZXJ0aW9ucyBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBzZXJpZXMuXG5cbi0gUkVBQ0hBQklMSVRZIElTIFRIRSBQUklNQVJZIEdBVEU6XG4gIEZ1enppbmcgY2FuIG9ubHkgZGlzY292ZXIgYnVncyBpbiBjb2RlIHRoYXQgY2FuIGFjdHVhbGx5IGV4ZWN1dGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWRcbiAgZW52aXJvbm1lbnRzIChHQ0Ugb3IgUUVNVSwgdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGRldmljZXMgbGlrZSBVU0IgZ2FkZ2V0cywgbmV0ZGV2LCB0dW4vdGFwKS5cbiAgSWYgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIChzZWUgU2VjdGlvbiAyKSwgaXQgTVVTVCBOT1QgYmUgZnV6emVkLFxuICByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgYWRkcyBhc3NlcnRpb25zIG9yIGNvbXBsZXggbG9naWMuXG5cbi0gRE8gTk9UIEJMSU5ETFkgVFJVU1QgXCJOTyBGVU5DVElPTkFMIENIQU5HRVwiIChORkNJKSBPUiBcIlJFRkFDVE9SSU5HXCIgQ0xBSU1TOlxuICBQYXRjaCBhdXRob3JzIHJvdXRpbmVseSBsYWJlbCBjaGFuZ2VzIGFzIFwiY2xlYW51cHNcIiwgXCJyZWZhY3RvcmluZ3NcIiwgb3Igc3RhdGVcbiAgXCJObyBmdW5jdGlvbmFsIGNoYW5nZSBpbnRlbmRlZFwiLiBEbyBOT1QgdGFrZSB0aGVzZSBjbGFpbXMgYXQgZmFjZSB2YWx1ZS5cbiAgQ29kZSByZWZhY3RvcmluZ3MgdGhhdCByZWFycmFuZ2UgbG9naWMsIGludHJvZHVjZSBoZWxwZXIgZnVuY3Rpb25zLCBvciBhbHRlciBzdGF0ZSBtYW5hZ2VtZW50XG4gIGluIGNvcmUgc3Vic3lzdGVtcyBmcmVxdWVudGx5IGludHJvZHVjZSBzdWJ0bGUgc2VtYW50aWMgc2hpZnRzIG9yIHVuY292ZXIgbGF0ZW50IGtlcm5lbCBidWdzLlxuICBJZiByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlIGlzIG1vZGlmaWVkIG9yIHJlZmFjdG9yZWQsIGl0IE1VU1QgYmUgZnV6emVkLlxuXG4tIE5FVyBPUiBNT0RJRklFRCBBU1NFUlRJT05TIElOIFJFQUNIQUJMRSBDT0RFIE1VU1QgQkUgRlVaWkVEOlxuICBXaGVuIGEgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllcyBydW50aW1lIGNoZWNrcyBvciBhc3NlcnRpb25zIChlLmcuLCBXQVJOX09OKiwgVk1fV0FSTl9PTiosXG4gIEJVR19PTiosIGxvY2tkZXBfYXNzZXJ0KikgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMsIGl0IGVuZm9yY2VzIG5ldyBvciBzdHJpY3RlciBpbnZhcmlhbnRzLlxuICBFdmVuIGlmIHRoZSBhdXRob3IgYmVsaWV2ZXMgdGhlIGludmFyaWFudCBhbHdheXMgaG9sZHMsIGZ1enppbmcgaXMgZXNzZW50aWFsIHRvIHZlcmlmeSB3aGV0aGVyXG4gIGFuIHVudXN1YWwgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucyBjYW4gdmlvbGF0ZSBpdC5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjIuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz1mYWxzZSAoTkVHQVRJVkUgQ1JJVEVSSUEpXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBPTkxZIElGIGFsbCBtb2RpZmllZCBjb2RlIGZhbGxzIHN0cmljdGx5IGludG8gb25lIG9yIG1vcmUgb2YgdGhlc2UgY2F0ZWdvcmllczpcblxuLSBOb24ta2VybmVsIGFuZCBub24tZXhlY3V0YWJsZSBjaGFuZ2VzOlxuICAqIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIGNvbW1lbnRzLCBvciBzcGVsbGluZyBmaXhlcy5cbiAgKiBVc2VyLXNwYWNlIGRpcmVjdG9yaWVzLCBzZWxmLXRlc3RzLCBzYW1wbGVzLCBvciBzY3JpcHRzIChlLmcuLCB0b29scy8sIHNhbXBsZXMvLCBzY3JpcHRzLywgdXNyLylcbiAgICB0aGF0IGRvIG5vdCBhZmZlY3QgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAodm1saW51eCkgb3Iga2VybmVsIG1vZHVsZXMuXG4gICogUHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZyAoZS5nLiwgbWVzc2FnZSBzdHJpbmdzIGluIHByX2VyciwgcHJpbnRrLCBkZXZfaW5mbykgb3IgdHJhY2Vwb2ludHNcbiAgICB0aGF0IGRvIG5vdCBhbHRlciBjb250cm9sIGZsb3cgb3IgZGF0YSBzdHJ1Y3R1cmVzLlxuICAqIEJ1aWxkIHN5c3RlbSBvciBLY29uZmlnIGNoYW5nZXMgdGhhdCBkbyBub3QgYWx0ZXIgY29tcGlsZWQgQyBsb2dpYy5cbi0gU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlOlxuICAqIFZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgICBpb25pYywgYW1kZ3B1KSByZXF1aXJpbmcgcGh5c2ljYWwgQVNJQy9QQ0llIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBVbnJlYWNoYWJsZSBleGVjdXRpb24gcGF0aHM6XG4gICogRHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoLnJlbW92ZSwgLnNodXRkb3duLCBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIpIGV4ZWN1dGVkIG9ubHkgZHVyaW5nXG4gICAgcGh5c2ljYWwgUENJIGhvdC11bnBsdWcgb3IgbWFudWFsIHN5c2ZzIGRyaXZlciB1bmJpbmRpbmcuXG4gICogQ29kZSBwYXRocyBleGNsdXNpdmUgdG8gYXJjaGl0ZWN0dXJlcyBvdGhlciB0aGFuIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuMy4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPXRydWUgKFBPU0lUSVZFIENSSVRFUklBKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZSB3aGVuZXZlciB0aGUgcGF0Y2ggdG91Y2hlcyByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlLCBpbmNsdWRpbmc6XG4tIENvcmUgU3Vic3lzdGVtczpcbiAgKiBBbnkgbG9naWMgbW9kaWZpY2F0aW9ucyBpbiBtZW1vcnkgbWFuYWdlbWVudCAobW0vKSwgc3luY2hyb25pemF0aW9uL2xvY2tpbmcgKGtlcm5lbC9sb2NraW5nLyksXG4gICAgQlBGLCBzY2hlZHVsZXIsIGNvcmUgbmV0d29ya2luZywgVkZTLCBvciBzeXNjYWxsIGhhbmRsaW5nLlxuLSBSZWZhY3RvcmluZ3MgYW5kIENvZGUgQ2xlYW51cHM6XG4gICogQW55IHJlc3RydWN0dXJpbmcgb2YgcmVhY2hhYmxlIGRhdGEgc3RydWN0dXJlcywgaGVscGVyIGFic3RyYWN0aW9ucywgb3IgYWxnb3JpdGhtIGZsb3dzLlxuLSBSdW50aW1lIEFzc2VydGlvbnMgYW5kIERlZmVuc2l2ZSBDaGVja3M6XG4gICogQW55IGludHJvZHVjdGlvbiBvciBhbHRlcmF0aW9uIG9mIGFzc2VydGlvbnMgKFdBUk5fT04qLCBWTV9XQVJOX09OKiwgQlVHX09OKiwgZXRjLikgaW4gcmVhY2hhYmxlIHBhdGhzLlxuLSBSZWFjaGFibGUgRHJpdmVycyBhbmQgUHJvdG9jb2xzOlxuICAqIERyaXZlcnMgYWNjZXNzaWJsZSB2aWEgdmlydHVhbCBidXNlcyAodmlydGlvLCBVU0IgZ2FkZ2V0LCBsb29wYmFjaywgbmV0bGluaywgYmluZGVyLCBzb2NrZXRzLCBldGMuKS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjQuIEVYVFJBQ1RJTkcgRm9jdXNTeW1ib2xzIChQUkVWRU5USU5HIERJTFVUSU9OKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbldoZW4gV29ydGhGdXp6aW5nPXRydWUsIHlvdSBtdXN0IGV4dHJhY3Qgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyBpbnRvIEZvY3VzU3ltYm9scyB0byBndWlkZSB0aGUgZnV6emVyOlxuXG4tIEFWT0lEIFVCSVFVSVRPVVMgTElGRUNZQ0xFIEhPVC1QQVRIUzpcbiAgRG8gTk9UIGxpc3QgZ2VuZXJpYywgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2FsbGVkIGJ5IGFsbW9zdCBldmVyeSBwcm9ncmFtIGluIHRoZSBjb3JwdXNcbiAgKGluY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvOiBnZW5lcmFsIG1lbW9yeSBhbGxvY2F0b3JzIGFuZCBkZWFsbG9jYXRvcnMsIHBhZ2UgZmF1bHRcbiAgYW5kIHRyYXAgaGFuZGxlcnMsIG9yIGNvcmUgc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXM7IHRoaXMgaXMgbm90IGFuIGV4aGF1c3RpdmUgbGlzdCkuXG4gIExpc3RpbmcgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2F1c2VzIHRoZSBmdXp6ZXIgdG8gY2xhc3NpZnkgdGhvdXNhbmRzIG9mIHVucmVsYXRlZCB0ZXN0cyBhcyBcImZvY3VzZWRcIixcbiAgd2hpY2ggc2V2ZXJlbHkgZGlsdXRlcyBmdXp6aW5nIGVmZm9ydCBhd2F5IGZyb20gdGhlIGFjdHVhbCBjaGFuZ2VzLlxuXG4tIFRBUkdFVCBTUEVDSUZJQyBGRUFUVVJFIExPR0lDIEFORCBFTlRSWVBPSU5UUzpcbiAgTGlzdCBmdW5jdGlvbnMgdGhhdCBzcGVjaWZpY2FsbHkgaW1wbGVtZW50IHRoZSBsb2dpYyBiZWluZyBhZGRlZCBvciBhbHRlcmVkLCBvciBkaXJlY3QgQVBJIGVudHJ5cG9pbnRzXG4gIGZvciB0aGUgc3Vic3lzdGVtIGZlYXR1cmUgdW5kZXIgcmV2aWV3LlxuXG4tIEhBTkRMSU5HIFNUQVRJQyBJTkxJTkUgRlVOQ1RJT05TIElOIEhFQURFUlMgKC5oKTpcbiAgQ29tcGlsZXItaW5saW5lZCBzdGF0aWMgZnVuY3Rpb25zIChzdWNoIGFzIHN0YXRpYyBpbmxpbmVzIGluIG1tLyouaCBvciBpbmNsdWRlL2xpbnV4LyouaCkgbGFja1xuICBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzIGluIHZtbGludXggYW5kIGNhbm5vdCBiZSB0YXJnZXRlZCBkaXJlY3RseSBieSBzeW1ib2wgY292ZXJhZ2UgZmlsdGVycy5cbiAgSWYgdGhlIGNoYW5nZXMgYXJlIHByaW1hcmlseSBpbiBzdGF0aWMgaW5saW5lIGhlbHBlcnMsIGlkZW50aWZ5IG5vbi1zdGF0aWMsIGZlYXR1cmUtc3BlY2lmaWMgY2FsbGVyXG4gIGZ1bmN0aW9ucyBpbiAuYyBmaWxlcyB0aGF0IGV4ZXJjaXNlIHRoZW0gKGF2b2lkaW5nIHViaXF1aXRvdXMgbGlmZWN5Y2xlIHdyYXBwZXJzKS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjUuIElERU5USUZZSU5HIEVuYWJsZUNvbmZpZ3Ncbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5JZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IGNvbXBpbGUgYW5kIHJlYWNoIHRoZSBtb2RpZmllZCBjb2RlOlxuLSBJbnNwZWN0IEtjb25maWcgZmlsZXMgYW5kICNpZmRlZiBndWFyZHM7IGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuLSBDaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MgbmVlZGVkLlxuLSBTdHJpcCBhbnkgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiVGFyZ2V0IGFyY2hpdGVjdHVyZTogYW1kNjRcblxuRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgYmI3YWY4MWZhODBkOWU0YmM5M2UzOTY2YjE5Mjk0YjNkNTgyY2MzM1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTdW4gU2VwIDYgMjA6MjE6MzcgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL2F0YS9wYXRhX2ljc2lkZS5jIGIvZHJpdmVycy9hdGEvcGF0YV9pY3NpZGUuY1xuaW5kZXggNzBmMDU2ZTQ3ZTZiZC4uZGY3MjAzYTc0ZjQ1ZCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvYXRhL3BhdGFfaWNzaWRlLmNcbisrKyBiL2RyaXZlcnMvYXRhL3BhdGFfaWNzaWRlLmNcbkBAIC02MTMsMTkgKzYxMyw4IEBAIHN0YXRpYyBzdHJ1Y3QgZWNhcmRfZHJpdmVyIHBhdGFfaWNzaWRlX2RyaXZlciA9IHtcbiBcdH0sXG4gfTtcbiBcbi1zdGF0aWMgaW50IF9faW5pdCBwYXRhX2ljc2lkZV9pbml0KHZvaWQpXG4te1xuLVx0cmV0dXJuIGVjYXJkX3JlZ2lzdGVyX2RyaXZlcihcdTAwMjZwYXRhX2ljc2lkZV9kcml2ZXIpO1xuLX1cbi1cbi1zdGF0aWMgdm9pZCBfX2V4aXQgcGF0YV9pY3NpZGVfZXhpdCh2b2lkKVxuLXtcbi1cdGVjYXJkX3JlbW92ZV9kcml2ZXIoXHUwMDI2cGF0YV9pY3NpZGVfZHJpdmVyKTtcbi19XG4rbW9kdWxlX2RyaXZlcihwYXRhX2ljc2lkZV9kcml2ZXIsIGVjYXJkX3JlZ2lzdGVyX2RyaXZlciwgZWNhcmRfcmVtb3ZlX2RyaXZlcik7XG4gXG4gTU9EVUxFX0FVVEhPUihcIlJ1c3NlbGwgS2luZyBcdTAwM2NybWtAYXJtLmxpbnV4Lm9yZy51a1x1MDAzZVwiKTtcbiBNT0RVTEVfTElDRU5TRShcIkdQTFwiKTtcbiBNT0RVTEVfREVTQ1JJUFRJT04oXCJJQ1MgUEFUQSBkcml2ZXJcIik7XG4tXG4tbW9kdWxlX2luaXQocGF0YV9pY3NpZGVfaW5pdCk7XG4tbW9kdWxlX2V4aXQocGF0YV9pY3NpZGVfZXhpdCk7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaTgyNXh4L2V0aGVyMS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaTgyNXh4L2V0aGVyMS5jXG5pbmRleCAzZTdkN2M0YmFmZGMyLi5kMjFhZWI4MzE1MzE3IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaTgyNXh4L2V0aGVyMS5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pODI1eHgvZXRoZXIxLmNcbkBAIC0xMDcwLDE3ICsxMDcwLDYgQEAgc3RhdGljIHN0cnVjdCBlY2FyZF9kcml2ZXIgZXRoZXIxX2RyaXZlciA9IHtcbiBcdH0sXG4gfTtcbiBcbi1zdGF0aWMgaW50IF9faW5pdCBldGhlcjFfaW5pdCh2b2lkKVxuLXtcbi1cdHJldHVybiBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIoXHUwMDI2ZXRoZXIxX2RyaXZlcik7XG4tfVxuLVxuLXN0YXRpYyB2b2lkIF9fZXhpdCBldGhlcjFfZXhpdCh2b2lkKVxuLXtcbi1cdGVjYXJkX3JlbW92ZV9kcml2ZXIoXHUwMDI2ZXRoZXIxX2RyaXZlcik7XG4tfVxuLVxuLW1vZHVsZV9pbml0KGV0aGVyMV9pbml0KTtcbi1tb2R1bGVfZXhpdChldGhlcjFfZXhpdCk7XG4rbW9kdWxlX2RyaXZlcihldGhlcjFfZHJpdmVyLCBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIsIGVjYXJkX3JlbW92ZV9kcml2ZXIpO1xuIFxuIE1PRFVMRV9MSUNFTlNFKFwiR1BMXCIpO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NlZXEvZXRoZXIzLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZWVxL2V0aGVyMy5jXG5pbmRleCAyMGRhZDM5YjVhYjk0Li5iMGQyY2JjMzU5MTQ3IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2VlcS9ldGhlcjMuY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2VlcS9ldGhlcjMuY1xuQEAgLTg4MiwxNyArODgyLDYgQEAgc3RhdGljIHN0cnVjdCBlY2FyZF9kcml2ZXIgZXRoZXIzX2RyaXZlciA9IHtcbiBcdH0sXG4gfTtcbiBcbi1zdGF0aWMgaW50IF9faW5pdCBldGhlcjNfaW5pdCh2b2lkKVxuLXtcbi1cdHJldHVybiBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIoXHUwMDI2ZXRoZXIzX2RyaXZlcik7XG4tfVxuLVxuLXN0YXRpYyB2b2lkIF9fZXhpdCBldGhlcjNfZXhpdCh2b2lkKVxuLXtcbi1cdGVjYXJkX3JlbW92ZV9kcml2ZXIoXHUwMDI2ZXRoZXIzX2RyaXZlcik7XG4tfVxuLVxuLW1vZHVsZV9pbml0KGV0aGVyM19pbml0KTtcbi1tb2R1bGVfZXhpdChldGhlcjNfZXhpdCk7XG4rbW9kdWxlX2RyaXZlcihldGhlcjNfZHJpdmVyLCBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIsIGVjYXJkX3JlbW92ZV9kcml2ZXIpO1xuIFxuIE1PRFVMRV9MSUNFTlNFKFwiR1BMXCIpO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9hcm0vYWNvcm5zY3NpLmMgYi9kcml2ZXJzL3Njc2kvYXJtL2Fjb3Juc2NzaS5jXG5pbmRleCA3OWQ3ZDczMzZiNmFjLi44Yjg5OWZiZjA5MmUxIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9zY3NpL2FybS9hY29ybnNjc2kuY1xuKysrIGIvZHJpdmVycy9zY3NpL2FybS9hY29ybnNjc2kuY1xuQEAgLTI5MDIsMTggKzI5MDIsNyBAQCBzdGF0aWMgc3RydWN0IGVjYXJkX2RyaXZlciBhY29ybnNjc2lfZHJpdmVyID0ge1xuIFx0fSxcbiB9O1xuIFxuLXN0YXRpYyBpbnQgX19pbml0IGFjb3Juc2NzaV9pbml0KHZvaWQpXG4te1xuLVx0cmV0dXJuIGVjYXJkX3JlZ2lzdGVyX2RyaXZlcihcdTAwMjZhY29ybnNjc2lfZHJpdmVyKTtcbi19XG4tXG4tc3RhdGljIHZvaWQgX19leGl0IGFjb3Juc2NzaV9leGl0KHZvaWQpXG4te1xuLVx0ZWNhcmRfcmVtb3ZlX2RyaXZlcihcdTAwMjZhY29ybnNjc2lfZHJpdmVyKTtcbi19XG4tXG4tbW9kdWxlX2luaXQoYWNvcm5zY3NpX2luaXQpO1xuLW1vZHVsZV9leGl0KGFjb3Juc2NzaV9leGl0KTtcbittb2R1bGVfZHJpdmVyKGFjb3Juc2NzaV9kcml2ZXIsIGVjYXJkX3JlZ2lzdGVyX2RyaXZlciwgZWNhcmRfcmVtb3ZlX2RyaXZlcik7XG4gXG4gTU9EVUxFX0FVVEhPUihcIlJ1c3NlbGwgS2luZ1wiKTtcbiBNT0RVTEVfREVTQ1JJUFRJT04oXCJBY29yblNDU0kgZHJpdmVyXCIpO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9hcm0vYXJ4ZXNjc2kuYyBiL2RyaXZlcnMvc2NzaS9hcm0vYXJ4ZXNjc2kuY1xuaW5kZXggOTI1ZDBiZDY4YWE1Yi4uMmQzZjViMDUxOWQxYSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvc2NzaS9hcm0vYXJ4ZXNjc2kuY1xuKysrIGIvZHJpdmVycy9zY3NpL2FybS9hcnhlc2NzaS5jXG5AQCAtMzQ0LDIwICszNDQsOCBAQCBzdGF0aWMgc3RydWN0IGVjYXJkX2RyaXZlciBhcnhlc2NzaV9kcml2ZXIgPSB7XG4gXHR9LFxuIH07XG4gXG4tc3RhdGljIGludCBfX2luaXQgaW5pdF9hcnhlX3Njc2lfZHJpdmVyKHZvaWQpXG4te1xuLVx0cmV0dXJuIGVjYXJkX3JlZ2lzdGVyX2RyaXZlcihcdTAwMjZhcnhlc2NzaV9kcml2ZXIpO1xuLX1cbi1cbi1zdGF0aWMgdm9pZCBfX2V4aXQgZXhpdF9hcnhlX3Njc2lfZHJpdmVyKHZvaWQpXG4te1xuLVx0ZWNhcmRfcmVtb3ZlX2RyaXZlcihcdTAwMjZhcnhlc2NzaV9kcml2ZXIpO1xuLX1cbi1cbi1tb2R1bGVfaW5pdChpbml0X2FyeGVfc2NzaV9kcml2ZXIpO1xuLW1vZHVsZV9leGl0KGV4aXRfYXJ4ZV9zY3NpX2RyaXZlcik7XG4rbW9kdWxlX2RyaXZlcihhcnhlc2NzaV9kcml2ZXIsIGVjYXJkX3JlZ2lzdGVyX2RyaXZlciwgZWNhcmRfcmVtb3ZlX2RyaXZlcik7XG4gXG4gTU9EVUxFX0FVVEhPUihcIlN0ZWZhbiBIYW5za2VcIik7XG4gTU9EVUxFX0RFU0NSSVBUSU9OKFwiQVJYRVNDU0kgZHJpdmVyIGZvciBBY29ybiBtYWNoaW5lc1wiKTtcbiBNT0RVTEVfTElDRU5TRShcIkdQTFwiKTtcbi1cbmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYXJtL2N1bWFuYV8xLmMgYi9kcml2ZXJzL3Njc2kvYXJtL2N1bWFuYV8xLmNcbmluZGV4IGQxYTJhMjJmZmU4YzcuLjYyYzExMTY4ZjMyMTEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3Njc2kvYXJtL2N1bWFuYV8xLmNcbisrKyBiL2RyaXZlcnMvc2NzaS9hcm0vY3VtYW5hXzEuY1xuQEAgLTMyNCwxOCArMzI0LDcgQEAgc3RhdGljIHN0cnVjdCBlY2FyZF9kcml2ZXIgY3VtYW5hc2NzaTFfZHJpdmVyID0ge1xuIFx0fSxcbiB9O1xuIFxuLXN0YXRpYyBpbnQgX19pbml0IGN1bWFuYXNjc2lfaW5pdCh2b2lkKVxuLXtcbi1cdHJldHVybiBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIoXHUwMDI2Y3VtYW5hc2NzaTFfZHJpdmVyKTtcbi19XG4tXG4tc3RhdGljIHZvaWQgX19leGl0IGN1bWFuYXNjc2lfZXhpdCh2b2lkKVxuLXtcbi1cdGVjYXJkX3JlbW92ZV9kcml2ZXIoXHUwMDI2Y3VtYW5hc2NzaTFfZHJpdmVyKTtcbi19XG4tXG4tbW9kdWxlX2luaXQoY3VtYW5hc2NzaV9pbml0KTtcbi1tb2R1bGVfZXhpdChjdW1hbmFzY3NpX2V4aXQpO1xuK21vZHVsZV9kcml2ZXIoY3VtYW5hc2NzaTFfZHJpdmVyLCBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIsIGVjYXJkX3JlbW92ZV9kcml2ZXIpO1xuIFxuIE1PRFVMRV9ERVNDUklQVElPTihcIkN1bWFuYSBTQ1NJLTEgZHJpdmVyIGZvciBBY29ybiBtYWNoaW5lc1wiKTtcbiBNT0RVTEVfTElDRU5TRShcIkdQTFwiKTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYXJtL2N1bWFuYV8yLmMgYi9kcml2ZXJzL3Njc2kvYXJtL2N1bWFuYV8yLmNcbmluZGV4IGU0NjAwNjhmNjgzNGIuLjI0OTQ1ZTE3NjVhZTAgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3Njc2kvYXJtL2N1bWFuYV8yLmNcbisrKyBiL2RyaXZlcnMvc2NzaS9hcm0vY3VtYW5hXzIuY1xuQEAgLTUwNCwxOCArNTA0LDcgQEAgc3RhdGljIHN0cnVjdCBlY2FyZF9kcml2ZXIgY3VtYW5hc2NzaTJfZHJpdmVyID0ge1xuIFx0fSxcbiB9O1xuIFxuLXN0YXRpYyBpbnQgX19pbml0IGN1bWFuYXNjc2kyX2luaXQodm9pZClcbi17XG4tXHRyZXR1cm4gZWNhcmRfcmVnaXN0ZXJfZHJpdmVyKFx1MDAyNmN1bWFuYXNjc2kyX2RyaXZlcik7XG4tfVxuLVxuLXN0YXRpYyB2b2lkIF9fZXhpdCBjdW1hbmFzY3NpMl9leGl0KHZvaWQpXG4te1xuLVx0ZWNhcmRfcmVtb3ZlX2RyaXZlcihcdTAwMjZjdW1hbmFzY3NpMl9kcml2ZXIpO1xuLX1cbi1cbi1tb2R1bGVfaW5pdChjdW1hbmFzY3NpMl9pbml0KTtcbi1tb2R1bGVfZXhpdChjdW1hbmFzY3NpMl9leGl0KTtcbittb2R1bGVfZHJpdmVyKGN1bWFuYXNjc2kyX2RyaXZlciwgZWNhcmRfcmVnaXN0ZXJfZHJpdmVyLCBlY2FyZF9yZW1vdmVfZHJpdmVyKTtcbiBcbiBNT0RVTEVfQVVUSE9SKFwiUnVzc2VsbCBLaW5nXCIpO1xuIE1PRFVMRV9ERVNDUklQVElPTihcIkN1bWFuYSBTQ1NJLTIgZHJpdmVyIGZvciBBY29ybiBtYWNoaW5lc1wiKTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYXJtL2Vlc294LmMgYi9kcml2ZXJzL3Njc2kvYXJtL2Vlc294LmNcbmluZGV4IDk5YmU5ZGE4NzU3ZjQuLjgyM2FkMTc5ZjI0Y2MgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3Njc2kvYXJtL2Vlc294LmNcbisrKyBiL2RyaXZlcnMvc2NzaS9hcm0vZWVzb3guY1xuQEAgLTYyNiwxOCArNjI2LDcgQEAgc3RhdGljIHN0cnVjdCBlY2FyZF9kcml2ZXIgZWVzb3hzY3NpX2RyaXZlciA9IHtcbiBcdH0sXG4gfTtcbiBcbi1zdGF0aWMgaW50IF9faW5pdCBlZXNveF9pbml0KHZvaWQpXG4te1xuLVx0cmV0dXJuIGVjYXJkX3JlZ2lzdGVyX2RyaXZlcihcdTAwMjZlZXNveHNjc2lfZHJpdmVyKTtcbi19XG4tXG4tc3RhdGljIHZvaWQgX19leGl0IGVlc294X2V4aXQodm9pZClcbi17XG4tXHRlY2FyZF9yZW1vdmVfZHJpdmVyKFx1MDAyNmVlc294c2NzaV9kcml2ZXIpO1xuLX1cbi1cbi1tb2R1bGVfaW5pdChlZXNveF9pbml0KTtcbi1tb2R1bGVfZXhpdChlZXNveF9leGl0KTtcbittb2R1bGVfZHJpdmVyKGVlc294c2NzaV9kcml2ZXIsIGVjYXJkX3JlZ2lzdGVyX2RyaXZlciwgZWNhcmRfcmVtb3ZlX2RyaXZlcik7XG4gXG4gTU9EVUxFX0FVVEhPUihcIlJ1c3NlbGwgS2luZ1wiKTtcbiBNT0RVTEVfREVTQ1JJUFRJT04oXCJFRVNPWCAnRmFzdCcgU0NTSSBkcml2ZXIgZm9yIEFjb3JuIG1hY2hpbmVzXCIpO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9hcm0vb2FrLmMgYi9kcml2ZXJzL3Njc2kvYXJtL29hay5jXG5pbmRleCBkNjkyNDUwMDcwOTY3Li5hZWEyMWJiMTMzNTUyIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9zY3NpL2FybS9vYWsuY1xuKysrIGIvZHJpdmVycy9zY3NpL2FybS9vYWsuY1xuQEAgLTE5NCwyMCArMTk0LDggQEAgc3RhdGljIHN0cnVjdCBlY2FyZF9kcml2ZXIgb2Frc2NzaV9kcml2ZXIgPSB7XG4gXHR9LFxuIH07XG4gXG4tc3RhdGljIGludCBfX2luaXQgb2Frc2NzaV9pbml0KHZvaWQpXG4te1xuLVx0cmV0dXJuIGVjYXJkX3JlZ2lzdGVyX2RyaXZlcihcdTAwMjZvYWtzY3NpX2RyaXZlcik7XG4tfVxuLVxuLXN0YXRpYyB2b2lkIF9fZXhpdCBvYWtzY3NpX2V4aXQodm9pZClcbi17XG4tXHRlY2FyZF9yZW1vdmVfZHJpdmVyKFx1MDAyNm9ha3Njc2lfZHJpdmVyKTtcbi19XG4tXG4tbW9kdWxlX2luaXQob2Frc2NzaV9pbml0KTtcbi1tb2R1bGVfZXhpdChvYWtzY3NpX2V4aXQpO1xuK21vZHVsZV9kcml2ZXIob2Frc2NzaV9kcml2ZXIsIGVjYXJkX3JlZ2lzdGVyX2RyaXZlciwgZWNhcmRfcmVtb3ZlX2RyaXZlcik7XG4gXG4gTU9EVUxFX0FVVEhPUihcIlJ1c3NlbGwgS2luZ1wiKTtcbiBNT0RVTEVfREVTQ1JJUFRJT04oXCJPYWsgU0NTSSBkcml2ZXJcIik7XG4gTU9EVUxFX0xJQ0VOU0UoXCJHUExcIik7XG4tXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2FybS9wb3dlcnRlYy5jIGIvZHJpdmVycy9zY3NpL2FybS9wb3dlcnRlYy5jXG5pbmRleCA4MjNjNjVmZjZjMTJiLi42N2YwNzFhMDU0M2I2IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9zY3NpL2FybS9wb3dlcnRlYy5jXG4rKysgYi9kcml2ZXJzL3Njc2kvYXJtL3Bvd2VydGVjLmNcbkBAIC00MzIsMTggKzQzMiw3IEBAIHN0YXRpYyBzdHJ1Y3QgZWNhcmRfZHJpdmVyIHBvd2VydGVjc2NzaV9kcml2ZXIgPSB7XG4gXHR9LFxuIH07XG4gXG4tc3RhdGljIGludCBfX2luaXQgcG93ZXJ0ZWNzY3NpX2luaXQodm9pZClcbi17XG4tXHRyZXR1cm4gZWNhcmRfcmVnaXN0ZXJfZHJpdmVyKFx1MDAyNnBvd2VydGVjc2NzaV9kcml2ZXIpO1xuLX1cbi1cbi1zdGF0aWMgdm9pZCBfX2V4aXQgcG93ZXJ0ZWNzY3NpX2V4aXQodm9pZClcbi17XG4tXHRlY2FyZF9yZW1vdmVfZHJpdmVyKFx1MDAyNnBvd2VydGVjc2NzaV9kcml2ZXIpO1xuLX1cbi1cbi1tb2R1bGVfaW5pdChwb3dlcnRlY3Njc2lfaW5pdCk7XG4tbW9kdWxlX2V4aXQocG93ZXJ0ZWNzY3NpX2V4aXQpO1xuK21vZHVsZV9kcml2ZXIocG93ZXJ0ZWNzY3NpX2RyaXZlciwgZWNhcmRfcmVnaXN0ZXJfZHJpdmVyLCBlY2FyZF9yZW1vdmVfZHJpdmVyKTtcbiBcbiBNT0RVTEVfQVVUSE9SKFwiUnVzc2VsbCBLaW5nXCIpO1xuIE1PRFVMRV9ERVNDUklQVElPTihcIlBvd2VydGVjIFNDU0kgZHJpdmVyXCIpO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvdHR5L3NlcmlhbC84MjUwLzgyNTBfYWNvcm4uYyBiL2RyaXZlcnMvdHR5L3NlcmlhbC84MjUwLzgyNTBfYWNvcm4uY1xuaW5kZXggZmI1OTYyNjJiOWM3MS4uZjYzNGRlNmUxNTlmNCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvdHR5L3NlcmlhbC84MjUwLzgyNTBfYWNvcm4uY1xuKysrIGIvZHJpdmVycy90dHkvc2VyaWFsLzgyNTAvODI1MF9hY29ybi5jXG5AQCAtMTIwLDE5ICsxMjAsOCBAQCBzdGF0aWMgc3RydWN0IGVjYXJkX2RyaXZlciBzZXJpYWxfY2FyZF9kcml2ZXIgPSB7XG4gXHR9LFxuIH07XG4gXG4tc3RhdGljIGludCBfX2luaXQgc2VyaWFsX2NhcmRfaW5pdCh2b2lkKVxuLXtcbi1cdHJldHVybiBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIoXHUwMDI2c2VyaWFsX2NhcmRfZHJpdmVyKTtcbi19XG4tXG4tc3RhdGljIHZvaWQgX19leGl0IHNlcmlhbF9jYXJkX2V4aXQodm9pZClcbi17XG4tXHRlY2FyZF9yZW1vdmVfZHJpdmVyKFx1MDAyNnNlcmlhbF9jYXJkX2RyaXZlcik7XG4tfVxuK21vZHVsZV9kcml2ZXIoc2VyaWFsX2NhcmRfZHJpdmVyLCBlY2FyZF9yZWdpc3Rlcl9kcml2ZXIsIGVjYXJkX3JlbW92ZV9kcml2ZXIpO1xuIFxuIE1PRFVMRV9BVVRIT1IoXCJSdXNzZWxsIEtpbmdcIik7XG4gTU9EVUxFX0RFU0NSSVBUSU9OKFwiQWNvcm4gODI1MC1jb21wYXRpYmxlIHNlcmlhbCBwb3J0IGV4cGFuc2lvbiBjYXJkIGRyaXZlclwiKTtcbiBNT0RVTEVfTElDRU5TRShcIkdQTFwiKTtcbi1cbi1tb2R1bGVfaW5pdChzZXJpYWxfY2FyZF9pbml0KTtcbi1tb2R1bGVfZXhpdChzZXJpYWxfY2FyZF9leGl0KTtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA2VDIwOjIxOjM4Ljc1MTM3OTkwNVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjUwNjIzMjU2MTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIFRoaXMgUGF0Y2g6IEFuIEFjb3JuIEVjYXJkIERlZXAgRGl2ZSoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gRmlyc3QgdGhpbmdzIGZpcnN0LCB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZSBpcyBhbWQ2NCwgYnV0IHRoZSBwYXRjaCBpdHNlbGYgc2VlbXMgdG8gYmUgZGlnZ2luZyBpbnRvIHNvbWUgcG90ZW50aWFsbHkgKnZlcnkqIG9sZCBjb2RlLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgaW1wbGljYXRpb25zIG9mIHRoaXMuXG5cblRoZSBmaWxlcyBsaXN0ZWQg4oCTIGBkcml2ZXJzL2F0YS9wYXRhX2ljc2lkZS5jYCwgYSBmZXcgRXRoZXJuZXQgZHJpdmVycyAoYGV0aGVyMS5jYCwgYGV0aGVyMy5jYCksIGFuZCBhIHNsZXcgb2YgU0NTSSBkcml2ZXJzIChgYWNvcm5zY3NpLmNgLCBldGMuIOKAkyB0aGUgd2hvbGUgbG90KSDigJMgdGhleSBhbGwgc2VlbSB0byBiZSB0b3VjaGluZyBBY29ybiBFeHBhbnNpb24gQ2FyZCAoZWNhcmQpIGRyaXZlcnMsIGdpdmVuIHRoZSBtZW50aW9uIG9mIGBzdHJ1Y3QgZWNhcmRfZHJpdmVyYC4gTXkgc3BpZGV5LXNlbnNlIGlzIHRpbmdsaW5nOyBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGF0J3MgYWN0dWFsbHkgY2hhbmdpbmcgaW4gdGhlc2UgZmlsZXMsIGFuZCB3aHkgdGhleSdyZSByZWxldmFudCB0byB0aGUgY3VycmVudCB0YXJnZXQgYXJjaGl0ZWN0dXJlLlxuXG5HaXZlbiB0aGF0IHRoZXNlIGFyZSBhbGwgZWNhcmQgZHJpdmVycywgSSBzaG91bGQgY2hlY2sgdGhlIEtjb25maWcgYW5kIGFyY2hpdGVjdHVyZSBkZXBlbmRlbmNpZXMgZm9yIGJvdGggdGhlIGVjYXJkIGluZnJhc3RydWN0dXJlIGl0c2VsZiAqYW5kKiB0aGVzZSBzcGVjaWZpYyBkcml2ZXJzLiBJJ20gZ29pbmcgdG8gdXNlIGBncmVwcGVyYCB0byBxdWlja2x5IGluc3BlY3QgdGhlIEtjb25maWcgZmlsZXMgYXNzb2NpYXRlZCB3aXRoIHRoZXNlIGRyaXZlcnMgYW5kIHRoZSBlY2FyZCBzdWJzeXN0ZW0gdG8gdW5kZXJzdGFuZCB0aGUgY29udGV4dCBhbmQgY29uZGl0aW9uYWxzLiBIb3BlZnVsbHksIHRoYXQgd2lsbCBnaXZlIG1lIHNvbWUgY2x1ZXMgYWJvdXQgd2hhdCdzIGJlaW5nIGVuYWJsZWQsIGRpc2FibGVkLCBvciBtb2RpZmllZC4gVGhpcyBjb3VsZCBiZSBhIHJlZmFjdG9yaW5nIGVmZm9ydCwgYSBidWcgZml4LCBvciBzb21ldGhpbmcgZmFyIG1vcmUgaW52b2x2ZWQsIGFuZCBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGljaCBpdCBpcy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2h5IHRoaXMgb2xkIGNvZGUgaXMgZXZlbiBiZWluZyB0b3VjaGVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1OTE5LCJPdXRwdXRUb2tlbnMiOjUyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjY5LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDZUMjA6MjE6NDMuODEzNzA3ODE4WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMzNDM0NjY2MjksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnLiooUEFUQV9JQ1NJREV8QVJNX0VUSEVSMXxBUk1fRVRIRVIzfFNDU0lfQUNPUk5TQ1NJfFNFUklBTF84MjUwX0FDT1JOKVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL2F0YS9LY29uZmlnPTc0OT1jb25maWcgUEFUQV9IUFQzWDNfRE1BXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnLTc1Ni1cXG5kcml2ZXJzL2F0YS9LY29uZmlnOjc1Nzpjb25maWcgUEFUQV9JQ1NJREVcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTc1OC1cXHR0cmlzdGF0ZSBcXFwiQWNvcm4gSUNTIFBBVEEgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2k4MjV4eC9LY29uZmlnPTE4PWlmIE5FVF9WRU5ET1JfSTgyNVhYXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaTgyNXh4L0tjb25maWctMTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaTgyNXh4L0tjb25maWc6MjA6Y29uZmlnIEFSTV9FVEhFUjFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pODI1eHgvS2NvbmZpZy0yMS1cXHR0cmlzdGF0ZSBcXFwiQWNvcm4gRXRoZXIxIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZWVxL0tjb25maWc9MTg9aWYgTkVUX1ZFTkRPUl9TRUVRXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2VlcS9LY29uZmlnLTE5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NlZXEvS2NvbmZpZzoyMDpjb25maWcgQVJNX0VUSEVSM1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NlZXEvS2NvbmZpZy0yMS1cXHR0cmlzdGF0ZSBcXFwiQWNvcm4vQU5UIEV0aGVyMyBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9zY3NpL2FybS9LY29uZmlnLTQtI1xcbmRyaXZlcnMvc2NzaS9hcm0vS2NvbmZpZzo1OmNvbmZpZyBTQ1NJX0FDT1JOU0NTSV8zXFxuZHJpdmVycy9zY3NpL2FybS9LY29uZmlnLTYtXFx0dHJpc3RhdGUgXFxcIkFjb3JuIFNDU0kgY2FyZCAoYWthMzApIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3Njc2kvYXJtL0tjb25maWctMTItXFxuZHJpdmVycy9zY3NpL2FybS9LY29uZmlnOjEzOmNvbmZpZyBTQ1NJX0FDT1JOU0NTSV9TWU5DXFxuZHJpdmVycy9zY3NpL2FybS9LY29uZmlnLTE0LVxcdGJvb2wgXFxcIlN1cHBvcnQgU0NTSSAyIFN5bmNocm9ub3VzIFRyYW5zZmVyc1xcXCJcXG4tLVxcbmRyaXZlcnMvdHR5L3NlcmlhbC84MjUwL0tjb25maWc9MzI1PWNvbmZpZyBTRVJJQUxfODI1MF9BU1BFRURfVlVBUlRcXG4tLVxcbmRyaXZlcnMvdHR5L3NlcmlhbC84MjUwL0tjb25maWctMzQxLVxcbmRyaXZlcnMvdHR5L3NlcmlhbC84MjUwL0tjb25maWc6MzQyOmNvbmZpZyBTRVJJQUxfODI1MF9BQ09STlxcbmRyaXZlcnMvdHR5L3NlcmlhbC84MjUwL0tjb25maWctMzQzLVxcdHRyaXN0YXRlIFxcXCJBY29ybiBleHBhbnNpb24gY2FyZCBzZXJpYWwgcG9ydCBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNlQyMDoyMTo0Ny4xNTcxODAyNDdaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoyNzAzNTM2NTg5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBkaXZlIGludG8gdGhpcy4gSSBuZWVkIHRvIGdldCBhIGhhbmRsZSBvbiB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGF2YWlsYWJsZSBpbiBhIGZldyBrZXkgYXJlYXMsIGFuZCBpdCBsb29rcyBsaWtlIGEgZ29vZCBzdGFydGluZyBwb2ludCBpcyB0aGUgYEtjb25maWdgIGZpbGVzLlxuXG4qKk15IENvbmZpZ3VyYXRpb24gSHVudCBCZWdpbnMqKlxuXG5JJ20gdGhpbmtpbmcgSSBzaG91bGQgc3RhcnQgYnkgbG9va2luZyBhdCBhIGZldyBkaWZmZXJlbnQgZHJpdmVyIHNlY3Rpb25zLiBGaXJzdCwgbGV0J3MgdGFrZSBhIGxvb2sgYXQgdGhlIEFUQSBkcml2ZXJzLCBzcGVjaWZpY2FsbHkgaW4gYGRyaXZlcnMvYXRhL0tjb25maWdgLiBJdCdzIGVzc2VudGlhbCB0byB1bmRlcnN0YW5kIHRoZSBjb25maWd1cmFibGUgYXNwZWN0cyBvZiB0aG9zZSBzdG9yYWdlIGNvbnRyb2xsZXJzLiBUaGVuLCBJJ2xsIG1vdmUgb24gdG8gdGhlIG5ldHdvcmsgc2lkZSwgc28gSSdtIGFsc28gZ29pbmcgdG8gY2hlY2sgb3V0IGBkcml2ZXJzL25ldC9ldGhlcm5ldC9pODI1eHgvS2NvbmZpZ2AuIFRoZSBgaTgyNXh4YCBpcyBhIGNvbW1vbiBuZXR3b3JrIGNvbnRyb2xsZXIsIHNvIEkgbmVlZCB0byBrbm93IHRoZSBvcHRpb25zIHRoZXJlLiBOZXh0LCB0byBnZXQgYSBicm9hZCB2aWV3LCBJJ2xsIHNlZSB3aGF0J3MgY29uZmlndXJhYmxlIGluIHRoZSBTQ1NJIHN1YnN5c3RlbSwgd2l0aCBgZHJpdmVycy9zY3NpL2FybS9LY29uZmlnYC4gRmluYWxseSwgc2VyaWFsIGNvbW11bmljYXRpb25zIGFyZSBhbHdheXMgaW1wb3J0YW50LCBzbyBJJ2xsIGNoZWNrIGBkcml2ZXJzL3R0eS9zZXJpYWwvODI1MC9LY29uZmlnYCB0byByZXZpZXcgdGhlIHNlcmlhbCBwb3J0IGRyaXZlcnMuIFRoaXMgc2hvdWxkIGdpdmUgbWUgYSBnb29kIG92ZXJ2aWV3IG9mIHRoZSBLY29uZmlnIHN0cnVjdHVyZXMgaW4gdGhlc2UgZGlmZmVyZW50IGRyaXZlcnMuIFRoaXMgaXMgdGhlIGJlc3QgcGxhY2UgdG8gc3RhcnQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjcwODksIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wNlQyMDoyMTo0OS44NjA3MjAyMTZaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzAzODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9hdGEvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiA3NTYsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiA3NTY6XFx0XFxuIDc1NzpcXHRjb25maWcgUEFUQV9JQ1NJREVcXG4gNzU4OlxcdFxcdHRyaXN0YXRlIFxcXCJBY29ybiBJQ1MgUEFUQSBzdXBwb3J0XFxcIlxcbiA3NTk6XFx0XFx0ZGVwZW5kcyBvbiBBUk0gXFx1MDAyNlxcdTAwMjYgQVJDSF9BQ09STlxcbiA3NjA6XFx0XFx0c2VsZWN0IFBBVEFfVElNSU5HU1xcbiA3NjE6XFx0XFx0aGVscFxcbiA3NjI6XFx0XFx0ICBPbiBBY29ybiBzeXN0ZW1zLCBzYXkgWSBoZXJlIGlmIHlvdSB3aXNoIHRvIHVzZSB0aGUgSUNTIFBBVEFcXG4gNzYzOlxcdFxcdCAgaW50ZXJmYWNlIGNhcmQuICBUaGlzIGlzIG5vdCByZXF1aXJlZCBmb3IgSUNTIHBhcnRpdGlvbiBzdXBwb3J0LlxcbiA3NjQ6XFx0XFx0ICBJZiB5b3UgYXJlIHVuc3VyZSwgc2F5IE4gdG8gdGhpcy5cXG4gNzY1OlxcdFxcbiA3NjY6XFx0Y29uZmlnIFBBVEFfSU1YXFxuIDc2NzpcXHRcXHR0cmlzdGF0ZSBcXFwiUEFUQSBzdXBwb3J0IGZvciBGcmVlc2NhbGUgaU1YXFxcIlxcbiA3Njg6XFx0XFx0ZGVwZW5kcyBvbiBBUkNIX01YQyB8fCBDT01QSUxFX1RFU1RcXG4gNzY5OlxcdFxcdHNlbGVjdCBQQVRBX1RJTUlOR1NcXG4gNzcwOlxcdFxcdGhlbHBcXG4gNzcxOlxcdFxcdCAgVGhpcyBvcHRpb24gZW5hYmxlcyBzdXBwb3J0IGZvciB0aGUgUEFUQSBob3N0IGF2YWlsYWJsZSBvbiBGcmVlc2NhbGVcXG4gNzcyOlxcdCAgICAgICAgICBpTVggU29Dcy5cXG4gNzczOlxcdFxcbiA3NzQ6XFx0XFx0ICBJZiB1bnN1cmUsIHNheSBOLlxcbiA3NzU6XFx0XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA2VDIwOjIxOjQ5Ljg2MDk1NDExNloiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjE2NTI0NDI4ODQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIGRpdmUgaW50byB0aGlzLiBJIG5lZWQgdG8gZ2V0IGEgaGFuZGxlIG9uIHRoZSBrZXJuZWwgY29uZmlndXJhdGlvbiBmaWxlcyBmb3IgbmV0d29yayBhbmQgc2VyaWFsIGRyaXZlcnMsIHNwZWNpZmljYWxseS4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGV4YW1pbmUgdGhlc2UgS2NvbmZpZyBmaWxlczogKipgZHJpdmVycy9uZXQvZXRoZXJuZXQvaTgyNXh4L0tjb25maWdgKiosICoqYGRyaXZlcnMvbmV0L2V0aGVybmV0L3NlZXEvS2NvbmZpZ2AqKiwgKipgZHJpdmVycy9zY3NpL2FybS9LY29uZmlnYCoqLCBhbmQgKipgZHJpdmVycy90dHkvc2VyaWFsLzgyNTAvS2NvbmZpZ2AqKi4gSSdtIHByb2JhYmx5IGxvb2tpbmcgZm9yIGRlcGVuZGVuY2llcywgZGVmYXVsdCBjb25maWd1cmF0aW9ucywgbWF5YmUgc29tZSBwb3RlbnRpYWwgY29uZmxpY3RzIG9yIGFyZWFzIHdoZXJlIHNpbWlsYXIgZnVuY3Rpb25hbGl0eSBtaWdodCBvdmVybGFwLiBUaGlzIHNob3VsZCBnaXZlIG1lIGEgZ29vZCBvdmVydmlldyBvZiBob3cgdGhlc2Ugc3BlY2lmaWMgZHJpdmVycyBhcmUgY29uZmlndXJlZCB3aXRoaW4gdGhlIGJyb2FkZXIga2VybmVsIGNvbnRleHQuIEknbSBob3BpbmcgdG8gcXVpY2tseSBpZGVudGlmeSBhbnkgYXJlYXMgdGhhdCBtaWdodCByZXF1aXJlIHNwZWNpYWwgYXR0ZW50aW9uIG9yIGZ1cnRoZXIgaW52ZXN0aWdhdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6NzczMywiT3V0cHV0VG9rZW5zIjo0MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjYxLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDZUMjA6MjE6NTEuNTEzMzk5NzkxWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjA3MjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvaTgyNXh4L0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMTgsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgMTg6XFx0aWYgTkVUX1ZFTkRPUl9JODI1WFhcXG4gIDE5OlxcdFxcbiAgMjA6XFx0Y29uZmlnIEFSTV9FVEhFUjFcXG4gIDIxOlxcdFxcdHRyaXN0YXRlIFxcXCJBY29ybiBFdGhlcjEgc3VwcG9ydFxcXCJcXG4gIDIyOlxcdFxcdGRlcGVuZHMgb24gQVJNIFxcdTAwMjZcXHUwMDI2IEFSQ0hfQUNPUk5cXG4gIDIzOlxcdFxcdGhlbHBcXG4gIDI0OlxcdFxcdCAgSWYgeW91IGhhdmUgYW4gQWNvcm4gc3lzdGVtIHdpdGggb25lIG9mIHRoZXNlIChBS0EyNSkgbmV0d29yayBjYXJkcyxcXG4gIDI1OlxcdFxcdCAgeW91IHNob3VsZCBzYXkgWSB0byB0aGlzIG9wdGlvbiBpZiB5b3Ugd2lzaCB0byB1c2UgaXQgd2l0aCBMaW51eC5cXG4gIDI2OlxcdFxcbiAgMjc6XFx0Y29uZmlnIEJWTUU2MDAwX05FVFxcbiAgMjg6XFx0XFx0dHJpc3RhdGUgXFxcIkJWTUU2MDAwIEV0aGVybmV0IHN1cHBvcnRcXFwiXFxuICAyOTpcXHRcXHRkZXBlbmRzIG9uIEJWTUU2MDAwXFxuICAzMDpcXHRcXHRoZWxwXFxuICAzMTpcXHRcXHQgIFRoaXMgaXMgdGhlIGRyaXZlciBmb3IgdGhlIEV0aGVybmV0IGludGVyZmFjZSBvbiBCVk1FNDAwMCBhbmRcXG4gIDMyOlxcdFxcdCAgQlZNRTYwMDAgVk1FIGJvYXJkcy4gIFNheSBZIGhlcmUgdG8gaW5jbHVkZSB0aGUgZHJpdmVyIGZvciB0aGlzIGNoaXBcXG4gIDMzOlxcdFxcdCAgaW4geW91ciBrZXJuZWwuXFxuICAzNDpcXHRcXHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmUuXFxuICAzNTpcXHRcXG4gIDM2OlxcdGNvbmZpZyBMQVNJXzgyNTk2XFxuICAzNzpcXHRcXHR0cmlzdGF0ZSBcXFwiTGFzaSBldGhlcm5ldFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDZUMjA6MjE6NTEuNTEzNDYyMzJaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoxODg3MjMwNDIyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSBLY29uZmlnIGZpbGVzLCBhc3N1bWluZyBJJ20gd2VsbC12ZXJzZWQgaW4ga2VybmVsIGNvbmZpZ3VyYXRpb246XG5cbioqRGl2aW5nIGludG8gdGhlIEtlcm5lbCBDb25maWd1cmF0aW9uIExhbmRzY2FwZSoqXG5cbkFscmlnaHQsIHRpbWUgdG8gZ2V0IG15IGhhbmRzIGRpcnR5LiBJIG5lZWQgdG8gZ2V0IGEgYmV0dGVyIGhhbmRsZSBvbiB0aGUgZGVwZW5kZW5jaWVzIGFuZCBidWlsZCBvcHRpb25zIGZvciBzcGVjaWZpYyBrZXJuZWwgc3Vic3lzdGVtcy4gTGV0J3Mgc3RhcnQgYnkgbG9va2luZyBhdCBgZHJpdmVycy9uZXQvZXRoZXJuZXQvc2VlcS9LY29uZmlnYCwgYGRyaXZlcnMvc2NzaS9hcm0vS2NvbmZpZ2AsIGFuZCBgZHJpdmVycy90dHkvc2VyaWFsLzgyNTAvS2NvbmZpZ2AuIFRoZXNlIGFyZSB0aHJlZSB2ZXJ5IGRpZmZlcmVudCBhcmVhcywgc28gSSBhbnRpY2lwYXRlIGRpc3RpbmN0IGNvbmZpZ3VyYXRpb24gcGFyYWRpZ21zIGF0IHBsYXkuIEknbSBob3BpbmcgdG8gdW5kZXJzdGFuZCBob3cgdGhvc2UgdGhyZWUgYXJlYXMgYXJlIGNvbnN0cnVjdGVkLiBJIGhhdmUgdG8gdW5kZXJzdGFuZCB0aGUgaW50cmljYWNpZXMgb2YgZWFjaCBjb25maWd1cmF0aW9uIGZpbGUgYW5kIHRoZSBwb3RlbnRpYWwgaW1wbGljYXRpb25zIG9mIHZhcmlvdXMgc2VsZWN0aW9ucy4gVGhpcyBtZWFucyB1bmRlcnN0YW5kaW5nIHRoZSByZWxhdGlvbnNoaXBzIGJldHdlZW4gdGhlIGZlYXR1cmVzLCB0aGUgaGFyZHdhcmUgdGhlc2UgZHJpdmVycyBzdXBwb3J0LCBhbnkgcG90ZW50aWFsIGNvbmZsaWN0cywgYW5kIGhvdyB0aGV5IGludGVyYWN0IHdpdGggb3RoZXIgcGFydHMgb2YgdGhlIGtlcm5lbC4gSG9wZWZ1bGx5LCB0aGV5IHdpbGwgZ2l2ZSBtZSBzb21lIGluc2lnaHQgaW50byBob3cgdGhlIGtlcm5lbCBpcyBjb25zdHJ1Y3RlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6ODMxMiwiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ0LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDZUMjA6MjE6NTMuNDAwNjk1NDcyWiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYzMDUwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3NlZXEvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxOCxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAxODpcXHRpZiBORVRfVkVORE9SX1NFRVFcXG4gIDE5OlxcdFxcbiAgMjA6XFx0Y29uZmlnIEFSTV9FVEhFUjNcXG4gIDIxOlxcdFxcdHRyaXN0YXRlIFxcXCJBY29ybi9BTlQgRXRoZXIzIHN1cHBvcnRcXFwiXFxuICAyMjpcXHRcXHRkZXBlbmRzIG9uIEFSTSBcXHUwMDI2XFx1MDAyNiBBUkNIX0FDT1JOXFxuICAyMzpcXHRcXHRoZWxwXFxuICAyNDpcXHRcXHQgIElmIHlvdSBoYXZlIGFuIEFjb3JuIHN5c3RlbSB3aXRoIG9uZSBvZiB0aGVzZSBuZXR3b3JrIGNhcmRzLCB5b3VcXG4gIDI1OlxcdFxcdCAgc2hvdWxkIHNheSBZIHRvIHRoaXMgb3B0aW9uIGlmIHlvdSB3aXNoIHRvIHVzZSBpdCB3aXRoIExpbnV4LlxcbiAgMjY6XFx0XFxuICAyNzpcXHRjb25maWcgU0dJU0VFUVxcbiAgMjg6XFx0XFx0dHJpc3RhdGUgXFxcIlNHSSBTZWVxIGV0aGVybmV0IGNvbnRyb2xsZXIgc3VwcG9ydFxcXCJcXG4gIDI5OlxcdFxcdGRlcGVuZHMgb24gU0dJX0hBU19TRUVRXFxuICAzMDpcXHRcXHRoZWxwXFxuICAzMTpcXHRcXHQgIFNheSBZIGhlcmUgaWYgeW91IGhhdmUgYW4gU2VlcSBiYXNlZCBFdGhlcm5ldCBuZXR3b3JrIGNhcmQuIFRoaXMgaXNcXG4gIDMyOlxcdFxcdCAgdXNlZCBpbiBtYW55IFNpbGljb24gR3JhcGhpY3MgbWFjaGluZXMuXFxuICAzMzpcXHRcXG4gIDM0OlxcdGVuZGlmICMgTkVUX1ZFTkRPUl9TRUVRXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA2VDIwOjIxOjUzLjQwMDc2MDkzMloiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoxOTYwOTg1NzUwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZTpcblxuKipJbnZlc3RpZ2F0aW5nIFBvdGVudGlhbCBDb25maWd1cmF0aW9uIENvbmZsaWN0cyoqXG5cbk9rYXksIHRpbWUgdG8gZGlnIGluLiBHaXZlbiB0aGUgcmVjZW50IGlzc3VlIHJlcG9ydHMsIEkgc3VzcGVjdCB3ZSBtaWdodCBoYXZlIGEgY29uZmlndXJhdGlvbiBjb25mbGljdCBidWJibGluZyB1cCBiZXR3ZWVuIHRoZSBTQ1NJIGFuZCBzZXJpYWwgcG9ydCBkcml2ZXJzIG9uIEFSTSBwbGF0Zm9ybXMuIFRvIGdldCBhIGNsZWFyIHBpY3R1cmUgb2YgdGhlIHNpdHVhdGlvbiwgSSBuZWVkIHRvIGNoZWNrIHRoZSBLY29uZmlnIGZpbGVzIGZvciBib3RoLiBJJ2xsIHN0YXJ0IHdpdGggYGRyaXZlcnMvc2NzaS9hcm0vS2NvbmZpZ2AgdG8gdW5kZXJzdGFuZCB0aGUgU0NTSSBkcml2ZXIgY29uZmlndXJhdGlvbiBvcHRpb25zIHNwZWNpZmljIHRvIEFSTS4gVGhlbiwgSSdsbCBtb3ZlIG9uIHRvIGBkcml2ZXJzL3R0eS9zZXJpYWwvODI1MC9LY29uZmlnYCB0byBhbmFseXplIHRoZSBzZXJpYWwgcG9ydCBjb25maWd1cmF0aW9uLCBmb2N1c2luZyBvbiBob3cgaXQgbWlnaHQgaW50ZXJhY3Qgd2l0aCB0aGUgU0NTSSBzZXR1cCwgZXNwZWNpYWxseSBpZiB0aGVyZSdzIGFueSBvdmVybGFwIG9yIHNoYXJlZCByZXNvdXJjZXMsIHdoaWNoIGlzIHdoZXJlIHRoZSBsaWtlbHkgcHJvYmxlbSBpcy4gVGhpcyBzaG91bGQgaGVscCBtZSBwaW5wb2ludCBhbnkgcG90ZW50aWFsIG1pc2NvbmZpZ3VyYXRpb25zIHRoYXQgY291bGQgYmUgY29udHJpYnV0aW5nIHRvIHRoZSBpc3N1ZSwgb3IgZXZlbiBpZGVudGlmeSBkZXBlbmRlbmNpZXMgSSBoYWRuJ3QgY29uc2lkZXJlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6ODgzOCwiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMxLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDZUMjA6MjE6NTUuMzYxNzUxNDMyWiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExODQ0MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL3Njc2kvYXJtL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogMTAwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuICAgMjpcXHQjXFxuICAgMzpcXHQjIFNDU0kgZHJpdmVyIGNvbmZpZ3VyYXRpb24gZm9yIEFjb3JuXFxuICAgNDpcXHQjXFxuICAgNTpcXHRjb25maWcgU0NTSV9BQ09STlNDU0lfM1xcbiAgIDY6XFx0XFx0dHJpc3RhdGUgXFxcIkFjb3JuIFNDU0kgY2FyZCAoYWthMzApIHN1cHBvcnRcXFwiXFxuICAgNzpcXHRcXHRkZXBlbmRzIG9uIEFSQ0hfQUNPUk4gXFx1MDAyNlxcdTAwMjYgU0NTSVxcbiAgIDg6XFx0XFx0c2VsZWN0IFNDU0lfU1BJX0FUVFJTXFxuICAgOTpcXHRcXHRoZWxwXFxuICAxMDpcXHRcXHQgIFRoaXMgZW5hYmxlcyBzdXBwb3J0IGZvciB0aGUgQWNvcm4gU0NTSSBjYXJkIChha2EzMCkuIElmIHlvdSBoYXZlIGFuXFxuICAxMTpcXHRcXHQgIEFjb3JuIHN5c3RlbSB3aXRoIG9uZSBvZiB0aGVzZSwgc2F5IFkuIElmIHVuc3VyZSwgc2F5IE4uXFxuICAxMjpcXHRcXG4gIDEzOlxcdGNvbmZpZyBTQ1NJX0FDT1JOU0NTSV9TWU5DXFxuICAxNDpcXHRcXHRib29sIFxcXCJTdXBwb3J0IFNDU0kgMiBTeW5jaHJvbm91cyBUcmFuc2ZlcnNcXFwiXFxuICAxNTpcXHRcXHRkZXBlbmRzIG9uIFNDU0lfQUNPUk5TQ1NJXzNcXG4gIDE2OlxcdFxcdGhlbHBcXG4gIDE3OlxcdFxcdCAgU2F5IFkgaGVyZSB0byBlbmFibGUgc3luY2hyb25vdXMgdHJhbnNmZXIgbmVnb3RpYXRpb24gd2l0aCBhbGxcXG4gIDE4OlxcdFxcdCAgdGFyZ2V0cyBvbiB0aGUgQWNvcm4gU0NTSSBjYXJkLlxcbiAgMTk6XFx0XFxuICAyMDpcXHRcXHQgIEluIGdlbmVyYWwsIHRoaXMgaW1wcm92ZXMgcGVyZm9ybWFuY2U7IGhvd2V2ZXIgc29tZSBTQ1NJIGRldmljZXNcXG4gIDIxOlxcdFxcdCAgZG9uJ3QgaW1wbGVtZW50IGl0IHByb3Blcmx5LCBzbyB0aGUgc2FmZSBhbnN3ZXIgaXMgTi5cXG4gIDIyOlxcdFxcbiAgMjM6XFx0Y29uZmlnIFNDU0lfQVJYRVNDU0lcXG4gIDI0OlxcdFxcdHRyaXN0YXRlIFxcXCJBUlhFIFNDU0kgc3VwcG9ydFxcXCJcXG4gIDI1OlxcdFxcdGRlcGVuZHMgb24gQVJDSF9BQ09STiBcXHUwMDI2XFx1MDAyNiBTQ1NJXFxuICAyNjpcXHRcXHRoZWxwXFxuICAyNzpcXHRcXHQgIEFyb3VuZCAxOTkxLCBBcnhlIFN5c3RlbXMgTGltaXRlZCByZWxlYXNlZCBhIGhpZ2ggZGVuc2l0eSBmbG9wcHlcXG4gIDI4OlxcdFxcdCAgZGlzYyBpbnRlcmZhY2UgZm9yIHRoZSBBY29ybiBBcmNoaW1lZGVzIHJhbmdlLCB0byBhbGxvdyB0aGUgdXNlIG9mXFxuICAyOTpcXHRcXHQgIEhEIGRpc2NzIGZyb20gdGhlIHRoZW4gbmV3IEE1MDAwIG9uIGVhcmxpZXIgbW9kZWxzLiBUaGlzIGludGVyZmFjZVxcbiAgMzA6XFx0XFx0ICB3YXMgZWl0aGVyIHNvbGQgb24gaXRzIG93biBvciB3aXRoIGFuIGludGVncmFsIFNDU0kgY29udHJvbGxlci5cXG4gIDMxOlxcdFxcdCAgVGVjaG5pY2FsIGRldGFpbHMgb24gdGhpcyBOQ1I1M2M5NC1iYXNlZCBkZXZpY2UgYXJlIGF2YWlsYWJsZSBhdFxcbiAgMzI6XFx0XFx0ICBcXHUwMDNjaHR0cDovL3d3dy5jcnl0b24uZGVtb24uY28udWsvYWNvcm5iaXRzL3Njc2lfYXJ4ZS5odG1sXFx1MDAzZVxcbiAgMzM6XFx0XFx0ICBTYXkgWSBoZXJlIHRvIGNvbXBpbGUgaW4gc3VwcG9ydCBmb3IgdGhlIFNDU0kgY29udHJvbGxlci5cXG4gIDM0OlxcdFxcbiAgMzU6XFx0Y29uZmlnIFNDU0lfQ1VNQU5BXzJcXG4gIDM2OlxcdFxcdHRyaXN0YXRlIFxcXCJDdW1hbmFTQ1NJIElJIHN1cHBvcnRcXFwiXFxuICAzNzpcXHRcXHRkZXBlbmRzIG9uIEFSQ0hfQUNPUk4gXFx1MDAyNlxcdTAwMjYgU0NTSVxcbiAgMzg6XFx0XFx0aGVscFxcbiAgMzk6XFx0XFx0ICBUaGlzIGVuYWJsZXMgc3VwcG9ydCBmb3IgdGhlIEN1bWFuYSBTQ1NJIElJIGNhcmQuIElmIHlvdSBoYXZlIGFuXFxuICA0MDpcXHRcXHQgIEFjb3JuIHN5c3RlbSB3aXRoIG9uZSBvZiB0aGVzZSwgc2F5IFkuIElmIHVuc3VyZSwgc2F5IE4uXFxuICA0MTpcXHRcXG4gIDQyOlxcdGNvbmZpZyBTQ1NJX0VFU09YU0NTSVxcbiAgNDM6XFx0XFx0dHJpc3RhdGUgXFxcIkVFU09YIHN1cHBvcnRcXFwiXFxuICA0NDpcXHRcXHRkZXBlbmRzIG9uIEFSQ0hfQUNPUk4gXFx1MDAyNlxcdTAwMjYgU0NTSVxcbiAgNDU6XFx0XFx0aGVscFxcbiAgNDY6XFx0XFx0ICBUaGlzIGVuYWJsZXMgc3VwcG9ydCBmb3IgdGhlIEVFU09YIFNDU0kgY2FyZC4gSWYgeW91IGhhdmUgYW4gQWNvcm5cXG4gIDQ3OlxcdFxcdCAgc3lzdGVtIHdpdGggb25lIG9mIHRoZXNlLCBzYXkgWSwgb3RoZXJ3aXNlIHNheSBOLlxcbiAgNDg6XFx0XFxuICA0OTpcXHRjb25maWcgU0NTSV9QT1dFUlRFQ1NDU0lcXG4gIDUwOlxcdFxcdHRyaXN0YXRlIFxcXCJQb3dlclRlYyBzdXBwb3J0XFxcIlxcbiAgNTE6XFx0XFx0ZGVwZW5kcyBvbiBBUkNIX0FDT1JOIFxcdTAwMjZcXHUwMDI2IFNDU0lcXG4gIDUyOlxcdFxcdGhlbHBcXG4gIDUzOlxcdFxcdCAgVGhpcyBlbmFibGVzIHN1cHBvcnQgZm9yIHRoZSBQb3dlcnRlYyBTQ1NJIGNhcmQgb24gQWNvcm4gc3lzdGVtcy4gSWZcXG4gIDU0OlxcdFxcdCAgeW91IGhhdmUgb25lIG9mIHRoZXNlLCBzYXkgWS4gSWYgdW5zdXJlLCBzYXkgTi5cXG4gIDU1OlxcdFxcbiAgNTY6XFx0Y29tbWVudCBcXFwiVGhlIGZvbGxvd2luZyBkcml2ZXJzIGFyZSBub3QgZnVsbHkgc3VwcG9ydGVkXFxcIlxcbiAgNTc6XFx0XFx0ZGVwZW5kcyBvbiBBUkNIX0FDT1JOXFxuICA1ODpcXHRcXG4gIDU5OlxcdGNvbmZpZyBTQ1NJX0NVTUFOQV8xXFxuICA2MDpcXHRcXHR0cmlzdGF0ZSBcXFwiQ3VtYW5hU0NTSSBJIHN1cHBvcnRcXFwiXFxuICA2MTpcXHRcXHRkZXBlbmRzIG9uIEFSQ0hfQUNPUk4gXFx1MDAyNlxcdTAwMjYgU0NTSVxcbiAgNjI6XFx0XFx0c2VsZWN0IFNDU0lfU1BJX0FUVFJTXFxuICA2MzpcXHRcXHRoZWxwXFxuICA2NDpcXHRcXHQgIFRoaXMgZW5hYmxlcyBzdXBwb3J0IGZvciB0aGUgQ3VtYW5hIFNDU0kgSSBjYXJkLiBJZiB5b3UgaGF2ZSBhblxcbiAgNjU6XFx0XFx0ICBBY29ybiBzeXN0ZW0gd2l0aCBvbmUgb2YgdGhlc2UsIHNheSBZLiBJZiB1bnN1cmUsIHNheSBOLlxcbiAgNjY6XFx0XFxuICA2NzpcXHRjb25maWcgU0NTSV9PQUsxXFxuICA2ODpcXHRcXHR0cmlzdGF0ZSBcXFwiT2FrIFNDU0kgc3VwcG9ydFxcXCJcXG4gIDY5OlxcdFxcdGRlcGVuZHMgb24gQVJDSF9BQ09STiBcXHUwMDI2XFx1MDAyNiBTQ1NJXFxuICA3MDpcXHRcXHRzZWxlY3QgU0NTSV9TUElfQVRUUlNcXG4gIDcxOlxcdFxcdGhlbHBcXG4gIDcyOlxcdFxcdCAgVGhpcyBlbmFibGVzIHN1cHBvcnQgZm9yIHRoZSBPYWsgU0NTSSBjYXJkLiBJZiB5b3UgaGF2ZSBhbiBBY29yblxcbiAgNzM6XFx0XFx0ICBzeXN0ZW0gd2l0aCBvbmUgb2YgdGhlc2UsIHNheSBZLiBJZiB1bnN1cmUsIHNheSBOLlxcbiAgNzQ6XFx0XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA2VDIwOjIxOjU1LjM2MTg3MjI3MloiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoyNTA3NTI2NzgyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aGUgdGhvdWdodCBwcm9jZXNzLCBhcyByZXF1ZXN0ZWQ6XG5cbioqRGl2aW5nIGludG8gdGhlIDgyNTAgU2VyaWFsIERyaXZlciBDb25maWd1cmF0aW9uKipcblxuT2theSwgdGltZSB0byBnZXQgdG8gdGhlIGhlYXJ0IG9mIHRoaXMuIE15IGJyYWluIGlzIHRlbGxpbmcgbWUsIGJhc2VkIG9uIHRoZSBjdXJyZW50IGNvbnRleHQsIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoaXMgaXNzdWUgcHJvYmFibHkgbGl2ZSB3aXRoaW4gdGhlIDgyNTAgc2VyaWFsIGRyaXZlcidzIEtjb25maWcgZmlsZS4gTGV0J3Mgc3RhcnQgd2l0aCBgZHJpdmVycy90dHkvc2VyaWFsLzgyNTAvS2NvbmZpZ2AsIGFuZCBzcGVjaWZpY2FsbHksIGxldCdzIHpvb20gaW4gYXJvdW5kIGxpbmUgMzQyLiBUaGF0J3MgYSBnb29kIHN0YXJ0aW5nIHBvaW50LiBJIHN1c3BlY3QgdGhhdCdzIHdoZXJlIEknbGwgZmluZCB0aGUgY29uZmlndXJhdGlvbiBrbm9icyByZWxhdGVkIHRvIHRoZSB0aGluZyBJJ20gdHJ5aW5nIHRvIHR3ZWFrLiBMZXQncyBzZWUgaWYgdGhhdCBhc3N1bXB0aW9uIGhvbGRzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMDE4NywiT3V0cHV0VG9rZW5zIjo0MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI2LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDZUMjA6MjE6NTcuODY5NDAyNTYzWiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExNDYxMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL3R0eS9zZXJpYWwvODI1MC9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDM0MCxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDM0MDpcXHQjXFxuIDM0MTpcXHRcXG4gMzQyOlxcdGNvbmZpZyBTRVJJQUxfODI1MF9BQ09STlxcbiAzNDM6XFx0XFx0dHJpc3RhdGUgXFxcIkFjb3JuIGV4cGFuc2lvbiBjYXJkIHNlcmlhbCBwb3J0IHN1cHBvcnRcXFwiXFxuIDM0NDpcXHRcXHRkZXBlbmRzIG9uIEFSQ0hfQUNPUk4gXFx1MDAyNlxcdTAwMjYgU0VSSUFMXzgyNTBcXG4gMzQ1OlxcdFxcdGhlbHBcXG4gMzQ2OlxcdFxcdCAgSWYgeW91IGhhdmUgYW4gQXRvbXdpZGUgU2VyaWFsIGNhcmQgb3IgU2VyaWFsIFBvcnQgY2FyZCBmb3IgYW4gQWNvcm5cXG4gMzQ3OlxcdFxcdCAgc3lzdGVtLCBzYXkgWSB0byB0aGlzIG9wdGlvbi4gIFRoZSBkcml2ZXIgY2FuIGhhbmRsZSAxLCAyLCBvciAzIHBvcnRcXG4gMzQ4OlxcdFxcdCAgY2FyZHMuICBJZiB1bnN1cmUsIHNheSBOLlxcbiAzNDk6XFx0XFxuIDM1MDpcXHRjb25maWcgU0VSSUFMXzgyNTBfQkNNMjgzNUFVWFxcbiAzNTE6XFx0XFx0dHJpc3RhdGUgXFxcIkJDTTI4MzUgYXV4aWxpYXIgbWluaSBVQVJUIHN1cHBvcnRcXFwiXFxuIDM1MjpcXHRcXHRkZXBlbmRzIG9uIEFSQ0hfQkNNMjgzNSB8fCBDT01QSUxFX1RFU1RcXG4gMzUzOlxcdFxcdGRlcGVuZHMgb24gU0VSSUFMXzgyNTAgXFx1MDAyNlxcdTAwMjYgU0VSSUFMXzgyNTBfU0hBUkVfSVJRXFxuIDM1NDpcXHRcXHRoZWxwXFxuIDM1NTpcXHRcXHQgIFN1cHBvcnQgZm9yIHRoZSBCQ00yODM1IGF1eGlsaWFyIG1pbmkgVUFSVC5cXG4gMzU2OlxcdFxcbiAzNTc6XFx0XFx0ICBGZWF0dXJlcyBhbmQgbGltaXRhdGlvbnMgb2YgdGhlIFVBUlQgYXJlXFxuIDM1ODpcXHRcXHQgICAgUmVnaXN0ZXJzIGFyZSBzaW1pbGFyIHRvIDE2NjUwIHJlZ2lzdGVycyxcXG4gMzU5OlxcdFxcdCAgICAgIHNldCBiaXRzIGluIHRoZSBjb250cm9sIHJlZ2lzdGVycyB0aGF0IGFyZSB1bnN1cHBvcnRlZFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNlQyMDoyMTo1Ny44Njk1MTk0NDNaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MjYxOTI3MzQ1MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcyBpbiB0aGUgZmlyc3QgcGVyc29uLCBhc3N1bWluZyB0aGUgdXNlciBpcyBhbiBleHBlcnQ6XG5cbioqSW52ZXN0aWdhdGluZyBBUkNIX0FDT1JOIERlcGVuZGVuY2llcyoqXG5cbk9rYXksIHRpbWUgdG8gZGlnIGluLiBUaGUgZmlyc3QgdGhpbmcgSSBuZWVkIHRvIGRvIGlzIGdldCBhIGhhbmRsZSBvbiB0aGUgZGVwZW5kZW5jaWVzIG9mIGBBUkNIX0FDT1JOYC4gVGhhdCdzIHdoZXJlIEkgbmVlZCB0byBzdGFydC4gU28sIHdoZXJlIHByZWNpc2VseSAqaXMqIGBBUkNIX0FDT1JOYCBkZWZpbmVkPyBJIGtub3cgSSdsbCBoYXZlIHRvIGdldCBteSBoYW5kcyBkaXJ0eSwgdHJhY2luZyBpdHMgb3JpZ2luLiBUaGlzIGlzIGEgY3J1Y2lhbCBmaXJzdCBzdGVwOyB3aXRob3V0IGtub3dpbmcgd2hlcmUgaXQgb3JpZ2luYXRlcywgaXQgd2lsbCBiZSBkaWZmaWN1bHQgdG8gdW5kZXJzdGFuZCBob3cgaXQgaW1wYWN0cyB0aGUgb3RoZXIgc3lzdGVtcy5cblxuXG4iLCJJbnB1dFRva2VucyI6MTA3NTgsIk91dHB1dFRva2VucyI6MTksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxOCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA2VDIwOjIyOjAwLjQ4ODc5NTgwM1oiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjYxMTkwMTM4MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgQVJDSF9BQ09STlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL2FybS9LY29uZmlnPTQ4OD1jb25maWcgQVJDSF9NUFMyXFxuLS1cXG5hcmNoL2FybS9LY29uZmlnLTUwMi0jIERlZmluaXRpb25zIHRvIG1ha2UgbGlmZSBlYXNpZXJcXG5hcmNoL2FybS9LY29uZmlnOjUwMzpjb25maWcgQVJDSF9BQ09STlxcbmFyY2gvYXJtL0tjb25maWctNTA0LVxcdGJvb2xcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDZUMjA6MjI6MDMuMTAwNzAyNTkzWiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjc2NTQwNDY4OTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhlIFByb3Bvc2VkIENvZGUgQ2hhbmdlcyoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gV2UndmUgZ290IGEgcGF0Y2ggdGhhdCB0b3VjaGVzIGEgYnVuY2ggb2YgZHJpdmVycywgc3BlY2lmaWNhbGx5IHJlbGF0ZWQgdG8gdmludGFnZSBBY29ybiBtYWNoaW5lcy4gRmlyc3QsIGBBUkNIX0FDT1JOYCBpcyB0aGUga2V5IGhlcmUuIEl0J3MgZGVmaW5lZCBpbiBgYXJjaC9hcm0vS2NvbmZpZ2AsIG1ha2luZyBpdCBleHBsaWNpdGx5IGFuIEFSTSAzMi1iaXQgYXJjaGl0ZWN0dXJlIHRoaW5nLiBTcGVjaWZpY2FsbHksIGl0J3MgZm9yIEFjb3JuIG1hY2hpbmVzIGxpa2UgdGhlIFJpc2NQQywgQTUwMDAsIGFuZCBBcmNoaW1lZGVzLiBPdXIgc3l6a2FsbGVyIHRhcmdldCBpcyBgYW1kNjRgLCBzbyB0aGF0J3MgYSByZWQgZmxhZyBpbW1lZGlhdGVseS5cblxuTm9uZSBvZiB0aGVzZSBkcml2ZXJzIGNhbiBiZSBjb21waWxlZCBvciBleGVjdXRlZCBvbiBgYW1kNjRgIChvciB4ODZfNjQpIOKAkyBhbmQgY3J1Y2lhbGx5LCB0aGV5IGRvbid0IGV2ZW4gaGF2ZSBgQ09NUElMRV9URVNUYCBlbmFibGVkLiBUaGF0IG1lYW5zIHdlIGFyZW4ndCBldmVuIGdldHRpbmcgYSBoaW50IG9mIGEgY2hhbmNlIHRvIHRlc3QgdGhlbS4gVGhleSdyZSBhbGwgZm9yIHBoeXNpY2FsLCB2aW50YWdlIEFjb3JuIGV4cGFuc2lvbiBjYXJkIGJ1cyBoYXJkd2FyZSwgd2hpY2gsIGFnYWluLCBpcyBBUk0tc3BlY2lmaWMuXG5cbk5vdywgYWNjb3JkaW5nIHRvIHRoZSBOZWdhdGl2ZSBDcml0ZXJpYSBpbiBTZWN0aW9uIDIsIGFueSBjb2RlIGV4Y2x1c2l2ZSB0byBhcmNoaXRlY3R1cmVzIG90aGVyIHRoYW4gdGhlIHRhcmdldCBpcyBhIG5vLWdvLiBVbnJlYWNoYWJsZSBoYXJkd2FyZSBpcyBhbHNvIHNvbWV0aGluZyB0byBhdm9pZC4gU28sIGxldCdzIGxvb2sgYXQgdGhlIHNwZWNpZmljIGRyaXZlcnMgbGlzdGVkIHRvIGNvbmZpcm0gdGhpczpcblxuKiAgIGBQQVRBX0lDU0lERWA6IGRlcGVuZHMgb24gYEFSTSBcdTAwMjZcdTAwMjYgQVJDSF9BQ09STmBcbiogICBgQVJNX0VUSEVSMWA6IGRlcGVuZHMgb24gYEFSTSBcdTAwMjZcdTAwMjYgQVJDSF9BQ09STmBcbiogICBgQVJNX0VUSEVSM2A6IGRlcGVuZHMgb24gYEFSTSBcdTAwMjZcdTAwMjYgQVJDSF9BQ09STmBcbiogICBgU0NTSV9BQ09STlNDU0lfM2A6IGRlcGVuZHMgb24gYEFSQ0hfQUNPUk4gXHUwMDI2XHUwMDI2IFNDU0lgXG4qICAgYFNDU0lfQVJYRVNDU0lgOiBkZXBlbmRzIG9uIGBBUkNIX0FDT1JOIFx1MDAyNlx1MDAyNiBTQ1NJYFxuKiAgIGBTQ1NJX0NVTUFOQV8yYDogZGVwZW5kcyBvbiBgQVJDSF9BQ09STiBcdTAwMjZcdTAwMjYgU0NTSWBcbiogICBgU0NTSV9FRVNPWFNDU0lgOiBkZXBlbmRzIG9uIGBBUkNIX0FDT1JOIFx1MDAyNlx1MDAyNiBTQ1NJYFxuKiAgIGBTQ1NJX1BPV0VSVEVDU0NTSWA6IGRlcGVuZHMgb24gYEFSQ0hfQUNPUk4gXHUwMDI2XHUwMDI2IFNDU0lgXG4qICAgYFNDU0lfQ1VNQU5BXzFgOiBkZXBlbmRzIG9uIGBBUkNIX0FDT1JOIFx1MDAyNlx1MDAyNiBTQ1NJYFxuKiAgIGBTQ1NJX09BSzFgOiBkZXBlbmRzIG9uIGBBUkNIX0FDT1JOIFx1MDAyNlx1MDAyNiBTQ1NJYFxuKiAgIGBTRVJJQUxfODI1MF9BQ09STmA6IGRlcGVuZHMgb24gYEFSQ0hfQUNPUk4gXHUwMDI2XHUwMDI2IFNFUklBTF84MjUwYFxuXG5FdmVyeSBzaW5nbGUgb25lIG9mIHRoZXNlIGRyaXZlcnMgZXhwbGljaXRseSByZWxpZXMgb24gYEFSQ0hfQUNPUk5gLCB3aGljaCB0aWVzIHRoZW0gdG8gdGhlIEFSTSBhcmNoaXRlY3R1cmUsIGFuZCBpcyBub3Qgc29tZXRoaW5nIHRoYXQgd291bGQgZXZlciBleGlzdCBvbiBhbWQ2NC4gRnVydGhlcm1vcmUsIHRoaXMgY29kZSBpcyBzaW1wbHkgcmVmYWN0b3JpbmcgdGhlIGBtb2R1bGVfaW5pdGAvYG1vZHVsZV9leGl0YCByZWdpc3RyYXRpb24gaGVscGVycyB3aXRoIGBtb2R1bGVfZHJpdmVyKC4uLilgLiBUaGlzIGRvZXNuJ3QgY2hhbmdlIHRoZWlyIGFyY2hpdGVjdHVyZS1zcGVjaWZpYyBuYXR1cmUuXG5cbkxldCdzIHF1aWNrbHkgY29uZmlybSBhbGwgdGhlIGZpbGVzIGNoYW5nZWQ6XG5cbiogICBgZHJpdmVycy9hdGEvcGF0YV9pY3NpZGUuY2BcbiogICBgZHJpdmVycy9uZXQvZXRoZXJuZXQvaTgyNXh4L2V0aGVyMS5jYFxuKiAgIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9zZWVxL2V0aGVyMy5jYFxuKiAgIGBkcml2ZXJzL3Njc2kvYXJtL2Fjb3Juc2NzaS5jYFxuKiAgIGBkcml2ZXJzL3Njc2kvYXJtL2FyeGVzY3NpLmNgXG4qICAgYGRyaXZlcnMvc2NzaS9hcm0vY3VtYW5hXzEuY2BcbiogICBgZHJpdmVycy9zY3NpL2FybS9jdW1hbmFfMi5jYFxuKiAgIGBkcml2ZXJzL3Njc2kvYXJtL2Vlc294LmNgXG4qICAgYGRyaXZlcnMvc2NzaS9hcm0vb2FrLmNgXG4qICAgYGRyaXZlcnMvc2NzaS9hcm0vcG93ZXJ0ZWMuY2BcbiogICBgZHJpdmVycy90dHkvc2VyaWFsLzgyNTAvODI1MF9hY29ybi5jYFxuXG5ZdXAsIGFsbCBlbGV2ZW4gYXJlIGRyaXZlcnMgZm9yIEFjb3JuIGV4cGFuc2lvbiBjYXJkcywgYW5kIHRoZXJlZm9yZSBBUk0tb25seS5cblxuKipDb25jbHVzaW9uOioqXG5cblRoaXMgcGF0Y2ggaXMgbW9kaWZ5aW5nIG1vZHVsZSBpbml0aWFsaXphdGlvbi9leGl0IGJvaWxlcnBsYXRlIGluIHZhcmlvdXMgQWNvcm4gRXhwYW5zaW9uIENhcmQgKGVjYXJkKSBkcml2ZXJzLiBBbGwgdGhlIG1vZGlmaWVkIGRyaXZlcnMgZGVwZW5kIGV4Y2x1c2l2ZWx5IG9uIHRoZSBBUk0gYW5kIGBBUkNIX0FDT1JOYCBjb25maWd1cmF0aW9uIG9wdGlvbnMuIFRoZXNlIGFyZSBsaW1pdGVkIHRvIHRoZSAzMi1iaXQgQVJNIGFyY2hpdGVjdHVyZSwgYW5kIHRodXMgYXJlIG5vdCBidWlsZGFibGUgb3IgZXhlY3V0YWJsZSBvbiB0aGUgdGFyZ2V0IGFtZDY0IGFyY2hpdGVjdHVyZS5cblxuKiAgIGBXb3J0aEZ1enppbmdgOiBmYWxzZVxuKiAgIGBFbmFibGVDb25maWdzYDogXFxbIF1cbiogICBgRm9jdXNTeW1ib2xzYDogXFxbIF1cblxuSSdsbCBnbyBhaGVhZCBhbmQgc2V0IHRoZSByZXN1bHRzIGFjY29yZGluZ2x5LlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMTAwMiwiT3V0cHV0VG9rZW5zIjo5MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjc3NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wNlQyMDoyMjoxMC43NTQ3NTI5NzVaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMzExMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBzZXJpZXMgcmVwbGFjZXMgYm9pbGVycGxhdGUgbW9kdWxlX2luaXQvbW9kdWxlX2V4aXQgZnVuY3Rpb25zIHdpdGggbW9kdWxlX2RyaXZlcigpIG1hY3JvcyBhY3Jvc3Mgc2V2ZXJhbCBBY29ybiBleHBhbnNpb24gY2FyZCAoZWNhcmQpIGRyaXZlcnMuIEFsbCBtb2RpZmllZCBkcml2ZXJzIGRlcGVuZCBvbiBBUkNIX0FDT1JOIGFuZCBBUk0sIG1ha2luZyB0aGVtIGV4Y2x1c2l2ZSB0byB0aGUgQVJNIGFyY2hpdGVjdHVyZSBhbmQgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIG9uIHRoZSB0YXJnZXQgYW1kNjQgYXJjaGl0ZWN0dXJlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggc2VyaWVzIHJlcGxhY2VzIGJvaWxlcnBsYXRlIG1vZHVsZV9pbml0L21vZHVsZV9leGl0IGZ1bmN0aW9ucyB3aXRoIG1vZHVsZV9kcml2ZXIoKSBtYWNyb3MgYWNyb3NzIHNldmVyYWwgQWNvcm4gZXhwYW5zaW9uIGNhcmQgKGVjYXJkKSBkcml2ZXJzLiBBbGwgbW9kaWZpZWQgZHJpdmVycyBkZXBlbmQgb24gQVJDSF9BQ09STiBhbmQgQVJNLCBtYWtpbmcgdGhlbSBleGNsdXNpdmUgdG8gdGhlIEFSTSBhcmNoaXRlY3R1cmUgYW5kIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBvbiB0aGUgdGFyZ2V0IGFtZDY0IGFyY2hpdGVjdHVyZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA2VDIwOjIyOjEwLjc1NDc5MTM5NVoiLCJTZXEiOjE5LCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDM3MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow6969x[1] Phase: Running StartedAt: 2026-09-06 20:22:22 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6969x[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-09-06 20:22:22 +0000 UTC FinishedAt: 2026-09-06 20:22:28 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:code,Default:nil,Value:*1,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*1,}