Name: series-workflow2rpd8 Phase: Failed StartedAt: 2026-07-28 05:19:37 +0000 UTC FinishedAt: 2026-07-28 05:54:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2rpd8[0] Phase: Succeeded StartedAt: 2026-07-28 05:19:37 +0000 UTC FinishedAt: 2026-07-28 05:53:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2rpd8[0].run-triage Phase: Succeeded StartedAt: 2026-07-28 05:19:37 +0000 UTC FinishedAt: 2026-07-28 05:53:50 +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+CgkJCTx0ZD4yMDI2LzA3LzI4IDA1OjUzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgY29udGFpbnMgbW9kaWZpY2F0aW9ucyB0byBLY29uZmlnIGZpbGVzLCBjb2RlIGNvbW1lbnRzLCBhbmQgc2VsZnRlc3RzLiBJdCBkb2VzIG5vdCBtb2RpZnkgYW55IGV4ZWN1dGFibGUga2VybmVsIHNvdXJjZSBjb2RlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwNTo1MzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDYyYTNhODEyMWEwNGUwMDkyNTkzZTY1YTVlNGExMGRmMzZjZWNjZGZcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEp1bCAyOCAwNTo1MzoxOCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L0tjb25maWcgYi9hcmNoL2FybTY0L0tjb25maWdcbmluZGV4IDBkZTQxOWVkNzgwZjEzLi5jOThkY2E3Njg1OWIxMSAxMDA2NDRcbi0tLSBhL2FyY2gvYXJtNjQvS2NvbmZpZ1xuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9hcm02NC9LY29uZmlnXG5AQCAtMTg4LDYgJiM0MzsxODgsOCBAQCBjb25maWcgQVJNNjRcbiBcdFx0ICAgIENMQU5HX1NVUFBPUlRTX0RZTkFNSUNfRlRSQUNFX1dJVEhfQVJHUylcbiBcdHNlbGVjdCBIQVZFX0RZTkFNSUNfRlRSQUNFX1dJVEhfRElSRUNUX0NBTExTIFxcXG4gXHRcdGlmIERZTkFNSUNfRlRSQUNFX1dJVEhfQVJHU1xuJiM0MztcdHNlbGVjdCBIQVZFX1NJTkdMRV9GVFJBQ0VfRElSRUNUX09QUyBcXFxuJiM0MztcdFx0aWYgRFlOQU1JQ19GVFJBQ0VfV0lUSF9ESVJFQ1RfQ0FMTFNcbiBcdHNlbGVjdCBIQVZFX0RZTkFNSUNfRlRSQUNFX1dJVEhfQ0FMTF9PUFMgXFxcbiBcdFx0aWYgKERZTkFNSUNfRlRSQUNFX1dJVEhfQVJHUyBcdTAwMjZcdTAwMjYgIUNGSSBcdTAwMjZcdTAwMjYgXFxcbiBcdFx0ICAgIChDQ19JU19DTEFORyB8fCAhQ0NfT1BUSU1JWkVfRk9SX1NJWkUpKVxuZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQva2VybmVsL2Z0cmFjZS5jIGIvYXJjaC9hcm02NC9rZXJuZWwvZnRyYWNlLmNcbmluZGV4IGUxYTNjMGIzYTA1MTQ2Li41NmJhNzJhODdkZmFjMCAxMDA2NDRcbi0tLSBhL2FyY2gvYXJtNjQva2VybmVsL2Z0cmFjZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL2FybTY0L2tlcm5lbC9mdHJhY2UuY1xuQEAgLTMwMSw4ICYjNDM7MzAxLDcgQEAgc3RhdGljIGJvb2wgZnRyYWNlX2ZpbmRfY2FsbGFibGVfYWRkcihzdHJ1Y3QgZHluX2Z0cmFjZSAqcmVjLFxuIFxuIFx0LypcbiBcdCAqIElmIGEgY3VzdG9tIHRyYW1wb2xpbmUgaXMgdW5yZWFjaGFibGUsIHJlbHkgb24gdGhlIGZ0cmFjZV9jYWxsZXJcbi1cdCAqIHRyYW1wb2xpbmUgd2hpY2gga25vd3MgaG93IHRvIGluZGlyZWN0bHkgcmVhY2ggdGhhdCB0cmFtcG9saW5lXG4tXHQgKiB0aHJvdWdoIG9wcy1cdTAwM2VkaXJlY3RfY2FsbC5cbiYjNDM7XHQgKiB0cmFtcG9saW5lIHdoaWNoIGtub3dzIGhvdyB0byBpbmRpcmVjdGx5IHJlYWNoIHRoYXQgdHJhbXBvbGluZS5cbiBcdCAqL1xuIFx0aWYgKCphZGRyICE9IEZUUkFDRV9BRERSIFx1MDAyNlx1MDAyNiAhcmVhY2hhYmxlX2J5X2JsKCphZGRyLCBwYykpXG4gXHRcdCphZGRyID0gRlRSQUNFX0FERFI7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvdHJhY2luZ19tdWx0aS5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvdHJhY2luZ19tdWx0aS5jXG5pbmRleCBmMDJmZmM3ZjQxZDc4NC4uNWFhNDhlMDkwMzQwNDQgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy90cmFjaW5nX211bHRpLmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3RyYWNpbmdfbXVsdGkuY1xuQEAgLTYxMiw3ICYjNDM7NjEyLDcgQEAgdm9pZCBzZXJpYWxfdGVzdF90cmFjaW5nX211bHRpX2JlbmNoX2F0dGFjaCh2b2lkKVxuIFx0c3RydWN0IGJ0ZiAqYnRmO1xuIFx0aW50IGVycjtcbiBcbi0jaWZuZGVmIF9feDg2XzY0X19cbiYjNDM7I2lmICFBUkNIX1NVUFBPUlRTX1RSQUNJTkdfTVVMVElfTElOS1xuIFx0dGVzdF9fc2tpcCgpO1xuIFx0cmV0dXJuO1xuICNlbmRpZlxuQEAgLTkyMyw2ICYjNDM7OTIzLDExIEBAIHN0YXRpYyB2b2lkIHRlc3Rfcm9sbGJhY2tfdW5saW5rKHZvaWQpXG4gXG4gdm9pZCBzZXJpYWxfdGVzdF90cmFjaW5nX211bHRpX2F0dGFjaF9yb2xsYmFjayh2b2lkKVxuIHtcbiYjNDM7I2lmICFBUkNIX1NVUFBPUlRTX1RSQUNJTkdfTVVMVElfTElOS1xuJiM0MztcdHRlc3RfX3NraXAoKTtcbiYjNDM7XHRyZXR1cm47XG4mIzQzOyNlbmRpZlxuJiM0MztcbiBcdGlmICh0ZXN0X19zdGFydF9zdWJ0ZXN0KFwmIzM0O3B1dFwmIzM0OykpXG4gXHRcdHRlc3Rfcm9sbGJhY2tfcHV0KCk7XG4gXHRpZiAodGVzdF9fc3RhcnRfc3VidGVzdChcJiMzNDt1bmxpbmtcJiMzNDspKVxuQEAgLTkzMSw3ICYjNDM7OTM2LDcgQEAgdm9pZCBzZXJpYWxfdGVzdF90cmFjaW5nX211bHRpX2F0dGFjaF9yb2xsYmFjayh2b2lkKVxuIFxuIHZvaWQgdGVzdF90cmFjaW5nX211bHRpX3Rlc3Qodm9pZClcbiB7XG4tI2lmbmRlZiBfX3g4Nl82NF9fXG4mIzQzOyNpZiAhQVJDSF9TVVBQT1JUU19UUkFDSU5HX01VTFRJX0xJTktcbiBcdHRlc3RfX3NraXAoKTtcbiBcdHJldHVybjtcbiAjZW5kaWZcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9wcm9ncy5oIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3RfcHJvZ3MuaFxuaW5kZXggMmNmOTUwYWZjZDg1NDMuLmIxNDk4ZTg0NzczYzg0IDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3RfcHJvZ3MuaFxuJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3RfcHJvZ3MuaFxuQEAgLTU2Nyw0ICYjNDM7NTY3LDEwIEBAIHZvaWQgdmFsaWRhdGVfbXNncyhjb25zdCBjaGFyICpsb2dfYnVmLCBzdHJ1Y3QgZXhwZWN0ZWRfbXNncyAqbXNncyxcbiB2b2lkIGZyZWVfbXNncyhzdHJ1Y3QgZXhwZWN0ZWRfbXNncyAqbXNncyk7XG4gdm9pZCB2ZXJpZnlfdGVzdF9zdGRlcnIoc3RydWN0IGJwZl9vYmplY3QgKm9iaiwgc3RydWN0IGJwZl9wcm9ncmFtICpwcm9nKTtcbiBcbiYjNDM7I2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXylcbiYjNDM7I2RlZmluZSBBUkNIX1NVUFBPUlRTX1RSQUNJTkdfTVVMVElfTElOSyAxXG4mIzQzOyNlbHNlXG4mIzQzOyNkZWZpbmUgQVJDSF9TVVBQT1JUU19UUkFDSU5HX01VTFRJX0xJTksgMFxuJiM0MzsjZW5kaWZcbiYjNDM7XG4gI2VuZGlmIC8qIF9fVEVTVF9QUk9HU19IICovXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDU6NTM8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgY29udGFpbnMgbW9kaWZpY2F0aW9ucyB0byBLY29uZmlnIGZpbGVzLCBjb2RlIGNvbW1lbnRzLCBhbmQgc2VsZnRlc3RzLiBJdCBkb2VzIG5vdCBtb2RpZnkgYW55IGV4ZWN1dGFibGUga2VybmVsIHNvdXJjZSBjb2RlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDYyYTNhODEyMWEwNGUwMDkyNTkzZTY1YTVlNGExMGRmMzZjZWNjZGYKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVHVlIEp1bCAyOCAwNTo1MzoxOCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvS2NvbmZpZyBiL2FyY2gvYXJtNjQvS2NvbmZpZwppbmRleCAwZGU0MTllZDc4MGYxMy4uYzk4ZGNhNzY4NTliMTEgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtNjQvS2NvbmZpZwomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL2FybTY0L0tjb25maWcKQEAgLTE4OCw2ICYjNDM7MTg4LDggQEAgY29uZmlnIEFSTTY0CiAJCSAgICBDTEFOR19TVVBQT1JUU19EWU5BTUlDX0ZUUkFDRV9XSVRIX0FSR1MpCiAJc2VsZWN0IEhBVkVfRFlOQU1JQ19GVFJBQ0VfV0lUSF9ESVJFQ1RfQ0FMTFMgXAogCQlpZiBEWU5BTUlDX0ZUUkFDRV9XSVRIX0FSR1MKJiM0MzsJc2VsZWN0IEhBVkVfU0lOR0xFX0ZUUkFDRV9ESVJFQ1RfT1BTIFwKJiM0MzsJCWlmIERZTkFNSUNfRlRSQUNFX1dJVEhfRElSRUNUX0NBTExTCiAJc2VsZWN0IEhBVkVfRFlOQU1JQ19GVFJBQ0VfV0lUSF9DQUxMX09QUyBcCiAJCWlmIChEWU5BTUlDX0ZUUkFDRV9XSVRIX0FSR1MgJmFtcDsmYW1wOyAhQ0ZJICZhbXA7JmFtcDsgXAogCQkgICAgKENDX0lTX0NMQU5HIHx8ICFDQ19PUFRJTUlaRV9GT1JfU0laRSkpCmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2tlcm5lbC9mdHJhY2UuYyBiL2FyY2gvYXJtNjQva2VybmVsL2Z0cmFjZS5jCmluZGV4IGUxYTNjMGIzYTA1MTQ2Li41NmJhNzJhODdkZmFjMCAxMDA2NDQKLS0tIGEvYXJjaC9hcm02NC9rZXJuZWwvZnRyYWNlLmMKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9hcm02NC9rZXJuZWwvZnRyYWNlLmMKQEAgLTMwMSw4ICYjNDM7MzAxLDcgQEAgc3RhdGljIGJvb2wgZnRyYWNlX2ZpbmRfY2FsbGFibGVfYWRkcihzdHJ1Y3QgZHluX2Z0cmFjZSAqcmVjLAogCiAJLyoKIAkgKiBJZiBhIGN1c3RvbSB0cmFtcG9saW5lIGlzIHVucmVhY2hhYmxlLCByZWx5IG9uIHRoZSBmdHJhY2VfY2FsbGVyCi0JICogdHJhbXBvbGluZSB3aGljaCBrbm93cyBob3cgdG8gaW5kaXJlY3RseSByZWFjaCB0aGF0IHRyYW1wb2xpbmUKLQkgKiB0aHJvdWdoIG9wcy0mZ3Q7ZGlyZWN0X2NhbGwuCiYjNDM7CSAqIHRyYW1wb2xpbmUgd2hpY2gga25vd3MgaG93IHRvIGluZGlyZWN0bHkgcmVhY2ggdGhhdCB0cmFtcG9saW5lLgogCSAqLwogCWlmICgqYWRkciAhPSBGVFJBQ0VfQUREUiAmYW1wOyZhbXA7ICFyZWFjaGFibGVfYnlfYmwoKmFkZHIsIHBjKSkKIAkJKmFkZHIgPSBGVFJBQ0VfQUREUjsKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3RyYWNpbmdfbXVsdGkuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3RyYWNpbmdfbXVsdGkuYwppbmRleCBmMDJmZmM3ZjQxZDc4NC4uNWFhNDhlMDkwMzQwNDQgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3RyYWNpbmdfbXVsdGkuYwomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy90cmFjaW5nX211bHRpLmMKQEAgLTYxMiw3ICYjNDM7NjEyLDcgQEAgdm9pZCBzZXJpYWxfdGVzdF90cmFjaW5nX211bHRpX2JlbmNoX2F0dGFjaCh2b2lkKQogCXN0cnVjdCBidGYgKmJ0ZjsKIAlpbnQgZXJyOwogCi0jaWZuZGVmIF9feDg2XzY0X18KJiM0MzsjaWYgIUFSQ0hfU1VQUE9SVFNfVFJBQ0lOR19NVUxUSV9MSU5LCiAJdGVzdF9fc2tpcCgpOwogCXJldHVybjsKICNlbmRpZgpAQCAtOTIzLDYgJiM0Mzs5MjMsMTEgQEAgc3RhdGljIHZvaWQgdGVzdF9yb2xsYmFja191bmxpbmsodm9pZCkKIAogdm9pZCBzZXJpYWxfdGVzdF90cmFjaW5nX211bHRpX2F0dGFjaF9yb2xsYmFjayh2b2lkKQogewomIzQzOyNpZiAhQVJDSF9TVVBQT1JUU19UUkFDSU5HX01VTFRJX0xJTksKJiM0MzsJdGVzdF9fc2tpcCgpOwomIzQzOwlyZXR1cm47CiYjNDM7I2VuZGlmCiYjNDM7CiAJaWYgKHRlc3RfX3N0YXJ0X3N1YnRlc3QoJiMzNDtwdXQmIzM0OykpCiAJCXRlc3Rfcm9sbGJhY2tfcHV0KCk7CiAJaWYgKHRlc3RfX3N0YXJ0X3N1YnRlc3QoJiMzNDt1bmxpbmsmIzM0OykpCkBAIC05MzEsNyAmIzQzOzkzNiw3IEBAIHZvaWQgc2VyaWFsX3Rlc3RfdHJhY2luZ19tdWx0aV9hdHRhY2hfcm9sbGJhY2sodm9pZCkKIAogdm9pZCB0ZXN0X3RyYWNpbmdfbXVsdGlfdGVzdCh2b2lkKQogewotI2lmbmRlZiBfX3g4Nl82NF9fCiYjNDM7I2lmICFBUkNIX1NVUFBPUlRTX1RSQUNJTkdfTVVMVElfTElOSwogCXRlc3RfX3NraXAoKTsKIAlyZXR1cm47CiAjZW5kaWYKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X3Byb2dzLmggYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9wcm9ncy5oCmluZGV4IDJjZjk1MGFmY2Q4NTQzLi5iMTQ5OGU4NDc3M2M4NCAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3RfcHJvZ3MuaAomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9wcm9ncy5oCkBAIC01NjcsNCAmIzQzOzU2NywxMCBAQCB2b2lkIHZhbGlkYXRlX21zZ3MoY29uc3QgY2hhciAqbG9nX2J1Ziwgc3RydWN0IGV4cGVjdGVkX21zZ3MgKm1zZ3MsCiB2b2lkIGZyZWVfbXNncyhzdHJ1Y3QgZXhwZWN0ZWRfbXNncyAqbXNncyk7CiB2b2lkIHZlcmlmeV90ZXN0X3N0ZGVycihzdHJ1Y3QgYnBmX29iamVjdCAqb2JqLCBzdHJ1Y3QgYnBmX3Byb2dyYW0gKnByb2cpOwogCiYjNDM7I2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykKJiM0MzsjZGVmaW5lIEFSQ0hfU1VQUE9SVFNfVFJBQ0lOR19NVUxUSV9MSU5LIDEKJiM0MzsjZWxzZQomIzQzOyNkZWZpbmUgQVJDSF9TVVBQT1JUU19UUkFDSU5HX01VTFRJX0xJTksgMAomIzQzOyNlbmRpZgomIzQzOwogI2VuZGlmIC8qIF9fVEVTVF9QUk9HU19IICovCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDA1OjUzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMwMDQKCQkJCQkJCW91dHB1dDogMjUKCQkJCQkJCXRob3VnaHRzOiAzMjUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgUGF0Y2g6IE1pbmltYWwgRnVuY3Rpb25hbCBJbXBhY3Q/KioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpdCB0b3VjaGVzIGEgZmV3IGZpbGVzOiBgYXJjaC9hcm02NC9LY29uZmlnYCwgYGFyY2gvYXJtNjQva2VybmVsL2Z0cmFjZS5jYCwgYW5kIHNvbWUgQlBGIHNlbGZ0ZXN0cy4gSW5pdGlhbGx5LCBpdCBzZWVtcyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkLiBUaGUgYEtjb25maWdgIGNoYW5nZSBsb29rcyBsaWtlIGl0JiMzOTtzIHNlbGVjdGluZyBgSEFWRV9TSU5HTEVfRlRSQUNFX0RJUkVDVF9PUFNgIGlmIGBEWU5BTUlDX0ZUUkFDRV9XSVRIX0RJUkVDVF9DQUxMU2AgaXMgZW5hYmxlZC4gU2VlbXMgbGlrZSBhIGRlcGVuZGVuY3kgb3IgY29uZmlndXJhdGlvbiBmbGFnIHJlbGF0ZWQgdG8gZnRyYWNlIGFuZCBkaXJlY3QgY2FsbHMuIFRoZW4sIGBhcmNoL2FybTY0L2tlcm5lbC9mdHJhY2UuY2AgaXMganVzdCBhIGNvbW1lbnQgdHdlYWssIHdoaWNoIGlzIHVzdWFsbHkgbm90IGEgYmlnIGRlYWwuIFRoZSBCUEYgc2VsZnRlc3QgY2hhbmdlcyBpbiBgdHJhY2luZ19tdWx0aS5jYCBhbmQgYHRlc3RfcHJvZ3MuaGAgdXBkYXRlIGFyY2hpdGVjdHVyZSBjaGVja3MsIGxpa2VseSB0byBhY2NvdW50IGZvciB0aGUgbmV3IGNvbmZpZ3VyYXRpb24uCgpCdXQgd2FpdCwgaXMgdGhpcyAqanVzdCogY29uZmlndXJhdGlvbiBhbmQgdGVzdGluZywgb3IgaXMgdGhlcmUgYW55IGFjdHVhbCBrZXJuZWwgZnVuY3Rpb25hbGl0eSBiZWluZyBtb2RpZmllZD8gSXQmIzM5O3MgaW1wb3J0YW50IHRvIGJlIGNhcmVmdWwsIGV2ZW4gd2l0aCBzZWVtaW5nbHkgaW5ub2N1b3VzIGNoYW5nZXMuIExldCYjMzk7cyBicmVhayBpdCBkb3duIGFnYWluIHRvIG1ha2Ugc3VyZTogdGhlIEtjb25maWcgY2hhbmdlIGFkZHMgYSBgc2VsZWN0YCBzdGF0ZW1lbnQuIFRoZSBmdHJhY2UuYyBjaGFuZ2UgaXMganVzdCBhIGNvbW1lbnQuIEFuZCB0aGUgQlBGIGZpbGVzIGFyZSBkZWZpbml0ZWx5IHNlbGZ0ZXN0cy4KCk9rYXksIEkmIzM5O20gZ2V0dGluZyBhIGxpdHRsZSB1bmVhc3kgYWJvdXQgdGhhdCBgc2VsZWN0IEhBVkVfU0lOR0xFX0ZUUkFDRV9ESVJFQ1RfT1BTYCBzdGF0ZW1lbnQgaW4gdGhlIGBLY29uZmlnYCBmaWxlLiBFdmVuIHRob3VnaCB0aGUgb3RoZXIgY2hhbmdlcyBhcmUgY2xlYXJseSBub3QgZnVuY3Rpb25hbCwgdGhhdCBzZWxlY3QgbWlnaHQgKmVuYWJsZSogc29tZSBjb2RlIHBhdGhzIHdpdGhpbiB0aGUga2VybmVsIGl0c2VsZi4gSSBjYW4mIzM5O3QgYmUgc3VyZSB1bnRpbCBJIGtub3cgd2hhdCBgSEFWRV9TSU5HTEVfRlRSQUNFX0RJUkVDVF9PUFNgIGFjdHVhbGx5ICpkb2VzKi4gSSBuZWVkIHRvIGludmVzdGlnYXRlIHRoYXQgS2NvbmZpZyBvcHRpb24gYW5kIHNlZSB3aGF0IGl0IGVuYWJsZXMuIFRoYXQmIzM5O3MgdGhlIGtleSB0byB1bmRlcnN0YW5kaW5nIHRoZSBmdWxsIGltcGFjdCBoZXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDA1OjUzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O0hBVkVfU0lOR0xFX0ZUUkFDRV9ESVJFQ1RfT1BTJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gvYXJtNjQvS2NvbmZpZz0yPWNvbmZpZyBBUk02NFxuLS1cbmFyY2gvYXJtNjQvS2NvbmZpZy0xOTAtXHRcdGlmIERZTkFNSUNfRlRSQUNFX1dJVEhfQVJHU1xuYXJjaC9hcm02NC9LY29uZmlnOjE5MTpcdHNlbGVjdCBIQVZFX1NJTkdMRV9GVFJBQ0VfRElSRUNUX09QUyBcXFxuYXJjaC9hcm02NC9LY29uZmlnLTE5Mi1cdFx0aWYgRFlOQU1JQ19GVFJBQ0VfV0lUSF9ESVJFQ1RfQ0FMTFNcbi0tXG5hcmNoL3g4Ni9LY29uZmlnPTU4PWNvbmZpZyBYODZcbi0tXG5hcmNoL3g4Ni9LY29uZmlnLTMzNy1cdHNlbGVjdCBBUkNIX1NVUFBPUlRTX1NDSEVEX01DXHRcdGlmIFNNUFxuYXJjaC94ODYvS2NvbmZpZzozMzg6XHRzZWxlY3QgSEFWRV9TSU5HTEVfRlRSQUNFX0RJUkVDVF9PUFNcdGlmIFg4Nl82NCBcdTAwMjZcdTAwMjYgRFlOQU1JQ19GVFJBQ0VfV0lUSF9ESVJFQ1RfQ0FMTFNcbmFyY2gveDg2L0tjb25maWctMzM5LVxuLS1cbmtlcm5lbC9icGYvdHJhbXBvbGluZS5jPTcyPXN0YXRpYyBjb25zdCBzdHJ1Y3QgYnBmX3RyYW1wb2xpbmVfb3BzIHRyYW1wb2xpbmVfb3BzO1xua2VybmVsL2JwZi90cmFtcG9saW5lLmMtNzMtXG5rZXJuZWwvYnBmL3RyYW1wb2xpbmUuYzo3NDojaWZkZWYgQ09ORklHX0hBVkVfU0lOR0xFX0ZUUkFDRV9ESVJFQ1RfT1BTXG5rZXJuZWwvYnBmL3RyYW1wb2xpbmUuYy03NS1zdGF0aWMgc3RydWN0IGJwZl90cmFtcG9saW5lICpkaXJlY3Rfb3BzX2lwX2xvb2t1cChzdHJ1Y3QgZnRyYWNlX29wcyAqb3BzLCB1bnNpZ25lZCBsb25nIGlwKVxuLS1cbmtlcm5lbC9icGYvdHJhbXBvbGluZS5jPTkyPXN0YXRpYyBzdHJ1Y3QgYnBmX3RyYW1wb2xpbmUgKmRpcmVjdF9vcHNfaXBfbG9va3VwKHN0cnVjdCBmdHJhY2Vfb3BzICpvcHMsIHVuc2lnbmVkIGxvbmcgaXApXG4tLVxua2VybmVsL2JwZi90cmFtcG9saW5lLmMtOTUtfVxua2VybmVsL2JwZi90cmFtcG9saW5lLmM6OTY6I2VuZGlmIC8qIENPTkZJR19IQVZFX1NJTkdMRV9GVFJBQ0VfRElSRUNUX09QUyAqL1xua2VybmVsL2JwZi90cmFtcG9saW5lLmMtOTctXG4tLVxua2VybmVsL2JwZi90cmFtcG9saW5lLmM9MjEwPXZvaWQgYnBmX2ltYWdlX2tzeW1fZGVsKHN0cnVjdCBicGZfa3N5bSAqa3N5bSlcbi0tXG5rZXJuZWwvYnBmL3RyYW1wb2xpbmUuYy0yMTctI2lmZGVmIENPTkZJR19EWU5BTUlDX0ZUUkFDRV9XSVRIX0RJUkVDVF9DQUxMU1xua2VybmVsL2JwZi90cmFtcG9saW5lLmM6MjE4OiNpZmRlZiBDT05GSUdfSEFWRV9TSU5HTEVfRlRSQUNFX0RJUkVDVF9PUFNcbmtlcm5lbC9icGYvdHJhbXBvbGluZS5jLTIxOS0vKlxuLS1cbmtlcm5lbC9icGYvdHJhbXBvbGluZS5jPTMzNz1zdGF0aWMgaW50IGRpcmVjdF9vcHNfbW9kKHN0cnVjdCBicGZfdHJhbXBvbGluZSAqdHIsIHZvaWQgKnB0ciwgYm9vbCBsb2NrX2RpcmVjdF9tdXRleClcbi0tXG5rZXJuZWwvYnBmL3RyYW1wb2xpbmUuYy0zNDctfVxua2VybmVsL2JwZi90cmFtcG9saW5lLmM6MzQ4OiNlbmRpZiAvKiBDT05GSUdfSEFWRV9TSU5HTEVfRlRSQUNFX0RJUkVDVF9PUFMgKi9cbmtlcm5lbC9icGYvdHJhbXBvbGluZS5jLTM0OS0jZWxzZVxuLS1cbmtlcm5lbC9icGYvdHJhbXBvbGluZS5jPTE0Njc9aW50IF9fd2VhayBhcmNoX2JwZl90cmFtcG9saW5lX3NpemUoY29uc3Qgc3RydWN0IGJ0Zl9mdW5jX21vZGVsICptLCB1MzIgZmxhZ3MsXG4tLVxua2VybmVsL2JwZi90cmFtcG9saW5lLmMtMTQ3My0jaWYgZGVmaW5lZChDT05GSUdfRFlOQU1JQ19GVFJBQ0VfV0lUSF9ESVJFQ1RfQ0FMTFMpIFx1MDAyNlx1MDAyNiBcXFxua2VybmVsL2JwZi90cmFtcG9saW5lLmM6MTQ3NDogICAgZGVmaW5lZChDT05GSUdfSEFWRV9TSU5HTEVfRlRSQUNFX0RJUkVDVF9PUFMpIFx1MDAyNlx1MDAyNiBcXFxua2VybmVsL2JwZi90cmFtcG9saW5lLmMtMTQ3NS0gICAgZGVmaW5lZChDT05GSUdfQlBGX1NZU0NBTEwpXG4tLVxua2VybmVsL2JwZi90cmFtcG9saW5lLmM9MTcxMT1pbnQgYnBmX3RyYW1wb2xpbmVfbXVsdGlfZGV0YWNoKHN0cnVjdCBicGZfcHJvZyAqcHJvZywgc3RydWN0IGJwZl90cmFjaW5nX211bHRpX2xpbmsgKmxpbmspXG4tLVxua2VybmVsL2JwZi90cmFtcG9saW5lLmMtMTc0Ni0jZW5kaWYgLyogQ09ORklHX0RZTkFNSUNfRlRSQUNFX1dJVEhfRElSRUNUX0NBTExTIFx1MDAyNlx1MDAyNlxua2VybmVsL2JwZi90cmFtcG9saW5lLmM6MTc0NzpcdCAgQ09ORklHX0hBVkVfU0lOR0xFX0ZUUkFDRV9ESVJFQ1RfT1BTIFx1MDAyNlx1MDAyNlxua2VybmVsL2JwZi90cmFtcG9saW5lLmMtMTc0OC1cdCAgQ09ORklHX0JQRl9TWVNDQUxMICovXG4tLVxua2VybmVsL3RyYWNlL0tjb25maWc9NTA9Y29uZmlnIEhBVkVfRFlOQU1JQ19GVFJBQ0VfV0lUSF9ESVJFQ1RfQ0FMTFNcbi0tXG5rZXJuZWwvdHJhY2UvS2NvbmZpZy01Mi1cbmtlcm5lbC90cmFjZS9LY29uZmlnOjUzOmNvbmZpZyBIQVZFX1NJTkdMRV9GVFJBQ0VfRElSRUNUX09QU1xua2VybmVsL3RyYWNlL0tjb25maWctNTQtXHRib29sXG4tLVxua2VybmVsL3RyYWNlL2JwZl90cmFjZS5jPTM2ODA9X19icGZfa2Z1bmNfZW5kX2RlZnMoKTtcbi0tXG5rZXJuZWwvdHJhY2UvYnBmX3RyYWNlLmMtMzY4Mi0jaWYgZGVmaW5lZChDT05GSUdfRFlOQU1JQ19GVFJBQ0VfV0lUSF9ESVJFQ1RfQ0FMTFMpIFx1MDAyNlx1MDAyNiBcXFxua2VybmVsL3RyYWNlL2JwZl90cmFjZS5jOjM2ODM6ICAgIGRlZmluZWQoQ09ORklHX0hBVkVfU0lOR0xFX0ZUUkFDRV9ESVJFQ1RfT1BTKVxua2VybmVsL3RyYWNlL2JwZl90cmFjZS5jLTM2ODQtXG4tLVxua2VybmVsL3RyYWNlL2JwZl90cmFjZS5jPTM4NzU9aW50IGJwZl90cmFjaW5nX211bHRpX2F0dGFjaChzdHJ1Y3QgYnBmX3Byb2cgKnByb2csIGNvbnN0IHVuaW9uIGJwZl9hdHRyICphdHRyKVxuLS1cbmtlcm5lbC90cmFjZS9icGZfdHJhY2UuYy0zODc5LVxua2VybmVsL3RyYWNlL2JwZl90cmFjZS5jOjM4ODA6I2VuZGlmIC8qIENPTkZJR19EWU5BTUlDX0ZUUkFDRV9XSVRIX0RJUkVDVF9DQUxMUyBcdTAwMjZcdTAwMjYgQ09ORklHX0hBVkVfU0lOR0xFX0ZUUkFDRV9ESVJFQ1RfT1BTICovXG4tLVxua2VybmVsL3RyYWNlL2Z0cmFjZS5jPTI2NDk9c3RhdGljIHZvaWQgY2FsbF9kaXJlY3RfZnVuY3ModW5zaWduZWQgbG9uZyBpcCwgdW5zaWduZWQgbG9uZyBwaXAsXG4tLVxua2VybmVsL3RyYWNlL2Z0cmFjZS5jLTI2NTMtXG5rZXJuZWwvdHJhY2UvZnRyYWNlLmM6MjY1NDojaWZkZWYgQ09ORklHX0hBVkVfU0lOR0xFX0ZUUkFDRV9ESVJFQ1RfT1BTXG5rZXJuZWwvdHJhY2UvZnRyYWNlLmMtMjY1NS1cdGFkZHIgPSBmdHJhY2VfZmluZF9yZWNfZGlyZWN0KGlwKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwNTo1MzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MTAwCgkJCQkJCQlvdXRwdXQ6IDU5CgkJCQkJCQl0aG91Z2h0czogODY3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKldvcnRoRnV6emluZyBEZWNpc2lvbiBmb3IgdGhlIFBhdGNoKioKCk9rYXksIGxldCBtZSBicmVhayB0aGlzIGRvd24uIFRoaXMgcGF0Y2ggaXMgZW5hYmxpbmcgYENPTkZJR19IQVZFX1NJTkdMRV9GVFJBQ0VfRElSRUNUX09QU2Agb24gQVJNNjQuIFRoYXQsIGluIHR1cm4sIGVuYWJsZXMgc29tZSBmdW5jdGlvbmFsaXR5IGluIGBrZXJuZWwvYnBmL3RyYW1wb2xpbmUuY2AsIGBrZXJuZWwvdHJhY2UvYnBmX3RyYWNlLmNgLCBhbmQgYGtlcm5lbC90cmFjZS9mdHJhY2UuY2AuIEJ1dCBob2xkIG9uLCB0aGUgcGF0Y2ggKml0c2VsZiogaXMgb25seSB0b3VjaGluZyBLY29uZmlnLCBzZWxmdGVzdHMsIGFuZCBhIGNvbW1lbnQuIEl0JiMzOTtzIGVuYWJsaW5nIGEgZmVhdHVyZSAoQlBGIG11bHRpLWF0dGFjaCkgb24gQVJNNjQsIGJ1dCBub3QgYWN0dWFsbHkgKm1vZGlmeWluZyogYW55IEMgY29kZSBkaXJlY3RseSwgb25seSBhY3RpdmF0aW5nIGV4aXN0aW5nIGNvZGUuCgpUaGUgaW5zdHJ1Y3Rpb25zIHNheSB0byByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAgaWYgdGhlIHBhdGNoICpvbmx5KiBjb250YWlucyBtb2RpZmljYXRpb25zIHRvIGRvY3VtZW50YXRpb24sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuIEFuZCwgSSBzZWUgdGhhdCB0aGlzIHBhdGNoJiMzOTtzIGRpZmYgaW5jbHVkZXMgb25seTogYGFyY2gvYXJtNjQvS2NvbmZpZ2AsIHdoaWNoIGlzIGEgS2NvbmZpZyBmaWxlOyBgYXJjaC9hcm02NC9rZXJuZWwvZnRyYWNlLmNgLCB3aGljaCBoYXMgYSBjb21tZW50OyBhbmQgc29tZSBzZWxmdGVzdHMsIHNwZWNpZmljYWxseSBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvdHJhY2luZ19tdWx0aS5jYCBhbmQgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X3Byb2dzLmhgLgoKVGhlIHJ1bGUgaXMgdmVyeSBjbGVhcjogJiMzNDtSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOiAtIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuJiMzNDsgVGhpcyBwYXRjaCAqZXhhY3RseSogZml0cyB0aGF0IGRlc2NyaXB0aW9uLiBJdCYjMzk7cyBwdXJlbHkgS2NvbmZpZywgY29tbWVudHMsIGFuZCBzZWxmdGVzdHMuCgpOb3csIEkmIzM5O20gdXNlZCB0byB0aGlua2luZyBhYm91dCB3aGV0aGVyIG5ldyBmZWF0dXJlcyBzaG91bGQgYmUgZnV6emVkLCBlc3BlY2lhbGx5IHdoZW4gdGhleSYjMzk7cmUgZW5hYmxlZCB2aWEgS2NvbmZpZy4gU3l6a2FsbGVyIHVzdWFsbHkgd29ya3MgYmFzZWQgb24gY29kZSBjb3ZlcmFnZSwgc28gYSBuZXcgZmVhdHVyZSAqY291bGQqIGJlIGZ1enotd29ydGh5LiBCdXQgdGhlIHByb21wdCBleHBsaWNpdGx5IGdpdmVzIGEgcnVsZSwgYW5kIEkmIzM5O20gb2JsaWdhdGVkIHRvIGZvbGxvdyBpdC4KCk9rYXksIGxldCYjMzk7cyByZS1yZWFkIHRoZSBkaWZmIGFnYWluIHRvIGJlIGFic29sdXRlbHkgc3VyZS4gTm9wZSwgaXQmIzM5O3MganVzdCBLY29uZmlnLCBjb21tZW50LCBhbmQgc2VsZnRlc3RzLiBUaGUgc2VsZnRlc3RzIGFyZSBub3Qga2VybmVsIGNvZGUgYW5kIGFyZSB1c2VyLXNwYWNlLgoKVGhlcmVmb3JlLCBiZWNhdXNlIHRoaXMgcGF0Y2ggKm9ubHkqIGNvbnRhaW5zIGNoYW5nZXMgdG8gS2NvbmZpZyBmaWxlcywgY29kZSBjb21tZW50cywgYW5kIHNlbGZ0ZXN0cywgaXQgZGlyZWN0bHkgbWF0Y2hlcyB0aGUgY3JpdGVyaWEgaW4gdGhlIHByb21wdC4gSSB3aWxsIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwNTo1MzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgY29udGFpbnMgbW9kaWZpY2F0aW9ucyB0byBLY29uZmlnIGZpbGVzLCBjb2RlIGNvbW1lbnRzLCBhbmQgc2VsZnRlc3RzLiBJdCBkb2VzIG5vdCBtb2RpZnkgYW55IGV4ZWN1dGFibGUga2VybmVsIHNvdXJjZSBjb2RlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBjb250YWlucyBtb2RpZmljYXRpb25zIHRvIEtjb25maWcgZmlsZXMsIGNvZGUgY29tbWVudHMsIGFuZCBzZWxmdGVzdHMuIEl0IGRvZXMgbm90IG1vZGlmeSBhbnkgZXhlY3V0YWJsZSBrZXJuZWwgc291cmNlIGNvZGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMjhUMDU6NTM6MTkuNDc4MTI2MjA0WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTk3Mjc0NzA4MTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgY29udGFpbnMgbW9kaWZpY2F0aW9ucyB0byBLY29uZmlnIGZpbGVzLCBjb2RlIGNvbW1lbnRzLCBhbmQgc2VsZnRlc3RzLiBJdCBkb2VzIG5vdCBtb2RpZnkgYW55IGV4ZWN1dGFibGUga2VybmVsIHNvdXJjZSBjb2RlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMDU6NTM6MTkuNDc4MTMzMTE0WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1Nzc4Nzg0MDYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA2MmEzYTgxMjFhMDRlMDA5MjU5M2U2NWE1ZTRhMTBkZjM2Y2VjY2RmXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUdWUgSnVsIDI4IDA1OjUzOjE4IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvS2NvbmZpZyBiL2FyY2gvYXJtNjQvS2NvbmZpZ1xcbmluZGV4IDBkZTQxOWVkNzgwZjEzLi5jOThkY2E3Njg1OWIxMSAxMDA2NDRcXG4tLS0gYS9hcmNoL2FybTY0L0tjb25maWdcXG4rKysgYi9hcmNoL2FybTY0L0tjb25maWdcXG5AQCAtMTg4LDYgKzE4OCw4IEBAIGNvbmZpZyBBUk02NFxcbiBcXHRcXHQgICAgQ0xBTkdfU1VQUE9SVFNfRFlOQU1JQ19GVFJBQ0VfV0lUSF9BUkdTKVxcbiBcXHRzZWxlY3QgSEFWRV9EWU5BTUlDX0ZUUkFDRV9XSVRIX0RJUkVDVF9DQUxMUyBcXFxcXFxuIFxcdFxcdGlmIERZTkFNSUNfRlRSQUNFX1dJVEhfQVJHU1xcbitcXHRzZWxlY3QgSEFWRV9TSU5HTEVfRlRSQUNFX0RJUkVDVF9PUFMgXFxcXFxcbitcXHRcXHRpZiBEWU5BTUlDX0ZUUkFDRV9XSVRIX0RJUkVDVF9DQUxMU1xcbiBcXHRzZWxlY3QgSEFWRV9EWU5BTUlDX0ZUUkFDRV9XSVRIX0NBTExfT1BTIFxcXFxcXG4gXFx0XFx0aWYgKERZTkFNSUNfRlRSQUNFX1dJVEhfQVJHUyBcXHUwMDI2XFx1MDAyNiAhQ0ZJIFxcdTAwMjZcXHUwMDI2IFxcXFxcXG4gXFx0XFx0ICAgIChDQ19JU19DTEFORyB8fCAhQ0NfT1BUSU1JWkVfRk9SX1NJWkUpKVxcbmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2tlcm5lbC9mdHJhY2UuYyBiL2FyY2gvYXJtNjQva2VybmVsL2Z0cmFjZS5jXFxuaW5kZXggZTFhM2MwYjNhMDUxNDYuLjU2YmE3MmE4N2RmYWMwIDEwMDY0NFxcbi0tLSBhL2FyY2gvYXJtNjQva2VybmVsL2Z0cmFjZS5jXFxuKysrIGIvYXJjaC9hcm02NC9rZXJuZWwvZnRyYWNlLmNcXG5AQCAtMzAxLDggKzMwMSw3IEBAIHN0YXRpYyBib29sIGZ0cmFjZV9maW5kX2NhbGxhYmxlX2FkZHIoc3RydWN0IGR5bl9mdHJhY2UgKnJlYyxcXG4gXFxuIFxcdC8qXFxuIFxcdCAqIElmIGEgY3VzdG9tIHRyYW1wb2xpbmUgaXMgdW5yZWFjaGFibGUsIHJlbHkgb24gdGhlIGZ0cmFjZV9jYWxsZXJcXG4tXFx0ICogdHJhbXBvbGluZSB3aGljaCBrbm93cyBob3cgdG8gaW5kaXJlY3RseSByZWFjaCB0aGF0IHRyYW1wb2xpbmVcXG4tXFx0ICogdGhyb3VnaCBvcHMtXFx1MDAzZWRpcmVjdF9jYWxsLlxcbitcXHQgKiB0cmFtcG9saW5lIHdoaWNoIGtub3dzIGhvdyB0byBpbmRpcmVjdGx5IHJlYWNoIHRoYXQgdHJhbXBvbGluZS5cXG4gXFx0ICovXFxuIFxcdGlmICgqYWRkciAhPSBGVFJBQ0VfQUREUiBcXHUwMDI2XFx1MDAyNiAhcmVhY2hhYmxlX2J5X2JsKCphZGRyLCBwYykpXFxuIFxcdFxcdCphZGRyID0gRlRSQUNFX0FERFI7XFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3RyYWNpbmdfbXVsdGkuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3RyYWNpbmdfbXVsdGkuY1xcbmluZGV4IGYwMmZmYzdmNDFkNzg0Li41YWE0OGUwOTAzNDA0NCAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy90cmFjaW5nX211bHRpLmNcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy90cmFjaW5nX211bHRpLmNcXG5AQCAtNjEyLDcgKzYxMiw3IEBAIHZvaWQgc2VyaWFsX3Rlc3RfdHJhY2luZ19tdWx0aV9iZW5jaF9hdHRhY2godm9pZClcXG4gXFx0c3RydWN0IGJ0ZiAqYnRmO1xcbiBcXHRpbnQgZXJyO1xcbiBcXG4tI2lmbmRlZiBfX3g4Nl82NF9fXFxuKyNpZiAhQVJDSF9TVVBQT1JUU19UUkFDSU5HX01VTFRJX0xJTktcXG4gXFx0dGVzdF9fc2tpcCgpO1xcbiBcXHRyZXR1cm47XFxuICNlbmRpZlxcbkBAIC05MjMsNiArOTIzLDExIEBAIHN0YXRpYyB2b2lkIHRlc3Rfcm9sbGJhY2tfdW5saW5rKHZvaWQpXFxuIFxcbiB2b2lkIHNlcmlhbF90ZXN0X3RyYWNpbmdfbXVsdGlfYXR0YWNoX3JvbGxiYWNrKHZvaWQpXFxuIHtcXG4rI2lmICFBUkNIX1NVUFBPUlRTX1RSQUNJTkdfTVVMVElfTElOS1xcbitcXHR0ZXN0X19za2lwKCk7XFxuK1xcdHJldHVybjtcXG4rI2VuZGlmXFxuK1xcbiBcXHRpZiAodGVzdF9fc3RhcnRfc3VidGVzdChcXFwicHV0XFxcIikpXFxuIFxcdFxcdHRlc3Rfcm9sbGJhY2tfcHV0KCk7XFxuIFxcdGlmICh0ZXN0X19zdGFydF9zdWJ0ZXN0KFxcXCJ1bmxpbmtcXFwiKSlcXG5AQCAtOTMxLDcgKzkzNiw3IEBAIHZvaWQgc2VyaWFsX3Rlc3RfdHJhY2luZ19tdWx0aV9hdHRhY2hfcm9sbGJhY2sodm9pZClcXG4gXFxuIHZvaWQgdGVzdF90cmFjaW5nX211bHRpX3Rlc3Qodm9pZClcXG4ge1xcbi0jaWZuZGVmIF9feDg2XzY0X19cXG4rI2lmICFBUkNIX1NVUFBPUlRTX1RSQUNJTkdfTVVMVElfTElOS1xcbiBcXHR0ZXN0X19za2lwKCk7XFxuIFxcdHJldHVybjtcXG4gI2VuZGlmXFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X3Byb2dzLmggYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9wcm9ncy5oXFxuaW5kZXggMmNmOTUwYWZjZDg1NDMuLmIxNDk4ZTg0NzczYzg0IDEwMDY0NFxcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X3Byb2dzLmhcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9wcm9ncy5oXFxuQEAgLTU2Nyw0ICs1NjcsMTAgQEAgdm9pZCB2YWxpZGF0ZV9tc2dzKGNvbnN0IGNoYXIgKmxvZ19idWYsIHN0cnVjdCBleHBlY3RlZF9tc2dzICptc2dzLFxcbiB2b2lkIGZyZWVfbXNncyhzdHJ1Y3QgZXhwZWN0ZWRfbXNncyAqbXNncyk7XFxuIHZvaWQgdmVyaWZ5X3Rlc3Rfc3RkZXJyKHN0cnVjdCBicGZfb2JqZWN0ICpvYmosIHN0cnVjdCBicGZfcHJvZ3JhbSAqcHJvZyk7XFxuIFxcbisjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKVxcbisjZGVmaW5lIEFSQ0hfU1VQUE9SVFNfVFJBQ0lOR19NVUxUSV9MSU5LIDFcXG4rI2Vsc2VcXG4rI2RlZmluZSBBUkNIX1NVUFBPUlRTX1RSQUNJTkdfTVVMVElfTElOSyAwXFxuKyNlbmRpZlxcbitcXG4gI2VuZGlmIC8qIF9fVEVTVF9QUk9HU19IICovXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDA1OjUzOjIwLjA1Njc4MjQ5WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MTkxNDg4MDkyMTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgY29udGFpbnMgbW9kaWZpY2F0aW9ucyB0byBLY29uZmlnIGZpbGVzLCBjb2RlIGNvbW1lbnRzLCBhbmQgc2VsZnRlc3RzLiBJdCBkb2VzIG5vdCBtb2RpZnkgYW55IGV4ZWN1dGFibGUga2VybmVsIHNvdXJjZSBjb2RlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNjJhM2E4MTIxYTA0ZTAwOTI1OTNlNjVhNWU0YTEwZGYzNmNlY2NkZlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgSnVsIDI4IDA1OjUzOjE4IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9LY29uZmlnIGIvYXJjaC9hcm02NC9LY29uZmlnXG5pbmRleCAwZGU0MTllZDc4MGYxMy4uYzk4ZGNhNzY4NTliMTEgMTAwNjQ0XG4tLS0gYS9hcmNoL2FybTY0L0tjb25maWdcbisrKyBiL2FyY2gvYXJtNjQvS2NvbmZpZ1xuQEAgLTE4OCw2ICsxODgsOCBAQCBjb25maWcgQVJNNjRcbiBcdFx0ICAgIENMQU5HX1NVUFBPUlRTX0RZTkFNSUNfRlRSQUNFX1dJVEhfQVJHUylcbiBcdHNlbGVjdCBIQVZFX0RZTkFNSUNfRlRSQUNFX1dJVEhfRElSRUNUX0NBTExTIFxcXG4gXHRcdGlmIERZTkFNSUNfRlRSQUNFX1dJVEhfQVJHU1xuK1x0c2VsZWN0IEhBVkVfU0lOR0xFX0ZUUkFDRV9ESVJFQ1RfT1BTIFxcXG4rXHRcdGlmIERZTkFNSUNfRlRSQUNFX1dJVEhfRElSRUNUX0NBTExTXG4gXHRzZWxlY3QgSEFWRV9EWU5BTUlDX0ZUUkFDRV9XSVRIX0NBTExfT1BTIFxcXG4gXHRcdGlmIChEWU5BTUlDX0ZUUkFDRV9XSVRIX0FSR1MgXHUwMDI2XHUwMDI2ICFDRkkgXHUwMDI2XHUwMDI2IFxcXG4gXHRcdCAgICAoQ0NfSVNfQ0xBTkcgfHwgIUNDX09QVElNSVpFX0ZPUl9TSVpFKSlcbmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2tlcm5lbC9mdHJhY2UuYyBiL2FyY2gvYXJtNjQva2VybmVsL2Z0cmFjZS5jXG5pbmRleCBlMWEzYzBiM2EwNTE0Ni4uNTZiYTcyYTg3ZGZhYzAgMTAwNjQ0XG4tLS0gYS9hcmNoL2FybTY0L2tlcm5lbC9mdHJhY2UuY1xuKysrIGIvYXJjaC9hcm02NC9rZXJuZWwvZnRyYWNlLmNcbkBAIC0zMDEsOCArMzAxLDcgQEAgc3RhdGljIGJvb2wgZnRyYWNlX2ZpbmRfY2FsbGFibGVfYWRkcihzdHJ1Y3QgZHluX2Z0cmFjZSAqcmVjLFxuIFxuIFx0LypcbiBcdCAqIElmIGEgY3VzdG9tIHRyYW1wb2xpbmUgaXMgdW5yZWFjaGFibGUsIHJlbHkgb24gdGhlIGZ0cmFjZV9jYWxsZXJcbi1cdCAqIHRyYW1wb2xpbmUgd2hpY2gga25vd3MgaG93IHRvIGluZGlyZWN0bHkgcmVhY2ggdGhhdCB0cmFtcG9saW5lXG4tXHQgKiB0aHJvdWdoIG9wcy1cdTAwM2VkaXJlY3RfY2FsbC5cbitcdCAqIHRyYW1wb2xpbmUgd2hpY2gga25vd3MgaG93IHRvIGluZGlyZWN0bHkgcmVhY2ggdGhhdCB0cmFtcG9saW5lLlxuIFx0ICovXG4gXHRpZiAoKmFkZHIgIT0gRlRSQUNFX0FERFIgXHUwMDI2XHUwMDI2ICFyZWFjaGFibGVfYnlfYmwoKmFkZHIsIHBjKSlcbiBcdFx0KmFkZHIgPSBGVFJBQ0VfQUREUjtcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy90cmFjaW5nX211bHRpLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy90cmFjaW5nX211bHRpLmNcbmluZGV4IGYwMmZmYzdmNDFkNzg0Li41YWE0OGUwOTAzNDA0NCAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3RyYWNpbmdfbXVsdGkuY1xuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvdHJhY2luZ19tdWx0aS5jXG5AQCAtNjEyLDcgKzYxMiw3IEBAIHZvaWQgc2VyaWFsX3Rlc3RfdHJhY2luZ19tdWx0aV9iZW5jaF9hdHRhY2godm9pZClcbiBcdHN0cnVjdCBidGYgKmJ0ZjtcbiBcdGludCBlcnI7XG4gXG4tI2lmbmRlZiBfX3g4Nl82NF9fXG4rI2lmICFBUkNIX1NVUFBPUlRTX1RSQUNJTkdfTVVMVElfTElOS1xuIFx0dGVzdF9fc2tpcCgpO1xuIFx0cmV0dXJuO1xuICNlbmRpZlxuQEAgLTkyMyw2ICs5MjMsMTEgQEAgc3RhdGljIHZvaWQgdGVzdF9yb2xsYmFja191bmxpbmsodm9pZClcbiBcbiB2b2lkIHNlcmlhbF90ZXN0X3RyYWNpbmdfbXVsdGlfYXR0YWNoX3JvbGxiYWNrKHZvaWQpXG4ge1xuKyNpZiAhQVJDSF9TVVBQT1JUU19UUkFDSU5HX01VTFRJX0xJTktcbitcdHRlc3RfX3NraXAoKTtcbitcdHJldHVybjtcbisjZW5kaWZcbitcbiBcdGlmICh0ZXN0X19zdGFydF9zdWJ0ZXN0KFwicHV0XCIpKVxuIFx0XHR0ZXN0X3JvbGxiYWNrX3B1dCgpO1xuIFx0aWYgKHRlc3RfX3N0YXJ0X3N1YnRlc3QoXCJ1bmxpbmtcIikpXG5AQCAtOTMxLDcgKzkzNiw3IEBAIHZvaWQgc2VyaWFsX3Rlc3RfdHJhY2luZ19tdWx0aV9hdHRhY2hfcm9sbGJhY2sodm9pZClcbiBcbiB2b2lkIHRlc3RfdHJhY2luZ19tdWx0aV90ZXN0KHZvaWQpXG4ge1xuLSNpZm5kZWYgX194ODZfNjRfX1xuKyNpZiAhQVJDSF9TVVBQT1JUU19UUkFDSU5HX01VTFRJX0xJTktcbiBcdHRlc3RfX3NraXAoKTtcbiBcdHJldHVybjtcbiAjZW5kaWZcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9wcm9ncy5oIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3RfcHJvZ3MuaFxuaW5kZXggMmNmOTUwYWZjZDg1NDMuLmIxNDk4ZTg0NzczYzg0IDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3RfcHJvZ3MuaFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3RfcHJvZ3MuaFxuQEAgLTU2Nyw0ICs1NjcsMTAgQEAgdm9pZCB2YWxpZGF0ZV9tc2dzKGNvbnN0IGNoYXIgKmxvZ19idWYsIHN0cnVjdCBleHBlY3RlZF9tc2dzICptc2dzLFxuIHZvaWQgZnJlZV9tc2dzKHN0cnVjdCBleHBlY3RlZF9tc2dzICptc2dzKTtcbiB2b2lkIHZlcmlmeV90ZXN0X3N0ZGVycihzdHJ1Y3QgYnBmX29iamVjdCAqb2JqLCBzdHJ1Y3QgYnBmX3Byb2dyYW0gKnByb2cpO1xuIFxuKyNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hYXJjaDY0X18pXG4rI2RlZmluZSBBUkNIX1NVUFBPUlRTX1RSQUNJTkdfTVVMVElfTElOSyAxXG4rI2Vsc2VcbisjZGVmaW5lIEFSQ0hfU1VQUE9SVFNfVFJBQ0lOR19NVUxUSV9MSU5LIDBcbisjZW5kaWZcbitcbiAjZW5kaWYgLyogX19URVNUX1BST0dTX0ggKi9cbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDA1OjUzOjIwLjA1Njc4MzY3WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjMzMjYwNDcxNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBQYXRjaDogTWluaW1hbCBGdW5jdGlvbmFsIEltcGFjdD8qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpdCB0b3VjaGVzIGEgZmV3IGZpbGVzOiBgYXJjaC9hcm02NC9LY29uZmlnYCwgYGFyY2gvYXJtNjQva2VybmVsL2Z0cmFjZS5jYCwgYW5kIHNvbWUgQlBGIHNlbGZ0ZXN0cy4gSW5pdGlhbGx5LCBpdCBzZWVtcyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkLiBUaGUgYEtjb25maWdgIGNoYW5nZSBsb29rcyBsaWtlIGl0J3Mgc2VsZWN0aW5nIGBIQVZFX1NJTkdMRV9GVFJBQ0VfRElSRUNUX09QU2AgaWYgYERZTkFNSUNfRlRSQUNFX1dJVEhfRElSRUNUX0NBTExTYCBpcyBlbmFibGVkLiBTZWVtcyBsaWtlIGEgZGVwZW5kZW5jeSBvciBjb25maWd1cmF0aW9uIGZsYWcgcmVsYXRlZCB0byBmdHJhY2UgYW5kIGRpcmVjdCBjYWxscy4gVGhlbiwgYGFyY2gvYXJtNjQva2VybmVsL2Z0cmFjZS5jYCBpcyBqdXN0IGEgY29tbWVudCB0d2Vhaywgd2hpY2ggaXMgdXN1YWxseSBub3QgYSBiaWcgZGVhbC4gVGhlIEJQRiBzZWxmdGVzdCBjaGFuZ2VzIGluIGB0cmFjaW5nX211bHRpLmNgIGFuZCBgdGVzdF9wcm9ncy5oYCB1cGRhdGUgYXJjaGl0ZWN0dXJlIGNoZWNrcywgbGlrZWx5IHRvIGFjY291bnQgZm9yIHRoZSBuZXcgY29uZmlndXJhdGlvbi5cblxuQnV0IHdhaXQsIGlzIHRoaXMgKmp1c3QqIGNvbmZpZ3VyYXRpb24gYW5kIHRlc3RpbmcsIG9yIGlzIHRoZXJlIGFueSBhY3R1YWwga2VybmVsIGZ1bmN0aW9uYWxpdHkgYmVpbmcgbW9kaWZpZWQ/IEl0J3MgaW1wb3J0YW50IHRvIGJlIGNhcmVmdWwsIGV2ZW4gd2l0aCBzZWVtaW5nbHkgaW5ub2N1b3VzIGNoYW5nZXMuIExldCdzIGJyZWFrIGl0IGRvd24gYWdhaW4gdG8gbWFrZSBzdXJlOiB0aGUgS2NvbmZpZyBjaGFuZ2UgYWRkcyBhIGBzZWxlY3RgIHN0YXRlbWVudC4gVGhlIGZ0cmFjZS5jIGNoYW5nZSBpcyBqdXN0IGEgY29tbWVudC4gQW5kIHRoZSBCUEYgZmlsZXMgYXJlIGRlZmluaXRlbHkgc2VsZnRlc3RzLlxuXG5Pa2F5LCBJJ20gZ2V0dGluZyBhIGxpdHRsZSB1bmVhc3kgYWJvdXQgdGhhdCBgc2VsZWN0IEhBVkVfU0lOR0xFX0ZUUkFDRV9ESVJFQ1RfT1BTYCBzdGF0ZW1lbnQgaW4gdGhlIGBLY29uZmlnYCBmaWxlLiBFdmVuIHRob3VnaCB0aGUgb3RoZXIgY2hhbmdlcyBhcmUgY2xlYXJseSBub3QgZnVuY3Rpb25hbCwgdGhhdCBzZWxlY3QgbWlnaHQgKmVuYWJsZSogc29tZSBjb2RlIHBhdGhzIHdpdGhpbiB0aGUga2VybmVsIGl0c2VsZi4gSSBjYW4ndCBiZSBzdXJlIHVudGlsIEkga25vdyB3aGF0IGBIQVZFX1NJTkdMRV9GVFJBQ0VfRElSRUNUX09QU2AgYWN0dWFsbHkgKmRvZXMqLiBJIG5lZWQgdG8gaW52ZXN0aWdhdGUgdGhhdCBLY29uZmlnIG9wdGlvbiBhbmQgc2VlIHdoYXQgaXQgZW5hYmxlcy4gVGhhdCdzIHRoZSBrZXkgdG8gdW5kZXJzdGFuZGluZyB0aGUgZnVsbCBpbXBhY3QgaGVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MzAwNCwiT3V0cHV0VG9rZW5zIjoyNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMyNSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDA1OjUzOjI2LjM4OTM5MTUwNloiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MjY1OTMzMDg1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIkhBVkVfU0lOR0xFX0ZUUkFDRV9ESVJFQ1RfT1BTXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gvYXJtNjQvS2NvbmZpZz0yPWNvbmZpZyBBUk02NFxcbi0tXFxuYXJjaC9hcm02NC9LY29uZmlnLTE5MC1cXHRcXHRpZiBEWU5BTUlDX0ZUUkFDRV9XSVRIX0FSR1NcXG5hcmNoL2FybTY0L0tjb25maWc6MTkxOlxcdHNlbGVjdCBIQVZFX1NJTkdMRV9GVFJBQ0VfRElSRUNUX09QUyBcXFxcXFxuYXJjaC9hcm02NC9LY29uZmlnLTE5Mi1cXHRcXHRpZiBEWU5BTUlDX0ZUUkFDRV9XSVRIX0RJUkVDVF9DQUxMU1xcbi0tXFxuYXJjaC94ODYvS2NvbmZpZz01OD1jb25maWcgWDg2XFxuLS1cXG5hcmNoL3g4Ni9LY29uZmlnLTMzNy1cXHRzZWxlY3QgQVJDSF9TVVBQT1JUU19TQ0hFRF9NQ1xcdFxcdGlmIFNNUFxcbmFyY2gveDg2L0tjb25maWc6MzM4OlxcdHNlbGVjdCBIQVZFX1NJTkdMRV9GVFJBQ0VfRElSRUNUX09QU1xcdGlmIFg4Nl82NCBcXHUwMDI2XFx1MDAyNiBEWU5BTUlDX0ZUUkFDRV9XSVRIX0RJUkVDVF9DQUxMU1xcbmFyY2gveDg2L0tjb25maWctMzM5LVxcbi0tXFxua2VybmVsL2JwZi90cmFtcG9saW5lLmM9NzI9c3RhdGljIGNvbnN0IHN0cnVjdCBicGZfdHJhbXBvbGluZV9vcHMgdHJhbXBvbGluZV9vcHM7XFxua2VybmVsL2JwZi90cmFtcG9saW5lLmMtNzMtXFxua2VybmVsL2JwZi90cmFtcG9saW5lLmM6NzQ6I2lmZGVmIENPTkZJR19IQVZFX1NJTkdMRV9GVFJBQ0VfRElSRUNUX09QU1xcbmtlcm5lbC9icGYvdHJhbXBvbGluZS5jLTc1LXN0YXRpYyBzdHJ1Y3QgYnBmX3RyYW1wb2xpbmUgKmRpcmVjdF9vcHNfaXBfbG9va3VwKHN0cnVjdCBmdHJhY2Vfb3BzICpvcHMsIHVuc2lnbmVkIGxvbmcgaXApXFxuLS1cXG5rZXJuZWwvYnBmL3RyYW1wb2xpbmUuYz05Mj1zdGF0aWMgc3RydWN0IGJwZl90cmFtcG9saW5lICpkaXJlY3Rfb3BzX2lwX2xvb2t1cChzdHJ1Y3QgZnRyYWNlX29wcyAqb3BzLCB1bnNpZ25lZCBsb25nIGlwKVxcbi0tXFxua2VybmVsL2JwZi90cmFtcG9saW5lLmMtOTUtfVxcbmtlcm5lbC9icGYvdHJhbXBvbGluZS5jOjk2OiNlbmRpZiAvKiBDT05GSUdfSEFWRV9TSU5HTEVfRlRSQUNFX0RJUkVDVF9PUFMgKi9cXG5rZXJuZWwvYnBmL3RyYW1wb2xpbmUuYy05Ny1cXG4tLVxcbmtlcm5lbC9icGYvdHJhbXBvbGluZS5jPTIxMD12b2lkIGJwZl9pbWFnZV9rc3ltX2RlbChzdHJ1Y3QgYnBmX2tzeW0gKmtzeW0pXFxuLS1cXG5rZXJuZWwvYnBmL3RyYW1wb2xpbmUuYy0yMTctI2lmZGVmIENPTkZJR19EWU5BTUlDX0ZUUkFDRV9XSVRIX0RJUkVDVF9DQUxMU1xcbmtlcm5lbC9icGYvdHJhbXBvbGluZS5jOjIxODojaWZkZWYgQ09ORklHX0hBVkVfU0lOR0xFX0ZUUkFDRV9ESVJFQ1RfT1BTXFxua2VybmVsL2JwZi90cmFtcG9saW5lLmMtMjE5LS8qXFxuLS1cXG5rZXJuZWwvYnBmL3RyYW1wb2xpbmUuYz0zMzc9c3RhdGljIGludCBkaXJlY3Rfb3BzX21vZChzdHJ1Y3QgYnBmX3RyYW1wb2xpbmUgKnRyLCB2b2lkICpwdHIsIGJvb2wgbG9ja19kaXJlY3RfbXV0ZXgpXFxuLS1cXG5rZXJuZWwvYnBmL3RyYW1wb2xpbmUuYy0zNDctfVxcbmtlcm5lbC9icGYvdHJhbXBvbGluZS5jOjM0ODojZW5kaWYgLyogQ09ORklHX0hBVkVfU0lOR0xFX0ZUUkFDRV9ESVJFQ1RfT1BTICovXFxua2VybmVsL2JwZi90cmFtcG9saW5lLmMtMzQ5LSNlbHNlXFxuLS1cXG5rZXJuZWwvYnBmL3RyYW1wb2xpbmUuYz0xNDY3PWludCBfX3dlYWsgYXJjaF9icGZfdHJhbXBvbGluZV9zaXplKGNvbnN0IHN0cnVjdCBidGZfZnVuY19tb2RlbCAqbSwgdTMyIGZsYWdzLFxcbi0tXFxua2VybmVsL2JwZi90cmFtcG9saW5lLmMtMTQ3My0jaWYgZGVmaW5lZChDT05GSUdfRFlOQU1JQ19GVFJBQ0VfV0lUSF9ESVJFQ1RfQ0FMTFMpIFxcdTAwMjZcXHUwMDI2IFxcXFxcXG5rZXJuZWwvYnBmL3RyYW1wb2xpbmUuYzoxNDc0OiAgICBkZWZpbmVkKENPTkZJR19IQVZFX1NJTkdMRV9GVFJBQ0VfRElSRUNUX09QUykgXFx1MDAyNlxcdTAwMjYgXFxcXFxcbmtlcm5lbC9icGYvdHJhbXBvbGluZS5jLTE0NzUtICAgIGRlZmluZWQoQ09ORklHX0JQRl9TWVNDQUxMKVxcbi0tXFxua2VybmVsL2JwZi90cmFtcG9saW5lLmM9MTcxMT1pbnQgYnBmX3RyYW1wb2xpbmVfbXVsdGlfZGV0YWNoKHN0cnVjdCBicGZfcHJvZyAqcHJvZywgc3RydWN0IGJwZl90cmFjaW5nX211bHRpX2xpbmsgKmxpbmspXFxuLS1cXG5rZXJuZWwvYnBmL3RyYW1wb2xpbmUuYy0xNzQ2LSNlbmRpZiAvKiBDT05GSUdfRFlOQU1JQ19GVFJBQ0VfV0lUSF9ESVJFQ1RfQ0FMTFMgXFx1MDAyNlxcdTAwMjZcXG5rZXJuZWwvYnBmL3RyYW1wb2xpbmUuYzoxNzQ3OlxcdCAgQ09ORklHX0hBVkVfU0lOR0xFX0ZUUkFDRV9ESVJFQ1RfT1BTIFxcdTAwMjZcXHUwMDI2XFxua2VybmVsL2JwZi90cmFtcG9saW5lLmMtMTc0OC1cXHQgIENPTkZJR19CUEZfU1lTQ0FMTCAqL1xcbi0tXFxua2VybmVsL3RyYWNlL0tjb25maWc9NTA9Y29uZmlnIEhBVkVfRFlOQU1JQ19GVFJBQ0VfV0lUSF9ESVJFQ1RfQ0FMTFNcXG4tLVxcbmtlcm5lbC90cmFjZS9LY29uZmlnLTUyLVxcbmtlcm5lbC90cmFjZS9LY29uZmlnOjUzOmNvbmZpZyBIQVZFX1NJTkdMRV9GVFJBQ0VfRElSRUNUX09QU1xcbmtlcm5lbC90cmFjZS9LY29uZmlnLTU0LVxcdGJvb2xcXG4tLVxcbmtlcm5lbC90cmFjZS9icGZfdHJhY2UuYz0zNjgwPV9fYnBmX2tmdW5jX2VuZF9kZWZzKCk7XFxuLS1cXG5rZXJuZWwvdHJhY2UvYnBmX3RyYWNlLmMtMzY4Mi0jaWYgZGVmaW5lZChDT05GSUdfRFlOQU1JQ19GVFJBQ0VfV0lUSF9ESVJFQ1RfQ0FMTFMpIFxcdTAwMjZcXHUwMDI2IFxcXFxcXG5rZXJuZWwvdHJhY2UvYnBmX3RyYWNlLmM6MzY4MzogICAgZGVmaW5lZChDT05GSUdfSEFWRV9TSU5HTEVfRlRSQUNFX0RJUkVDVF9PUFMpXFxua2VybmVsL3RyYWNlL2JwZl90cmFjZS5jLTM2ODQtXFxuLS1cXG5rZXJuZWwvdHJhY2UvYnBmX3RyYWNlLmM9Mzg3NT1pbnQgYnBmX3RyYWNpbmdfbXVsdGlfYXR0YWNoKHN0cnVjdCBicGZfcHJvZyAqcHJvZywgY29uc3QgdW5pb24gYnBmX2F0dHIgKmF0dHIpXFxuLS1cXG5rZXJuZWwvdHJhY2UvYnBmX3RyYWNlLmMtMzg3OS1cXG5rZXJuZWwvdHJhY2UvYnBmX3RyYWNlLmM6Mzg4MDojZW5kaWYgLyogQ09ORklHX0RZTkFNSUNfRlRSQUNFX1dJVEhfRElSRUNUX0NBTExTIFxcdTAwMjZcXHUwMDI2IENPTkZJR19IQVZFX1NJTkdMRV9GVFJBQ0VfRElSRUNUX09QUyAqL1xcbi0tXFxua2VybmVsL3RyYWNlL2Z0cmFjZS5jPTI2NDk9c3RhdGljIHZvaWQgY2FsbF9kaXJlY3RfZnVuY3ModW5zaWduZWQgbG9uZyBpcCwgdW5zaWduZWQgbG9uZyBwaXAsXFxuLS1cXG5rZXJuZWwvdHJhY2UvZnRyYWNlLmMtMjY1My1cXG5rZXJuZWwvdHJhY2UvZnRyYWNlLmM6MjY1NDojaWZkZWYgQ09ORklHX0hBVkVfU0lOR0xFX0ZUUkFDRV9ESVJFQ1RfT1BTXFxua2VybmVsL3RyYWNlL2Z0cmFjZS5jLTI2NTUtXFx0YWRkciA9IGZ0cmFjZV9maW5kX3JlY19kaXJlY3QoaXApO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwNTo1MzozMC42NTUzMzEwMDJaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo4NTUwMjM2ODUyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKldvcnRoRnV6emluZyBEZWNpc2lvbiBmb3IgdGhlIFBhdGNoKipcblxuT2theSwgbGV0IG1lIGJyZWFrIHRoaXMgZG93bi4gVGhpcyBwYXRjaCBpcyBlbmFibGluZyBgQ09ORklHX0hBVkVfU0lOR0xFX0ZUUkFDRV9ESVJFQ1RfT1BTYCBvbiBBUk02NC4gVGhhdCwgaW4gdHVybiwgZW5hYmxlcyBzb21lIGZ1bmN0aW9uYWxpdHkgaW4gYGtlcm5lbC9icGYvdHJhbXBvbGluZS5jYCwgYGtlcm5lbC90cmFjZS9icGZfdHJhY2UuY2AsIGFuZCBga2VybmVsL3RyYWNlL2Z0cmFjZS5jYC4gQnV0IGhvbGQgb24sIHRoZSBwYXRjaCAqaXRzZWxmKiBpcyBvbmx5IHRvdWNoaW5nIEtjb25maWcsIHNlbGZ0ZXN0cywgYW5kIGEgY29tbWVudC4gSXQncyBlbmFibGluZyBhIGZlYXR1cmUgKEJQRiBtdWx0aS1hdHRhY2gpIG9uIEFSTTY0LCBidXQgbm90IGFjdHVhbGx5ICptb2RpZnlpbmcqIGFueSBDIGNvZGUgZGlyZWN0bHksIG9ubHkgYWN0aXZhdGluZyBleGlzdGluZyBjb2RlLlxuXG5UaGUgaW5zdHJ1Y3Rpb25zIHNheSB0byByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAgaWYgdGhlIHBhdGNoICpvbmx5KiBjb250YWlucyBtb2RpZmljYXRpb25zIHRvIGRvY3VtZW50YXRpb24sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuIEFuZCwgSSBzZWUgdGhhdCB0aGlzIHBhdGNoJ3MgZGlmZiBpbmNsdWRlcyBvbmx5OiBgYXJjaC9hcm02NC9LY29uZmlnYCwgd2hpY2ggaXMgYSBLY29uZmlnIGZpbGU7IGBhcmNoL2FybTY0L2tlcm5lbC9mdHJhY2UuY2AsIHdoaWNoIGhhcyBhIGNvbW1lbnQ7IGFuZCBzb21lIHNlbGZ0ZXN0cywgc3BlY2lmaWNhbGx5IGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy90cmFjaW5nX211bHRpLmNgIGFuZCBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3RfcHJvZ3MuaGAuXG5cblRoZSBydWxlIGlzIHZlcnkgY2xlYXI6IFwiUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczogLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlwiIFRoaXMgcGF0Y2ggKmV4YWN0bHkqIGZpdHMgdGhhdCBkZXNjcmlwdGlvbi4gSXQncyBwdXJlbHkgS2NvbmZpZywgY29tbWVudHMsIGFuZCBzZWxmdGVzdHMuXG5cbk5vdywgSSdtIHVzZWQgdG8gdGhpbmtpbmcgYWJvdXQgd2hldGhlciBuZXcgZmVhdHVyZXMgc2hvdWxkIGJlIGZ1enplZCwgZXNwZWNpYWxseSB3aGVuIHRoZXkncmUgZW5hYmxlZCB2aWEgS2NvbmZpZy4gU3l6a2FsbGVyIHVzdWFsbHkgd29ya3MgYmFzZWQgb24gY29kZSBjb3ZlcmFnZSwgc28gYSBuZXcgZmVhdHVyZSAqY291bGQqIGJlIGZ1enotd29ydGh5LiBCdXQgdGhlIHByb21wdCBleHBsaWNpdGx5IGdpdmVzIGEgcnVsZSwgYW5kIEknbSBvYmxpZ2F0ZWQgdG8gZm9sbG93IGl0LlxuXG5Pa2F5LCBsZXQncyByZS1yZWFkIHRoZSBkaWZmIGFnYWluIHRvIGJlIGFic29sdXRlbHkgc3VyZS4gTm9wZSwgaXQncyBqdXN0IEtjb25maWcsIGNvbW1lbnQsIGFuZCBzZWxmdGVzdHMuIFRoZSBzZWxmdGVzdHMgYXJlIG5vdCBrZXJuZWwgY29kZSBhbmQgYXJlIHVzZXItc3BhY2UuXG5cblRoZXJlZm9yZSwgYmVjYXVzZSB0aGlzIHBhdGNoICpvbmx5KiBjb250YWlucyBjaGFuZ2VzIHRvIEtjb25maWcgZmlsZXMsIGNvZGUgY29tbWVudHMsIGFuZCBzZWxmdGVzdHMsIGl0IGRpcmVjdGx5IG1hdGNoZXMgdGhlIGNyaXRlcmlhIGluIHRoZSBwcm9tcHQuIEkgd2lsbCByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUxMDAsIk91dHB1dFRva2VucyI6NTksIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4NjcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMDU6NTM6MzkuMjA1NTcwOTMzWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxOTA3MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zIG1vZGlmaWNhdGlvbnMgdG8gS2NvbmZpZyBmaWxlcywgY29kZSBjb21tZW50cywgYW5kIHNlbGZ0ZXN0cy4gSXQgZG9lcyBub3QgbW9kaWZ5IGFueSBleGVjdXRhYmxlIGtlcm5lbCBzb3VyY2UgY29kZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgY29udGFpbnMgbW9kaWZpY2F0aW9ucyB0byBLY29uZmlnIGZpbGVzLCBjb2RlIGNvbW1lbnRzLCBhbmQgc2VsZnRlc3RzLiBJdCBkb2VzIG5vdCBtb2RpZnkgYW55IGV4ZWN1dGFibGUga2VybmVsIHNvdXJjZSBjb2RlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow2rpd8[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-28 05:19:37 +0000 UTC FinishedAt: 2026-07-28 05:53:41 +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+CgkJCTx0ZD4yMDI2LzA3LzI4IDA1OjUzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgY29udGFpbnMgbW9kaWZpY2F0aW9ucyB0byBLY29uZmlnIGZpbGVzLCBjb2RlIGNvbW1lbnRzLCBhbmQgc2VsZnRlc3RzLiBJdCBkb2VzIG5vdCBtb2RpZnkgYW55IGV4ZWN1dGFibGUga2VybmVsIHNvdXJjZSBjb2RlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwNTo1MzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDYyYTNhODEyMWEwNGUwMDkyNTkzZTY1YTVlNGExMGRmMzZjZWNjZGZcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEp1bCAyOCAwNTo1MzoxOCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L0tjb25maWcgYi9hcmNoL2FybTY0L0tjb25maWdcbmluZGV4IDBkZTQxOWVkNzgwZjEzLi5jOThkY2E3Njg1OWIxMSAxMDA2NDRcbi0tLSBhL2FyY2gvYXJtNjQvS2NvbmZpZ1xuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9hcm02NC9LY29uZmlnXG5AQCAtMTg4LDYgJiM0MzsxODgsOCBAQCBjb25maWcgQVJNNjRcbiBcdFx0ICAgIENMQU5HX1NVUFBPUlRTX0RZTkFNSUNfRlRSQUNFX1dJVEhfQVJHUylcbiBcdHNlbGVjdCBIQVZFX0RZTkFNSUNfRlRSQUNFX1dJVEhfRElSRUNUX0NBTExTIFxcXG4gXHRcdGlmIERZTkFNSUNfRlRSQUNFX1dJVEhfQVJHU1xuJiM0MztcdHNlbGVjdCBIQVZFX1NJTkdMRV9GVFJBQ0VfRElSRUNUX09QUyBcXFxuJiM0MztcdFx0aWYgRFlOQU1JQ19GVFJBQ0VfV0lUSF9ESVJFQ1RfQ0FMTFNcbiBcdHNlbGVjdCBIQVZFX0RZTkFNSUNfRlRSQUNFX1dJVEhfQ0FMTF9PUFMgXFxcbiBcdFx0aWYgKERZTkFNSUNfRlRSQUNFX1dJVEhfQVJHUyBcdTAwMjZcdTAwMjYgIUNGSSBcdTAwMjZcdTAwMjYgXFxcbiBcdFx0ICAgIChDQ19JU19DTEFORyB8fCAhQ0NfT1BUSU1JWkVfRk9SX1NJWkUpKVxuZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQva2VybmVsL2Z0cmFjZS5jIGIvYXJjaC9hcm02NC9rZXJuZWwvZnRyYWNlLmNcbmluZGV4IGUxYTNjMGIzYTA1MTQ2Li41NmJhNzJhODdkZmFjMCAxMDA2NDRcbi0tLSBhL2FyY2gvYXJtNjQva2VybmVsL2Z0cmFjZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL2FybTY0L2tlcm5lbC9mdHJhY2UuY1xuQEAgLTMwMSw4ICYjNDM7MzAxLDcgQEAgc3RhdGljIGJvb2wgZnRyYWNlX2ZpbmRfY2FsbGFibGVfYWRkcihzdHJ1Y3QgZHluX2Z0cmFjZSAqcmVjLFxuIFxuIFx0LypcbiBcdCAqIElmIGEgY3VzdG9tIHRyYW1wb2xpbmUgaXMgdW5yZWFjaGFibGUsIHJlbHkgb24gdGhlIGZ0cmFjZV9jYWxsZXJcbi1cdCAqIHRyYW1wb2xpbmUgd2hpY2gga25vd3MgaG93IHRvIGluZGlyZWN0bHkgcmVhY2ggdGhhdCB0cmFtcG9saW5lXG4tXHQgKiB0aHJvdWdoIG9wcy1cdTAwM2VkaXJlY3RfY2FsbC5cbiYjNDM7XHQgKiB0cmFtcG9saW5lIHdoaWNoIGtub3dzIGhvdyB0byBpbmRpcmVjdGx5IHJlYWNoIHRoYXQgdHJhbXBvbGluZS5cbiBcdCAqL1xuIFx0aWYgKCphZGRyICE9IEZUUkFDRV9BRERSIFx1MDAyNlx1MDAyNiAhcmVhY2hhYmxlX2J5X2JsKCphZGRyLCBwYykpXG4gXHRcdCphZGRyID0gRlRSQUNFX0FERFI7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvdHJhY2luZ19tdWx0aS5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvdHJhY2luZ19tdWx0aS5jXG5pbmRleCBmMDJmZmM3ZjQxZDc4NC4uNWFhNDhlMDkwMzQwNDQgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy90cmFjaW5nX211bHRpLmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3RyYWNpbmdfbXVsdGkuY1xuQEAgLTYxMiw3ICYjNDM7NjEyLDcgQEAgdm9pZCBzZXJpYWxfdGVzdF90cmFjaW5nX211bHRpX2JlbmNoX2F0dGFjaCh2b2lkKVxuIFx0c3RydWN0IGJ0ZiAqYnRmO1xuIFx0aW50IGVycjtcbiBcbi0jaWZuZGVmIF9feDg2XzY0X19cbiYjNDM7I2lmICFBUkNIX1NVUFBPUlRTX1RSQUNJTkdfTVVMVElfTElOS1xuIFx0dGVzdF9fc2tpcCgpO1xuIFx0cmV0dXJuO1xuICNlbmRpZlxuQEAgLTkyMyw2ICYjNDM7OTIzLDExIEBAIHN0YXRpYyB2b2lkIHRlc3Rfcm9sbGJhY2tfdW5saW5rKHZvaWQpXG4gXG4gdm9pZCBzZXJpYWxfdGVzdF90cmFjaW5nX211bHRpX2F0dGFjaF9yb2xsYmFjayh2b2lkKVxuIHtcbiYjNDM7I2lmICFBUkNIX1NVUFBPUlRTX1RSQUNJTkdfTVVMVElfTElOS1xuJiM0MztcdHRlc3RfX3NraXAoKTtcbiYjNDM7XHRyZXR1cm47XG4mIzQzOyNlbmRpZlxuJiM0MztcbiBcdGlmICh0ZXN0X19zdGFydF9zdWJ0ZXN0KFwmIzM0O3B1dFwmIzM0OykpXG4gXHRcdHRlc3Rfcm9sbGJhY2tfcHV0KCk7XG4gXHRpZiAodGVzdF9fc3RhcnRfc3VidGVzdChcJiMzNDt1bmxpbmtcJiMzNDspKVxuQEAgLTkzMSw3ICYjNDM7OTM2LDcgQEAgdm9pZCBzZXJpYWxfdGVzdF90cmFjaW5nX211bHRpX2F0dGFjaF9yb2xsYmFjayh2b2lkKVxuIFxuIHZvaWQgdGVzdF90cmFjaW5nX211bHRpX3Rlc3Qodm9pZClcbiB7XG4tI2lmbmRlZiBfX3g4Nl82NF9fXG4mIzQzOyNpZiAhQVJDSF9TVVBQT1JUU19UUkFDSU5HX01VTFRJX0xJTktcbiBcdHRlc3RfX3NraXAoKTtcbiBcdHJldHVybjtcbiAjZW5kaWZcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9wcm9ncy5oIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3RfcHJvZ3MuaFxuaW5kZXggMmNmOTUwYWZjZDg1NDMuLmIxNDk4ZTg0NzczYzg0IDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3RfcHJvZ3MuaFxuJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3RfcHJvZ3MuaFxuQEAgLTU2Nyw0ICYjNDM7NTY3LDEwIEBAIHZvaWQgdmFsaWRhdGVfbXNncyhjb25zdCBjaGFyICpsb2dfYnVmLCBzdHJ1Y3QgZXhwZWN0ZWRfbXNncyAqbXNncyxcbiB2b2lkIGZyZWVfbXNncyhzdHJ1Y3QgZXhwZWN0ZWRfbXNncyAqbXNncyk7XG4gdm9pZCB2ZXJpZnlfdGVzdF9zdGRlcnIoc3RydWN0IGJwZl9vYmplY3QgKm9iaiwgc3RydWN0IGJwZl9wcm9ncmFtICpwcm9nKTtcbiBcbiYjNDM7I2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXylcbiYjNDM7I2RlZmluZSBBUkNIX1NVUFBPUlRTX1RSQUNJTkdfTVVMVElfTElOSyAxXG4mIzQzOyNlbHNlXG4mIzQzOyNkZWZpbmUgQVJDSF9TVVBQT1JUU19UUkFDSU5HX01VTFRJX0xJTksgMFxuJiM0MzsjZW5kaWZcbiYjNDM7XG4gI2VuZGlmIC8qIF9fVEVTVF9QUk9HU19IICovXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDU6NTM8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgY29udGFpbnMgbW9kaWZpY2F0aW9ucyB0byBLY29uZmlnIGZpbGVzLCBjb2RlIGNvbW1lbnRzLCBhbmQgc2VsZnRlc3RzLiBJdCBkb2VzIG5vdCBtb2RpZnkgYW55IGV4ZWN1dGFibGUga2VybmVsIHNvdXJjZSBjb2RlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDYyYTNhODEyMWEwNGUwMDkyNTkzZTY1YTVlNGExMGRmMzZjZWNjZGYKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVHVlIEp1bCAyOCAwNTo1MzoxOCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvS2NvbmZpZyBiL2FyY2gvYXJtNjQvS2NvbmZpZwppbmRleCAwZGU0MTllZDc4MGYxMy4uYzk4ZGNhNzY4NTliMTEgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtNjQvS2NvbmZpZwomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL2FybTY0L0tjb25maWcKQEAgLTE4OCw2ICYjNDM7MTg4LDggQEAgY29uZmlnIEFSTTY0CiAJCSAgICBDTEFOR19TVVBQT1JUU19EWU5BTUlDX0ZUUkFDRV9XSVRIX0FSR1MpCiAJc2VsZWN0IEhBVkVfRFlOQU1JQ19GVFJBQ0VfV0lUSF9ESVJFQ1RfQ0FMTFMgXAogCQlpZiBEWU5BTUlDX0ZUUkFDRV9XSVRIX0FSR1MKJiM0MzsJc2VsZWN0IEhBVkVfU0lOR0xFX0ZUUkFDRV9ESVJFQ1RfT1BTIFwKJiM0MzsJCWlmIERZTkFNSUNfRlRSQUNFX1dJVEhfRElSRUNUX0NBTExTCiAJc2VsZWN0IEhBVkVfRFlOQU1JQ19GVFJBQ0VfV0lUSF9DQUxMX09QUyBcCiAJCWlmIChEWU5BTUlDX0ZUUkFDRV9XSVRIX0FSR1MgJmFtcDsmYW1wOyAhQ0ZJICZhbXA7JmFtcDsgXAogCQkgICAgKENDX0lTX0NMQU5HIHx8ICFDQ19PUFRJTUlaRV9GT1JfU0laRSkpCmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2tlcm5lbC9mdHJhY2UuYyBiL2FyY2gvYXJtNjQva2VybmVsL2Z0cmFjZS5jCmluZGV4IGUxYTNjMGIzYTA1MTQ2Li41NmJhNzJhODdkZmFjMCAxMDA2NDQKLS0tIGEvYXJjaC9hcm02NC9rZXJuZWwvZnRyYWNlLmMKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9hcm02NC9rZXJuZWwvZnRyYWNlLmMKQEAgLTMwMSw4ICYjNDM7MzAxLDcgQEAgc3RhdGljIGJvb2wgZnRyYWNlX2ZpbmRfY2FsbGFibGVfYWRkcihzdHJ1Y3QgZHluX2Z0cmFjZSAqcmVjLAogCiAJLyoKIAkgKiBJZiBhIGN1c3RvbSB0cmFtcG9saW5lIGlzIHVucmVhY2hhYmxlLCByZWx5IG9uIHRoZSBmdHJhY2VfY2FsbGVyCi0JICogdHJhbXBvbGluZSB3aGljaCBrbm93cyBob3cgdG8gaW5kaXJlY3RseSByZWFjaCB0aGF0IHRyYW1wb2xpbmUKLQkgKiB0aHJvdWdoIG9wcy0mZ3Q7ZGlyZWN0X2NhbGwuCiYjNDM7CSAqIHRyYW1wb2xpbmUgd2hpY2gga25vd3MgaG93IHRvIGluZGlyZWN0bHkgcmVhY2ggdGhhdCB0cmFtcG9saW5lLgogCSAqLwogCWlmICgqYWRkciAhPSBGVFJBQ0VfQUREUiAmYW1wOyZhbXA7ICFyZWFjaGFibGVfYnlfYmwoKmFkZHIsIHBjKSkKIAkJKmFkZHIgPSBGVFJBQ0VfQUREUjsKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3RyYWNpbmdfbXVsdGkuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3RyYWNpbmdfbXVsdGkuYwppbmRleCBmMDJmZmM3ZjQxZDc4NC4uNWFhNDhlMDkwMzQwNDQgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3RyYWNpbmdfbXVsdGkuYwomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy90cmFjaW5nX211bHRpLmMKQEAgLTYxMiw3ICYjNDM7NjEyLDcgQEAgdm9pZCBzZXJpYWxfdGVzdF90cmFjaW5nX211bHRpX2JlbmNoX2F0dGFjaCh2b2lkKQogCXN0cnVjdCBidGYgKmJ0ZjsKIAlpbnQgZXJyOwogCi0jaWZuZGVmIF9feDg2XzY0X18KJiM0MzsjaWYgIUFSQ0hfU1VQUE9SVFNfVFJBQ0lOR19NVUxUSV9MSU5LCiAJdGVzdF9fc2tpcCgpOwogCXJldHVybjsKICNlbmRpZgpAQCAtOTIzLDYgJiM0Mzs5MjMsMTEgQEAgc3RhdGljIHZvaWQgdGVzdF9yb2xsYmFja191bmxpbmsodm9pZCkKIAogdm9pZCBzZXJpYWxfdGVzdF90cmFjaW5nX211bHRpX2F0dGFjaF9yb2xsYmFjayh2b2lkKQogewomIzQzOyNpZiAhQVJDSF9TVVBQT1JUU19UUkFDSU5HX01VTFRJX0xJTksKJiM0MzsJdGVzdF9fc2tpcCgpOwomIzQzOwlyZXR1cm47CiYjNDM7I2VuZGlmCiYjNDM7CiAJaWYgKHRlc3RfX3N0YXJ0X3N1YnRlc3QoJiMzNDtwdXQmIzM0OykpCiAJCXRlc3Rfcm9sbGJhY2tfcHV0KCk7CiAJaWYgKHRlc3RfX3N0YXJ0X3N1YnRlc3QoJiMzNDt1bmxpbmsmIzM0OykpCkBAIC05MzEsNyAmIzQzOzkzNiw3IEBAIHZvaWQgc2VyaWFsX3Rlc3RfdHJhY2luZ19tdWx0aV9hdHRhY2hfcm9sbGJhY2sodm9pZCkKIAogdm9pZCB0ZXN0X3RyYWNpbmdfbXVsdGlfdGVzdCh2b2lkKQogewotI2lmbmRlZiBfX3g4Nl82NF9fCiYjNDM7I2lmICFBUkNIX1NVUFBPUlRTX1RSQUNJTkdfTVVMVElfTElOSwogCXRlc3RfX3NraXAoKTsKIAlyZXR1cm47CiAjZW5kaWYKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X3Byb2dzLmggYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9wcm9ncy5oCmluZGV4IDJjZjk1MGFmY2Q4NTQzLi5iMTQ5OGU4NDc3M2M4NCAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3RfcHJvZ3MuaAomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9wcm9ncy5oCkBAIC01NjcsNCAmIzQzOzU2NywxMCBAQCB2b2lkIHZhbGlkYXRlX21zZ3MoY29uc3QgY2hhciAqbG9nX2J1Ziwgc3RydWN0IGV4cGVjdGVkX21zZ3MgKm1zZ3MsCiB2b2lkIGZyZWVfbXNncyhzdHJ1Y3QgZXhwZWN0ZWRfbXNncyAqbXNncyk7CiB2b2lkIHZlcmlmeV90ZXN0X3N0ZGVycihzdHJ1Y3QgYnBmX29iamVjdCAqb2JqLCBzdHJ1Y3QgYnBmX3Byb2dyYW0gKnByb2cpOwogCiYjNDM7I2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykKJiM0MzsjZGVmaW5lIEFSQ0hfU1VQUE9SVFNfVFJBQ0lOR19NVUxUSV9MSU5LIDEKJiM0MzsjZWxzZQomIzQzOyNkZWZpbmUgQVJDSF9TVVBQT1JUU19UUkFDSU5HX01VTFRJX0xJTksgMAomIzQzOyNlbmRpZgomIzQzOwogI2VuZGlmIC8qIF9fVEVTVF9QUk9HU19IICovCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDA1OjUzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMwMDQKCQkJCQkJCW91dHB1dDogMjUKCQkJCQkJCXRob3VnaHRzOiAzMjUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgUGF0Y2g6IE1pbmltYWwgRnVuY3Rpb25hbCBJbXBhY3Q/KioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpdCB0b3VjaGVzIGEgZmV3IGZpbGVzOiBgYXJjaC9hcm02NC9LY29uZmlnYCwgYGFyY2gvYXJtNjQva2VybmVsL2Z0cmFjZS5jYCwgYW5kIHNvbWUgQlBGIHNlbGZ0ZXN0cy4gSW5pdGlhbGx5LCBpdCBzZWVtcyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkLiBUaGUgYEtjb25maWdgIGNoYW5nZSBsb29rcyBsaWtlIGl0JiMzOTtzIHNlbGVjdGluZyBgSEFWRV9TSU5HTEVfRlRSQUNFX0RJUkVDVF9PUFNgIGlmIGBEWU5BTUlDX0ZUUkFDRV9XSVRIX0RJUkVDVF9DQUxMU2AgaXMgZW5hYmxlZC4gU2VlbXMgbGlrZSBhIGRlcGVuZGVuY3kgb3IgY29uZmlndXJhdGlvbiBmbGFnIHJlbGF0ZWQgdG8gZnRyYWNlIGFuZCBkaXJlY3QgY2FsbHMuIFRoZW4sIGBhcmNoL2FybTY0L2tlcm5lbC9mdHJhY2UuY2AgaXMganVzdCBhIGNvbW1lbnQgdHdlYWssIHdoaWNoIGlzIHVzdWFsbHkgbm90IGEgYmlnIGRlYWwuIFRoZSBCUEYgc2VsZnRlc3QgY2hhbmdlcyBpbiBgdHJhY2luZ19tdWx0aS5jYCBhbmQgYHRlc3RfcHJvZ3MuaGAgdXBkYXRlIGFyY2hpdGVjdHVyZSBjaGVja3MsIGxpa2VseSB0byBhY2NvdW50IGZvciB0aGUgbmV3IGNvbmZpZ3VyYXRpb24uCgpCdXQgd2FpdCwgaXMgdGhpcyAqanVzdCogY29uZmlndXJhdGlvbiBhbmQgdGVzdGluZywgb3IgaXMgdGhlcmUgYW55IGFjdHVhbCBrZXJuZWwgZnVuY3Rpb25hbGl0eSBiZWluZyBtb2RpZmllZD8gSXQmIzM5O3MgaW1wb3J0YW50IHRvIGJlIGNhcmVmdWwsIGV2ZW4gd2l0aCBzZWVtaW5nbHkgaW5ub2N1b3VzIGNoYW5nZXMuIExldCYjMzk7cyBicmVhayBpdCBkb3duIGFnYWluIHRvIG1ha2Ugc3VyZTogdGhlIEtjb25maWcgY2hhbmdlIGFkZHMgYSBgc2VsZWN0YCBzdGF0ZW1lbnQuIFRoZSBmdHJhY2UuYyBjaGFuZ2UgaXMganVzdCBhIGNvbW1lbnQuIEFuZCB0aGUgQlBGIGZpbGVzIGFyZSBkZWZpbml0ZWx5IHNlbGZ0ZXN0cy4KCk9rYXksIEkmIzM5O20gZ2V0dGluZyBhIGxpdHRsZSB1bmVhc3kgYWJvdXQgdGhhdCBgc2VsZWN0IEhBVkVfU0lOR0xFX0ZUUkFDRV9ESVJFQ1RfT1BTYCBzdGF0ZW1lbnQgaW4gdGhlIGBLY29uZmlnYCBmaWxlLiBFdmVuIHRob3VnaCB0aGUgb3RoZXIgY2hhbmdlcyBhcmUgY2xlYXJseSBub3QgZnVuY3Rpb25hbCwgdGhhdCBzZWxlY3QgbWlnaHQgKmVuYWJsZSogc29tZSBjb2RlIHBhdGhzIHdpdGhpbiB0aGUga2VybmVsIGl0c2VsZi4gSSBjYW4mIzM5O3QgYmUgc3VyZSB1bnRpbCBJIGtub3cgd2hhdCBgSEFWRV9TSU5HTEVfRlRSQUNFX0RJUkVDVF9PUFNgIGFjdHVhbGx5ICpkb2VzKi4gSSBuZWVkIHRvIGludmVzdGlnYXRlIHRoYXQgS2NvbmZpZyBvcHRpb24gYW5kIHNlZSB3aGF0IGl0IGVuYWJsZXMuIFRoYXQmIzM5O3MgdGhlIGtleSB0byB1bmRlcnN0YW5kaW5nIHRoZSBmdWxsIGltcGFjdCBoZXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDA1OjUzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O0hBVkVfU0lOR0xFX0ZUUkFDRV9ESVJFQ1RfT1BTJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gvYXJtNjQvS2NvbmZpZz0yPWNvbmZpZyBBUk02NFxuLS1cbmFyY2gvYXJtNjQvS2NvbmZpZy0xOTAtXHRcdGlmIERZTkFNSUNfRlRSQUNFX1dJVEhfQVJHU1xuYXJjaC9hcm02NC9LY29uZmlnOjE5MTpcdHNlbGVjdCBIQVZFX1NJTkdMRV9GVFJBQ0VfRElSRUNUX09QUyBcXFxuYXJjaC9hcm02NC9LY29uZmlnLTE5Mi1cdFx0aWYgRFlOQU1JQ19GVFJBQ0VfV0lUSF9ESVJFQ1RfQ0FMTFNcbi0tXG5hcmNoL3g4Ni9LY29uZmlnPTU4PWNvbmZpZyBYODZcbi0tXG5hcmNoL3g4Ni9LY29uZmlnLTMzNy1cdHNlbGVjdCBBUkNIX1NVUFBPUlRTX1NDSEVEX01DXHRcdGlmIFNNUFxuYXJjaC94ODYvS2NvbmZpZzozMzg6XHRzZWxlY3QgSEFWRV9TSU5HTEVfRlRSQUNFX0RJUkVDVF9PUFNcdGlmIFg4Nl82NCBcdTAwMjZcdTAwMjYgRFlOQU1JQ19GVFJBQ0VfV0lUSF9ESVJFQ1RfQ0FMTFNcbmFyY2gveDg2L0tjb25maWctMzM5LVxuLS1cbmtlcm5lbC9icGYvdHJhbXBvbGluZS5jPTcyPXN0YXRpYyBjb25zdCBzdHJ1Y3QgYnBmX3RyYW1wb2xpbmVfb3BzIHRyYW1wb2xpbmVfb3BzO1xua2VybmVsL2JwZi90cmFtcG9saW5lLmMtNzMtXG5rZXJuZWwvYnBmL3RyYW1wb2xpbmUuYzo3NDojaWZkZWYgQ09ORklHX0hBVkVfU0lOR0xFX0ZUUkFDRV9ESVJFQ1RfT1BTXG5rZXJuZWwvYnBmL3RyYW1wb2xpbmUuYy03NS1zdGF0aWMgc3RydWN0IGJwZl90cmFtcG9saW5lICpkaXJlY3Rfb3BzX2lwX2xvb2t1cChzdHJ1Y3QgZnRyYWNlX29wcyAqb3BzLCB1bnNpZ25lZCBsb25nIGlwKVxuLS1cbmtlcm5lbC9icGYvdHJhbXBvbGluZS5jPTkyPXN0YXRpYyBzdHJ1Y3QgYnBmX3RyYW1wb2xpbmUgKmRpcmVjdF9vcHNfaXBfbG9va3VwKHN0cnVjdCBmdHJhY2Vfb3BzICpvcHMsIHVuc2lnbmVkIGxvbmcgaXApXG4tLVxua2VybmVsL2JwZi90cmFtcG9saW5lLmMtOTUtfVxua2VybmVsL2JwZi90cmFtcG9saW5lLmM6OTY6I2VuZGlmIC8qIENPTkZJR19IQVZFX1NJTkdMRV9GVFJBQ0VfRElSRUNUX09QUyAqL1xua2VybmVsL2JwZi90cmFtcG9saW5lLmMtOTctXG4tLVxua2VybmVsL2JwZi90cmFtcG9saW5lLmM9MjEwPXZvaWQgYnBmX2ltYWdlX2tzeW1fZGVsKHN0cnVjdCBicGZfa3N5bSAqa3N5bSlcbi0tXG5rZXJuZWwvYnBmL3RyYW1wb2xpbmUuYy0yMTctI2lmZGVmIENPTkZJR19EWU5BTUlDX0ZUUkFDRV9XSVRIX0RJUkVDVF9DQUxMU1xua2VybmVsL2JwZi90cmFtcG9saW5lLmM6MjE4OiNpZmRlZiBDT05GSUdfSEFWRV9TSU5HTEVfRlRSQUNFX0RJUkVDVF9PUFNcbmtlcm5lbC9icGYvdHJhbXBvbGluZS5jLTIxOS0vKlxuLS1cbmtlcm5lbC9icGYvdHJhbXBvbGluZS5jPTMzNz1zdGF0aWMgaW50IGRpcmVjdF9vcHNfbW9kKHN0cnVjdCBicGZfdHJhbXBvbGluZSAqdHIsIHZvaWQgKnB0ciwgYm9vbCBsb2NrX2RpcmVjdF9tdXRleClcbi0tXG5rZXJuZWwvYnBmL3RyYW1wb2xpbmUuYy0zNDctfVxua2VybmVsL2JwZi90cmFtcG9saW5lLmM6MzQ4OiNlbmRpZiAvKiBDT05GSUdfSEFWRV9TSU5HTEVfRlRSQUNFX0RJUkVDVF9PUFMgKi9cbmtlcm5lbC9icGYvdHJhbXBvbGluZS5jLTM0OS0jZWxzZVxuLS1cbmtlcm5lbC9icGYvdHJhbXBvbGluZS5jPTE0Njc9aW50IF9fd2VhayBhcmNoX2JwZl90cmFtcG9saW5lX3NpemUoY29uc3Qgc3RydWN0IGJ0Zl9mdW5jX21vZGVsICptLCB1MzIgZmxhZ3MsXG4tLVxua2VybmVsL2JwZi90cmFtcG9saW5lLmMtMTQ3My0jaWYgZGVmaW5lZChDT05GSUdfRFlOQU1JQ19GVFJBQ0VfV0lUSF9ESVJFQ1RfQ0FMTFMpIFx1MDAyNlx1MDAyNiBcXFxua2VybmVsL2JwZi90cmFtcG9saW5lLmM6MTQ3NDogICAgZGVmaW5lZChDT05GSUdfSEFWRV9TSU5HTEVfRlRSQUNFX0RJUkVDVF9PUFMpIFx1MDAyNlx1MDAyNiBcXFxua2VybmVsL2JwZi90cmFtcG9saW5lLmMtMTQ3NS0gICAgZGVmaW5lZChDT05GSUdfQlBGX1NZU0NBTEwpXG4tLVxua2VybmVsL2JwZi90cmFtcG9saW5lLmM9MTcxMT1pbnQgYnBmX3RyYW1wb2xpbmVfbXVsdGlfZGV0YWNoKHN0cnVjdCBicGZfcHJvZyAqcHJvZywgc3RydWN0IGJwZl90cmFjaW5nX211bHRpX2xpbmsgKmxpbmspXG4tLVxua2VybmVsL2JwZi90cmFtcG9saW5lLmMtMTc0Ni0jZW5kaWYgLyogQ09ORklHX0RZTkFNSUNfRlRSQUNFX1dJVEhfRElSRUNUX0NBTExTIFx1MDAyNlx1MDAyNlxua2VybmVsL2JwZi90cmFtcG9saW5lLmM6MTc0NzpcdCAgQ09ORklHX0hBVkVfU0lOR0xFX0ZUUkFDRV9ESVJFQ1RfT1BTIFx1MDAyNlx1MDAyNlxua2VybmVsL2JwZi90cmFtcG9saW5lLmMtMTc0OC1cdCAgQ09ORklHX0JQRl9TWVNDQUxMICovXG4tLVxua2VybmVsL3RyYWNlL0tjb25maWc9NTA9Y29uZmlnIEhBVkVfRFlOQU1JQ19GVFJBQ0VfV0lUSF9ESVJFQ1RfQ0FMTFNcbi0tXG5rZXJuZWwvdHJhY2UvS2NvbmZpZy01Mi1cbmtlcm5lbC90cmFjZS9LY29uZmlnOjUzOmNvbmZpZyBIQVZFX1NJTkdMRV9GVFJBQ0VfRElSRUNUX09QU1xua2VybmVsL3RyYWNlL0tjb25maWctNTQtXHRib29sXG4tLVxua2VybmVsL3RyYWNlL2JwZl90cmFjZS5jPTM2ODA9X19icGZfa2Z1bmNfZW5kX2RlZnMoKTtcbi0tXG5rZXJuZWwvdHJhY2UvYnBmX3RyYWNlLmMtMzY4Mi0jaWYgZGVmaW5lZChDT05GSUdfRFlOQU1JQ19GVFJBQ0VfV0lUSF9ESVJFQ1RfQ0FMTFMpIFx1MDAyNlx1MDAyNiBcXFxua2VybmVsL3RyYWNlL2JwZl90cmFjZS5jOjM2ODM6ICAgIGRlZmluZWQoQ09ORklHX0hBVkVfU0lOR0xFX0ZUUkFDRV9ESVJFQ1RfT1BTKVxua2VybmVsL3RyYWNlL2JwZl90cmFjZS5jLTM2ODQtXG4tLVxua2VybmVsL3RyYWNlL2JwZl90cmFjZS5jPTM4NzU9aW50IGJwZl90cmFjaW5nX211bHRpX2F0dGFjaChzdHJ1Y3QgYnBmX3Byb2cgKnByb2csIGNvbnN0IHVuaW9uIGJwZl9hdHRyICphdHRyKVxuLS1cbmtlcm5lbC90cmFjZS9icGZfdHJhY2UuYy0zODc5LVxua2VybmVsL3RyYWNlL2JwZl90cmFjZS5jOjM4ODA6I2VuZGlmIC8qIENPTkZJR19EWU5BTUlDX0ZUUkFDRV9XSVRIX0RJUkVDVF9DQUxMUyBcdTAwMjZcdTAwMjYgQ09ORklHX0hBVkVfU0lOR0xFX0ZUUkFDRV9ESVJFQ1RfT1BTICovXG4tLVxua2VybmVsL3RyYWNlL2Z0cmFjZS5jPTI2NDk9c3RhdGljIHZvaWQgY2FsbF9kaXJlY3RfZnVuY3ModW5zaWduZWQgbG9uZyBpcCwgdW5zaWduZWQgbG9uZyBwaXAsXG4tLVxua2VybmVsL3RyYWNlL2Z0cmFjZS5jLTI2NTMtXG5rZXJuZWwvdHJhY2UvZnRyYWNlLmM6MjY1NDojaWZkZWYgQ09ORklHX0hBVkVfU0lOR0xFX0ZUUkFDRV9ESVJFQ1RfT1BTXG5rZXJuZWwvdHJhY2UvZnRyYWNlLmMtMjY1NS1cdGFkZHIgPSBmdHJhY2VfZmluZF9yZWNfZGlyZWN0KGlwKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwNTo1MzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MTAwCgkJCQkJCQlvdXRwdXQ6IDU5CgkJCQkJCQl0aG91Z2h0czogODY3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKldvcnRoRnV6emluZyBEZWNpc2lvbiBmb3IgdGhlIFBhdGNoKioKCk9rYXksIGxldCBtZSBicmVhayB0aGlzIGRvd24uIFRoaXMgcGF0Y2ggaXMgZW5hYmxpbmcgYENPTkZJR19IQVZFX1NJTkdMRV9GVFJBQ0VfRElSRUNUX09QU2Agb24gQVJNNjQuIFRoYXQsIGluIHR1cm4sIGVuYWJsZXMgc29tZSBmdW5jdGlvbmFsaXR5IGluIGBrZXJuZWwvYnBmL3RyYW1wb2xpbmUuY2AsIGBrZXJuZWwvdHJhY2UvYnBmX3RyYWNlLmNgLCBhbmQgYGtlcm5lbC90cmFjZS9mdHJhY2UuY2AuIEJ1dCBob2xkIG9uLCB0aGUgcGF0Y2ggKml0c2VsZiogaXMgb25seSB0b3VjaGluZyBLY29uZmlnLCBzZWxmdGVzdHMsIGFuZCBhIGNvbW1lbnQuIEl0JiMzOTtzIGVuYWJsaW5nIGEgZmVhdHVyZSAoQlBGIG11bHRpLWF0dGFjaCkgb24gQVJNNjQsIGJ1dCBub3QgYWN0dWFsbHkgKm1vZGlmeWluZyogYW55IEMgY29kZSBkaXJlY3RseSwgb25seSBhY3RpdmF0aW5nIGV4aXN0aW5nIGNvZGUuCgpUaGUgaW5zdHJ1Y3Rpb25zIHNheSB0byByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAgaWYgdGhlIHBhdGNoICpvbmx5KiBjb250YWlucyBtb2RpZmljYXRpb25zIHRvIGRvY3VtZW50YXRpb24sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuIEFuZCwgSSBzZWUgdGhhdCB0aGlzIHBhdGNoJiMzOTtzIGRpZmYgaW5jbHVkZXMgb25seTogYGFyY2gvYXJtNjQvS2NvbmZpZ2AsIHdoaWNoIGlzIGEgS2NvbmZpZyBmaWxlOyBgYXJjaC9hcm02NC9rZXJuZWwvZnRyYWNlLmNgLCB3aGljaCBoYXMgYSBjb21tZW50OyBhbmQgc29tZSBzZWxmdGVzdHMsIHNwZWNpZmljYWxseSBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvdHJhY2luZ19tdWx0aS5jYCBhbmQgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X3Byb2dzLmhgLgoKVGhlIHJ1bGUgaXMgdmVyeSBjbGVhcjogJiMzNDtSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOiAtIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuJiMzNDsgVGhpcyBwYXRjaCAqZXhhY3RseSogZml0cyB0aGF0IGRlc2NyaXB0aW9uLiBJdCYjMzk7cyBwdXJlbHkgS2NvbmZpZywgY29tbWVudHMsIGFuZCBzZWxmdGVzdHMuCgpOb3csIEkmIzM5O20gdXNlZCB0byB0aGlua2luZyBhYm91dCB3aGV0aGVyIG5ldyBmZWF0dXJlcyBzaG91bGQgYmUgZnV6emVkLCBlc3BlY2lhbGx5IHdoZW4gdGhleSYjMzk7cmUgZW5hYmxlZCB2aWEgS2NvbmZpZy4gU3l6a2FsbGVyIHVzdWFsbHkgd29ya3MgYmFzZWQgb24gY29kZSBjb3ZlcmFnZSwgc28gYSBuZXcgZmVhdHVyZSAqY291bGQqIGJlIGZ1enotd29ydGh5LiBCdXQgdGhlIHByb21wdCBleHBsaWNpdGx5IGdpdmVzIGEgcnVsZSwgYW5kIEkmIzM5O20gb2JsaWdhdGVkIHRvIGZvbGxvdyBpdC4KCk9rYXksIGxldCYjMzk7cyByZS1yZWFkIHRoZSBkaWZmIGFnYWluIHRvIGJlIGFic29sdXRlbHkgc3VyZS4gTm9wZSwgaXQmIzM5O3MganVzdCBLY29uZmlnLCBjb21tZW50LCBhbmQgc2VsZnRlc3RzLiBUaGUgc2VsZnRlc3RzIGFyZSBub3Qga2VybmVsIGNvZGUgYW5kIGFyZSB1c2VyLXNwYWNlLgoKVGhlcmVmb3JlLCBiZWNhdXNlIHRoaXMgcGF0Y2ggKm9ubHkqIGNvbnRhaW5zIGNoYW5nZXMgdG8gS2NvbmZpZyBmaWxlcywgY29kZSBjb21tZW50cywgYW5kIHNlbGZ0ZXN0cywgaXQgZGlyZWN0bHkgbWF0Y2hlcyB0aGUgY3JpdGVyaWEgaW4gdGhlIHByb21wdC4gSSB3aWxsIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwNTo1MzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgY29udGFpbnMgbW9kaWZpY2F0aW9ucyB0byBLY29uZmlnIGZpbGVzLCBjb2RlIGNvbW1lbnRzLCBhbmQgc2VsZnRlc3RzLiBJdCBkb2VzIG5vdCBtb2RpZnkgYW55IGV4ZWN1dGFibGUga2VybmVsIHNvdXJjZSBjb2RlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBjb250YWlucyBtb2RpZmljYXRpb25zIHRvIEtjb25maWcgZmlsZXMsIGNvZGUgY29tbWVudHMsIGFuZCBzZWxmdGVzdHMuIEl0IGRvZXMgbm90IG1vZGlmeSBhbnkgZXhlY3V0YWJsZSBrZXJuZWwgc291cmNlIGNvZGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMjhUMDU6NTM6MTkuNDc4MTI2MjA0WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTk3Mjc0NzA4MTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgY29udGFpbnMgbW9kaWZpY2F0aW9ucyB0byBLY29uZmlnIGZpbGVzLCBjb2RlIGNvbW1lbnRzLCBhbmQgc2VsZnRlc3RzLiBJdCBkb2VzIG5vdCBtb2RpZnkgYW55IGV4ZWN1dGFibGUga2VybmVsIHNvdXJjZSBjb2RlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMDU6NTM6MTkuNDc4MTMzMTE0WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1Nzc4Nzg0MDYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA2MmEzYTgxMjFhMDRlMDA5MjU5M2U2NWE1ZTRhMTBkZjM2Y2VjY2RmXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUdWUgSnVsIDI4IDA1OjUzOjE4IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvS2NvbmZpZyBiL2FyY2gvYXJtNjQvS2NvbmZpZ1xcbmluZGV4IDBkZTQxOWVkNzgwZjEzLi5jOThkY2E3Njg1OWIxMSAxMDA2NDRcXG4tLS0gYS9hcmNoL2FybTY0L0tjb25maWdcXG4rKysgYi9hcmNoL2FybTY0L0tjb25maWdcXG5AQCAtMTg4LDYgKzE4OCw4IEBAIGNvbmZpZyBBUk02NFxcbiBcXHRcXHQgICAgQ0xBTkdfU1VQUE9SVFNfRFlOQU1JQ19GVFJBQ0VfV0lUSF9BUkdTKVxcbiBcXHRzZWxlY3QgSEFWRV9EWU5BTUlDX0ZUUkFDRV9XSVRIX0RJUkVDVF9DQUxMUyBcXFxcXFxuIFxcdFxcdGlmIERZTkFNSUNfRlRSQUNFX1dJVEhfQVJHU1xcbitcXHRzZWxlY3QgSEFWRV9TSU5HTEVfRlRSQUNFX0RJUkVDVF9PUFMgXFxcXFxcbitcXHRcXHRpZiBEWU5BTUlDX0ZUUkFDRV9XSVRIX0RJUkVDVF9DQUxMU1xcbiBcXHRzZWxlY3QgSEFWRV9EWU5BTUlDX0ZUUkFDRV9XSVRIX0NBTExfT1BTIFxcXFxcXG4gXFx0XFx0aWYgKERZTkFNSUNfRlRSQUNFX1dJVEhfQVJHUyBcXHUwMDI2XFx1MDAyNiAhQ0ZJIFxcdTAwMjZcXHUwMDI2IFxcXFxcXG4gXFx0XFx0ICAgIChDQ19JU19DTEFORyB8fCAhQ0NfT1BUSU1JWkVfRk9SX1NJWkUpKVxcbmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2tlcm5lbC9mdHJhY2UuYyBiL2FyY2gvYXJtNjQva2VybmVsL2Z0cmFjZS5jXFxuaW5kZXggZTFhM2MwYjNhMDUxNDYuLjU2YmE3MmE4N2RmYWMwIDEwMDY0NFxcbi0tLSBhL2FyY2gvYXJtNjQva2VybmVsL2Z0cmFjZS5jXFxuKysrIGIvYXJjaC9hcm02NC9rZXJuZWwvZnRyYWNlLmNcXG5AQCAtMzAxLDggKzMwMSw3IEBAIHN0YXRpYyBib29sIGZ0cmFjZV9maW5kX2NhbGxhYmxlX2FkZHIoc3RydWN0IGR5bl9mdHJhY2UgKnJlYyxcXG4gXFxuIFxcdC8qXFxuIFxcdCAqIElmIGEgY3VzdG9tIHRyYW1wb2xpbmUgaXMgdW5yZWFjaGFibGUsIHJlbHkgb24gdGhlIGZ0cmFjZV9jYWxsZXJcXG4tXFx0ICogdHJhbXBvbGluZSB3aGljaCBrbm93cyBob3cgdG8gaW5kaXJlY3RseSByZWFjaCB0aGF0IHRyYW1wb2xpbmVcXG4tXFx0ICogdGhyb3VnaCBvcHMtXFx1MDAzZWRpcmVjdF9jYWxsLlxcbitcXHQgKiB0cmFtcG9saW5lIHdoaWNoIGtub3dzIGhvdyB0byBpbmRpcmVjdGx5IHJlYWNoIHRoYXQgdHJhbXBvbGluZS5cXG4gXFx0ICovXFxuIFxcdGlmICgqYWRkciAhPSBGVFJBQ0VfQUREUiBcXHUwMDI2XFx1MDAyNiAhcmVhY2hhYmxlX2J5X2JsKCphZGRyLCBwYykpXFxuIFxcdFxcdCphZGRyID0gRlRSQUNFX0FERFI7XFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3RyYWNpbmdfbXVsdGkuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3RyYWNpbmdfbXVsdGkuY1xcbmluZGV4IGYwMmZmYzdmNDFkNzg0Li41YWE0OGUwOTAzNDA0NCAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy90cmFjaW5nX211bHRpLmNcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy90cmFjaW5nX211bHRpLmNcXG5AQCAtNjEyLDcgKzYxMiw3IEBAIHZvaWQgc2VyaWFsX3Rlc3RfdHJhY2luZ19tdWx0aV9iZW5jaF9hdHRhY2godm9pZClcXG4gXFx0c3RydWN0IGJ0ZiAqYnRmO1xcbiBcXHRpbnQgZXJyO1xcbiBcXG4tI2lmbmRlZiBfX3g4Nl82NF9fXFxuKyNpZiAhQVJDSF9TVVBQT1JUU19UUkFDSU5HX01VTFRJX0xJTktcXG4gXFx0dGVzdF9fc2tpcCgpO1xcbiBcXHRyZXR1cm47XFxuICNlbmRpZlxcbkBAIC05MjMsNiArOTIzLDExIEBAIHN0YXRpYyB2b2lkIHRlc3Rfcm9sbGJhY2tfdW5saW5rKHZvaWQpXFxuIFxcbiB2b2lkIHNlcmlhbF90ZXN0X3RyYWNpbmdfbXVsdGlfYXR0YWNoX3JvbGxiYWNrKHZvaWQpXFxuIHtcXG4rI2lmICFBUkNIX1NVUFBPUlRTX1RSQUNJTkdfTVVMVElfTElOS1xcbitcXHR0ZXN0X19za2lwKCk7XFxuK1xcdHJldHVybjtcXG4rI2VuZGlmXFxuK1xcbiBcXHRpZiAodGVzdF9fc3RhcnRfc3VidGVzdChcXFwicHV0XFxcIikpXFxuIFxcdFxcdHRlc3Rfcm9sbGJhY2tfcHV0KCk7XFxuIFxcdGlmICh0ZXN0X19zdGFydF9zdWJ0ZXN0KFxcXCJ1bmxpbmtcXFwiKSlcXG5AQCAtOTMxLDcgKzkzNiw3IEBAIHZvaWQgc2VyaWFsX3Rlc3RfdHJhY2luZ19tdWx0aV9hdHRhY2hfcm9sbGJhY2sodm9pZClcXG4gXFxuIHZvaWQgdGVzdF90cmFjaW5nX211bHRpX3Rlc3Qodm9pZClcXG4ge1xcbi0jaWZuZGVmIF9feDg2XzY0X19cXG4rI2lmICFBUkNIX1NVUFBPUlRTX1RSQUNJTkdfTVVMVElfTElOS1xcbiBcXHR0ZXN0X19za2lwKCk7XFxuIFxcdHJldHVybjtcXG4gI2VuZGlmXFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X3Byb2dzLmggYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9wcm9ncy5oXFxuaW5kZXggMmNmOTUwYWZjZDg1NDMuLmIxNDk4ZTg0NzczYzg0IDEwMDY0NFxcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X3Byb2dzLmhcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9wcm9ncy5oXFxuQEAgLTU2Nyw0ICs1NjcsMTAgQEAgdm9pZCB2YWxpZGF0ZV9tc2dzKGNvbnN0IGNoYXIgKmxvZ19idWYsIHN0cnVjdCBleHBlY3RlZF9tc2dzICptc2dzLFxcbiB2b2lkIGZyZWVfbXNncyhzdHJ1Y3QgZXhwZWN0ZWRfbXNncyAqbXNncyk7XFxuIHZvaWQgdmVyaWZ5X3Rlc3Rfc3RkZXJyKHN0cnVjdCBicGZfb2JqZWN0ICpvYmosIHN0cnVjdCBicGZfcHJvZ3JhbSAqcHJvZyk7XFxuIFxcbisjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKVxcbisjZGVmaW5lIEFSQ0hfU1VQUE9SVFNfVFJBQ0lOR19NVUxUSV9MSU5LIDFcXG4rI2Vsc2VcXG4rI2RlZmluZSBBUkNIX1NVUFBPUlRTX1RSQUNJTkdfTVVMVElfTElOSyAwXFxuKyNlbmRpZlxcbitcXG4gI2VuZGlmIC8qIF9fVEVTVF9QUk9HU19IICovXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDA1OjUzOjIwLjA1Njc4MjQ5WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MTkxNDg4MDkyMTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgY29udGFpbnMgbW9kaWZpY2F0aW9ucyB0byBLY29uZmlnIGZpbGVzLCBjb2RlIGNvbW1lbnRzLCBhbmQgc2VsZnRlc3RzLiBJdCBkb2VzIG5vdCBtb2RpZnkgYW55IGV4ZWN1dGFibGUga2VybmVsIHNvdXJjZSBjb2RlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNjJhM2E4MTIxYTA0ZTAwOTI1OTNlNjVhNWU0YTEwZGYzNmNlY2NkZlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgSnVsIDI4IDA1OjUzOjE4IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9LY29uZmlnIGIvYXJjaC9hcm02NC9LY29uZmlnXG5pbmRleCAwZGU0MTllZDc4MGYxMy4uYzk4ZGNhNzY4NTliMTEgMTAwNjQ0XG4tLS0gYS9hcmNoL2FybTY0L0tjb25maWdcbisrKyBiL2FyY2gvYXJtNjQvS2NvbmZpZ1xuQEAgLTE4OCw2ICsxODgsOCBAQCBjb25maWcgQVJNNjRcbiBcdFx0ICAgIENMQU5HX1NVUFBPUlRTX0RZTkFNSUNfRlRSQUNFX1dJVEhfQVJHUylcbiBcdHNlbGVjdCBIQVZFX0RZTkFNSUNfRlRSQUNFX1dJVEhfRElSRUNUX0NBTExTIFxcXG4gXHRcdGlmIERZTkFNSUNfRlRSQUNFX1dJVEhfQVJHU1xuK1x0c2VsZWN0IEhBVkVfU0lOR0xFX0ZUUkFDRV9ESVJFQ1RfT1BTIFxcXG4rXHRcdGlmIERZTkFNSUNfRlRSQUNFX1dJVEhfRElSRUNUX0NBTExTXG4gXHRzZWxlY3QgSEFWRV9EWU5BTUlDX0ZUUkFDRV9XSVRIX0NBTExfT1BTIFxcXG4gXHRcdGlmIChEWU5BTUlDX0ZUUkFDRV9XSVRIX0FSR1MgXHUwMDI2XHUwMDI2ICFDRkkgXHUwMDI2XHUwMDI2IFxcXG4gXHRcdCAgICAoQ0NfSVNfQ0xBTkcgfHwgIUNDX09QVElNSVpFX0ZPUl9TSVpFKSlcbmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2tlcm5lbC9mdHJhY2UuYyBiL2FyY2gvYXJtNjQva2VybmVsL2Z0cmFjZS5jXG5pbmRleCBlMWEzYzBiM2EwNTE0Ni4uNTZiYTcyYTg3ZGZhYzAgMTAwNjQ0XG4tLS0gYS9hcmNoL2FybTY0L2tlcm5lbC9mdHJhY2UuY1xuKysrIGIvYXJjaC9hcm02NC9rZXJuZWwvZnRyYWNlLmNcbkBAIC0zMDEsOCArMzAxLDcgQEAgc3RhdGljIGJvb2wgZnRyYWNlX2ZpbmRfY2FsbGFibGVfYWRkcihzdHJ1Y3QgZHluX2Z0cmFjZSAqcmVjLFxuIFxuIFx0LypcbiBcdCAqIElmIGEgY3VzdG9tIHRyYW1wb2xpbmUgaXMgdW5yZWFjaGFibGUsIHJlbHkgb24gdGhlIGZ0cmFjZV9jYWxsZXJcbi1cdCAqIHRyYW1wb2xpbmUgd2hpY2gga25vd3MgaG93IHRvIGluZGlyZWN0bHkgcmVhY2ggdGhhdCB0cmFtcG9saW5lXG4tXHQgKiB0aHJvdWdoIG9wcy1cdTAwM2VkaXJlY3RfY2FsbC5cbitcdCAqIHRyYW1wb2xpbmUgd2hpY2gga25vd3MgaG93IHRvIGluZGlyZWN0bHkgcmVhY2ggdGhhdCB0cmFtcG9saW5lLlxuIFx0ICovXG4gXHRpZiAoKmFkZHIgIT0gRlRSQUNFX0FERFIgXHUwMDI2XHUwMDI2ICFyZWFjaGFibGVfYnlfYmwoKmFkZHIsIHBjKSlcbiBcdFx0KmFkZHIgPSBGVFJBQ0VfQUREUjtcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy90cmFjaW5nX211bHRpLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy90cmFjaW5nX211bHRpLmNcbmluZGV4IGYwMmZmYzdmNDFkNzg0Li41YWE0OGUwOTAzNDA0NCAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3RyYWNpbmdfbXVsdGkuY1xuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvdHJhY2luZ19tdWx0aS5jXG5AQCAtNjEyLDcgKzYxMiw3IEBAIHZvaWQgc2VyaWFsX3Rlc3RfdHJhY2luZ19tdWx0aV9iZW5jaF9hdHRhY2godm9pZClcbiBcdHN0cnVjdCBidGYgKmJ0ZjtcbiBcdGludCBlcnI7XG4gXG4tI2lmbmRlZiBfX3g4Nl82NF9fXG4rI2lmICFBUkNIX1NVUFBPUlRTX1RSQUNJTkdfTVVMVElfTElOS1xuIFx0dGVzdF9fc2tpcCgpO1xuIFx0cmV0dXJuO1xuICNlbmRpZlxuQEAgLTkyMyw2ICs5MjMsMTEgQEAgc3RhdGljIHZvaWQgdGVzdF9yb2xsYmFja191bmxpbmsodm9pZClcbiBcbiB2b2lkIHNlcmlhbF90ZXN0X3RyYWNpbmdfbXVsdGlfYXR0YWNoX3JvbGxiYWNrKHZvaWQpXG4ge1xuKyNpZiAhQVJDSF9TVVBQT1JUU19UUkFDSU5HX01VTFRJX0xJTktcbitcdHRlc3RfX3NraXAoKTtcbitcdHJldHVybjtcbisjZW5kaWZcbitcbiBcdGlmICh0ZXN0X19zdGFydF9zdWJ0ZXN0KFwicHV0XCIpKVxuIFx0XHR0ZXN0X3JvbGxiYWNrX3B1dCgpO1xuIFx0aWYgKHRlc3RfX3N0YXJ0X3N1YnRlc3QoXCJ1bmxpbmtcIikpXG5AQCAtOTMxLDcgKzkzNiw3IEBAIHZvaWQgc2VyaWFsX3Rlc3RfdHJhY2luZ19tdWx0aV9hdHRhY2hfcm9sbGJhY2sodm9pZClcbiBcbiB2b2lkIHRlc3RfdHJhY2luZ19tdWx0aV90ZXN0KHZvaWQpXG4ge1xuLSNpZm5kZWYgX194ODZfNjRfX1xuKyNpZiAhQVJDSF9TVVBQT1JUU19UUkFDSU5HX01VTFRJX0xJTktcbiBcdHRlc3RfX3NraXAoKTtcbiBcdHJldHVybjtcbiAjZW5kaWZcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9wcm9ncy5oIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3RfcHJvZ3MuaFxuaW5kZXggMmNmOTUwYWZjZDg1NDMuLmIxNDk4ZTg0NzczYzg0IDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3RfcHJvZ3MuaFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3RfcHJvZ3MuaFxuQEAgLTU2Nyw0ICs1NjcsMTAgQEAgdm9pZCB2YWxpZGF0ZV9tc2dzKGNvbnN0IGNoYXIgKmxvZ19idWYsIHN0cnVjdCBleHBlY3RlZF9tc2dzICptc2dzLFxuIHZvaWQgZnJlZV9tc2dzKHN0cnVjdCBleHBlY3RlZF9tc2dzICptc2dzKTtcbiB2b2lkIHZlcmlmeV90ZXN0X3N0ZGVycihzdHJ1Y3QgYnBmX29iamVjdCAqb2JqLCBzdHJ1Y3QgYnBmX3Byb2dyYW0gKnByb2cpO1xuIFxuKyNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hYXJjaDY0X18pXG4rI2RlZmluZSBBUkNIX1NVUFBPUlRTX1RSQUNJTkdfTVVMVElfTElOSyAxXG4rI2Vsc2VcbisjZGVmaW5lIEFSQ0hfU1VQUE9SVFNfVFJBQ0lOR19NVUxUSV9MSU5LIDBcbisjZW5kaWZcbitcbiAjZW5kaWYgLyogX19URVNUX1BST0dTX0ggKi9cbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDA1OjUzOjIwLjA1Njc4MzY3WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjMzMjYwNDcxNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBQYXRjaDogTWluaW1hbCBGdW5jdGlvbmFsIEltcGFjdD8qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpdCB0b3VjaGVzIGEgZmV3IGZpbGVzOiBgYXJjaC9hcm02NC9LY29uZmlnYCwgYGFyY2gvYXJtNjQva2VybmVsL2Z0cmFjZS5jYCwgYW5kIHNvbWUgQlBGIHNlbGZ0ZXN0cy4gSW5pdGlhbGx5LCBpdCBzZWVtcyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkLiBUaGUgYEtjb25maWdgIGNoYW5nZSBsb29rcyBsaWtlIGl0J3Mgc2VsZWN0aW5nIGBIQVZFX1NJTkdMRV9GVFJBQ0VfRElSRUNUX09QU2AgaWYgYERZTkFNSUNfRlRSQUNFX1dJVEhfRElSRUNUX0NBTExTYCBpcyBlbmFibGVkLiBTZWVtcyBsaWtlIGEgZGVwZW5kZW5jeSBvciBjb25maWd1cmF0aW9uIGZsYWcgcmVsYXRlZCB0byBmdHJhY2UgYW5kIGRpcmVjdCBjYWxscy4gVGhlbiwgYGFyY2gvYXJtNjQva2VybmVsL2Z0cmFjZS5jYCBpcyBqdXN0IGEgY29tbWVudCB0d2Vhaywgd2hpY2ggaXMgdXN1YWxseSBub3QgYSBiaWcgZGVhbC4gVGhlIEJQRiBzZWxmdGVzdCBjaGFuZ2VzIGluIGB0cmFjaW5nX211bHRpLmNgIGFuZCBgdGVzdF9wcm9ncy5oYCB1cGRhdGUgYXJjaGl0ZWN0dXJlIGNoZWNrcywgbGlrZWx5IHRvIGFjY291bnQgZm9yIHRoZSBuZXcgY29uZmlndXJhdGlvbi5cblxuQnV0IHdhaXQsIGlzIHRoaXMgKmp1c3QqIGNvbmZpZ3VyYXRpb24gYW5kIHRlc3RpbmcsIG9yIGlzIHRoZXJlIGFueSBhY3R1YWwga2VybmVsIGZ1bmN0aW9uYWxpdHkgYmVpbmcgbW9kaWZpZWQ/IEl0J3MgaW1wb3J0YW50IHRvIGJlIGNhcmVmdWwsIGV2ZW4gd2l0aCBzZWVtaW5nbHkgaW5ub2N1b3VzIGNoYW5nZXMuIExldCdzIGJyZWFrIGl0IGRvd24gYWdhaW4gdG8gbWFrZSBzdXJlOiB0aGUgS2NvbmZpZyBjaGFuZ2UgYWRkcyBhIGBzZWxlY3RgIHN0YXRlbWVudC4gVGhlIGZ0cmFjZS5jIGNoYW5nZSBpcyBqdXN0IGEgY29tbWVudC4gQW5kIHRoZSBCUEYgZmlsZXMgYXJlIGRlZmluaXRlbHkgc2VsZnRlc3RzLlxuXG5Pa2F5LCBJJ20gZ2V0dGluZyBhIGxpdHRsZSB1bmVhc3kgYWJvdXQgdGhhdCBgc2VsZWN0IEhBVkVfU0lOR0xFX0ZUUkFDRV9ESVJFQ1RfT1BTYCBzdGF0ZW1lbnQgaW4gdGhlIGBLY29uZmlnYCBmaWxlLiBFdmVuIHRob3VnaCB0aGUgb3RoZXIgY2hhbmdlcyBhcmUgY2xlYXJseSBub3QgZnVuY3Rpb25hbCwgdGhhdCBzZWxlY3QgbWlnaHQgKmVuYWJsZSogc29tZSBjb2RlIHBhdGhzIHdpdGhpbiB0aGUga2VybmVsIGl0c2VsZi4gSSBjYW4ndCBiZSBzdXJlIHVudGlsIEkga25vdyB3aGF0IGBIQVZFX1NJTkdMRV9GVFJBQ0VfRElSRUNUX09QU2AgYWN0dWFsbHkgKmRvZXMqLiBJIG5lZWQgdG8gaW52ZXN0aWdhdGUgdGhhdCBLY29uZmlnIG9wdGlvbiBhbmQgc2VlIHdoYXQgaXQgZW5hYmxlcy4gVGhhdCdzIHRoZSBrZXkgdG8gdW5kZXJzdGFuZGluZyB0aGUgZnVsbCBpbXBhY3QgaGVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MzAwNCwiT3V0cHV0VG9rZW5zIjoyNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMyNSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDA1OjUzOjI2LjM4OTM5MTUwNloiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MjY1OTMzMDg1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIkhBVkVfU0lOR0xFX0ZUUkFDRV9ESVJFQ1RfT1BTXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gvYXJtNjQvS2NvbmZpZz0yPWNvbmZpZyBBUk02NFxcbi0tXFxuYXJjaC9hcm02NC9LY29uZmlnLTE5MC1cXHRcXHRpZiBEWU5BTUlDX0ZUUkFDRV9XSVRIX0FSR1NcXG5hcmNoL2FybTY0L0tjb25maWc6MTkxOlxcdHNlbGVjdCBIQVZFX1NJTkdMRV9GVFJBQ0VfRElSRUNUX09QUyBcXFxcXFxuYXJjaC9hcm02NC9LY29uZmlnLTE5Mi1cXHRcXHRpZiBEWU5BTUlDX0ZUUkFDRV9XSVRIX0RJUkVDVF9DQUxMU1xcbi0tXFxuYXJjaC94ODYvS2NvbmZpZz01OD1jb25maWcgWDg2XFxuLS1cXG5hcmNoL3g4Ni9LY29uZmlnLTMzNy1cXHRzZWxlY3QgQVJDSF9TVVBQT1JUU19TQ0hFRF9NQ1xcdFxcdGlmIFNNUFxcbmFyY2gveDg2L0tjb25maWc6MzM4OlxcdHNlbGVjdCBIQVZFX1NJTkdMRV9GVFJBQ0VfRElSRUNUX09QU1xcdGlmIFg4Nl82NCBcXHUwMDI2XFx1MDAyNiBEWU5BTUlDX0ZUUkFDRV9XSVRIX0RJUkVDVF9DQUxMU1xcbmFyY2gveDg2L0tjb25maWctMzM5LVxcbi0tXFxua2VybmVsL2JwZi90cmFtcG9saW5lLmM9NzI9c3RhdGljIGNvbnN0IHN0cnVjdCBicGZfdHJhbXBvbGluZV9vcHMgdHJhbXBvbGluZV9vcHM7XFxua2VybmVsL2JwZi90cmFtcG9saW5lLmMtNzMtXFxua2VybmVsL2JwZi90cmFtcG9saW5lLmM6NzQ6I2lmZGVmIENPTkZJR19IQVZFX1NJTkdMRV9GVFJBQ0VfRElSRUNUX09QU1xcbmtlcm5lbC9icGYvdHJhbXBvbGluZS5jLTc1LXN0YXRpYyBzdHJ1Y3QgYnBmX3RyYW1wb2xpbmUgKmRpcmVjdF9vcHNfaXBfbG9va3VwKHN0cnVjdCBmdHJhY2Vfb3BzICpvcHMsIHVuc2lnbmVkIGxvbmcgaXApXFxuLS1cXG5rZXJuZWwvYnBmL3RyYW1wb2xpbmUuYz05Mj1zdGF0aWMgc3RydWN0IGJwZl90cmFtcG9saW5lICpkaXJlY3Rfb3BzX2lwX2xvb2t1cChzdHJ1Y3QgZnRyYWNlX29wcyAqb3BzLCB1bnNpZ25lZCBsb25nIGlwKVxcbi0tXFxua2VybmVsL2JwZi90cmFtcG9saW5lLmMtOTUtfVxcbmtlcm5lbC9icGYvdHJhbXBvbGluZS5jOjk2OiNlbmRpZiAvKiBDT05GSUdfSEFWRV9TSU5HTEVfRlRSQUNFX0RJUkVDVF9PUFMgKi9cXG5rZXJuZWwvYnBmL3RyYW1wb2xpbmUuYy05Ny1cXG4tLVxcbmtlcm5lbC9icGYvdHJhbXBvbGluZS5jPTIxMD12b2lkIGJwZl9pbWFnZV9rc3ltX2RlbChzdHJ1Y3QgYnBmX2tzeW0gKmtzeW0pXFxuLS1cXG5rZXJuZWwvYnBmL3RyYW1wb2xpbmUuYy0yMTctI2lmZGVmIENPTkZJR19EWU5BTUlDX0ZUUkFDRV9XSVRIX0RJUkVDVF9DQUxMU1xcbmtlcm5lbC9icGYvdHJhbXBvbGluZS5jOjIxODojaWZkZWYgQ09ORklHX0hBVkVfU0lOR0xFX0ZUUkFDRV9ESVJFQ1RfT1BTXFxua2VybmVsL2JwZi90cmFtcG9saW5lLmMtMjE5LS8qXFxuLS1cXG5rZXJuZWwvYnBmL3RyYW1wb2xpbmUuYz0zMzc9c3RhdGljIGludCBkaXJlY3Rfb3BzX21vZChzdHJ1Y3QgYnBmX3RyYW1wb2xpbmUgKnRyLCB2b2lkICpwdHIsIGJvb2wgbG9ja19kaXJlY3RfbXV0ZXgpXFxuLS1cXG5rZXJuZWwvYnBmL3RyYW1wb2xpbmUuYy0zNDctfVxcbmtlcm5lbC9icGYvdHJhbXBvbGluZS5jOjM0ODojZW5kaWYgLyogQ09ORklHX0hBVkVfU0lOR0xFX0ZUUkFDRV9ESVJFQ1RfT1BTICovXFxua2VybmVsL2JwZi90cmFtcG9saW5lLmMtMzQ5LSNlbHNlXFxuLS1cXG5rZXJuZWwvYnBmL3RyYW1wb2xpbmUuYz0xNDY3PWludCBfX3dlYWsgYXJjaF9icGZfdHJhbXBvbGluZV9zaXplKGNvbnN0IHN0cnVjdCBidGZfZnVuY19tb2RlbCAqbSwgdTMyIGZsYWdzLFxcbi0tXFxua2VybmVsL2JwZi90cmFtcG9saW5lLmMtMTQ3My0jaWYgZGVmaW5lZChDT05GSUdfRFlOQU1JQ19GVFJBQ0VfV0lUSF9ESVJFQ1RfQ0FMTFMpIFxcdTAwMjZcXHUwMDI2IFxcXFxcXG5rZXJuZWwvYnBmL3RyYW1wb2xpbmUuYzoxNDc0OiAgICBkZWZpbmVkKENPTkZJR19IQVZFX1NJTkdMRV9GVFJBQ0VfRElSRUNUX09QUykgXFx1MDAyNlxcdTAwMjYgXFxcXFxcbmtlcm5lbC9icGYvdHJhbXBvbGluZS5jLTE0NzUtICAgIGRlZmluZWQoQ09ORklHX0JQRl9TWVNDQUxMKVxcbi0tXFxua2VybmVsL2JwZi90cmFtcG9saW5lLmM9MTcxMT1pbnQgYnBmX3RyYW1wb2xpbmVfbXVsdGlfZGV0YWNoKHN0cnVjdCBicGZfcHJvZyAqcHJvZywgc3RydWN0IGJwZl90cmFjaW5nX211bHRpX2xpbmsgKmxpbmspXFxuLS1cXG5rZXJuZWwvYnBmL3RyYW1wb2xpbmUuYy0xNzQ2LSNlbmRpZiAvKiBDT05GSUdfRFlOQU1JQ19GVFJBQ0VfV0lUSF9ESVJFQ1RfQ0FMTFMgXFx1MDAyNlxcdTAwMjZcXG5rZXJuZWwvYnBmL3RyYW1wb2xpbmUuYzoxNzQ3OlxcdCAgQ09ORklHX0hBVkVfU0lOR0xFX0ZUUkFDRV9ESVJFQ1RfT1BTIFxcdTAwMjZcXHUwMDI2XFxua2VybmVsL2JwZi90cmFtcG9saW5lLmMtMTc0OC1cXHQgIENPTkZJR19CUEZfU1lTQ0FMTCAqL1xcbi0tXFxua2VybmVsL3RyYWNlL0tjb25maWc9NTA9Y29uZmlnIEhBVkVfRFlOQU1JQ19GVFJBQ0VfV0lUSF9ESVJFQ1RfQ0FMTFNcXG4tLVxcbmtlcm5lbC90cmFjZS9LY29uZmlnLTUyLVxcbmtlcm5lbC90cmFjZS9LY29uZmlnOjUzOmNvbmZpZyBIQVZFX1NJTkdMRV9GVFJBQ0VfRElSRUNUX09QU1xcbmtlcm5lbC90cmFjZS9LY29uZmlnLTU0LVxcdGJvb2xcXG4tLVxcbmtlcm5lbC90cmFjZS9icGZfdHJhY2UuYz0zNjgwPV9fYnBmX2tmdW5jX2VuZF9kZWZzKCk7XFxuLS1cXG5rZXJuZWwvdHJhY2UvYnBmX3RyYWNlLmMtMzY4Mi0jaWYgZGVmaW5lZChDT05GSUdfRFlOQU1JQ19GVFJBQ0VfV0lUSF9ESVJFQ1RfQ0FMTFMpIFxcdTAwMjZcXHUwMDI2IFxcXFxcXG5rZXJuZWwvdHJhY2UvYnBmX3RyYWNlLmM6MzY4MzogICAgZGVmaW5lZChDT05GSUdfSEFWRV9TSU5HTEVfRlRSQUNFX0RJUkVDVF9PUFMpXFxua2VybmVsL3RyYWNlL2JwZl90cmFjZS5jLTM2ODQtXFxuLS1cXG5rZXJuZWwvdHJhY2UvYnBmX3RyYWNlLmM9Mzg3NT1pbnQgYnBmX3RyYWNpbmdfbXVsdGlfYXR0YWNoKHN0cnVjdCBicGZfcHJvZyAqcHJvZywgY29uc3QgdW5pb24gYnBmX2F0dHIgKmF0dHIpXFxuLS1cXG5rZXJuZWwvdHJhY2UvYnBmX3RyYWNlLmMtMzg3OS1cXG5rZXJuZWwvdHJhY2UvYnBmX3RyYWNlLmM6Mzg4MDojZW5kaWYgLyogQ09ORklHX0RZTkFNSUNfRlRSQUNFX1dJVEhfRElSRUNUX0NBTExTIFxcdTAwMjZcXHUwMDI2IENPTkZJR19IQVZFX1NJTkdMRV9GVFJBQ0VfRElSRUNUX09QUyAqL1xcbi0tXFxua2VybmVsL3RyYWNlL2Z0cmFjZS5jPTI2NDk9c3RhdGljIHZvaWQgY2FsbF9kaXJlY3RfZnVuY3ModW5zaWduZWQgbG9uZyBpcCwgdW5zaWduZWQgbG9uZyBwaXAsXFxuLS1cXG5rZXJuZWwvdHJhY2UvZnRyYWNlLmMtMjY1My1cXG5rZXJuZWwvdHJhY2UvZnRyYWNlLmM6MjY1NDojaWZkZWYgQ09ORklHX0hBVkVfU0lOR0xFX0ZUUkFDRV9ESVJFQ1RfT1BTXFxua2VybmVsL3RyYWNlL2Z0cmFjZS5jLTI2NTUtXFx0YWRkciA9IGZ0cmFjZV9maW5kX3JlY19kaXJlY3QoaXApO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwNTo1MzozMC42NTUzMzEwMDJaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo4NTUwMjM2ODUyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKldvcnRoRnV6emluZyBEZWNpc2lvbiBmb3IgdGhlIFBhdGNoKipcblxuT2theSwgbGV0IG1lIGJyZWFrIHRoaXMgZG93bi4gVGhpcyBwYXRjaCBpcyBlbmFibGluZyBgQ09ORklHX0hBVkVfU0lOR0xFX0ZUUkFDRV9ESVJFQ1RfT1BTYCBvbiBBUk02NC4gVGhhdCwgaW4gdHVybiwgZW5hYmxlcyBzb21lIGZ1bmN0aW9uYWxpdHkgaW4gYGtlcm5lbC9icGYvdHJhbXBvbGluZS5jYCwgYGtlcm5lbC90cmFjZS9icGZfdHJhY2UuY2AsIGFuZCBga2VybmVsL3RyYWNlL2Z0cmFjZS5jYC4gQnV0IGhvbGQgb24sIHRoZSBwYXRjaCAqaXRzZWxmKiBpcyBvbmx5IHRvdWNoaW5nIEtjb25maWcsIHNlbGZ0ZXN0cywgYW5kIGEgY29tbWVudC4gSXQncyBlbmFibGluZyBhIGZlYXR1cmUgKEJQRiBtdWx0aS1hdHRhY2gpIG9uIEFSTTY0LCBidXQgbm90IGFjdHVhbGx5ICptb2RpZnlpbmcqIGFueSBDIGNvZGUgZGlyZWN0bHksIG9ubHkgYWN0aXZhdGluZyBleGlzdGluZyBjb2RlLlxuXG5UaGUgaW5zdHJ1Y3Rpb25zIHNheSB0byByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAgaWYgdGhlIHBhdGNoICpvbmx5KiBjb250YWlucyBtb2RpZmljYXRpb25zIHRvIGRvY3VtZW50YXRpb24sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuIEFuZCwgSSBzZWUgdGhhdCB0aGlzIHBhdGNoJ3MgZGlmZiBpbmNsdWRlcyBvbmx5OiBgYXJjaC9hcm02NC9LY29uZmlnYCwgd2hpY2ggaXMgYSBLY29uZmlnIGZpbGU7IGBhcmNoL2FybTY0L2tlcm5lbC9mdHJhY2UuY2AsIHdoaWNoIGhhcyBhIGNvbW1lbnQ7IGFuZCBzb21lIHNlbGZ0ZXN0cywgc3BlY2lmaWNhbGx5IGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy90cmFjaW5nX211bHRpLmNgIGFuZCBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3RfcHJvZ3MuaGAuXG5cblRoZSBydWxlIGlzIHZlcnkgY2xlYXI6IFwiUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczogLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlwiIFRoaXMgcGF0Y2ggKmV4YWN0bHkqIGZpdHMgdGhhdCBkZXNjcmlwdGlvbi4gSXQncyBwdXJlbHkgS2NvbmZpZywgY29tbWVudHMsIGFuZCBzZWxmdGVzdHMuXG5cbk5vdywgSSdtIHVzZWQgdG8gdGhpbmtpbmcgYWJvdXQgd2hldGhlciBuZXcgZmVhdHVyZXMgc2hvdWxkIGJlIGZ1enplZCwgZXNwZWNpYWxseSB3aGVuIHRoZXkncmUgZW5hYmxlZCB2aWEgS2NvbmZpZy4gU3l6a2FsbGVyIHVzdWFsbHkgd29ya3MgYmFzZWQgb24gY29kZSBjb3ZlcmFnZSwgc28gYSBuZXcgZmVhdHVyZSAqY291bGQqIGJlIGZ1enotd29ydGh5LiBCdXQgdGhlIHByb21wdCBleHBsaWNpdGx5IGdpdmVzIGEgcnVsZSwgYW5kIEknbSBvYmxpZ2F0ZWQgdG8gZm9sbG93IGl0LlxuXG5Pa2F5LCBsZXQncyByZS1yZWFkIHRoZSBkaWZmIGFnYWluIHRvIGJlIGFic29sdXRlbHkgc3VyZS4gTm9wZSwgaXQncyBqdXN0IEtjb25maWcsIGNvbW1lbnQsIGFuZCBzZWxmdGVzdHMuIFRoZSBzZWxmdGVzdHMgYXJlIG5vdCBrZXJuZWwgY29kZSBhbmQgYXJlIHVzZXItc3BhY2UuXG5cblRoZXJlZm9yZSwgYmVjYXVzZSB0aGlzIHBhdGNoICpvbmx5KiBjb250YWlucyBjaGFuZ2VzIHRvIEtjb25maWcgZmlsZXMsIGNvZGUgY29tbWVudHMsIGFuZCBzZWxmdGVzdHMsIGl0IGRpcmVjdGx5IG1hdGNoZXMgdGhlIGNyaXRlcmlhIGluIHRoZSBwcm9tcHQuIEkgd2lsbCByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUxMDAsIk91dHB1dFRva2VucyI6NTksIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4NjcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMDU6NTM6MzkuMjA1NTcwOTMzWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxOTA3MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zIG1vZGlmaWNhdGlvbnMgdG8gS2NvbmZpZyBmaWxlcywgY29kZSBjb21tZW50cywgYW5kIHNlbGZ0ZXN0cy4gSXQgZG9lcyBub3QgbW9kaWZ5IGFueSBleGVjdXRhYmxlIGtlcm5lbCBzb3VyY2UgY29kZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgY29udGFpbnMgbW9kaWZpY2F0aW9ucyB0byBLY29uZmlnIGZpbGVzLCBjb2RlIGNvbW1lbnRzLCBhbmQgc2VsZnRlc3RzLiBJdCBkb2VzIG5vdCBtb2RpZnkgYW55IGV4ZWN1dGFibGUga2VybmVsIHNvdXJjZSBjb2RlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow2rpd8[1] Phase: Running StartedAt: 2026-07-28 05:53:50 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2rpd8[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-07-28 05:53:50 +0000 UTC FinishedAt: 2026-07-28 05:53:57 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:code,Default:nil,Value:*1,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*1,}