Name: series-workflow7q26w Phase: Failed StartedAt: 2026-08-17 03:05:15 +0000 UTC FinishedAt: 2026-08-17 03:21:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7q26w[0] Phase: Succeeded StartedAt: 2026-08-17 03:05:15 +0000 UTC FinishedAt: 2026-08-17 03:20:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7q26w[0].run-triage Phase: Succeeded StartedAt: 2026-08-17 03:05:15 +0000 UTC FinishedAt: 2026-08-17 03:20:53 +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+CgkJCTx0ZD4yMDI2LzA4LzE3IDAzOjIwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIG5ldyBkZXZpY2UgdHJlZSBjb21wYXRpYmxlIHN0cmluZyBhbmQgbWlub3IgcHJvYmUtdGltZSBjb25maWd1cmF0aW9uIGZvciB0aGUgQWx0ZXJhIFNPQ0ZQR0EgRFdNQUMgZHJpdmVyLiBUaGlzIGlzIGEgdmVuZG9yLXNwZWNpZmljIGhhcmR3YXJlIGRyaXZlciB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGxpa2UgUUVNVS9HQ0UpIHVzZWQgZm9yIGZ1enppbmcuIEZ1cnRoZXJtb3JlLCB0aGUgY2hhbmdlcyBhcmUgdHJpdmlhbCBhc3NpZ25tZW50cyBkdXJpbmcgZGV2aWNlIHByb2JlIGFuZCBkbyBub3QgaW50cm9kdWNlIGFueSBjb21wbGV4IG9yIHVzZXItcmVhY2hhYmxlIGxvZ2ljLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNyAwMzoyMDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDg2NGFkNDQ2NjlmM2E3YjEyNmQ1NDhmZWVhZjljZjYyY2NkYTQxNmJcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEF1ZyAxNyAwMzoyMDoyMSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL2FsdGVyYS55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9hbHRlcmEueWFtbFxuaW5kZXggMzAzMGNmNDZmZTc0Yy4uZTQzMTQ2OWE3MTc1MyAxMDA2NDRcbi0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vYWx0ZXJhLnlhbWxcbiYjNDM7JiM0MzsmIzQzOyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vYWx0ZXJhLnlhbWxcbkBAIC0xMTQsNiAmIzQzOzExNCw3IEBAIHByb3BlcnRpZXM6XG4gICAgICAgICAgICAgICAtIGludGVsLHNvY2ZwZ2EtYWdpbGV4NS1zb2Nkay1kZWJ1Z1xuICAgICAgICAgICAgICAgLSBpbnRlbCxzb2NmcGdhLWFnaWxleDUtc29jZGstbW9kdWxhclxuICAgICAgICAgICAgICAgLSBpbnRlbCxzb2NmcGdhLWFnaWxleDUtc29jZGstbmFuZFxuJiM0MzsgICAgICAgICAgICAgIC0gaW50ZWwsc29jZnBnYS1hZ2lsZXg1LXNvY2RrLXRzbi1jZmcyXG4gICAgICAgICAgIC0gY29uc3Q6IGludGVsLHNvY2ZwZ2EtYWdpbGV4NVxuIFxuICAgICAgIC0gZGVzY3JpcHRpb246IEFnaWxleDcyIGJvYXJkc1xuZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbHRyLHNvY2ZwZ2Etc3RtbWFjLnlhbWxcbmluZGV4IDYzMDg0Zjc2MjM3MzguLjdkYjZhNzEwMjk5NDMgMTAwNjQ0XG4tLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbFxuJiM0MzsmIzQzOyYjNDM7IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbHRyLHNvY2ZwZ2Etc3RtbWFjLnlhbWxcbkBAIC0yNCw2ICYjNDM7MjQsNyBAQCBzZWxlY3Q6XG4gICAgICAgICAgIC0gYWx0cixzb2NmcGdhLXN0bW1hY1xuICAgICAgICAgICAtIGFsdHIsc29jZnBnYS1zdG1tYWMtYTEwLXMxMFxuICAgICAgICAgICAtIGFsdHIsc29jZnBnYS1zdG1tYWMtYWdpbGV4NVxuJiM0MzsgICAgICAgICAgLSBhbHRyLHNvY2ZwZ2Etc3RtbWFjLWFnaWxleDUtdHNuXG4gXG4gICByZXF1aXJlZDpcbiAgICAgLSBjb21wYXRpYmxlXG5AQCAtNDYsNiAmIzQzOzQ3LDkgQEAgcHJvcGVydGllczpcbiAgICAgICAtIGl0ZW1zOlxuICAgICAgICAgICAtIGNvbnN0OiBhbHRyLHNvY2ZwZ2Etc3RtbWFjLWFnaWxleDVcbiAgICAgICAgICAgLSBjb25zdDogc25wcyxkd3hnbWFjLTIuMTBcbiYjNDM7ICAgICAgLSBpdGVtczpcbiYjNDM7ICAgICAgICAgIC0gY29uc3Q6IGFsdHIsc29jZnBnYS1zdG1tYWMtYWdpbGV4NS10c25cbiYjNDM7ICAgICAgICAgIC0gY29uc3Q6IHNucHMsZHd4Z21hYy0yLjEwXG4gXG4gICBjbG9ja3M6XG4gICAgIG1pbkl0ZW1zOiAxXG5kaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9NYWtlZmlsZSBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvTWFrZWZpbGVcbmluZGV4IDI3MGM3MGZkZjA4NGIuLmNlN2NmM2E2MzI3NTMgMTAwNjQ0XG4tLS0gYS9hcmNoL2FybTY0L2Jvb3QvZHRzL2ludGVsL01ha2VmaWxlXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL2ludGVsL01ha2VmaWxlXG5AQCAtOCw2ICYjNDM7OCw3IEBAIGR0Yi0kKENPTkZJR19BUkNIX0lOVEVMX1NPQ0ZQR0EpICYjNDM7PSBzb2NmcGdhX2FnaWxleF9uNjAwMC5kdGIgXFxcbiBcdFx0XHRcdHNvY2ZwZ2FfYWdpbGV4NV9zb2Nka18wMTNiLmR0YiBcXFxuIFx0XHRcdFx0c29jZnBnYV9hZ2lsZXg1X3NvY2RrX21vZHVsYXIuZHRiIFxcXG4gXHRcdFx0XHRzb2NmcGdhX2FnaWxleDVfc29jZGtfbmFuZC5kdGIgXFxcbiYjNDM7XHRcdFx0XHRzb2NmcGdhX2FnaWxleDVfc29jZGtfdHNuX2NmZzIuZHRiIFxcXG4gXHRcdFx0XHRzb2NmcGdhX2FnaWxleDcyX3NvY2RrLmR0YiBcXFxuIFx0XHRcdFx0c29jZnBnYV9hZ2lsZXg3bV9zb2Nkay5kdGIgXFxcbiBcdFx0XHRcdHNvY2ZwZ2FfbjV4X3NvY2RrLmR0YlxuZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvc29jZnBnYV9hZ2lsZXg1X3NvY2RrX3Rzbl9jZmcyLmR0cyBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvc29jZnBnYV9hZ2lsZXg1X3NvY2RrX3Rzbl9jZmcyLmR0c1xubmV3IGZpbGUgbW9kZSAxMDA2NDRcbmluZGV4IDAwMDAwMDAwMDAwMDAuLjlkMzlmODQzYjQyNDBcbi0tLSAvZGV2L251bGxcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvc29jZnBnYV9hZ2lsZXg1X3NvY2RrX3Rzbl9jZmcyLmR0c1xuQEAgLTAsMCAmIzQzOzEsMTMwIEBAXG4mIzQzOy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbiYjNDM7LypcbiYjNDM7ICogQ29weXJpZ2h0IChDKSAyMDI2LCBBbHRlcmEgQ29ycG9yYXRpb25cbiYjNDM7ICovXG4mIzQzOyNpbmNsdWRlIFwmIzM0O3NvY2ZwZ2FfYWdpbGV4NS5kdHNpXCYjMzQ7XG4mIzQzO1xuJiM0MzsvIHtcbiYjNDM7XHRtb2RlbCA9IFwmIzM0O1NvQ0ZQR0EgQWdpbGV4NSBTb0NESyBUU04gQ29uZmlnMlwmIzM0OztcbiYjNDM7XHRjb21wYXRpYmxlID0gXCYjMzQ7aW50ZWwsc29jZnBnYS1hZ2lsZXg1LXNvY2RrLXRzbi1jZmcyXCYjMzQ7LCBcJiMzNDtpbnRlbCxzb2NmcGdhLWFnaWxleDVcJiMzNDs7XG4mIzQzO1xuJiM0MztcdGFsaWFzZXMge1xuJiM0MztcdFx0c2VyaWFsMCA9IFx1MDAyNnVhcnQwO1xuJiM0MztcdFx0ZXRoZXJuZXQxID0gXHUwMDI2Z21hYzE7XG4mIzQzO1x0XHRldGhlcm5ldDIgPSBcdTAwMjZnbWFjMjtcbiYjNDM7XHR9O1xuJiM0MztcbiYjNDM7XHRjaG9zZW4ge1xuJiM0MztcdFx0c3Rkb3V0LXBhdGggPSBcJiMzNDtzZXJpYWwwOjExNTIwMG44XCYjMzQ7O1xuJiM0MztcdH07XG4mIzQzO1xuJiM0MztcdGxlZHMge1xuJiM0MztcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O2dwaW8tbGVkc1wmIzM0OztcbiYjNDM7XG4mIzQzO1x0XHRsZWQtMCB7XG4mIzQzO1x0XHRcdGxhYmVsID0gXCYjMzQ7aHBzX2xlZDBcJiMzNDs7XG4mIzQzO1x0XHRcdGdwaW9zID0gXHUwMDNjXHUwMDI2cG9ydGEgMTEgR1BJT19BQ1RJVkVfSElHSFx1MDAzZTtcbiYjNDM7XHRcdH07XG4mIzQzO1xuJiM0MztcdH07XG4mIzQzO1xuJiM0MztcdG1lbW9yeUA4MDAwMDAwMCB7XG4mIzQzO1x0XHRkZXZpY2VfdHlwZSA9IFwmIzM0O21lbW9yeVwmIzM0OztcbiYjNDM7XHRcdC8qIFdlIGV4cGVjdCB0aGUgYm9vdGxvYWRlciB0byBmaWxsIGluIHRoZSByZWcgKi9cbiYjNDM7XHRcdHJlZyA9IFx1MDAzYzB4MCAweDgwMDAwMDAwIDB4MCAweDBcdTAwM2U7XG4mIzQzO1x0fTtcbiYjNDM7fTtcbiYjNDM7XG4mIzQzO1x1MDAyNmdwaW8wIHtcbiYjNDM7XHRzdGF0dXMgPSBcJiMzNDtva2F5XCYjMzQ7O1xuJiM0Mzt9O1xuJiM0MztcbiYjNDM7XHUwMDI2Z3BpbzEge1xuJiM0MztcdHN0YXR1cyA9IFwmIzM0O29rYXlcJiMzNDs7XG4mIzQzO307XG4mIzQzO1xuJiM0MztcdTAwMjZnbWFjMSB7XG4mIzQzO1x0c3RhdHVzID0gXCYjMzQ7b2theVwmIzM0OztcbiYjNDM7XHRjb21wYXRpYmxlID0gXCYjMzQ7YWx0cixzb2NmcGdhLXN0bW1hYy1hZ2lsZXg1LXRzblwmIzM0OyxcbiYjNDM7XHRcdCAgICAgXCYjMzQ7c25wcyxkd3hnbWFjLTIuMTBcJiMzNDs7XG4mIzQzO1x0cGh5LW1vZGUgPSBcJiMzNDtyZ21paS1pZFwmIzM0OztcbiYjNDM7XHRwaHktaGFuZGxlID0gXHUwMDNjXHUwMDI2ZW1hYzFfcGh5MFx1MDAzZTtcbiYjNDM7XHRtYXgtZnJhbWUtc2l6ZSA9IFx1MDAzYzkwMDBcdTAwM2U7XG4mIzQzO1xuJiM0MztcdG1kaW8wIHtcbiYjNDM7XHRcdCNhZGRyZXNzLWNlbGxzID0gXHUwMDNjMVx1MDAzZTtcbiYjNDM7XHRcdCNzaXplLWNlbGxzID0gXHUwMDNjMFx1MDAzZTtcbiYjNDM7XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzbnBzLGR3bWFjLW1kaW9cJiMzNDs7XG4mIzQzO1xuJiM0MztcdFx0ZW1hYzFfcGh5MDogZXRoZXJuZXQtcGh5QDAge1xuJiM0MztcdFx0XHRyZWcgPSBcdTAwM2MwXHUwMDNlO1xuJiM0MztcdFx0fTtcbiYjNDM7XHR9O1xuJiM0Mzt9O1xuJiM0MztcbiYjNDM7XHUwMDI2Z21hYzIge1xuJiM0MztcdHN0YXR1cyA9IFwmIzM0O29rYXlcJiMzNDs7XG4mIzQzO1x0cGh5LW1vZGUgPSBcJiMzNDtyZ21paS1pZFwmIzM0OztcbiYjNDM7XHRwaHktaGFuZGxlID0gXHUwMDNjXHUwMDI2ZW1hYzJfcGh5MFx1MDAzZTtcbiYjNDM7XHRtYXgtZnJhbWUtc2l6ZSA9IFx1MDAzYzkwMDBcdTAwM2U7XG4mIzQzO1xuJiM0MztcdG1kaW8wIHtcbiYjNDM7XHRcdCNhZGRyZXNzLWNlbGxzID0gXHUwMDNjMVx1MDAzZTtcbiYjNDM7XHRcdCNzaXplLWNlbGxzID0gXHUwMDNjMFx1MDAzZTtcbiYjNDM7XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzbnBzLGR3bWFjLW1kaW9cJiMzNDs7XG4mIzQzO1xuJiM0MztcdFx0ZW1hYzJfcGh5MDogZXRoZXJuZXQtcGh5QDAge1xuJiM0MztcdFx0XHRyZWcgPSBcdTAwM2MwXHUwMDNlO1xuJiM0MztcdFx0fTtcbiYjNDM7XHR9O1xuJiM0Mzt9O1xuJiM0MztcbiYjNDM7XHUwMDI2b3NjMSB7XG4mIzQzO1x0Y2xvY2stZnJlcXVlbmN5ID0gXHUwMDNjMjUwMDAwMDBcdTAwM2U7XG4mIzQzO307XG4mIzQzO1xuJiM0MztcdTAwMjZxc3BpIHtcbiYjNDM7XHRzdGF0dXMgPSBcJiMzNDtva2F5XCYjMzQ7O1xuJiM0MztcdGZsYXNoQDAge1xuJiM0MztcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O21pY3JvbixtdDI1cXUwMmdcJiMzNDssIFwmIzM0O2plZGVjLHNwaS1ub3JcJiMzNDs7XG4mIzQzO1x0XHRyZWcgPSBcdTAwM2MwXHUwMDNlO1xuJiM0MztcdFx0c3BpLW1heC1mcmVxdWVuY3kgPSBcdTAwM2MxMDAwMDAwMDBcdTAwM2U7XG4mIzQzO1x0XHRtMjVwLGZhc3QtcmVhZDtcbiYjNDM7XHRcdGNkbnMscmVhZC1kZWxheSA9IFx1MDAzYzJcdTAwM2U7XG4mIzQzO1x0XHRjZG5zLHRzaHNsLW5zID0gXHUwMDNjNTBcdTAwM2U7XG4mIzQzO1x0XHRjZG5zLHRzZDJkLW5zID0gXHUwMDNjNTBcdTAwM2U7XG4mIzQzO1x0XHRjZG5zLHRjaHNoLW5zID0gXHUwMDNjNFx1MDAzZTtcbiYjNDM7XHRcdGNkbnMsdHNsY2gtbnMgPSBcdTAwM2M0XHUwMDNlO1xuJiM0MztcdFx0c3BpLXR4LWJ1cy13aWR0aCA9IFx1MDAzYzRcdTAwM2U7XG4mIzQzO1x0XHRzcGktcngtYnVzLXdpZHRoID0gXHUwMDNjNFx1MDAzZTtcbiYjNDM7XG4mIzQzO1x0XHRwYXJ0aXRpb25zIHtcbiYjNDM7XHRcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O2ZpeGVkLXBhcnRpdGlvbnNcJiMzNDs7XG4mIzQzO1x0XHRcdCNhZGRyZXNzLWNlbGxzID0gXHUwMDNjMVx1MDAzZTtcbiYjNDM7XHRcdFx0I3NpemUtY2VsbHMgPSBcdTAwM2MxXHUwMDNlO1xuJiM0MztcbiYjNDM7XHRcdFx0cXNwaV9ib290OiBwYXJ0aXRpb25AMCB7XG4mIzQzO1x0XHRcdFx0bGFiZWwgPSBcJiMzNDt1LWJvb3RcJiMzNDs7XG4mIzQzO1x0XHRcdFx0cmVnID0gXHUwMDNjMHgwIDB4MDQyMDAwMDBcdTAwM2U7XG4mIzQzO1x0XHRcdH07XG4mIzQzO1xuJiM0MztcdFx0XHRyb290OiBwYXJ0aXRpb25ANDIwMDAwMCB7XG4mIzQzO1x0XHRcdFx0bGFiZWwgPSBcJiMzNDtyb290XCYjMzQ7O1xuJiM0MztcdFx0XHRcdHJlZyA9IFx1MDAzYzB4MDQyMDAwMDAgMHgwYmUwMDAwMFx1MDAzZTtcbiYjNDM7XHRcdFx0fTtcbiYjNDM7XHRcdH07XG4mIzQzO1x0fTtcbiYjNDM7fTtcbiYjNDM7XG4mIzQzO1x1MDAyNnVhcnQwIHtcbiYjNDM7XHRzdGF0dXMgPSBcJiMzNDtva2F5XCYjMzQ7O1xuJiM0Mzt9O1xuJiM0MztcbiYjNDM7XHUwMDI2dXNiMCB7XG4mIzQzO1x0c3RhdHVzID0gXCYjMzQ7b2theVwmIzM0OztcbiYjNDM7XHRkaXNhYmxlLW92ZXItY3VycmVudDtcbiYjNDM7fTtcbiYjNDM7XG4mIzQzO1x1MDAyNndhdGNoZG9nMCB7XG4mIzQzO1x0c3RhdHVzID0gXCYjMzQ7b2theVwmIzM0OztcbiYjNDM7fTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmNcbmluZGV4IDFkN2YwYTU3ZDI4ODkuLjA2MzIxMDViNDIwZjEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuY1xuQEAgLTY5LDEyICYjNDM7NjksMTMgQEAgc3RydWN0IHNvY2ZwZ2FfZHdtYWMge1xuIFx0dm9pZCBfX2lvbWVtICp0c2VfcGNzX2Jhc2U7XG4gXHR2b2lkIF9faW9tZW0gKnNnbWlpX2FkYXB0ZXJfYmFzZTtcbiBcdGJvb2wgZjJoX3B0cF9yZWZfY2xrO1xuJiM0MztcdHBoeV9pbnRlcmZhY2VfdCBtYWNfaW50ZXJmYWNlO1xuIFx0Y29uc3Qgc3RydWN0IHNvY2ZwZ2FfZHdtYWNfb3BzICpvcHM7XG4gfTtcbiBcbiBzdGF0aWMgcGh5X2ludGVyZmFjZV90IHNvY2ZwZ2FfZ2V0X3BsYXRfcGh5bW9kZShzdHJ1Y3Qgc29jZnBnYV9kd21hYyAqZHdtYWMpXG4ge1xuLVx0cmV0dXJuIGR3bWFjLVx1MDAzZXBsYXRfZGF0LVx1MDAzZXBoeV9pbnRlcmZhY2U7XG4mIzQzO1x0cmV0dXJuIGR3bWFjLVx1MDAzZW1hY19pbnRlcmZhY2U7XG4gfVxuIFxuIHN0YXRpYyB2b2lkIHNvY2ZwZ2Ffc2dtaWlfY29uZmlnKHN0cnVjdCBzb2NmcGdhX2R3bWFjICpkd21hYywgYm9vbCBlbmFibGUpXG5AQCAtNjUwLDYgJiM0Mzs2NTEsOCBAQCBzdGF0aWMgaW50IHNvY2ZwZ2FfZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbiBcdHBsYXRfZGF0LVx1MDAzZXBjc19leGl0ID0gc29jZnBnYV9kd21hY19wY3NfZXhpdDtcbiBcdHBsYXRfZGF0LVx1MDAzZXNlbGVjdF9wY3MgPSBzb2NmcGdhX2R3bWFjX3NlbGVjdF9wY3M7XG4gXG4mIzQzO1x0ZHdtYWMtXHUwMDNlbWFjX2ludGVyZmFjZSA9IHBsYXRfZGF0LVx1MDAzZXBoeV9pbnRlcmZhY2U7XG4mIzQzO1xuIFx0b3BzLVx1MDAzZXNldHVwX3BsYXRfZGF0KGR3bWFjKTtcbiBcbiBcdHJldHVybiBkZXZtX3N0bW1hY19wbHRmcl9wcm9iZShwZGV2LCBwbGF0X2RhdCwgXHUwMDI2c3RtbWFjX3Jlcyk7XG5AQCAtNjcwLDEwICYjNDM7NjczLDI4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc29jZnBnYV9kd21hY19vcHMgc29jZnBnYV9hZ2lsZXg1X29wcyA9IHtcbiBcdC5zZXR1cF9wbGF0X2RhdCA9IHNvY2ZwZ2FfYWdpbGV4NV9zZXR1cF9wbGF0X2RhdCxcbiB9O1xuIFxuJiM0MztzdGF0aWMgdm9pZCBzb2NmcGdhX2FnaWxleDVfdHNuX2dtYWNfc2V0dXBfcGxhdF9kYXQoc3RydWN0IHNvY2ZwZ2FfZHdtYWMgKmR3bWFjKVxuJiM0Mzt7XG4mIzQzO1x0c3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdCA9IGR3bWFjLVx1MDAzZXBsYXRfZGF0O1xuJiM0MztcbiYjNDM7XHRzb2NmcGdhX2FnaWxleDVfc2V0dXBfcGxhdF9kYXQoZHdtYWMpO1xuJiM0MztcbiYjNDM7XHQvKiBGUEdBIGNvbnZlcnRlciBzdXBwbGllcyBSR01JSSBkZWxheXM7IE1BQyB1c2VzIEdNSUksIFBIWSBnZXRzIHBsYWluIFJHTUlJICovXG4mIzQzO1x0ZHdtYWMtXHUwMDNlbWFjX2ludGVyZmFjZSA9IFBIWV9JTlRFUkZBQ0VfTU9ERV9HTUlJO1xuJiM0MztcdGlmIChwaHlfaW50ZXJmYWNlX21vZGVfaXNfcmdtaWkocGxhdF9kYXQtXHUwMDNlcGh5X2ludGVyZmFjZSkpXG4mIzQzO1x0XHRwbGF0X2RhdC1cdTAwM2VwaHlfaW50ZXJmYWNlID0gUEhZX0lOVEVSRkFDRV9NT0RFX1JHTUlJO1xuJiM0Mzt9XG4mIzQzO1xuJiM0MztzdGF0aWMgY29uc3Qgc3RydWN0IHNvY2ZwZ2FfZHdtYWNfb3BzIHNvY2ZwZ2FfYWdpbGV4NV90c25fZ21hY19vcHMgPSB7XG4mIzQzO1x0LnNldF9waHlfbW9kZSA9IHNvY2ZwZ2FfZ2VuMTBfc2V0X3BoeV9tb2RlLFxuJiM0MztcdC5zZXR1cF9wbGF0X2RhdCA9IHNvY2ZwZ2FfYWdpbGV4NV90c25fZ21hY19zZXR1cF9wbGF0X2RhdCxcbiYjNDM7fTtcbiYjNDM7XG4gc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgc29jZnBnYV9kd21hY19tYXRjaFtdID0ge1xuIFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O2FsdHIsc29jZnBnYS1zdG1tYWNcJiMzNDssIC5kYXRhID0gXHUwMDI2c29jZnBnYV9nZW41X29wcyB9LFxuIFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O2FsdHIsc29jZnBnYS1zdG1tYWMtYTEwLXMxMFwmIzM0OywgLmRhdGEgPSBcdTAwMjZzb2NmcGdhX2dlbjEwX29wcyB9LFxuIFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O2FsdHIsc29jZnBnYS1zdG1tYWMtYWdpbGV4NVwmIzM0OywgLmRhdGEgPSBcdTAwMjZzb2NmcGdhX2FnaWxleDVfb3BzIH0sXG4mIzQzO1x0eyAuY29tcGF0aWJsZSA9IFwmIzM0O2FsdHIsc29jZnBnYS1zdG1tYWMtYWdpbGV4NS10c25cJiMzNDssIC5kYXRhID0gXHUwMDI2c29jZnBnYV9hZ2lsZXg1X3Rzbl9nbWFjX29wcyB9LFxuIFx0eyB9XG4gfTtcbiBNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBzb2NmcGdhX2R3bWFjX21hdGNoKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNyAwMzoyMDwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIG5ldyBkZXZpY2UgdHJlZSBjb21wYXRpYmxlIHN0cmluZyBhbmQgbWlub3IgcHJvYmUtdGltZSBjb25maWd1cmF0aW9uIGZvciB0aGUgQWx0ZXJhIFNPQ0ZQR0EgRFdNQUMgZHJpdmVyLiBUaGlzIGlzIGEgdmVuZG9yLXNwZWNpZmljIGhhcmR3YXJlIGRyaXZlciB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGxpa2UgUUVNVS9HQ0UpIHVzZWQgZm9yIGZ1enppbmcuIEZ1cnRoZXJtb3JlLCB0aGUgY2hhbmdlcyBhcmUgdHJpdmlhbCBhc3NpZ25tZW50cyBkdXJpbmcgZGV2aWNlIHByb2JlIGFuZCBkbyBub3QgaW50cm9kdWNlIGFueSBjb21wbGV4IG9yIHVzZXItcmVhY2hhYmxlIGxvZ2ljLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDg2NGFkNDQ2NjlmM2E3YjEyNmQ1NDhmZWVhZjljZjYyY2NkYTQxNmIKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgTW9uIEF1ZyAxNyAwMzoyMDoyMSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vYWx0ZXJhLnlhbWwgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL2FsdGVyYS55YW1sCmluZGV4IDMwMzBjZjQ2ZmU3NGMuLmU0MzE0NjlhNzE3NTMgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vYWx0ZXJhLnlhbWwKJiM0MzsmIzQzOyYjNDM7IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9hbHRlcmEueWFtbApAQCAtMTE0LDYgJiM0MzsxMTQsNyBAQCBwcm9wZXJ0aWVzOgogICAgICAgICAgICAgICAtIGludGVsLHNvY2ZwZ2EtYWdpbGV4NS1zb2Nkay1kZWJ1ZwogICAgICAgICAgICAgICAtIGludGVsLHNvY2ZwZ2EtYWdpbGV4NS1zb2Nkay1tb2R1bGFyCiAgICAgICAgICAgICAgIC0gaW50ZWwsc29jZnBnYS1hZ2lsZXg1LXNvY2RrLW5hbmQKJiM0MzsgICAgICAgICAgICAgIC0gaW50ZWwsc29jZnBnYS1hZ2lsZXg1LXNvY2RrLXRzbi1jZmcyCiAgICAgICAgICAgLSBjb25zdDogaW50ZWwsc29jZnBnYS1hZ2lsZXg1CiAKICAgICAgIC0gZGVzY3JpcHRpb246IEFnaWxleDcyIGJvYXJkcwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbHRyLHNvY2ZwZ2Etc3RtbWFjLnlhbWwgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbAppbmRleCA2MzA4NGY3NjIzNzM4Li43ZGI2YTcxMDI5OTQzIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbAomIzQzOyYjNDM7JiM0MzsgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbApAQCAtMjQsNiAmIzQzOzI0LDcgQEAgc2VsZWN0OgogICAgICAgICAgIC0gYWx0cixzb2NmcGdhLXN0bW1hYwogICAgICAgICAgIC0gYWx0cixzb2NmcGdhLXN0bW1hYy1hMTAtczEwCiAgICAgICAgICAgLSBhbHRyLHNvY2ZwZ2Etc3RtbWFjLWFnaWxleDUKJiM0MzsgICAgICAgICAgLSBhbHRyLHNvY2ZwZ2Etc3RtbWFjLWFnaWxleDUtdHNuCiAKICAgcmVxdWlyZWQ6CiAgICAgLSBjb21wYXRpYmxlCkBAIC00Niw2ICYjNDM7NDcsOSBAQCBwcm9wZXJ0aWVzOgogICAgICAgLSBpdGVtczoKICAgICAgICAgICAtIGNvbnN0OiBhbHRyLHNvY2ZwZ2Etc3RtbWFjLWFnaWxleDUKICAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3eGdtYWMtMi4xMAomIzQzOyAgICAgIC0gaXRlbXM6CiYjNDM7ICAgICAgICAgIC0gY29uc3Q6IGFsdHIsc29jZnBnYS1zdG1tYWMtYWdpbGV4NS10c24KJiM0MzsgICAgICAgICAgLSBjb25zdDogc25wcyxkd3hnbWFjLTIuMTAKIAogICBjbG9ja3M6CiAgICAgbWluSXRlbXM6IDEKZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvTWFrZWZpbGUgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL2ludGVsL01ha2VmaWxlCmluZGV4IDI3MGM3MGZkZjA4NGIuLmNlN2NmM2E2MzI3NTMgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvTWFrZWZpbGUKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9NYWtlZmlsZQpAQCAtOCw2ICYjNDM7OCw3IEBAIGR0Yi0kKENPTkZJR19BUkNIX0lOVEVMX1NPQ0ZQR0EpICYjNDM7PSBzb2NmcGdhX2FnaWxleF9uNjAwMC5kdGIgXAogCQkJCXNvY2ZwZ2FfYWdpbGV4NV9zb2Nka18wMTNiLmR0YiBcCiAJCQkJc29jZnBnYV9hZ2lsZXg1X3NvY2RrX21vZHVsYXIuZHRiIFwKIAkJCQlzb2NmcGdhX2FnaWxleDVfc29jZGtfbmFuZC5kdGIgXAomIzQzOwkJCQlzb2NmcGdhX2FnaWxleDVfc29jZGtfdHNuX2NmZzIuZHRiIFwKIAkJCQlzb2NmcGdhX2FnaWxleDcyX3NvY2RrLmR0YiBcCiAJCQkJc29jZnBnYV9hZ2lsZXg3bV9zb2Nkay5kdGIgXAogCQkJCXNvY2ZwZ2FfbjV4X3NvY2RrLmR0YgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9zb2NmcGdhX2FnaWxleDVfc29jZGtfdHNuX2NmZzIuZHRzIGIvYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9zb2NmcGdhX2FnaWxleDVfc29jZGtfdHNuX2NmZzIuZHRzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjlkMzlmODQzYjQyNDAKLS0tIC9kZXYvbnVsbAomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL2ludGVsL3NvY2ZwZ2FfYWdpbGV4NV9zb2Nka190c25fY2ZnMi5kdHMKQEAgLTAsMCAmIzQzOzEsMTMwIEBACiYjNDM7Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQomIzQzOy8qCiYjNDM7ICogQ29weXJpZ2h0IChDKSAyMDI2LCBBbHRlcmEgQ29ycG9yYXRpb24KJiM0MzsgKi8KJiM0MzsjaW5jbHVkZSAmIzM0O3NvY2ZwZ2FfYWdpbGV4NS5kdHNpJiMzNDsKJiM0MzsKJiM0MzsvIHsKJiM0MzsJbW9kZWwgPSAmIzM0O1NvQ0ZQR0EgQWdpbGV4NSBTb0NESyBUU04gQ29uZmlnMiYjMzQ7OwomIzQzOwljb21wYXRpYmxlID0gJiMzNDtpbnRlbCxzb2NmcGdhLWFnaWxleDUtc29jZGstdHNuLWNmZzImIzM0OywgJiMzNDtpbnRlbCxzb2NmcGdhLWFnaWxleDUmIzM0OzsKJiM0MzsKJiM0MzsJYWxpYXNlcyB7CiYjNDM7CQlzZXJpYWwwID0gJmFtcDt1YXJ0MDsKJiM0MzsJCWV0aGVybmV0MSA9ICZhbXA7Z21hYzE7CiYjNDM7CQlldGhlcm5ldDIgPSAmYW1wO2dtYWMyOwomIzQzOwl9OwomIzQzOwomIzQzOwljaG9zZW4gewomIzQzOwkJc3Rkb3V0LXBhdGggPSAmIzM0O3NlcmlhbDA6MTE1MjAwbjgmIzM0OzsKJiM0MzsJfTsKJiM0MzsKJiM0MzsJbGVkcyB7CiYjNDM7CQljb21wYXRpYmxlID0gJiMzNDtncGlvLWxlZHMmIzM0OzsKJiM0MzsKJiM0MzsJCWxlZC0wIHsKJiM0MzsJCQlsYWJlbCA9ICYjMzQ7aHBzX2xlZDAmIzM0OzsKJiM0MzsJCQlncGlvcyA9ICZsdDsmYW1wO3BvcnRhIDExIEdQSU9fQUNUSVZFX0hJR0gmZ3Q7OwomIzQzOwkJfTsKJiM0MzsKJiM0MzsJfTsKJiM0MzsKJiM0MzsJbWVtb3J5QDgwMDAwMDAwIHsKJiM0MzsJCWRldmljZV90eXBlID0gJiMzNDttZW1vcnkmIzM0OzsKJiM0MzsJCS8qIFdlIGV4cGVjdCB0aGUgYm9vdGxvYWRlciB0byBmaWxsIGluIHRoZSByZWcgKi8KJiM0MzsJCXJlZyA9ICZsdDsweDAgMHg4MDAwMDAwMCAweDAgMHgwJmd0OzsKJiM0MzsJfTsKJiM0Mzt9OwomIzQzOwomIzQzOyZhbXA7Z3BpbzAgewomIzQzOwlzdGF0dXMgPSAmIzM0O29rYXkmIzM0OzsKJiM0Mzt9OwomIzQzOwomIzQzOyZhbXA7Z3BpbzEgewomIzQzOwlzdGF0dXMgPSAmIzM0O29rYXkmIzM0OzsKJiM0Mzt9OwomIzQzOwomIzQzOyZhbXA7Z21hYzEgewomIzQzOwlzdGF0dXMgPSAmIzM0O29rYXkmIzM0OzsKJiM0MzsJY29tcGF0aWJsZSA9ICYjMzQ7YWx0cixzb2NmcGdhLXN0bW1hYy1hZ2lsZXg1LXRzbiYjMzQ7LAomIzQzOwkJICAgICAmIzM0O3NucHMsZHd4Z21hYy0yLjEwJiMzNDs7CiYjNDM7CXBoeS1tb2RlID0gJiMzNDtyZ21paS1pZCYjMzQ7OwomIzQzOwlwaHktaGFuZGxlID0gJmx0OyZhbXA7ZW1hYzFfcGh5MCZndDs7CiYjNDM7CW1heC1mcmFtZS1zaXplID0gJmx0OzkwMDAmZ3Q7OwomIzQzOwomIzQzOwltZGlvMCB7CiYjNDM7CQkjYWRkcmVzcy1jZWxscyA9ICZsdDsxJmd0OzsKJiM0MzsJCSNzaXplLWNlbGxzID0gJmx0OzAmZ3Q7OwomIzQzOwkJY29tcGF0aWJsZSA9ICYjMzQ7c25wcyxkd21hYy1tZGlvJiMzNDs7CiYjNDM7CiYjNDM7CQllbWFjMV9waHkwOiBldGhlcm5ldC1waHlAMCB7CiYjNDM7CQkJcmVnID0gJmx0OzAmZ3Q7OwomIzQzOwkJfTsKJiM0MzsJfTsKJiM0Mzt9OwomIzQzOwomIzQzOyZhbXA7Z21hYzIgewomIzQzOwlzdGF0dXMgPSAmIzM0O29rYXkmIzM0OzsKJiM0MzsJcGh5LW1vZGUgPSAmIzM0O3JnbWlpLWlkJiMzNDs7CiYjNDM7CXBoeS1oYW5kbGUgPSAmbHQ7JmFtcDtlbWFjMl9waHkwJmd0OzsKJiM0MzsJbWF4LWZyYW1lLXNpemUgPSAmbHQ7OTAwMCZndDs7CiYjNDM7CiYjNDM7CW1kaW8wIHsKJiM0MzsJCSNhZGRyZXNzLWNlbGxzID0gJmx0OzEmZ3Q7OwomIzQzOwkJI3NpemUtY2VsbHMgPSAmbHQ7MCZndDs7CiYjNDM7CQljb21wYXRpYmxlID0gJiMzNDtzbnBzLGR3bWFjLW1kaW8mIzM0OzsKJiM0MzsKJiM0MzsJCWVtYWMyX3BoeTA6IGV0aGVybmV0LXBoeUAwIHsKJiM0MzsJCQlyZWcgPSAmbHQ7MCZndDs7CiYjNDM7CQl9OwomIzQzOwl9OwomIzQzO307CiYjNDM7CiYjNDM7JmFtcDtvc2MxIHsKJiM0MzsJY2xvY2stZnJlcXVlbmN5ID0gJmx0OzI1MDAwMDAwJmd0OzsKJiM0Mzt9OwomIzQzOwomIzQzOyZhbXA7cXNwaSB7CiYjNDM7CXN0YXR1cyA9ICYjMzQ7b2theSYjMzQ7OwomIzQzOwlmbGFzaEAwIHsKJiM0MzsJCWNvbXBhdGlibGUgPSAmIzM0O21pY3JvbixtdDI1cXUwMmcmIzM0OywgJiMzNDtqZWRlYyxzcGktbm9yJiMzNDs7CiYjNDM7CQlyZWcgPSAmbHQ7MCZndDs7CiYjNDM7CQlzcGktbWF4LWZyZXF1ZW5jeSA9ICZsdDsxMDAwMDAwMDAmZ3Q7OwomIzQzOwkJbTI1cCxmYXN0LXJlYWQ7CiYjNDM7CQljZG5zLHJlYWQtZGVsYXkgPSAmbHQ7MiZndDs7CiYjNDM7CQljZG5zLHRzaHNsLW5zID0gJmx0OzUwJmd0OzsKJiM0MzsJCWNkbnMsdHNkMmQtbnMgPSAmbHQ7NTAmZ3Q7OwomIzQzOwkJY2Rucyx0Y2hzaC1ucyA9ICZsdDs0Jmd0OzsKJiM0MzsJCWNkbnMsdHNsY2gtbnMgPSAmbHQ7NCZndDs7CiYjNDM7CQlzcGktdHgtYnVzLXdpZHRoID0gJmx0OzQmZ3Q7OwomIzQzOwkJc3BpLXJ4LWJ1cy13aWR0aCA9ICZsdDs0Jmd0OzsKJiM0MzsKJiM0MzsJCXBhcnRpdGlvbnMgewomIzQzOwkJCWNvbXBhdGlibGUgPSAmIzM0O2ZpeGVkLXBhcnRpdGlvbnMmIzM0OzsKJiM0MzsJCQkjYWRkcmVzcy1jZWxscyA9ICZsdDsxJmd0OzsKJiM0MzsJCQkjc2l6ZS1jZWxscyA9ICZsdDsxJmd0OzsKJiM0MzsKJiM0MzsJCQlxc3BpX2Jvb3Q6IHBhcnRpdGlvbkAwIHsKJiM0MzsJCQkJbGFiZWwgPSAmIzM0O3UtYm9vdCYjMzQ7OwomIzQzOwkJCQlyZWcgPSAmbHQ7MHgwIDB4MDQyMDAwMDAmZ3Q7OwomIzQzOwkJCX07CiYjNDM7CiYjNDM7CQkJcm9vdDogcGFydGl0aW9uQDQyMDAwMDAgewomIzQzOwkJCQlsYWJlbCA9ICYjMzQ7cm9vdCYjMzQ7OwomIzQzOwkJCQlyZWcgPSAmbHQ7MHgwNDIwMDAwMCAweDBiZTAwMDAwJmd0OzsKJiM0MzsJCQl9OwomIzQzOwkJfTsKJiM0MzsJfTsKJiM0Mzt9OwomIzQzOwomIzQzOyZhbXA7dWFydDAgewomIzQzOwlzdGF0dXMgPSAmIzM0O29rYXkmIzM0OzsKJiM0Mzt9OwomIzQzOwomIzQzOyZhbXA7dXNiMCB7CiYjNDM7CXN0YXR1cyA9ICYjMzQ7b2theSYjMzQ7OwomIzQzOwlkaXNhYmxlLW92ZXItY3VycmVudDsKJiM0Mzt9OwomIzQzOwomIzQzOyZhbXA7d2F0Y2hkb2cwIHsKJiM0MzsJc3RhdHVzID0gJiMzNDtva2F5JiMzNDs7CiYjNDM7fTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYwppbmRleCAxZDdmMGE1N2QyODg5Li4wNjMyMTA1YjQyMGYxIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jCkBAIC02OSwxMiAmIzQzOzY5LDEzIEBAIHN0cnVjdCBzb2NmcGdhX2R3bWFjIHsKIAl2b2lkIF9faW9tZW0gKnRzZV9wY3NfYmFzZTsKIAl2b2lkIF9faW9tZW0gKnNnbWlpX2FkYXB0ZXJfYmFzZTsKIAlib29sIGYyaF9wdHBfcmVmX2NsazsKJiM0MzsJcGh5X2ludGVyZmFjZV90IG1hY19pbnRlcmZhY2U7CiAJY29uc3Qgc3RydWN0IHNvY2ZwZ2FfZHdtYWNfb3BzICpvcHM7CiB9OwogCiBzdGF0aWMgcGh5X2ludGVyZmFjZV90IHNvY2ZwZ2FfZ2V0X3BsYXRfcGh5bW9kZShzdHJ1Y3Qgc29jZnBnYV9kd21hYyAqZHdtYWMpCiB7Ci0JcmV0dXJuIGR3bWFjLSZndDtwbGF0X2RhdC0mZ3Q7cGh5X2ludGVyZmFjZTsKJiM0MzsJcmV0dXJuIGR3bWFjLSZndDttYWNfaW50ZXJmYWNlOwogfQogCiBzdGF0aWMgdm9pZCBzb2NmcGdhX3NnbWlpX2NvbmZpZyhzdHJ1Y3Qgc29jZnBnYV9kd21hYyAqZHdtYWMsIGJvb2wgZW5hYmxlKQpAQCAtNjUwLDYgJiM0Mzs2NTEsOCBAQCBzdGF0aWMgaW50IHNvY2ZwZ2FfZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlwbGF0X2RhdC0mZ3Q7cGNzX2V4aXQgPSBzb2NmcGdhX2R3bWFjX3Bjc19leGl0OwogCXBsYXRfZGF0LSZndDtzZWxlY3RfcGNzID0gc29jZnBnYV9kd21hY19zZWxlY3RfcGNzOwogCiYjNDM7CWR3bWFjLSZndDttYWNfaW50ZXJmYWNlID0gcGxhdF9kYXQtJmd0O3BoeV9pbnRlcmZhY2U7CiYjNDM7CiAJb3BzLSZndDtzZXR1cF9wbGF0X2RhdChkd21hYyk7CiAKIAlyZXR1cm4gZGV2bV9zdG1tYWNfcGx0ZnJfcHJvYmUocGRldiwgcGxhdF9kYXQsICZhbXA7c3RtbWFjX3Jlcyk7CkBAIC02NzAsMTAgJiM0Mzs2NzMsMjggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzb2NmcGdhX2R3bWFjX29wcyBzb2NmcGdhX2FnaWxleDVfb3BzID0gewogCS5zZXR1cF9wbGF0X2RhdCA9IHNvY2ZwZ2FfYWdpbGV4NV9zZXR1cF9wbGF0X2RhdCwKIH07CiAKJiM0MztzdGF0aWMgdm9pZCBzb2NmcGdhX2FnaWxleDVfdHNuX2dtYWNfc2V0dXBfcGxhdF9kYXQoc3RydWN0IHNvY2ZwZ2FfZHdtYWMgKmR3bWFjKQomIzQzO3sKJiM0MzsJc3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdCA9IGR3bWFjLSZndDtwbGF0X2RhdDsKJiM0MzsKJiM0MzsJc29jZnBnYV9hZ2lsZXg1X3NldHVwX3BsYXRfZGF0KGR3bWFjKTsKJiM0MzsKJiM0MzsJLyogRlBHQSBjb252ZXJ0ZXIgc3VwcGxpZXMgUkdNSUkgZGVsYXlzOyBNQUMgdXNlcyBHTUlJLCBQSFkgZ2V0cyBwbGFpbiBSR01JSSAqLwomIzQzOwlkd21hYy0mZ3Q7bWFjX2ludGVyZmFjZSA9IFBIWV9JTlRFUkZBQ0VfTU9ERV9HTUlJOwomIzQzOwlpZiAocGh5X2ludGVyZmFjZV9tb2RlX2lzX3JnbWlpKHBsYXRfZGF0LSZndDtwaHlfaW50ZXJmYWNlKSkKJiM0MzsJCXBsYXRfZGF0LSZndDtwaHlfaW50ZXJmYWNlID0gUEhZX0lOVEVSRkFDRV9NT0RFX1JHTUlJOwomIzQzO30KJiM0MzsKJiM0MztzdGF0aWMgY29uc3Qgc3RydWN0IHNvY2ZwZ2FfZHdtYWNfb3BzIHNvY2ZwZ2FfYWdpbGV4NV90c25fZ21hY19vcHMgPSB7CiYjNDM7CS5zZXRfcGh5X21vZGUgPSBzb2NmcGdhX2dlbjEwX3NldF9waHlfbW9kZSwKJiM0MzsJLnNldHVwX3BsYXRfZGF0ID0gc29jZnBnYV9hZ2lsZXg1X3Rzbl9nbWFjX3NldHVwX3BsYXRfZGF0LAomIzQzO307CiYjNDM7CiBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBzb2NmcGdhX2R3bWFjX21hdGNoW10gPSB7CiAJeyAuY29tcGF0aWJsZSA9ICYjMzQ7YWx0cixzb2NmcGdhLXN0bW1hYyYjMzQ7LCAuZGF0YSA9ICZhbXA7c29jZnBnYV9nZW41X29wcyB9LAogCXsgLmNvbXBhdGlibGUgPSAmIzM0O2FsdHIsc29jZnBnYS1zdG1tYWMtYTEwLXMxMCYjMzQ7LCAuZGF0YSA9ICZhbXA7c29jZnBnYV9nZW4xMF9vcHMgfSwKIAl7IC5jb21wYXRpYmxlID0gJiMzNDthbHRyLHNvY2ZwZ2Etc3RtbWFjLWFnaWxleDUmIzM0OywgLmRhdGEgPSAmYW1wO3NvY2ZwZ2FfYWdpbGV4NV9vcHMgfSwKJiM0MzsJeyAuY29tcGF0aWJsZSA9ICYjMzQ7YWx0cixzb2NmcGdhLXN0bW1hYy1hZ2lsZXg1LXRzbiYjMzQ7LCAuZGF0YSA9ICZhbXA7c29jZnBnYV9hZ2lsZXg1X3Rzbl9nbWFjX29wcyB9LAogCXsgfQogfTsKIE1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHNvY2ZwZ2FfZHdtYWNfbWF0Y2gpOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNyAwMzoyMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0OTk4CgkJCQkJCQlvdXRwdXQ6IDIxCgkJCQkJCQl0aG91Z2h0czogNzIyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgRmVhc2liaWxpdHkgQXNzZXNzbWVudDogQWx0ZXJhIFNPQ0ZQR0EgQWdpbGV4NSBUU04gRFdNQUMgRHJpdmVyIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O3ZlIGdvdCB0aGlzIHBhdGNoIGFkZGluZyBhIG5ldyBkZXZpY2UgdHJlZSBiaW5kaW5nIGFuZCBhIGNvbXBhdGlibGUgc3RyaW5nLCBgYWx0cixzb2NmcGdhLXN0bW1hYy1hZ2lsZXg1LXRzbmAsIHRvIHRoZSBgc3RtbWFjYCBkcml2ZXIgd2l0aGluIGBkd21hYy1zb2NmcGdhLmNgLiBUaGUgcGF0Y2ggc2VlbXMgdG8gYmUgdG91Y2hpbmcgdGhlIGBzb2NmcGdhX2dldF9wbGF0X3BoeW1vZGVgIGZ1bmN0aW9uIGFuZCBhIG5ldyBgc29jZnBnYV9hZ2lsZXg1X3Rzbl9nbWFjX3NldHVwX3BsYXRfZGF0YCBhbmQgYWxzbyBgc29jZnBnYV9hZ2lsZXg1X3Rzbl9nbWFjX29wc2AuIFRoZSBjb3JlIG9mIHRoZSBkcml2ZXIgc2VlbXMgdG8gYmUgdGhlIHN0bW1hYyBkcml2ZXIuCgpNeSBpbml0aWFsIHRob3VnaHQgaXMsIGlzIHRoaXMgZXZlbiAqd29ydGgqIGZ1enppbmc/IEkgbWVhbiwgYGR3bWFjLXNvY2ZwZ2EuY2AgaXMgdGhlIHRhcmdldCwgc28gdGhhdCYjMzk7cyB0aGUgYXJlYSBvZiBpbnRlcmVzdC4gSXQmIzM5O3MgYSBwbGF0Zm9ybSBkcml2ZXIsIHNwZWNpZmljYWxseSBmb3IgQWx0ZXJhIFNPQ0ZQR0EgRFdNQUMuIFBsYXRmb3JtIGRyaXZlcnMgYXJlIGdlbmVyYWxseSB0cmlja3kgdG8gZnV6eiBkaXJlY3RseSBiZWNhdXNlIHlvdSB1c3VhbGx5IG5lZWQgdG8gaW5zdGFudGlhdGUgdGhlbSB2aWEgdGhlIGRldmljZSB0cmVlLgoKVGhlIHF1ZXN0aW9uIGlzLCBjYW4gSSBpbnN0YW50aWF0ZSB0aGlzIHRoaW5nIGluIFFFTVU/IFRoZXNlIFNPQyBzcGVjaWZpYyBwbGF0Zm9ybSBkcml2ZXJzIGFyZSBub3JtYWxseSBhIHBhaW4gaW4gdGhlIGFzcyB0byBmdXp6IGRpcmVjdGx5LiBTeXprYWxsZXIgKmNhbiogaW5qZWN0IHBsYXRmb3JtIGRldmljZXMgd2l0aCBgc3l6X2Rldl9jcmVhdGVgLCBidXQgdGhhdCB1c3VhbGx5IG5lZWRzIHNwZWNpZmljIGhhcmR3YXJlIG9yIFFFTVUgc3VwcG9ydC4gU2luY2UgdGhpcyBpcyBhIGdsdWUgbGF5ZXIgZm9yIGBzdG1tYWNgLCB0aGF0IGFsc28gaW5mbHVlbmNlcyBteSB0aGlua2luZyBoZXJlLgoKTGV0JiMzOTtzIGRpdmUgZGVlcGVyIGludG8gdGhlIGNoYW5nZXMgdGhlbXNlbHZlcy4gSXQgbG9va3MgbGlrZSB0aGUgbW9zdCBzaWduaWZpY2FudCBjaGFuZ2UgaXMgaW4gYHNvY2ZwZ2FfZ2V0X3BsYXRfcGh5bW9kZWAgd2hlcmUgaXQmIzM5O3Mgc3dpdGNoaW5nIGZyb20gdXNpbmcgYGR3bWFjLSZndDtwbGF0X2RhdC0mZ3Q7cGh5X2ludGVyZmFjZWAgdG8gYGR3bWFjLSZndDttYWNfaW50ZXJmYWNlYC4gVGhlbiB3ZSBoYXZlIHRoZSBgc29jZnBnYV9hZ2lsZXg1X3Rzbl9nbWFjX3NldHVwX3BsYXRfZGF0YCB3aGljaCBzZWVtcyB0byBiZSBtb3N0bHkgc2V0dGluZyB1cCBQSFkgaW50ZXJmYWNlIG1vZGVzIGR1cmluZyBwcm9iZS4gVGhlIGNvZGUgbG9va3MgbGlrZSB0aGlzOgoKYGBgYwpzdGF0aWMgcGh5X2ludGVyZmFjZV90IHNvY2ZwZ2FfZ2V0X3BsYXRfcGh5bW9kZShzdHJ1Y3Qgc29jZnBnYV9kd21hYyAqZHdtYWMpCnsKLQlyZXR1cm4gZHdtYWMtJmd0O3BsYXRfZGF0LSZndDtwaHlfaW50ZXJmYWNlOwomIzQzOwlyZXR1cm4gZHdtYWMtJmd0O21hY19pbnRlcmZhY2U7Cn0KCnN0YXRpYyB2b2lkIHNvY2ZwZ2FfYWdpbGV4NV90c25fZ21hY19zZXR1cF9wbGF0X2RhdChzdHJ1Y3Qgc29jZnBnYV9kd21hYyAqZHdtYWMpCnsKCXN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQgPSBkd21hYy0mZ3Q7cGxhdF9kYXQ7CgoJc29jZnBnYV9hZ2lsZXg1X3NldHVwX3BsYXRfZGF0KGR3bWFjKTsKCgkvKiBGUEdBIGNvbnZlcnRlciBzdXBwbGllcyBSR01JSSBkZWxheXM7IE1BQyB1c2VzIEdNSUksIFBIWSBnZXRzIHBsYWluIFJHTUlJICovCglkd21hYy0mZ3Q7bWFjX2ludGVyZmFjZSA9IFBIWV9JTlRFUkZBQ0VfTU9ERV9HTUlJOwoJaWYgKHBoeV9pbnRlcmZhY2VfbW9kZV9pc19yZ21paShwbGF0X2RhdC0mZ3Q7cGh5X2ludGVyZmFjZSkpCgkJcGxhdF9kYXQtJmd0O3BoeV9pbnRlcmZhY2UgPSBQSFlfSU5URVJGQUNFX01PREVfUkdNSUk7Cn0KYGBgCgpUaGUgY2hhbmdlcyBhcmUgaW5jcmVkaWJseSBtaW5pbWFsIC0gbW9zdGx5IGFib3V0IHNldHRpbmcgdXAgUEhZIGludGVyZmFjZSBtb2RlcyBhdCBwcm9iZSB0aW1lLiBUaGUgbmV3IHNldHVwIGZ1bmN0aW9uIG1vZGlmaWVzIHRoZSBQSFkgaW50ZXJmYWNlLCBidXQgaXQmIzM5O3MgKnNwZWNpZmljKiB0byB0aGUgQWx0ZXJhIFNPQ0ZQR0EgQWdpbGV4NSBUU04uCgpTbywgKmlzKiBpdCByZWFjaGFibGU/IEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoYXQgY29uZmlnIG9wdGlvbiBlbmFibGVzIGBkd21hYy1zb2NmcGdhLmNgLiBJJiMzOTtsbCBzZWFyY2ggZm9yIGBDT05GSUdfRFdNQUNfU09DRlBHQWAuIExldCYjMzk7cyBzZWUgaWYgdGhpcyBpcyBldmVuIGNvbXBpbGVkIGJ5IGRlZmF1bHQuIElmIGl0IGlzbiYjMzk7dCwgdGhlIGNoYW5jZXMgb2YgdGhpcyBiZWluZyBlYXNpbHkgcmVhY2hhYmxlIHZpYSBmdXp6aW5nIGFyZSBsb3cuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTcgMDM6MjA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7RFdNQUNfU09DRlBHQSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTE5MT1jb25maWcgRFdNQUNfUzMyXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMDItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjIwMzpjb25maWcgRFdNQUNfU09DRlBHQVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMDQtXHR0cmlzdGF0ZSBcJiMzNDtTT0NGUEdBIGR3bWFjIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZT0yOD1vYmotJChDT05GSUdfRFdNQUNfUzMyKVx0XHQmIzQzOz0gZHdtYWMtczMyLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjI5Om9iai0kKENPTkZJR19EV01BQ19TT0NGUEdBKVx0JiM0Mzs9IGR3bWFjLWFsdHItc29jZnBnYS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS0zMC1vYmotJChDT05GSUdfRFdNQUNfU09QSEdPKVx0JiM0Mzs9IGR3bWFjLXNvcGhnby5vXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTcgMDM6MjA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjc4NQoJCQkJCQkJb3V0cHV0OiAxMTIKCQkJCQkJCXRob3VnaHRzOiA0OTkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudDogTm90IFdvcnRoIEZ1enppbmcqKgoKT2theSwgc28gdGhlIGNvbmZpZyBpcyBgRFdNQUNfU09DRlBHQWAuIFRoZSBjaGFuZ2VzIGFyZSBpc29sYXRlZCB0byB0aGUgcHJvYmUgcGF0aCBvZiB0aGUgQWx0ZXJhIFNPQ0ZQR0EgaGFyZHdhcmUgZHJpdmVyLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCB0aGVzZSBraW5kcyBvZiBoYXJkd2FyZS1zcGVjaWZpYyBwcm9iZSBwYXRocywgZXNwZWNpYWxseSB0aG9zZSBqdXN0IHNldHRpbmcgdXAgY29uc3RhbnRzIGFuZCBub3QgZXhwb3NpbmcgbmV3IHN5c2NhbGxzIG9yIGNvbXBsZXggbG9naWMsIGFyZW4mIzM5O3QgdHlwaWNhbGx5IGZydWl0ZnVsIGZvciBmdXp6aW5nLiBUaGV5IHVzdWFsbHkgZGVwZW5kIG9uIHZlcnkgc3BlY2lmaWMgaGFyZHdhcmUgb3IgZGV2aWNlIHRyZWUgbm9kZXMgdGhhdCB5b3Ugd29uJiMzOTt0IGZpbmQgaW4gZ2VuZXJpYyB4ODYgVk1zLgoKSSBkaWQgcmVjYWxsIHRoYXQgc3l6a2FsbGVyICpjYW4qIGhhbmRsZSBzb21lIHBsYXRmb3JtIGRyaXZlciBmdXp6aW5nIHdpdGggZGV2aWNlIHRyZWUgb3ZlcmxheSBpbmplY3Rpb24sIGJ1dCBldmVuIHRoZW4sIHRoaXMgaXMgc3RpbGwganVzdCB0aGUgcHJvYmUgZnVuY3Rpb24sIGFuZCBpdCBpcyBhIHRyaXZpYWwgc2V0dXAuCgpMZXQgbWUgYnJlYWsgZG93biB0aGUgY2hhbmdlczogd2UgYXJlIHNldHRpbmcgYSBzaW5nbGUgdmFyaWFibGU6Ci0gYHNvY2ZwZ2FfZ2V0X3BsYXRfcGh5bW9kZWAgY2hhbmdlZCB0byByZXR1cm4gYGR3bWFjLSZndDttYWNfaW50ZXJmYWNlYC4KLSBgc29jZnBnYV9kd21hY19wcm9iZWAgc2V0cyBgZHdtYWMtJmd0O21hY19pbnRlcmZhY2UgPSBwbGF0X2RhdC0mZ3Q7cGh5X2ludGVyZmFjZWAuCi0gYHNvY2ZwZ2FfYWdpbGV4NV90c25fZ21hY19zZXR1cF9wbGF0X2RhdGAgc2V0cyBgZHdtYWMtJmd0O21hY19pbnRlcmZhY2UgPSBQSFlfSU5URVJGQUNFX01PREVfR01JSWAgYW5kIGNoYW5nZXMgYHBsYXRfZGF0LSZndDtwaHlfaW50ZXJmYWNlYC4KCkl0JiMzOTtzIGEgcmVhbGx5IHNpbXBsZSBjb25maWd1cmF0aW9uIGNoYW5nZSBzcGVjaWZpYyB0byBhIHBhcnRpY3VsYXIgaGFyZHdhcmUgcGxhdGZvcm0uIE5vIGNvbXBsZXggbG9naWMsIHN0YXRlIG1hY2hpbmVzLCBvciBhbnl0aGluZyB1c2VyLWFjY2Vzc2libGUgaXMgaW50cm9kdWNlZCBoZXJlLgoKSW5pdGlhbGx5LCBJJiMzOTtkIG1hcmsgdGhpcyBhcyBgV29ydGhGdXp6aW5nPWZhbHNlYCBkdWUgdG8gaXRzIG5hdHVyZS4KCkhvd2V2ZXIsIGxldCBtZSBxdWlja2x5IHJlLXJlYWQgdGhlIGluc3RydWN0aW9ucy4uLiBPa2F5LCB0aGUgY3JpdGVyaWEgYXJlIHByZXR0eSBjbGVhcjoKCiogICBDb2RlIHBhdGhzIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLCBldmVuIHdpdGggc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUuCiogICBWZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyB0aGF0IG5lZWQgcGh5c2ljYWwgaGFyZHdhcmUuCgpUaGlzIGlzIGEgdmVuZG9yLXNwZWNpZmljIFNvQyBFdGhlcm5ldCBNQUMgZHJpdmVyIOKAkyBBbHRlcmEgU09DRlBHQS4gSXQgcmVsaWVzIG9uIHRoZSBkZXZpY2UgdHJlZS4gSSYjMzk7bSBwcmV0dHkgc3VyZSBzdGFuZGFyZCBRRU1VIGRvZXNuJiMzOTt0IGVtdWxhdGUgQWdpbGV4NSwgYW5kIGV2ZW4gd2l0aCBEVCBpbmplY3Rpb24sIHRoZXNlIGFyZSB0cml2aWFsIHByb2JlLXRpbWUgYXNzaWdubWVudHMuCgpZZXAsIHN0aWxsICpub3QqIHdvcnRoIGZ1enppbmcuIEkmIzM5O2xsIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNyAwMzoyMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSBuZXcgZGV2aWNlIHRyZWUgY29tcGF0aWJsZSBzdHJpbmcgYW5kIG1pbm9yIHByb2JlLXRpbWUgY29uZmlndXJhdGlvbiBmb3IgdGhlIEFsdGVyYSBTT0NGUEdBIERXTUFDIGRyaXZlci4gVGhpcyBpcyBhIHZlbmRvci1zcGVjaWZpYyBoYXJkd2FyZSBkcml2ZXIgdGhhdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChsaWtlIFFFTVUvR0NFKSB1c2VkIGZvciBmdXp6aW5nLiBGdXJ0aGVybW9yZSwgdGhlIGNoYW5nZXMgYXJlIHRyaXZpYWwgYXNzaWdubWVudHMgZHVyaW5nIGRldmljZSBwcm9iZSBhbmQgZG8gbm90IGludHJvZHVjZSBhbnkgY29tcGxleCBvciB1c2VyLXJlYWNoYWJsZSBsb2dpYy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSBuZXcgZGV2aWNlIHRyZWUgY29tcGF0aWJsZSBzdHJpbmcgYW5kIG1pbm9yIHByb2JlLXRpbWUgY29uZmlndXJhdGlvbiBmb3IgdGhlIEFsdGVyYSBTT0NGUEdBIERXTUFDIGRyaXZlci4gVGhpcyBpcyBhIHZlbmRvci1zcGVjaWZpYyBoYXJkd2FyZSBkcml2ZXIgdGhhdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChsaWtlIFFFTVUvR0NFKSB1c2VkIGZvciBmdXp6aW5nLiBGdXJ0aGVybW9yZSwgdGhlIGNoYW5nZXMgYXJlIHRyaXZpYWwgYXNzaWdubWVudHMgZHVyaW5nIGRldmljZSBwcm9iZSBhbmQgZG8gbm90IGludHJvZHVjZSBhbnkgY29tcGxleCBvciB1c2VyLXJlYWNoYWJsZSBsb2dpYy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTcgMDM6MjA8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE3VDAzOjIwOjIyLjI4Njg3MDczWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTk3NTk4NTY0MzksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJcIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgbmV3IGRldmljZSB0cmVlIGNvbXBhdGlibGUgc3RyaW5nIGFuZCBtaW5vciBwcm9iZS10aW1lIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBBbHRlcmEgU09DRlBHQSBEV01BQyBkcml2ZXIuIFRoaXMgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVyIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAobGlrZSBRRU1VL0dDRSkgdXNlZCBmb3IgZnV6emluZy4gRnVydGhlcm1vcmUsIHRoZSBjaGFuZ2VzIGFyZSB0cml2aWFsIGFzc2lnbm1lbnRzIGR1cmluZyBkZXZpY2UgcHJvYmUgYW5kIGRvIG5vdCBpbnRyb2R1Y2UgYW55IGNvbXBsZXggb3IgdXNlci1yZWFjaGFibGUgbG9naWMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xN1QwMzoyMDoyMi4yODY4NzY3NVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDU5NTI4MjYyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgODY0YWQ0NDY2OWYzYTdiMTI2ZDU0OGZlZWFmOWNmNjJjY2RhNDE2YlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgTW9uIEF1ZyAxNyAwMzoyMDoyMSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL2FsdGVyYS55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9hbHRlcmEueWFtbFxcbmluZGV4IDMwMzBjZjQ2ZmU3NGMuLmU0MzE0NjlhNzE3NTMgMTAwNjQ0XFxuLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9hbHRlcmEueWFtbFxcbisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vYWx0ZXJhLnlhbWxcXG5AQCAtMTE0LDYgKzExNCw3IEBAIHByb3BlcnRpZXM6XFxuICAgICAgICAgICAgICAgLSBpbnRlbCxzb2NmcGdhLWFnaWxleDUtc29jZGstZGVidWdcXG4gICAgICAgICAgICAgICAtIGludGVsLHNvY2ZwZ2EtYWdpbGV4NS1zb2Nkay1tb2R1bGFyXFxuICAgICAgICAgICAgICAgLSBpbnRlbCxzb2NmcGdhLWFnaWxleDUtc29jZGstbmFuZFxcbisgICAgICAgICAgICAgIC0gaW50ZWwsc29jZnBnYS1hZ2lsZXg1LXNvY2RrLXRzbi1jZmcyXFxuICAgICAgICAgICAtIGNvbnN0OiBpbnRlbCxzb2NmcGdhLWFnaWxleDVcXG4gXFxuICAgICAgIC0gZGVzY3JpcHRpb246IEFnaWxleDcyIGJvYXJkc1xcbmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sXFxuaW5kZXggNjMwODRmNzYyMzczOC4uN2RiNmE3MTAyOTk0MyAxMDA2NDRcXG4tLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbFxcbisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sXFxuQEAgLTI0LDYgKzI0LDcgQEAgc2VsZWN0OlxcbiAgICAgICAgICAgLSBhbHRyLHNvY2ZwZ2Etc3RtbWFjXFxuICAgICAgICAgICAtIGFsdHIsc29jZnBnYS1zdG1tYWMtYTEwLXMxMFxcbiAgICAgICAgICAgLSBhbHRyLHNvY2ZwZ2Etc3RtbWFjLWFnaWxleDVcXG4rICAgICAgICAgIC0gYWx0cixzb2NmcGdhLXN0bW1hYy1hZ2lsZXg1LXRzblxcbiBcXG4gICByZXF1aXJlZDpcXG4gICAgIC0gY29tcGF0aWJsZVxcbkBAIC00Niw2ICs0Nyw5IEBAIHByb3BlcnRpZXM6XFxuICAgICAgIC0gaXRlbXM6XFxuICAgICAgICAgICAtIGNvbnN0OiBhbHRyLHNvY2ZwZ2Etc3RtbWFjLWFnaWxleDVcXG4gICAgICAgICAgIC0gY29uc3Q6IHNucHMsZHd4Z21hYy0yLjEwXFxuKyAgICAgIC0gaXRlbXM6XFxuKyAgICAgICAgICAtIGNvbnN0OiBhbHRyLHNvY2ZwZ2Etc3RtbWFjLWFnaWxleDUtdHNuXFxuKyAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3eGdtYWMtMi4xMFxcbiBcXG4gICBjbG9ja3M6XFxuICAgICBtaW5JdGVtczogMVxcbmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2Jvb3QvZHRzL2ludGVsL01ha2VmaWxlIGIvYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9NYWtlZmlsZVxcbmluZGV4IDI3MGM3MGZkZjA4NGIuLmNlN2NmM2E2MzI3NTMgMTAwNjQ0XFxuLS0tIGEvYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9NYWtlZmlsZVxcbisrKyBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvTWFrZWZpbGVcXG5AQCAtOCw2ICs4LDcgQEAgZHRiLSQoQ09ORklHX0FSQ0hfSU5URUxfU09DRlBHQSkgKz0gc29jZnBnYV9hZ2lsZXhfbjYwMDAuZHRiIFxcXFxcXG4gXFx0XFx0XFx0XFx0c29jZnBnYV9hZ2lsZXg1X3NvY2RrXzAxM2IuZHRiIFxcXFxcXG4gXFx0XFx0XFx0XFx0c29jZnBnYV9hZ2lsZXg1X3NvY2RrX21vZHVsYXIuZHRiIFxcXFxcXG4gXFx0XFx0XFx0XFx0c29jZnBnYV9hZ2lsZXg1X3NvY2RrX25hbmQuZHRiIFxcXFxcXG4rXFx0XFx0XFx0XFx0c29jZnBnYV9hZ2lsZXg1X3NvY2RrX3Rzbl9jZmcyLmR0YiBcXFxcXFxuIFxcdFxcdFxcdFxcdHNvY2ZwZ2FfYWdpbGV4NzJfc29jZGsuZHRiIFxcXFxcXG4gXFx0XFx0XFx0XFx0c29jZnBnYV9hZ2lsZXg3bV9zb2Nkay5kdGIgXFxcXFxcbiBcXHRcXHRcXHRcXHRzb2NmcGdhX241eF9zb2Nkay5kdGJcXG5kaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9zb2NmcGdhX2FnaWxleDVfc29jZGtfdHNuX2NmZzIuZHRzIGIvYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9zb2NmcGdhX2FnaWxleDVfc29jZGtfdHNuX2NmZzIuZHRzXFxubmV3IGZpbGUgbW9kZSAxMDA2NDRcXG5pbmRleCAwMDAwMDAwMDAwMDAwLi45ZDM5Zjg0M2I0MjQwXFxuLS0tIC9kZXYvbnVsbFxcbisrKyBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvc29jZnBnYV9hZ2lsZXg1X3NvY2RrX3Rzbl9jZmcyLmR0c1xcbkBAIC0wLDAgKzEsMTMwIEBAXFxuKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG4rLypcXG4rICogQ29weXJpZ2h0IChDKSAyMDI2LCBBbHRlcmEgQ29ycG9yYXRpb25cXG4rICovXFxuKyNpbmNsdWRlIFxcXCJzb2NmcGdhX2FnaWxleDUuZHRzaVxcXCJcXG4rXFxuKy8ge1xcbitcXHRtb2RlbCA9IFxcXCJTb0NGUEdBIEFnaWxleDUgU29DREsgVFNOIENvbmZpZzJcXFwiO1xcbitcXHRjb21wYXRpYmxlID0gXFxcImludGVsLHNvY2ZwZ2EtYWdpbGV4NS1zb2Nkay10c24tY2ZnMlxcXCIsIFxcXCJpbnRlbCxzb2NmcGdhLWFnaWxleDVcXFwiO1xcbitcXG4rXFx0YWxpYXNlcyB7XFxuK1xcdFxcdHNlcmlhbDAgPSBcXHUwMDI2dWFydDA7XFxuK1xcdFxcdGV0aGVybmV0MSA9IFxcdTAwMjZnbWFjMTtcXG4rXFx0XFx0ZXRoZXJuZXQyID0gXFx1MDAyNmdtYWMyO1xcbitcXHR9O1xcbitcXG4rXFx0Y2hvc2VuIHtcXG4rXFx0XFx0c3Rkb3V0LXBhdGggPSBcXFwic2VyaWFsMDoxMTUyMDBuOFxcXCI7XFxuK1xcdH07XFxuK1xcbitcXHRsZWRzIHtcXG4rXFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJncGlvLWxlZHNcXFwiO1xcbitcXG4rXFx0XFx0bGVkLTAge1xcbitcXHRcXHRcXHRsYWJlbCA9IFxcXCJocHNfbGVkMFxcXCI7XFxuK1xcdFxcdFxcdGdwaW9zID0gXFx1MDAzY1xcdTAwMjZwb3J0YSAxMSBHUElPX0FDVElWRV9ISUdIXFx1MDAzZTtcXG4rXFx0XFx0fTtcXG4rXFxuK1xcdH07XFxuK1xcbitcXHRtZW1vcnlAODAwMDAwMDAge1xcbitcXHRcXHRkZXZpY2VfdHlwZSA9IFxcXCJtZW1vcnlcXFwiO1xcbitcXHRcXHQvKiBXZSBleHBlY3QgdGhlIGJvb3Rsb2FkZXIgdG8gZmlsbCBpbiB0aGUgcmVnICovXFxuK1xcdFxcdHJlZyA9IFxcdTAwM2MweDAgMHg4MDAwMDAwMCAweDAgMHgwXFx1MDAzZTtcXG4rXFx0fTtcXG4rfTtcXG4rXFxuK1xcdTAwMjZncGlvMCB7XFxuK1xcdHN0YXR1cyA9IFxcXCJva2F5XFxcIjtcXG4rfTtcXG4rXFxuK1xcdTAwMjZncGlvMSB7XFxuK1xcdHN0YXR1cyA9IFxcXCJva2F5XFxcIjtcXG4rfTtcXG4rXFxuK1xcdTAwMjZnbWFjMSB7XFxuK1xcdHN0YXR1cyA9IFxcXCJva2F5XFxcIjtcXG4rXFx0Y29tcGF0aWJsZSA9IFxcXCJhbHRyLHNvY2ZwZ2Etc3RtbWFjLWFnaWxleDUtdHNuXFxcIixcXG4rXFx0XFx0ICAgICBcXFwic25wcyxkd3hnbWFjLTIuMTBcXFwiO1xcbitcXHRwaHktbW9kZSA9IFxcXCJyZ21paS1pZFxcXCI7XFxuK1xcdHBoeS1oYW5kbGUgPSBcXHUwMDNjXFx1MDAyNmVtYWMxX3BoeTBcXHUwMDNlO1xcbitcXHRtYXgtZnJhbWUtc2l6ZSA9IFxcdTAwM2M5MDAwXFx1MDAzZTtcXG4rXFxuK1xcdG1kaW8wIHtcXG4rXFx0XFx0I2FkZHJlc3MtY2VsbHMgPSBcXHUwMDNjMVxcdTAwM2U7XFxuK1xcdFxcdCNzaXplLWNlbGxzID0gXFx1MDAzYzBcXHUwMDNlO1xcbitcXHRcXHRjb21wYXRpYmxlID0gXFxcInNucHMsZHdtYWMtbWRpb1xcXCI7XFxuK1xcbitcXHRcXHRlbWFjMV9waHkwOiBldGhlcm5ldC1waHlAMCB7XFxuK1xcdFxcdFxcdHJlZyA9IFxcdTAwM2MwXFx1MDAzZTtcXG4rXFx0XFx0fTtcXG4rXFx0fTtcXG4rfTtcXG4rXFxuK1xcdTAwMjZnbWFjMiB7XFxuK1xcdHN0YXR1cyA9IFxcXCJva2F5XFxcIjtcXG4rXFx0cGh5LW1vZGUgPSBcXFwicmdtaWktaWRcXFwiO1xcbitcXHRwaHktaGFuZGxlID0gXFx1MDAzY1xcdTAwMjZlbWFjMl9waHkwXFx1MDAzZTtcXG4rXFx0bWF4LWZyYW1lLXNpemUgPSBcXHUwMDNjOTAwMFxcdTAwM2U7XFxuK1xcbitcXHRtZGlvMCB7XFxuK1xcdFxcdCNhZGRyZXNzLWNlbGxzID0gXFx1MDAzYzFcXHUwMDNlO1xcbitcXHRcXHQjc2l6ZS1jZWxscyA9IFxcdTAwM2MwXFx1MDAzZTtcXG4rXFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzbnBzLGR3bWFjLW1kaW9cXFwiO1xcbitcXG4rXFx0XFx0ZW1hYzJfcGh5MDogZXRoZXJuZXQtcGh5QDAge1xcbitcXHRcXHRcXHRyZWcgPSBcXHUwMDNjMFxcdTAwM2U7XFxuK1xcdFxcdH07XFxuK1xcdH07XFxuK307XFxuK1xcbitcXHUwMDI2b3NjMSB7XFxuK1xcdGNsb2NrLWZyZXF1ZW5jeSA9IFxcdTAwM2MyNTAwMDAwMFxcdTAwM2U7XFxuK307XFxuK1xcbitcXHUwMDI2cXNwaSB7XFxuK1xcdHN0YXR1cyA9IFxcXCJva2F5XFxcIjtcXG4rXFx0Zmxhc2hAMCB7XFxuK1xcdFxcdGNvbXBhdGlibGUgPSBcXFwibWljcm9uLG10MjVxdTAyZ1xcXCIsIFxcXCJqZWRlYyxzcGktbm9yXFxcIjtcXG4rXFx0XFx0cmVnID0gXFx1MDAzYzBcXHUwMDNlO1xcbitcXHRcXHRzcGktbWF4LWZyZXF1ZW5jeSA9IFxcdTAwM2MxMDAwMDAwMDBcXHUwMDNlO1xcbitcXHRcXHRtMjVwLGZhc3QtcmVhZDtcXG4rXFx0XFx0Y2RucyxyZWFkLWRlbGF5ID0gXFx1MDAzYzJcXHUwMDNlO1xcbitcXHRcXHRjZG5zLHRzaHNsLW5zID0gXFx1MDAzYzUwXFx1MDAzZTtcXG4rXFx0XFx0Y2Rucyx0c2QyZC1ucyA9IFxcdTAwM2M1MFxcdTAwM2U7XFxuK1xcdFxcdGNkbnMsdGNoc2gtbnMgPSBcXHUwMDNjNFxcdTAwM2U7XFxuK1xcdFxcdGNkbnMsdHNsY2gtbnMgPSBcXHUwMDNjNFxcdTAwM2U7XFxuK1xcdFxcdHNwaS10eC1idXMtd2lkdGggPSBcXHUwMDNjNFxcdTAwM2U7XFxuK1xcdFxcdHNwaS1yeC1idXMtd2lkdGggPSBcXHUwMDNjNFxcdTAwM2U7XFxuK1xcbitcXHRcXHRwYXJ0aXRpb25zIHtcXG4rXFx0XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJmaXhlZC1wYXJ0aXRpb25zXFxcIjtcXG4rXFx0XFx0XFx0I2FkZHJlc3MtY2VsbHMgPSBcXHUwMDNjMVxcdTAwM2U7XFxuK1xcdFxcdFxcdCNzaXplLWNlbGxzID0gXFx1MDAzYzFcXHUwMDNlO1xcbitcXG4rXFx0XFx0XFx0cXNwaV9ib290OiBwYXJ0aXRpb25AMCB7XFxuK1xcdFxcdFxcdFxcdGxhYmVsID0gXFxcInUtYm9vdFxcXCI7XFxuK1xcdFxcdFxcdFxcdHJlZyA9IFxcdTAwM2MweDAgMHgwNDIwMDAwMFxcdTAwM2U7XFxuK1xcdFxcdFxcdH07XFxuK1xcbitcXHRcXHRcXHRyb290OiBwYXJ0aXRpb25ANDIwMDAwMCB7XFxuK1xcdFxcdFxcdFxcdGxhYmVsID0gXFxcInJvb3RcXFwiO1xcbitcXHRcXHRcXHRcXHRyZWcgPSBcXHUwMDNjMHgwNDIwMDAwMCAweDBiZTAwMDAwXFx1MDAzZTtcXG4rXFx0XFx0XFx0fTtcXG4rXFx0XFx0fTtcXG4rXFx0fTtcXG4rfTtcXG4rXFxuK1xcdTAwMjZ1YXJ0MCB7XFxuK1xcdHN0YXR1cyA9IFxcXCJva2F5XFxcIjtcXG4rfTtcXG4rXFxuK1xcdTAwMjZ1c2IwIHtcXG4rXFx0c3RhdHVzID0gXFxcIm9rYXlcXFwiO1xcbitcXHRkaXNhYmxlLW92ZXItY3VycmVudDtcXG4rfTtcXG4rXFxuK1xcdTAwMjZ3YXRjaGRvZzAge1xcbitcXHRzdGF0dXMgPSBcXFwib2theVxcXCI7XFxuK307XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuY1xcbmluZGV4IDFkN2YwYTU3ZDI4ODkuLjA2MzIxMDViNDIwZjEgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jXFxuQEAgLTY5LDEyICs2OSwxMyBAQCBzdHJ1Y3Qgc29jZnBnYV9kd21hYyB7XFxuIFxcdHZvaWQgX19pb21lbSAqdHNlX3Bjc19iYXNlO1xcbiBcXHR2b2lkIF9faW9tZW0gKnNnbWlpX2FkYXB0ZXJfYmFzZTtcXG4gXFx0Ym9vbCBmMmhfcHRwX3JlZl9jbGs7XFxuK1xcdHBoeV9pbnRlcmZhY2VfdCBtYWNfaW50ZXJmYWNlO1xcbiBcXHRjb25zdCBzdHJ1Y3Qgc29jZnBnYV9kd21hY19vcHMgKm9wcztcXG4gfTtcXG4gXFxuIHN0YXRpYyBwaHlfaW50ZXJmYWNlX3Qgc29jZnBnYV9nZXRfcGxhdF9waHltb2RlKHN0cnVjdCBzb2NmcGdhX2R3bWFjICpkd21hYylcXG4ge1xcbi1cXHRyZXR1cm4gZHdtYWMtXFx1MDAzZXBsYXRfZGF0LVxcdTAwM2VwaHlfaW50ZXJmYWNlO1xcbitcXHRyZXR1cm4gZHdtYWMtXFx1MDAzZW1hY19pbnRlcmZhY2U7XFxuIH1cXG4gXFxuIHN0YXRpYyB2b2lkIHNvY2ZwZ2Ffc2dtaWlfY29uZmlnKHN0cnVjdCBzb2NmcGdhX2R3bWFjICpkd21hYywgYm9vbCBlbmFibGUpXFxuQEAgLTY1MCw2ICs2NTEsOCBAQCBzdGF0aWMgaW50IHNvY2ZwZ2FfZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4gXFx0cGxhdF9kYXQtXFx1MDAzZXBjc19leGl0ID0gc29jZnBnYV9kd21hY19wY3NfZXhpdDtcXG4gXFx0cGxhdF9kYXQtXFx1MDAzZXNlbGVjdF9wY3MgPSBzb2NmcGdhX2R3bWFjX3NlbGVjdF9wY3M7XFxuIFxcbitcXHRkd21hYy1cXHUwMDNlbWFjX2ludGVyZmFjZSA9IHBsYXRfZGF0LVxcdTAwM2VwaHlfaW50ZXJmYWNlO1xcbitcXG4gXFx0b3BzLVxcdTAwM2VzZXR1cF9wbGF0X2RhdChkd21hYyk7XFxuIFxcbiBcXHRyZXR1cm4gZGV2bV9zdG1tYWNfcGx0ZnJfcHJvYmUocGRldiwgcGxhdF9kYXQsIFxcdTAwMjZzdG1tYWNfcmVzKTtcXG5AQCAtNjcwLDEwICs2NzMsMjggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzb2NmcGdhX2R3bWFjX29wcyBzb2NmcGdhX2FnaWxleDVfb3BzID0ge1xcbiBcXHQuc2V0dXBfcGxhdF9kYXQgPSBzb2NmcGdhX2FnaWxleDVfc2V0dXBfcGxhdF9kYXQsXFxuIH07XFxuIFxcbitzdGF0aWMgdm9pZCBzb2NmcGdhX2FnaWxleDVfdHNuX2dtYWNfc2V0dXBfcGxhdF9kYXQoc3RydWN0IHNvY2ZwZ2FfZHdtYWMgKmR3bWFjKVxcbit7XFxuK1xcdHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQgPSBkd21hYy1cXHUwMDNlcGxhdF9kYXQ7XFxuK1xcbitcXHRzb2NmcGdhX2FnaWxleDVfc2V0dXBfcGxhdF9kYXQoZHdtYWMpO1xcbitcXG4rXFx0LyogRlBHQSBjb252ZXJ0ZXIgc3VwcGxpZXMgUkdNSUkgZGVsYXlzOyBNQUMgdXNlcyBHTUlJLCBQSFkgZ2V0cyBwbGFpbiBSR01JSSAqL1xcbitcXHRkd21hYy1cXHUwMDNlbWFjX2ludGVyZmFjZSA9IFBIWV9JTlRFUkZBQ0VfTU9ERV9HTUlJO1xcbitcXHRpZiAocGh5X2ludGVyZmFjZV9tb2RlX2lzX3JnbWlpKHBsYXRfZGF0LVxcdTAwM2VwaHlfaW50ZXJmYWNlKSlcXG4rXFx0XFx0cGxhdF9kYXQtXFx1MDAzZXBoeV9pbnRlcmZhY2UgPSBQSFlfSU5URVJGQUNFX01PREVfUkdNSUk7XFxuK31cXG4rXFxuK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc29jZnBnYV9kd21hY19vcHMgc29jZnBnYV9hZ2lsZXg1X3Rzbl9nbWFjX29wcyA9IHtcXG4rXFx0LnNldF9waHlfbW9kZSA9IHNvY2ZwZ2FfZ2VuMTBfc2V0X3BoeV9tb2RlLFxcbitcXHQuc2V0dXBfcGxhdF9kYXQgPSBzb2NmcGdhX2FnaWxleDVfdHNuX2dtYWNfc2V0dXBfcGxhdF9kYXQsXFxuK307XFxuK1xcbiBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBzb2NmcGdhX2R3bWFjX21hdGNoW10gPSB7XFxuIFxcdHsgLmNvbXBhdGlibGUgPSBcXFwiYWx0cixzb2NmcGdhLXN0bW1hY1xcXCIsIC5kYXRhID0gXFx1MDAyNnNvY2ZwZ2FfZ2VuNV9vcHMgfSxcXG4gXFx0eyAuY29tcGF0aWJsZSA9IFxcXCJhbHRyLHNvY2ZwZ2Etc3RtbWFjLWExMC1zMTBcXFwiLCAuZGF0YSA9IFxcdTAwMjZzb2NmcGdhX2dlbjEwX29wcyB9LFxcbiBcXHR7IC5jb21wYXRpYmxlID0gXFxcImFsdHIsc29jZnBnYS1zdG1tYWMtYWdpbGV4NVxcXCIsIC5kYXRhID0gXFx1MDAyNnNvY2ZwZ2FfYWdpbGV4NV9vcHMgfSxcXG4rXFx0eyAuY29tcGF0aWJsZSA9IFxcXCJhbHRyLHNvY2ZwZ2Etc3RtbWFjLWFnaWxleDUtdHNuXFxcIiwgLmRhdGEgPSBcXHUwMDI2c29jZnBnYV9hZ2lsZXg1X3Rzbl9nbWFjX29wcyB9LFxcbiBcXHR7IH1cXG4gfTtcXG4gTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgc29jZnBnYV9kd21hY19tYXRjaCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE3VDAzOjIwOjIyLjc0NzIxMjYwMloiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjE5Mjk5NTAwMzE3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgbmV3IGRldmljZSB0cmVlIGNvbXBhdGlibGUgc3RyaW5nIGFuZCBtaW5vciBwcm9iZS10aW1lIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBBbHRlcmEgU09DRlBHQSBEV01BQyBkcml2ZXIuIFRoaXMgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVyIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAobGlrZSBRRU1VL0dDRSkgdXNlZCBmb3IgZnV6emluZy4gRnVydGhlcm1vcmUsIHRoZSBjaGFuZ2VzIGFyZSB0cml2aWFsIGFzc2lnbm1lbnRzIGR1cmluZyBkZXZpY2UgcHJvYmUgYW5kIGRvIG5vdCBpbnRyb2R1Y2UgYW55IGNvbXBsZXggb3IgdXNlci1yZWFjaGFibGUgbG9naWMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA4NjRhZDQ0NjY5ZjNhN2IxMjZkNTQ4ZmVlYWY5Y2Y2MmNjZGE0MTZiXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBBdWcgMTcgMDM6MjA6MjEgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL2FsdGVyYS55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9hbHRlcmEueWFtbFxuaW5kZXggMzAzMGNmNDZmZTc0Yy4uZTQzMTQ2OWE3MTc1MyAxMDA2NDRcbi0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vYWx0ZXJhLnlhbWxcbisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vYWx0ZXJhLnlhbWxcbkBAIC0xMTQsNiArMTE0LDcgQEAgcHJvcGVydGllczpcbiAgICAgICAgICAgICAgIC0gaW50ZWwsc29jZnBnYS1hZ2lsZXg1LXNvY2RrLWRlYnVnXG4gICAgICAgICAgICAgICAtIGludGVsLHNvY2ZwZ2EtYWdpbGV4NS1zb2Nkay1tb2R1bGFyXG4gICAgICAgICAgICAgICAtIGludGVsLHNvY2ZwZ2EtYWdpbGV4NS1zb2Nkay1uYW5kXG4rICAgICAgICAgICAgICAtIGludGVsLHNvY2ZwZ2EtYWdpbGV4NS1zb2Nkay10c24tY2ZnMlxuICAgICAgICAgICAtIGNvbnN0OiBpbnRlbCxzb2NmcGdhLWFnaWxleDVcbiBcbiAgICAgICAtIGRlc2NyaXB0aW9uOiBBZ2lsZXg3MiBib2FyZHNcbmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sXG5pbmRleCA2MzA4NGY3NjIzNzM4Li43ZGI2YTcxMDI5OTQzIDEwMDY0NFxuLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbHRyLHNvY2ZwZ2Etc3RtbWFjLnlhbWxcbisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sXG5AQCAtMjQsNiArMjQsNyBAQCBzZWxlY3Q6XG4gICAgICAgICAgIC0gYWx0cixzb2NmcGdhLXN0bW1hY1xuICAgICAgICAgICAtIGFsdHIsc29jZnBnYS1zdG1tYWMtYTEwLXMxMFxuICAgICAgICAgICAtIGFsdHIsc29jZnBnYS1zdG1tYWMtYWdpbGV4NVxuKyAgICAgICAgICAtIGFsdHIsc29jZnBnYS1zdG1tYWMtYWdpbGV4NS10c25cbiBcbiAgIHJlcXVpcmVkOlxuICAgICAtIGNvbXBhdGlibGVcbkBAIC00Niw2ICs0Nyw5IEBAIHByb3BlcnRpZXM6XG4gICAgICAgLSBpdGVtczpcbiAgICAgICAgICAgLSBjb25zdDogYWx0cixzb2NmcGdhLXN0bW1hYy1hZ2lsZXg1XG4gICAgICAgICAgIC0gY29uc3Q6IHNucHMsZHd4Z21hYy0yLjEwXG4rICAgICAgLSBpdGVtczpcbisgICAgICAgICAgLSBjb25zdDogYWx0cixzb2NmcGdhLXN0bW1hYy1hZ2lsZXg1LXRzblxuKyAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3eGdtYWMtMi4xMFxuIFxuICAgY2xvY2tzOlxuICAgICBtaW5JdGVtczogMVxuZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvTWFrZWZpbGUgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL2ludGVsL01ha2VmaWxlXG5pbmRleCAyNzBjNzBmZGYwODRiLi5jZTdjZjNhNjMyNzUzIDEwMDY0NFxuLS0tIGEvYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9NYWtlZmlsZVxuKysrIGIvYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9NYWtlZmlsZVxuQEAgLTgsNiArOCw3IEBAIGR0Yi0kKENPTkZJR19BUkNIX0lOVEVMX1NPQ0ZQR0EpICs9IHNvY2ZwZ2FfYWdpbGV4X242MDAwLmR0YiBcXFxuIFx0XHRcdFx0c29jZnBnYV9hZ2lsZXg1X3NvY2RrXzAxM2IuZHRiIFxcXG4gXHRcdFx0XHRzb2NmcGdhX2FnaWxleDVfc29jZGtfbW9kdWxhci5kdGIgXFxcbiBcdFx0XHRcdHNvY2ZwZ2FfYWdpbGV4NV9zb2Nka19uYW5kLmR0YiBcXFxuK1x0XHRcdFx0c29jZnBnYV9hZ2lsZXg1X3NvY2RrX3Rzbl9jZmcyLmR0YiBcXFxuIFx0XHRcdFx0c29jZnBnYV9hZ2lsZXg3Ml9zb2Nkay5kdGIgXFxcbiBcdFx0XHRcdHNvY2ZwZ2FfYWdpbGV4N21fc29jZGsuZHRiIFxcXG4gXHRcdFx0XHRzb2NmcGdhX241eF9zb2Nkay5kdGJcbmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2Jvb3QvZHRzL2ludGVsL3NvY2ZwZ2FfYWdpbGV4NV9zb2Nka190c25fY2ZnMi5kdHMgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL2ludGVsL3NvY2ZwZ2FfYWdpbGV4NV9zb2Nka190c25fY2ZnMi5kdHNcbm5ldyBmaWxlIG1vZGUgMTAwNjQ0XG5pbmRleCAwMDAwMDAwMDAwMDAwLi45ZDM5Zjg0M2I0MjQwXG4tLS0gL2Rldi9udWxsXG4rKysgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL2ludGVsL3NvY2ZwZ2FfYWdpbGV4NV9zb2Nka190c25fY2ZnMi5kdHNcbkBAIC0wLDAgKzEsMTMwIEBAXG4rLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuKy8qXG4rICogQ29weXJpZ2h0IChDKSAyMDI2LCBBbHRlcmEgQ29ycG9yYXRpb25cbisgKi9cbisjaW5jbHVkZSBcInNvY2ZwZ2FfYWdpbGV4NS5kdHNpXCJcbitcbisvIHtcbitcdG1vZGVsID0gXCJTb0NGUEdBIEFnaWxleDUgU29DREsgVFNOIENvbmZpZzJcIjtcbitcdGNvbXBhdGlibGUgPSBcImludGVsLHNvY2ZwZ2EtYWdpbGV4NS1zb2Nkay10c24tY2ZnMlwiLCBcImludGVsLHNvY2ZwZ2EtYWdpbGV4NVwiO1xuK1xuK1x0YWxpYXNlcyB7XG4rXHRcdHNlcmlhbDAgPSBcdTAwMjZ1YXJ0MDtcbitcdFx0ZXRoZXJuZXQxID0gXHUwMDI2Z21hYzE7XG4rXHRcdGV0aGVybmV0MiA9IFx1MDAyNmdtYWMyO1xuK1x0fTtcbitcbitcdGNob3NlbiB7XG4rXHRcdHN0ZG91dC1wYXRoID0gXCJzZXJpYWwwOjExNTIwMG44XCI7XG4rXHR9O1xuK1xuK1x0bGVkcyB7XG4rXHRcdGNvbXBhdGlibGUgPSBcImdwaW8tbGVkc1wiO1xuK1xuK1x0XHRsZWQtMCB7XG4rXHRcdFx0bGFiZWwgPSBcImhwc19sZWQwXCI7XG4rXHRcdFx0Z3Bpb3MgPSBcdTAwM2NcdTAwMjZwb3J0YSAxMSBHUElPX0FDVElWRV9ISUdIXHUwMDNlO1xuK1x0XHR9O1xuK1xuK1x0fTtcbitcbitcdG1lbW9yeUA4MDAwMDAwMCB7XG4rXHRcdGRldmljZV90eXBlID0gXCJtZW1vcnlcIjtcbitcdFx0LyogV2UgZXhwZWN0IHRoZSBib290bG9hZGVyIHRvIGZpbGwgaW4gdGhlIHJlZyAqL1xuK1x0XHRyZWcgPSBcdTAwM2MweDAgMHg4MDAwMDAwMCAweDAgMHgwXHUwMDNlO1xuK1x0fTtcbit9O1xuK1xuK1x1MDAyNmdwaW8wIHtcbitcdHN0YXR1cyA9IFwib2theVwiO1xuK307XG4rXG4rXHUwMDI2Z3BpbzEge1xuK1x0c3RhdHVzID0gXCJva2F5XCI7XG4rfTtcbitcbitcdTAwMjZnbWFjMSB7XG4rXHRzdGF0dXMgPSBcIm9rYXlcIjtcbitcdGNvbXBhdGlibGUgPSBcImFsdHIsc29jZnBnYS1zdG1tYWMtYWdpbGV4NS10c25cIixcbitcdFx0ICAgICBcInNucHMsZHd4Z21hYy0yLjEwXCI7XG4rXHRwaHktbW9kZSA9IFwicmdtaWktaWRcIjtcbitcdHBoeS1oYW5kbGUgPSBcdTAwM2NcdTAwMjZlbWFjMV9waHkwXHUwMDNlO1xuK1x0bWF4LWZyYW1lLXNpemUgPSBcdTAwM2M5MDAwXHUwMDNlO1xuK1xuK1x0bWRpbzAge1xuK1x0XHQjYWRkcmVzcy1jZWxscyA9IFx1MDAzYzFcdTAwM2U7XG4rXHRcdCNzaXplLWNlbGxzID0gXHUwMDNjMFx1MDAzZTtcbitcdFx0Y29tcGF0aWJsZSA9IFwic25wcyxkd21hYy1tZGlvXCI7XG4rXG4rXHRcdGVtYWMxX3BoeTA6IGV0aGVybmV0LXBoeUAwIHtcbitcdFx0XHRyZWcgPSBcdTAwM2MwXHUwMDNlO1xuK1x0XHR9O1xuK1x0fTtcbit9O1xuK1xuK1x1MDAyNmdtYWMyIHtcbitcdHN0YXR1cyA9IFwib2theVwiO1xuK1x0cGh5LW1vZGUgPSBcInJnbWlpLWlkXCI7XG4rXHRwaHktaGFuZGxlID0gXHUwMDNjXHUwMDI2ZW1hYzJfcGh5MFx1MDAzZTtcbitcdG1heC1mcmFtZS1zaXplID0gXHUwMDNjOTAwMFx1MDAzZTtcbitcbitcdG1kaW8wIHtcbitcdFx0I2FkZHJlc3MtY2VsbHMgPSBcdTAwM2MxXHUwMDNlO1xuK1x0XHQjc2l6ZS1jZWxscyA9IFx1MDAzYzBcdTAwM2U7XG4rXHRcdGNvbXBhdGlibGUgPSBcInNucHMsZHdtYWMtbWRpb1wiO1xuK1xuK1x0XHRlbWFjMl9waHkwOiBldGhlcm5ldC1waHlAMCB7XG4rXHRcdFx0cmVnID0gXHUwMDNjMFx1MDAzZTtcbitcdFx0fTtcbitcdH07XG4rfTtcbitcbitcdTAwMjZvc2MxIHtcbitcdGNsb2NrLWZyZXF1ZW5jeSA9IFx1MDAzYzI1MDAwMDAwXHUwMDNlO1xuK307XG4rXG4rXHUwMDI2cXNwaSB7XG4rXHRzdGF0dXMgPSBcIm9rYXlcIjtcbitcdGZsYXNoQDAge1xuK1x0XHRjb21wYXRpYmxlID0gXCJtaWNyb24sbXQyNXF1MDJnXCIsIFwiamVkZWMsc3BpLW5vclwiO1xuK1x0XHRyZWcgPSBcdTAwM2MwXHUwMDNlO1xuK1x0XHRzcGktbWF4LWZyZXF1ZW5jeSA9IFx1MDAzYzEwMDAwMDAwMFx1MDAzZTtcbitcdFx0bTI1cCxmYXN0LXJlYWQ7XG4rXHRcdGNkbnMscmVhZC1kZWxheSA9IFx1MDAzYzJcdTAwM2U7XG4rXHRcdGNkbnMsdHNoc2wtbnMgPSBcdTAwM2M1MFx1MDAzZTtcbitcdFx0Y2Rucyx0c2QyZC1ucyA9IFx1MDAzYzUwXHUwMDNlO1xuK1x0XHRjZG5zLHRjaHNoLW5zID0gXHUwMDNjNFx1MDAzZTtcbitcdFx0Y2Rucyx0c2xjaC1ucyA9IFx1MDAzYzRcdTAwM2U7XG4rXHRcdHNwaS10eC1idXMtd2lkdGggPSBcdTAwM2M0XHUwMDNlO1xuK1x0XHRzcGktcngtYnVzLXdpZHRoID0gXHUwMDNjNFx1MDAzZTtcbitcbitcdFx0cGFydGl0aW9ucyB7XG4rXHRcdFx0Y29tcGF0aWJsZSA9IFwiZml4ZWQtcGFydGl0aW9uc1wiO1xuK1x0XHRcdCNhZGRyZXNzLWNlbGxzID0gXHUwMDNjMVx1MDAzZTtcbitcdFx0XHQjc2l6ZS1jZWxscyA9IFx1MDAzYzFcdTAwM2U7XG4rXG4rXHRcdFx0cXNwaV9ib290OiBwYXJ0aXRpb25AMCB7XG4rXHRcdFx0XHRsYWJlbCA9IFwidS1ib290XCI7XG4rXHRcdFx0XHRyZWcgPSBcdTAwM2MweDAgMHgwNDIwMDAwMFx1MDAzZTtcbitcdFx0XHR9O1xuK1xuK1x0XHRcdHJvb3Q6IHBhcnRpdGlvbkA0MjAwMDAwIHtcbitcdFx0XHRcdGxhYmVsID0gXCJyb290XCI7XG4rXHRcdFx0XHRyZWcgPSBcdTAwM2MweDA0MjAwMDAwIDB4MGJlMDAwMDBcdTAwM2U7XG4rXHRcdFx0fTtcbitcdFx0fTtcbitcdH07XG4rfTtcbitcbitcdTAwMjZ1YXJ0MCB7XG4rXHRzdGF0dXMgPSBcIm9rYXlcIjtcbit9O1xuK1xuK1x1MDAyNnVzYjAge1xuK1x0c3RhdHVzID0gXCJva2F5XCI7XG4rXHRkaXNhYmxlLW92ZXItY3VycmVudDtcbit9O1xuK1xuK1x1MDAyNndhdGNoZG9nMCB7XG4rXHRzdGF0dXMgPSBcIm9rYXlcIjtcbit9O1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuY1xuaW5kZXggMWQ3ZjBhNTdkMjg4OS4uMDYzMjEwNWI0MjBmMSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jXG5AQCAtNjksMTIgKzY5LDEzIEBAIHN0cnVjdCBzb2NmcGdhX2R3bWFjIHtcbiBcdHZvaWQgX19pb21lbSAqdHNlX3Bjc19iYXNlO1xuIFx0dm9pZCBfX2lvbWVtICpzZ21paV9hZGFwdGVyX2Jhc2U7XG4gXHRib29sIGYyaF9wdHBfcmVmX2NsaztcbitcdHBoeV9pbnRlcmZhY2VfdCBtYWNfaW50ZXJmYWNlO1xuIFx0Y29uc3Qgc3RydWN0IHNvY2ZwZ2FfZHdtYWNfb3BzICpvcHM7XG4gfTtcbiBcbiBzdGF0aWMgcGh5X2ludGVyZmFjZV90IHNvY2ZwZ2FfZ2V0X3BsYXRfcGh5bW9kZShzdHJ1Y3Qgc29jZnBnYV9kd21hYyAqZHdtYWMpXG4ge1xuLVx0cmV0dXJuIGR3bWFjLVx1MDAzZXBsYXRfZGF0LVx1MDAzZXBoeV9pbnRlcmZhY2U7XG4rXHRyZXR1cm4gZHdtYWMtXHUwMDNlbWFjX2ludGVyZmFjZTtcbiB9XG4gXG4gc3RhdGljIHZvaWQgc29jZnBnYV9zZ21paV9jb25maWcoc3RydWN0IHNvY2ZwZ2FfZHdtYWMgKmR3bWFjLCBib29sIGVuYWJsZSlcbkBAIC02NTAsNiArNjUxLDggQEAgc3RhdGljIGludCBzb2NmcGdhX2R3bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4gXHRwbGF0X2RhdC1cdTAwM2VwY3NfZXhpdCA9IHNvY2ZwZ2FfZHdtYWNfcGNzX2V4aXQ7XG4gXHRwbGF0X2RhdC1cdTAwM2VzZWxlY3RfcGNzID0gc29jZnBnYV9kd21hY19zZWxlY3RfcGNzO1xuIFxuK1x0ZHdtYWMtXHUwMDNlbWFjX2ludGVyZmFjZSA9IHBsYXRfZGF0LVx1MDAzZXBoeV9pbnRlcmZhY2U7XG4rXG4gXHRvcHMtXHUwMDNlc2V0dXBfcGxhdF9kYXQoZHdtYWMpO1xuIFxuIFx0cmV0dXJuIGRldm1fc3RtbWFjX3BsdGZyX3Byb2JlKHBkZXYsIHBsYXRfZGF0LCBcdTAwMjZzdG1tYWNfcmVzKTtcbkBAIC02NzAsMTAgKzY3MywyOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHNvY2ZwZ2FfZHdtYWNfb3BzIHNvY2ZwZ2FfYWdpbGV4NV9vcHMgPSB7XG4gXHQuc2V0dXBfcGxhdF9kYXQgPSBzb2NmcGdhX2FnaWxleDVfc2V0dXBfcGxhdF9kYXQsXG4gfTtcbiBcbitzdGF0aWMgdm9pZCBzb2NmcGdhX2FnaWxleDVfdHNuX2dtYWNfc2V0dXBfcGxhdF9kYXQoc3RydWN0IHNvY2ZwZ2FfZHdtYWMgKmR3bWFjKVxuK3tcbitcdHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQgPSBkd21hYy1cdTAwM2VwbGF0X2RhdDtcbitcbitcdHNvY2ZwZ2FfYWdpbGV4NV9zZXR1cF9wbGF0X2RhdChkd21hYyk7XG4rXG4rXHQvKiBGUEdBIGNvbnZlcnRlciBzdXBwbGllcyBSR01JSSBkZWxheXM7IE1BQyB1c2VzIEdNSUksIFBIWSBnZXRzIHBsYWluIFJHTUlJICovXG4rXHRkd21hYy1cdTAwM2VtYWNfaW50ZXJmYWNlID0gUEhZX0lOVEVSRkFDRV9NT0RFX0dNSUk7XG4rXHRpZiAocGh5X2ludGVyZmFjZV9tb2RlX2lzX3JnbWlpKHBsYXRfZGF0LVx1MDAzZXBoeV9pbnRlcmZhY2UpKVxuK1x0XHRwbGF0X2RhdC1cdTAwM2VwaHlfaW50ZXJmYWNlID0gUEhZX0lOVEVSRkFDRV9NT0RFX1JHTUlJO1xuK31cbitcbitzdGF0aWMgY29uc3Qgc3RydWN0IHNvY2ZwZ2FfZHdtYWNfb3BzIHNvY2ZwZ2FfYWdpbGV4NV90c25fZ21hY19vcHMgPSB7XG4rXHQuc2V0X3BoeV9tb2RlID0gc29jZnBnYV9nZW4xMF9zZXRfcGh5X21vZGUsXG4rXHQuc2V0dXBfcGxhdF9kYXQgPSBzb2NmcGdhX2FnaWxleDVfdHNuX2dtYWNfc2V0dXBfcGxhdF9kYXQsXG4rfTtcbitcbiBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBzb2NmcGdhX2R3bWFjX21hdGNoW10gPSB7XG4gXHR7IC5jb21wYXRpYmxlID0gXCJhbHRyLHNvY2ZwZ2Etc3RtbWFjXCIsIC5kYXRhID0gXHUwMDI2c29jZnBnYV9nZW41X29wcyB9LFxuIFx0eyAuY29tcGF0aWJsZSA9IFwiYWx0cixzb2NmcGdhLXN0bW1hYy1hMTAtczEwXCIsIC5kYXRhID0gXHUwMDI2c29jZnBnYV9nZW4xMF9vcHMgfSxcbiBcdHsgLmNvbXBhdGlibGUgPSBcImFsdHIsc29jZnBnYS1zdG1tYWMtYWdpbGV4NVwiLCAuZGF0YSA9IFx1MDAyNnNvY2ZwZ2FfYWdpbGV4NV9vcHMgfSxcbitcdHsgLmNvbXBhdGlibGUgPSBcImFsdHIsc29jZnBnYS1zdG1tYWMtYWdpbGV4NS10c25cIiwgLmRhdGEgPSBcdTAwMjZzb2NmcGdhX2FnaWxleDVfdHNuX2dtYWNfb3BzIH0sXG4gXHR7IH1cbiB9O1xuIE1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHNvY2ZwZ2FfZHdtYWNfbWF0Y2gpO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTdUMDM6MjA6MjIuNzQ3MjE0NDMyWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6OTcwNDk1NDEwNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGdXp6aW5nIEZlYXNpYmlsaXR5IEFzc2Vzc21lbnQ6IEFsdGVyYSBTT0NGUEdBIEFnaWxleDUgVFNOIERXTUFDIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIEkndmUgZ290IHRoaXMgcGF0Y2ggYWRkaW5nIGEgbmV3IGRldmljZSB0cmVlIGJpbmRpbmcgYW5kIGEgY29tcGF0aWJsZSBzdHJpbmcsIGBhbHRyLHNvY2ZwZ2Etc3RtbWFjLWFnaWxleDUtdHNuYCwgdG8gdGhlIGBzdG1tYWNgIGRyaXZlciB3aXRoaW4gYGR3bWFjLXNvY2ZwZ2EuY2AuIFRoZSBwYXRjaCBzZWVtcyB0byBiZSB0b3VjaGluZyB0aGUgYHNvY2ZwZ2FfZ2V0X3BsYXRfcGh5bW9kZWAgZnVuY3Rpb24gYW5kIGEgbmV3IGBzb2NmcGdhX2FnaWxleDVfdHNuX2dtYWNfc2V0dXBfcGxhdF9kYXRgIGFuZCBhbHNvIGBzb2NmcGdhX2FnaWxleDVfdHNuX2dtYWNfb3BzYC4gVGhlIGNvcmUgb2YgdGhlIGRyaXZlciBzZWVtcyB0byBiZSB0aGUgc3RtbWFjIGRyaXZlci5cblxuTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCBpcyB0aGlzIGV2ZW4gKndvcnRoKiBmdXp6aW5nPyBJIG1lYW4sIGBkd21hYy1zb2NmcGdhLmNgIGlzIHRoZSB0YXJnZXQsIHNvIHRoYXQncyB0aGUgYXJlYSBvZiBpbnRlcmVzdC4gSXQncyBhIHBsYXRmb3JtIGRyaXZlciwgc3BlY2lmaWNhbGx5IGZvciBBbHRlcmEgU09DRlBHQSBEV01BQy4gUGxhdGZvcm0gZHJpdmVycyBhcmUgZ2VuZXJhbGx5IHRyaWNreSB0byBmdXp6IGRpcmVjdGx5IGJlY2F1c2UgeW91IHVzdWFsbHkgbmVlZCB0byBpbnN0YW50aWF0ZSB0aGVtIHZpYSB0aGUgZGV2aWNlIHRyZWUuXG5cblRoZSBxdWVzdGlvbiBpcywgY2FuIEkgaW5zdGFudGlhdGUgdGhpcyB0aGluZyBpbiBRRU1VPyBUaGVzZSBTT0Mgc3BlY2lmaWMgcGxhdGZvcm0gZHJpdmVycyBhcmUgbm9ybWFsbHkgYSBwYWluIGluIHRoZSBhc3MgdG8gZnV6eiBkaXJlY3RseS4gU3l6a2FsbGVyICpjYW4qIGluamVjdCBwbGF0Zm9ybSBkZXZpY2VzIHdpdGggYHN5el9kZXZfY3JlYXRlYCwgYnV0IHRoYXQgdXN1YWxseSBuZWVkcyBzcGVjaWZpYyBoYXJkd2FyZSBvciBRRU1VIHN1cHBvcnQuIFNpbmNlIHRoaXMgaXMgYSBnbHVlIGxheWVyIGZvciBgc3RtbWFjYCwgdGhhdCBhbHNvIGluZmx1ZW5jZXMgbXkgdGhpbmtpbmcgaGVyZS5cblxuTGV0J3MgZGl2ZSBkZWVwZXIgaW50byB0aGUgY2hhbmdlcyB0aGVtc2VsdmVzLiBJdCBsb29rcyBsaWtlIHRoZSBtb3N0IHNpZ25pZmljYW50IGNoYW5nZSBpcyBpbiBgc29jZnBnYV9nZXRfcGxhdF9waHltb2RlYCB3aGVyZSBpdCdzIHN3aXRjaGluZyBmcm9tIHVzaW5nIGBkd21hYy1cdTAwM2VwbGF0X2RhdC1cdTAwM2VwaHlfaW50ZXJmYWNlYCB0byBgZHdtYWMtXHUwMDNlbWFjX2ludGVyZmFjZWAuIFRoZW4gd2UgaGF2ZSB0aGUgYHNvY2ZwZ2FfYWdpbGV4NV90c25fZ21hY19zZXR1cF9wbGF0X2RhdGAgd2hpY2ggc2VlbXMgdG8gYmUgbW9zdGx5IHNldHRpbmcgdXAgUEhZIGludGVyZmFjZSBtb2RlcyBkdXJpbmcgcHJvYmUuIFRoZSBjb2RlIGxvb2tzIGxpa2UgdGhpczpcblxuYGBgY1xuc3RhdGljIHBoeV9pbnRlcmZhY2VfdCBzb2NmcGdhX2dldF9wbGF0X3BoeW1vZGUoc3RydWN0IHNvY2ZwZ2FfZHdtYWMgKmR3bWFjKVxue1xuLVx0cmV0dXJuIGR3bWFjLVx1MDAzZXBsYXRfZGF0LVx1MDAzZXBoeV9pbnRlcmZhY2U7XG4rXHRyZXR1cm4gZHdtYWMtXHUwMDNlbWFjX2ludGVyZmFjZTtcbn1cblxuc3RhdGljIHZvaWQgc29jZnBnYV9hZ2lsZXg1X3Rzbl9nbWFjX3NldHVwX3BsYXRfZGF0KHN0cnVjdCBzb2NmcGdhX2R3bWFjICpkd21hYylcbntcblx0c3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdCA9IGR3bWFjLVx1MDAzZXBsYXRfZGF0O1xuXG5cdHNvY2ZwZ2FfYWdpbGV4NV9zZXR1cF9wbGF0X2RhdChkd21hYyk7XG5cblx0LyogRlBHQSBjb252ZXJ0ZXIgc3VwcGxpZXMgUkdNSUkgZGVsYXlzOyBNQUMgdXNlcyBHTUlJLCBQSFkgZ2V0cyBwbGFpbiBSR01JSSAqL1xuXHRkd21hYy1cdTAwM2VtYWNfaW50ZXJmYWNlID0gUEhZX0lOVEVSRkFDRV9NT0RFX0dNSUk7XG5cdGlmIChwaHlfaW50ZXJmYWNlX21vZGVfaXNfcmdtaWkocGxhdF9kYXQtXHUwMDNlcGh5X2ludGVyZmFjZSkpXG5cdFx0cGxhdF9kYXQtXHUwMDNlcGh5X2ludGVyZmFjZSA9IFBIWV9JTlRFUkZBQ0VfTU9ERV9SR01JSTtcbn1cbmBgYFxuXG5UaGUgY2hhbmdlcyBhcmUgaW5jcmVkaWJseSBtaW5pbWFsIC0gbW9zdGx5IGFib3V0IHNldHRpbmcgdXAgUEhZIGludGVyZmFjZSBtb2RlcyBhdCBwcm9iZSB0aW1lLiBUaGUgbmV3IHNldHVwIGZ1bmN0aW9uIG1vZGlmaWVzIHRoZSBQSFkgaW50ZXJmYWNlLCBidXQgaXQncyAqc3BlY2lmaWMqIHRvIHRoZSBBbHRlcmEgU09DRlBHQSBBZ2lsZXg1IFRTTi5cblxuU28sICppcyogaXQgcmVhY2hhYmxlPyBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGF0IGNvbmZpZyBvcHRpb24gZW5hYmxlcyBgZHdtYWMtc29jZnBnYS5jYC4gSSdsbCBzZWFyY2ggZm9yIGBDT05GSUdfRFdNQUNfU09DRlBHQWAuIExldCdzIHNlZSBpZiB0aGlzIGlzIGV2ZW4gY29tcGlsZWQgYnkgZGVmYXVsdC4gSWYgaXQgaXNuJ3QsIHRoZSBjaGFuY2VzIG9mIHRoaXMgYmVpbmcgZWFzaWx5IHJlYWNoYWJsZSB2aWEgZnV6emluZyBhcmUgbG93LlxuXG5cbiIsIklucHV0VG9rZW5zIjo0OTk4LCJPdXRwdXRUb2tlbnMiOjIxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzIyLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTdUMDM6MjA6MzIuNDUyMTcxODE4WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE5ODI5NTQ0NzQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiRFdNQUNfU09DRlBHQVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTE5MT1jb25maWcgRFdNQUNfUzMyXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIwMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjIwMzpjb25maWcgRFdNQUNfU09DRlBHQVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjA0LVxcdHRyaXN0YXRlIFxcXCJTT0NGUEdBIGR3bWFjIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZT0yOD1vYmotJChDT05GSUdfRFdNQUNfUzMyKVxcdFxcdCs9IGR3bWFjLXMzMi5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6Mjk6b2JqLSQoQ09ORklHX0RXTUFDX1NPQ0ZQR0EpXFx0Kz0gZHdtYWMtYWx0ci1zb2NmcGdhLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS0zMC1vYmotJChDT05GSUdfRFdNQUNfU09QSEdPKVxcdCs9IGR3bWFjLXNvcGhnby5vXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE3VDAzOjIwOjM0LjQzNTEzMzkwMloiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjc2MTE1NDUxODcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudDogTm90IFdvcnRoIEZ1enppbmcqKlxuXG5Pa2F5LCBzbyB0aGUgY29uZmlnIGlzIGBEV01BQ19TT0NGUEdBYC4gVGhlIGNoYW5nZXMgYXJlIGlzb2xhdGVkIHRvIHRoZSBwcm9iZSBwYXRoIG9mIHRoZSBBbHRlcmEgU09DRlBHQSBoYXJkd2FyZSBkcml2ZXIuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IHRoZXNlIGtpbmRzIG9mIGhhcmR3YXJlLXNwZWNpZmljIHByb2JlIHBhdGhzLCBlc3BlY2lhbGx5IHRob3NlIGp1c3Qgc2V0dGluZyB1cCBjb25zdGFudHMgYW5kIG5vdCBleHBvc2luZyBuZXcgc3lzY2FsbHMgb3IgY29tcGxleCBsb2dpYywgYXJlbid0IHR5cGljYWxseSBmcnVpdGZ1bCBmb3IgZnV6emluZy4gVGhleSB1c3VhbGx5IGRlcGVuZCBvbiB2ZXJ5IHNwZWNpZmljIGhhcmR3YXJlIG9yIGRldmljZSB0cmVlIG5vZGVzIHRoYXQgeW91IHdvbid0IGZpbmQgaW4gZ2VuZXJpYyB4ODYgVk1zLlxuXG5JIGRpZCByZWNhbGwgdGhhdCBzeXprYWxsZXIgKmNhbiogaGFuZGxlIHNvbWUgcGxhdGZvcm0gZHJpdmVyIGZ1enppbmcgd2l0aCBkZXZpY2UgdHJlZSBvdmVybGF5IGluamVjdGlvbiwgYnV0IGV2ZW4gdGhlbiwgdGhpcyBpcyBzdGlsbCBqdXN0IHRoZSBwcm9iZSBmdW5jdGlvbiwgYW5kIGl0IGlzIGEgdHJpdmlhbCBzZXR1cC5cblxuTGV0IG1lIGJyZWFrIGRvd24gdGhlIGNoYW5nZXM6IHdlIGFyZSBzZXR0aW5nIGEgc2luZ2xlIHZhcmlhYmxlOlxuLSBgc29jZnBnYV9nZXRfcGxhdF9waHltb2RlYCBjaGFuZ2VkIHRvIHJldHVybiBgZHdtYWMtXHUwMDNlbWFjX2ludGVyZmFjZWAuXG4tIGBzb2NmcGdhX2R3bWFjX3Byb2JlYCBzZXRzIGBkd21hYy1cdTAwM2VtYWNfaW50ZXJmYWNlID0gcGxhdF9kYXQtXHUwMDNlcGh5X2ludGVyZmFjZWAuXG4tIGBzb2NmcGdhX2FnaWxleDVfdHNuX2dtYWNfc2V0dXBfcGxhdF9kYXRgIHNldHMgYGR3bWFjLVx1MDAzZW1hY19pbnRlcmZhY2UgPSBQSFlfSU5URVJGQUNFX01PREVfR01JSWAgYW5kIGNoYW5nZXMgYHBsYXRfZGF0LVx1MDAzZXBoeV9pbnRlcmZhY2VgLlxuXG5JdCdzIGEgcmVhbGx5IHNpbXBsZSBjb25maWd1cmF0aW9uIGNoYW5nZSBzcGVjaWZpYyB0byBhIHBhcnRpY3VsYXIgaGFyZHdhcmUgcGxhdGZvcm0uIE5vIGNvbXBsZXggbG9naWMsIHN0YXRlIG1hY2hpbmVzLCBvciBhbnl0aGluZyB1c2VyLWFjY2Vzc2libGUgaXMgaW50cm9kdWNlZCBoZXJlLlxuXG5Jbml0aWFsbHksIEknZCBtYXJrIHRoaXMgYXMgYFdvcnRoRnV6emluZz1mYWxzZWAgZHVlIHRvIGl0cyBuYXR1cmUuXG5cbkhvd2V2ZXIsIGxldCBtZSBxdWlja2x5IHJlLXJlYWQgdGhlIGluc3RydWN0aW9ucy4uLiBPa2F5LCB0aGUgY3JpdGVyaWEgYXJlIHByZXR0eSBjbGVhcjpcblxuKiAgIENvZGUgcGF0aHMgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsIGV2ZW4gd2l0aCBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZS5cbiogICBWZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyB0aGF0IG5lZWQgcGh5c2ljYWwgaGFyZHdhcmUuXG5cblRoaXMgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgU29DIEV0aGVybmV0IE1BQyBkcml2ZXIg4oCTIEFsdGVyYSBTT0NGUEdBLiBJdCByZWxpZXMgb24gdGhlIGRldmljZSB0cmVlLiBJJ20gcHJldHR5IHN1cmUgc3RhbmRhcmQgUUVNVSBkb2Vzbid0IGVtdWxhdGUgQWdpbGV4NSwgYW5kIGV2ZW4gd2l0aCBEVCBpbmplY3Rpb24sIHRoZXNlIGFyZSB0cml2aWFsIHByb2JlLXRpbWUgYXNzaWdubWVudHMuXG5cblllcCwgc3RpbGwgKm5vdCogd29ydGggZnV6emluZy4gSSdsbCByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjY3ODUsIk91dHB1dFRva2VucyI6MTEyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDk5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE3VDAzOjIwOjQyLjA0NjY4MjIwOVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mjg4MDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIG5ldyBkZXZpY2UgdHJlZSBjb21wYXRpYmxlIHN0cmluZyBhbmQgbWlub3IgcHJvYmUtdGltZSBjb25maWd1cmF0aW9uIGZvciB0aGUgQWx0ZXJhIFNPQ0ZQR0EgRFdNQUMgZHJpdmVyLiBUaGlzIGlzIGEgdmVuZG9yLXNwZWNpZmljIGhhcmR3YXJlIGRyaXZlciB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGxpa2UgUUVNVS9HQ0UpIHVzZWQgZm9yIGZ1enppbmcuIEZ1cnRoZXJtb3JlLCB0aGUgY2hhbmdlcyBhcmUgdHJpdmlhbCBhc3NpZ25tZW50cyBkdXJpbmcgZGV2aWNlIHByb2JlIGFuZCBkbyBub3QgaW50cm9kdWNlIGFueSBjb21wbGV4IG9yIHVzZXItcmVhY2hhYmxlIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIG5ldyBkZXZpY2UgdHJlZSBjb21wYXRpYmxlIHN0cmluZyBhbmQgbWlub3IgcHJvYmUtdGltZSBjb25maWd1cmF0aW9uIGZvciB0aGUgQWx0ZXJhIFNPQ0ZQR0EgRFdNQUMgZHJpdmVyLiBUaGlzIGlzIGEgdmVuZG9yLXNwZWNpZmljIGhhcmR3YXJlIGRyaXZlciB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGxpa2UgUUVNVS9HQ0UpIHVzZWQgZm9yIGZ1enppbmcuIEZ1cnRoZXJtb3JlLCB0aGUgY2hhbmdlcyBhcmUgdHJpdmlhbCBhc3NpZ25tZW50cyBkdXJpbmcgZGV2aWNlIHByb2JlIGFuZCBkbyBub3QgaW50cm9kdWNlIGFueSBjb21wbGV4IG9yIHVzZXItcmVhY2hhYmxlIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTdUMDM6MjA6NDIuMDQ2NzE1MjA5WiIsIlNlcSI6NywiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM0MjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },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-workflow7q26w[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-17 03:05:15 +0000 UTC FinishedAt: 2026-08-17 03:20:43 +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+CgkJCTx0ZD4yMDI2LzA4LzE3IDAzOjIwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIG5ldyBkZXZpY2UgdHJlZSBjb21wYXRpYmxlIHN0cmluZyBhbmQgbWlub3IgcHJvYmUtdGltZSBjb25maWd1cmF0aW9uIGZvciB0aGUgQWx0ZXJhIFNPQ0ZQR0EgRFdNQUMgZHJpdmVyLiBUaGlzIGlzIGEgdmVuZG9yLXNwZWNpZmljIGhhcmR3YXJlIGRyaXZlciB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGxpa2UgUUVNVS9HQ0UpIHVzZWQgZm9yIGZ1enppbmcuIEZ1cnRoZXJtb3JlLCB0aGUgY2hhbmdlcyBhcmUgdHJpdmlhbCBhc3NpZ25tZW50cyBkdXJpbmcgZGV2aWNlIHByb2JlIGFuZCBkbyBub3QgaW50cm9kdWNlIGFueSBjb21wbGV4IG9yIHVzZXItcmVhY2hhYmxlIGxvZ2ljLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNyAwMzoyMDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDg2NGFkNDQ2NjlmM2E3YjEyNmQ1NDhmZWVhZjljZjYyY2NkYTQxNmJcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEF1ZyAxNyAwMzoyMDoyMSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL2FsdGVyYS55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9hbHRlcmEueWFtbFxuaW5kZXggMzAzMGNmNDZmZTc0Yy4uZTQzMTQ2OWE3MTc1MyAxMDA2NDRcbi0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vYWx0ZXJhLnlhbWxcbiYjNDM7JiM0MzsmIzQzOyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vYWx0ZXJhLnlhbWxcbkBAIC0xMTQsNiAmIzQzOzExNCw3IEBAIHByb3BlcnRpZXM6XG4gICAgICAgICAgICAgICAtIGludGVsLHNvY2ZwZ2EtYWdpbGV4NS1zb2Nkay1kZWJ1Z1xuICAgICAgICAgICAgICAgLSBpbnRlbCxzb2NmcGdhLWFnaWxleDUtc29jZGstbW9kdWxhclxuICAgICAgICAgICAgICAgLSBpbnRlbCxzb2NmcGdhLWFnaWxleDUtc29jZGstbmFuZFxuJiM0MzsgICAgICAgICAgICAgIC0gaW50ZWwsc29jZnBnYS1hZ2lsZXg1LXNvY2RrLXRzbi1jZmcyXG4gICAgICAgICAgIC0gY29uc3Q6IGludGVsLHNvY2ZwZ2EtYWdpbGV4NVxuIFxuICAgICAgIC0gZGVzY3JpcHRpb246IEFnaWxleDcyIGJvYXJkc1xuZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbHRyLHNvY2ZwZ2Etc3RtbWFjLnlhbWxcbmluZGV4IDYzMDg0Zjc2MjM3MzguLjdkYjZhNzEwMjk5NDMgMTAwNjQ0XG4tLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbFxuJiM0MzsmIzQzOyYjNDM7IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbHRyLHNvY2ZwZ2Etc3RtbWFjLnlhbWxcbkBAIC0yNCw2ICYjNDM7MjQsNyBAQCBzZWxlY3Q6XG4gICAgICAgICAgIC0gYWx0cixzb2NmcGdhLXN0bW1hY1xuICAgICAgICAgICAtIGFsdHIsc29jZnBnYS1zdG1tYWMtYTEwLXMxMFxuICAgICAgICAgICAtIGFsdHIsc29jZnBnYS1zdG1tYWMtYWdpbGV4NVxuJiM0MzsgICAgICAgICAgLSBhbHRyLHNvY2ZwZ2Etc3RtbWFjLWFnaWxleDUtdHNuXG4gXG4gICByZXF1aXJlZDpcbiAgICAgLSBjb21wYXRpYmxlXG5AQCAtNDYsNiAmIzQzOzQ3LDkgQEAgcHJvcGVydGllczpcbiAgICAgICAtIGl0ZW1zOlxuICAgICAgICAgICAtIGNvbnN0OiBhbHRyLHNvY2ZwZ2Etc3RtbWFjLWFnaWxleDVcbiAgICAgICAgICAgLSBjb25zdDogc25wcyxkd3hnbWFjLTIuMTBcbiYjNDM7ICAgICAgLSBpdGVtczpcbiYjNDM7ICAgICAgICAgIC0gY29uc3Q6IGFsdHIsc29jZnBnYS1zdG1tYWMtYWdpbGV4NS10c25cbiYjNDM7ICAgICAgICAgIC0gY29uc3Q6IHNucHMsZHd4Z21hYy0yLjEwXG4gXG4gICBjbG9ja3M6XG4gICAgIG1pbkl0ZW1zOiAxXG5kaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9NYWtlZmlsZSBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvTWFrZWZpbGVcbmluZGV4IDI3MGM3MGZkZjA4NGIuLmNlN2NmM2E2MzI3NTMgMTAwNjQ0XG4tLS0gYS9hcmNoL2FybTY0L2Jvb3QvZHRzL2ludGVsL01ha2VmaWxlXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL2ludGVsL01ha2VmaWxlXG5AQCAtOCw2ICYjNDM7OCw3IEBAIGR0Yi0kKENPTkZJR19BUkNIX0lOVEVMX1NPQ0ZQR0EpICYjNDM7PSBzb2NmcGdhX2FnaWxleF9uNjAwMC5kdGIgXFxcbiBcdFx0XHRcdHNvY2ZwZ2FfYWdpbGV4NV9zb2Nka18wMTNiLmR0YiBcXFxuIFx0XHRcdFx0c29jZnBnYV9hZ2lsZXg1X3NvY2RrX21vZHVsYXIuZHRiIFxcXG4gXHRcdFx0XHRzb2NmcGdhX2FnaWxleDVfc29jZGtfbmFuZC5kdGIgXFxcbiYjNDM7XHRcdFx0XHRzb2NmcGdhX2FnaWxleDVfc29jZGtfdHNuX2NmZzIuZHRiIFxcXG4gXHRcdFx0XHRzb2NmcGdhX2FnaWxleDcyX3NvY2RrLmR0YiBcXFxuIFx0XHRcdFx0c29jZnBnYV9hZ2lsZXg3bV9zb2Nkay5kdGIgXFxcbiBcdFx0XHRcdHNvY2ZwZ2FfbjV4X3NvY2RrLmR0YlxuZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvc29jZnBnYV9hZ2lsZXg1X3NvY2RrX3Rzbl9jZmcyLmR0cyBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvc29jZnBnYV9hZ2lsZXg1X3NvY2RrX3Rzbl9jZmcyLmR0c1xubmV3IGZpbGUgbW9kZSAxMDA2NDRcbmluZGV4IDAwMDAwMDAwMDAwMDAuLjlkMzlmODQzYjQyNDBcbi0tLSAvZGV2L251bGxcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvc29jZnBnYV9hZ2lsZXg1X3NvY2RrX3Rzbl9jZmcyLmR0c1xuQEAgLTAsMCAmIzQzOzEsMTMwIEBAXG4mIzQzOy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbiYjNDM7LypcbiYjNDM7ICogQ29weXJpZ2h0IChDKSAyMDI2LCBBbHRlcmEgQ29ycG9yYXRpb25cbiYjNDM7ICovXG4mIzQzOyNpbmNsdWRlIFwmIzM0O3NvY2ZwZ2FfYWdpbGV4NS5kdHNpXCYjMzQ7XG4mIzQzO1xuJiM0MzsvIHtcbiYjNDM7XHRtb2RlbCA9IFwmIzM0O1NvQ0ZQR0EgQWdpbGV4NSBTb0NESyBUU04gQ29uZmlnMlwmIzM0OztcbiYjNDM7XHRjb21wYXRpYmxlID0gXCYjMzQ7aW50ZWwsc29jZnBnYS1hZ2lsZXg1LXNvY2RrLXRzbi1jZmcyXCYjMzQ7LCBcJiMzNDtpbnRlbCxzb2NmcGdhLWFnaWxleDVcJiMzNDs7XG4mIzQzO1xuJiM0MztcdGFsaWFzZXMge1xuJiM0MztcdFx0c2VyaWFsMCA9IFx1MDAyNnVhcnQwO1xuJiM0MztcdFx0ZXRoZXJuZXQxID0gXHUwMDI2Z21hYzE7XG4mIzQzO1x0XHRldGhlcm5ldDIgPSBcdTAwMjZnbWFjMjtcbiYjNDM7XHR9O1xuJiM0MztcbiYjNDM7XHRjaG9zZW4ge1xuJiM0MztcdFx0c3Rkb3V0LXBhdGggPSBcJiMzNDtzZXJpYWwwOjExNTIwMG44XCYjMzQ7O1xuJiM0MztcdH07XG4mIzQzO1xuJiM0MztcdGxlZHMge1xuJiM0MztcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O2dwaW8tbGVkc1wmIzM0OztcbiYjNDM7XG4mIzQzO1x0XHRsZWQtMCB7XG4mIzQzO1x0XHRcdGxhYmVsID0gXCYjMzQ7aHBzX2xlZDBcJiMzNDs7XG4mIzQzO1x0XHRcdGdwaW9zID0gXHUwMDNjXHUwMDI2cG9ydGEgMTEgR1BJT19BQ1RJVkVfSElHSFx1MDAzZTtcbiYjNDM7XHRcdH07XG4mIzQzO1xuJiM0MztcdH07XG4mIzQzO1xuJiM0MztcdG1lbW9yeUA4MDAwMDAwMCB7XG4mIzQzO1x0XHRkZXZpY2VfdHlwZSA9IFwmIzM0O21lbW9yeVwmIzM0OztcbiYjNDM7XHRcdC8qIFdlIGV4cGVjdCB0aGUgYm9vdGxvYWRlciB0byBmaWxsIGluIHRoZSByZWcgKi9cbiYjNDM7XHRcdHJlZyA9IFx1MDAzYzB4MCAweDgwMDAwMDAwIDB4MCAweDBcdTAwM2U7XG4mIzQzO1x0fTtcbiYjNDM7fTtcbiYjNDM7XG4mIzQzO1x1MDAyNmdwaW8wIHtcbiYjNDM7XHRzdGF0dXMgPSBcJiMzNDtva2F5XCYjMzQ7O1xuJiM0Mzt9O1xuJiM0MztcbiYjNDM7XHUwMDI2Z3BpbzEge1xuJiM0MztcdHN0YXR1cyA9IFwmIzM0O29rYXlcJiMzNDs7XG4mIzQzO307XG4mIzQzO1xuJiM0MztcdTAwMjZnbWFjMSB7XG4mIzQzO1x0c3RhdHVzID0gXCYjMzQ7b2theVwmIzM0OztcbiYjNDM7XHRjb21wYXRpYmxlID0gXCYjMzQ7YWx0cixzb2NmcGdhLXN0bW1hYy1hZ2lsZXg1LXRzblwmIzM0OyxcbiYjNDM7XHRcdCAgICAgXCYjMzQ7c25wcyxkd3hnbWFjLTIuMTBcJiMzNDs7XG4mIzQzO1x0cGh5LW1vZGUgPSBcJiMzNDtyZ21paS1pZFwmIzM0OztcbiYjNDM7XHRwaHktaGFuZGxlID0gXHUwMDNjXHUwMDI2ZW1hYzFfcGh5MFx1MDAzZTtcbiYjNDM7XHRtYXgtZnJhbWUtc2l6ZSA9IFx1MDAzYzkwMDBcdTAwM2U7XG4mIzQzO1xuJiM0MztcdG1kaW8wIHtcbiYjNDM7XHRcdCNhZGRyZXNzLWNlbGxzID0gXHUwMDNjMVx1MDAzZTtcbiYjNDM7XHRcdCNzaXplLWNlbGxzID0gXHUwMDNjMFx1MDAzZTtcbiYjNDM7XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzbnBzLGR3bWFjLW1kaW9cJiMzNDs7XG4mIzQzO1xuJiM0MztcdFx0ZW1hYzFfcGh5MDogZXRoZXJuZXQtcGh5QDAge1xuJiM0MztcdFx0XHRyZWcgPSBcdTAwM2MwXHUwMDNlO1xuJiM0MztcdFx0fTtcbiYjNDM7XHR9O1xuJiM0Mzt9O1xuJiM0MztcbiYjNDM7XHUwMDI2Z21hYzIge1xuJiM0MztcdHN0YXR1cyA9IFwmIzM0O29rYXlcJiMzNDs7XG4mIzQzO1x0cGh5LW1vZGUgPSBcJiMzNDtyZ21paS1pZFwmIzM0OztcbiYjNDM7XHRwaHktaGFuZGxlID0gXHUwMDNjXHUwMDI2ZW1hYzJfcGh5MFx1MDAzZTtcbiYjNDM7XHRtYXgtZnJhbWUtc2l6ZSA9IFx1MDAzYzkwMDBcdTAwM2U7XG4mIzQzO1xuJiM0MztcdG1kaW8wIHtcbiYjNDM7XHRcdCNhZGRyZXNzLWNlbGxzID0gXHUwMDNjMVx1MDAzZTtcbiYjNDM7XHRcdCNzaXplLWNlbGxzID0gXHUwMDNjMFx1MDAzZTtcbiYjNDM7XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzbnBzLGR3bWFjLW1kaW9cJiMzNDs7XG4mIzQzO1xuJiM0MztcdFx0ZW1hYzJfcGh5MDogZXRoZXJuZXQtcGh5QDAge1xuJiM0MztcdFx0XHRyZWcgPSBcdTAwM2MwXHUwMDNlO1xuJiM0MztcdFx0fTtcbiYjNDM7XHR9O1xuJiM0Mzt9O1xuJiM0MztcbiYjNDM7XHUwMDI2b3NjMSB7XG4mIzQzO1x0Y2xvY2stZnJlcXVlbmN5ID0gXHUwMDNjMjUwMDAwMDBcdTAwM2U7XG4mIzQzO307XG4mIzQzO1xuJiM0MztcdTAwMjZxc3BpIHtcbiYjNDM7XHRzdGF0dXMgPSBcJiMzNDtva2F5XCYjMzQ7O1xuJiM0MztcdGZsYXNoQDAge1xuJiM0MztcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O21pY3JvbixtdDI1cXUwMmdcJiMzNDssIFwmIzM0O2plZGVjLHNwaS1ub3JcJiMzNDs7XG4mIzQzO1x0XHRyZWcgPSBcdTAwM2MwXHUwMDNlO1xuJiM0MztcdFx0c3BpLW1heC1mcmVxdWVuY3kgPSBcdTAwM2MxMDAwMDAwMDBcdTAwM2U7XG4mIzQzO1x0XHRtMjVwLGZhc3QtcmVhZDtcbiYjNDM7XHRcdGNkbnMscmVhZC1kZWxheSA9IFx1MDAzYzJcdTAwM2U7XG4mIzQzO1x0XHRjZG5zLHRzaHNsLW5zID0gXHUwMDNjNTBcdTAwM2U7XG4mIzQzO1x0XHRjZG5zLHRzZDJkLW5zID0gXHUwMDNjNTBcdTAwM2U7XG4mIzQzO1x0XHRjZG5zLHRjaHNoLW5zID0gXHUwMDNjNFx1MDAzZTtcbiYjNDM7XHRcdGNkbnMsdHNsY2gtbnMgPSBcdTAwM2M0XHUwMDNlO1xuJiM0MztcdFx0c3BpLXR4LWJ1cy13aWR0aCA9IFx1MDAzYzRcdTAwM2U7XG4mIzQzO1x0XHRzcGktcngtYnVzLXdpZHRoID0gXHUwMDNjNFx1MDAzZTtcbiYjNDM7XG4mIzQzO1x0XHRwYXJ0aXRpb25zIHtcbiYjNDM7XHRcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O2ZpeGVkLXBhcnRpdGlvbnNcJiMzNDs7XG4mIzQzO1x0XHRcdCNhZGRyZXNzLWNlbGxzID0gXHUwMDNjMVx1MDAzZTtcbiYjNDM7XHRcdFx0I3NpemUtY2VsbHMgPSBcdTAwM2MxXHUwMDNlO1xuJiM0MztcbiYjNDM7XHRcdFx0cXNwaV9ib290OiBwYXJ0aXRpb25AMCB7XG4mIzQzO1x0XHRcdFx0bGFiZWwgPSBcJiMzNDt1LWJvb3RcJiMzNDs7XG4mIzQzO1x0XHRcdFx0cmVnID0gXHUwMDNjMHgwIDB4MDQyMDAwMDBcdTAwM2U7XG4mIzQzO1x0XHRcdH07XG4mIzQzO1xuJiM0MztcdFx0XHRyb290OiBwYXJ0aXRpb25ANDIwMDAwMCB7XG4mIzQzO1x0XHRcdFx0bGFiZWwgPSBcJiMzNDtyb290XCYjMzQ7O1xuJiM0MztcdFx0XHRcdHJlZyA9IFx1MDAzYzB4MDQyMDAwMDAgMHgwYmUwMDAwMFx1MDAzZTtcbiYjNDM7XHRcdFx0fTtcbiYjNDM7XHRcdH07XG4mIzQzO1x0fTtcbiYjNDM7fTtcbiYjNDM7XG4mIzQzO1x1MDAyNnVhcnQwIHtcbiYjNDM7XHRzdGF0dXMgPSBcJiMzNDtva2F5XCYjMzQ7O1xuJiM0Mzt9O1xuJiM0MztcbiYjNDM7XHUwMDI2dXNiMCB7XG4mIzQzO1x0c3RhdHVzID0gXCYjMzQ7b2theVwmIzM0OztcbiYjNDM7XHRkaXNhYmxlLW92ZXItY3VycmVudDtcbiYjNDM7fTtcbiYjNDM7XG4mIzQzO1x1MDAyNndhdGNoZG9nMCB7XG4mIzQzO1x0c3RhdHVzID0gXCYjMzQ7b2theVwmIzM0OztcbiYjNDM7fTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmNcbmluZGV4IDFkN2YwYTU3ZDI4ODkuLjA2MzIxMDViNDIwZjEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuY1xuQEAgLTY5LDEyICYjNDM7NjksMTMgQEAgc3RydWN0IHNvY2ZwZ2FfZHdtYWMge1xuIFx0dm9pZCBfX2lvbWVtICp0c2VfcGNzX2Jhc2U7XG4gXHR2b2lkIF9faW9tZW0gKnNnbWlpX2FkYXB0ZXJfYmFzZTtcbiBcdGJvb2wgZjJoX3B0cF9yZWZfY2xrO1xuJiM0MztcdHBoeV9pbnRlcmZhY2VfdCBtYWNfaW50ZXJmYWNlO1xuIFx0Y29uc3Qgc3RydWN0IHNvY2ZwZ2FfZHdtYWNfb3BzICpvcHM7XG4gfTtcbiBcbiBzdGF0aWMgcGh5X2ludGVyZmFjZV90IHNvY2ZwZ2FfZ2V0X3BsYXRfcGh5bW9kZShzdHJ1Y3Qgc29jZnBnYV9kd21hYyAqZHdtYWMpXG4ge1xuLVx0cmV0dXJuIGR3bWFjLVx1MDAzZXBsYXRfZGF0LVx1MDAzZXBoeV9pbnRlcmZhY2U7XG4mIzQzO1x0cmV0dXJuIGR3bWFjLVx1MDAzZW1hY19pbnRlcmZhY2U7XG4gfVxuIFxuIHN0YXRpYyB2b2lkIHNvY2ZwZ2Ffc2dtaWlfY29uZmlnKHN0cnVjdCBzb2NmcGdhX2R3bWFjICpkd21hYywgYm9vbCBlbmFibGUpXG5AQCAtNjUwLDYgJiM0Mzs2NTEsOCBAQCBzdGF0aWMgaW50IHNvY2ZwZ2FfZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbiBcdHBsYXRfZGF0LVx1MDAzZXBjc19leGl0ID0gc29jZnBnYV9kd21hY19wY3NfZXhpdDtcbiBcdHBsYXRfZGF0LVx1MDAzZXNlbGVjdF9wY3MgPSBzb2NmcGdhX2R3bWFjX3NlbGVjdF9wY3M7XG4gXG4mIzQzO1x0ZHdtYWMtXHUwMDNlbWFjX2ludGVyZmFjZSA9IHBsYXRfZGF0LVx1MDAzZXBoeV9pbnRlcmZhY2U7XG4mIzQzO1xuIFx0b3BzLVx1MDAzZXNldHVwX3BsYXRfZGF0KGR3bWFjKTtcbiBcbiBcdHJldHVybiBkZXZtX3N0bW1hY19wbHRmcl9wcm9iZShwZGV2LCBwbGF0X2RhdCwgXHUwMDI2c3RtbWFjX3Jlcyk7XG5AQCAtNjcwLDEwICYjNDM7NjczLDI4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc29jZnBnYV9kd21hY19vcHMgc29jZnBnYV9hZ2lsZXg1X29wcyA9IHtcbiBcdC5zZXR1cF9wbGF0X2RhdCA9IHNvY2ZwZ2FfYWdpbGV4NV9zZXR1cF9wbGF0X2RhdCxcbiB9O1xuIFxuJiM0MztzdGF0aWMgdm9pZCBzb2NmcGdhX2FnaWxleDVfdHNuX2dtYWNfc2V0dXBfcGxhdF9kYXQoc3RydWN0IHNvY2ZwZ2FfZHdtYWMgKmR3bWFjKVxuJiM0Mzt7XG4mIzQzO1x0c3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdCA9IGR3bWFjLVx1MDAzZXBsYXRfZGF0O1xuJiM0MztcbiYjNDM7XHRzb2NmcGdhX2FnaWxleDVfc2V0dXBfcGxhdF9kYXQoZHdtYWMpO1xuJiM0MztcbiYjNDM7XHQvKiBGUEdBIGNvbnZlcnRlciBzdXBwbGllcyBSR01JSSBkZWxheXM7IE1BQyB1c2VzIEdNSUksIFBIWSBnZXRzIHBsYWluIFJHTUlJICovXG4mIzQzO1x0ZHdtYWMtXHUwMDNlbWFjX2ludGVyZmFjZSA9IFBIWV9JTlRFUkZBQ0VfTU9ERV9HTUlJO1xuJiM0MztcdGlmIChwaHlfaW50ZXJmYWNlX21vZGVfaXNfcmdtaWkocGxhdF9kYXQtXHUwMDNlcGh5X2ludGVyZmFjZSkpXG4mIzQzO1x0XHRwbGF0X2RhdC1cdTAwM2VwaHlfaW50ZXJmYWNlID0gUEhZX0lOVEVSRkFDRV9NT0RFX1JHTUlJO1xuJiM0Mzt9XG4mIzQzO1xuJiM0MztzdGF0aWMgY29uc3Qgc3RydWN0IHNvY2ZwZ2FfZHdtYWNfb3BzIHNvY2ZwZ2FfYWdpbGV4NV90c25fZ21hY19vcHMgPSB7XG4mIzQzO1x0LnNldF9waHlfbW9kZSA9IHNvY2ZwZ2FfZ2VuMTBfc2V0X3BoeV9tb2RlLFxuJiM0MztcdC5zZXR1cF9wbGF0X2RhdCA9IHNvY2ZwZ2FfYWdpbGV4NV90c25fZ21hY19zZXR1cF9wbGF0X2RhdCxcbiYjNDM7fTtcbiYjNDM7XG4gc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgc29jZnBnYV9kd21hY19tYXRjaFtdID0ge1xuIFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O2FsdHIsc29jZnBnYS1zdG1tYWNcJiMzNDssIC5kYXRhID0gXHUwMDI2c29jZnBnYV9nZW41X29wcyB9LFxuIFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O2FsdHIsc29jZnBnYS1zdG1tYWMtYTEwLXMxMFwmIzM0OywgLmRhdGEgPSBcdTAwMjZzb2NmcGdhX2dlbjEwX29wcyB9LFxuIFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O2FsdHIsc29jZnBnYS1zdG1tYWMtYWdpbGV4NVwmIzM0OywgLmRhdGEgPSBcdTAwMjZzb2NmcGdhX2FnaWxleDVfb3BzIH0sXG4mIzQzO1x0eyAuY29tcGF0aWJsZSA9IFwmIzM0O2FsdHIsc29jZnBnYS1zdG1tYWMtYWdpbGV4NS10c25cJiMzNDssIC5kYXRhID0gXHUwMDI2c29jZnBnYV9hZ2lsZXg1X3Rzbl9nbWFjX29wcyB9LFxuIFx0eyB9XG4gfTtcbiBNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBzb2NmcGdhX2R3bWFjX21hdGNoKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNyAwMzoyMDwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIG5ldyBkZXZpY2UgdHJlZSBjb21wYXRpYmxlIHN0cmluZyBhbmQgbWlub3IgcHJvYmUtdGltZSBjb25maWd1cmF0aW9uIGZvciB0aGUgQWx0ZXJhIFNPQ0ZQR0EgRFdNQUMgZHJpdmVyLiBUaGlzIGlzIGEgdmVuZG9yLXNwZWNpZmljIGhhcmR3YXJlIGRyaXZlciB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGxpa2UgUUVNVS9HQ0UpIHVzZWQgZm9yIGZ1enppbmcuIEZ1cnRoZXJtb3JlLCB0aGUgY2hhbmdlcyBhcmUgdHJpdmlhbCBhc3NpZ25tZW50cyBkdXJpbmcgZGV2aWNlIHByb2JlIGFuZCBkbyBub3QgaW50cm9kdWNlIGFueSBjb21wbGV4IG9yIHVzZXItcmVhY2hhYmxlIGxvZ2ljLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDg2NGFkNDQ2NjlmM2E3YjEyNmQ1NDhmZWVhZjljZjYyY2NkYTQxNmIKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgTW9uIEF1ZyAxNyAwMzoyMDoyMSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vYWx0ZXJhLnlhbWwgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL2FsdGVyYS55YW1sCmluZGV4IDMwMzBjZjQ2ZmU3NGMuLmU0MzE0NjlhNzE3NTMgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vYWx0ZXJhLnlhbWwKJiM0MzsmIzQzOyYjNDM7IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9hbHRlcmEueWFtbApAQCAtMTE0LDYgJiM0MzsxMTQsNyBAQCBwcm9wZXJ0aWVzOgogICAgICAgICAgICAgICAtIGludGVsLHNvY2ZwZ2EtYWdpbGV4NS1zb2Nkay1kZWJ1ZwogICAgICAgICAgICAgICAtIGludGVsLHNvY2ZwZ2EtYWdpbGV4NS1zb2Nkay1tb2R1bGFyCiAgICAgICAgICAgICAgIC0gaW50ZWwsc29jZnBnYS1hZ2lsZXg1LXNvY2RrLW5hbmQKJiM0MzsgICAgICAgICAgICAgIC0gaW50ZWwsc29jZnBnYS1hZ2lsZXg1LXNvY2RrLXRzbi1jZmcyCiAgICAgICAgICAgLSBjb25zdDogaW50ZWwsc29jZnBnYS1hZ2lsZXg1CiAKICAgICAgIC0gZGVzY3JpcHRpb246IEFnaWxleDcyIGJvYXJkcwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbHRyLHNvY2ZwZ2Etc3RtbWFjLnlhbWwgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbAppbmRleCA2MzA4NGY3NjIzNzM4Li43ZGI2YTcxMDI5OTQzIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbAomIzQzOyYjNDM7JiM0MzsgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbApAQCAtMjQsNiAmIzQzOzI0LDcgQEAgc2VsZWN0OgogICAgICAgICAgIC0gYWx0cixzb2NmcGdhLXN0bW1hYwogICAgICAgICAgIC0gYWx0cixzb2NmcGdhLXN0bW1hYy1hMTAtczEwCiAgICAgICAgICAgLSBhbHRyLHNvY2ZwZ2Etc3RtbWFjLWFnaWxleDUKJiM0MzsgICAgICAgICAgLSBhbHRyLHNvY2ZwZ2Etc3RtbWFjLWFnaWxleDUtdHNuCiAKICAgcmVxdWlyZWQ6CiAgICAgLSBjb21wYXRpYmxlCkBAIC00Niw2ICYjNDM7NDcsOSBAQCBwcm9wZXJ0aWVzOgogICAgICAgLSBpdGVtczoKICAgICAgICAgICAtIGNvbnN0OiBhbHRyLHNvY2ZwZ2Etc3RtbWFjLWFnaWxleDUKICAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3eGdtYWMtMi4xMAomIzQzOyAgICAgIC0gaXRlbXM6CiYjNDM7ICAgICAgICAgIC0gY29uc3Q6IGFsdHIsc29jZnBnYS1zdG1tYWMtYWdpbGV4NS10c24KJiM0MzsgICAgICAgICAgLSBjb25zdDogc25wcyxkd3hnbWFjLTIuMTAKIAogICBjbG9ja3M6CiAgICAgbWluSXRlbXM6IDEKZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvTWFrZWZpbGUgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL2ludGVsL01ha2VmaWxlCmluZGV4IDI3MGM3MGZkZjA4NGIuLmNlN2NmM2E2MzI3NTMgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvTWFrZWZpbGUKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9NYWtlZmlsZQpAQCAtOCw2ICYjNDM7OCw3IEBAIGR0Yi0kKENPTkZJR19BUkNIX0lOVEVMX1NPQ0ZQR0EpICYjNDM7PSBzb2NmcGdhX2FnaWxleF9uNjAwMC5kdGIgXAogCQkJCXNvY2ZwZ2FfYWdpbGV4NV9zb2Nka18wMTNiLmR0YiBcCiAJCQkJc29jZnBnYV9hZ2lsZXg1X3NvY2RrX21vZHVsYXIuZHRiIFwKIAkJCQlzb2NmcGdhX2FnaWxleDVfc29jZGtfbmFuZC5kdGIgXAomIzQzOwkJCQlzb2NmcGdhX2FnaWxleDVfc29jZGtfdHNuX2NmZzIuZHRiIFwKIAkJCQlzb2NmcGdhX2FnaWxleDcyX3NvY2RrLmR0YiBcCiAJCQkJc29jZnBnYV9hZ2lsZXg3bV9zb2Nkay5kdGIgXAogCQkJCXNvY2ZwZ2FfbjV4X3NvY2RrLmR0YgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9zb2NmcGdhX2FnaWxleDVfc29jZGtfdHNuX2NmZzIuZHRzIGIvYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9zb2NmcGdhX2FnaWxleDVfc29jZGtfdHNuX2NmZzIuZHRzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjlkMzlmODQzYjQyNDAKLS0tIC9kZXYvbnVsbAomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL2ludGVsL3NvY2ZwZ2FfYWdpbGV4NV9zb2Nka190c25fY2ZnMi5kdHMKQEAgLTAsMCAmIzQzOzEsMTMwIEBACiYjNDM7Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQomIzQzOy8qCiYjNDM7ICogQ29weXJpZ2h0IChDKSAyMDI2LCBBbHRlcmEgQ29ycG9yYXRpb24KJiM0MzsgKi8KJiM0MzsjaW5jbHVkZSAmIzM0O3NvY2ZwZ2FfYWdpbGV4NS5kdHNpJiMzNDsKJiM0MzsKJiM0MzsvIHsKJiM0MzsJbW9kZWwgPSAmIzM0O1NvQ0ZQR0EgQWdpbGV4NSBTb0NESyBUU04gQ29uZmlnMiYjMzQ7OwomIzQzOwljb21wYXRpYmxlID0gJiMzNDtpbnRlbCxzb2NmcGdhLWFnaWxleDUtc29jZGstdHNuLWNmZzImIzM0OywgJiMzNDtpbnRlbCxzb2NmcGdhLWFnaWxleDUmIzM0OzsKJiM0MzsKJiM0MzsJYWxpYXNlcyB7CiYjNDM7CQlzZXJpYWwwID0gJmFtcDt1YXJ0MDsKJiM0MzsJCWV0aGVybmV0MSA9ICZhbXA7Z21hYzE7CiYjNDM7CQlldGhlcm5ldDIgPSAmYW1wO2dtYWMyOwomIzQzOwl9OwomIzQzOwomIzQzOwljaG9zZW4gewomIzQzOwkJc3Rkb3V0LXBhdGggPSAmIzM0O3NlcmlhbDA6MTE1MjAwbjgmIzM0OzsKJiM0MzsJfTsKJiM0MzsKJiM0MzsJbGVkcyB7CiYjNDM7CQljb21wYXRpYmxlID0gJiMzNDtncGlvLWxlZHMmIzM0OzsKJiM0MzsKJiM0MzsJCWxlZC0wIHsKJiM0MzsJCQlsYWJlbCA9ICYjMzQ7aHBzX2xlZDAmIzM0OzsKJiM0MzsJCQlncGlvcyA9ICZsdDsmYW1wO3BvcnRhIDExIEdQSU9fQUNUSVZFX0hJR0gmZ3Q7OwomIzQzOwkJfTsKJiM0MzsKJiM0MzsJfTsKJiM0MzsKJiM0MzsJbWVtb3J5QDgwMDAwMDAwIHsKJiM0MzsJCWRldmljZV90eXBlID0gJiMzNDttZW1vcnkmIzM0OzsKJiM0MzsJCS8qIFdlIGV4cGVjdCB0aGUgYm9vdGxvYWRlciB0byBmaWxsIGluIHRoZSByZWcgKi8KJiM0MzsJCXJlZyA9ICZsdDsweDAgMHg4MDAwMDAwMCAweDAgMHgwJmd0OzsKJiM0MzsJfTsKJiM0Mzt9OwomIzQzOwomIzQzOyZhbXA7Z3BpbzAgewomIzQzOwlzdGF0dXMgPSAmIzM0O29rYXkmIzM0OzsKJiM0Mzt9OwomIzQzOwomIzQzOyZhbXA7Z3BpbzEgewomIzQzOwlzdGF0dXMgPSAmIzM0O29rYXkmIzM0OzsKJiM0Mzt9OwomIzQzOwomIzQzOyZhbXA7Z21hYzEgewomIzQzOwlzdGF0dXMgPSAmIzM0O29rYXkmIzM0OzsKJiM0MzsJY29tcGF0aWJsZSA9ICYjMzQ7YWx0cixzb2NmcGdhLXN0bW1hYy1hZ2lsZXg1LXRzbiYjMzQ7LAomIzQzOwkJICAgICAmIzM0O3NucHMsZHd4Z21hYy0yLjEwJiMzNDs7CiYjNDM7CXBoeS1tb2RlID0gJiMzNDtyZ21paS1pZCYjMzQ7OwomIzQzOwlwaHktaGFuZGxlID0gJmx0OyZhbXA7ZW1hYzFfcGh5MCZndDs7CiYjNDM7CW1heC1mcmFtZS1zaXplID0gJmx0OzkwMDAmZ3Q7OwomIzQzOwomIzQzOwltZGlvMCB7CiYjNDM7CQkjYWRkcmVzcy1jZWxscyA9ICZsdDsxJmd0OzsKJiM0MzsJCSNzaXplLWNlbGxzID0gJmx0OzAmZ3Q7OwomIzQzOwkJY29tcGF0aWJsZSA9ICYjMzQ7c25wcyxkd21hYy1tZGlvJiMzNDs7CiYjNDM7CiYjNDM7CQllbWFjMV9waHkwOiBldGhlcm5ldC1waHlAMCB7CiYjNDM7CQkJcmVnID0gJmx0OzAmZ3Q7OwomIzQzOwkJfTsKJiM0MzsJfTsKJiM0Mzt9OwomIzQzOwomIzQzOyZhbXA7Z21hYzIgewomIzQzOwlzdGF0dXMgPSAmIzM0O29rYXkmIzM0OzsKJiM0MzsJcGh5LW1vZGUgPSAmIzM0O3JnbWlpLWlkJiMzNDs7CiYjNDM7CXBoeS1oYW5kbGUgPSAmbHQ7JmFtcDtlbWFjMl9waHkwJmd0OzsKJiM0MzsJbWF4LWZyYW1lLXNpemUgPSAmbHQ7OTAwMCZndDs7CiYjNDM7CiYjNDM7CW1kaW8wIHsKJiM0MzsJCSNhZGRyZXNzLWNlbGxzID0gJmx0OzEmZ3Q7OwomIzQzOwkJI3NpemUtY2VsbHMgPSAmbHQ7MCZndDs7CiYjNDM7CQljb21wYXRpYmxlID0gJiMzNDtzbnBzLGR3bWFjLW1kaW8mIzM0OzsKJiM0MzsKJiM0MzsJCWVtYWMyX3BoeTA6IGV0aGVybmV0LXBoeUAwIHsKJiM0MzsJCQlyZWcgPSAmbHQ7MCZndDs7CiYjNDM7CQl9OwomIzQzOwl9OwomIzQzO307CiYjNDM7CiYjNDM7JmFtcDtvc2MxIHsKJiM0MzsJY2xvY2stZnJlcXVlbmN5ID0gJmx0OzI1MDAwMDAwJmd0OzsKJiM0Mzt9OwomIzQzOwomIzQzOyZhbXA7cXNwaSB7CiYjNDM7CXN0YXR1cyA9ICYjMzQ7b2theSYjMzQ7OwomIzQzOwlmbGFzaEAwIHsKJiM0MzsJCWNvbXBhdGlibGUgPSAmIzM0O21pY3JvbixtdDI1cXUwMmcmIzM0OywgJiMzNDtqZWRlYyxzcGktbm9yJiMzNDs7CiYjNDM7CQlyZWcgPSAmbHQ7MCZndDs7CiYjNDM7CQlzcGktbWF4LWZyZXF1ZW5jeSA9ICZsdDsxMDAwMDAwMDAmZ3Q7OwomIzQzOwkJbTI1cCxmYXN0LXJlYWQ7CiYjNDM7CQljZG5zLHJlYWQtZGVsYXkgPSAmbHQ7MiZndDs7CiYjNDM7CQljZG5zLHRzaHNsLW5zID0gJmx0OzUwJmd0OzsKJiM0MzsJCWNkbnMsdHNkMmQtbnMgPSAmbHQ7NTAmZ3Q7OwomIzQzOwkJY2Rucyx0Y2hzaC1ucyA9ICZsdDs0Jmd0OzsKJiM0MzsJCWNkbnMsdHNsY2gtbnMgPSAmbHQ7NCZndDs7CiYjNDM7CQlzcGktdHgtYnVzLXdpZHRoID0gJmx0OzQmZ3Q7OwomIzQzOwkJc3BpLXJ4LWJ1cy13aWR0aCA9ICZsdDs0Jmd0OzsKJiM0MzsKJiM0MzsJCXBhcnRpdGlvbnMgewomIzQzOwkJCWNvbXBhdGlibGUgPSAmIzM0O2ZpeGVkLXBhcnRpdGlvbnMmIzM0OzsKJiM0MzsJCQkjYWRkcmVzcy1jZWxscyA9ICZsdDsxJmd0OzsKJiM0MzsJCQkjc2l6ZS1jZWxscyA9ICZsdDsxJmd0OzsKJiM0MzsKJiM0MzsJCQlxc3BpX2Jvb3Q6IHBhcnRpdGlvbkAwIHsKJiM0MzsJCQkJbGFiZWwgPSAmIzM0O3UtYm9vdCYjMzQ7OwomIzQzOwkJCQlyZWcgPSAmbHQ7MHgwIDB4MDQyMDAwMDAmZ3Q7OwomIzQzOwkJCX07CiYjNDM7CiYjNDM7CQkJcm9vdDogcGFydGl0aW9uQDQyMDAwMDAgewomIzQzOwkJCQlsYWJlbCA9ICYjMzQ7cm9vdCYjMzQ7OwomIzQzOwkJCQlyZWcgPSAmbHQ7MHgwNDIwMDAwMCAweDBiZTAwMDAwJmd0OzsKJiM0MzsJCQl9OwomIzQzOwkJfTsKJiM0MzsJfTsKJiM0Mzt9OwomIzQzOwomIzQzOyZhbXA7dWFydDAgewomIzQzOwlzdGF0dXMgPSAmIzM0O29rYXkmIzM0OzsKJiM0Mzt9OwomIzQzOwomIzQzOyZhbXA7dXNiMCB7CiYjNDM7CXN0YXR1cyA9ICYjMzQ7b2theSYjMzQ7OwomIzQzOwlkaXNhYmxlLW92ZXItY3VycmVudDsKJiM0Mzt9OwomIzQzOwomIzQzOyZhbXA7d2F0Y2hkb2cwIHsKJiM0MzsJc3RhdHVzID0gJiMzNDtva2F5JiMzNDs7CiYjNDM7fTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYwppbmRleCAxZDdmMGE1N2QyODg5Li4wNjMyMTA1YjQyMGYxIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jCkBAIC02OSwxMiAmIzQzOzY5LDEzIEBAIHN0cnVjdCBzb2NmcGdhX2R3bWFjIHsKIAl2b2lkIF9faW9tZW0gKnRzZV9wY3NfYmFzZTsKIAl2b2lkIF9faW9tZW0gKnNnbWlpX2FkYXB0ZXJfYmFzZTsKIAlib29sIGYyaF9wdHBfcmVmX2NsazsKJiM0MzsJcGh5X2ludGVyZmFjZV90IG1hY19pbnRlcmZhY2U7CiAJY29uc3Qgc3RydWN0IHNvY2ZwZ2FfZHdtYWNfb3BzICpvcHM7CiB9OwogCiBzdGF0aWMgcGh5X2ludGVyZmFjZV90IHNvY2ZwZ2FfZ2V0X3BsYXRfcGh5bW9kZShzdHJ1Y3Qgc29jZnBnYV9kd21hYyAqZHdtYWMpCiB7Ci0JcmV0dXJuIGR3bWFjLSZndDtwbGF0X2RhdC0mZ3Q7cGh5X2ludGVyZmFjZTsKJiM0MzsJcmV0dXJuIGR3bWFjLSZndDttYWNfaW50ZXJmYWNlOwogfQogCiBzdGF0aWMgdm9pZCBzb2NmcGdhX3NnbWlpX2NvbmZpZyhzdHJ1Y3Qgc29jZnBnYV9kd21hYyAqZHdtYWMsIGJvb2wgZW5hYmxlKQpAQCAtNjUwLDYgJiM0Mzs2NTEsOCBAQCBzdGF0aWMgaW50IHNvY2ZwZ2FfZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlwbGF0X2RhdC0mZ3Q7cGNzX2V4aXQgPSBzb2NmcGdhX2R3bWFjX3Bjc19leGl0OwogCXBsYXRfZGF0LSZndDtzZWxlY3RfcGNzID0gc29jZnBnYV9kd21hY19zZWxlY3RfcGNzOwogCiYjNDM7CWR3bWFjLSZndDttYWNfaW50ZXJmYWNlID0gcGxhdF9kYXQtJmd0O3BoeV9pbnRlcmZhY2U7CiYjNDM7CiAJb3BzLSZndDtzZXR1cF9wbGF0X2RhdChkd21hYyk7CiAKIAlyZXR1cm4gZGV2bV9zdG1tYWNfcGx0ZnJfcHJvYmUocGRldiwgcGxhdF9kYXQsICZhbXA7c3RtbWFjX3Jlcyk7CkBAIC02NzAsMTAgJiM0Mzs2NzMsMjggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzb2NmcGdhX2R3bWFjX29wcyBzb2NmcGdhX2FnaWxleDVfb3BzID0gewogCS5zZXR1cF9wbGF0X2RhdCA9IHNvY2ZwZ2FfYWdpbGV4NV9zZXR1cF9wbGF0X2RhdCwKIH07CiAKJiM0MztzdGF0aWMgdm9pZCBzb2NmcGdhX2FnaWxleDVfdHNuX2dtYWNfc2V0dXBfcGxhdF9kYXQoc3RydWN0IHNvY2ZwZ2FfZHdtYWMgKmR3bWFjKQomIzQzO3sKJiM0MzsJc3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdCA9IGR3bWFjLSZndDtwbGF0X2RhdDsKJiM0MzsKJiM0MzsJc29jZnBnYV9hZ2lsZXg1X3NldHVwX3BsYXRfZGF0KGR3bWFjKTsKJiM0MzsKJiM0MzsJLyogRlBHQSBjb252ZXJ0ZXIgc3VwcGxpZXMgUkdNSUkgZGVsYXlzOyBNQUMgdXNlcyBHTUlJLCBQSFkgZ2V0cyBwbGFpbiBSR01JSSAqLwomIzQzOwlkd21hYy0mZ3Q7bWFjX2ludGVyZmFjZSA9IFBIWV9JTlRFUkZBQ0VfTU9ERV9HTUlJOwomIzQzOwlpZiAocGh5X2ludGVyZmFjZV9tb2RlX2lzX3JnbWlpKHBsYXRfZGF0LSZndDtwaHlfaW50ZXJmYWNlKSkKJiM0MzsJCXBsYXRfZGF0LSZndDtwaHlfaW50ZXJmYWNlID0gUEhZX0lOVEVSRkFDRV9NT0RFX1JHTUlJOwomIzQzO30KJiM0MzsKJiM0MztzdGF0aWMgY29uc3Qgc3RydWN0IHNvY2ZwZ2FfZHdtYWNfb3BzIHNvY2ZwZ2FfYWdpbGV4NV90c25fZ21hY19vcHMgPSB7CiYjNDM7CS5zZXRfcGh5X21vZGUgPSBzb2NmcGdhX2dlbjEwX3NldF9waHlfbW9kZSwKJiM0MzsJLnNldHVwX3BsYXRfZGF0ID0gc29jZnBnYV9hZ2lsZXg1X3Rzbl9nbWFjX3NldHVwX3BsYXRfZGF0LAomIzQzO307CiYjNDM7CiBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBzb2NmcGdhX2R3bWFjX21hdGNoW10gPSB7CiAJeyAuY29tcGF0aWJsZSA9ICYjMzQ7YWx0cixzb2NmcGdhLXN0bW1hYyYjMzQ7LCAuZGF0YSA9ICZhbXA7c29jZnBnYV9nZW41X29wcyB9LAogCXsgLmNvbXBhdGlibGUgPSAmIzM0O2FsdHIsc29jZnBnYS1zdG1tYWMtYTEwLXMxMCYjMzQ7LCAuZGF0YSA9ICZhbXA7c29jZnBnYV9nZW4xMF9vcHMgfSwKIAl7IC5jb21wYXRpYmxlID0gJiMzNDthbHRyLHNvY2ZwZ2Etc3RtbWFjLWFnaWxleDUmIzM0OywgLmRhdGEgPSAmYW1wO3NvY2ZwZ2FfYWdpbGV4NV9vcHMgfSwKJiM0MzsJeyAuY29tcGF0aWJsZSA9ICYjMzQ7YWx0cixzb2NmcGdhLXN0bW1hYy1hZ2lsZXg1LXRzbiYjMzQ7LCAuZGF0YSA9ICZhbXA7c29jZnBnYV9hZ2lsZXg1X3Rzbl9nbWFjX29wcyB9LAogCXsgfQogfTsKIE1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHNvY2ZwZ2FfZHdtYWNfbWF0Y2gpOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNyAwMzoyMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0OTk4CgkJCQkJCQlvdXRwdXQ6IDIxCgkJCQkJCQl0aG91Z2h0czogNzIyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgRmVhc2liaWxpdHkgQXNzZXNzbWVudDogQWx0ZXJhIFNPQ0ZQR0EgQWdpbGV4NSBUU04gRFdNQUMgRHJpdmVyIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O3ZlIGdvdCB0aGlzIHBhdGNoIGFkZGluZyBhIG5ldyBkZXZpY2UgdHJlZSBiaW5kaW5nIGFuZCBhIGNvbXBhdGlibGUgc3RyaW5nLCBgYWx0cixzb2NmcGdhLXN0bW1hYy1hZ2lsZXg1LXRzbmAsIHRvIHRoZSBgc3RtbWFjYCBkcml2ZXIgd2l0aGluIGBkd21hYy1zb2NmcGdhLmNgLiBUaGUgcGF0Y2ggc2VlbXMgdG8gYmUgdG91Y2hpbmcgdGhlIGBzb2NmcGdhX2dldF9wbGF0X3BoeW1vZGVgIGZ1bmN0aW9uIGFuZCBhIG5ldyBgc29jZnBnYV9hZ2lsZXg1X3Rzbl9nbWFjX3NldHVwX3BsYXRfZGF0YCBhbmQgYWxzbyBgc29jZnBnYV9hZ2lsZXg1X3Rzbl9nbWFjX29wc2AuIFRoZSBjb3JlIG9mIHRoZSBkcml2ZXIgc2VlbXMgdG8gYmUgdGhlIHN0bW1hYyBkcml2ZXIuCgpNeSBpbml0aWFsIHRob3VnaHQgaXMsIGlzIHRoaXMgZXZlbiAqd29ydGgqIGZ1enppbmc/IEkgbWVhbiwgYGR3bWFjLXNvY2ZwZ2EuY2AgaXMgdGhlIHRhcmdldCwgc28gdGhhdCYjMzk7cyB0aGUgYXJlYSBvZiBpbnRlcmVzdC4gSXQmIzM5O3MgYSBwbGF0Zm9ybSBkcml2ZXIsIHNwZWNpZmljYWxseSBmb3IgQWx0ZXJhIFNPQ0ZQR0EgRFdNQUMuIFBsYXRmb3JtIGRyaXZlcnMgYXJlIGdlbmVyYWxseSB0cmlja3kgdG8gZnV6eiBkaXJlY3RseSBiZWNhdXNlIHlvdSB1c3VhbGx5IG5lZWQgdG8gaW5zdGFudGlhdGUgdGhlbSB2aWEgdGhlIGRldmljZSB0cmVlLgoKVGhlIHF1ZXN0aW9uIGlzLCBjYW4gSSBpbnN0YW50aWF0ZSB0aGlzIHRoaW5nIGluIFFFTVU/IFRoZXNlIFNPQyBzcGVjaWZpYyBwbGF0Zm9ybSBkcml2ZXJzIGFyZSBub3JtYWxseSBhIHBhaW4gaW4gdGhlIGFzcyB0byBmdXp6IGRpcmVjdGx5LiBTeXprYWxsZXIgKmNhbiogaW5qZWN0IHBsYXRmb3JtIGRldmljZXMgd2l0aCBgc3l6X2Rldl9jcmVhdGVgLCBidXQgdGhhdCB1c3VhbGx5IG5lZWRzIHNwZWNpZmljIGhhcmR3YXJlIG9yIFFFTVUgc3VwcG9ydC4gU2luY2UgdGhpcyBpcyBhIGdsdWUgbGF5ZXIgZm9yIGBzdG1tYWNgLCB0aGF0IGFsc28gaW5mbHVlbmNlcyBteSB0aGlua2luZyBoZXJlLgoKTGV0JiMzOTtzIGRpdmUgZGVlcGVyIGludG8gdGhlIGNoYW5nZXMgdGhlbXNlbHZlcy4gSXQgbG9va3MgbGlrZSB0aGUgbW9zdCBzaWduaWZpY2FudCBjaGFuZ2UgaXMgaW4gYHNvY2ZwZ2FfZ2V0X3BsYXRfcGh5bW9kZWAgd2hlcmUgaXQmIzM5O3Mgc3dpdGNoaW5nIGZyb20gdXNpbmcgYGR3bWFjLSZndDtwbGF0X2RhdC0mZ3Q7cGh5X2ludGVyZmFjZWAgdG8gYGR3bWFjLSZndDttYWNfaW50ZXJmYWNlYC4gVGhlbiB3ZSBoYXZlIHRoZSBgc29jZnBnYV9hZ2lsZXg1X3Rzbl9nbWFjX3NldHVwX3BsYXRfZGF0YCB3aGljaCBzZWVtcyB0byBiZSBtb3N0bHkgc2V0dGluZyB1cCBQSFkgaW50ZXJmYWNlIG1vZGVzIGR1cmluZyBwcm9iZS4gVGhlIGNvZGUgbG9va3MgbGlrZSB0aGlzOgoKYGBgYwpzdGF0aWMgcGh5X2ludGVyZmFjZV90IHNvY2ZwZ2FfZ2V0X3BsYXRfcGh5bW9kZShzdHJ1Y3Qgc29jZnBnYV9kd21hYyAqZHdtYWMpCnsKLQlyZXR1cm4gZHdtYWMtJmd0O3BsYXRfZGF0LSZndDtwaHlfaW50ZXJmYWNlOwomIzQzOwlyZXR1cm4gZHdtYWMtJmd0O21hY19pbnRlcmZhY2U7Cn0KCnN0YXRpYyB2b2lkIHNvY2ZwZ2FfYWdpbGV4NV90c25fZ21hY19zZXR1cF9wbGF0X2RhdChzdHJ1Y3Qgc29jZnBnYV9kd21hYyAqZHdtYWMpCnsKCXN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQgPSBkd21hYy0mZ3Q7cGxhdF9kYXQ7CgoJc29jZnBnYV9hZ2lsZXg1X3NldHVwX3BsYXRfZGF0KGR3bWFjKTsKCgkvKiBGUEdBIGNvbnZlcnRlciBzdXBwbGllcyBSR01JSSBkZWxheXM7IE1BQyB1c2VzIEdNSUksIFBIWSBnZXRzIHBsYWluIFJHTUlJICovCglkd21hYy0mZ3Q7bWFjX2ludGVyZmFjZSA9IFBIWV9JTlRFUkZBQ0VfTU9ERV9HTUlJOwoJaWYgKHBoeV9pbnRlcmZhY2VfbW9kZV9pc19yZ21paShwbGF0X2RhdC0mZ3Q7cGh5X2ludGVyZmFjZSkpCgkJcGxhdF9kYXQtJmd0O3BoeV9pbnRlcmZhY2UgPSBQSFlfSU5URVJGQUNFX01PREVfUkdNSUk7Cn0KYGBgCgpUaGUgY2hhbmdlcyBhcmUgaW5jcmVkaWJseSBtaW5pbWFsIC0gbW9zdGx5IGFib3V0IHNldHRpbmcgdXAgUEhZIGludGVyZmFjZSBtb2RlcyBhdCBwcm9iZSB0aW1lLiBUaGUgbmV3IHNldHVwIGZ1bmN0aW9uIG1vZGlmaWVzIHRoZSBQSFkgaW50ZXJmYWNlLCBidXQgaXQmIzM5O3MgKnNwZWNpZmljKiB0byB0aGUgQWx0ZXJhIFNPQ0ZQR0EgQWdpbGV4NSBUU04uCgpTbywgKmlzKiBpdCByZWFjaGFibGU/IEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoYXQgY29uZmlnIG9wdGlvbiBlbmFibGVzIGBkd21hYy1zb2NmcGdhLmNgLiBJJiMzOTtsbCBzZWFyY2ggZm9yIGBDT05GSUdfRFdNQUNfU09DRlBHQWAuIExldCYjMzk7cyBzZWUgaWYgdGhpcyBpcyBldmVuIGNvbXBpbGVkIGJ5IGRlZmF1bHQuIElmIGl0IGlzbiYjMzk7dCwgdGhlIGNoYW5jZXMgb2YgdGhpcyBiZWluZyBlYXNpbHkgcmVhY2hhYmxlIHZpYSBmdXp6aW5nIGFyZSBsb3cuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTcgMDM6MjA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7RFdNQUNfU09DRlBHQSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTE5MT1jb25maWcgRFdNQUNfUzMyXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMDItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjIwMzpjb25maWcgRFdNQUNfU09DRlBHQVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMDQtXHR0cmlzdGF0ZSBcJiMzNDtTT0NGUEdBIGR3bWFjIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZT0yOD1vYmotJChDT05GSUdfRFdNQUNfUzMyKVx0XHQmIzQzOz0gZHdtYWMtczMyLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjI5Om9iai0kKENPTkZJR19EV01BQ19TT0NGUEdBKVx0JiM0Mzs9IGR3bWFjLWFsdHItc29jZnBnYS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS0zMC1vYmotJChDT05GSUdfRFdNQUNfU09QSEdPKVx0JiM0Mzs9IGR3bWFjLXNvcGhnby5vXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTcgMDM6MjA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjc4NQoJCQkJCQkJb3V0cHV0OiAxMTIKCQkJCQkJCXRob3VnaHRzOiA0OTkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudDogTm90IFdvcnRoIEZ1enppbmcqKgoKT2theSwgc28gdGhlIGNvbmZpZyBpcyBgRFdNQUNfU09DRlBHQWAuIFRoZSBjaGFuZ2VzIGFyZSBpc29sYXRlZCB0byB0aGUgcHJvYmUgcGF0aCBvZiB0aGUgQWx0ZXJhIFNPQ0ZQR0EgaGFyZHdhcmUgZHJpdmVyLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCB0aGVzZSBraW5kcyBvZiBoYXJkd2FyZS1zcGVjaWZpYyBwcm9iZSBwYXRocywgZXNwZWNpYWxseSB0aG9zZSBqdXN0IHNldHRpbmcgdXAgY29uc3RhbnRzIGFuZCBub3QgZXhwb3NpbmcgbmV3IHN5c2NhbGxzIG9yIGNvbXBsZXggbG9naWMsIGFyZW4mIzM5O3QgdHlwaWNhbGx5IGZydWl0ZnVsIGZvciBmdXp6aW5nLiBUaGV5IHVzdWFsbHkgZGVwZW5kIG9uIHZlcnkgc3BlY2lmaWMgaGFyZHdhcmUgb3IgZGV2aWNlIHRyZWUgbm9kZXMgdGhhdCB5b3Ugd29uJiMzOTt0IGZpbmQgaW4gZ2VuZXJpYyB4ODYgVk1zLgoKSSBkaWQgcmVjYWxsIHRoYXQgc3l6a2FsbGVyICpjYW4qIGhhbmRsZSBzb21lIHBsYXRmb3JtIGRyaXZlciBmdXp6aW5nIHdpdGggZGV2aWNlIHRyZWUgb3ZlcmxheSBpbmplY3Rpb24sIGJ1dCBldmVuIHRoZW4sIHRoaXMgaXMgc3RpbGwganVzdCB0aGUgcHJvYmUgZnVuY3Rpb24sIGFuZCBpdCBpcyBhIHRyaXZpYWwgc2V0dXAuCgpMZXQgbWUgYnJlYWsgZG93biB0aGUgY2hhbmdlczogd2UgYXJlIHNldHRpbmcgYSBzaW5nbGUgdmFyaWFibGU6Ci0gYHNvY2ZwZ2FfZ2V0X3BsYXRfcGh5bW9kZWAgY2hhbmdlZCB0byByZXR1cm4gYGR3bWFjLSZndDttYWNfaW50ZXJmYWNlYC4KLSBgc29jZnBnYV9kd21hY19wcm9iZWAgc2V0cyBgZHdtYWMtJmd0O21hY19pbnRlcmZhY2UgPSBwbGF0X2RhdC0mZ3Q7cGh5X2ludGVyZmFjZWAuCi0gYHNvY2ZwZ2FfYWdpbGV4NV90c25fZ21hY19zZXR1cF9wbGF0X2RhdGAgc2V0cyBgZHdtYWMtJmd0O21hY19pbnRlcmZhY2UgPSBQSFlfSU5URVJGQUNFX01PREVfR01JSWAgYW5kIGNoYW5nZXMgYHBsYXRfZGF0LSZndDtwaHlfaW50ZXJmYWNlYC4KCkl0JiMzOTtzIGEgcmVhbGx5IHNpbXBsZSBjb25maWd1cmF0aW9uIGNoYW5nZSBzcGVjaWZpYyB0byBhIHBhcnRpY3VsYXIgaGFyZHdhcmUgcGxhdGZvcm0uIE5vIGNvbXBsZXggbG9naWMsIHN0YXRlIG1hY2hpbmVzLCBvciBhbnl0aGluZyB1c2VyLWFjY2Vzc2libGUgaXMgaW50cm9kdWNlZCBoZXJlLgoKSW5pdGlhbGx5LCBJJiMzOTtkIG1hcmsgdGhpcyBhcyBgV29ydGhGdXp6aW5nPWZhbHNlYCBkdWUgdG8gaXRzIG5hdHVyZS4KCkhvd2V2ZXIsIGxldCBtZSBxdWlja2x5IHJlLXJlYWQgdGhlIGluc3RydWN0aW9ucy4uLiBPa2F5LCB0aGUgY3JpdGVyaWEgYXJlIHByZXR0eSBjbGVhcjoKCiogICBDb2RlIHBhdGhzIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLCBldmVuIHdpdGggc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUuCiogICBWZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyB0aGF0IG5lZWQgcGh5c2ljYWwgaGFyZHdhcmUuCgpUaGlzIGlzIGEgdmVuZG9yLXNwZWNpZmljIFNvQyBFdGhlcm5ldCBNQUMgZHJpdmVyIOKAkyBBbHRlcmEgU09DRlBHQS4gSXQgcmVsaWVzIG9uIHRoZSBkZXZpY2UgdHJlZS4gSSYjMzk7bSBwcmV0dHkgc3VyZSBzdGFuZGFyZCBRRU1VIGRvZXNuJiMzOTt0IGVtdWxhdGUgQWdpbGV4NSwgYW5kIGV2ZW4gd2l0aCBEVCBpbmplY3Rpb24sIHRoZXNlIGFyZSB0cml2aWFsIHByb2JlLXRpbWUgYXNzaWdubWVudHMuCgpZZXAsIHN0aWxsICpub3QqIHdvcnRoIGZ1enppbmcuIEkmIzM5O2xsIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNyAwMzoyMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSBuZXcgZGV2aWNlIHRyZWUgY29tcGF0aWJsZSBzdHJpbmcgYW5kIG1pbm9yIHByb2JlLXRpbWUgY29uZmlndXJhdGlvbiBmb3IgdGhlIEFsdGVyYSBTT0NGUEdBIERXTUFDIGRyaXZlci4gVGhpcyBpcyBhIHZlbmRvci1zcGVjaWZpYyBoYXJkd2FyZSBkcml2ZXIgdGhhdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChsaWtlIFFFTVUvR0NFKSB1c2VkIGZvciBmdXp6aW5nLiBGdXJ0aGVybW9yZSwgdGhlIGNoYW5nZXMgYXJlIHRyaXZpYWwgYXNzaWdubWVudHMgZHVyaW5nIGRldmljZSBwcm9iZSBhbmQgZG8gbm90IGludHJvZHVjZSBhbnkgY29tcGxleCBvciB1c2VyLXJlYWNoYWJsZSBsb2dpYy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSBuZXcgZGV2aWNlIHRyZWUgY29tcGF0aWJsZSBzdHJpbmcgYW5kIG1pbm9yIHByb2JlLXRpbWUgY29uZmlndXJhdGlvbiBmb3IgdGhlIEFsdGVyYSBTT0NGUEdBIERXTUFDIGRyaXZlci4gVGhpcyBpcyBhIHZlbmRvci1zcGVjaWZpYyBoYXJkd2FyZSBkcml2ZXIgdGhhdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChsaWtlIFFFTVUvR0NFKSB1c2VkIGZvciBmdXp6aW5nLiBGdXJ0aGVybW9yZSwgdGhlIGNoYW5nZXMgYXJlIHRyaXZpYWwgYXNzaWdubWVudHMgZHVyaW5nIGRldmljZSBwcm9iZSBhbmQgZG8gbm90IGludHJvZHVjZSBhbnkgY29tcGxleCBvciB1c2VyLXJlYWNoYWJsZSBsb2dpYy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTcgMDM6MjA8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE3VDAzOjIwOjIyLjI4Njg3MDczWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTk3NTk4NTY0MzksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJcIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgbmV3IGRldmljZSB0cmVlIGNvbXBhdGlibGUgc3RyaW5nIGFuZCBtaW5vciBwcm9iZS10aW1lIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBBbHRlcmEgU09DRlBHQSBEV01BQyBkcml2ZXIuIFRoaXMgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVyIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAobGlrZSBRRU1VL0dDRSkgdXNlZCBmb3IgZnV6emluZy4gRnVydGhlcm1vcmUsIHRoZSBjaGFuZ2VzIGFyZSB0cml2aWFsIGFzc2lnbm1lbnRzIGR1cmluZyBkZXZpY2UgcHJvYmUgYW5kIGRvIG5vdCBpbnRyb2R1Y2UgYW55IGNvbXBsZXggb3IgdXNlci1yZWFjaGFibGUgbG9naWMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xN1QwMzoyMDoyMi4yODY4NzY3NVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDU5NTI4MjYyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgODY0YWQ0NDY2OWYzYTdiMTI2ZDU0OGZlZWFmOWNmNjJjY2RhNDE2YlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgTW9uIEF1ZyAxNyAwMzoyMDoyMSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL2FsdGVyYS55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9hbHRlcmEueWFtbFxcbmluZGV4IDMwMzBjZjQ2ZmU3NGMuLmU0MzE0NjlhNzE3NTMgMTAwNjQ0XFxuLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9hbHRlcmEueWFtbFxcbisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vYWx0ZXJhLnlhbWxcXG5AQCAtMTE0LDYgKzExNCw3IEBAIHByb3BlcnRpZXM6XFxuICAgICAgICAgICAgICAgLSBpbnRlbCxzb2NmcGdhLWFnaWxleDUtc29jZGstZGVidWdcXG4gICAgICAgICAgICAgICAtIGludGVsLHNvY2ZwZ2EtYWdpbGV4NS1zb2Nkay1tb2R1bGFyXFxuICAgICAgICAgICAgICAgLSBpbnRlbCxzb2NmcGdhLWFnaWxleDUtc29jZGstbmFuZFxcbisgICAgICAgICAgICAgIC0gaW50ZWwsc29jZnBnYS1hZ2lsZXg1LXNvY2RrLXRzbi1jZmcyXFxuICAgICAgICAgICAtIGNvbnN0OiBpbnRlbCxzb2NmcGdhLWFnaWxleDVcXG4gXFxuICAgICAgIC0gZGVzY3JpcHRpb246IEFnaWxleDcyIGJvYXJkc1xcbmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sXFxuaW5kZXggNjMwODRmNzYyMzczOC4uN2RiNmE3MTAyOTk0MyAxMDA2NDRcXG4tLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbFxcbisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sXFxuQEAgLTI0LDYgKzI0LDcgQEAgc2VsZWN0OlxcbiAgICAgICAgICAgLSBhbHRyLHNvY2ZwZ2Etc3RtbWFjXFxuICAgICAgICAgICAtIGFsdHIsc29jZnBnYS1zdG1tYWMtYTEwLXMxMFxcbiAgICAgICAgICAgLSBhbHRyLHNvY2ZwZ2Etc3RtbWFjLWFnaWxleDVcXG4rICAgICAgICAgIC0gYWx0cixzb2NmcGdhLXN0bW1hYy1hZ2lsZXg1LXRzblxcbiBcXG4gICByZXF1aXJlZDpcXG4gICAgIC0gY29tcGF0aWJsZVxcbkBAIC00Niw2ICs0Nyw5IEBAIHByb3BlcnRpZXM6XFxuICAgICAgIC0gaXRlbXM6XFxuICAgICAgICAgICAtIGNvbnN0OiBhbHRyLHNvY2ZwZ2Etc3RtbWFjLWFnaWxleDVcXG4gICAgICAgICAgIC0gY29uc3Q6IHNucHMsZHd4Z21hYy0yLjEwXFxuKyAgICAgIC0gaXRlbXM6XFxuKyAgICAgICAgICAtIGNvbnN0OiBhbHRyLHNvY2ZwZ2Etc3RtbWFjLWFnaWxleDUtdHNuXFxuKyAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3eGdtYWMtMi4xMFxcbiBcXG4gICBjbG9ja3M6XFxuICAgICBtaW5JdGVtczogMVxcbmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2Jvb3QvZHRzL2ludGVsL01ha2VmaWxlIGIvYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9NYWtlZmlsZVxcbmluZGV4IDI3MGM3MGZkZjA4NGIuLmNlN2NmM2E2MzI3NTMgMTAwNjQ0XFxuLS0tIGEvYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9NYWtlZmlsZVxcbisrKyBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvTWFrZWZpbGVcXG5AQCAtOCw2ICs4LDcgQEAgZHRiLSQoQ09ORklHX0FSQ0hfSU5URUxfU09DRlBHQSkgKz0gc29jZnBnYV9hZ2lsZXhfbjYwMDAuZHRiIFxcXFxcXG4gXFx0XFx0XFx0XFx0c29jZnBnYV9hZ2lsZXg1X3NvY2RrXzAxM2IuZHRiIFxcXFxcXG4gXFx0XFx0XFx0XFx0c29jZnBnYV9hZ2lsZXg1X3NvY2RrX21vZHVsYXIuZHRiIFxcXFxcXG4gXFx0XFx0XFx0XFx0c29jZnBnYV9hZ2lsZXg1X3NvY2RrX25hbmQuZHRiIFxcXFxcXG4rXFx0XFx0XFx0XFx0c29jZnBnYV9hZ2lsZXg1X3NvY2RrX3Rzbl9jZmcyLmR0YiBcXFxcXFxuIFxcdFxcdFxcdFxcdHNvY2ZwZ2FfYWdpbGV4NzJfc29jZGsuZHRiIFxcXFxcXG4gXFx0XFx0XFx0XFx0c29jZnBnYV9hZ2lsZXg3bV9zb2Nkay5kdGIgXFxcXFxcbiBcXHRcXHRcXHRcXHRzb2NmcGdhX241eF9zb2Nkay5kdGJcXG5kaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9zb2NmcGdhX2FnaWxleDVfc29jZGtfdHNuX2NmZzIuZHRzIGIvYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9zb2NmcGdhX2FnaWxleDVfc29jZGtfdHNuX2NmZzIuZHRzXFxubmV3IGZpbGUgbW9kZSAxMDA2NDRcXG5pbmRleCAwMDAwMDAwMDAwMDAwLi45ZDM5Zjg0M2I0MjQwXFxuLS0tIC9kZXYvbnVsbFxcbisrKyBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvc29jZnBnYV9hZ2lsZXg1X3NvY2RrX3Rzbl9jZmcyLmR0c1xcbkBAIC0wLDAgKzEsMTMwIEBAXFxuKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG4rLypcXG4rICogQ29weXJpZ2h0IChDKSAyMDI2LCBBbHRlcmEgQ29ycG9yYXRpb25cXG4rICovXFxuKyNpbmNsdWRlIFxcXCJzb2NmcGdhX2FnaWxleDUuZHRzaVxcXCJcXG4rXFxuKy8ge1xcbitcXHRtb2RlbCA9IFxcXCJTb0NGUEdBIEFnaWxleDUgU29DREsgVFNOIENvbmZpZzJcXFwiO1xcbitcXHRjb21wYXRpYmxlID0gXFxcImludGVsLHNvY2ZwZ2EtYWdpbGV4NS1zb2Nkay10c24tY2ZnMlxcXCIsIFxcXCJpbnRlbCxzb2NmcGdhLWFnaWxleDVcXFwiO1xcbitcXG4rXFx0YWxpYXNlcyB7XFxuK1xcdFxcdHNlcmlhbDAgPSBcXHUwMDI2dWFydDA7XFxuK1xcdFxcdGV0aGVybmV0MSA9IFxcdTAwMjZnbWFjMTtcXG4rXFx0XFx0ZXRoZXJuZXQyID0gXFx1MDAyNmdtYWMyO1xcbitcXHR9O1xcbitcXG4rXFx0Y2hvc2VuIHtcXG4rXFx0XFx0c3Rkb3V0LXBhdGggPSBcXFwic2VyaWFsMDoxMTUyMDBuOFxcXCI7XFxuK1xcdH07XFxuK1xcbitcXHRsZWRzIHtcXG4rXFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJncGlvLWxlZHNcXFwiO1xcbitcXG4rXFx0XFx0bGVkLTAge1xcbitcXHRcXHRcXHRsYWJlbCA9IFxcXCJocHNfbGVkMFxcXCI7XFxuK1xcdFxcdFxcdGdwaW9zID0gXFx1MDAzY1xcdTAwMjZwb3J0YSAxMSBHUElPX0FDVElWRV9ISUdIXFx1MDAzZTtcXG4rXFx0XFx0fTtcXG4rXFxuK1xcdH07XFxuK1xcbitcXHRtZW1vcnlAODAwMDAwMDAge1xcbitcXHRcXHRkZXZpY2VfdHlwZSA9IFxcXCJtZW1vcnlcXFwiO1xcbitcXHRcXHQvKiBXZSBleHBlY3QgdGhlIGJvb3Rsb2FkZXIgdG8gZmlsbCBpbiB0aGUgcmVnICovXFxuK1xcdFxcdHJlZyA9IFxcdTAwM2MweDAgMHg4MDAwMDAwMCAweDAgMHgwXFx1MDAzZTtcXG4rXFx0fTtcXG4rfTtcXG4rXFxuK1xcdTAwMjZncGlvMCB7XFxuK1xcdHN0YXR1cyA9IFxcXCJva2F5XFxcIjtcXG4rfTtcXG4rXFxuK1xcdTAwMjZncGlvMSB7XFxuK1xcdHN0YXR1cyA9IFxcXCJva2F5XFxcIjtcXG4rfTtcXG4rXFxuK1xcdTAwMjZnbWFjMSB7XFxuK1xcdHN0YXR1cyA9IFxcXCJva2F5XFxcIjtcXG4rXFx0Y29tcGF0aWJsZSA9IFxcXCJhbHRyLHNvY2ZwZ2Etc3RtbWFjLWFnaWxleDUtdHNuXFxcIixcXG4rXFx0XFx0ICAgICBcXFwic25wcyxkd3hnbWFjLTIuMTBcXFwiO1xcbitcXHRwaHktbW9kZSA9IFxcXCJyZ21paS1pZFxcXCI7XFxuK1xcdHBoeS1oYW5kbGUgPSBcXHUwMDNjXFx1MDAyNmVtYWMxX3BoeTBcXHUwMDNlO1xcbitcXHRtYXgtZnJhbWUtc2l6ZSA9IFxcdTAwM2M5MDAwXFx1MDAzZTtcXG4rXFxuK1xcdG1kaW8wIHtcXG4rXFx0XFx0I2FkZHJlc3MtY2VsbHMgPSBcXHUwMDNjMVxcdTAwM2U7XFxuK1xcdFxcdCNzaXplLWNlbGxzID0gXFx1MDAzYzBcXHUwMDNlO1xcbitcXHRcXHRjb21wYXRpYmxlID0gXFxcInNucHMsZHdtYWMtbWRpb1xcXCI7XFxuK1xcbitcXHRcXHRlbWFjMV9waHkwOiBldGhlcm5ldC1waHlAMCB7XFxuK1xcdFxcdFxcdHJlZyA9IFxcdTAwM2MwXFx1MDAzZTtcXG4rXFx0XFx0fTtcXG4rXFx0fTtcXG4rfTtcXG4rXFxuK1xcdTAwMjZnbWFjMiB7XFxuK1xcdHN0YXR1cyA9IFxcXCJva2F5XFxcIjtcXG4rXFx0cGh5LW1vZGUgPSBcXFwicmdtaWktaWRcXFwiO1xcbitcXHRwaHktaGFuZGxlID0gXFx1MDAzY1xcdTAwMjZlbWFjMl9waHkwXFx1MDAzZTtcXG4rXFx0bWF4LWZyYW1lLXNpemUgPSBcXHUwMDNjOTAwMFxcdTAwM2U7XFxuK1xcbitcXHRtZGlvMCB7XFxuK1xcdFxcdCNhZGRyZXNzLWNlbGxzID0gXFx1MDAzYzFcXHUwMDNlO1xcbitcXHRcXHQjc2l6ZS1jZWxscyA9IFxcdTAwM2MwXFx1MDAzZTtcXG4rXFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzbnBzLGR3bWFjLW1kaW9cXFwiO1xcbitcXG4rXFx0XFx0ZW1hYzJfcGh5MDogZXRoZXJuZXQtcGh5QDAge1xcbitcXHRcXHRcXHRyZWcgPSBcXHUwMDNjMFxcdTAwM2U7XFxuK1xcdFxcdH07XFxuK1xcdH07XFxuK307XFxuK1xcbitcXHUwMDI2b3NjMSB7XFxuK1xcdGNsb2NrLWZyZXF1ZW5jeSA9IFxcdTAwM2MyNTAwMDAwMFxcdTAwM2U7XFxuK307XFxuK1xcbitcXHUwMDI2cXNwaSB7XFxuK1xcdHN0YXR1cyA9IFxcXCJva2F5XFxcIjtcXG4rXFx0Zmxhc2hAMCB7XFxuK1xcdFxcdGNvbXBhdGlibGUgPSBcXFwibWljcm9uLG10MjVxdTAyZ1xcXCIsIFxcXCJqZWRlYyxzcGktbm9yXFxcIjtcXG4rXFx0XFx0cmVnID0gXFx1MDAzYzBcXHUwMDNlO1xcbitcXHRcXHRzcGktbWF4LWZyZXF1ZW5jeSA9IFxcdTAwM2MxMDAwMDAwMDBcXHUwMDNlO1xcbitcXHRcXHRtMjVwLGZhc3QtcmVhZDtcXG4rXFx0XFx0Y2RucyxyZWFkLWRlbGF5ID0gXFx1MDAzYzJcXHUwMDNlO1xcbitcXHRcXHRjZG5zLHRzaHNsLW5zID0gXFx1MDAzYzUwXFx1MDAzZTtcXG4rXFx0XFx0Y2Rucyx0c2QyZC1ucyA9IFxcdTAwM2M1MFxcdTAwM2U7XFxuK1xcdFxcdGNkbnMsdGNoc2gtbnMgPSBcXHUwMDNjNFxcdTAwM2U7XFxuK1xcdFxcdGNkbnMsdHNsY2gtbnMgPSBcXHUwMDNjNFxcdTAwM2U7XFxuK1xcdFxcdHNwaS10eC1idXMtd2lkdGggPSBcXHUwMDNjNFxcdTAwM2U7XFxuK1xcdFxcdHNwaS1yeC1idXMtd2lkdGggPSBcXHUwMDNjNFxcdTAwM2U7XFxuK1xcbitcXHRcXHRwYXJ0aXRpb25zIHtcXG4rXFx0XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJmaXhlZC1wYXJ0aXRpb25zXFxcIjtcXG4rXFx0XFx0XFx0I2FkZHJlc3MtY2VsbHMgPSBcXHUwMDNjMVxcdTAwM2U7XFxuK1xcdFxcdFxcdCNzaXplLWNlbGxzID0gXFx1MDAzYzFcXHUwMDNlO1xcbitcXG4rXFx0XFx0XFx0cXNwaV9ib290OiBwYXJ0aXRpb25AMCB7XFxuK1xcdFxcdFxcdFxcdGxhYmVsID0gXFxcInUtYm9vdFxcXCI7XFxuK1xcdFxcdFxcdFxcdHJlZyA9IFxcdTAwM2MweDAgMHgwNDIwMDAwMFxcdTAwM2U7XFxuK1xcdFxcdFxcdH07XFxuK1xcbitcXHRcXHRcXHRyb290OiBwYXJ0aXRpb25ANDIwMDAwMCB7XFxuK1xcdFxcdFxcdFxcdGxhYmVsID0gXFxcInJvb3RcXFwiO1xcbitcXHRcXHRcXHRcXHRyZWcgPSBcXHUwMDNjMHgwNDIwMDAwMCAweDBiZTAwMDAwXFx1MDAzZTtcXG4rXFx0XFx0XFx0fTtcXG4rXFx0XFx0fTtcXG4rXFx0fTtcXG4rfTtcXG4rXFxuK1xcdTAwMjZ1YXJ0MCB7XFxuK1xcdHN0YXR1cyA9IFxcXCJva2F5XFxcIjtcXG4rfTtcXG4rXFxuK1xcdTAwMjZ1c2IwIHtcXG4rXFx0c3RhdHVzID0gXFxcIm9rYXlcXFwiO1xcbitcXHRkaXNhYmxlLW92ZXItY3VycmVudDtcXG4rfTtcXG4rXFxuK1xcdTAwMjZ3YXRjaGRvZzAge1xcbitcXHRzdGF0dXMgPSBcXFwib2theVxcXCI7XFxuK307XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuY1xcbmluZGV4IDFkN2YwYTU3ZDI4ODkuLjA2MzIxMDViNDIwZjEgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jXFxuQEAgLTY5LDEyICs2OSwxMyBAQCBzdHJ1Y3Qgc29jZnBnYV9kd21hYyB7XFxuIFxcdHZvaWQgX19pb21lbSAqdHNlX3Bjc19iYXNlO1xcbiBcXHR2b2lkIF9faW9tZW0gKnNnbWlpX2FkYXB0ZXJfYmFzZTtcXG4gXFx0Ym9vbCBmMmhfcHRwX3JlZl9jbGs7XFxuK1xcdHBoeV9pbnRlcmZhY2VfdCBtYWNfaW50ZXJmYWNlO1xcbiBcXHRjb25zdCBzdHJ1Y3Qgc29jZnBnYV9kd21hY19vcHMgKm9wcztcXG4gfTtcXG4gXFxuIHN0YXRpYyBwaHlfaW50ZXJmYWNlX3Qgc29jZnBnYV9nZXRfcGxhdF9waHltb2RlKHN0cnVjdCBzb2NmcGdhX2R3bWFjICpkd21hYylcXG4ge1xcbi1cXHRyZXR1cm4gZHdtYWMtXFx1MDAzZXBsYXRfZGF0LVxcdTAwM2VwaHlfaW50ZXJmYWNlO1xcbitcXHRyZXR1cm4gZHdtYWMtXFx1MDAzZW1hY19pbnRlcmZhY2U7XFxuIH1cXG4gXFxuIHN0YXRpYyB2b2lkIHNvY2ZwZ2Ffc2dtaWlfY29uZmlnKHN0cnVjdCBzb2NmcGdhX2R3bWFjICpkd21hYywgYm9vbCBlbmFibGUpXFxuQEAgLTY1MCw2ICs2NTEsOCBAQCBzdGF0aWMgaW50IHNvY2ZwZ2FfZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4gXFx0cGxhdF9kYXQtXFx1MDAzZXBjc19leGl0ID0gc29jZnBnYV9kd21hY19wY3NfZXhpdDtcXG4gXFx0cGxhdF9kYXQtXFx1MDAzZXNlbGVjdF9wY3MgPSBzb2NmcGdhX2R3bWFjX3NlbGVjdF9wY3M7XFxuIFxcbitcXHRkd21hYy1cXHUwMDNlbWFjX2ludGVyZmFjZSA9IHBsYXRfZGF0LVxcdTAwM2VwaHlfaW50ZXJmYWNlO1xcbitcXG4gXFx0b3BzLVxcdTAwM2VzZXR1cF9wbGF0X2RhdChkd21hYyk7XFxuIFxcbiBcXHRyZXR1cm4gZGV2bV9zdG1tYWNfcGx0ZnJfcHJvYmUocGRldiwgcGxhdF9kYXQsIFxcdTAwMjZzdG1tYWNfcmVzKTtcXG5AQCAtNjcwLDEwICs2NzMsMjggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzb2NmcGdhX2R3bWFjX29wcyBzb2NmcGdhX2FnaWxleDVfb3BzID0ge1xcbiBcXHQuc2V0dXBfcGxhdF9kYXQgPSBzb2NmcGdhX2FnaWxleDVfc2V0dXBfcGxhdF9kYXQsXFxuIH07XFxuIFxcbitzdGF0aWMgdm9pZCBzb2NmcGdhX2FnaWxleDVfdHNuX2dtYWNfc2V0dXBfcGxhdF9kYXQoc3RydWN0IHNvY2ZwZ2FfZHdtYWMgKmR3bWFjKVxcbit7XFxuK1xcdHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQgPSBkd21hYy1cXHUwMDNlcGxhdF9kYXQ7XFxuK1xcbitcXHRzb2NmcGdhX2FnaWxleDVfc2V0dXBfcGxhdF9kYXQoZHdtYWMpO1xcbitcXG4rXFx0LyogRlBHQSBjb252ZXJ0ZXIgc3VwcGxpZXMgUkdNSUkgZGVsYXlzOyBNQUMgdXNlcyBHTUlJLCBQSFkgZ2V0cyBwbGFpbiBSR01JSSAqL1xcbitcXHRkd21hYy1cXHUwMDNlbWFjX2ludGVyZmFjZSA9IFBIWV9JTlRFUkZBQ0VfTU9ERV9HTUlJO1xcbitcXHRpZiAocGh5X2ludGVyZmFjZV9tb2RlX2lzX3JnbWlpKHBsYXRfZGF0LVxcdTAwM2VwaHlfaW50ZXJmYWNlKSlcXG4rXFx0XFx0cGxhdF9kYXQtXFx1MDAzZXBoeV9pbnRlcmZhY2UgPSBQSFlfSU5URVJGQUNFX01PREVfUkdNSUk7XFxuK31cXG4rXFxuK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc29jZnBnYV9kd21hY19vcHMgc29jZnBnYV9hZ2lsZXg1X3Rzbl9nbWFjX29wcyA9IHtcXG4rXFx0LnNldF9waHlfbW9kZSA9IHNvY2ZwZ2FfZ2VuMTBfc2V0X3BoeV9tb2RlLFxcbitcXHQuc2V0dXBfcGxhdF9kYXQgPSBzb2NmcGdhX2FnaWxleDVfdHNuX2dtYWNfc2V0dXBfcGxhdF9kYXQsXFxuK307XFxuK1xcbiBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBzb2NmcGdhX2R3bWFjX21hdGNoW10gPSB7XFxuIFxcdHsgLmNvbXBhdGlibGUgPSBcXFwiYWx0cixzb2NmcGdhLXN0bW1hY1xcXCIsIC5kYXRhID0gXFx1MDAyNnNvY2ZwZ2FfZ2VuNV9vcHMgfSxcXG4gXFx0eyAuY29tcGF0aWJsZSA9IFxcXCJhbHRyLHNvY2ZwZ2Etc3RtbWFjLWExMC1zMTBcXFwiLCAuZGF0YSA9IFxcdTAwMjZzb2NmcGdhX2dlbjEwX29wcyB9LFxcbiBcXHR7IC5jb21wYXRpYmxlID0gXFxcImFsdHIsc29jZnBnYS1zdG1tYWMtYWdpbGV4NVxcXCIsIC5kYXRhID0gXFx1MDAyNnNvY2ZwZ2FfYWdpbGV4NV9vcHMgfSxcXG4rXFx0eyAuY29tcGF0aWJsZSA9IFxcXCJhbHRyLHNvY2ZwZ2Etc3RtbWFjLWFnaWxleDUtdHNuXFxcIiwgLmRhdGEgPSBcXHUwMDI2c29jZnBnYV9hZ2lsZXg1X3Rzbl9nbWFjX29wcyB9LFxcbiBcXHR7IH1cXG4gfTtcXG4gTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgc29jZnBnYV9kd21hY19tYXRjaCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE3VDAzOjIwOjIyLjc0NzIxMjYwMloiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjE5Mjk5NTAwMzE3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgbmV3IGRldmljZSB0cmVlIGNvbXBhdGlibGUgc3RyaW5nIGFuZCBtaW5vciBwcm9iZS10aW1lIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBBbHRlcmEgU09DRlBHQSBEV01BQyBkcml2ZXIuIFRoaXMgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVyIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAobGlrZSBRRU1VL0dDRSkgdXNlZCBmb3IgZnV6emluZy4gRnVydGhlcm1vcmUsIHRoZSBjaGFuZ2VzIGFyZSB0cml2aWFsIGFzc2lnbm1lbnRzIGR1cmluZyBkZXZpY2UgcHJvYmUgYW5kIGRvIG5vdCBpbnRyb2R1Y2UgYW55IGNvbXBsZXggb3IgdXNlci1yZWFjaGFibGUgbG9naWMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA4NjRhZDQ0NjY5ZjNhN2IxMjZkNTQ4ZmVlYWY5Y2Y2MmNjZGE0MTZiXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBBdWcgMTcgMDM6MjA6MjEgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL2FsdGVyYS55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9hbHRlcmEueWFtbFxuaW5kZXggMzAzMGNmNDZmZTc0Yy4uZTQzMTQ2OWE3MTc1MyAxMDA2NDRcbi0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vYWx0ZXJhLnlhbWxcbisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vYWx0ZXJhLnlhbWxcbkBAIC0xMTQsNiArMTE0LDcgQEAgcHJvcGVydGllczpcbiAgICAgICAgICAgICAgIC0gaW50ZWwsc29jZnBnYS1hZ2lsZXg1LXNvY2RrLWRlYnVnXG4gICAgICAgICAgICAgICAtIGludGVsLHNvY2ZwZ2EtYWdpbGV4NS1zb2Nkay1tb2R1bGFyXG4gICAgICAgICAgICAgICAtIGludGVsLHNvY2ZwZ2EtYWdpbGV4NS1zb2Nkay1uYW5kXG4rICAgICAgICAgICAgICAtIGludGVsLHNvY2ZwZ2EtYWdpbGV4NS1zb2Nkay10c24tY2ZnMlxuICAgICAgICAgICAtIGNvbnN0OiBpbnRlbCxzb2NmcGdhLWFnaWxleDVcbiBcbiAgICAgICAtIGRlc2NyaXB0aW9uOiBBZ2lsZXg3MiBib2FyZHNcbmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sXG5pbmRleCA2MzA4NGY3NjIzNzM4Li43ZGI2YTcxMDI5OTQzIDEwMDY0NFxuLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbHRyLHNvY2ZwZ2Etc3RtbWFjLnlhbWxcbisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sXG5AQCAtMjQsNiArMjQsNyBAQCBzZWxlY3Q6XG4gICAgICAgICAgIC0gYWx0cixzb2NmcGdhLXN0bW1hY1xuICAgICAgICAgICAtIGFsdHIsc29jZnBnYS1zdG1tYWMtYTEwLXMxMFxuICAgICAgICAgICAtIGFsdHIsc29jZnBnYS1zdG1tYWMtYWdpbGV4NVxuKyAgICAgICAgICAtIGFsdHIsc29jZnBnYS1zdG1tYWMtYWdpbGV4NS10c25cbiBcbiAgIHJlcXVpcmVkOlxuICAgICAtIGNvbXBhdGlibGVcbkBAIC00Niw2ICs0Nyw5IEBAIHByb3BlcnRpZXM6XG4gICAgICAgLSBpdGVtczpcbiAgICAgICAgICAgLSBjb25zdDogYWx0cixzb2NmcGdhLXN0bW1hYy1hZ2lsZXg1XG4gICAgICAgICAgIC0gY29uc3Q6IHNucHMsZHd4Z21hYy0yLjEwXG4rICAgICAgLSBpdGVtczpcbisgICAgICAgICAgLSBjb25zdDogYWx0cixzb2NmcGdhLXN0bW1hYy1hZ2lsZXg1LXRzblxuKyAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3eGdtYWMtMi4xMFxuIFxuICAgY2xvY2tzOlxuICAgICBtaW5JdGVtczogMVxuZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvTWFrZWZpbGUgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL2ludGVsL01ha2VmaWxlXG5pbmRleCAyNzBjNzBmZGYwODRiLi5jZTdjZjNhNjMyNzUzIDEwMDY0NFxuLS0tIGEvYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9NYWtlZmlsZVxuKysrIGIvYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9NYWtlZmlsZVxuQEAgLTgsNiArOCw3IEBAIGR0Yi0kKENPTkZJR19BUkNIX0lOVEVMX1NPQ0ZQR0EpICs9IHNvY2ZwZ2FfYWdpbGV4X242MDAwLmR0YiBcXFxuIFx0XHRcdFx0c29jZnBnYV9hZ2lsZXg1X3NvY2RrXzAxM2IuZHRiIFxcXG4gXHRcdFx0XHRzb2NmcGdhX2FnaWxleDVfc29jZGtfbW9kdWxhci5kdGIgXFxcbiBcdFx0XHRcdHNvY2ZwZ2FfYWdpbGV4NV9zb2Nka19uYW5kLmR0YiBcXFxuK1x0XHRcdFx0c29jZnBnYV9hZ2lsZXg1X3NvY2RrX3Rzbl9jZmcyLmR0YiBcXFxuIFx0XHRcdFx0c29jZnBnYV9hZ2lsZXg3Ml9zb2Nkay5kdGIgXFxcbiBcdFx0XHRcdHNvY2ZwZ2FfYWdpbGV4N21fc29jZGsuZHRiIFxcXG4gXHRcdFx0XHRzb2NmcGdhX241eF9zb2Nkay5kdGJcbmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2Jvb3QvZHRzL2ludGVsL3NvY2ZwZ2FfYWdpbGV4NV9zb2Nka190c25fY2ZnMi5kdHMgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL2ludGVsL3NvY2ZwZ2FfYWdpbGV4NV9zb2Nka190c25fY2ZnMi5kdHNcbm5ldyBmaWxlIG1vZGUgMTAwNjQ0XG5pbmRleCAwMDAwMDAwMDAwMDAwLi45ZDM5Zjg0M2I0MjQwXG4tLS0gL2Rldi9udWxsXG4rKysgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL2ludGVsL3NvY2ZwZ2FfYWdpbGV4NV9zb2Nka190c25fY2ZnMi5kdHNcbkBAIC0wLDAgKzEsMTMwIEBAXG4rLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuKy8qXG4rICogQ29weXJpZ2h0IChDKSAyMDI2LCBBbHRlcmEgQ29ycG9yYXRpb25cbisgKi9cbisjaW5jbHVkZSBcInNvY2ZwZ2FfYWdpbGV4NS5kdHNpXCJcbitcbisvIHtcbitcdG1vZGVsID0gXCJTb0NGUEdBIEFnaWxleDUgU29DREsgVFNOIENvbmZpZzJcIjtcbitcdGNvbXBhdGlibGUgPSBcImludGVsLHNvY2ZwZ2EtYWdpbGV4NS1zb2Nkay10c24tY2ZnMlwiLCBcImludGVsLHNvY2ZwZ2EtYWdpbGV4NVwiO1xuK1xuK1x0YWxpYXNlcyB7XG4rXHRcdHNlcmlhbDAgPSBcdTAwMjZ1YXJ0MDtcbitcdFx0ZXRoZXJuZXQxID0gXHUwMDI2Z21hYzE7XG4rXHRcdGV0aGVybmV0MiA9IFx1MDAyNmdtYWMyO1xuK1x0fTtcbitcbitcdGNob3NlbiB7XG4rXHRcdHN0ZG91dC1wYXRoID0gXCJzZXJpYWwwOjExNTIwMG44XCI7XG4rXHR9O1xuK1xuK1x0bGVkcyB7XG4rXHRcdGNvbXBhdGlibGUgPSBcImdwaW8tbGVkc1wiO1xuK1xuK1x0XHRsZWQtMCB7XG4rXHRcdFx0bGFiZWwgPSBcImhwc19sZWQwXCI7XG4rXHRcdFx0Z3Bpb3MgPSBcdTAwM2NcdTAwMjZwb3J0YSAxMSBHUElPX0FDVElWRV9ISUdIXHUwMDNlO1xuK1x0XHR9O1xuK1xuK1x0fTtcbitcbitcdG1lbW9yeUA4MDAwMDAwMCB7XG4rXHRcdGRldmljZV90eXBlID0gXCJtZW1vcnlcIjtcbitcdFx0LyogV2UgZXhwZWN0IHRoZSBib290bG9hZGVyIHRvIGZpbGwgaW4gdGhlIHJlZyAqL1xuK1x0XHRyZWcgPSBcdTAwM2MweDAgMHg4MDAwMDAwMCAweDAgMHgwXHUwMDNlO1xuK1x0fTtcbit9O1xuK1xuK1x1MDAyNmdwaW8wIHtcbitcdHN0YXR1cyA9IFwib2theVwiO1xuK307XG4rXG4rXHUwMDI2Z3BpbzEge1xuK1x0c3RhdHVzID0gXCJva2F5XCI7XG4rfTtcbitcbitcdTAwMjZnbWFjMSB7XG4rXHRzdGF0dXMgPSBcIm9rYXlcIjtcbitcdGNvbXBhdGlibGUgPSBcImFsdHIsc29jZnBnYS1zdG1tYWMtYWdpbGV4NS10c25cIixcbitcdFx0ICAgICBcInNucHMsZHd4Z21hYy0yLjEwXCI7XG4rXHRwaHktbW9kZSA9IFwicmdtaWktaWRcIjtcbitcdHBoeS1oYW5kbGUgPSBcdTAwM2NcdTAwMjZlbWFjMV9waHkwXHUwMDNlO1xuK1x0bWF4LWZyYW1lLXNpemUgPSBcdTAwM2M5MDAwXHUwMDNlO1xuK1xuK1x0bWRpbzAge1xuK1x0XHQjYWRkcmVzcy1jZWxscyA9IFx1MDAzYzFcdTAwM2U7XG4rXHRcdCNzaXplLWNlbGxzID0gXHUwMDNjMFx1MDAzZTtcbitcdFx0Y29tcGF0aWJsZSA9IFwic25wcyxkd21hYy1tZGlvXCI7XG4rXG4rXHRcdGVtYWMxX3BoeTA6IGV0aGVybmV0LXBoeUAwIHtcbitcdFx0XHRyZWcgPSBcdTAwM2MwXHUwMDNlO1xuK1x0XHR9O1xuK1x0fTtcbit9O1xuK1xuK1x1MDAyNmdtYWMyIHtcbitcdHN0YXR1cyA9IFwib2theVwiO1xuK1x0cGh5LW1vZGUgPSBcInJnbWlpLWlkXCI7XG4rXHRwaHktaGFuZGxlID0gXHUwMDNjXHUwMDI2ZW1hYzJfcGh5MFx1MDAzZTtcbitcdG1heC1mcmFtZS1zaXplID0gXHUwMDNjOTAwMFx1MDAzZTtcbitcbitcdG1kaW8wIHtcbitcdFx0I2FkZHJlc3MtY2VsbHMgPSBcdTAwM2MxXHUwMDNlO1xuK1x0XHQjc2l6ZS1jZWxscyA9IFx1MDAzYzBcdTAwM2U7XG4rXHRcdGNvbXBhdGlibGUgPSBcInNucHMsZHdtYWMtbWRpb1wiO1xuK1xuK1x0XHRlbWFjMl9waHkwOiBldGhlcm5ldC1waHlAMCB7XG4rXHRcdFx0cmVnID0gXHUwMDNjMFx1MDAzZTtcbitcdFx0fTtcbitcdH07XG4rfTtcbitcbitcdTAwMjZvc2MxIHtcbitcdGNsb2NrLWZyZXF1ZW5jeSA9IFx1MDAzYzI1MDAwMDAwXHUwMDNlO1xuK307XG4rXG4rXHUwMDI2cXNwaSB7XG4rXHRzdGF0dXMgPSBcIm9rYXlcIjtcbitcdGZsYXNoQDAge1xuK1x0XHRjb21wYXRpYmxlID0gXCJtaWNyb24sbXQyNXF1MDJnXCIsIFwiamVkZWMsc3BpLW5vclwiO1xuK1x0XHRyZWcgPSBcdTAwM2MwXHUwMDNlO1xuK1x0XHRzcGktbWF4LWZyZXF1ZW5jeSA9IFx1MDAzYzEwMDAwMDAwMFx1MDAzZTtcbitcdFx0bTI1cCxmYXN0LXJlYWQ7XG4rXHRcdGNkbnMscmVhZC1kZWxheSA9IFx1MDAzYzJcdTAwM2U7XG4rXHRcdGNkbnMsdHNoc2wtbnMgPSBcdTAwM2M1MFx1MDAzZTtcbitcdFx0Y2Rucyx0c2QyZC1ucyA9IFx1MDAzYzUwXHUwMDNlO1xuK1x0XHRjZG5zLHRjaHNoLW5zID0gXHUwMDNjNFx1MDAzZTtcbitcdFx0Y2Rucyx0c2xjaC1ucyA9IFx1MDAzYzRcdTAwM2U7XG4rXHRcdHNwaS10eC1idXMtd2lkdGggPSBcdTAwM2M0XHUwMDNlO1xuK1x0XHRzcGktcngtYnVzLXdpZHRoID0gXHUwMDNjNFx1MDAzZTtcbitcbitcdFx0cGFydGl0aW9ucyB7XG4rXHRcdFx0Y29tcGF0aWJsZSA9IFwiZml4ZWQtcGFydGl0aW9uc1wiO1xuK1x0XHRcdCNhZGRyZXNzLWNlbGxzID0gXHUwMDNjMVx1MDAzZTtcbitcdFx0XHQjc2l6ZS1jZWxscyA9IFx1MDAzYzFcdTAwM2U7XG4rXG4rXHRcdFx0cXNwaV9ib290OiBwYXJ0aXRpb25AMCB7XG4rXHRcdFx0XHRsYWJlbCA9IFwidS1ib290XCI7XG4rXHRcdFx0XHRyZWcgPSBcdTAwM2MweDAgMHgwNDIwMDAwMFx1MDAzZTtcbitcdFx0XHR9O1xuK1xuK1x0XHRcdHJvb3Q6IHBhcnRpdGlvbkA0MjAwMDAwIHtcbitcdFx0XHRcdGxhYmVsID0gXCJyb290XCI7XG4rXHRcdFx0XHRyZWcgPSBcdTAwM2MweDA0MjAwMDAwIDB4MGJlMDAwMDBcdTAwM2U7XG4rXHRcdFx0fTtcbitcdFx0fTtcbitcdH07XG4rfTtcbitcbitcdTAwMjZ1YXJ0MCB7XG4rXHRzdGF0dXMgPSBcIm9rYXlcIjtcbit9O1xuK1xuK1x1MDAyNnVzYjAge1xuK1x0c3RhdHVzID0gXCJva2F5XCI7XG4rXHRkaXNhYmxlLW92ZXItY3VycmVudDtcbit9O1xuK1xuK1x1MDAyNndhdGNoZG9nMCB7XG4rXHRzdGF0dXMgPSBcIm9rYXlcIjtcbit9O1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuY1xuaW5kZXggMWQ3ZjBhNTdkMjg4OS4uMDYzMjEwNWI0MjBmMSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jXG5AQCAtNjksMTIgKzY5LDEzIEBAIHN0cnVjdCBzb2NmcGdhX2R3bWFjIHtcbiBcdHZvaWQgX19pb21lbSAqdHNlX3Bjc19iYXNlO1xuIFx0dm9pZCBfX2lvbWVtICpzZ21paV9hZGFwdGVyX2Jhc2U7XG4gXHRib29sIGYyaF9wdHBfcmVmX2NsaztcbitcdHBoeV9pbnRlcmZhY2VfdCBtYWNfaW50ZXJmYWNlO1xuIFx0Y29uc3Qgc3RydWN0IHNvY2ZwZ2FfZHdtYWNfb3BzICpvcHM7XG4gfTtcbiBcbiBzdGF0aWMgcGh5X2ludGVyZmFjZV90IHNvY2ZwZ2FfZ2V0X3BsYXRfcGh5bW9kZShzdHJ1Y3Qgc29jZnBnYV9kd21hYyAqZHdtYWMpXG4ge1xuLVx0cmV0dXJuIGR3bWFjLVx1MDAzZXBsYXRfZGF0LVx1MDAzZXBoeV9pbnRlcmZhY2U7XG4rXHRyZXR1cm4gZHdtYWMtXHUwMDNlbWFjX2ludGVyZmFjZTtcbiB9XG4gXG4gc3RhdGljIHZvaWQgc29jZnBnYV9zZ21paV9jb25maWcoc3RydWN0IHNvY2ZwZ2FfZHdtYWMgKmR3bWFjLCBib29sIGVuYWJsZSlcbkBAIC02NTAsNiArNjUxLDggQEAgc3RhdGljIGludCBzb2NmcGdhX2R3bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4gXHRwbGF0X2RhdC1cdTAwM2VwY3NfZXhpdCA9IHNvY2ZwZ2FfZHdtYWNfcGNzX2V4aXQ7XG4gXHRwbGF0X2RhdC1cdTAwM2VzZWxlY3RfcGNzID0gc29jZnBnYV9kd21hY19zZWxlY3RfcGNzO1xuIFxuK1x0ZHdtYWMtXHUwMDNlbWFjX2ludGVyZmFjZSA9IHBsYXRfZGF0LVx1MDAzZXBoeV9pbnRlcmZhY2U7XG4rXG4gXHRvcHMtXHUwMDNlc2V0dXBfcGxhdF9kYXQoZHdtYWMpO1xuIFxuIFx0cmV0dXJuIGRldm1fc3RtbWFjX3BsdGZyX3Byb2JlKHBkZXYsIHBsYXRfZGF0LCBcdTAwMjZzdG1tYWNfcmVzKTtcbkBAIC02NzAsMTAgKzY3MywyOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHNvY2ZwZ2FfZHdtYWNfb3BzIHNvY2ZwZ2FfYWdpbGV4NV9vcHMgPSB7XG4gXHQuc2V0dXBfcGxhdF9kYXQgPSBzb2NmcGdhX2FnaWxleDVfc2V0dXBfcGxhdF9kYXQsXG4gfTtcbiBcbitzdGF0aWMgdm9pZCBzb2NmcGdhX2FnaWxleDVfdHNuX2dtYWNfc2V0dXBfcGxhdF9kYXQoc3RydWN0IHNvY2ZwZ2FfZHdtYWMgKmR3bWFjKVxuK3tcbitcdHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQgPSBkd21hYy1cdTAwM2VwbGF0X2RhdDtcbitcbitcdHNvY2ZwZ2FfYWdpbGV4NV9zZXR1cF9wbGF0X2RhdChkd21hYyk7XG4rXG4rXHQvKiBGUEdBIGNvbnZlcnRlciBzdXBwbGllcyBSR01JSSBkZWxheXM7IE1BQyB1c2VzIEdNSUksIFBIWSBnZXRzIHBsYWluIFJHTUlJICovXG4rXHRkd21hYy1cdTAwM2VtYWNfaW50ZXJmYWNlID0gUEhZX0lOVEVSRkFDRV9NT0RFX0dNSUk7XG4rXHRpZiAocGh5X2ludGVyZmFjZV9tb2RlX2lzX3JnbWlpKHBsYXRfZGF0LVx1MDAzZXBoeV9pbnRlcmZhY2UpKVxuK1x0XHRwbGF0X2RhdC1cdTAwM2VwaHlfaW50ZXJmYWNlID0gUEhZX0lOVEVSRkFDRV9NT0RFX1JHTUlJO1xuK31cbitcbitzdGF0aWMgY29uc3Qgc3RydWN0IHNvY2ZwZ2FfZHdtYWNfb3BzIHNvY2ZwZ2FfYWdpbGV4NV90c25fZ21hY19vcHMgPSB7XG4rXHQuc2V0X3BoeV9tb2RlID0gc29jZnBnYV9nZW4xMF9zZXRfcGh5X21vZGUsXG4rXHQuc2V0dXBfcGxhdF9kYXQgPSBzb2NmcGdhX2FnaWxleDVfdHNuX2dtYWNfc2V0dXBfcGxhdF9kYXQsXG4rfTtcbitcbiBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBzb2NmcGdhX2R3bWFjX21hdGNoW10gPSB7XG4gXHR7IC5jb21wYXRpYmxlID0gXCJhbHRyLHNvY2ZwZ2Etc3RtbWFjXCIsIC5kYXRhID0gXHUwMDI2c29jZnBnYV9nZW41X29wcyB9LFxuIFx0eyAuY29tcGF0aWJsZSA9IFwiYWx0cixzb2NmcGdhLXN0bW1hYy1hMTAtczEwXCIsIC5kYXRhID0gXHUwMDI2c29jZnBnYV9nZW4xMF9vcHMgfSxcbiBcdHsgLmNvbXBhdGlibGUgPSBcImFsdHIsc29jZnBnYS1zdG1tYWMtYWdpbGV4NVwiLCAuZGF0YSA9IFx1MDAyNnNvY2ZwZ2FfYWdpbGV4NV9vcHMgfSxcbitcdHsgLmNvbXBhdGlibGUgPSBcImFsdHIsc29jZnBnYS1zdG1tYWMtYWdpbGV4NS10c25cIiwgLmRhdGEgPSBcdTAwMjZzb2NmcGdhX2FnaWxleDVfdHNuX2dtYWNfb3BzIH0sXG4gXHR7IH1cbiB9O1xuIE1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHNvY2ZwZ2FfZHdtYWNfbWF0Y2gpO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTdUMDM6MjA6MjIuNzQ3MjE0NDMyWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6OTcwNDk1NDEwNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGdXp6aW5nIEZlYXNpYmlsaXR5IEFzc2Vzc21lbnQ6IEFsdGVyYSBTT0NGUEdBIEFnaWxleDUgVFNOIERXTUFDIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIEkndmUgZ290IHRoaXMgcGF0Y2ggYWRkaW5nIGEgbmV3IGRldmljZSB0cmVlIGJpbmRpbmcgYW5kIGEgY29tcGF0aWJsZSBzdHJpbmcsIGBhbHRyLHNvY2ZwZ2Etc3RtbWFjLWFnaWxleDUtdHNuYCwgdG8gdGhlIGBzdG1tYWNgIGRyaXZlciB3aXRoaW4gYGR3bWFjLXNvY2ZwZ2EuY2AuIFRoZSBwYXRjaCBzZWVtcyB0byBiZSB0b3VjaGluZyB0aGUgYHNvY2ZwZ2FfZ2V0X3BsYXRfcGh5bW9kZWAgZnVuY3Rpb24gYW5kIGEgbmV3IGBzb2NmcGdhX2FnaWxleDVfdHNuX2dtYWNfc2V0dXBfcGxhdF9kYXRgIGFuZCBhbHNvIGBzb2NmcGdhX2FnaWxleDVfdHNuX2dtYWNfb3BzYC4gVGhlIGNvcmUgb2YgdGhlIGRyaXZlciBzZWVtcyB0byBiZSB0aGUgc3RtbWFjIGRyaXZlci5cblxuTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCBpcyB0aGlzIGV2ZW4gKndvcnRoKiBmdXp6aW5nPyBJIG1lYW4sIGBkd21hYy1zb2NmcGdhLmNgIGlzIHRoZSB0YXJnZXQsIHNvIHRoYXQncyB0aGUgYXJlYSBvZiBpbnRlcmVzdC4gSXQncyBhIHBsYXRmb3JtIGRyaXZlciwgc3BlY2lmaWNhbGx5IGZvciBBbHRlcmEgU09DRlBHQSBEV01BQy4gUGxhdGZvcm0gZHJpdmVycyBhcmUgZ2VuZXJhbGx5IHRyaWNreSB0byBmdXp6IGRpcmVjdGx5IGJlY2F1c2UgeW91IHVzdWFsbHkgbmVlZCB0byBpbnN0YW50aWF0ZSB0aGVtIHZpYSB0aGUgZGV2aWNlIHRyZWUuXG5cblRoZSBxdWVzdGlvbiBpcywgY2FuIEkgaW5zdGFudGlhdGUgdGhpcyB0aGluZyBpbiBRRU1VPyBUaGVzZSBTT0Mgc3BlY2lmaWMgcGxhdGZvcm0gZHJpdmVycyBhcmUgbm9ybWFsbHkgYSBwYWluIGluIHRoZSBhc3MgdG8gZnV6eiBkaXJlY3RseS4gU3l6a2FsbGVyICpjYW4qIGluamVjdCBwbGF0Zm9ybSBkZXZpY2VzIHdpdGggYHN5el9kZXZfY3JlYXRlYCwgYnV0IHRoYXQgdXN1YWxseSBuZWVkcyBzcGVjaWZpYyBoYXJkd2FyZSBvciBRRU1VIHN1cHBvcnQuIFNpbmNlIHRoaXMgaXMgYSBnbHVlIGxheWVyIGZvciBgc3RtbWFjYCwgdGhhdCBhbHNvIGluZmx1ZW5jZXMgbXkgdGhpbmtpbmcgaGVyZS5cblxuTGV0J3MgZGl2ZSBkZWVwZXIgaW50byB0aGUgY2hhbmdlcyB0aGVtc2VsdmVzLiBJdCBsb29rcyBsaWtlIHRoZSBtb3N0IHNpZ25pZmljYW50IGNoYW5nZSBpcyBpbiBgc29jZnBnYV9nZXRfcGxhdF9waHltb2RlYCB3aGVyZSBpdCdzIHN3aXRjaGluZyBmcm9tIHVzaW5nIGBkd21hYy1cdTAwM2VwbGF0X2RhdC1cdTAwM2VwaHlfaW50ZXJmYWNlYCB0byBgZHdtYWMtXHUwMDNlbWFjX2ludGVyZmFjZWAuIFRoZW4gd2UgaGF2ZSB0aGUgYHNvY2ZwZ2FfYWdpbGV4NV90c25fZ21hY19zZXR1cF9wbGF0X2RhdGAgd2hpY2ggc2VlbXMgdG8gYmUgbW9zdGx5IHNldHRpbmcgdXAgUEhZIGludGVyZmFjZSBtb2RlcyBkdXJpbmcgcHJvYmUuIFRoZSBjb2RlIGxvb2tzIGxpa2UgdGhpczpcblxuYGBgY1xuc3RhdGljIHBoeV9pbnRlcmZhY2VfdCBzb2NmcGdhX2dldF9wbGF0X3BoeW1vZGUoc3RydWN0IHNvY2ZwZ2FfZHdtYWMgKmR3bWFjKVxue1xuLVx0cmV0dXJuIGR3bWFjLVx1MDAzZXBsYXRfZGF0LVx1MDAzZXBoeV9pbnRlcmZhY2U7XG4rXHRyZXR1cm4gZHdtYWMtXHUwMDNlbWFjX2ludGVyZmFjZTtcbn1cblxuc3RhdGljIHZvaWQgc29jZnBnYV9hZ2lsZXg1X3Rzbl9nbWFjX3NldHVwX3BsYXRfZGF0KHN0cnVjdCBzb2NmcGdhX2R3bWFjICpkd21hYylcbntcblx0c3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdCA9IGR3bWFjLVx1MDAzZXBsYXRfZGF0O1xuXG5cdHNvY2ZwZ2FfYWdpbGV4NV9zZXR1cF9wbGF0X2RhdChkd21hYyk7XG5cblx0LyogRlBHQSBjb252ZXJ0ZXIgc3VwcGxpZXMgUkdNSUkgZGVsYXlzOyBNQUMgdXNlcyBHTUlJLCBQSFkgZ2V0cyBwbGFpbiBSR01JSSAqL1xuXHRkd21hYy1cdTAwM2VtYWNfaW50ZXJmYWNlID0gUEhZX0lOVEVSRkFDRV9NT0RFX0dNSUk7XG5cdGlmIChwaHlfaW50ZXJmYWNlX21vZGVfaXNfcmdtaWkocGxhdF9kYXQtXHUwMDNlcGh5X2ludGVyZmFjZSkpXG5cdFx0cGxhdF9kYXQtXHUwMDNlcGh5X2ludGVyZmFjZSA9IFBIWV9JTlRFUkZBQ0VfTU9ERV9SR01JSTtcbn1cbmBgYFxuXG5UaGUgY2hhbmdlcyBhcmUgaW5jcmVkaWJseSBtaW5pbWFsIC0gbW9zdGx5IGFib3V0IHNldHRpbmcgdXAgUEhZIGludGVyZmFjZSBtb2RlcyBhdCBwcm9iZSB0aW1lLiBUaGUgbmV3IHNldHVwIGZ1bmN0aW9uIG1vZGlmaWVzIHRoZSBQSFkgaW50ZXJmYWNlLCBidXQgaXQncyAqc3BlY2lmaWMqIHRvIHRoZSBBbHRlcmEgU09DRlBHQSBBZ2lsZXg1IFRTTi5cblxuU28sICppcyogaXQgcmVhY2hhYmxlPyBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGF0IGNvbmZpZyBvcHRpb24gZW5hYmxlcyBgZHdtYWMtc29jZnBnYS5jYC4gSSdsbCBzZWFyY2ggZm9yIGBDT05GSUdfRFdNQUNfU09DRlBHQWAuIExldCdzIHNlZSBpZiB0aGlzIGlzIGV2ZW4gY29tcGlsZWQgYnkgZGVmYXVsdC4gSWYgaXQgaXNuJ3QsIHRoZSBjaGFuY2VzIG9mIHRoaXMgYmVpbmcgZWFzaWx5IHJlYWNoYWJsZSB2aWEgZnV6emluZyBhcmUgbG93LlxuXG5cbiIsIklucHV0VG9rZW5zIjo0OTk4LCJPdXRwdXRUb2tlbnMiOjIxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzIyLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTdUMDM6MjA6MzIuNDUyMTcxODE4WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE5ODI5NTQ0NzQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiRFdNQUNfU09DRlBHQVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTE5MT1jb25maWcgRFdNQUNfUzMyXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIwMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjIwMzpjb25maWcgRFdNQUNfU09DRlBHQVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjA0LVxcdHRyaXN0YXRlIFxcXCJTT0NGUEdBIGR3bWFjIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZT0yOD1vYmotJChDT05GSUdfRFdNQUNfUzMyKVxcdFxcdCs9IGR3bWFjLXMzMi5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6Mjk6b2JqLSQoQ09ORklHX0RXTUFDX1NPQ0ZQR0EpXFx0Kz0gZHdtYWMtYWx0ci1zb2NmcGdhLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS0zMC1vYmotJChDT05GSUdfRFdNQUNfU09QSEdPKVxcdCs9IGR3bWFjLXNvcGhnby5vXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE3VDAzOjIwOjM0LjQzNTEzMzkwMloiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjc2MTE1NDUxODcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudDogTm90IFdvcnRoIEZ1enppbmcqKlxuXG5Pa2F5LCBzbyB0aGUgY29uZmlnIGlzIGBEV01BQ19TT0NGUEdBYC4gVGhlIGNoYW5nZXMgYXJlIGlzb2xhdGVkIHRvIHRoZSBwcm9iZSBwYXRoIG9mIHRoZSBBbHRlcmEgU09DRlBHQSBoYXJkd2FyZSBkcml2ZXIuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IHRoZXNlIGtpbmRzIG9mIGhhcmR3YXJlLXNwZWNpZmljIHByb2JlIHBhdGhzLCBlc3BlY2lhbGx5IHRob3NlIGp1c3Qgc2V0dGluZyB1cCBjb25zdGFudHMgYW5kIG5vdCBleHBvc2luZyBuZXcgc3lzY2FsbHMgb3IgY29tcGxleCBsb2dpYywgYXJlbid0IHR5cGljYWxseSBmcnVpdGZ1bCBmb3IgZnV6emluZy4gVGhleSB1c3VhbGx5IGRlcGVuZCBvbiB2ZXJ5IHNwZWNpZmljIGhhcmR3YXJlIG9yIGRldmljZSB0cmVlIG5vZGVzIHRoYXQgeW91IHdvbid0IGZpbmQgaW4gZ2VuZXJpYyB4ODYgVk1zLlxuXG5JIGRpZCByZWNhbGwgdGhhdCBzeXprYWxsZXIgKmNhbiogaGFuZGxlIHNvbWUgcGxhdGZvcm0gZHJpdmVyIGZ1enppbmcgd2l0aCBkZXZpY2UgdHJlZSBvdmVybGF5IGluamVjdGlvbiwgYnV0IGV2ZW4gdGhlbiwgdGhpcyBpcyBzdGlsbCBqdXN0IHRoZSBwcm9iZSBmdW5jdGlvbiwgYW5kIGl0IGlzIGEgdHJpdmlhbCBzZXR1cC5cblxuTGV0IG1lIGJyZWFrIGRvd24gdGhlIGNoYW5nZXM6IHdlIGFyZSBzZXR0aW5nIGEgc2luZ2xlIHZhcmlhYmxlOlxuLSBgc29jZnBnYV9nZXRfcGxhdF9waHltb2RlYCBjaGFuZ2VkIHRvIHJldHVybiBgZHdtYWMtXHUwMDNlbWFjX2ludGVyZmFjZWAuXG4tIGBzb2NmcGdhX2R3bWFjX3Byb2JlYCBzZXRzIGBkd21hYy1cdTAwM2VtYWNfaW50ZXJmYWNlID0gcGxhdF9kYXQtXHUwMDNlcGh5X2ludGVyZmFjZWAuXG4tIGBzb2NmcGdhX2FnaWxleDVfdHNuX2dtYWNfc2V0dXBfcGxhdF9kYXRgIHNldHMgYGR3bWFjLVx1MDAzZW1hY19pbnRlcmZhY2UgPSBQSFlfSU5URVJGQUNFX01PREVfR01JSWAgYW5kIGNoYW5nZXMgYHBsYXRfZGF0LVx1MDAzZXBoeV9pbnRlcmZhY2VgLlxuXG5JdCdzIGEgcmVhbGx5IHNpbXBsZSBjb25maWd1cmF0aW9uIGNoYW5nZSBzcGVjaWZpYyB0byBhIHBhcnRpY3VsYXIgaGFyZHdhcmUgcGxhdGZvcm0uIE5vIGNvbXBsZXggbG9naWMsIHN0YXRlIG1hY2hpbmVzLCBvciBhbnl0aGluZyB1c2VyLWFjY2Vzc2libGUgaXMgaW50cm9kdWNlZCBoZXJlLlxuXG5Jbml0aWFsbHksIEknZCBtYXJrIHRoaXMgYXMgYFdvcnRoRnV6emluZz1mYWxzZWAgZHVlIHRvIGl0cyBuYXR1cmUuXG5cbkhvd2V2ZXIsIGxldCBtZSBxdWlja2x5IHJlLXJlYWQgdGhlIGluc3RydWN0aW9ucy4uLiBPa2F5LCB0aGUgY3JpdGVyaWEgYXJlIHByZXR0eSBjbGVhcjpcblxuKiAgIENvZGUgcGF0aHMgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsIGV2ZW4gd2l0aCBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZS5cbiogICBWZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyB0aGF0IG5lZWQgcGh5c2ljYWwgaGFyZHdhcmUuXG5cblRoaXMgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgU29DIEV0aGVybmV0IE1BQyBkcml2ZXIg4oCTIEFsdGVyYSBTT0NGUEdBLiBJdCByZWxpZXMgb24gdGhlIGRldmljZSB0cmVlLiBJJ20gcHJldHR5IHN1cmUgc3RhbmRhcmQgUUVNVSBkb2Vzbid0IGVtdWxhdGUgQWdpbGV4NSwgYW5kIGV2ZW4gd2l0aCBEVCBpbmplY3Rpb24sIHRoZXNlIGFyZSB0cml2aWFsIHByb2JlLXRpbWUgYXNzaWdubWVudHMuXG5cblllcCwgc3RpbGwgKm5vdCogd29ydGggZnV6emluZy4gSSdsbCByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjY3ODUsIk91dHB1dFRva2VucyI6MTEyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDk5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE3VDAzOjIwOjQyLjA0NjY4MjIwOVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mjg4MDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIG5ldyBkZXZpY2UgdHJlZSBjb21wYXRpYmxlIHN0cmluZyBhbmQgbWlub3IgcHJvYmUtdGltZSBjb25maWd1cmF0aW9uIGZvciB0aGUgQWx0ZXJhIFNPQ0ZQR0EgRFdNQUMgZHJpdmVyLiBUaGlzIGlzIGEgdmVuZG9yLXNwZWNpZmljIGhhcmR3YXJlIGRyaXZlciB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGxpa2UgUUVNVS9HQ0UpIHVzZWQgZm9yIGZ1enppbmcuIEZ1cnRoZXJtb3JlLCB0aGUgY2hhbmdlcyBhcmUgdHJpdmlhbCBhc3NpZ25tZW50cyBkdXJpbmcgZGV2aWNlIHByb2JlIGFuZCBkbyBub3QgaW50cm9kdWNlIGFueSBjb21wbGV4IG9yIHVzZXItcmVhY2hhYmxlIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIG5ldyBkZXZpY2UgdHJlZSBjb21wYXRpYmxlIHN0cmluZyBhbmQgbWlub3IgcHJvYmUtdGltZSBjb25maWd1cmF0aW9uIGZvciB0aGUgQWx0ZXJhIFNPQ0ZQR0EgRFdNQUMgZHJpdmVyLiBUaGlzIGlzIGEgdmVuZG9yLXNwZWNpZmljIGhhcmR3YXJlIGRyaXZlciB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGxpa2UgUUVNVS9HQ0UpIHVzZWQgZm9yIGZ1enppbmcuIEZ1cnRoZXJtb3JlLCB0aGUgY2hhbmdlcyBhcmUgdHJpdmlhbCBhc3NpZ25tZW50cyBkdXJpbmcgZGV2aWNlIHByb2JlIGFuZCBkbyBub3QgaW50cm9kdWNlIGFueSBjb21wbGV4IG9yIHVzZXItcmVhY2hhYmxlIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTdUMDM6MjA6NDIuMDQ2NzE1MjA5WiIsIlNlcSI6NywiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM0MjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },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-workflow7q26w[1] Phase: Running StartedAt: 2026-08-17 03:20:53 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7q26w[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-17 03:20:53 +0000 UTC FinishedAt: 2026-08-17 03:20:57 +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,}