Name: series-workflow9dpw9 Phase: Failed StartedAt: 2026-08-29 20:40:22 +0000 UTC FinishedAt: 2026-08-29 20:42:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9dpw9[0] Phase: Succeeded StartedAt: 2026-08-29 20:40:22 +0000 UTC FinishedAt: 2026-08-29 20:42:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9dpw9[0].run-triage Phase: Succeeded StartedAt: 2026-08-29 20:40:22 +0000 UTC FinishedAt: 2026-08-29 20:42:39 +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+CgkJCTx0ZD4yMDI2LzA4LzI5IDIwOjQyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBtb2RpZmllcyB0aGUgYC5yZW1vdmVgIGNhbGxiYWNrIChgZW5jMjhqNjBfcmVtb3ZlYCkgb2YgdGhlIGVuYzI4ajYwIFNQSSBldGhlcm5ldCBkcml2ZXIgdG8gY2FuY2VsIHBlbmRpbmcgd29yayBpdGVtcyBhbmQgZnJlZSB0eF9za2IgdXBvbiBkZXZpY2UgcmVtb3ZhbC91bmJpbmQuIERyaXZlciByZW1vdmUgY2FsbGJhY2tzIGV4ZWN1dGVkIGR1cmluZyB1bmJpbmRpbmcvdGVhcmRvd24gYXJlIG5vdCB3b3J0aCBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yOSAyMDo0MjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGJjYmZkZGFmNWI4ZDgxN2U2MGM3NTZjMzlmMmVmMjZhMWQ1ZDMyZjJcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IEF1ZyAyOSAyMDo0MjoxMyAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvZW5jMjhqNjAuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9lbmMyOGo2MC5jXG5pbmRleCBkNmM5NDkxNTM3ZTQ3Li5kMTY1NjQwNjBmYmNkIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2VuYzI4ajYwLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9lbmMyOGo2MC5jXG5AQCAtMTYwMiw2ICYjNDM7MTYwMiwxMSBAQCBzdGF0aWMgdm9pZCBlbmMyOGo2MF9yZW1vdmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSlcbiBcbiBcdHVucmVnaXN0ZXJfbmV0ZGV2KHByaXYtXHUwMDNlbmV0ZGV2KTtcbiBcdGZyZWVfaXJxKHNwaS1cdTAwM2VpcnEsIHByaXYpO1xuJiM0MztcdGNhbmNlbF93b3JrX3N5bmMoXHUwMDI2cHJpdi1cdTAwM2V0eF93b3JrKTtcbiYjNDM7XHRjYW5jZWxfd29ya19zeW5jKFx1MDAyNnByaXYtXHUwMDNlc2V0cnhfd29yayk7XG4mIzQzO1x0Y2FuY2VsX3dvcmtfc3luYyhcdTAwMjZwcml2LVx1MDAzZXJlc3RhcnRfd29yayk7XG4mIzQzO1x0aWYgKHByaXYtXHUwMDNldHhfc2tiKVxuJiM0MztcdFx0ZGV2X2tmcmVlX3NrYihwcml2LVx1MDAzZXR4X3NrYik7XG4gXHRmcmVlX25ldGRldihwcml2LVx1MDAzZW5ldGRldik7XG4gfVxuIFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI5IDIwOjQyPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmNvcmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgdGhlIGAucmVtb3ZlYCBjYWxsYmFjayAoYGVuYzI4ajYwX3JlbW92ZWApIG9mIHRoZSBlbmMyOGo2MCBTUEkgZXRoZXJuZXQgZHJpdmVyIHRvIGNhbmNlbCBwZW5kaW5nIHdvcmsgaXRlbXMgYW5kIGZyZWUgdHhfc2tiIHVwb24gZGV2aWNlIHJlbW92YWwvdW5iaW5kLiBEcml2ZXIgcmVtb3ZlIGNhbGxiYWNrcyBleGVjdXRlZCBkdXJpbmcgdW5iaW5kaW5nL3RlYXJkb3duIGFyZSBub3Qgd29ydGggZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBiY2JmZGRhZjViOGQ4MTdlNjBjNzU2YzM5ZjJlZjI2YTFkNWQzMmYyCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFNhdCBBdWcgMjkgMjA6NDI6MTMgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvZW5jMjhqNjAuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9lbmMyOGo2MC5jCmluZGV4IGQ2Yzk0OTE1MzdlNDcuLmQxNjU2NDA2MGZiY2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9lbmMyOGo2MC5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9lbmMyOGo2MC5jCkBAIC0xNjAyLDYgJiM0MzsxNjAyLDExIEBAIHN0YXRpYyB2b2lkIGVuYzI4ajYwX3JlbW92ZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQogCiAJdW5yZWdpc3Rlcl9uZXRkZXYocHJpdi0mZ3Q7bmV0ZGV2KTsKIAlmcmVlX2lycShzcGktJmd0O2lycSwgcHJpdik7CiYjNDM7CWNhbmNlbF93b3JrX3N5bmMoJmFtcDtwcml2LSZndDt0eF93b3JrKTsKJiM0MzsJY2FuY2VsX3dvcmtfc3luYygmYW1wO3ByaXYtJmd0O3NldHJ4X3dvcmspOwomIzQzOwljYW5jZWxfd29ya19zeW5jKCZhbXA7cHJpdi0mZ3Q7cmVzdGFydF93b3JrKTsKJiM0MzsJaWYgKHByaXYtJmd0O3R4X3NrYikKJiM0MzsJCWRldl9rZnJlZV9za2IocHJpdi0mZ3Q7dHhfc2tiKTsKIAlmcmVlX25ldGRldihwcml2LSZndDtuZXRkZXYpOwogfQogCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI5IDIwOjQyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIxNDkKCQkJCQkJCW91dHB1dDogNDcKCQkJCQkJCXRob3VnaHRzOiAzMjgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBQYXRjaCBmb3IgRnV6emluZyBTdWl0YWJpbGl0eSoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHRvdWNoaW5nIGBlbmMyOGo2MF9yZW1vdmVgIHdpdGhpbiB0aGUgYGVuYzI4ajYwLmNgIGZpbGUgaW4gdGhlIG5ldHdvcmsgZHJpdmVycy4gUmlnaHQgYXdheSwgSSBuZWVkIHRvIGRldGVybWluZSBpZiB0aGlzIGNoYW5nZSB3YXJyYW50cyBmdXp6aW5nLiBMZXQmIzM5O3Mgc2VlLi4uIEkmIzM5O3ZlIGdvdCB0aGUgcnVsZXNldCBpbiBteSBoZWFkLCBidXQgSSYjMzk7bGwgZG91YmxlLWNoZWNrIGl0LiAmIzM0O1JldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYCBpZiB0aGUgcGF0Y2ggb25seSBjb250YWlucyBtb2RpZmljYXRpb25zIHRvIGRvY3VtZW50YXRpb24sIEtjb25maWcsIGNvbW1lbnRzLi4uIHB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMgbGlrZSBsb2dnaW5nLi4uIGNoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHdpdGhvdXQgZnVuY3Rpb25hbCBpbXBhY3QuLi4gdW5yZWFjaGFibGUgY29kZSBwYXRocyBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuLi4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoL1NtYXJ0TklDL0dQVSBkcml2ZXIgY29kZSByZXF1aXJpbmcgc3BlY2lmaWMgaGFyZHdhcmUuLi4gb3IgZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyBsaWtlIGAucmVtb3ZlYCwgYC5zaHV0ZG93bmAsIG9yIGBwY2lfdW5yZWdpc3Rlcl9kcml2ZXJgIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIGhvdC11bnBsdWcgb3IgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLiYjMzQ7CgpSaWdodCwgSSYjMzk7bSBwcmV0dHkgZmFtaWxpYXIgd2l0aCB0aGUgbnVhbmNlcyBvZiB0aGVzZSBndWlkZWxpbmVzLiBOb3csIGxldCYjMzk7cyBhY3R1YWxseSAqbG9vayogYXQgdGhlIGNvZGUuIEkgbmVlZCB0byBnZXQgYSBzZW5zZSBvZiB3aGF0IGBlbmMyOGo2MF9yZW1vdmVgIGRvZXMuIExldCBtZSBuYXZpZ2F0ZSB0byBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2VuYzI4ajYwLmNgIGFuZCBzcGVjaWZpY2FsbHkgcGlucG9pbnQgdGhlIHNlY3Rpb24gYXJvdW5kIGxpbmUgMTYwMiDigJMgdGhhdCBzaG91bGQgYmUgd2hlcmUgYGVuYzI4ajYwX3JlbW92ZWAgcmVzaWRlcy4gSSBuZWVkIHRvIHNlZSBpZiB0aGlzIGlzIGp1c3QgYSBjbGVhbnVwIGZ1bmN0aW9uIHRoYXQgZG9lc24mIzM5O3Qgc2lnbmlmaWNhbnRseSBhbHRlciB0aGUgY29yZSBmdW5jdGlvbmFsaXR5IG9yIGlmIGl0IGludHJvZHVjZXMgYW55dGhpbmcgaW50ZXJlc3RpbmcgZm9yIGZ1enppbmcuIElmIGl0JiMzOTtzIGp1c3QgYSBzdGFuZGFyZCByZW1vdmFsIGNhbGxiYWNrLCB0aGF0IHdpbGwgbGlrZWx5IHRyaWdnZXIgYSAmIzM0O25vIGZ1enppbmcmIzM0OyBmbGFnLiBJZiBpdCYjMzk7cyBkb2luZyBzb21ldGhpbmcgbW9yZSBzdWJzdGFudGlhbCwgdGhlbiB0aGVyZSBjb3VsZCBiZSBwb3RlbnRpYWwgZm9yIGV4cGxvaXRhdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yOSAyMDo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9lbmMyOGo2MC5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMTU5MCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA0MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsxNTkwOlx0XG4xNTkxOlx0ZXJyb3JfcmVnaXN0ZXI6XG4xNTkyOlx0XHRmcmVlX2lycShzcGktXHUwMDNlaXJxLCBwcml2KTtcbjE1OTM6XHRlcnJvcl9pcnE6XG4xNTk0Olx0XHRmcmVlX25ldGRldihkZXYpO1xuMTU5NTpcdGVycm9yX2FsbG9jOlxuMTU5NjpcdFx0cmV0dXJuIHJldDtcbjE1OTc6XHR9XG4xNTk4Olx0XG4xNTk5Olx0c3RhdGljIHZvaWQgZW5jMjhqNjBfcmVtb3ZlKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpXG4xNjAwOlx0e1xuMTYwMTpcdFx0c3RydWN0IGVuYzI4ajYwX25ldCAqcHJpdiA9IHNwaV9nZXRfZHJ2ZGF0YShzcGkpO1xuMTYwMjpcdFxuMTYwMzpcdFx0dW5yZWdpc3Rlcl9uZXRkZXYocHJpdi1cdTAwM2VuZXRkZXYpO1xuMTYwNDpcdFx0ZnJlZV9pcnEoc3BpLVx1MDAzZWlycSwgcHJpdik7XG4xNjA1Olx0XHRjYW5jZWxfd29ya19zeW5jKFx1MDAyNnByaXYtXHUwMDNldHhfd29yayk7XG4xNjA2Olx0XHRjYW5jZWxfd29ya19zeW5jKFx1MDAyNnByaXYtXHUwMDNlc2V0cnhfd29yayk7XG4xNjA3Olx0XHRjYW5jZWxfd29ya19zeW5jKFx1MDAyNnByaXYtXHUwMDNlcmVzdGFydF93b3JrKTtcbjE2MDg6XHRcdGlmIChwcml2LVx1MDAzZXR4X3NrYilcbjE2MDk6XHRcdFx0ZGV2X2tmcmVlX3NrYihwcml2LVx1MDAzZXR4X3NrYik7XG4xNjEwOlx0XHRmcmVlX25ldGRldihwcml2LVx1MDAzZW5ldGRldik7XG4xNjExOlx0fVxuMTYxMjpcdFxuMTYxMzpcdHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGVuYzI4ajYwX2R0X2lkc1tdID0ge1xuMTYxNDpcdFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O21pY3JvY2hpcCxlbmMyOGo2MFwmIzM0OyB9LFxuMTYxNTpcdFx0eyAvKiBzZW50aW5lbCAqLyB9XG4xNjE2Olx0fTtcbjE2MTc6XHRNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBlbmMyOGo2MF9kdF9pZHMpO1xuMTYxODpcdFxuMTYxOTpcdHN0YXRpYyBzdHJ1Y3Qgc3BpX2RyaXZlciBlbmMyOGo2MF9kcml2ZXIgPSB7XG4xNjIwOlx0XHQuZHJpdmVyID0ge1xuMTYyMTpcdFx0XHQubmFtZSA9IERSVl9OQU1FLFxuMTYyMjpcdFx0XHQub2ZfbWF0Y2hfdGFibGUgPSBlbmMyOGo2MF9kdF9pZHMsXG4xNjIzOlx0XHQgfSxcbjE2MjQ6XHRcdC5wcm9iZSA9IGVuYzI4ajYwX3Byb2JlLFxuMTYyNTpcdFx0LnJlbW92ZSA9IGVuYzI4ajYwX3JlbW92ZSxcbjE2MjY6XHR9O1xuMTYyNzpcdG1vZHVsZV9zcGlfZHJpdmVyKGVuYzI4ajYwX2RyaXZlcik7XG4xNjI4Olx0XG4xNjI5Olx0TU9EVUxFX0RFU0NSSVBUSU9OKERSVl9OQU1FIFwmIzM0OyBldGhlcm5ldCBkcml2ZXJcJiMzNDspO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI5IDIwOjQyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM1MDIKCQkJCQkJCW91dHB1dDogOTUKCQkJCQkJCXRob3VnaHRzOiA0ODEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgUGF0Y2gmIzM5O3MgRnV6emluZyBQb3RlbnRpYWwqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gV2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBhIHBhdGNoIHRoYXQgdG91Y2hlcyB0aGUgYGVuYzI4ajYwYCBkcml2ZXIsIHNwZWNpZmljYWxseSB0aGUgYC5yZW1vdmVgIGNhbGxiYWNrLCBgZW5jMjhqNjBfcmVtb3ZlYC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsICYjMzQ7SXMgdGhpcyBmdXp6YWJsZSwgb3IgaXMgaXQgYSBjbGVhbnVwIHJvdXRpbmUgdGhhdCYjMzk7cyBub3QgcmVsZXZhbnQgdG8gcnVudGltZSBmdXp6aW5nPyYjMzQ7CgpGaXJzdCwgSSBuZWVkIHRvIGNvbmZpcm0gdGhhdCBgZW5jMjhqNjBgIGlzIGluZGVlZCBhbiBTUEkgRXRoZXJuZXQgZHJpdmVyOyBpdCYjMzk7cyBzdGF0ZWQsIGFuZCB0aGF0IGNoZWNrcyBvdXQuIFRoaXMgaXMgaGFyZHdhcmUtYmFzZWQsIGEgc3RhbmRhbG9uZSBTUEkgRXRoZXJuZXQgY2hpcC4gSXQmIzM5O3MgKm5vdCogc29tZSBlbXVsYXRlZCBkZXZpY2Ugd2l0aGluIHN0YW5kYXJkIFFFTVUgb3IgR0NFLiBUaGlzIGlzIGNydWNpYWwgZm9yIGRldGVybWluaW5nIGlmIGl0IGlzIHdvcnRoIGZ1enppbmcuIFRoZSBrZXkgY2hhbmdlIGlzIGlzb2xhdGVkIHdpdGhpbiB0aGUgYGVuYzI4ajYwX3JlbW92ZWAgZnVuY3Rpb24sIHdoaWNoIGlzLCBpbXBvcnRhbnRseSwgdGhlIGAucmVtb3ZlYCBjYWxsYmFjayBvZiB0aGUgZHJpdmVyLgoKTm93LCBsZXQmIzM5O3MgcnVuIHRocm91Z2ggdGhlIGNyaXRlcmlhLiBJcyB0aGlzIGEgZG9jdW1lbnRhdGlvbiBjaGFuZ2U/IE5vLiBEZWNvcmF0aXZlIGNoYW5nZSBsaWtlIGxvZ2dpbmc/IE5vLiBOdW1lcmljIGNvbnN0YW50cz8gTm8uIFVucmVhY2hhYmxlIGNvZGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzPyBOb3QgYXBwbGljYWJsZSBoZXJlOyBpdCYjMzk7cyBoYXJkd2FyZS4gU3BlY2lmaWMgaGFyZHdhcmUgbGlrZSBQQ0kgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnM/IE5vLgoKVGhlIHBhdGNoICpvbmx5KiBtb2RpZmllcyB0aGUgYC5yZW1vdmVgIGNhbGxiYWNrLiBUaGlzIGZ1bmN0aW9uIGlzIHRyaWdnZXJlZCBkdXJpbmcgdW5iaW5kIG9yIGhvdC11bnBsdWcgb3BlcmF0aW9ucywgZGVhbGluZyB3aXRoIGNsZWFuaW5nIHVwIHdvcmtxdWV1ZXMgYW5kIGB0eF9za2JgIHdoZW4gdGhlIGRldmljZSBpcyByZW1vdmVkLiBHaXZlbiBhbGwgdGhlIGZhY3RvcnMsIGFuZCB0aGlzIHNwZWNpZmljYWxseSBiZWluZyBhbiBTUEkgaGFyZHdhcmUgZGV2aWNlLCB0aGlzIHN0cm9uZ2x5IHN1Z2dlc3RzIHRoaXMgaXMgYSAmIzM0O2NsZWFudXAmIzM0OyByYXRoZXIgdGhhbiBzb21ldGhpbmcgZXhwb3NlZCBkdXJpbmcgbm9ybWFsIG9wZXJhdGlvbi4KClRoZXJlZm9yZSwgbXkgY29uY2x1c2lvbiBpcyB0aGF0IHRoaXMgY2hhbmdlIGlzIG5vdCBzdWl0YWJsZSBmb3IgZnV6emluZy4gSSYjMzk7bGwgbmVlZCB0byBjYWxsIGBzZXQtcmVzdWx0c2AgdG9vbCB3aXRoIGBXb3J0aEZ1enppbmc9ZmFsc2VgLCBgRm9jdXNTeW1ib2xzPVtdYCwgYW5kIGBFbmFibGVDb25maWdzPVtdYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yOSAyMDo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgdGhlIGAucmVtb3ZlYCBjYWxsYmFjayAoYGVuYzI4ajYwX3JlbW92ZWApIG9mIHRoZSBlbmMyOGo2MCBTUEkgZXRoZXJuZXQgZHJpdmVyIHRvIGNhbmNlbCBwZW5kaW5nIHdvcmsgaXRlbXMgYW5kIGZyZWUgdHhfc2tiIHVwb24gZGV2aWNlIHJlbW92YWwvdW5iaW5kLiBEcml2ZXIgcmVtb3ZlIGNhbGxiYWNrcyBleGVjdXRlZCBkdXJpbmcgdW5iaW5kaW5nL3RlYXJkb3duIGFyZSBub3Qgd29ydGggZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgdGhlIGAucmVtb3ZlYCBjYWxsYmFjayAoYGVuYzI4ajYwX3JlbW92ZWApIG9mIHRoZSBlbmMyOGo2MCBTUEkgZXRoZXJuZXQgZHJpdmVyIHRvIGNhbmNlbCBwZW5kaW5nIHdvcmsgaXRlbXMgYW5kIGZyZWUgdHhfc2tiIHVwb24gZGV2aWNlIHJlbW92YWwvdW5iaW5kLiBEcml2ZXIgcmVtb3ZlIGNhbGxiYWNrcyBleGVjdXRlZCBkdXJpbmcgdW5iaW5kaW5nL3RlYXJkb3duIGFyZSBub3Qgd29ydGggZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjkgMjA6NDI8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI5VDIwOjQyOjEzLjY4ODIxMzE0OVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE0MzYwNjY0NjAwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBtb2RpZmllcyB0aGUgYC5yZW1vdmVgIGNhbGxiYWNrIChgZW5jMjhqNjBfcmVtb3ZlYCkgb2YgdGhlIGVuYzI4ajYwIFNQSSBldGhlcm5ldCBkcml2ZXIgdG8gY2FuY2VsIHBlbmRpbmcgd29yayBpdGVtcyBhbmQgZnJlZSB0eF9za2IgdXBvbiBkZXZpY2UgcmVtb3ZhbC91bmJpbmQuIERyaXZlciByZW1vdmUgY2FsbGJhY2tzIGV4ZWN1dGVkIGR1cmluZyB1bmJpbmRpbmcvdGVhcmRvd24gYXJlIG5vdCB3b3J0aCBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjlUMjA6NDI6MTMuNjg4MjE4MjU5WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMzc5ODg2ODYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBiY2JmZGRhZjViOGQ4MTdlNjBjNzU2YzM5ZjJlZjI2YTFkNWQzMmYyXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBTYXQgQXVnIDI5IDIwOjQyOjEzIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9lbmMyOGo2MC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2VuYzI4ajYwLmNcXG5pbmRleCBkNmM5NDkxNTM3ZTQ3Li5kMTY1NjQwNjBmYmNkIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9lbmMyOGo2MC5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2VuYzI4ajYwLmNcXG5AQCAtMTYwMiw2ICsxNjAyLDExIEBAIHN0YXRpYyB2b2lkIGVuYzI4ajYwX3JlbW92ZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKVxcbiBcXG4gXFx0dW5yZWdpc3Rlcl9uZXRkZXYocHJpdi1cXHUwMDNlbmV0ZGV2KTtcXG4gXFx0ZnJlZV9pcnEoc3BpLVxcdTAwM2VpcnEsIHByaXYpO1xcbitcXHRjYW5jZWxfd29ya19zeW5jKFxcdTAwMjZwcml2LVxcdTAwM2V0eF93b3JrKTtcXG4rXFx0Y2FuY2VsX3dvcmtfc3luYyhcXHUwMDI2cHJpdi1cXHUwMDNlc2V0cnhfd29yayk7XFxuK1xcdGNhbmNlbF93b3JrX3N5bmMoXFx1MDAyNnByaXYtXFx1MDAzZXJlc3RhcnRfd29yayk7XFxuK1xcdGlmIChwcml2LVxcdTAwM2V0eF9za2IpXFxuK1xcdFxcdGRldl9rZnJlZV9za2IocHJpdi1cXHUwMDNldHhfc2tiKTtcXG4gXFx0ZnJlZV9uZXRkZXYocHJpdi1cXHUwMDNlbmV0ZGV2KTtcXG4gfVxcbiBcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjlUMjA6NDI6MTQuMDI2ODU0MjE1WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiY29yZSIsIkR1cmF0aW9uIjoxNDAyMjAwNzY1NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBtb2RpZmllcyB0aGUgYC5yZW1vdmVgIGNhbGxiYWNrIChgZW5jMjhqNjBfcmVtb3ZlYCkgb2YgdGhlIGVuYzI4ajYwIFNQSSBldGhlcm5ldCBkcml2ZXIgdG8gY2FuY2VsIHBlbmRpbmcgd29yayBpdGVtcyBhbmQgZnJlZSB0eF9za2IgdXBvbiBkZXZpY2UgcmVtb3ZhbC91bmJpbmQuIERyaXZlciByZW1vdmUgY2FsbGJhY2tzIGV4ZWN1dGVkIGR1cmluZyB1bmJpbmRpbmcvdGVhcmRvd24gYXJlIG5vdCB3b3J0aCBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgYmNiZmRkYWY1YjhkODE3ZTYwYzc1NmMzOWYyZWYyNmExZDVkMzJmMlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgQXVnIDI5IDIwOjQyOjEzIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2VuYzI4ajYwLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvZW5jMjhqNjAuY1xuaW5kZXggZDZjOTQ5MTUzN2U0Ny4uZDE2NTY0MDYwZmJjZCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9lbmMyOGo2MC5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvZW5jMjhqNjAuY1xuQEAgLTE2MDIsNiArMTYwMiwxMSBAQCBzdGF0aWMgdm9pZCBlbmMyOGo2MF9yZW1vdmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSlcbiBcbiBcdHVucmVnaXN0ZXJfbmV0ZGV2KHByaXYtXHUwMDNlbmV0ZGV2KTtcbiBcdGZyZWVfaXJxKHNwaS1cdTAwM2VpcnEsIHByaXYpO1xuK1x0Y2FuY2VsX3dvcmtfc3luYyhcdTAwMjZwcml2LVx1MDAzZXR4X3dvcmspO1xuK1x0Y2FuY2VsX3dvcmtfc3luYyhcdTAwMjZwcml2LVx1MDAzZXNldHJ4X3dvcmspO1xuK1x0Y2FuY2VsX3dvcmtfc3luYyhcdTAwMjZwcml2LVx1MDAzZXJlc3RhcnRfd29yayk7XG4rXHRpZiAocHJpdi1cdTAwM2V0eF9za2IpXG4rXHRcdGRldl9rZnJlZV9za2IocHJpdi1cdTAwM2V0eF9za2IpO1xuIFx0ZnJlZV9uZXRkZXYocHJpdi1cdTAwM2VuZXRkZXYpO1xuIH1cbiBcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI5VDIwOjQyOjE0LjAyNjg1NTY0NVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjcxMDgzNDA2NTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBQYXRjaCBmb3IgRnV6emluZyBTdWl0YWJpbGl0eSoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgdG91Y2hpbmcgYGVuYzI4ajYwX3JlbW92ZWAgd2l0aGluIHRoZSBgZW5jMjhqNjAuY2AgZmlsZSBpbiB0aGUgbmV0d29yayBkcml2ZXJzLiBSaWdodCBhd2F5LCBJIG5lZWQgdG8gZGV0ZXJtaW5lIGlmIHRoaXMgY2hhbmdlIHdhcnJhbnRzIGZ1enppbmcuIExldCdzIHNlZS4uLiBJJ3ZlIGdvdCB0aGUgcnVsZXNldCBpbiBteSBoZWFkLCBidXQgSSdsbCBkb3VibGUtY2hlY2sgaXQuIFwiUmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zIG1vZGlmaWNhdGlvbnMgdG8gZG9jdW1lbnRhdGlvbiwgS2NvbmZpZywgY29tbWVudHMuLi4gcHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcyBsaWtlIGxvZ2dpbmcuLi4gY2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3Mgd2l0aG91dCBmdW5jdGlvbmFsIGltcGFjdC4uLiB1bnJlYWNoYWJsZSBjb2RlIHBhdGhzIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4uLiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gvU21hcnROSUMvR1BVIGRyaXZlciBjb2RlIHJlcXVpcmluZyBzcGVjaWZpYyBoYXJkd2FyZS4uLiBvciBkcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIGxpa2UgYC5yZW1vdmVgLCBgLnNodXRkb3duYCwgb3IgYHBjaV91bnJlZ2lzdGVyX2RyaXZlcmAgZXhlY3V0ZWQgb25seSBkdXJpbmcgaG90LXVucGx1ZyBvciBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXCJcblxuUmlnaHQsIEknbSBwcmV0dHkgZmFtaWxpYXIgd2l0aCB0aGUgbnVhbmNlcyBvZiB0aGVzZSBndWlkZWxpbmVzLiBOb3csIGxldCdzIGFjdHVhbGx5ICpsb29rKiBhdCB0aGUgY29kZS4gSSBuZWVkIHRvIGdldCBhIHNlbnNlIG9mIHdoYXQgYGVuYzI4ajYwX3JlbW92ZWAgZG9lcy4gTGV0IG1lIG5hdmlnYXRlIHRvIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvZW5jMjhqNjAuY2AgYW5kIHNwZWNpZmljYWxseSBwaW5wb2ludCB0aGUgc2VjdGlvbiBhcm91bmQgbGluZSAxNjAyIOKAkyB0aGF0IHNob3VsZCBiZSB3aGVyZSBgZW5jMjhqNjBfcmVtb3ZlYCByZXNpZGVzLiBJIG5lZWQgdG8gc2VlIGlmIHRoaXMgaXMganVzdCBhIGNsZWFudXAgZnVuY3Rpb24gdGhhdCBkb2Vzbid0IHNpZ25pZmljYW50bHkgYWx0ZXIgdGhlIGNvcmUgZnVuY3Rpb25hbGl0eSBvciBpZiBpdCBpbnRyb2R1Y2VzIGFueXRoaW5nIGludGVyZXN0aW5nIGZvciBmdXp6aW5nLiBJZiBpdCdzIGp1c3QgYSBzdGFuZGFyZCByZW1vdmFsIGNhbGxiYWNrLCB0aGF0IHdpbGwgbGlrZWx5IHRyaWdnZXIgYSBcIm5vIGZ1enppbmdcIiBmbGFnLiBJZiBpdCdzIGRvaW5nIHNvbWV0aGluZyBtb3JlIHN1YnN0YW50aWFsLCB0aGVuIHRoZXJlIGNvdWxkIGJlIHBvdGVudGlhbCBmb3IgZXhwbG9pdGF0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMTQ5LCJPdXRwdXRUb2tlbnMiOjQ3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzI4LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjlUMjA6NDI6MjEuMTM1MTk4MjQ4WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTM5MjcwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9lbmMyOGo2MC5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDE1OTAsXG4gIFwiTGluZUNvdW50XCI6IDQwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIjE1OTA6XFx0XFxuMTU5MTpcXHRlcnJvcl9yZWdpc3RlcjpcXG4xNTkyOlxcdFxcdGZyZWVfaXJxKHNwaS1cXHUwMDNlaXJxLCBwcml2KTtcXG4xNTkzOlxcdGVycm9yX2lycTpcXG4xNTk0OlxcdFxcdGZyZWVfbmV0ZGV2KGRldik7XFxuMTU5NTpcXHRlcnJvcl9hbGxvYzpcXG4xNTk2OlxcdFxcdHJldHVybiByZXQ7XFxuMTU5NzpcXHR9XFxuMTU5ODpcXHRcXG4xNTk5OlxcdHN0YXRpYyB2b2lkIGVuYzI4ajYwX3JlbW92ZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKVxcbjE2MDA6XFx0e1xcbjE2MDE6XFx0XFx0c3RydWN0IGVuYzI4ajYwX25ldCAqcHJpdiA9IHNwaV9nZXRfZHJ2ZGF0YShzcGkpO1xcbjE2MDI6XFx0XFxuMTYwMzpcXHRcXHR1bnJlZ2lzdGVyX25ldGRldihwcml2LVxcdTAwM2VuZXRkZXYpO1xcbjE2MDQ6XFx0XFx0ZnJlZV9pcnEoc3BpLVxcdTAwM2VpcnEsIHByaXYpO1xcbjE2MDU6XFx0XFx0Y2FuY2VsX3dvcmtfc3luYyhcXHUwMDI2cHJpdi1cXHUwMDNldHhfd29yayk7XFxuMTYwNjpcXHRcXHRjYW5jZWxfd29ya19zeW5jKFxcdTAwMjZwcml2LVxcdTAwM2VzZXRyeF93b3JrKTtcXG4xNjA3OlxcdFxcdGNhbmNlbF93b3JrX3N5bmMoXFx1MDAyNnByaXYtXFx1MDAzZXJlc3RhcnRfd29yayk7XFxuMTYwODpcXHRcXHRpZiAocHJpdi1cXHUwMDNldHhfc2tiKVxcbjE2MDk6XFx0XFx0XFx0ZGV2X2tmcmVlX3NrYihwcml2LVxcdTAwM2V0eF9za2IpO1xcbjE2MTA6XFx0XFx0ZnJlZV9uZXRkZXYocHJpdi1cXHUwMDNlbmV0ZGV2KTtcXG4xNjExOlxcdH1cXG4xNjEyOlxcdFxcbjE2MTM6XFx0c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgZW5jMjhqNjBfZHRfaWRzW10gPSB7XFxuMTYxNDpcXHRcXHR7IC5jb21wYXRpYmxlID0gXFxcIm1pY3JvY2hpcCxlbmMyOGo2MFxcXCIgfSxcXG4xNjE1OlxcdFxcdHsgLyogc2VudGluZWwgKi8gfVxcbjE2MTY6XFx0fTtcXG4xNjE3OlxcdE1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGVuYzI4ajYwX2R0X2lkcyk7XFxuMTYxODpcXHRcXG4xNjE5OlxcdHN0YXRpYyBzdHJ1Y3Qgc3BpX2RyaXZlciBlbmMyOGo2MF9kcml2ZXIgPSB7XFxuMTYyMDpcXHRcXHQuZHJpdmVyID0ge1xcbjE2MjE6XFx0XFx0XFx0Lm5hbWUgPSBEUlZfTkFNRSxcXG4xNjIyOlxcdFxcdFxcdC5vZl9tYXRjaF90YWJsZSA9IGVuYzI4ajYwX2R0X2lkcyxcXG4xNjIzOlxcdFxcdCB9LFxcbjE2MjQ6XFx0XFx0LnByb2JlID0gZW5jMjhqNjBfcHJvYmUsXFxuMTYyNTpcXHRcXHQucmVtb3ZlID0gZW5jMjhqNjBfcmVtb3ZlLFxcbjE2MjY6XFx0fTtcXG4xNjI3OlxcdG1vZHVsZV9zcGlfZHJpdmVyKGVuYzI4ajYwX2RyaXZlcik7XFxuMTYyODpcXHRcXG4xNjI5OlxcdE1PRFVMRV9ERVNDUklQVElPTihEUlZfTkFNRSBcXFwiIGV0aGVybmV0IGRyaXZlclxcXCIpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yOVQyMDo0MjoyMS4xMzUzMzk1MjhaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo2OTEzNDgwODcwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIFBhdGNoJ3MgRnV6emluZyBQb3RlbnRpYWwqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIFdlJ3JlIGRlYWxpbmcgd2l0aCBhIHBhdGNoIHRoYXQgdG91Y2hlcyB0aGUgYGVuYzI4ajYwYCBkcml2ZXIsIHNwZWNpZmljYWxseSB0aGUgYC5yZW1vdmVgIGNhbGxiYWNrLCBgZW5jMjhqNjBfcmVtb3ZlYC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIFwiSXMgdGhpcyBmdXp6YWJsZSwgb3IgaXMgaXQgYSBjbGVhbnVwIHJvdXRpbmUgdGhhdCdzIG5vdCByZWxldmFudCB0byBydW50aW1lIGZ1enppbmc/XCJcblxuRmlyc3QsIEkgbmVlZCB0byBjb25maXJtIHRoYXQgYGVuYzI4ajYwYCBpcyBpbmRlZWQgYW4gU1BJIEV0aGVybmV0IGRyaXZlcjsgaXQncyBzdGF0ZWQsIGFuZCB0aGF0IGNoZWNrcyBvdXQuIFRoaXMgaXMgaGFyZHdhcmUtYmFzZWQsIGEgc3RhbmRhbG9uZSBTUEkgRXRoZXJuZXQgY2hpcC4gSXQncyAqbm90KiBzb21lIGVtdWxhdGVkIGRldmljZSB3aXRoaW4gc3RhbmRhcmQgUUVNVSBvciBHQ0UuIFRoaXMgaXMgY3J1Y2lhbCBmb3IgZGV0ZXJtaW5pbmcgaWYgaXQgaXMgd29ydGggZnV6emluZy4gVGhlIGtleSBjaGFuZ2UgaXMgaXNvbGF0ZWQgd2l0aGluIHRoZSBgZW5jMjhqNjBfcmVtb3ZlYCBmdW5jdGlvbiwgd2hpY2ggaXMsIGltcG9ydGFudGx5LCB0aGUgYC5yZW1vdmVgIGNhbGxiYWNrIG9mIHRoZSBkcml2ZXIuXG5cbk5vdywgbGV0J3MgcnVuIHRocm91Z2ggdGhlIGNyaXRlcmlhLiBJcyB0aGlzIGEgZG9jdW1lbnRhdGlvbiBjaGFuZ2U/IE5vLiBEZWNvcmF0aXZlIGNoYW5nZSBsaWtlIGxvZ2dpbmc/IE5vLiBOdW1lcmljIGNvbnN0YW50cz8gTm8uIFVucmVhY2hhYmxlIGNvZGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzPyBOb3QgYXBwbGljYWJsZSBoZXJlOyBpdCdzIGhhcmR3YXJlLiBTcGVjaWZpYyBoYXJkd2FyZSBsaWtlIFBDSSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycz8gTm8uXG5cblRoZSBwYXRjaCAqb25seSogbW9kaWZpZXMgdGhlIGAucmVtb3ZlYCBjYWxsYmFjay4gVGhpcyBmdW5jdGlvbiBpcyB0cmlnZ2VyZWQgZHVyaW5nIHVuYmluZCBvciBob3QtdW5wbHVnIG9wZXJhdGlvbnMsIGRlYWxpbmcgd2l0aCBjbGVhbmluZyB1cCB3b3JrcXVldWVzIGFuZCBgdHhfc2tiYCB3aGVuIHRoZSBkZXZpY2UgaXMgcmVtb3ZlZC4gR2l2ZW4gYWxsIHRoZSBmYWN0b3JzLCBhbmQgdGhpcyBzcGVjaWZpY2FsbHkgYmVpbmcgYW4gU1BJIGhhcmR3YXJlIGRldmljZSwgdGhpcyBzdHJvbmdseSBzdWdnZXN0cyB0aGlzIGlzIGEgXCJjbGVhbnVwXCIgcmF0aGVyIHRoYW4gc29tZXRoaW5nIGV4cG9zZWQgZHVyaW5nIG5vcm1hbCBvcGVyYXRpb24uXG5cblRoZXJlZm9yZSwgbXkgY29uY2x1c2lvbiBpcyB0aGF0IHRoaXMgY2hhbmdlIGlzIG5vdCBzdWl0YWJsZSBmb3IgZnV6emluZy4gSSdsbCBuZWVkIHRvIGNhbGwgYHNldC1yZXN1bHRzYCB0b29sIHdpdGggYFdvcnRoRnV6emluZz1mYWxzZWAsIGBGb2N1c1N5bWJvbHM9W11gLCBhbmQgYEVuYWJsZUNvbmZpZ3M9W11gLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNTAyLCJPdXRwdXRUb2tlbnMiOjk1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDgxLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjlUMjA6NDI6MjguMDQ4ODIyMjM4WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozNzk1MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIHRoZSBgLnJlbW92ZWAgY2FsbGJhY2sgKGBlbmMyOGo2MF9yZW1vdmVgKSBvZiB0aGUgZW5jMjhqNjAgU1BJIGV0aGVybmV0IGRyaXZlciB0byBjYW5jZWwgcGVuZGluZyB3b3JrIGl0ZW1zIGFuZCBmcmVlIHR4X3NrYiB1cG9uIGRldmljZSByZW1vdmFsL3VuYmluZC4gRHJpdmVyIHJlbW92ZSBjYWxsYmFja3MgZXhlY3V0ZWQgZHVyaW5nIHVuYmluZGluZy90ZWFyZG93biBhcmUgbm90IHdvcnRoIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIHRoZSBgLnJlbW92ZWAgY2FsbGJhY2sgKGBlbmMyOGo2MF9yZW1vdmVgKSBvZiB0aGUgZW5jMjhqNjAgU1BJIGV0aGVybmV0IGRyaXZlciB0byBjYW5jZWwgcGVuZGluZyB3b3JrIGl0ZW1zIGFuZCBmcmVlIHR4X3NrYiB1cG9uIGRldmljZSByZW1vdmFsL3VuYmluZC4gRHJpdmVyIHJlbW92ZSBjYWxsYmFja3MgZXhlY3V0ZWQgZHVyaW5nIHVuYmluZGluZy90ZWFyZG93biBhcmUgbm90IHdvcnRoIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yOVQyMDo0MjoyOC4wNDg4NjM5MThaIiwiU2VxIjo3LCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzY0MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow9dpw9[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-29 20:40:22 +0000 UTC FinishedAt: 2026-08-29 20:42:29 +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+CgkJCTx0ZD4yMDI2LzA4LzI5IDIwOjQyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBtb2RpZmllcyB0aGUgYC5yZW1vdmVgIGNhbGxiYWNrIChgZW5jMjhqNjBfcmVtb3ZlYCkgb2YgdGhlIGVuYzI4ajYwIFNQSSBldGhlcm5ldCBkcml2ZXIgdG8gY2FuY2VsIHBlbmRpbmcgd29yayBpdGVtcyBhbmQgZnJlZSB0eF9za2IgdXBvbiBkZXZpY2UgcmVtb3ZhbC91bmJpbmQuIERyaXZlciByZW1vdmUgY2FsbGJhY2tzIGV4ZWN1dGVkIGR1cmluZyB1bmJpbmRpbmcvdGVhcmRvd24gYXJlIG5vdCB3b3J0aCBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yOSAyMDo0MjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGJjYmZkZGFmNWI4ZDgxN2U2MGM3NTZjMzlmMmVmMjZhMWQ1ZDMyZjJcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IEF1ZyAyOSAyMDo0MjoxMyAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvZW5jMjhqNjAuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9lbmMyOGo2MC5jXG5pbmRleCBkNmM5NDkxNTM3ZTQ3Li5kMTY1NjQwNjBmYmNkIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2VuYzI4ajYwLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9lbmMyOGo2MC5jXG5AQCAtMTYwMiw2ICYjNDM7MTYwMiwxMSBAQCBzdGF0aWMgdm9pZCBlbmMyOGo2MF9yZW1vdmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSlcbiBcbiBcdHVucmVnaXN0ZXJfbmV0ZGV2KHByaXYtXHUwMDNlbmV0ZGV2KTtcbiBcdGZyZWVfaXJxKHNwaS1cdTAwM2VpcnEsIHByaXYpO1xuJiM0MztcdGNhbmNlbF93b3JrX3N5bmMoXHUwMDI2cHJpdi1cdTAwM2V0eF93b3JrKTtcbiYjNDM7XHRjYW5jZWxfd29ya19zeW5jKFx1MDAyNnByaXYtXHUwMDNlc2V0cnhfd29yayk7XG4mIzQzO1x0Y2FuY2VsX3dvcmtfc3luYyhcdTAwMjZwcml2LVx1MDAzZXJlc3RhcnRfd29yayk7XG4mIzQzO1x0aWYgKHByaXYtXHUwMDNldHhfc2tiKVxuJiM0MztcdFx0ZGV2X2tmcmVlX3NrYihwcml2LVx1MDAzZXR4X3NrYik7XG4gXHRmcmVlX25ldGRldihwcml2LVx1MDAzZW5ldGRldik7XG4gfVxuIFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI5IDIwOjQyPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmNvcmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgdGhlIGAucmVtb3ZlYCBjYWxsYmFjayAoYGVuYzI4ajYwX3JlbW92ZWApIG9mIHRoZSBlbmMyOGo2MCBTUEkgZXRoZXJuZXQgZHJpdmVyIHRvIGNhbmNlbCBwZW5kaW5nIHdvcmsgaXRlbXMgYW5kIGZyZWUgdHhfc2tiIHVwb24gZGV2aWNlIHJlbW92YWwvdW5iaW5kLiBEcml2ZXIgcmVtb3ZlIGNhbGxiYWNrcyBleGVjdXRlZCBkdXJpbmcgdW5iaW5kaW5nL3RlYXJkb3duIGFyZSBub3Qgd29ydGggZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBiY2JmZGRhZjViOGQ4MTdlNjBjNzU2YzM5ZjJlZjI2YTFkNWQzMmYyCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFNhdCBBdWcgMjkgMjA6NDI6MTMgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvZW5jMjhqNjAuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9lbmMyOGo2MC5jCmluZGV4IGQ2Yzk0OTE1MzdlNDcuLmQxNjU2NDA2MGZiY2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9lbmMyOGo2MC5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9lbmMyOGo2MC5jCkBAIC0xNjAyLDYgJiM0MzsxNjAyLDExIEBAIHN0YXRpYyB2b2lkIGVuYzI4ajYwX3JlbW92ZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQogCiAJdW5yZWdpc3Rlcl9uZXRkZXYocHJpdi0mZ3Q7bmV0ZGV2KTsKIAlmcmVlX2lycShzcGktJmd0O2lycSwgcHJpdik7CiYjNDM7CWNhbmNlbF93b3JrX3N5bmMoJmFtcDtwcml2LSZndDt0eF93b3JrKTsKJiM0MzsJY2FuY2VsX3dvcmtfc3luYygmYW1wO3ByaXYtJmd0O3NldHJ4X3dvcmspOwomIzQzOwljYW5jZWxfd29ya19zeW5jKCZhbXA7cHJpdi0mZ3Q7cmVzdGFydF93b3JrKTsKJiM0MzsJaWYgKHByaXYtJmd0O3R4X3NrYikKJiM0MzsJCWRldl9rZnJlZV9za2IocHJpdi0mZ3Q7dHhfc2tiKTsKIAlmcmVlX25ldGRldihwcml2LSZndDtuZXRkZXYpOwogfQogCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI5IDIwOjQyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIxNDkKCQkJCQkJCW91dHB1dDogNDcKCQkJCQkJCXRob3VnaHRzOiAzMjgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBQYXRjaCBmb3IgRnV6emluZyBTdWl0YWJpbGl0eSoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHRvdWNoaW5nIGBlbmMyOGo2MF9yZW1vdmVgIHdpdGhpbiB0aGUgYGVuYzI4ajYwLmNgIGZpbGUgaW4gdGhlIG5ldHdvcmsgZHJpdmVycy4gUmlnaHQgYXdheSwgSSBuZWVkIHRvIGRldGVybWluZSBpZiB0aGlzIGNoYW5nZSB3YXJyYW50cyBmdXp6aW5nLiBMZXQmIzM5O3Mgc2VlLi4uIEkmIzM5O3ZlIGdvdCB0aGUgcnVsZXNldCBpbiBteSBoZWFkLCBidXQgSSYjMzk7bGwgZG91YmxlLWNoZWNrIGl0LiAmIzM0O1JldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYCBpZiB0aGUgcGF0Y2ggb25seSBjb250YWlucyBtb2RpZmljYXRpb25zIHRvIGRvY3VtZW50YXRpb24sIEtjb25maWcsIGNvbW1lbnRzLi4uIHB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMgbGlrZSBsb2dnaW5nLi4uIGNoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHdpdGhvdXQgZnVuY3Rpb25hbCBpbXBhY3QuLi4gdW5yZWFjaGFibGUgY29kZSBwYXRocyBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuLi4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoL1NtYXJ0TklDL0dQVSBkcml2ZXIgY29kZSByZXF1aXJpbmcgc3BlY2lmaWMgaGFyZHdhcmUuLi4gb3IgZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyBsaWtlIGAucmVtb3ZlYCwgYC5zaHV0ZG93bmAsIG9yIGBwY2lfdW5yZWdpc3Rlcl9kcml2ZXJgIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIGhvdC11bnBsdWcgb3IgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLiYjMzQ7CgpSaWdodCwgSSYjMzk7bSBwcmV0dHkgZmFtaWxpYXIgd2l0aCB0aGUgbnVhbmNlcyBvZiB0aGVzZSBndWlkZWxpbmVzLiBOb3csIGxldCYjMzk7cyBhY3R1YWxseSAqbG9vayogYXQgdGhlIGNvZGUuIEkgbmVlZCB0byBnZXQgYSBzZW5zZSBvZiB3aGF0IGBlbmMyOGo2MF9yZW1vdmVgIGRvZXMuIExldCBtZSBuYXZpZ2F0ZSB0byBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2VuYzI4ajYwLmNgIGFuZCBzcGVjaWZpY2FsbHkgcGlucG9pbnQgdGhlIHNlY3Rpb24gYXJvdW5kIGxpbmUgMTYwMiDigJMgdGhhdCBzaG91bGQgYmUgd2hlcmUgYGVuYzI4ajYwX3JlbW92ZWAgcmVzaWRlcy4gSSBuZWVkIHRvIHNlZSBpZiB0aGlzIGlzIGp1c3QgYSBjbGVhbnVwIGZ1bmN0aW9uIHRoYXQgZG9lc24mIzM5O3Qgc2lnbmlmaWNhbnRseSBhbHRlciB0aGUgY29yZSBmdW5jdGlvbmFsaXR5IG9yIGlmIGl0IGludHJvZHVjZXMgYW55dGhpbmcgaW50ZXJlc3RpbmcgZm9yIGZ1enppbmcuIElmIGl0JiMzOTtzIGp1c3QgYSBzdGFuZGFyZCByZW1vdmFsIGNhbGxiYWNrLCB0aGF0IHdpbGwgbGlrZWx5IHRyaWdnZXIgYSAmIzM0O25vIGZ1enppbmcmIzM0OyBmbGFnLiBJZiBpdCYjMzk7cyBkb2luZyBzb21ldGhpbmcgbW9yZSBzdWJzdGFudGlhbCwgdGhlbiB0aGVyZSBjb3VsZCBiZSBwb3RlbnRpYWwgZm9yIGV4cGxvaXRhdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yOSAyMDo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9lbmMyOGo2MC5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMTU5MCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA0MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsxNTkwOlx0XG4xNTkxOlx0ZXJyb3JfcmVnaXN0ZXI6XG4xNTkyOlx0XHRmcmVlX2lycShzcGktXHUwMDNlaXJxLCBwcml2KTtcbjE1OTM6XHRlcnJvcl9pcnE6XG4xNTk0Olx0XHRmcmVlX25ldGRldihkZXYpO1xuMTU5NTpcdGVycm9yX2FsbG9jOlxuMTU5NjpcdFx0cmV0dXJuIHJldDtcbjE1OTc6XHR9XG4xNTk4Olx0XG4xNTk5Olx0c3RhdGljIHZvaWQgZW5jMjhqNjBfcmVtb3ZlKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpXG4xNjAwOlx0e1xuMTYwMTpcdFx0c3RydWN0IGVuYzI4ajYwX25ldCAqcHJpdiA9IHNwaV9nZXRfZHJ2ZGF0YShzcGkpO1xuMTYwMjpcdFxuMTYwMzpcdFx0dW5yZWdpc3Rlcl9uZXRkZXYocHJpdi1cdTAwM2VuZXRkZXYpO1xuMTYwNDpcdFx0ZnJlZV9pcnEoc3BpLVx1MDAzZWlycSwgcHJpdik7XG4xNjA1Olx0XHRjYW5jZWxfd29ya19zeW5jKFx1MDAyNnByaXYtXHUwMDNldHhfd29yayk7XG4xNjA2Olx0XHRjYW5jZWxfd29ya19zeW5jKFx1MDAyNnByaXYtXHUwMDNlc2V0cnhfd29yayk7XG4xNjA3Olx0XHRjYW5jZWxfd29ya19zeW5jKFx1MDAyNnByaXYtXHUwMDNlcmVzdGFydF93b3JrKTtcbjE2MDg6XHRcdGlmIChwcml2LVx1MDAzZXR4X3NrYilcbjE2MDk6XHRcdFx0ZGV2X2tmcmVlX3NrYihwcml2LVx1MDAzZXR4X3NrYik7XG4xNjEwOlx0XHRmcmVlX25ldGRldihwcml2LVx1MDAzZW5ldGRldik7XG4xNjExOlx0fVxuMTYxMjpcdFxuMTYxMzpcdHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGVuYzI4ajYwX2R0X2lkc1tdID0ge1xuMTYxNDpcdFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O21pY3JvY2hpcCxlbmMyOGo2MFwmIzM0OyB9LFxuMTYxNTpcdFx0eyAvKiBzZW50aW5lbCAqLyB9XG4xNjE2Olx0fTtcbjE2MTc6XHRNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBlbmMyOGo2MF9kdF9pZHMpO1xuMTYxODpcdFxuMTYxOTpcdHN0YXRpYyBzdHJ1Y3Qgc3BpX2RyaXZlciBlbmMyOGo2MF9kcml2ZXIgPSB7XG4xNjIwOlx0XHQuZHJpdmVyID0ge1xuMTYyMTpcdFx0XHQubmFtZSA9IERSVl9OQU1FLFxuMTYyMjpcdFx0XHQub2ZfbWF0Y2hfdGFibGUgPSBlbmMyOGo2MF9kdF9pZHMsXG4xNjIzOlx0XHQgfSxcbjE2MjQ6XHRcdC5wcm9iZSA9IGVuYzI4ajYwX3Byb2JlLFxuMTYyNTpcdFx0LnJlbW92ZSA9IGVuYzI4ajYwX3JlbW92ZSxcbjE2MjY6XHR9O1xuMTYyNzpcdG1vZHVsZV9zcGlfZHJpdmVyKGVuYzI4ajYwX2RyaXZlcik7XG4xNjI4Olx0XG4xNjI5Olx0TU9EVUxFX0RFU0NSSVBUSU9OKERSVl9OQU1FIFwmIzM0OyBldGhlcm5ldCBkcml2ZXJcJiMzNDspO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI5IDIwOjQyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM1MDIKCQkJCQkJCW91dHB1dDogOTUKCQkJCQkJCXRob3VnaHRzOiA0ODEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgUGF0Y2gmIzM5O3MgRnV6emluZyBQb3RlbnRpYWwqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gV2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBhIHBhdGNoIHRoYXQgdG91Y2hlcyB0aGUgYGVuYzI4ajYwYCBkcml2ZXIsIHNwZWNpZmljYWxseSB0aGUgYC5yZW1vdmVgIGNhbGxiYWNrLCBgZW5jMjhqNjBfcmVtb3ZlYC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsICYjMzQ7SXMgdGhpcyBmdXp6YWJsZSwgb3IgaXMgaXQgYSBjbGVhbnVwIHJvdXRpbmUgdGhhdCYjMzk7cyBub3QgcmVsZXZhbnQgdG8gcnVudGltZSBmdXp6aW5nPyYjMzQ7CgpGaXJzdCwgSSBuZWVkIHRvIGNvbmZpcm0gdGhhdCBgZW5jMjhqNjBgIGlzIGluZGVlZCBhbiBTUEkgRXRoZXJuZXQgZHJpdmVyOyBpdCYjMzk7cyBzdGF0ZWQsIGFuZCB0aGF0IGNoZWNrcyBvdXQuIFRoaXMgaXMgaGFyZHdhcmUtYmFzZWQsIGEgc3RhbmRhbG9uZSBTUEkgRXRoZXJuZXQgY2hpcC4gSXQmIzM5O3MgKm5vdCogc29tZSBlbXVsYXRlZCBkZXZpY2Ugd2l0aGluIHN0YW5kYXJkIFFFTVUgb3IgR0NFLiBUaGlzIGlzIGNydWNpYWwgZm9yIGRldGVybWluaW5nIGlmIGl0IGlzIHdvcnRoIGZ1enppbmcuIFRoZSBrZXkgY2hhbmdlIGlzIGlzb2xhdGVkIHdpdGhpbiB0aGUgYGVuYzI4ajYwX3JlbW92ZWAgZnVuY3Rpb24sIHdoaWNoIGlzLCBpbXBvcnRhbnRseSwgdGhlIGAucmVtb3ZlYCBjYWxsYmFjayBvZiB0aGUgZHJpdmVyLgoKTm93LCBsZXQmIzM5O3MgcnVuIHRocm91Z2ggdGhlIGNyaXRlcmlhLiBJcyB0aGlzIGEgZG9jdW1lbnRhdGlvbiBjaGFuZ2U/IE5vLiBEZWNvcmF0aXZlIGNoYW5nZSBsaWtlIGxvZ2dpbmc/IE5vLiBOdW1lcmljIGNvbnN0YW50cz8gTm8uIFVucmVhY2hhYmxlIGNvZGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzPyBOb3QgYXBwbGljYWJsZSBoZXJlOyBpdCYjMzk7cyBoYXJkd2FyZS4gU3BlY2lmaWMgaGFyZHdhcmUgbGlrZSBQQ0kgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnM/IE5vLgoKVGhlIHBhdGNoICpvbmx5KiBtb2RpZmllcyB0aGUgYC5yZW1vdmVgIGNhbGxiYWNrLiBUaGlzIGZ1bmN0aW9uIGlzIHRyaWdnZXJlZCBkdXJpbmcgdW5iaW5kIG9yIGhvdC11bnBsdWcgb3BlcmF0aW9ucywgZGVhbGluZyB3aXRoIGNsZWFuaW5nIHVwIHdvcmtxdWV1ZXMgYW5kIGB0eF9za2JgIHdoZW4gdGhlIGRldmljZSBpcyByZW1vdmVkLiBHaXZlbiBhbGwgdGhlIGZhY3RvcnMsIGFuZCB0aGlzIHNwZWNpZmljYWxseSBiZWluZyBhbiBTUEkgaGFyZHdhcmUgZGV2aWNlLCB0aGlzIHN0cm9uZ2x5IHN1Z2dlc3RzIHRoaXMgaXMgYSAmIzM0O2NsZWFudXAmIzM0OyByYXRoZXIgdGhhbiBzb21ldGhpbmcgZXhwb3NlZCBkdXJpbmcgbm9ybWFsIG9wZXJhdGlvbi4KClRoZXJlZm9yZSwgbXkgY29uY2x1c2lvbiBpcyB0aGF0IHRoaXMgY2hhbmdlIGlzIG5vdCBzdWl0YWJsZSBmb3IgZnV6emluZy4gSSYjMzk7bGwgbmVlZCB0byBjYWxsIGBzZXQtcmVzdWx0c2AgdG9vbCB3aXRoIGBXb3J0aEZ1enppbmc9ZmFsc2VgLCBgRm9jdXNTeW1ib2xzPVtdYCwgYW5kIGBFbmFibGVDb25maWdzPVtdYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yOSAyMDo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgdGhlIGAucmVtb3ZlYCBjYWxsYmFjayAoYGVuYzI4ajYwX3JlbW92ZWApIG9mIHRoZSBlbmMyOGo2MCBTUEkgZXRoZXJuZXQgZHJpdmVyIHRvIGNhbmNlbCBwZW5kaW5nIHdvcmsgaXRlbXMgYW5kIGZyZWUgdHhfc2tiIHVwb24gZGV2aWNlIHJlbW92YWwvdW5iaW5kLiBEcml2ZXIgcmVtb3ZlIGNhbGxiYWNrcyBleGVjdXRlZCBkdXJpbmcgdW5iaW5kaW5nL3RlYXJkb3duIGFyZSBub3Qgd29ydGggZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgdGhlIGAucmVtb3ZlYCBjYWxsYmFjayAoYGVuYzI4ajYwX3JlbW92ZWApIG9mIHRoZSBlbmMyOGo2MCBTUEkgZXRoZXJuZXQgZHJpdmVyIHRvIGNhbmNlbCBwZW5kaW5nIHdvcmsgaXRlbXMgYW5kIGZyZWUgdHhfc2tiIHVwb24gZGV2aWNlIHJlbW92YWwvdW5iaW5kLiBEcml2ZXIgcmVtb3ZlIGNhbGxiYWNrcyBleGVjdXRlZCBkdXJpbmcgdW5iaW5kaW5nL3RlYXJkb3duIGFyZSBub3Qgd29ydGggZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjkgMjA6NDI8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI5VDIwOjQyOjEzLjY4ODIxMzE0OVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE0MzYwNjY0NjAwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBtb2RpZmllcyB0aGUgYC5yZW1vdmVgIGNhbGxiYWNrIChgZW5jMjhqNjBfcmVtb3ZlYCkgb2YgdGhlIGVuYzI4ajYwIFNQSSBldGhlcm5ldCBkcml2ZXIgdG8gY2FuY2VsIHBlbmRpbmcgd29yayBpdGVtcyBhbmQgZnJlZSB0eF9za2IgdXBvbiBkZXZpY2UgcmVtb3ZhbC91bmJpbmQuIERyaXZlciByZW1vdmUgY2FsbGJhY2tzIGV4ZWN1dGVkIGR1cmluZyB1bmJpbmRpbmcvdGVhcmRvd24gYXJlIG5vdCB3b3J0aCBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjlUMjA6NDI6MTMuNjg4MjE4MjU5WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMzc5ODg2ODYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBiY2JmZGRhZjViOGQ4MTdlNjBjNzU2YzM5ZjJlZjI2YTFkNWQzMmYyXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBTYXQgQXVnIDI5IDIwOjQyOjEzIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9lbmMyOGo2MC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2VuYzI4ajYwLmNcXG5pbmRleCBkNmM5NDkxNTM3ZTQ3Li5kMTY1NjQwNjBmYmNkIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9lbmMyOGo2MC5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2VuYzI4ajYwLmNcXG5AQCAtMTYwMiw2ICsxNjAyLDExIEBAIHN0YXRpYyB2b2lkIGVuYzI4ajYwX3JlbW92ZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKVxcbiBcXG4gXFx0dW5yZWdpc3Rlcl9uZXRkZXYocHJpdi1cXHUwMDNlbmV0ZGV2KTtcXG4gXFx0ZnJlZV9pcnEoc3BpLVxcdTAwM2VpcnEsIHByaXYpO1xcbitcXHRjYW5jZWxfd29ya19zeW5jKFxcdTAwMjZwcml2LVxcdTAwM2V0eF93b3JrKTtcXG4rXFx0Y2FuY2VsX3dvcmtfc3luYyhcXHUwMDI2cHJpdi1cXHUwMDNlc2V0cnhfd29yayk7XFxuK1xcdGNhbmNlbF93b3JrX3N5bmMoXFx1MDAyNnByaXYtXFx1MDAzZXJlc3RhcnRfd29yayk7XFxuK1xcdGlmIChwcml2LVxcdTAwM2V0eF9za2IpXFxuK1xcdFxcdGRldl9rZnJlZV9za2IocHJpdi1cXHUwMDNldHhfc2tiKTtcXG4gXFx0ZnJlZV9uZXRkZXYocHJpdi1cXHUwMDNlbmV0ZGV2KTtcXG4gfVxcbiBcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjlUMjA6NDI6MTQuMDI2ODU0MjE1WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiY29yZSIsIkR1cmF0aW9uIjoxNDAyMjAwNzY1NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBtb2RpZmllcyB0aGUgYC5yZW1vdmVgIGNhbGxiYWNrIChgZW5jMjhqNjBfcmVtb3ZlYCkgb2YgdGhlIGVuYzI4ajYwIFNQSSBldGhlcm5ldCBkcml2ZXIgdG8gY2FuY2VsIHBlbmRpbmcgd29yayBpdGVtcyBhbmQgZnJlZSB0eF9za2IgdXBvbiBkZXZpY2UgcmVtb3ZhbC91bmJpbmQuIERyaXZlciByZW1vdmUgY2FsbGJhY2tzIGV4ZWN1dGVkIGR1cmluZyB1bmJpbmRpbmcvdGVhcmRvd24gYXJlIG5vdCB3b3J0aCBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgYmNiZmRkYWY1YjhkODE3ZTYwYzc1NmMzOWYyZWYyNmExZDVkMzJmMlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgQXVnIDI5IDIwOjQyOjEzIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2VuYzI4ajYwLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvZW5jMjhqNjAuY1xuaW5kZXggZDZjOTQ5MTUzN2U0Ny4uZDE2NTY0MDYwZmJjZCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9lbmMyOGo2MC5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvZW5jMjhqNjAuY1xuQEAgLTE2MDIsNiArMTYwMiwxMSBAQCBzdGF0aWMgdm9pZCBlbmMyOGo2MF9yZW1vdmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSlcbiBcbiBcdHVucmVnaXN0ZXJfbmV0ZGV2KHByaXYtXHUwMDNlbmV0ZGV2KTtcbiBcdGZyZWVfaXJxKHNwaS1cdTAwM2VpcnEsIHByaXYpO1xuK1x0Y2FuY2VsX3dvcmtfc3luYyhcdTAwMjZwcml2LVx1MDAzZXR4X3dvcmspO1xuK1x0Y2FuY2VsX3dvcmtfc3luYyhcdTAwMjZwcml2LVx1MDAzZXNldHJ4X3dvcmspO1xuK1x0Y2FuY2VsX3dvcmtfc3luYyhcdTAwMjZwcml2LVx1MDAzZXJlc3RhcnRfd29yayk7XG4rXHRpZiAocHJpdi1cdTAwM2V0eF9za2IpXG4rXHRcdGRldl9rZnJlZV9za2IocHJpdi1cdTAwM2V0eF9za2IpO1xuIFx0ZnJlZV9uZXRkZXYocHJpdi1cdTAwM2VuZXRkZXYpO1xuIH1cbiBcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI5VDIwOjQyOjE0LjAyNjg1NTY0NVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjcxMDgzNDA2NTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBQYXRjaCBmb3IgRnV6emluZyBTdWl0YWJpbGl0eSoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgdG91Y2hpbmcgYGVuYzI4ajYwX3JlbW92ZWAgd2l0aGluIHRoZSBgZW5jMjhqNjAuY2AgZmlsZSBpbiB0aGUgbmV0d29yayBkcml2ZXJzLiBSaWdodCBhd2F5LCBJIG5lZWQgdG8gZGV0ZXJtaW5lIGlmIHRoaXMgY2hhbmdlIHdhcnJhbnRzIGZ1enppbmcuIExldCdzIHNlZS4uLiBJJ3ZlIGdvdCB0aGUgcnVsZXNldCBpbiBteSBoZWFkLCBidXQgSSdsbCBkb3VibGUtY2hlY2sgaXQuIFwiUmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zIG1vZGlmaWNhdGlvbnMgdG8gZG9jdW1lbnRhdGlvbiwgS2NvbmZpZywgY29tbWVudHMuLi4gcHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcyBsaWtlIGxvZ2dpbmcuLi4gY2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3Mgd2l0aG91dCBmdW5jdGlvbmFsIGltcGFjdC4uLiB1bnJlYWNoYWJsZSBjb2RlIHBhdGhzIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4uLiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gvU21hcnROSUMvR1BVIGRyaXZlciBjb2RlIHJlcXVpcmluZyBzcGVjaWZpYyBoYXJkd2FyZS4uLiBvciBkcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIGxpa2UgYC5yZW1vdmVgLCBgLnNodXRkb3duYCwgb3IgYHBjaV91bnJlZ2lzdGVyX2RyaXZlcmAgZXhlY3V0ZWQgb25seSBkdXJpbmcgaG90LXVucGx1ZyBvciBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXCJcblxuUmlnaHQsIEknbSBwcmV0dHkgZmFtaWxpYXIgd2l0aCB0aGUgbnVhbmNlcyBvZiB0aGVzZSBndWlkZWxpbmVzLiBOb3csIGxldCdzIGFjdHVhbGx5ICpsb29rKiBhdCB0aGUgY29kZS4gSSBuZWVkIHRvIGdldCBhIHNlbnNlIG9mIHdoYXQgYGVuYzI4ajYwX3JlbW92ZWAgZG9lcy4gTGV0IG1lIG5hdmlnYXRlIHRvIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvZW5jMjhqNjAuY2AgYW5kIHNwZWNpZmljYWxseSBwaW5wb2ludCB0aGUgc2VjdGlvbiBhcm91bmQgbGluZSAxNjAyIOKAkyB0aGF0IHNob3VsZCBiZSB3aGVyZSBgZW5jMjhqNjBfcmVtb3ZlYCByZXNpZGVzLiBJIG5lZWQgdG8gc2VlIGlmIHRoaXMgaXMganVzdCBhIGNsZWFudXAgZnVuY3Rpb24gdGhhdCBkb2Vzbid0IHNpZ25pZmljYW50bHkgYWx0ZXIgdGhlIGNvcmUgZnVuY3Rpb25hbGl0eSBvciBpZiBpdCBpbnRyb2R1Y2VzIGFueXRoaW5nIGludGVyZXN0aW5nIGZvciBmdXp6aW5nLiBJZiBpdCdzIGp1c3QgYSBzdGFuZGFyZCByZW1vdmFsIGNhbGxiYWNrLCB0aGF0IHdpbGwgbGlrZWx5IHRyaWdnZXIgYSBcIm5vIGZ1enppbmdcIiBmbGFnLiBJZiBpdCdzIGRvaW5nIHNvbWV0aGluZyBtb3JlIHN1YnN0YW50aWFsLCB0aGVuIHRoZXJlIGNvdWxkIGJlIHBvdGVudGlhbCBmb3IgZXhwbG9pdGF0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMTQ5LCJPdXRwdXRUb2tlbnMiOjQ3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzI4LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjlUMjA6NDI6MjEuMTM1MTk4MjQ4WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTM5MjcwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9lbmMyOGo2MC5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDE1OTAsXG4gIFwiTGluZUNvdW50XCI6IDQwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIjE1OTA6XFx0XFxuMTU5MTpcXHRlcnJvcl9yZWdpc3RlcjpcXG4xNTkyOlxcdFxcdGZyZWVfaXJxKHNwaS1cXHUwMDNlaXJxLCBwcml2KTtcXG4xNTkzOlxcdGVycm9yX2lycTpcXG4xNTk0OlxcdFxcdGZyZWVfbmV0ZGV2KGRldik7XFxuMTU5NTpcXHRlcnJvcl9hbGxvYzpcXG4xNTk2OlxcdFxcdHJldHVybiByZXQ7XFxuMTU5NzpcXHR9XFxuMTU5ODpcXHRcXG4xNTk5OlxcdHN0YXRpYyB2b2lkIGVuYzI4ajYwX3JlbW92ZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKVxcbjE2MDA6XFx0e1xcbjE2MDE6XFx0XFx0c3RydWN0IGVuYzI4ajYwX25ldCAqcHJpdiA9IHNwaV9nZXRfZHJ2ZGF0YShzcGkpO1xcbjE2MDI6XFx0XFxuMTYwMzpcXHRcXHR1bnJlZ2lzdGVyX25ldGRldihwcml2LVxcdTAwM2VuZXRkZXYpO1xcbjE2MDQ6XFx0XFx0ZnJlZV9pcnEoc3BpLVxcdTAwM2VpcnEsIHByaXYpO1xcbjE2MDU6XFx0XFx0Y2FuY2VsX3dvcmtfc3luYyhcXHUwMDI2cHJpdi1cXHUwMDNldHhfd29yayk7XFxuMTYwNjpcXHRcXHRjYW5jZWxfd29ya19zeW5jKFxcdTAwMjZwcml2LVxcdTAwM2VzZXRyeF93b3JrKTtcXG4xNjA3OlxcdFxcdGNhbmNlbF93b3JrX3N5bmMoXFx1MDAyNnByaXYtXFx1MDAzZXJlc3RhcnRfd29yayk7XFxuMTYwODpcXHRcXHRpZiAocHJpdi1cXHUwMDNldHhfc2tiKVxcbjE2MDk6XFx0XFx0XFx0ZGV2X2tmcmVlX3NrYihwcml2LVxcdTAwM2V0eF9za2IpO1xcbjE2MTA6XFx0XFx0ZnJlZV9uZXRkZXYocHJpdi1cXHUwMDNlbmV0ZGV2KTtcXG4xNjExOlxcdH1cXG4xNjEyOlxcdFxcbjE2MTM6XFx0c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgZW5jMjhqNjBfZHRfaWRzW10gPSB7XFxuMTYxNDpcXHRcXHR7IC5jb21wYXRpYmxlID0gXFxcIm1pY3JvY2hpcCxlbmMyOGo2MFxcXCIgfSxcXG4xNjE1OlxcdFxcdHsgLyogc2VudGluZWwgKi8gfVxcbjE2MTY6XFx0fTtcXG4xNjE3OlxcdE1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGVuYzI4ajYwX2R0X2lkcyk7XFxuMTYxODpcXHRcXG4xNjE5OlxcdHN0YXRpYyBzdHJ1Y3Qgc3BpX2RyaXZlciBlbmMyOGo2MF9kcml2ZXIgPSB7XFxuMTYyMDpcXHRcXHQuZHJpdmVyID0ge1xcbjE2MjE6XFx0XFx0XFx0Lm5hbWUgPSBEUlZfTkFNRSxcXG4xNjIyOlxcdFxcdFxcdC5vZl9tYXRjaF90YWJsZSA9IGVuYzI4ajYwX2R0X2lkcyxcXG4xNjIzOlxcdFxcdCB9LFxcbjE2MjQ6XFx0XFx0LnByb2JlID0gZW5jMjhqNjBfcHJvYmUsXFxuMTYyNTpcXHRcXHQucmVtb3ZlID0gZW5jMjhqNjBfcmVtb3ZlLFxcbjE2MjY6XFx0fTtcXG4xNjI3OlxcdG1vZHVsZV9zcGlfZHJpdmVyKGVuYzI4ajYwX2RyaXZlcik7XFxuMTYyODpcXHRcXG4xNjI5OlxcdE1PRFVMRV9ERVNDUklQVElPTihEUlZfTkFNRSBcXFwiIGV0aGVybmV0IGRyaXZlclxcXCIpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yOVQyMDo0MjoyMS4xMzUzMzk1MjhaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo2OTEzNDgwODcwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIFBhdGNoJ3MgRnV6emluZyBQb3RlbnRpYWwqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIFdlJ3JlIGRlYWxpbmcgd2l0aCBhIHBhdGNoIHRoYXQgdG91Y2hlcyB0aGUgYGVuYzI4ajYwYCBkcml2ZXIsIHNwZWNpZmljYWxseSB0aGUgYC5yZW1vdmVgIGNhbGxiYWNrLCBgZW5jMjhqNjBfcmVtb3ZlYC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIFwiSXMgdGhpcyBmdXp6YWJsZSwgb3IgaXMgaXQgYSBjbGVhbnVwIHJvdXRpbmUgdGhhdCdzIG5vdCByZWxldmFudCB0byBydW50aW1lIGZ1enppbmc/XCJcblxuRmlyc3QsIEkgbmVlZCB0byBjb25maXJtIHRoYXQgYGVuYzI4ajYwYCBpcyBpbmRlZWQgYW4gU1BJIEV0aGVybmV0IGRyaXZlcjsgaXQncyBzdGF0ZWQsIGFuZCB0aGF0IGNoZWNrcyBvdXQuIFRoaXMgaXMgaGFyZHdhcmUtYmFzZWQsIGEgc3RhbmRhbG9uZSBTUEkgRXRoZXJuZXQgY2hpcC4gSXQncyAqbm90KiBzb21lIGVtdWxhdGVkIGRldmljZSB3aXRoaW4gc3RhbmRhcmQgUUVNVSBvciBHQ0UuIFRoaXMgaXMgY3J1Y2lhbCBmb3IgZGV0ZXJtaW5pbmcgaWYgaXQgaXMgd29ydGggZnV6emluZy4gVGhlIGtleSBjaGFuZ2UgaXMgaXNvbGF0ZWQgd2l0aGluIHRoZSBgZW5jMjhqNjBfcmVtb3ZlYCBmdW5jdGlvbiwgd2hpY2ggaXMsIGltcG9ydGFudGx5LCB0aGUgYC5yZW1vdmVgIGNhbGxiYWNrIG9mIHRoZSBkcml2ZXIuXG5cbk5vdywgbGV0J3MgcnVuIHRocm91Z2ggdGhlIGNyaXRlcmlhLiBJcyB0aGlzIGEgZG9jdW1lbnRhdGlvbiBjaGFuZ2U/IE5vLiBEZWNvcmF0aXZlIGNoYW5nZSBsaWtlIGxvZ2dpbmc/IE5vLiBOdW1lcmljIGNvbnN0YW50cz8gTm8uIFVucmVhY2hhYmxlIGNvZGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzPyBOb3QgYXBwbGljYWJsZSBoZXJlOyBpdCdzIGhhcmR3YXJlLiBTcGVjaWZpYyBoYXJkd2FyZSBsaWtlIFBDSSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycz8gTm8uXG5cblRoZSBwYXRjaCAqb25seSogbW9kaWZpZXMgdGhlIGAucmVtb3ZlYCBjYWxsYmFjay4gVGhpcyBmdW5jdGlvbiBpcyB0cmlnZ2VyZWQgZHVyaW5nIHVuYmluZCBvciBob3QtdW5wbHVnIG9wZXJhdGlvbnMsIGRlYWxpbmcgd2l0aCBjbGVhbmluZyB1cCB3b3JrcXVldWVzIGFuZCBgdHhfc2tiYCB3aGVuIHRoZSBkZXZpY2UgaXMgcmVtb3ZlZC4gR2l2ZW4gYWxsIHRoZSBmYWN0b3JzLCBhbmQgdGhpcyBzcGVjaWZpY2FsbHkgYmVpbmcgYW4gU1BJIGhhcmR3YXJlIGRldmljZSwgdGhpcyBzdHJvbmdseSBzdWdnZXN0cyB0aGlzIGlzIGEgXCJjbGVhbnVwXCIgcmF0aGVyIHRoYW4gc29tZXRoaW5nIGV4cG9zZWQgZHVyaW5nIG5vcm1hbCBvcGVyYXRpb24uXG5cblRoZXJlZm9yZSwgbXkgY29uY2x1c2lvbiBpcyB0aGF0IHRoaXMgY2hhbmdlIGlzIG5vdCBzdWl0YWJsZSBmb3IgZnV6emluZy4gSSdsbCBuZWVkIHRvIGNhbGwgYHNldC1yZXN1bHRzYCB0b29sIHdpdGggYFdvcnRoRnV6emluZz1mYWxzZWAsIGBGb2N1c1N5bWJvbHM9W11gLCBhbmQgYEVuYWJsZUNvbmZpZ3M9W11gLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNTAyLCJPdXRwdXRUb2tlbnMiOjk1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDgxLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjlUMjA6NDI6MjguMDQ4ODIyMjM4WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozNzk1MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIHRoZSBgLnJlbW92ZWAgY2FsbGJhY2sgKGBlbmMyOGo2MF9yZW1vdmVgKSBvZiB0aGUgZW5jMjhqNjAgU1BJIGV0aGVybmV0IGRyaXZlciB0byBjYW5jZWwgcGVuZGluZyB3b3JrIGl0ZW1zIGFuZCBmcmVlIHR4X3NrYiB1cG9uIGRldmljZSByZW1vdmFsL3VuYmluZC4gRHJpdmVyIHJlbW92ZSBjYWxsYmFja3MgZXhlY3V0ZWQgZHVyaW5nIHVuYmluZGluZy90ZWFyZG93biBhcmUgbm90IHdvcnRoIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIHRoZSBgLnJlbW92ZWAgY2FsbGJhY2sgKGBlbmMyOGo2MF9yZW1vdmVgKSBvZiB0aGUgZW5jMjhqNjAgU1BJIGV0aGVybmV0IGRyaXZlciB0byBjYW5jZWwgcGVuZGluZyB3b3JrIGl0ZW1zIGFuZCBmcmVlIHR4X3NrYiB1cG9uIGRldmljZSByZW1vdmFsL3VuYmluZC4gRHJpdmVyIHJlbW92ZSBjYWxsYmFja3MgZXhlY3V0ZWQgZHVyaW5nIHVuYmluZGluZy90ZWFyZG93biBhcmUgbm90IHdvcnRoIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yOVQyMDo0MjoyOC4wNDg4NjM5MThaIiwiU2VxIjo3LCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzY0MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow9dpw9[1] Phase: Running StartedAt: 2026-08-29 20:42:39 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9dpw9[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-29 20:42:39 +0000 UTC FinishedAt: 2026-08-29 20:42:43 +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,}