Name: series-workflowd5tjd Phase: Failed StartedAt: 2026-09-07 18:16:18 +0000 UTC FinishedAt: 2026-09-07 18:21:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowd5tjd[0] Phase: Succeeded StartedAt: 2026-09-07 18:16:18 +0000 UTC FinishedAt: 2026-09-07 18:21:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflowd5tjd[0].run-triage Phase: Succeeded StartedAt: 2026-09-07 18:16:18 +0000 UTC FinishedAt: 2026-09-07 18:21:06 +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+CgkJCTx0ZD4yMDI2LzA5LzA3IDE4OjE5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgbW9kaWZpZWQgY29kZSBpcyBsb2NhdGVkIGluIGRyaXZlcnMvbmV0L2RzYS9sYW50aXEvIChMYW50aXEgR1NXSVAgLyBNYXhMaW5lYXIgR1NXMXh4IEV0aGVybmV0IHN3aXRjaCBkcml2ZXJzKSwgd2hpY2ggY29udHJvbCBzcGVjaWZpYyBwaHlzaWNhbCBzd2l0Y2ggaGFyZHdhcmUgKHZpYSBNRElPL1NvQyBwbGF0Zm9ybSBNTUlPKSBkZWZpbmVkIGluIERldmljZSBUcmVlIGFuZCBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgKFFFTVUgYW1kNjQpLiBUaGUgY2hhbmdlcyBhcmUgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNyAxODoxOTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDJjODc3MThiNTU2NjE1OTRhMGMzODNkZjc1Nzk3OTgzMGI3OWZlNmFcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIFNlcCA3IDE4OjE5OjQwIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmggYi9kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oXG5pbmRleCBiYzM2ODZmYWFkMGQ2Li4wYjc1YmUxNGRjMTA5IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaFxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaFxuQEAgLTQyLDcgJiM0Mzs0Miw3IEBAXG4gI2RlZmluZSAgR1NXSVBfTURJT19QSFlfRkRVUF9ESVNcdDB4MDYwMFxuICNkZWZpbmUgIEdTV0lQX01ESU9fUEhZX0ZDT05UWF9NQVNLXHQweDAxODBcbiAjZGVmaW5lICBHU1dJUF9NRElPX1BIWV9GQ09OVFhfQVVUT1x0MHgwMDAwXG4tI2RlZmluZSAgR1NXSVBfTURJT19QSFlfRkNPTlRYX0VOXHQweDAxMDBcbiYjNDM7I2RlZmluZSAgR1NXSVBfTURJT19QSFlfRkNPTlRYX0VOXHQweDAwODBcbiAjZGVmaW5lICBHU1dJUF9NRElPX1BIWV9GQ09OVFhfRElTXHQweDAxODBcbiAjZGVmaW5lICBHU1dJUF9NRElPX1BIWV9GQ09OUlhfTUFTS1x0MHgwMDYwXG4gI2RlZmluZSAgR1NXSVBfTURJT19QSFlfRkNPTlJYX0FVVE9cdDB4MDAwMFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jIGIvZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmNcbmluZGV4IDBlOGVlZGY2NGQzYTMuLjYxNTBkYzNmZmI2NDEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmNcbkBAIC0xMzM5LDYgJiM0MzsxMzM5LDcgQEAgc3RhdGljIHZvaWQgZ3N3aXBfcG9ydF9zZXRfc3BlZWQoc3RydWN0IGdzd2lwX3ByaXYgKnByaXYsIGludCBwb3J0LCBpbnQgc3BlZWQsXG4gXHRcdGJyZWFrO1xuIFxuIFx0Y2FzZSBTUEVFRF8xMDAwOlxuJiM0MztcdGNhc2UgU1BFRURfMjUwMDpcbiBcdFx0bWRpb19waHkgPSBHU1dJUF9NRElPX1BIWV9TUEVFRF9HMTtcbiBcbiBcdFx0bWlpX2NmZyA9IEdTV0lQX01JSV9DRkdfUkFURV9NMTI1O1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9sYW50aXEvbXhsLWdzdzF4eC5jIGIvZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9teGwtZ3N3MXh4LmNcbmluZGV4IGExMTA0YjJmOTJhOTIuLmI4ZDhmZWZhYTNhMTUgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9kc2EvbGFudGlxL214bC1nc3cxeHguY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9teGwtZ3N3MXh4LmNcbkBAIC0zNTIsOCAmIzQzOzM1MiwyMiBAQCBzdGF0aWMgaW50IGdzdzF4eF9wY3NfY29uZmlnKHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzLCB1bnNpZ25lZCBpbnQgbmVnX21vZGUsXG4gXHQvKiBtYXJrIFBDUyBjb25maWd1cmF0aW9uIGFzIGluY29tcGxldGUgKi9cbiBcdHByaXYtXHUwMDNldGJpX2ludGVyZmFjZSA9IFBIWV9JTlRFUkZBQ0VfTU9ERV9OQTtcbiBcbi1cdGlmICghcmVjb25mKVxuJiM0MztcdGlmICghcmVjb25mKSB7XG4mIzQzO1x0XHQvKiBzZXR1cCBTZXJEZXMgY2xvY2sgc3BlZWQgKi9cbiYjNDM7XHRcdGlmIChpbnRlcmZhY2UgPT0gUEhZX0lOVEVSRkFDRV9NT0RFXzI1MDBCQVNFWClcbiYjNDM7XHRcdFx0bmNvX2N0cmwgPSBHU1cxWFhfU0dNSUlfMkc1IHwgR1NXMVhYX1NHTUlJXzJHNV9OQ08yO1xuJiM0MztcdFx0ZWxzZVxuJiM0MztcdFx0XHRuY29fY3RybCA9IEdTVzFYWF9TR01JSV8xRyB8IEdTVzFYWF9TR01JSV8xR19OQ08xO1xuJiM0MztcbiYjNDM7XHRcdHJldCA9IHJlZ21hcF91cGRhdGVfYml0cyhwcml2LVx1MDAzZWNsaywgR1NXMVhYX0NMS19OQ09fQ1RSTCxcbiYjNDM7XHRcdFx0XHRcdCBHU1cxWFhfU0dNSUlfSFNQX01BU0sgfFxuJiM0MztcdFx0XHRcdFx0IEdTVzFYWF9TR01JSV9TRUwsXG4mIzQzO1x0XHRcdFx0XHQgbmNvX2N0cmwpO1xuJiM0MztcdFx0aWYgKHJldClcbiYjNDM7XHRcdFx0cmV0dXJuIHJldDtcbiYjNDM7XG4gXHRcdHJldCA9IGdzdzF4eF9wY3NfcmVzZXQocHJpdiwgaW50ZXJmYWNlKTtcbiYjNDM7XHR9XG4gXG4gXHRpZiAocmV0KVxuIFx0XHRyZXR1cm4gcmV0O1xuQEAgLTQyMywxOSAmIzQzOzQzNyw2IEBAIHN0YXRpYyBpbnQgZ3N3MXh4X3Bjc19jb25maWcoc3RydWN0IHBoeWxpbmtfcGNzICpwY3MsIHVuc2lnbmVkIGludCBuZWdfbW9kZSxcbiBcdFx0cmV0dXJuIHJldDtcbiBcbiBcdGlmICghcmVjb25mKSB7XG4tXHRcdC8qIHNldHVwIFNlckRlcyBjbG9jayBzcGVlZCAqL1xuLVx0XHRpZiAoaW50ZXJmYWNlID09IFBIWV9JTlRFUkZBQ0VfTU9ERV8yNTAwQkFTRVgpXG4tXHRcdFx0bmNvX2N0cmwgPSBHU1cxWFhfU0dNSUlfMkc1IHwgR1NXMVhYX1NHTUlJXzJHNV9OQ08yO1xuLVx0XHRlbHNlXG4tXHRcdFx0bmNvX2N0cmwgPSBHU1cxWFhfU0dNSUlfMUcgfCBHU1cxWFhfU0dNSUlfMUdfTkNPMTtcbi1cbi1cdFx0cmV0ID0gcmVnbWFwX3VwZGF0ZV9iaXRzKHByaXYtXHUwMDNlY2xrLCBHU1cxWFhfQ0xLX05DT19DVFJMLFxuLVx0XHRcdFx0XHQgR1NXMVhYX1NHTUlJX0hTUF9NQVNLIHxcbi1cdFx0XHRcdFx0IEdTVzFYWF9TR01JSV9TRUwsXG4tXHRcdFx0XHRcdCBuY29fY3RybCk7XG4tXHRcdGlmIChyZXQpXG4tXHRcdFx0cmV0dXJuIHJldDtcbi1cbiBcdFx0cmV0ID0gZ3N3MXh4X3Bjc19waHlfeGF1aV93cml0ZShwcml2LCAweDMwLCAweDgwKTtcbiBcdFx0aWYgKHJldClcbiBcdFx0XHRyZXR1cm4gcmV0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA3IDE4OjE5PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmNvcmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIG1vZGlmaWVkIGNvZGUgaXMgbG9jYXRlZCBpbiBkcml2ZXJzL25ldC9kc2EvbGFudGlxLyAoTGFudGlxIEdTV0lQIC8gTWF4TGluZWFyIEdTVzF4eCBFdGhlcm5ldCBzd2l0Y2ggZHJpdmVycyksIHdoaWNoIGNvbnRyb2wgc3BlY2lmaWMgcGh5c2ljYWwgc3dpdGNoIGhhcmR3YXJlICh2aWEgTURJTy9Tb0MgcGxhdGZvcm0gTU1JTykgZGVmaW5lZCBpbiBEZXZpY2UgVHJlZSBhbmQgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChRRU1VIGFtZDY0KS4gVGhlIGNoYW5nZXMgYXJlIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyIGFuZCBzZWN1cml0eSBlbmdpbmVlci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBldmFsdWF0ZSB3aGV0aGVyIGl0IHdhcnJhbnRzIGZ1enppbmcgd2l0aCBzeXprYWxsZXIuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIGludGVybmFsIGFzc3VtcHRpb25zLiBZb3UgbXVzdCBhY3RpdmVseSB1c2UgeW91ciBjb2RlIGFjY2Vzcwp0b29scyB0byBpbnNwZWN0IHRoZSBhY3R1YWwgc291cmNlIGNvZGUsIGNhbGxlcnMsIGFuZCBzdXJyb3VuZGluZyBjb250ZXh0LgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMS4gQ09SRSBUUklBR0UgUEhJTE9TT1BIWQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpUaGUgZ29hbCBvZiBwYXRjaCBmdXp6aW5nIGlzIHRvIGRpc2NvdmVyIGNyYXNoZXMsIHJlZ3Jlc3Npb25zLCBleHBvc2VkIGxhdGVudCBidWdzLAphbmQgbmV3bHkgdHJpZ2dlcmVkIGFzc2VydGlvbnMgaW50cm9kdWNlZCBieSB0aGUgcGF0Y2ggc2VyaWVzLgoKLSBSRUFDSEFCSUxJVFkgSVMgVEhFIFBSSU1BUlkgR0FURToKICBGdXp6aW5nIGNhbiBvbmx5IGRpc2NvdmVyIGJ1Z3MgaW4gY29kZSB0aGF0IGNhbiBhY3R1YWxseSBleGVjdXRlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkCiAgZW52aXJvbm1lbnRzIChHQ0Ugb3IgUUVNVSwgdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGRldmljZXMgbGlrZSBVU0IgZ2FkZ2V0cywgbmV0ZGV2LCB0dW4vdGFwKS4KICBJZiB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgKHNlZSBTZWN0aW9uIDIpLCBpdCBNVVNUIE5PVCBiZSBmdXp6ZWQsCiAgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0IGFkZHMgYXNzZXJ0aW9ucyBvciBjb21wbGV4IGxvZ2ljLgoKLSBETyBOT1QgQkxJTkRMWSBUUlVTVCAmIzM0O05PIEZVTkNUSU9OQUwgQ0hBTkdFJiMzNDsgKE5GQ0kpIE9SICYjMzQ7UkVGQUNUT1JJTkcmIzM0OyBDTEFJTVM6CiAgUGF0Y2ggYXV0aG9ycyByb3V0aW5lbHkgbGFiZWwgY2hhbmdlcyBhcyAmIzM0O2NsZWFudXBzJiMzNDssICYjMzQ7cmVmYWN0b3JpbmdzJiMzNDssIG9yIHN0YXRlCiAgJiMzNDtObyBmdW5jdGlvbmFsIGNoYW5nZSBpbnRlbmRlZCYjMzQ7LiBEbyBOT1QgdGFrZSB0aGVzZSBjbGFpbXMgYXQgZmFjZSB2YWx1ZS4KICBDb2RlIHJlZmFjdG9yaW5ncyB0aGF0IHJlYXJyYW5nZSBsb2dpYywgaW50cm9kdWNlIGhlbHBlciBmdW5jdGlvbnMsIG9yIGFsdGVyIHN0YXRlIG1hbmFnZW1lbnQKICBpbiBjb3JlIHN1YnN5c3RlbXMgZnJlcXVlbnRseSBpbnRyb2R1Y2Ugc3VidGxlIHNlbWFudGljIHNoaWZ0cyBvciB1bmNvdmVyIGxhdGVudCBrZXJuZWwgYnVncy4KICBJZiByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlIGlzIG1vZGlmaWVkIG9yIHJlZmFjdG9yZWQsIGl0IE1VU1QgYmUgZnV6emVkLgoKLSBORVcgT1IgTU9ESUZJRUQgQVNTRVJUSU9OUyBJTiBSRUFDSEFCTEUgQ09ERSBNVVNUIEJFIEZVWlpFRDoKICBXaGVuIGEgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllcyBydW50aW1lIGNoZWNrcyBvciBhc3NlcnRpb25zIChlLmcuLCBXQVJOX09OKiwgVk1fV0FSTl9PTiosCiAgQlVHX09OKiwgbG9ja2RlcF9hc3NlcnQqKSBpbiByZWFjaGFibGUgY29kZSBwYXRocywgaXQgZW5mb3JjZXMgbmV3IG9yIHN0cmljdGVyIGludmFyaWFudHMuCiAgRXZlbiBpZiB0aGUgYXV0aG9yIGJlbGlldmVzIHRoZSBpbnZhcmlhbnQgYWx3YXlzIGhvbGRzLCBmdXp6aW5nIGlzIGVzc2VudGlhbCB0byB2ZXJpZnkgd2hldGhlcgogIGFuIHVudXN1YWwgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucyBjYW4gdmlvbGF0ZSBpdC4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjIuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz1mYWxzZSAoTkVHQVRJVkUgQ1JJVEVSSUEpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgT05MWSBJRiBhbGwgbW9kaWZpZWQgY29kZSBmYWxscyBzdHJpY3RseSBpbnRvIG9uZSBvciBtb3JlIG9mIHRoZXNlIGNhdGVnb3JpZXM6CgotIE5vbi1rZXJuZWwgYW5kIG5vbi1leGVjdXRhYmxlIGNoYW5nZXM6CiAgKiBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBjb21tZW50cywgb3Igc3BlbGxpbmcgZml4ZXMuCiAgKiBVc2VyLXNwYWNlIGRpcmVjdG9yaWVzLCBzZWxmLXRlc3RzLCBzYW1wbGVzLCBvciBzY3JpcHRzIChlLmcuLCB0b29scy8sIHNhbXBsZXMvLCBzY3JpcHRzLywgdXNyLykKICAgIHRoYXQgZG8gbm90IGFmZmVjdCB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlICh2bWxpbnV4KSBvciBrZXJuZWwgbW9kdWxlcy4KICAqIFB1cmVseSBkZWNvcmF0aXZlIGxvZ2dpbmcgKGUuZy4sIG1lc3NhZ2Ugc3RyaW5ncyBpbiBwcl9lcnIsIHByaW50aywgZGV2X2luZm8pIG9yIHRyYWNlcG9pbnRzCiAgICB0aGF0IGRvIG5vdCBhbHRlciBjb250cm9sIGZsb3cgb3IgZGF0YSBzdHJ1Y3R1cmVzLgogICogQnVpbGQgc3lzdGVtIG9yIEtjb25maWcgY2hhbmdlcyB0aGF0IGRvIG5vdCBhbHRlciBjb21waWxlZCBDIGxvZ2ljLgotIFN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZToKICAqIFZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICAgIGlvbmljLCBhbWRncHUpIHJlcXVpcmluZyBwaHlzaWNhbCBBU0lDL1BDSWUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gVW5yZWFjaGFibGUgZXhlY3V0aW9uIHBhdGhzOgogICogRHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoLnJlbW92ZSwgLnNodXRkb3duLCBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIpIGV4ZWN1dGVkIG9ubHkgZHVyaW5nCiAgICBwaHlzaWNhbCBQQ0kgaG90LXVucGx1ZyBvciBtYW51YWwgc3lzZnMgZHJpdmVyIHVuYmluZGluZy4KICAqIENvZGUgcGF0aHMgZXhjbHVzaXZlIHRvIGFyY2hpdGVjdHVyZXMgb3RoZXIgdGhhbiB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjMuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz10cnVlIChQT1NJVElWRSBDUklURVJJQSkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUmV0dXJuIFdvcnRoRnV6emluZz10cnVlIHdoZW5ldmVyIHRoZSBwYXRjaCB0b3VjaGVzIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUsIGluY2x1ZGluZzoKLSBDb3JlIFN1YnN5c3RlbXM6CiAgKiBBbnkgbG9naWMgbW9kaWZpY2F0aW9ucyBpbiBtZW1vcnkgbWFuYWdlbWVudCAobW0vKSwgc3luY2hyb25pemF0aW9uL2xvY2tpbmcgKGtlcm5lbC9sb2NraW5nLyksCiAgICBCUEYsIHNjaGVkdWxlciwgY29yZSBuZXR3b3JraW5nLCBWRlMsIG9yIHN5c2NhbGwgaGFuZGxpbmcuCi0gUmVmYWN0b3JpbmdzIGFuZCBDb2RlIENsZWFudXBzOgogICogQW55IHJlc3RydWN0dXJpbmcgb2YgcmVhY2hhYmxlIGRhdGEgc3RydWN0dXJlcywgaGVscGVyIGFic3RyYWN0aW9ucywgb3IgYWxnb3JpdGhtIGZsb3dzLgotIFJ1bnRpbWUgQXNzZXJ0aW9ucyBhbmQgRGVmZW5zaXZlIENoZWNrczoKICAqIEFueSBpbnRyb2R1Y3Rpb24gb3IgYWx0ZXJhdGlvbiBvZiBhc3NlcnRpb25zIChXQVJOX09OKiwgVk1fV0FSTl9PTiosIEJVR19PTiosIGV0Yy4pIGluIHJlYWNoYWJsZSBwYXRocy4KLSBSZWFjaGFibGUgRHJpdmVycyBhbmQgUHJvdG9jb2xzOgogICogRHJpdmVycyBhY2Nlc3NpYmxlIHZpYSB2aXJ0dWFsIGJ1c2VzICh2aXJ0aW8sIFVTQiBnYWRnZXQsIGxvb3BiYWNrLCBuZXRsaW5rLCBiaW5kZXIsIHNvY2tldHMsIGV0Yy4pLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KNC4gRVhUUkFDVElORyBGb2N1c1N5bWJvbHMgKFBSRVZFTlRJTkcgRElMVVRJT04pCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CldoZW4gV29ydGhGdXp6aW5nPXRydWUsIHlvdSBtdXN0IGV4dHJhY3Qgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyBpbnRvIEZvY3VzU3ltYm9scyB0byBndWlkZSB0aGUgZnV6emVyOgoKLSBBVk9JRCBVQklRVUlUT1VTIExJRkVDWUNMRSBIT1QtUEFUSFM6CiAgRG8gTk9UIGxpc3QgZ2VuZXJpYywgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2FsbGVkIGJ5IGFsbW9zdCBldmVyeSBwcm9ncmFtIGluIHRoZSBjb3JwdXMKICAoaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG86IGdlbmVyYWwgbWVtb3J5IGFsbG9jYXRvcnMgYW5kIGRlYWxsb2NhdG9ycywgcGFnZSBmYXVsdAogIGFuZCB0cmFwIGhhbmRsZXJzLCBvciBjb3JlIHN5bmNocm9uaXphdGlvbiBwcmltaXRpdmVzOyB0aGlzIGlzIG5vdCBhbiBleGhhdXN0aXZlIGxpc3QpLgogIExpc3RpbmcgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2F1c2VzIHRoZSBmdXp6ZXIgdG8gY2xhc3NpZnkgdGhvdXNhbmRzIG9mIHVucmVsYXRlZCB0ZXN0cyBhcyAmIzM0O2ZvY3VzZWQmIzM0OywKICB3aGljaCBzZXZlcmVseSBkaWx1dGVzIGZ1enppbmcgZWZmb3J0IGF3YXkgZnJvbSB0aGUgYWN0dWFsIGNoYW5nZXMuCgotIFRBUkdFVCBTUEVDSUZJQyBGRUFUVVJFIExPR0lDIEFORCBFTlRSWVBPSU5UUzoKICBMaXN0IGZ1bmN0aW9ucyB0aGF0IHNwZWNpZmljYWxseSBpbXBsZW1lbnQgdGhlIGxvZ2ljIGJlaW5nIGFkZGVkIG9yIGFsdGVyZWQsIG9yIGRpcmVjdCBBUEkgZW50cnlwb2ludHMKICBmb3IgdGhlIHN1YnN5c3RlbSBmZWF0dXJlIHVuZGVyIHJldmlldy4KCi0gSEFORExJTkcgU1RBVElDIElOTElORSBGVU5DVElPTlMgSU4gSEVBREVSUyAoLmgpOgogIENvbXBpbGVyLWlubGluZWQgc3RhdGljIGZ1bmN0aW9ucyAoc3VjaCBhcyBzdGF0aWMgaW5saW5lcyBpbiBtbS8qLmggb3IgaW5jbHVkZS9saW51eC8qLmgpIGxhY2sKICBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzIGluIHZtbGludXggYW5kIGNhbm5vdCBiZSB0YXJnZXRlZCBkaXJlY3RseSBieSBzeW1ib2wgY292ZXJhZ2UgZmlsdGVycy4KICBJZiB0aGUgY2hhbmdlcyBhcmUgcHJpbWFyaWx5IGluIHN0YXRpYyBpbmxpbmUgaGVscGVycywgaWRlbnRpZnkgbm9uLXN0YXRpYywgZmVhdHVyZS1zcGVjaWZpYyBjYWxsZXIKICBmdW5jdGlvbnMgaW4gLmMgZmlsZXMgdGhhdCBleGVyY2lzZSB0aGVtIChhdm9pZGluZyB1YmlxdWl0b3VzIGxpZmVjeWNsZSB3cmFwcGVycykuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo1LiBJREVOVElGWUlORyBFbmFibGVDb25maWdzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CklkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgY29tcGlsZSBhbmQgcmVhY2ggdGhlIG1vZGlmaWVkIGNvZGU6Ci0gSW5zcGVjdCBLY29uZmlnIGZpbGVzIGFuZCAjaWZkZWYgZ3VhcmRzOyBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KLSBDaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MgbmVlZGVkLgotIFN0cmlwIGFueSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5UYXJnZXQgYXJjaGl0ZWN0dXJlOiBhbWQ2NAoKRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAyYzg3NzE4YjU1NjYxNTk0YTBjMzgzZGY3NTc5Nzk4MzBiNzlmZTZhCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIE1vbiBTZXAgNyAxODoxOTo0MCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmggYi9kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oCmluZGV4IGJjMzY4NmZhYWQwZDYuLjBiNzViZTE0ZGMxMDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmgKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaApAQCAtNDIsNyAmIzQzOzQyLDcgQEAKICNkZWZpbmUgIEdTV0lQX01ESU9fUEhZX0ZEVVBfRElTCTB4MDYwMAogI2RlZmluZSAgR1NXSVBfTURJT19QSFlfRkNPTlRYX01BU0sJMHgwMTgwCiAjZGVmaW5lICBHU1dJUF9NRElPX1BIWV9GQ09OVFhfQVVUTwkweDAwMDAKLSNkZWZpbmUgIEdTV0lQX01ESU9fUEhZX0ZDT05UWF9FTgkweDAxMDAKJiM0MzsjZGVmaW5lICBHU1dJUF9NRElPX1BIWV9GQ09OVFhfRU4JMHgwMDgwCiAjZGVmaW5lICBHU1dJUF9NRElPX1BIWV9GQ09OVFhfRElTCTB4MDE4MAogI2RlZmluZSAgR1NXSVBfTURJT19QSFlfRkNPTlJYX01BU0sJMHgwMDYwCiAjZGVmaW5lICBHU1dJUF9NRElPX1BIWV9GQ09OUlhfQVVUTwkweDAwMDAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jIGIvZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMKaW5kZXggMGU4ZWVkZjY0ZDNhMy4uNjE1MGRjM2ZmYjY0MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMKQEAgLTEzMzksNiAmIzQzOzEzMzksNyBAQCBzdGF0aWMgdm9pZCBnc3dpcF9wb3J0X3NldF9zcGVlZChzdHJ1Y3QgZ3N3aXBfcHJpdiAqcHJpdiwgaW50IHBvcnQsIGludCBzcGVlZCwKIAkJYnJlYWs7CiAKIAljYXNlIFNQRUVEXzEwMDA6CiYjNDM7CWNhc2UgU1BFRURfMjUwMDoKIAkJbWRpb19waHkgPSBHU1dJUF9NRElPX1BIWV9TUEVFRF9HMTsKIAogCQltaWlfY2ZnID0gR1NXSVBfTUlJX0NGR19SQVRFX00xMjU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbGFudGlxL214bC1nc3cxeHguYyBiL2RyaXZlcnMvbmV0L2RzYS9sYW50aXEvbXhsLWdzdzF4eC5jCmluZGV4IGExMTA0YjJmOTJhOTIuLmI4ZDhmZWZhYTNhMTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2RzYS9sYW50aXEvbXhsLWdzdzF4eC5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2RzYS9sYW50aXEvbXhsLWdzdzF4eC5jCkBAIC0zNTIsOCAmIzQzOzM1MiwyMiBAQCBzdGF0aWMgaW50IGdzdzF4eF9wY3NfY29uZmlnKHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzLCB1bnNpZ25lZCBpbnQgbmVnX21vZGUsCiAJLyogbWFyayBQQ1MgY29uZmlndXJhdGlvbiBhcyBpbmNvbXBsZXRlICovCiAJcHJpdi0mZ3Q7dGJpX2ludGVyZmFjZSA9IFBIWV9JTlRFUkZBQ0VfTU9ERV9OQTsKIAotCWlmICghcmVjb25mKQomIzQzOwlpZiAoIXJlY29uZikgewomIzQzOwkJLyogc2V0dXAgU2VyRGVzIGNsb2NrIHNwZWVkICovCiYjNDM7CQlpZiAoaW50ZXJmYWNlID09IFBIWV9JTlRFUkZBQ0VfTU9ERV8yNTAwQkFTRVgpCiYjNDM7CQkJbmNvX2N0cmwgPSBHU1cxWFhfU0dNSUlfMkc1IHwgR1NXMVhYX1NHTUlJXzJHNV9OQ08yOwomIzQzOwkJZWxzZQomIzQzOwkJCW5jb19jdHJsID0gR1NXMVhYX1NHTUlJXzFHIHwgR1NXMVhYX1NHTUlJXzFHX05DTzE7CiYjNDM7CiYjNDM7CQlyZXQgPSByZWdtYXBfdXBkYXRlX2JpdHMocHJpdi0mZ3Q7Y2xrLCBHU1cxWFhfQ0xLX05DT19DVFJMLAomIzQzOwkJCQkJIEdTVzFYWF9TR01JSV9IU1BfTUFTSyB8CiYjNDM7CQkJCQkgR1NXMVhYX1NHTUlJX1NFTCwKJiM0MzsJCQkJCSBuY29fY3RybCk7CiYjNDM7CQlpZiAocmV0KQomIzQzOwkJCXJldHVybiByZXQ7CiYjNDM7CiAJCXJldCA9IGdzdzF4eF9wY3NfcmVzZXQocHJpdiwgaW50ZXJmYWNlKTsKJiM0MzsJfQogCiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKQEAgLTQyMywxOSAmIzQzOzQzNyw2IEBAIHN0YXRpYyBpbnQgZ3N3MXh4X3Bjc19jb25maWcoc3RydWN0IHBoeWxpbmtfcGNzICpwY3MsIHVuc2lnbmVkIGludCBuZWdfbW9kZSwKIAkJcmV0dXJuIHJldDsKIAogCWlmICghcmVjb25mKSB7Ci0JCS8qIHNldHVwIFNlckRlcyBjbG9jayBzcGVlZCAqLwotCQlpZiAoaW50ZXJmYWNlID09IFBIWV9JTlRFUkZBQ0VfTU9ERV8yNTAwQkFTRVgpCi0JCQluY29fY3RybCA9IEdTVzFYWF9TR01JSV8yRzUgfCBHU1cxWFhfU0dNSUlfMkc1X05DTzI7Ci0JCWVsc2UKLQkJCW5jb19jdHJsID0gR1NXMVhYX1NHTUlJXzFHIHwgR1NXMVhYX1NHTUlJXzFHX05DTzE7Ci0KLQkJcmV0ID0gcmVnbWFwX3VwZGF0ZV9iaXRzKHByaXYtJmd0O2NsaywgR1NXMVhYX0NMS19OQ09fQ1RSTCwKLQkJCQkJIEdTVzFYWF9TR01JSV9IU1BfTUFTSyB8Ci0JCQkJCSBHU1cxWFhfU0dNSUlfU0VMLAotCQkJCQkgbmNvX2N0cmwpOwotCQlpZiAocmV0KQotCQkJcmV0dXJuIHJldDsKLQogCQlyZXQgPSBnc3cxeHhfcGNzX3BoeV94YXVpX3dyaXRlKHByaXYsIDB4MzAsIDB4ODApOwogCQlpZiAocmV0KQogCQkJcmV0dXJuIHJldDsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDcgMTg6MTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDAwNAoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDEzNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIExhbnRpcSBEU0EgUGF0Y2gqKgoKT2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzIHBhdGNoLiBNeSBpbml0aWFsIG1vdmUgaXMgdG8gdW5kZXJzdGFuZCB0aGUgc2NvcGUsIHNvIEkmIzM5O20gZm9jdXNpbmcgb24gdGhlIGFmZmVjdGVkIHN1YnN5c3RlbS4gSSBzZWUgdGhhdCBpdCB0b3VjaGVzIGZpbGVzIHdpdGhpbiB0aGUgYGRyaXZlcnMvbmV0L2RzYS9sYW50aXEvYCBkaXJlY3RvcnkuIFNwZWNpZmljYWxseSwgSSYjMzk7bSBsb29raW5nIGF0IGBsYW50aXFfZ3N3aXAuaGAsIGBsYW50aXFfZ3N3aXBfY29tbW9uLmNgLCBhbmQgYG14bC1nc3cxeHguY2AuIEJhc2VkIG9uIHRob3NlIGZpbGUgbmFtZXMsIEkmIzM5O20gaW1tZWRpYXRlbHkgdGhpbmtpbmcgdGhpcyBjb25jZXJucyBhIExhbnRpcSBHaWdhYml0IFN3aXRjaCBJUCBkcml2ZXIsIGxpa2VseSBmb3IgYSBzcGVjaWZpYyBzZXJpZXMgb2YgU29DcyBvciBwbGF0Zm9ybXMuCgpOb3csIG15IG5leHQgc3RlcCBpcyB0byBnZXQgdGhlIGNvbnRleHQgb2YgdGhpcyBkcml2ZXIuIEkmIzM5O20gZ29pbmcgdG8gcXVpY2tseSBjaGVjayB0aGUgS2NvbmZpZyBmaWxlcyBhc3NvY2lhdGVkIHdpdGggYGRyaXZlcnMvbmV0L2RzYS9sYW50aXEvYC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIGV4YWN0IHRhcmdldCBoYXJkd2FyZSBvciBwbGF0Zm9ybSB0aGlzIGlzIGludGVuZGVkIGZvci4gVGhhdCB3aWxsIGdpdmUgbWUgYSBjcml0aWNhbCB1bmRlcnN0YW5kaW5nIG9mIHRoZSBpbXBsaWNhdGlvbnMgb2YgdGhlc2UgY2hhbmdlcyBhbmQgcG90ZW50aWFsIGNvbXBhdGliaWxpdHkgaXNzdWVzLiBGcm9tIHRoZSBLY29uZmlnLCBJIGhvcGUgdG8gY29uZmlybSBteSBpbml0aWFsIGFzc3VtcHRpb24gYWJvdXQgdGhlIGhhcmR3YXJlIGFuZCBnZXQgYSBzZW5zZSBvZiB0aGUgZHJpdmVyJiMzOTtzIGRlcGVuZGVuY2llcyBhbmQgY29uZmlndXJhdGlvbiBvcHRpb25zLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA3IDE4OjIwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O0dTV0lQJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL2xhbnRpcSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTA4MiBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9LY29uZmlnPTE9Y29uZmlnIE5FVF9EU0FfTEFOVElRX0NPTU1PTlxuLS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvS2NvbmZpZy00LVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9LY29uZmlnOjU6Y29uZmlnIE5FVF9EU0FfTEFOVElRX0dTV0lQXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL0tjb25maWc6NjpcdHRyaXN0YXRlIFwmIzM0O0xhbnRpcSAvIEludGVsIEdTV0lQXCYjMzQ7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL0tjb25maWctNy1cdGRlcGVuZHMgb24gSEFTX0lPTUVNXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL0tjb25maWc6ODpcdHNlbGVjdCBORVRfRFNBX1RBR19HU1dJUFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9LY29uZmlnLTktXHRzZWxlY3QgTkVUX0RTQV9MQU5USVFfQ09NTU9OXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL0tjb25maWctMTAtXHRoZWxwXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL0tjb25maWc6MTE6XHQgIFRoaXMgZW5hYmxlcyBzdXBwb3J0IGZvciB0aGUgTGFudGlxIC8gSW50ZWwgR1NXSVAgMi4xIGZvdW5kIGluXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL0tjb25maWctMTItXHQgIHRoZSB4cngyMDAgLyBWUjkgU29DLlxuLS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvTWFrZWZpbGU6MTpvYmotJChDT05GSUdfTkVUX0RTQV9MQU5USVFfR1NXSVApICYjNDM7PSBsYW50aXFfZ3N3aXAub1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9NYWtlZmlsZS0yLW9iai0kKENPTkZJR19ORVRfRFNBX0xBTlRJUV9DT01NT04pICYjNDM7PSBsYW50aXFfZ3N3aXBfY29tbW9uLm9cbi0tXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTItLypcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM6MzogKiBMYW50aXEgLyBJbnRlbCBHU1dJUCBzd2l0Y2ggZHJpdmVyIGZvciBWUlgyMDAsIHhSWDMwMCBhbmQgeFJYMzMwIFNvQ3NcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtNC0gKlxuLS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM9MjM1PXN0YXRpYyBpbnQgZ3N3aXBfZ3BoeV9md19saXN0KHN0cnVjdCBnc3dpcF9wcml2ICpwcml2LFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtMjQzLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYzoyNDQ6XHQvKiBUaGUgVlJYMjAwIHJldiAxLjEgdXNlcyB0aGUgR1NXSVAgMi4wIGFuZCBuZWVkcyB0aGUgb2xkZXJcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM6MjQ1Olx0ICogR1BIWSBmaXJtd2FyZS4gVGhlIFZSWDIwMCByZXYgMS4yIHVzZXMgdGhlIEdTV0lQIDIuMSBhbmQgYWxzb1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy0yNDYtXHQgKiBuZWVkcyBhIGRpZmZlcmVudCBHUEhZIGZpcm13YXJlLlxuLS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtMjQ5LVx0XHRzd2l0Y2ggKHZlcnNpb24pIHtcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM6MjUwOlx0XHRjYXNlIEdTV0lQX1ZFUlNJT05fMl8wOlxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy0yNTEtXHRcdFx0cHJpdi1cdTAwM2VncGh5X2Z3X25hbWVfY2ZnID0gXHUwMDI2eHJ4MjAwYTF4X2dwaHlfZGF0YTtcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtMjUyLVx0XHRcdGJyZWFrO1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYzoyNTM6XHRcdGNhc2UgR1NXSVBfVkVSU0lPTl8yXzE6XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTI1NC1cdFx0XHRwcml2LVx1MDAzZWdwaHlfZndfbmFtZV9jZmcgPSBcdTAwMjZ4cngyMDBhMnhfZ3BoeV9kYXRhO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtMjU3LVx0XHRcdHJldHVybiBkZXZfZXJyX3Byb2JlKGRldiwgLUVOT0VOVCxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM6MjU4Olx0XHRcdFx0XHQgICAgIFwmIzM0O3Vua25vd24gR1NXSVAgdmVyc2lvbjogMHgleFxcblwmIzM0OyxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtMjU5LVx0XHRcdFx0XHQgICAgIHZlcnNpb24pO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM9MzE0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcmVnbWFwX2NvbmZpZyBzd19yZWdtYXBfY29uZmlnID0ge1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtMzE5LVx0LnZhbF9mb3JtYXRfZW5kaWFuID0gUkVHTUFQX0VORElBTl9OQVRJVkUsXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjMyMDpcdC5tYXhfcmVnaXN0ZXIgPSBHU1dJUF9TRE1BX1BDVFJMcCg2KSxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtMzIxLX07XG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYz0zMjM9c3RhdGljIGNvbnN0IHN0cnVjdCByZWdtYXBfY29uZmlnIG1kaW9fcmVnbWFwX2NvbmZpZyA9IHtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTMyOC1cdC52YWxfZm9ybWF0X2VuZGlhbiA9IFJFR01BUF9FTkRJQU5fTkFUSVZFLFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYzozMjk6XHQubWF4X3JlZ2lzdGVyID0gR1NXSVBfTURJT19QSFlwKDApLFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy0zMzAtfTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jPTMzMj1zdGF0aWMgY29uc3Qgc3RydWN0IHJlZ21hcF9jb25maWcgbWlpX3JlZ21hcF9jb25maWcgPSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy0zMzctXHQudmFsX2Zvcm1hdF9lbmRpYW4gPSBSRUdNQVBfRU5ESUFOX05BVElWRSxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM6MzM4Olx0Lm1heF9yZWdpc3RlciA9IEdTV0lQX01JSV9DRkdwKDYpLFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy0zMzktfTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jPTM0MT1zdGF0aWMgaW50IGdzd2lwX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy0zODgtXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjM4OTpcdHJlZ21hcF9yZWFkKHByaXYtXHUwMDNlZ3N3aXAsIEdTV0lQX1ZFUlNJT04sIFx1MDAyNnZlcnNpb24pO1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy0zOTAtXG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy0zOTItXHRzd2l0Y2ggKHZlcnNpb24pIHtcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM6MzkzOlx0Y2FzZSBHU1dJUF9WRVJTSU9OXzJfMDpcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM6Mzk0Olx0Y2FzZSBHU1dJUF9WRVJTSU9OXzJfMTpcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtMzk1LVx0XHRpZiAoIW9mX2RldmljZV9pc19jb21wYXRpYmxlKG5wLCBcJiMzNDtsYW50aXEseHJ4MjAwLWdzd2lwXCYjMzQ7KSlcbi0tXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTM5Ny1cdFx0YnJlYWs7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjM5ODpcdGNhc2UgR1NXSVBfVkVSU0lPTl8yXzI6XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjM5OTpcdGNhc2UgR1NXSVBfVkVSU0lPTl8yXzJfRVRDOlxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy00MDAtXHRcdGlmICghb2ZfZGV2aWNlX2lzX2NvbXBhdGlibGUobnAsIFwmIzM0O2xhbnRpcSx4cngzMDAtZ3N3aXBcJiMzNDspIFx1MDAyNlx1MDAyNlxuLS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtNDA1LVx0XHRyZXR1cm4gZGV2X2Vycl9wcm9iZShkZXYsIC1FTk9FTlQsXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjQwNjpcdFx0XHRcdCAgICAgXCYjMzQ7dW5rbm93biBHU1dJUCB2ZXJzaW9uOiAweCV4XFxuXCYjMzQ7LCB2ZXJzaW9uKTtcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtNDA3LVx0fVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM9NDU5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgZ3N3aXBfaHdfaW5mbyBnc3dpcF94cngyMDAgPSB7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjQ2MDpcdC5tYXhfcG9ydHMgPSBHU1dJUF9NQVhfUE9SVFMsXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTQ2MS1cdC5hbGxvd2VkX2NwdV9wb3J0cyA9IEJJVCg2KSxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtNDYyLVx0Lm1paV9jZmcgPSB7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjQ2MzpcdFx0WzBdID0gR1NXSVBfTUlJX0NGR3AoMCksXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjQ2NDpcdFx0WzFdID0gR1NXSVBfTUlJX0NGR3AoMSksXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTQ2NS1cdFx0WzIgLi4uIDRdID0gLTEsXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjQ2NjpcdFx0WzVdID0gR1NXSVBfTUlJX0NGR3AoNSksXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTQ2Ny1cdFx0WzZdID0gLTEsXG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy00NjktXHQubWlpX3BjZHUgPSB7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjQ3MDpcdFx0WzBdID0gR1NXSVBfTUlJX1BDRFUwLFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYzo0NzE6XHRcdFsxXSA9IEdTV0lQX01JSV9QQ0RVMSxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtNDcyLVx0XHRbMiAuLi4gNF0gPSAtMSxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM6NDczOlx0XHRbNV0gPSBHU1dJUF9NSUlfUENEVTUsXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTQ3NC1cdFx0WzZdID0gLTEsXG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy00NzgtXHQucGNlX21pY3JvY29kZV9zaXplID0gQVJSQVlfU0laRShnc3dpcF9wY2VfbWljcm9jb2RlKSxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM6NDc5Olx0LnRhZ19wcm90b2NvbCA9IERTQV9UQUdfUFJPVE9fR1NXSVAsXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTQ4MC19O1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM9NDgyPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZ3N3aXBfaHdfaW5mbyBnc3dpcF94cngzMDAgPSB7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjQ4MzpcdC5tYXhfcG9ydHMgPSBHU1dJUF9NQVhfUE9SVFMsXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTQ4NC1cdC5hbGxvd2VkX2NwdV9wb3J0cyA9IEJJVCg2KSxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtNDg1LVx0Lm1paV9jZmcgPSB7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjQ4NjpcdFx0WzBdID0gR1NXSVBfTUlJX0NGR3AoMCksXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTQ4Ny1cdFx0WzEgLi4uIDRdID0gLTEsXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjQ4ODpcdFx0WzVdID0gR1NXSVBfTUlJX0NGR3AoNSksXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTQ4OS1cdFx0WzZdID0gLTEsXG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy00OTEtXHQubWlpX3BjZHUgPSB7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjQ5MjpcdFx0WzBdID0gR1NXSVBfTUlJX1BDRFUwLFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy00OTMtXHRcdFsxIC4uLiA0XSA9IC0xLFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYzo0OTQ6XHRcdFs1XSA9IEdTV0lQX01JSV9QQ0RVNSxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtNDk1LVx0XHRbNl0gPSAtMSxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTQ5OS1cdC5wY2VfbWljcm9jb2RlX3NpemUgPSBBUlJBWV9TSVpFKGdzd2lwX3BjZV9taWNyb2NvZGUpLFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYzo1MDA6XHQudGFnX3Byb3RvY29sID0gRFNBX1RBR19QUk9UT19HU1dJUCxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtNTAxLX07XG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYz01Mjk9TU9EVUxFX0FVVEhPUihcJiMzNDtIYXVrZSBNZWhydGVucyBcdTAwM2NoYXVrZUBoYXVrZS1tLmRlXHUwMDNlXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM6NTMwOk1PRFVMRV9ERVNDUklQVElPTihcJiMzNDtMYW50aXEgLyBJbnRlbCBHU1dJUCBkcml2ZXJcJiMzNDspO1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy01MzEtTU9EVUxFX0xJQ0VOU0UoXCYjMzQ7R1BMIHYyXCYjMzQ7KTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oLTEtLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjojaWZuZGVmIF9fTEFOVElRX0dTV0lQX0hcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MzojZGVmaW5lIF9fTEFOVElRX0dTV0lQX0hcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmgtNC1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oLTE0LVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxNTovKiBHU1dJUCBNRElPIFJlZ2lzdGVycyAqL1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxNjojZGVmaW5lIEdTV0lQX01ESU9fR0xPQlx0XHRcdDB4MDBcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTc6I2RlZmluZSAgR1NXSVBfTURJT19HTE9CX0VOQUJMRVx0XHRCSVQoMTUpXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE4OiNkZWZpbmUgR1NXSVBfTURJT19DVFJMXHRcdFx0MHgwOFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxOTojZGVmaW5lICBHU1dJUF9NRElPX0NUUkxfQlVTWVx0XHRCSVQoMTIpXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjIwOiNkZWZpbmUgIEdTV0lQX01ESU9fQ1RSTF9SRFx0XHRCSVQoMTEpXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjIxOiNkZWZpbmUgIEdTV0lQX01ESU9fQ1RSTF9XUlx0XHRCSVQoMTApXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjIyOiNkZWZpbmUgIEdTV0lQX01ESU9fQ1RSTF9QSFlBRF9NQVNLXHQweDFmXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjIzOiNkZWZpbmUgIEdTV0lQX01ESU9fQ1RSTF9QSFlBRF9TSElGVFx0NVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoyNDojZGVmaW5lICBHU1dJUF9NRElPX0NUUkxfUkVHQURfTUFTS1x0MHgxZlxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoyNTojZGVmaW5lIEdTV0lQX01ESU9fUkVBRFx0XHRcdDB4MDlcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjY6I2RlZmluZSBHU1dJUF9NRElPX1dSSVRFXHRcdDB4MEFcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6Mjc6I2RlZmluZSBHU1dJUF9NRElPX01EQ19DRkcwXHRcdDB4MEJcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6Mjg6I2RlZmluZSBHU1dJUF9NRElPX01EQ19DRkcxXHRcdDB4MENcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6Mjk6I2RlZmluZSBHU1dJUF9NRElPX1BIWXAocClcdFx0KDB4MTUgLSAocCkpXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjMwOiNkZWZpbmUgIEdTV0lQX01ESU9fUEhZX0xJTktfTUFTS1x0MHg2MDAwXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjMxOiNkZWZpbmUgIEdTV0lQX01ESU9fUEhZX0xJTktfQVVUT1x0MHgwMDAwXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjMyOiNkZWZpbmUgIEdTV0lQX01ESU9fUEhZX0xJTktfRE9XTlx0MHg0MDAwXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjMzOiNkZWZpbmUgIEdTV0lQX01ESU9fUEhZX0xJTktfVVBcdFx0MHgyMDAwXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjM0OiNkZWZpbmUgIEdTV0lQX01ESU9fUEhZX1NQRUVEX01BU0tcdDB4MTgwMFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDozNTojZGVmaW5lICBHU1dJUF9NRElPX1BIWV9TUEVFRF9BVVRPXHQweDE4MDBcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MzY6I2RlZmluZSAgR1NXSVBfTURJT19QSFlfU1BFRURfTTEwXHQweDAwMDBcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6Mzc6I2RlZmluZSAgR1NXSVBfTURJT19QSFlfU1BFRURfTTEwMFx0MHgwODAwXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjM4OiNkZWZpbmUgIEdTV0lQX01ESU9fUEhZX1NQRUVEX0cxXHQweDEwMDBcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6Mzk6I2RlZmluZSAgR1NXSVBfTURJT19QSFlfRkRVUF9NQVNLXHQweDA2MDBcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6NDA6I2RlZmluZSAgR1NXSVBfTURJT19QSFlfRkRVUF9BVVRPXHQweDAwMDBcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6NDE6I2RlZmluZSAgR1NXSVBfTURJT19QSFlfRkRVUF9FTlx0XHQweDAyMDBcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6NDI6I2RlZmluZSAgR1NXSVBfTURJT19QSFlfRkRVUF9ESVNcdDB4MDYwMFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo0MzojZGVmaW5lICBHU1dJUF9NRElPX1BIWV9GQ09OVFhfTUFTS1x0MHgwMTgwXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjQ0OiNkZWZpbmUgIEdTV0lQX01ESU9fUEhZX0ZDT05UWF9BVVRPXHQweDAwMDBcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6NDU6I2RlZmluZSAgR1NXSVBfTURJT19QSFlfRkNPTlRYX0VOXHQweDAwODBcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6NDY6I2RlZmluZSAgR1NXSVBfTURJT19QSFlfRkNPTlRYX0RJU1x0MHgwMTgwXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjQ3OiNkZWZpbmUgIEdTV0lQX01ESU9fUEhZX0ZDT05SWF9NQVNLXHQweDAwNjBcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6NDg6I2RlZmluZSAgR1NXSVBfTURJT19QSFlfRkNPTlJYX0FVVE9cdDB4MDAwMFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo0OTojZGVmaW5lICBHU1dJUF9NRElPX1BIWV9GQ09OUlhfRU5cdDB4MDAyMFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo1MDojZGVmaW5lICBHU1dJUF9NRElPX1BIWV9GQ09OUlhfRElTXHQweDAwNjBcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6NTE6I2RlZmluZSAgR1NXSVBfTURJT19QSFlfQUREUl9NQVNLXHQweDAwMWZcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6NTI6I2RlZmluZSAgR1NXSVBfTURJT19QSFlfTUFTS1x0XHQoR1NXSVBfTURJT19QSFlfQUREUl9NQVNLIHwgXFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6NTM6XHRcdFx0XHRcdCBHU1dJUF9NRElPX1BIWV9GQ09OUlhfTUFTSyB8IFxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjU0Olx0XHRcdFx0XHQgR1NXSVBfTURJT19QSFlfRkNPTlRYX01BU0sgfCBcXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo1NTpcdFx0XHRcdFx0IEdTV0lQX01ESU9fUEhZX0xJTktfTUFTSyB8IFxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjU2Olx0XHRcdFx0XHQgR1NXSVBfTURJT19QSFlfU1BFRURfTUFTSyB8IFxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjU3Olx0XHRcdFx0XHQgR1NXSVBfTURJT19QSFlfRkRVUF9NQVNLKVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaC01OC1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6NTk6LyogR1NXSVAgTUlJIFJlZ2lzdGVycyAqL1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo2MDojZGVmaW5lIEdTV0lQX01JSV9DRkdwKHApXHRcdCgweDIgKiAocCkpXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjYxOiNkZWZpbmUgIEdTV0lQX01JSV9DRkdfUkVTRVRcdFx0QklUKDE1KVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo2MjojZGVmaW5lICBHU1dJUF9NSUlfQ0ZHX0VOXHRcdEJJVCgxNClcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6NjM6I2RlZmluZSAgR1NXSVBfTUlJX0NGR19JU09MQVRFXHRcdEJJVCgxMylcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6NjQ6I2RlZmluZSAgR1NXSVBfTUlJX0NGR19MRENMS0RJU1x0XHRCSVQoMTIpXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjY1OiNkZWZpbmUgIEdTV0lQX01JSV9DRkdfUkdNSUlfSUJTXHRCSVQoOClcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6NjY6I2RlZmluZSAgR1NXSVBfTUlJX0NGR19STUlJX0NMS1x0XHRCSVQoNylcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6Njc6I2RlZmluZSAgR1NXSVBfTUlJX0NGR19NT0RFX01JSVBcdDB4MFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo2ODojZGVmaW5lICBHU1dJUF9NSUlfQ0ZHX01PREVfTUlJTVx0MHgxXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjY5OiNkZWZpbmUgIEdTV0lQX01JSV9DRkdfTU9ERV9STUlJUFx0MHgyXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjcwOiNkZWZpbmUgIEdTV0lQX01JSV9DRkdfTU9ERV9STUlJTVx0MHgzXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjcxOiNkZWZpbmUgIEdTV0lQX01JSV9DRkdfTU9ERV9SR01JSVx0MHg0XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjcyOiNkZWZpbmUgIEdTV0lQX01JSV9DRkdfTU9ERV9HTUlJXHQweDlcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6NzM6I2RlZmluZSAgR1NXSVBfTUlJX0NGR19NT0RFX01BU0tcdDB4ZlxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo3NDojZGVmaW5lICBHU1dJUF9NSUlfQ0ZHX1JBVEVfTTJQNVx0MHgwMFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo3NTojZGVmaW5lICBHU1dJUF9NSUlfQ0ZHX1JBVEVfTTI1XHQweDEwXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjc2OiNkZWZpbmUgIEdTV0lQX01JSV9DRkdfUkFURV9NMTI1XHQweDIwXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjc3OiNkZWZpbmUgIEdTV0lQX01JSV9DRkdfUkFURV9NNTBcdDB4MzBcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6Nzg6I2RlZmluZSAgR1NXSVBfTUlJX0NGR19SQVRFX0FVVE9cdDB4NDBcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6Nzk6I2RlZmluZSAgR1NXSVBfTUlJX0NGR19SQVRFX01BU0tcdDB4NzBcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6ODA6I2RlZmluZSBHU1dJUF9NSUlfUENEVTBcdFx0XHQweDAxXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjgxOiNkZWZpbmUgR1NXSVBfTUlJX1BDRFUxXHRcdFx0MHgwM1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo4MjojZGVmaW5lIEdTV0lQX01JSV9QQ0RVNVx0XHRcdDB4MDVcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6ODM6I2RlZmluZSAgR1NXSVBfTUlJX1BDRFVfVFhETFlfTUFTS1x0R0VOTUFTSygyLCAwKVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo4NDojZGVmaW5lICBHU1dJUF9NSUlfUENEVV9SWERMWV9NQVNLXHRHRU5NQVNLKDksIDcpXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjg1OiNkZWZpbmUgIEdTV0lQX01JSV9QQ0RVX1RYRExZKHgpXHR1MTZfZW5jb2RlX2JpdHMoKCh4KSAvIDUwMCksIEdTV0lQX01JSV9QQ0RVX1RYRExZX01BU0spXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjg2OiNkZWZpbmUgIEdTV0lQX01JSV9QQ0RVX1JYRExZKHgpXHR1MTZfZW5jb2RlX2JpdHMoKCh4KSAvIDUwMCksIEdTV0lQX01JSV9QQ0RVX1JYRExZX01BU0spXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjg3OiNkZWZpbmUgR1NXSVBfTUlJX1BDRFVfUlhETFlfREVGQVVMVFx0MjAwMCAvKiBwaWNvc2Vjb25kcyAqL1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo4ODojZGVmaW5lIEdTV0lQX01JSV9QQ0RVX1RYRExZX0RFRkFVTFRcdDIwMDAgLyogcGljb3NlY29uZHMgKi9cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmgtODktXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjkwOi8qIEdTV0lQIENvcmUgUmVnaXN0ZXJzICovXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjkxOiNkZWZpbmUgR1NXSVBfU1dSRVNcdFx0XHQweDAwMFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo5MjojZGVmaW5lICBHU1dJUF9TV1JFU19SMVx0XHRcdEJJVCgxKVx0LyogR1NXSVAgU29mdHdhcmUgcmVzZXQgKi9cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6OTM6I2RlZmluZSAgR1NXSVBfU1dSRVNfUjBcdFx0XHRCSVQoMClcdC8qIEdTV0lQIEhhcmR3YXJlIHJlc2V0ICovXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjk0OiNkZWZpbmUgR1NXSVBfVkVSU0lPTlx0XHRcdDB4MDEzXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjk1OiNkZWZpbmUgIEdTV0lQX1ZFUlNJT05fUkVWX01BU0tcdFx0R0VOTUFTSyg3LCAwKVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo5NjojZGVmaW5lICBHU1dJUF9WRVJTSU9OX01PRF9NQVNLXHRcdEdFTk1BU0soMTUsIDgpXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjk3OiNkZWZpbmUgIEdTV0lQX1ZFUlNJT05fUkVWKHYpXHRcdEZJRUxEX0dFVChHU1dJUF9WRVJTSU9OX1JFVl9NQVNLLCB2KVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo5ODojZGVmaW5lICBHU1dJUF9WRVJTSU9OX01PRCh2KVx0XHRGSUVMRF9HRVQoR1NXSVBfVkVSU0lPTl9NT0RfTUFTSywgdilcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6OTk6I2RlZmluZSAgIEdTV0lQX1ZFUlNJT05fMl8wXHRcdDB4MTAwXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjEwMDojZGVmaW5lICAgR1NXSVBfVkVSU0lPTl8yXzFcdFx0MHgwMjFcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTAxOiNkZWZpbmUgICBHU1dJUF9WRVJTSU9OXzJfMlx0XHQweDEyMlxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxMDI6I2RlZmluZSAgIEdTV0lQX1ZFUlNJT05fMl8yX0VUQ1x0XHQweDAyMlxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaC0xMDMtLyogVGhlIGhhcmR3YXJlIGhhcyB0aGUgJiMzOTttYWpvci9taW5vciYjMzk7IHZlcnNpb24gYnl0ZXMgaW4gdGhlIHdyb25nIG9yZGVyXG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaC0xMDgtICovXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjEwOTojZGVmaW5lIEdTV0lQX1ZFUlNJT05fR0UocHJpdiwgdmVyKVx0KChwcml2KS1cdTAwM2V2ZXJzaW9uIFx1MDAzZT0gc3dhYjE2KHZlcikpXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oLTExMC1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTExOiNkZWZpbmUgR1NXSVBfQk1fUkFNX1ZBTCh4KVx0XHQoMHgwNDMgLSAoeCkpXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjExMjojZGVmaW5lIEdTV0lQX0JNX1JBTV9BRERSXHRcdDB4MDQ0XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjExMzojZGVmaW5lIEdTV0lQX0JNX1JBTV9DVFJMXHRcdDB4MDQ1XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjExNDojZGVmaW5lICBHU1dJUF9CTV9SQU1fQ1RSTF9CQVNcdFx0QklUKDE1KVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxMTU6I2RlZmluZSAgR1NXSVBfQk1fUkFNX0NUUkxfT1BNT0RcdEJJVCg1KVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxMTY6I2RlZmluZSAgR1NXSVBfQk1fUkFNX0NUUkxfQUREUl9NQVNLXHRHRU5NQVNLKDQsIDApXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjExNzojZGVmaW5lIEdTV0lQX0JNX1FVRVVFX0dDVFJMXHRcdDB4MDRBXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjExODojZGVmaW5lICBHU1dJUF9CTV9RVUVVRV9HQ1RSTF9HTF9NT0RcdEJJVCgxMClcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmgtMTE5LS8qIGJ1ZmZlciBtYW5hZ2VtZW50IFBvcnQgQ29uZmlndXJhdGlvbiBSZWdpc3RlciAqL1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxMjA6I2RlZmluZSBHU1dJUF9CTV9QQ0ZHcChwKVx0XHQoMHgwODAgJiM0MzsgKChwKSAqIDIpKVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxMjE6I2RlZmluZSAgR1NXSVBfQk1fUENGR19DTlRFTlx0XHRCSVQoMClcdC8qIFJNT04gQ291bnRlciBFbmFibGUgKi9cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTIyOiNkZWZpbmUgIEdTV0lQX0JNX1BDRkdfSUdDTlRcdFx0QklUKDEpXHQvKiBJbmdyZXMgU3BlY2lhbCBUYWcgUk1PTiBjb3VudCAqL1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaC0xMjMtLyogYnVmZmVyIG1hbmFnZW1lbnQgUG9ydCBDb250cm9sIFJlZ2lzdGVyICovXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjEyNDojZGVmaW5lIEdTV0lQX0JNX1JNT05fQ1RSTHAocClcdFx0KDB4ODEgJiM0MzsgKChwKSAqIDIpKVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxMjU6I2RlZmluZSAgR1NXSVBfQk1fQ1RSTF9STU9OX1JBTTFfUkVTXHRCSVQoMClcdC8qIFNvZnR3YXJlIFJlc2V0IGZvciBSTU9OIFJBTSAxICovXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjEyNjojZGVmaW5lICBHU1dJUF9CTV9DVFJMX1JNT05fUkFNMl9SRVNcdEJJVCgxKVx0LyogU29mdHdhcmUgUmVzZXQgZm9yIFJNT04gUkFNIDIgKi9cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmgtMTI3LVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaC0xMjgtLyogUENFICovXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjEyOTojZGVmaW5lIEdTV0lQX1BDRV9UQkxfS0VZKHgpXHRcdCgweDQ0NyAtICh4KSlcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTMwOiNkZWZpbmUgR1NXSVBfUENFX1RCTF9NQVNLXHRcdDB4NDQ4XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjEzMTojZGVmaW5lIEdTV0lQX1BDRV9UQkxfVkFMKHgpXHRcdCgweDQ0RCAtICh4KSlcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTMyOiNkZWZpbmUgR1NXSVBfUENFX1RCTF9BRERSXHRcdDB4NDRFXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjEzMzojZGVmaW5lIEdTV0lQX1BDRV9UQkxfQ1RSTFx0XHQweDQ0RlxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxMzQ6I2RlZmluZSAgR1NXSVBfUENFX1RCTF9DVFJMX0JBU1x0XHRCSVQoMTUpXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjEzNTojZGVmaW5lICBHU1dJUF9QQ0VfVEJMX0NUUkxfVFlQRVx0QklUKDEzKVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxMzY6I2RlZmluZSAgR1NXSVBfUENFX1RCTF9DVFJMX1ZMRFx0XHRCSVQoMTIpXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjEzNzojZGVmaW5lICBHU1dJUF9QQ0VfVEJMX0NUUkxfS0VZRk9STVx0QklUKDExKVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxMzg6I2RlZmluZSAgR1NXSVBfUENFX1RCTF9DVFJMX0dNQVBfTUFTS1x0R0VOTUFTSygxMCwgNylcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTM5OiNkZWZpbmUgIEdTV0lQX1BDRV9UQkxfQ1RSTF9PUE1PRF9NQVNLXHRHRU5NQVNLKDYsIDUpXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE0MDojZGVmaW5lICBHU1dJUF9QQ0VfVEJMX0NUUkxfT1BNT0RfQURSRFx0MHgwMFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxNDE6I2RlZmluZSAgR1NXSVBfUENFX1RCTF9DVFJMX09QTU9EX0FEV1JcdDB4MjBcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTQyOiNkZWZpbmUgIEdTV0lQX1BDRV9UQkxfQ1RSTF9PUE1PRF9LU1JEXHQweDQwXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE0MzojZGVmaW5lICBHU1dJUF9QQ0VfVEJMX0NUUkxfT1BNT0RfS1NXUlx0MHg2MFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxNDQ6I2RlZmluZSAgR1NXSVBfUENFX1RCTF9DVFJMX0FERFJfTUFTS1x0R0VOTUFTSyg0LCAwKVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxNDU6I2RlZmluZSBHU1dJUF9QQ0VfUE1BUDFcdFx0XHQweDQ1M1x0LyogTW9uaXRvcmluZyBwb3J0IG1hcCAqL1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxNDY6I2RlZmluZSBHU1dJUF9QQ0VfUE1BUDJcdFx0XHQweDQ1NFx0LyogRGVmYXVsdCBNdWx0aWNhc3QgcG9ydCBtYXAgKi9cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTQ3OiNkZWZpbmUgR1NXSVBfUENFX1BNQVAzXHRcdFx0MHg0NTVcdC8qIERlZmF1bHQgVW5rbm93biBVbmljYXN0IHBvcnQgbWFwICovXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE0ODojZGVmaW5lIEdTV0lQX1BDRV9HQ1RSTF8wXHRcdDB4NDU2XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE0OTojZGVmaW5lICBHU1dJUF9QQ0VfR0NUUkxfMF9NVEZMXHRcdEJJVCgwKSAgLyogTUFDIFRhYmxlIEZsdXNoaW5nICovXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE1MDojZGVmaW5lICBHU1dJUF9QQ0VfR0NUUkxfMF9NQ19WQUxJRFx0QklUKDMpXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE1MTojZGVmaW5lICBHU1dJUF9QQ0VfR0NUUkxfMF9WTEFOXHRcdEJJVCgxNCkgLyogVkxBTiBhd2FyZSBTd2l0Y2hpbmcgKi9cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTUyOiNkZWZpbmUgR1NXSVBfUENFX0dDVFJMXzFcdFx0MHg0NTdcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTUzOiNkZWZpbmUgIEdTV0lQX1BDRV9HQ1RSTF8xX01BQ19HTE9DS1x0QklUKDIpXHQvKiBNQUMgQWRkcmVzcyB0YWJsZSBsb2NrICovXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE1NDojZGVmaW5lICBHU1dJUF9QQ0VfR0NUUkxfMV9NQUNfR0xPQ0tfTU9EXHRCSVQoMykgLyogTWFjIGFkZHJlc3MgdGFibGUgbG9jayBmb3J3YXJkaW5nIG1vZGUgKi9cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTU1OiNkZWZpbmUgR1NXSVBfUENFX1BDVFJMXzBwKHApXHRcdCgweDQ4MCAmIzQzOyAoKHApICogMHhBKSlcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTU2OiNkZWZpbmUgIEdTV0lQX1BDRV9QQ1RSTF8wX1RWTVx0XHRCSVQoNSlcdC8qIFRyYW5zcGFyZW50IFZMQU4gbW9kZSAqL1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxNTc6I2RlZmluZSAgR1NXSVBfUENFX1BDVFJMXzBfVlJFUFx0XHRCSVQoNilcdC8qIFZMQU4gUmVwbGFjZSBNb2RlICovXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE1ODojZGVmaW5lICBHU1dJUF9QQ0VfUENUUkxfMF9JTkdSRVNTXHRCSVQoMTEpXHQvKiBBY2NlcHQgc3BlY2lhbCB0YWcgaW4gaW5ncmVzcyAqL1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxNTk6I2RlZmluZSAgR1NXSVBfUENFX1BDVFJMXzBfUFNUQVRFX0xJU1RFTlx0MHgwXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE2MDojZGVmaW5lICBHU1dJUF9QQ0VfUENUUkxfMF9QU1RBVEVfUlhcdFx0MHgxXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE2MTojZGVmaW5lICBHU1dJUF9QQ0VfUENUUkxfMF9QU1RBVEVfVFhcdFx0MHgyXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE2MjojZGVmaW5lICBHU1dJUF9QQ0VfUENUUkxfMF9QU1RBVEVfTEVBUk5JTkdcdDB4M1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxNjM6I2RlZmluZSAgR1NXSVBfUENFX1BDVFJMXzBfUFNUQVRFX0ZPUldBUkRJTkdcdDB4N1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxNjQ6I2RlZmluZSAgR1NXSVBfUENFX1BDVFJMXzBfUFNUQVRFX01BU0tcdEdFTk1BU0soMiwgMClcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmgtMTY1LS8qIEV0aGVybmV0IFN3aXRjaCBQQ0UgUG9ydCBDb250cm9sIFJlZ2lzdGVyIDMgKi9cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTY2OiNkZWZpbmUgR1NXSVBfUENFX1BDVFJMXzNwKHApXHRcdCgweDQ4MyAmIzQzOyAoKHApICogMHhBKSlcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTY3OiNkZWZpbmUgIEdTV0lQX1BDRV9QQ1RSTF8zX0xORElTXHRCSVQoMTUpICAvKiBMZWFybmluZyBEaXNhYmxlICovXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE2ODojZGVmaW5lIEdTV0lQX1BDRV9WQ1RSTChwKVx0XHQoMHg0ODUgJiM0MzsgKChwKSAqIDB4QSkpXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE2OTojZGVmaW5lICBHU1dJUF9QQ0VfVkNUUkxfVVZSXHRcdEJJVCgwKVx0LyogVW5rbm93biBWTEFOIFJ1bGUgKi9cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTcwOiNkZWZpbmUgIEdTV0lQX1BDRV9WQ1RSTF9WSU5SXHRcdEdFTk1BU0soMiwgMSkgLyogVkxBTiBJbmdyZXNzIFRhZyBSdWxlICovXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE3MTojZGVmaW5lICBHU1dJUF9QQ0VfVkNUUkxfVklOUl9BTExcdDAgLyogQWRtaXQgdGFnZ2VkIGFuZCB1bnRhZ2dlZCBwYWNrZXRzICovXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE3MjojZGVmaW5lICBHU1dJUF9QQ0VfVkNUUkxfVklOUl9UQUdHRURcdDEgLyogQWRtaXQgb25seSB0YWdnZWQgcGFja2V0cyAqL1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxNzM6I2RlZmluZSAgR1NXSVBfUENFX1ZDVFJMX1ZJTlJfVU5UQUdHRURcdDIgLyogQWRtaXQgb25seSB1bnRhZ2dlZCBwYWNrZXRzICovXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE3NDojZGVmaW5lICBHU1dJUF9QQ0VfVkNUUkxfVklNUlx0XHRCSVQoMylcdC8qIFZMQU4gSW5ncmVzcyBNZW1iZXIgdmlvbGF0aW9uIHJ1bGUgKi9cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTc1OiNkZWZpbmUgIEdTV0lQX1BDRV9WQ1RSTF9WRU1SXHRcdEJJVCg0KVx0LyogVkxBTiBFZ3Jlc3MgTWVtYmVyIHZpb2xhdGlvbiBydWxlICovXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE3NjojZGVmaW5lICBHU1dJUF9QQ0VfVkNUUkxfVlNSXHRcdEJJVCg1KVx0LyogVkxBTiBTZWN1cml0eSAqL1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxNzc6I2RlZmluZSAgR1NXSVBfUENFX1ZDVFJMX1ZJRDBcdFx0QklUKDYpXHQvKiBQcmlvcml0eSBUYWdnZWQgUnVsZSAqL1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxNzg6I2RlZmluZSBHU1dJUF9QQ0VfREVGUFZJRChwKVx0XHQoMHg0ODYgJiM0MzsgKChwKSAqIDB4QSkpXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oLTE3OS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTgwOiNkZWZpbmUgR1NXSVBfTUFDX0ZMRU5cdFx0XHQweDhDNVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxODE6I2RlZmluZSBHU1dJUF9NQUNfQ1RSTF8wcChwKVx0XHQoMHg5MDMgJiM0MzsgKChwKSAqIDB4QykpXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE4MjojZGVmaW5lICBHU1dJUF9NQUNfQ1RSTF8wX1BBREVOXHRcdEJJVCg4KVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxODM6I2RlZmluZSAgR1NXSVBfTUFDX0NUUkxfMF9GQ1NfRU5cdEJJVCg3KVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxODQ6I2RlZmluZSAgR1NXSVBfTUFDX0NUUkxfMF9GQ09OX01BU0tcdDB4MDA3MFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxODU6I2RlZmluZSAgR1NXSVBfTUFDX0NUUkxfMF9GQ09OX0FVVE9cdDB4MDAwMFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxODY6I2RlZmluZSAgR1NXSVBfTUFDX0NUUkxfMF9GQ09OX1JYXHQweDAwMTBcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTg3OiNkZWZpbmUgIEdTV0lQX01BQ19DVFJMXzBfRkNPTl9UWFx0MHgwMDIwXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE4ODojZGVmaW5lICBHU1dJUF9NQUNfQ1RSTF8wX0ZDT05fUlhUWFx0MHgwMDMwXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE4OTojZGVmaW5lICBHU1dJUF9NQUNfQ1RSTF8wX0ZDT05fTk9ORVx0MHgwMDQwXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE5MDojZGVmaW5lICBHU1dJUF9NQUNfQ1RSTF8wX0ZEVVBfTUFTS1x0MHgwMDBDXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE5MTojZGVmaW5lICBHU1dJUF9NQUNfQ1RSTF8wX0ZEVVBfQVVUT1x0MHgwMDAwXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE5MjojZGVmaW5lICBHU1dJUF9NQUNfQ1RSTF8wX0ZEVVBfRU5cdDB4MDAwNFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxOTM6I2RlZmluZSAgR1NXSVBfTUFDX0NUUkxfMF9GRFVQX0RJU1x0MHgwMDBDXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE5NDojZGVmaW5lICBHU1dJUF9NQUNfQ1RSTF8wX0dNSUlfTUFTS1x0MHgwMDAzXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE5NTojZGVmaW5lICBHU1dJUF9NQUNfQ1RSTF8wX0dNSUlfQVVUT1x0MHgwMDAwXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE5NjojZGVmaW5lICBHU1dJUF9NQUNfQ1RSTF8wX0dNSUlfTUlJXHQweDAwMDFcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTk3OiNkZWZpbmUgIEdTV0lQX01BQ19DVFJMXzBfR01JSV9SR01JSVx0MHgwMDAyXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE5ODojZGVmaW5lIEdTV0lQX01BQ19DVFJMXzJwKHApXHRcdCgweDkwNSAmIzQzOyAoKHApICogMHhDKSlcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTk5OiNkZWZpbmUgR1NXSVBfTUFDX0NUUkxfMl9MQ0hLTFx0XHRCSVQoMikgLyogRnJhbWUgTGVuZ3RoIENoZWNrIExvbmcgRW5hYmxlICovXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjIwMDojZGVmaW5lIEdTV0lQX01BQ19DVFJMXzJfTUxFTlx0XHRCSVQoMykgLyogTWF4aW11bSBVbnRhZ2dlZCBGcmFtZSBMbmVndGggKi9cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjAxOiNkZWZpbmUgR1NXSVBfTUFDX0NUUkxfNHAocClcdFx0KDB4OTA3ICYjNDM7ICgocCkgKiAweEMpKVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoyMDI6I2RlZmluZSAgR1NXSVBfTUFDX0NUUkxfNF9MUElFTlx0XHRCSVQoNykgLyogTFBJIE1vZGUgRW5hYmxlICovXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjIwMzojZGVmaW5lICBHU1dJUF9NQUNfQ1RSTF80X0dXQUlUX01BU0tcdEdFTk1BU0soMTQsIDgpIC8qIExQSSBXYWl0IFRpbWUgMUcgKi9cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjA0OiNkZWZpbmUgIEdTV0lQX01BQ19DVFJMXzRfR1dBSVQodClcdHUxNl9lbmNvZGVfYml0cygodCksIEdTV0lQX01BQ19DVFJMXzRfR1dBSVRfTUFTSylcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjA1OiNkZWZpbmUgIEdTV0lQX01BQ19DVFJMXzRfV0FJVF9NQVNLXHRHRU5NQVNLKDYsIDApIC8qIExQSSBXYWl0IFRpbWUgMTAwTSAqL1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoyMDY6I2RlZmluZSAgR1NXSVBfTUFDX0NUUkxfNF9XQUlUKHQpXHR1MTZfZW5jb2RlX2JpdHMoKHQpLCBHU1dJUF9NQUNfQ1RSTF80X1dBSVRfTUFTSylcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmgtMjA3LVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaC0yMDgtLyogRXRoZXJuZXQgU3dpdGNoIEZldGNoIERNQSBQb3J0IENvbnRyb2wgUmVnaXN0ZXIgKi9cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjA5OiNkZWZpbmUgR1NXSVBfRkRNQV9QQ1RSTHAocClcdFx0KDB4QTgwICYjNDM7ICgocCkgKiAweDYpKVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoyMTA6I2RlZmluZSAgR1NXSVBfRkRNQV9QQ1RSTF9FTlx0XHRCSVQoMClcdC8qIEZETUEgUG9ydCBFbmFibGUgKi9cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjExOiNkZWZpbmUgIEdTV0lQX0ZETUFfUENUUkxfU1RFTlx0XHRCSVQoMSlcdC8qIFNwZWNpYWwgVGFnIEluc2VydGlvbiBFbmFibGUgKi9cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjEyOiNkZWZpbmUgIEdTV0lQX0ZETUFfUENUUkxfVkxBTk1PRF9NQVNLXHRHRU5NQVNLKDQsIDMpXHQvKiBWTEFOIE1vZGlmaWNhdGlvbiBDb250cm9sICovXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjIxMzojZGVmaW5lICBHU1dJUF9GRE1BX1BDVFJMX1ZMQU5NT0RfU0hJRlRcdDNcdC8qIFZMQU4gTW9kaWZpY2F0aW9uIENvbnRyb2wgKi9cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjE0OiNkZWZpbmUgIEdTV0lQX0ZETUFfUENUUkxfVkxBTk1PRF9ESVNcdCgweDAgXHUwMDNjXHUwMDNjIEdTV0lQX0ZETUFfUENUUkxfVkxBTk1PRF9TSElGVClcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjE1OiNkZWZpbmUgIEdTV0lQX0ZETUFfUENUUkxfVkxBTk1PRF9QUklPXHQoMHgxIFx1MDAzY1x1MDAzYyBHU1dJUF9GRE1BX1BDVFJMX1ZMQU5NT0RfU0hJRlQpXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjIxNjojZGVmaW5lICBHU1dJUF9GRE1BX1BDVFJMX1ZMQU5NT0RfSURcdCgweDIgXHUwMDNjXHUwMDNjIEdTV0lQX0ZETUFfUENUUkxfVkxBTk1PRF9TSElGVClcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjE3OiNkZWZpbmUgIEdTV0lQX0ZETUFfUENUUkxfVkxBTk1PRF9CT1RIXHQoMHgzIFx1MDAzY1x1MDAzYyBHU1dJUF9GRE1BX1BDVFJMX1ZMQU5NT0RfU0hJRlQpXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oLTIxOC1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmgtMjE5LS8qIEV0aGVybmV0IFN3aXRjaCBTdG9yZSBETUEgUG9ydCBDb250cm9sIFJlZ2lzdGVyICovXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjIyMDojZGVmaW5lIEdTV0lQX1NETUFfUENUUkxwKHApXHRcdCgweEJDMCAmIzQzOyAoKHApICogMHg2KSlcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjIxOiNkZWZpbmUgIEdTV0lQX1NETUFfUENUUkxfRU5cdFx0QklUKDApXHQvKiBTRE1BIFBvcnQgRW5hYmxlICovXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjIyMjojZGVmaW5lICBHU1dJUF9TRE1BX1BDVFJMX0ZDRU5cdFx0QklUKDEpXHQvKiBGbG93IENvbnRyb2wgRW5hYmxlICovXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjIyMzojZGVmaW5lICBHU1dJUF9TRE1BX1BDVFJMX1BBVUZXRFx0QklUKDMpXHQvKiBQYXVzZSBGcmFtZSBGb3J3YXJkaW5nICovXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oLTIyNC1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjI1OiNkZWZpbmUgR1NXSVBfVEFCTEVfQUNUSVZFX1ZMQU5cdFx0MHgwMVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoyMjY6I2RlZmluZSBHU1dJUF9UQUJMRV9WTEFOX01BUFBJTkdcdDB4MDJcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjI3OiNkZWZpbmUgR1NXSVBfVEFCTEVfTUFDX0JSSURHRVx0XHQweDBiXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjIyODojZGVmaW5lICBHU1dJUF9UQUJMRV9NQUNfQlJJREdFX0tFWTNfRklEXHRHRU5NQVNLKDUsIDApXHQvKiBGaWx0ZXJpbmcgaWRlbnRpZmllciAqL1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoyMjk6I2RlZmluZSAgR1NXSVBfVEFCTEVfTUFDX0JSSURHRV9WQUwwX1BPUlRcdEdFTk1BU0soNywgNClcdC8qIFBvcnQgb24gbGVhcm5lZCBlbnRyaWVzICovXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjIzMDojZGVmaW5lICBHU1dJUF9UQUJMRV9NQUNfQlJJREdFX1ZBTDFfU1RBVElDXHRCSVQoMClcdFx0LyogU3RhdGljLCBub24tYWdpbmcgZW50cnkgKi9cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjMxOiNkZWZpbmUgIEdTV0lQX1RBQkxFX01BQ19CUklER0VfVkFMMV9WQUxJRFx0QklUKDEpXHRcdC8qIFZhbGlkIGJpdCAqL1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaC0yMzItXG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaC0yNDEtICovXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjI0MjojZGVmaW5lIEdTV0lQX01BWF9QQUNLRVRfTEVOR1RIXHQyNDAwXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oLTI0My1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjQ0OiNkZWZpbmUgR1NXSVBfVkxBTl9VTkFXQVJFX1BWSURcdDBcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmgtMjQ1LVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoyNDY6I2RlZmluZSBHU1dJUF9NQVhfUE9SVFNcdFx0N1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaC0yNDctXG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaD0yNTU9c3RydWN0IGdzd2lwX2h3X2luZm8ge1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmgtMjU3LVx0dW5zaWduZWQgaW50IGFsbG93ZWRfY3B1X3BvcnRzO1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoyNTg6XHRzMTYgbWlpX2NmZ1tHU1dJUF9NQVhfUE9SVFNdO1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoyNTk6XHRzMTYgbWlpX3BjZHVbR1NXSVBfTUFYX1BPUlRTXTtcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmgtMjYwLVx0Ym9vbCBzdXBwb3J0c18yNTAwbTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oPTMwMD1pbnQgZ3N3aXBfcHJvYmVfY29tbW9uKHN0cnVjdCBnc3dpcF9wcml2ICpwcml2LCB1MzIgdmVyc2lvbik7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oLTMwMS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MzAyOiNlbmRpZiAvKiBfX0xBTlRJUV9HU1dJUF9IICovXG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMi0vKlxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MzogKiBMYW50aXEgLyBJbnRlbCAvIE1heExpbmVhciBHU1dJUCBjb21tb24gZnVuY3Rpb24gbGlicmFyeVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtNC0gKlxuLS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTExLSAqXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzoxMjogKiBUaGUgVkxBTiBhbmQgYnJpZGdlIG1vZGVsIHRoZSBHU1dJUCBoYXJkd2FyZSB1c2VzIGRvZXMgbm90IGRpcmVjdGx5XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0xMy0gKiBtYXRjaGVzIHRoZSBtb2RlbCBEU0EgdXNlcy5cbi0tXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYz0xMjk9c3RhdGljIGludCBnc3dpcF9tZGlvX3BvbGwoc3RydWN0IGdzd2lwX3ByaXYgKnByaXYpXG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMTMyLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MTMzOlx0cmV0dXJuIHJlZ21hcF9yZWFkX3BvbGxfdGltZW91dChwcml2LVx1MDAzZW1kaW8sIEdTV0lQX01ESU9fQ1RSTCwgY3RybCxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjEzNDpcdFx0XHRcdFx0IShjdHJsIFx1MDAyNiBHU1dJUF9NRElPX0NUUkxfQlVTWSksIDQwLCA0MDAwKTtcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTEzNS19XG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM9MTM3PXN0YXRpYyBpbnQgZ3N3aXBfbWRpb193cihzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgYWRkciwgaW50IHJlZywgdTE2IHZhbClcbi0tXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0xNDctXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzoxNDg6XHRyZWdtYXBfd3JpdGUocHJpdi1cdTAwM2VtZGlvLCBHU1dJUF9NRElPX1dSSVRFLCB2YWwpO1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MTQ5Olx0cmVnbWFwX3dyaXRlKHByaXYtXHUwMDNlbWRpbywgR1NXSVBfTURJT19DVFJMLFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MTUwOlx0XHQgICAgIEdTV0lQX01ESU9fQ1RSTF9CVVNZIHwgR1NXSVBfTURJT19DVFJMX1dSIHxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjE1MTpcdFx0ICAgICAoKGFkZHIgXHUwMDI2IEdTV0lQX01ESU9fQ1RSTF9QSFlBRF9NQVNLKSBcdTAwM2NcdTAwM2MgR1NXSVBfTURJT19DVFJMX1BIWUFEX1NISUZUKSB8XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzoxNTI6XHRcdCAgICAgKHJlZyBcdTAwMjYgR1NXSVBfTURJT19DVFJMX1JFR0FEX01BU0spKTtcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTE1My1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYz0xNTc9c3RhdGljIGludCBnc3dpcF9tZGlvX3JkKHN0cnVjdCBtaWlfYnVzICpidXMsIGludCBhZGRyLCBpbnQgcmVnKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTE2OC1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjE2OTpcdHJlZ21hcF93cml0ZShwcml2LVx1MDAzZW1kaW8sIEdTV0lQX01ESU9fQ1RSTCxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjE3MDpcdFx0ICAgICBHU1dJUF9NRElPX0NUUkxfQlVTWSB8IEdTV0lQX01ESU9fQ1RSTF9SRCB8XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzoxNzE6XHRcdCAgICAgKChhZGRyIFx1MDAyNiBHU1dJUF9NRElPX0NUUkxfUEhZQURfTUFTSykgXHUwMDNjXHUwMDNjIEdTV0lQX01ESU9fQ1RSTF9QSFlBRF9TSElGVCkgfFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MTcyOlx0XHQgICAgIChyZWcgXHUwMDI2IEdTV0lQX01ESU9fQ1RSTF9SRUdBRF9NQVNLKSk7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0xNzMtXG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMTc5LVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MTgwOlx0ZXJyID0gcmVnbWFwX3JlYWQocHJpdi1cdTAwM2VtZGlvLCBHU1dJUF9NRElPX1JFQUQsIFx1MDAyNnZhbCk7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0xODEtXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jPTIyMj1zdGF0aWMgaW50IGdzd2lwX3BjZV90YWJsZV9lbnRyeV9yZWFkKHN0cnVjdCBnc3dpcF9wcml2ICpwcml2LFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTIyOC1cdHUzMiB0bXA7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzoyMjk6XHR1MTYgYWRkcl9tb2RlID0gdGJsLVx1MDAzZWtleV9tb2RlID8gR1NXSVBfUENFX1RCTF9DVFJMX09QTU9EX0tTUkQgOlxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MjMwOlx0XHRcdFx0XHRHU1dJUF9QQ0VfVEJMX0NUUkxfT1BNT0RfQURSRDtcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTIzMS1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0yMzMtXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzoyMzQ6XHRlcnIgPSBnc3dpcF9zd2l0Y2hfcl90aW1lb3V0KHByaXYsIEdTV0lQX1BDRV9UQkxfQ1RSTCxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjIzNTpcdFx0XHRcdCAgICAgR1NXSVBfUENFX1RCTF9DVFJMX0JBUyk7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0yMzYtXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTIzOC1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjIzOTpcdHJlZ21hcF93cml0ZShwcml2LVx1MDAzZWdzd2lwLCBHU1dJUF9QQ0VfVEJMX0FERFIsIHRibC1cdTAwM2VpbmRleCk7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzoyNDA6XHRyZWdtYXBfd3JpdGVfYml0cyhwcml2LVx1MDAzZWdzd2lwLCBHU1dJUF9QQ0VfVEJMX0NUUkwsXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzoyNDE6XHRcdFx0ICBHU1dJUF9QQ0VfVEJMX0NUUkxfQUREUl9NQVNLIHxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjI0MjpcdFx0XHQgIEdTV0lQX1BDRV9UQkxfQ1RSTF9PUE1PRF9NQVNLIHxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjI0MzpcdFx0XHQgIEdTV0lQX1BDRV9UQkxfQ1RSTF9CQVMsXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzoyNDQ6XHRcdFx0ICB0YmwtXHUwMDNldGFibGUgfCBhZGRyX21vZGUgfCBHU1dJUF9QQ0VfVEJMX0NUUkxfQkFTKTtcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTI0NS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjI0NjpcdGVyciA9IGdzd2lwX3N3aXRjaF9yX3RpbWVvdXQocHJpdiwgR1NXSVBfUENFX1RCTF9DVFJMLFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MjQ3Olx0XHRcdFx0ICAgICBHU1dJUF9QQ0VfVEJMX0NUUkxfQkFTKTtcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTI0OC1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMjUxLVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVJSQVlfU0laRSh0YmwtXHUwMDNla2V5KTsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjI1MjpcdFx0ZXJyID0gcmVnbWFwX3JlYWQocHJpdi1cdTAwM2Vnc3dpcCwgR1NXSVBfUENFX1RCTF9LRVkoaSksIFx1MDAyNnRtcCk7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0yNTMtXHRcdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMjU3LVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVJSQVlfU0laRSh0YmwtXHUwMDNldmFsKTsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjI1ODpcdFx0ZXJyID0gcmVnbWFwX3JlYWQocHJpdi1cdTAwM2Vnc3dpcCwgR1NXSVBfUENFX1RCTF9WQUwoaSksIFx1MDAyNnRtcCk7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0yNTktXHRcdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMjYzLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MjY0Olx0ZXJyID0gcmVnbWFwX3JlYWQocHJpdi1cdTAwM2Vnc3dpcCwgR1NXSVBfUENFX1RCTF9NQVNLLCBcdTAwMjZ0bXApO1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMjY1LVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0yNjgtXHR0YmwtXHUwMDNlbWFzayA9IHRtcDtcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjI2OTpcdGVyciA9IHJlZ21hcF9yZWFkKHByaXYtXHUwMDNlZ3N3aXAsIEdTV0lQX1BDRV9UQkxfQ1RSTCwgXHUwMDI2Y3J0bCk7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0yNzAtXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTI3Mi1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjI3MzpcdHRibC1cdTAwM2V0eXBlID0gISEoY3J0bCBcdTAwMjYgR1NXSVBfUENFX1RCTF9DVFJMX1RZUEUpO1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6Mjc0Olx0dGJsLVx1MDAzZXZhbGlkID0gISEoY3J0bCBcdTAwMjYgR1NXSVBfUENFX1RCTF9DVFJMX1ZMRCk7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzoyNzU6XHR0YmwtXHUwMDNlZ21hcCA9IChjcnRsIFx1MDAyNiBHU1dJUF9QQ0VfVEJMX0NUUkxfR01BUF9NQVNLKSBcdTAwM2VcdTAwM2UgNztcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTI3Ni1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYz0yODM9c3RhdGljIGludCBnc3dpcF9wY2VfdGFibGVfZW50cnlfd3JpdGUoc3RydWN0IGdzd2lwX3ByaXYgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMjg4LVx0dTMyIGNydGw7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzoyODk6XHR1MTYgYWRkcl9tb2RlID0gdGJsLVx1MDAzZWtleV9tb2RlID8gR1NXSVBfUENFX1RCTF9DVFJMX09QTU9EX0tTV1IgOlxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MjkwOlx0XHRcdFx0XHRHU1dJUF9QQ0VfVEJMX0NUUkxfT1BNT0RfQURXUjtcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTI5MS1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0yOTMtXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzoyOTQ6XHRlcnIgPSBnc3dpcF9zd2l0Y2hfcl90aW1lb3V0KHByaXYsIEdTV0lQX1BDRV9UQkxfQ1RSTCxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjI5NTpcdFx0XHRcdCAgICAgR1NXSVBfUENFX1RCTF9DVFJMX0JBUyk7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0yOTYtXHRpZiAoZXJyKSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMzAwLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MzAxOlx0cmVnbWFwX3dyaXRlKHByaXYtXHUwMDNlZ3N3aXAsIEdTV0lQX1BDRV9UQkxfQUREUiwgdGJsLVx1MDAzZWluZGV4KTtcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjMwMjpcdHJlZ21hcF93cml0ZV9iaXRzKHByaXYtXHUwMDNlZ3N3aXAsIEdTV0lQX1BDRV9UQkxfQ1RSTCxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjMwMzpcdFx0XHQgIEdTV0lQX1BDRV9UQkxfQ1RSTF9BRERSX01BU0sgfFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MzA0Olx0XHRcdCAgR1NXSVBfUENFX1RCTF9DVFJMX09QTU9EX01BU0ssXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0zMDUtXHRcdFx0ICB0YmwtXHUwMDNldGFibGUgfCBhZGRyX21vZGUpO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTMwNy1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFSUkFZX1NJWkUodGJsLVx1MDAzZWtleSk7IGkmIzQzOyYjNDM7KVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MzA4Olx0XHRyZWdtYXBfd3JpdGUocHJpdi1cdTAwM2Vnc3dpcCwgR1NXSVBfUENFX1RCTF9LRVkoaSksIHRibC1cdTAwM2VrZXlbaV0pO1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMzA5LVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMzEwLVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVJSQVlfU0laRSh0YmwtXHUwMDNldmFsKTsgaSYjNDM7JiM0MzspXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzozMTE6XHRcdHJlZ21hcF93cml0ZShwcml2LVx1MDAzZWdzd2lwLCBHU1dJUF9QQ0VfVEJMX1ZBTChpKSwgdGJsLVx1MDAzZXZhbFtpXSk7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0zMTItXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzozMTM6XHRyZWdtYXBfd3JpdGVfYml0cyhwcml2LVx1MDAzZWdzd2lwLCBHU1dJUF9QQ0VfVEJMX0NUUkwsXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzozMTQ6XHRcdFx0ICBHU1dJUF9QQ0VfVEJMX0NUUkxfQUREUl9NQVNLIHxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjMxNTpcdFx0XHQgIEdTV0lQX1BDRV9UQkxfQ1RSTF9PUE1PRF9NQVNLLFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMzE2LVx0XHRcdCAgdGJsLVx1MDAzZXRhYmxlIHwgYWRkcl9tb2RlKTtcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTMxNy1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjMxODpcdHJlZ21hcF93cml0ZShwcml2LVx1MDAzZWdzd2lwLCBHU1dJUF9QQ0VfVEJMX01BU0ssIHRibC1cdTAwM2VtYXNrKTtcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTMxOS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjMyMDpcdHJlZ21hcF9yZWFkKHByaXYtXHUwMDNlZ3N3aXAsIEdTV0lQX1BDRV9UQkxfQ1RSTCwgXHUwMDI2Y3J0bCk7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzozMjE6XHRjcnRsIFx1MDAyNj0gfihHU1dJUF9QQ0VfVEJMX0NUUkxfVFlQRSB8IEdTV0lQX1BDRV9UQkxfQ1RSTF9WTEQgfFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MzIyOlx0XHQgIEdTV0lQX1BDRV9UQkxfQ1RSTF9HTUFQX01BU0spO1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMzIzLVx0aWYgKHRibC1cdTAwM2V0eXBlKVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MzI0Olx0XHRjcnRsIHw9IEdTV0lQX1BDRV9UQkxfQ1RSTF9UWVBFO1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMzI1LVx0aWYgKHRibC1cdTAwM2V2YWxpZClcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjMyNjpcdFx0Y3J0bCB8PSBHU1dJUF9QQ0VfVEJMX0NUUkxfVkxEO1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MzI3Olx0Y3J0bCB8PSAodGJsLVx1MDAzZWdtYXAgXHUwMDNjXHUwMDNjIDcpIFx1MDAyNiBHU1dJUF9QQ0VfVEJMX0NUUkxfR01BUF9NQVNLO1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MzI4Olx0Y3J0bCB8PSBHU1dJUF9QQ0VfVEJMX0NUUkxfQkFTO1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MzI5Olx0cmVnbWFwX3dyaXRlKHByaXYtXHUwMDNlZ3N3aXAsIEdTV0lQX1BDRV9UQkxfQ1RSTCwgY3J0bCk7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0zMzAtXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzozMzE6XHRlcnIgPSBnc3dpcF9zd2l0Y2hfcl90aW1lb3V0KHByaXYsIEdTV0lQX1BDRV9UQkxfQ1RSTCxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjMzMjpcdFx0XHRcdCAgICAgR1NXSVBfUENFX1RCTF9DVFJMX0JBUyk7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0zMzMtXG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM9MzQ0PXN0YXRpYyBpbnQgZ3N3aXBfYWRkX3NpbmdsZV9wb3J0X2JyKHN0cnVjdCBnc3dpcF9wcml2ICpwcml2LCBpbnQgcG9ydCwgYm9vbCBhZGQpXG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMzUwLVx0dmxhbl9hY3RpdmUuaW5kZXggPSBwb3J0ICYjNDM7IDE7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzozNTE6XHR2bGFuX2FjdGl2ZS50YWJsZSA9IEdTV0lQX1RBQkxFX0FDVElWRV9WTEFOO1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MzUyOlx0dmxhbl9hY3RpdmUua2V5WzBdID0gR1NXSVBfVkxBTl9VTkFXQVJFX1BWSUQ7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0zNTMtXHR2bGFuX2FjdGl2ZS52YWxbMF0gPSBwb3J0ICYjNDM7IDEgLyogZmlkICovO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTM2NC1cdHZsYW5fbWFwcGluZy5pbmRleCA9IHBvcnQgJiM0MzsgMTtcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjM2NTpcdHZsYW5fbWFwcGluZy50YWJsZSA9IEdTV0lQX1RBQkxFX1ZMQU5fTUFQUElORztcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA3IDE4OjIwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIzOTU5CgkJCQkJCQlvdXRwdXQ6IDQwCgkJCQkJCQl0aG91Z2h0czogMzQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqQW5hbHl6aW5nIHRoZSBMYW50aXEgRFNBIERyaXZlciBDb25maWd1cmF0aW9uKioKClJpZ2h0LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoZSBgZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9LY29uZmlnYCBmaWxlLiBJIG5lZWQgYSBjbGVhciBwaWN0dXJlIG9mIHdoYXQmIzM5O3MgZ29pbmcgb24gd2l0aGluIHRoYXQgZGlyZWN0b3J5LiBJIHdhbnQgdG8gc2VlIHRoZSBjb21wbGV0ZSBzZXQgb2YgY29uZmlndXJhdGlvbiBvcHRpb25zIGF2YWlsYWJsZSBmb3IgdGhlIExhbnRpcSBEU0EgZHJpdmVycy4gVW5kZXJzdGFuZGluZyB0aGUgS2NvbmZpZyBzdHJ1Y3R1cmUgaXMga2V5LiBUaGlzIHdpbGwgcXVpY2tseSBleHBvc2UgdGhlIGRlcGVuZGVuY2llcywgcmVsYXRpb25zaGlwcyBiZXR3ZWVuIHRoZSB2YXJpb3VzIGZlYXR1cmVzLCBhbmQgaG93IHRoZXkgYXJlIGxvZ2ljYWxseSBncm91cGVkLiBJJiMzOTttIGVzcGVjaWFsbHkgaW50ZXJlc3RlZCBpbiBhbnkgcGxhdGZvcm0tc3BlY2lmaWMgc3dpdGNoZXMgYW5kIGhvdyB0aGUgdmFyaW91cyBmZWF0dXJlcyBhcmUgZW5hYmxlZCBhbmQgZGlzYWJsZWQuIEtub3dpbmcgdGhlIG9yZ2FuaXphdGlvbiBvZiB0aGUgS2NvbmZpZyBhbHNvIHRlbGxzIG1lIHRoZSBvdmVyYWxsIGRyaXZlciBhcmNoaXRlY3R1cmUuIExldCYjMzk7cyBzZWUgaG93IHdlbGwgaXQmIzM5O3MgZGVzaWduZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDcgMTg6MjA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9kc2EvbGFudGlxL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDEwMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0Y29uZmlnIE5FVF9EU0FfTEFOVElRX0NPTU1PTlxuICAgMjpcdFx0dHJpc3RhdGVcbiAgIDM6XHRcdHNlbGVjdCBSRUdNQVBcbiAgIDQ6XHRcbiAgIDU6XHRjb25maWcgTkVUX0RTQV9MQU5USVFfR1NXSVBcbiAgIDY6XHRcdHRyaXN0YXRlIFwmIzM0O0xhbnRpcSAvIEludGVsIEdTV0lQXCYjMzQ7XG4gICA3Olx0XHRkZXBlbmRzIG9uIEhBU19JT01FTVxuICAgODpcdFx0c2VsZWN0IE5FVF9EU0FfVEFHX0dTV0lQXG4gICA5Olx0XHRzZWxlY3QgTkVUX0RTQV9MQU5USVFfQ09NTU9OXG4gIDEwOlx0XHRoZWxwXG4gIDExOlx0XHQgIFRoaXMgZW5hYmxlcyBzdXBwb3J0IGZvciB0aGUgTGFudGlxIC8gSW50ZWwgR1NXSVAgMi4xIGZvdW5kIGluXG4gIDEyOlx0XHQgIHRoZSB4cngyMDAgLyBWUjkgU29DLlxuICAxMzpcdFxuICAxNDpcdGNvbmZpZyBORVRfRFNBX01YTF9HU1cxWFhcbiAgMTU6XHRcdHRyaXN0YXRlIFwmIzM0O01heExpbmVhciBHU1cxeHggRXRoZXJuZXQgc3dpdGNoIHN1cHBvcnRcJiMzNDtcbiAgMTY6XHRcdHNlbGVjdCBORVRfRFNBX1RBR19NWExfR1NXMVhYXG4gIDE3Olx0XHRzZWxlY3QgTkVUX0RTQV9MQU5USVFfQ09NTU9OXG4gIDE4Olx0XHRzZWxlY3QgUEhZX0NPTU1PTl9QUk9QU1xuICAxOTpcdFx0aGVscFxuICAyMDpcdFx0ICBUaGlzIGVuYWJsZXMgc3VwcG9ydCBmb3IgdGhlIEludGVsL01heExpbmVhciBHU1cxeHggZmFtaWx5IG9mIDFHRVxuICAyMTpcdFx0ICBzd2l0Y2hlcy5cbiAgMjI6XHRcdCAgICBHU1cxMjAgNCBwb3J0LCAyIFBIWXMsIFJHTUlJIFx1MDAyNiBTR01JSS8yNTAwQmFzZS1YXG4gIDIzOlx0XHQgICAgR1NXMTI1IDQgcG9ydCwgMiBQSFlzLCBSR01JSSBcdTAwMjYgU0dNSUkvMjUwMEJhc2UtWCwgaW5kdXN0cmlhbCB0ZW1wZXJhdHVyZVxuICAyNDpcdFx0ICAgIEdTVzE0MCA2IHBvcnQsIDQgUEhZcywgUkdNSUkgXHUwMDI2IFNHTUlJLzI1MDBCYXNlLVhcbiAgMjU6XHRcdCAgICBHU1cxNDEgNiBwb3J0LCA0IFBIWXMsIFJHTUlJIFx1MDAyNiBTR01JSVxuICAyNjpcdFx0ICAgIEdTVzE0NSA2IHBvcnQsIDQgUEhZcywgUkdNSUkgXHUwMDI2IFNHTUlJLzI1MDBCYXNlLVgsIGluZHVzdHJpYWwgdGVtcGVyYXR1cmVcbiAgMjc6XHRcdCAgICBHU1cxNTAgNyBwb3J0LCA1IFBIWXMsIDF4IEdNSUkvUkdNSUksIDF4IFJHTUlJXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDcgMTg6MjA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjQ3MjUKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiA2MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzLiBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGljaCBzcGVjaWZpYyBidXNlcyBvciBpbnRlcmZhY2VzIGFyZSB1c2VkIHdpdGggdGhlIGBORVRfRFNBX0xBTlRJUV9HU1dJUGAgYW5kIGBORVRfRFNBX01YTF9HU1cxWFhgIERTQSAoRGlzdHJpYnV0ZWQgU3dpdGNoIEFyY2hpdGVjdHVyZSkgZHJpdmVycy4gTXkgZmlyc3QgdGhvdWdodCBpcyB0byB0cmFjZSB0aGUgaW5zdGFudGlhdGlvbi4gSSYjMzk7bGwgbmVlZCB0byBmaWd1cmUgb3V0IHdoZXJlIHRoZXNlIGFyZSBjb21pbmcgZnJvbS4gVGhlIGJlc3QgcGxhY2UgdG8gc3RhcnQgaXMgdG8gc2VhcmNoIGZvciB0aGVzZSB0d28gc3ltYm9scyBkaXJlY3RseSwgdG8gc2VlIHdoZXJlIHRoZXkgYXJlIGJlaW5nIHVzZWQuCgpUaGVuLCBJJiMzOTtsbCBzd2l0Y2ggZ2VhcnMgYW5kIGxvb2sgd2l0aGluIHRoZSBgZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9gIGRpcmVjdG9yeS4gVGhhdCYjMzk7cyB0aGUgb2J2aW91cyBwbGFjZSwgc2luY2UgdGhlIHRleHQgZ2l2ZXMgbWUgYSBzdHJvbmcgaGludC4gSSYjMzk7bGwgYmUgbG9va2luZyBmb3IgYW55IHByb2JlIGZ1bmN0aW9ucywgb3IgZHJpdmVyIHJlZ2lzdHJhdGlvbiByb3V0aW5lcy4gVGhhdCBzaG91bGQgZ2l2ZSBtZSB0aGUgY29ubmVjdGlvbiBiZXR3ZWVuIHRoZSBoYXJkd2FyZSBhbmQgdGhlIGRyaXZlcnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDcgMTg6MjA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bW9kdWxlXy4qZHJpdmVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL2xhbnRpcSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jPTUxMT1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBnc3dpcF9kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy01MjAtXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjUyMTptb2R1bGVfcGxhdGZvcm1fZHJpdmVyKGdzd2lwX2RyaXZlcik7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTUyMi1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL214bC1nc3cxeHguYz05Mjc9c3RhdGljIHN0cnVjdCBtZGlvX2RyaXZlciBnc3cxeHhfZHJpdmVyID0ge1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbXhsLWdzdzF4eC5jLTkzNi1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbXhsLWdzdzF4eC5jOjkzNzptZGlvX21vZHVsZV9kcml2ZXIoZ3N3MXh4X2RyaXZlcik7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL214bC1nc3cxeHguYy05MzgtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDcgMTg6MjA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjUyNzIKCQkJCQkJCW91dHB1dDogNDgKCQkJCQkJCXRob3VnaHRzOiA1NjgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiBXb3J0aEZ1enppbmcgZm9yIE5ldHdvcmsgU3dpdGNoIERyaXZlcnMqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGludmVzdGlnYXRlIGBteGwtZ3N3MXh4LmNgIGFuZCBgbGFudGlxX2dzd2lwLmNgLiBGcm9tIG15IGtub3dsZWRnZSwgYGdzd2lwX2RyaXZlcmAgaXMgYSBgcGxhdGZvcm1fZHJpdmVyYCBkZXNpZ25lZCBmb3IgTGFudGlxIHhyeDIwMC94cngzMDAgU29Dcywgd2hpY2ggYXJlIE1JUFMtYmFzZWQuIE9uIHRoZSBvdGhlciBoYW5kLCBgZ3N3MXh4X2RyaXZlcmAgaXMgYW4gYG1kaW9fZHJpdmVyYCByZXNwb25zaWJsZSBmb3IgbWFuYWdpbmcgTWF4TGluZWFyIEdTVzF4eCBFdGhlcm5ldCBzd2l0Y2hlcyBjb25uZWN0ZWQgdGhyb3VnaCBhbiBNRElPIGJ1cy4KClRoZSBjcnVjaWFsIHF1ZXN0aW9uIGltbWVkaWF0ZWx5IGFyaXNlczogY2FuIHRoZXNlIERTQSBzd2l0Y2hlcywgTURJTyBkcml2ZXJzLCBvciBwbGF0Zm9ybSBkcml2ZXJzIGJlIGVmZmVjdGl2ZWx5IGVtdWxhdGVkIG9yIGluc3RhbnRpYXRlZCB3aXRoaW4gYSBzdGFuZGFyZCBzeXprYWxsZXIgb3IgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgbGlrZSBRRU1VIHg4Nl82ND8gVGhpcyBpcyB0aGUga2V5IHRvIGRldGVybWluaW5nIGlmIHRoZXkmIzM5O3JlICYjMzQ7V29ydGhGdXp6aW5nJiMzNDsuCgpNeSBuZXh0IHN0ZXAgaXMgdG8gY29uc3VsdCB0aGUgZnV6emluZyBndWlkZWxpbmVzLCBzcGVjaWZpY2FsbHkgc2VjdGlvbnMgMiBhbmQgMy4gU2VjdGlvbiAyIG91dGxpbmVzIHRoZSBuZWdhdGl2ZSBjcml0ZXJpYSwgdGhlIHNpdHVhdGlvbnMgd2hlcmUgd2UgKmRvbiYjMzk7dCogcmV0dXJuIGBXb3J0aEZ1enppbmc9dHJ1ZWAuIEl0IHN0YXRlcyB0aGF0IGNvZGUgcGF0aHMgYXJlIG5vdCB3b3J0aCBmdXp6aW5nIGlmIHRoZXkgaW52b2x2ZToKCiogICBOb24ta2VybmVsIGFuZCBub24tZXhlY3V0YWJsZSBjaGFuZ2VzLAoqICAgU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlIC0gd2hpY2ggaW5jbHVkZXMgdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoZXMsIFNtYXJ0TklDcywgR1BVIGRyaXZlcnMgKGxpa2UgbWx4c3csIHBkc19jb3JlLCBxZWQsIGlvbmljLCBhbWRncHUpIHRoYXQgbmVlZCBwaHlzaWNhbCBBU0lDL1BDSWUgY2FyZHMgdGhhdCBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuIEl0IGFsc28gaW5jbHVkZXMgY29kZSBwYXRocyB1bmlxdWUgdG8gYXJjaGl0ZWN0dXJlcyBvdGhlciB0aGFuIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLgoqICAgVW5yZWFjaGFibGUgZXhlY3V0aW9uIHBhdGhzLgoKU2VjdGlvbiAzLCBjb252ZXJzZWx5LCBzcGVsbHMgb3V0IHdoZW4gd2UgKmRvKiByZXR1cm4gYFdvcnRoRnV6emluZz10cnVlYC4gQmFzaWNhbGx5LCBhbnkgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSBpcyBvZiBpbnRlcmVzdCwgaW5jbHVkaW5nIGNvZGUgZm9yIGNvcmUgc3Vic3lzdGVtcywgcmVmYWN0b3JpbmdzLCBjb2RlIGNsZWFudXBzLCBydW50aW1lIGFzc2VydGlvbnMsIGRlZmVuc2l2ZSBjaGVja3MsIGFuZCByZWFjaGFibGUgZHJpdmVycyBhbmQgcHJvdG9jb2xzIHN1Y2ggYXMgdGhvc2UgYWNjZXNzaWJsZSB2aWEgdmlydHVhbCBidXNlcyBsaWtlIHZpcnRpbywgVVNCIGdhZGdldCwgbG9vcGJhY2ssIG5ldGxpbmssIGJpbmRlciwgb3Igc29ja2V0cy4KClNvLCBoZXJlJiMzOTtzIG15IHBpdm90YWwgcXVlc3Rpb246IGFyZSB0aGVzZSBNRElPIGFuZCBwbGF0Zm9ybSBzd2l0Y2ggZHJpdmVycyBmb3IgdGhlIExhbnRpcSBTb0MgYW5kIHRoZSBNYXhMaW5lYXIgR1NXMXh4IGFjY2Vzc2libGUgd2l0aGluIGEgc3RhbmRhcmQgc3l6a2FsbGVyIHNldHVwIHJ1bm5pbmcgb24gYW1kNjQgaW4gUUVNVT8KClRvIGRldGVybWluZSB0aGlzLCBJIG5lZWQgdG8gY2hlY2sgd2hldGhlciB0aGUgTURJTyBvciBwbGF0Zm9ybSBkcml2ZXJzIGNhbiBiZSBwcm9iZWQgc3VjY2Vzc2Z1bGx5IHdpdGhvdXQgdGhlIHByZXNlbmNlIG9mIHBoeXNpY2FsIG9yIGRldmljZS10cmVlIChPRikgZGV2aWNlcy4gTG9va2luZyBhdCBgbGFudGlxX2dzd2lwLmNgLCBzcGVjaWZpY2FsbHkgYGdzd2lwX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpYCwgaXQgc2VlbXMgdG8gcmVxdWlyZSBhIGRldmljZSB0cmVlIG5vZGUgb3IgYSBwbGF0Zm9ybSBkZXZpY2UgZm9yIGVpdGhlciBgbGFudGlxLHhyeDIwMC1nc3dpcGAgb3IgYGxhbnRpcSx4cngzMDAtZ3N3aXBgLiBUaGlzIGlzIGEgaHVyZGxlLiBUaGVuIGluIGBteGwtZ3N3MXh4LmNgLCB0aGUgYGdzdzF4eF9wcm9iZShzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpYCBmdW5jdGlvbiBuZWVkcyB0byBiZSBjaGVja2VkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNyAxODoyMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2RzYS9sYW50aXEvbXhsLWdzdzF4eC5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogODYwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDgwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyA4NjA6XHRcdC5wY2VfbWljcm9jb2RlX3NpemVcdD0gQVJSQVlfU0laRShnc3cxeHhfcGNlX21pY3JvY29kZSksXG4gODYxOlx0XHQudGFnX3Byb3RvY29sXHRcdD0gRFNBX1RBR19QUk9UT19NWExfR1NXMVhYLFxuIDg2MjpcdH07XG4gODYzOlx0XG4gODY0Olx0c3RhdGljIGNvbnN0IHN0cnVjdCBnc3dpcF9od19pbmZvIGdzdzE0MV9kYXRhID0ge1xuIDg2NTpcdFx0Lm1heF9wb3J0c1x0XHQ9IEdTVzFYWF9QT1JUUyxcbiA4NjY6XHRcdC5hbGxvd2VkX2NwdV9wb3J0c1x0PSBCSVQoR1NXMVhYX01JSV9QT1JUKSB8IEJJVChHU1cxWFhfU0dNSUlfUE9SVCksXG4gODY3Olx0XHQubWlpX2NmZyA9IHtcbiA4Njg6XHRcdFx0WzAgLi4uIEdTVzFYWF9NSUlfUE9SVCAtIDFdID0gLTEsXG4gODY5Olx0XHRcdFtHU1cxWFhfTUlJX1BPUlRdID0gR1NXSVBfTUlJX0NGR3AoMCksXG4gODcwOlx0XHRcdFtHU1cxWFhfTUlJX1BPUlQgJiM0MzsgMSAuLi4gR1NXSVBfTUFYX1BPUlRTIC0gMV0gPSAtMSxcbiA4NzE6XHRcdH0sXG4gODcyOlx0XHQubWlpX3BjZHUgPSB7XG4gODczOlx0XHRcdFswIC4uLiBHU1cxWFhfTUlJX1BPUlQgLSAxXSA9IC0xLFxuIDg3NDpcdFx0XHRbR1NXMVhYX01JSV9QT1JUXSA9IEdTV0lQX01JSV9QQ0RVMCxcbiA4NzU6XHRcdFx0W0dTVzFYWF9NSUlfUE9SVCAmIzQzOyAxIC4uLiBHU1dJUF9NQVhfUE9SVFMgLSAxXSA9IC0xLFxuIDg3NjpcdFx0fSxcbiA4Nzc6XHRcdC5tYWNfc2VsZWN0X3Bjc1x0XHQ9IGdzdzF4eF9waHlsaW5rX21hY19zZWxlY3RfcGNzLFxuIDg3ODpcdFx0LnBoeWxpbmtfZ2V0X2NhcHNcdD0gZ3N3MXh4X3BoeWxpbmtfZ2V0X2NhcHMsXG4gODc5Olx0XHQucG9ydF9zZXR1cFx0XHQ9IGdzdzF4eF9wb3J0X3NldHVwLFxuIDg4MDpcdFx0LnBjZV9taWNyb2NvZGVcdFx0PSBcdTAwMjZnc3cxeHhfcGNlX21pY3JvY29kZSxcbiA4ODE6XHRcdC5wY2VfbWljcm9jb2RlX3NpemVcdD0gQVJSQVlfU0laRShnc3cxeHhfcGNlX21pY3JvY29kZSksXG4gODgyOlx0XHQudGFnX3Byb3RvY29sXHRcdD0gRFNBX1RBR19QUk9UT19NWExfR1NXMVhYLFxuIDg4MzpcdH07XG4gODg0Olx0XG4gODg1Olx0c3RhdGljIGNvbnN0IHN0cnVjdCBnc3dpcF9od19pbmZvIGdzdzE1MF9kYXRhID0ge1xuIDg4NjpcdFx0Lm1heF9wb3J0c1x0XHQ9IEdTVzE1MF9QT1JUUyxcbiA4ODc6XHRcdC5hbGxvd2VkX2NwdV9wb3J0c1x0PSBCSVQoNSkgfCBCSVQoNiksXG4gODg4Olx0XHQubWlpX2NmZyA9IHtcbiA4ODk6XHRcdFx0WzAgLi4uIDRdID0gLTEsXG4gODkwOlx0XHRcdFs1XSA9IDAsXG4gODkxOlx0XHRcdFs2XSA9IDEwLFxuIDg5MjpcdFx0fSxcbiA4OTM6XHRcdC5taWlfcGNkdSA9IHtcbiA4OTQ6XHRcdFx0WzAgLi4uIDRdID0gLTEsXG4gODk1Olx0XHRcdFs1XSA9IDEsXG4gODk2Olx0XHRcdFs2XSA9IDExLFxuIDg5NzpcdFx0fSxcbiA4OTg6XHRcdC5waHlsaW5rX2dldF9jYXBzXHQ9IGdzdzE1MF9waHlsaW5rX2dldF9jYXBzLFxuIDg5OTpcdFx0LyogVGhlcmUgaXMgb25seSBhIHNpbmdsZSBSR01JSV9TTEVXX0NGRyByZWdpc3RlciBpbiBHU1cxNTAgYW5kIGl0IGlzXG4gOTAwOlx0XHQgKiB1bmtub3duIGlmIFJHTUlJIHNsZXcgY29uZmlndXJhdGlvbiBhZmZlY3RzIGJvdGggUkdNSUkgcG9ydHNcbiA5MDE6XHRcdCAqIG9yIG9ubHkgcG9ydCA1LiBVc2UgLnBvcnRfc2V0dXAgd2hpY2ggYXNzdW1lcyBpdCBhZmZlY3RzIHBvcnQgNVxuIDkwMjpcdFx0ICogZm9yIG5vdy5cbiA5MDM6XHRcdCAqL1xuIDkwNDpcdFx0LnBvcnRfc2V0dXBcdFx0PSBnc3cxeHhfcG9ydF9zZXR1cCxcbiA5MDU6XHRcdC5wY2VfbWljcm9jb2RlXHRcdD0gXHUwMDI2Z3N3MXh4X3BjZV9taWNyb2NvZGUsXG4gOTA2Olx0XHQucGNlX21pY3JvY29kZV9zaXplXHQ9IEFSUkFZX1NJWkUoZ3N3MXh4X3BjZV9taWNyb2NvZGUpLFxuIDkwNzpcdFx0LnRhZ19wcm90b2NvbFx0XHQ9IERTQV9UQUdfUFJPVE9fTVhMX0dTVzFYWCxcbiA5MDg6XHR9O1xuIDkwOTpcdFxuIDkxMDpcdC8qXG4gOTExOlx0ICogR1NXMTI1IGlzIHRoZSBpbmR1c3RyaWFsIHRlbXBlcmF0dXJlIHZlcnNpb24gb2YgR1NXMTIwLlxuIDkxMjpcdCAqIEdTVzE0NSBpcyB0aGUgaW5kdXN0cmlhbCB0ZW1wZXJhdHVyZSB2ZXJzaW9uIG9mIEdTVzE0MC5cbiA5MTM6XHQgKi9cbiA5MTQ6XHRzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBnc3cxeHhfb2ZfbWF0Y2hbXSA9IHtcbiA5MTU6XHRcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDtpbnRlbCxnc3cxNTBcJiMzNDssIC5kYXRhID0gXHUwMDI2Z3N3MTUwX2RhdGEgfSxcbiA5MTY6XHRcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDtsYW50aXEscGViNzA4NFwmIzM0OywgLmRhdGEgPSBcdTAwMjZnc3cxNTBfZGF0YSB9LFxuIDkxNzpcdFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O21heGxpbmVhcixnc3cxMjBcJiMzNDssIC5kYXRhID0gXHUwMDI2Z3N3MTJ4X2RhdGEgfSxcbiA5MTg6XHRcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDttYXhsaW5lYXIsZ3N3MTI1XCYjMzQ7LCAuZGF0YSA9IFx1MDAyNmdzdzEyeF9kYXRhIH0sXG4gOTE5Olx0XHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7bWF4bGluZWFyLGdzdzE0MFwmIzM0OywgLmRhdGEgPSBcdTAwMjZnc3cxNDBfZGF0YSB9LFxuIDkyMDpcdFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O21heGxpbmVhcixnc3cxNDFcJiMzNDssIC5kYXRhID0gXHUwMDI2Z3N3MTQxX2RhdGEgfSxcbiA5MjE6XHRcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDttYXhsaW5lYXIsZ3N3MTQ1XCYjMzQ7LCAuZGF0YSA9IFx1MDAyNmdzdzE0MF9kYXRhIH0sXG4gOTIyOlx0XHR7IC8qIHNlbnRpbmVsICovIH0sXG4gOTIzOlx0fTtcbiA5MjQ6XHRcbiA5MjU6XHRNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBnc3cxeHhfb2ZfbWF0Y2gpO1xuIDkyNjpcdFxuIDkyNzpcdHN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgZ3N3MXh4X2RyaXZlciA9IHtcbiA5Mjg6XHRcdC5wcm9iZVx0XHQ9IGdzdzF4eF9wcm9iZSxcbiA5Mjk6XHRcdC5yZW1vdmVcdFx0PSBnc3cxeHhfcmVtb3ZlLFxuIDkzMDpcdFx0LnNodXRkb3duXHQ9IGdzdzF4eF9zaHV0ZG93bixcbiA5MzE6XHRcdC5tZGlvZHJ2LmRyaXZlclx0PSB7XG4gOTMyOlx0XHRcdC5uYW1lID0gXCYjMzQ7bXhsLWdzdzF4eFwmIzM0OyxcbiA5MzM6XHRcdFx0Lm9mX21hdGNoX3RhYmxlID0gZ3N3MXh4X29mX21hdGNoLFxuIDkzNDpcdFx0fSxcbiA5MzU6XHR9O1xuIDkzNjpcdFxuIDkzNzpcdG1kaW9fbW9kdWxlX2RyaXZlcihnc3cxeHhfZHJpdmVyKTtcbiA5Mzg6XHRcbiA5Mzk6XHRNT0RVTEVfQVVUSE9SKFwmIzM0O0RhbmllbCBHb2xsZSBcdTAwM2NkYW5pZWxAbWFrcm90b3BpYS5vcmdcdTAwM2VcJiMzNDspO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNyAxODoyMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyODE1MwoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDI5NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBJbml0aWFsIEFzc2Vzc21lbnQgb2YgdGhlIERyaXZlciBMYW5kc2NhcGUqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGludG8gdGhlIHBvc3NpYmlsaXR5IG9mIHdvcmtpbmcgd2l0aCB0aGVzZSBzd2l0Y2ggZHJpdmVycyDigJMgc3BlY2lmaWNhbGx5IGBteGwtZ3N3MXh4YCBhbmQgYGxhbnRpcV9nc3dpcGAg4oCTIHdpdGhvdXQgbmVjZXNzYXJpbHkgaGF2aW5nIHRoZSAqYWN0dWFsKiBoYXJkd2FyZSBwcmVzZW50IG9yIGEgZGV2aWNlIHRyZWUgY29uZmlndXJlZC4gVGhlIGZpcnN0IHRoaW5nIEkmIzM5O20gZG9pbmcgaXMgc2VlaW5nIGlmIHRoZXJlJiMzOTtzIGFueSBtZWNoYW5pc20sIGV2ZW4gYSB2aXJ0dWFsIG9uZSwgdG8gaW5zdGFudGlhdGUgdGhlbS4gQ2FuIEkgY3JlYXRlIGFuIE1ESU8gYnVzIG9yIHRyaWdnZXIgdGhlaXIgbG9hZGluZyBpbiBhIG1vcmUgYWJzdHJhY3Qgd2F5PyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpZiB0aGV5JiMzOTtyZSBjb21wbGV0ZWx5IGhhcmR3YXJlLWJvdW5kLgoKTm93LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHdoYXQgbWFrZXMgdGhlc2UgZHJpdmVycyB0aWNrLiBJIHNlZSB0aGF0IGBteGwtZ3N3MXh4YCBzZWVtcyBwcmV0dHkgdGlnaHRseSBjb3VwbGVkIHRvIHRoZSBkZXZpY2UgdHJlZSwgdXNpbmcgYW4gYG9mX21hdGNoX3RhYmxlYCBjYWxsZWQgYGdzdzF4eF9vZl9tYXRjaGAuIEl0IGV4cGVjdHMgYW4gTURJTyBidXMsIGFuZCBpdCBsb29rcyBsaWtlIGl0JiMzOTtzIGRlc2lnbmVkIGZvciByZWFsLXdvcmxkIE1heExpbmVhciBvciBJbnRlbCBzd2l0Y2ggSUNzLiBUaGVuIHRoZXJlJiMzOTtzIGBsYW50aXFfZ3N3aXBgLCB3aGljaCBhbHNvIHJlbGllcyBvbiB0aGUgZGV2aWNlIHRyZWUsIG1hdGNoaW5nIHNwZWNpZmljIExhbnRpcSBNSVBTIFNvQyBwbGF0Zm9ybSBidXNlczogYGxhbnRpcSx4cngyMDAtZ3N3aXBgIGFuZCBgbGFudGlxLHhyeDMwMC1nc3dpcGAuIFRoaXMgY29uZmlybXMgbXkgaW5pdGlhbCBzdXNwaWNpb24gLSBpdCYjMzk7cyBsb29raW5nIGxpa2UgdGhlc2UgZHJpdmVycyBhcmUgZ29pbmcgdG8gYmUgdGllZCB0byBhIHNwZWNpZmljIGhhcmR3YXJlIGNvbmZpZ3VyYXRpb24uCgpOZXh0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgaW1wYWN0IG9mIHRoZSBjaGFuZ2VzIGluIHRoaXMgY29tbWl0LiBJJiMzOTt2ZSBub3RlZCB0aHJlZSBrZXkgYXJlYXM6IGEgbWFjcm8sIGBHU1dJUF9NRElPX1BIWV9GQ09OVFhfRU4gMHgwMDgwYCwgZGVmaW5lZCBpbiBgbGFudGlxX2dzd2lwLmhgLCB0aGUgYGdzd2lwX3BvcnRfc2V0X3NwZWVkYCBmdW5jdGlvbiBpbiBgbGFudGlxX2dzd2lwX2NvbW1vbi5jYCwgYW5kIGBnc3cxeHhfcGNzX2NvbmZpZ2AgaW4gYG14bC1nc3cxeHguY2AuIEkgbmVlZCB0byBmaWd1cmUgb3V0IGhvdyB0aGVzZSBmdW5jdGlvbnMgYWZmZWN0IHRoZSBiaWdnZXIgcGljdHVyZS4KCkZpbmFsbHksIEkmIzM5O2xsIG5lZWQgdG8gdHJhY2Ugd2hlcmUgdGhlIGBnc3dpcF9wb3J0X3NldF9zcGVlZGAgZnVuY3Rpb24gaXMgY2FsbGVkIHdpdGhpbiBgbGFudGlxX2dzd2lwX2NvbW1vbi5jYC4gVGhpcyB3aWxsIGdpdmUgbWUgYSBiZXR0ZXIgdW5kZXJzdGFuZGluZyBvZiB0aGUgZHJpdmVyJiMzOTtzIGV4ZWN1dGlvbiBmbG93IGFuZCB3aGV0aGVyIG9yIG5vdCBpdCYjMzk7cyBwb3NzaWJsZSB0byAmIzM0O3RyaWNrJiMzNDsgaXQgaW50byBiZWhhdmluZyB3aXRob3V0IHRoZSBoYXJkd2FyZSBpdCBleHBlY3RzLiBVbmRlcnN0YW5kaW5nIHRoaXMgY2FsbCBjaGFpbiBpcyBrZXkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA3IDE4OjIwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2dzd2lwX3BvcnRfc2V0X3NwZWVkJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL2xhbnRpcSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYz0xMzAwPXN0YXRpYyB2b2lkIGdzd2lwX3BvcnRfc2V0X2xpbmsoc3RydWN0IGdzd2lwX3ByaXYgKnByaXYsIGludCBwb3J0LCBib29sIGxpbmspXG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMTMxMi1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjEzMTM6c3RhdGljIHZvaWQgZ3N3aXBfcG9ydF9zZXRfc3BlZWQoc3RydWN0IGdzd2lwX3ByaXYgKnByaXYsIGludCBwb3J0LCBpbnQgc3BlZWQsXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0xMzE0LVx0XHRcdFx0IHBoeV9pbnRlcmZhY2VfdCBpbnRlcmZhY2UpXG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM9MTQ3MT1zdGF0aWMgdm9pZCBnc3dpcF9waHlsaW5rX21hY19saW5rX3VwKHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTE0ODMtXHRcdGdzd2lwX3BvcnRfc2V0X2xpbmsocHJpdiwgcG9ydCwgdHJ1ZSk7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzoxNDg0Olx0XHRnc3dpcF9wb3J0X3NldF9zcGVlZChwcml2LCBwb3J0LCBzcGVlZCwgaW50ZXJmYWNlKTtcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTE0ODUtXHRcdGdzd2lwX3BvcnRfc2V0X2R1cGxleChwcml2LCBwb3J0LCBkdXBsZXgpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNyAxODoyMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyOTM3MwoJCQkJCQkJb3V0cHV0OiAxMTIKCQkJCQkJCXRob3VnaHRzOiA1MDEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudDogVGhpcyBDb2RlIGlzIFVuZnV6emFibGUqKgoKT2theSwgaGVyZSYjMzk7cyB0aGUgYnJlYWtkb3duIG9mIG15IHRoaW5raW5nLiBUaGlzIHBhdGNoIGlzIGZvY3VzZWQgc29sZWx5IG9uIGBkcml2ZXJzL25ldC9kc2EvbGFudGlxL2AgYW5kIHRoZSBhc3NvY2lhdGVkIGZpbGVzOiBgbGFudGlxX2dzd2lwLmhgLCBgbGFudGlxX2dzd2lwX2NvbW1vbi5jYCwgYW5kIGBteGwtZ3N3MXh4LmNgLiBUaGVzZSBhcmUgaGFyZHdhcmUgZHJpdmVycy4gU3BlY2lmaWNhbGx5LCB0aGV5JiMzOTtyZSBmb3IgTGFudGlxIFZSWDIwMC94UlgzMDAgU29DcyBhbmQgTWF4TGluZWFyIEdTVzF4eCBFdGhlcm5ldCBzd2l0Y2ggY2hpcHMsIGFuZCB0aGV5IGNvbW11bmljYXRlIHZpYSBNRElPLiBJIGtub3cgdGhvc2UgZGV2aWNlcyDigJMgdGhleSByZXF1aXJlIHZlcnkgc3BlY2lmaWMsIGFjdHVhbCBoYXJkd2FyZTogZWl0aGVyIHRoZSBTb0MmIzM5O3MgTWVtb3J5LU1hcHBlZCBJL08gb3IgdGhlIE1ESU8tY29ubmVjdGVkIHN3aXRjaCBjaGlwcy4gVGhleSBhbHNvIG5lZWQgRGV2aWNlIFRyZWUgbm9kZXMgbGlrZSBgbGFudGlxLHhyeDIwMC1nc3dpcGAgb3IgYG1heGxpbmVhcixnc3cxMjBgIHRvIGZ1bmN0aW9uLgoKVGhlIGtleSBwb2ludCBoZXJlIGlzIHRoYXQgKm5vbmUqIG9mIHRoaXMgaGFyZHdhcmUgaXMgZW11bGF0ZWQgaW4gYSBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBsaWtlIFFFTVUgb24geDg2XzY0IG9yIGFtZDY0LiBUaGF0IG1lYW5zIHRoaXMgY29kZSBpcyBpbmhlcmVudGx5ICpzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUqIGZvciBzdGFuZGFyZCBmdXp6aW5nLgoKSSYjMzk7bSBkb3VibGUtY2hlY2tpbmcgdGhlIGRlZmluaXRpb24gb2Ygc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlIGluIHRoZSBndWlkZWxpbmVzLiBUaGV5IHN0YXRlIHRoYXQgdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoZXMsIFNtYXJ0TklDcywgb3IgR1BVIGRyaXZlcnMgYXJlIG9mZi1saW1pdHMgYmVjYXVzZSB0aGV5IHJlcXVpcmUgcGh5c2ljYWwgQVNJQ3Mgb3IgUENJZSBjYXJkcyBub3Qgc2ltdWxhdGVkIGluIFFFTVUuIFRoYXQmIzM5O3MgKmV4YWN0bHkqIHdoYXQgdGhpcyBpczogYSB2ZW5kb3Itc3BlY2lmaWMgZHJpdmVyIHRpZWQgdG8gc3BlY2lmaWMsIHJlYWwgaGFyZHdhcmUuIFRoZW4gdGhlIGd1aWRlbGluZXMgZ28gb24gdG8gaGlnaGxpZ2h0IHRoYXQgcmVhY2hhYmlsaXR5IGlzIHRoZSBwcmltYXJ5IGdhdGUgYW5kIHRoYXQgZnV6emluZyBjYW4gb25seSBkaXNjb3ZlciBidWdzIGluIGNvZGUgdGhhdCYjMzk7cyBleGVjdXRhYmxlIGluIHN0YW5kYXJkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLiBJZiB0aGUgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUsIHdlIHNob3VsZG4mIzM5O3QgZXZlbiBhdHRlbXB0IHRvIGZ1enogaXQsIGV2ZW4gaWYgaXQgaGFzIGFzc2VydGlvbnMgb3IgY29tcGxleCBsb2dpYy4KClNvLCAqV29ydGhGdXp6aW5nKiBoYXMgdG8gYmUgYGZhbHNlYC4KCkxldCBtZSBxdWlja2x5IGNvbmZpcm0gdGhlIHBhcmFtZXRlcnM6CgoqICAgKldvcnRoRnV6emluZyo6IERlZmluaXRlbHkgYGZhbHNlYC4KKiAgICpGb2N1c1N5bWJvbHMqOiBFbXB0eSBsaXN0IOKAkyBub3RoaW5nIHRvIGZvY3VzIG9uIGhlcmUuCiogICAqRW5hYmxlQ29uZmlncyo6IEVtcHR5IGxpc3Qg4oCTIG5vIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBuZWVkZWQuCiogICAqUmVhc29uaW5nKjogVGhlIGRyaXZlcnMgbW9kaWZ5IExhbnRpcSBHU1dJUCBhbmQgTWF4TGluZWFyIEdTVzF4eCBFdGhlcm5ldCBzd2l0Y2hlcyB3aXRoaW4gYGRyaXZlcnMvbmV0L2RzYS9sYW50aXEvYC4gVGhleSBuZWVkIHNwZWNpZmljLCByZWFsIE1ESU8vU29DIHN3aXRjaGVzLCBhbmQgdGhvc2UgYXJlIHNpbXBseSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciBvdGhlciB2aXJ0dWFsIGVudmlyb25tZW50cyB3ZSYjMzk7ZCBiZSB1c2luZyBvbiBhbWQ2NCwgbWVhbmluZyB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuIFRoZXJlZm9yZSwgbm8gZnV6emluZy4KCkFscmlnaHQsIEkmIzM5O20gZ29pbmcgdG8gZ28gYWhlYWQgYW5kIGludm9rZSBgc2V0LXJlc3VsdHNgLiBUaGlzIHBhdGNoIGlzbiYjMzk7dCBzdWl0YWJsZSBmb3IgZnV6emluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDcgMTg6MjA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBtb2RpZmllZCBjb2RlIGlzIGxvY2F0ZWQgaW4gZHJpdmVycy9uZXQvZHNhL2xhbnRpcS8gKExhbnRpcSBHU1dJUCAvIE1heExpbmVhciBHU1cxeHggRXRoZXJuZXQgc3dpdGNoIGRyaXZlcnMpLCB3aGljaCBjb250cm9sIHNwZWNpZmljIHBoeXNpY2FsIHN3aXRjaCBoYXJkd2FyZSAodmlhIE1ESU8vU29DIHBsYXRmb3JtIE1NSU8pIGRlZmluZWQgaW4gRGV2aWNlIFRyZWUgYW5kIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVSBhbWQ2NCkuIFRoZSBjaGFuZ2VzIGFyZSBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBtb2RpZmllZCBjb2RlIGlzIGxvY2F0ZWQgaW4gZHJpdmVycy9uZXQvZHNhL2xhbnRpcS8gKExhbnRpcSBHU1dJUCAvIE1heExpbmVhciBHU1cxeHggRXRoZXJuZXQgc3dpdGNoIGRyaXZlcnMpLCB3aGljaCBjb250cm9sIHNwZWNpZmljIHBoeXNpY2FsIHN3aXRjaCBoYXJkd2FyZSAodmlhIE1ESU8vU29DIHBsYXRmb3JtIE1NSU8pIGRlZmluZWQgaW4gRGV2aWNlIFRyZWUgYW5kIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVSBhbWQ2NCkuIFRoZSBjaGFuZ2VzIGFyZSBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNyAxODoyMDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+SWY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDktMDdUMTg6MTk6NDIuMzUxMjg3MTY3WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTQ2Nzg0MDQyMDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJcIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBtb2RpZmllZCBjb2RlIGlzIGxvY2F0ZWQgaW4gZHJpdmVycy9uZXQvZHNhL2xhbnRpcS8gKExhbnRpcSBHU1dJUCAvIE1heExpbmVhciBHU1cxeHggRXRoZXJuZXQgc3dpdGNoIGRyaXZlcnMpLCB3aGljaCBjb250cm9sIHNwZWNpZmljIHBoeXNpY2FsIHN3aXRjaCBoYXJkd2FyZSAodmlhIE1ESU8vU29DIHBsYXRmb3JtIE1NSU8pIGRlZmluZWQgaW4gRGV2aWNlIFRyZWUgYW5kIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVSBhbWQ2NCkuIFRoZSBjaGFuZ2VzIGFyZSBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wN1QxODoxOTo0Mi4zNTEyOTEyOTdaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyNzY5OTcxODMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCAyYzg3NzE4YjU1NjYxNTk0YTBjMzgzZGY3NTc5Nzk4MzBiNzlmZTZhXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBNb24gU2VwIDcgMTg6MTk6NDAgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaCBiL2RyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmhcXG5pbmRleCBiYzM2ODZmYWFkMGQ2Li4wYjc1YmUxNGRjMTA5IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmhcXG4rKysgYi9kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oXFxuQEAgLTQyLDcgKzQyLDcgQEBcXG4gI2RlZmluZSAgR1NXSVBfTURJT19QSFlfRkRVUF9ESVNcXHQweDA2MDBcXG4gI2RlZmluZSAgR1NXSVBfTURJT19QSFlfRkNPTlRYX01BU0tcXHQweDAxODBcXG4gI2RlZmluZSAgR1NXSVBfTURJT19QSFlfRkNPTlRYX0FVVE9cXHQweDAwMDBcXG4tI2RlZmluZSAgR1NXSVBfTURJT19QSFlfRkNPTlRYX0VOXFx0MHgwMTAwXFxuKyNkZWZpbmUgIEdTV0lQX01ESU9fUEhZX0ZDT05UWF9FTlxcdDB4MDA4MFxcbiAjZGVmaW5lICBHU1dJUF9NRElPX1BIWV9GQ09OVFhfRElTXFx0MHgwMTgwXFxuICNkZWZpbmUgIEdTV0lQX01ESU9fUEhZX0ZDT05SWF9NQVNLXFx0MHgwMDYwXFxuICNkZWZpbmUgIEdTV0lQX01ESU9fUEhZX0ZDT05SWF9BVVRPXFx0MHgwMDAwXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jIGIvZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmNcXG5pbmRleCAwZThlZWRmNjRkM2EzLi42MTUwZGMzZmZiNjQxIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jXFxuKysrIGIvZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmNcXG5AQCAtMTMzOSw2ICsxMzM5LDcgQEAgc3RhdGljIHZvaWQgZ3N3aXBfcG9ydF9zZXRfc3BlZWQoc3RydWN0IGdzd2lwX3ByaXYgKnByaXYsIGludCBwb3J0LCBpbnQgc3BlZWQsXFxuIFxcdFxcdGJyZWFrO1xcbiBcXG4gXFx0Y2FzZSBTUEVFRF8xMDAwOlxcbitcXHRjYXNlIFNQRUVEXzI1MDA6XFxuIFxcdFxcdG1kaW9fcGh5ID0gR1NXSVBfTURJT19QSFlfU1BFRURfRzE7XFxuIFxcbiBcXHRcXHRtaWlfY2ZnID0gR1NXSVBfTUlJX0NGR19SQVRFX00xMjU7XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9sYW50aXEvbXhsLWdzdzF4eC5jIGIvZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9teGwtZ3N3MXh4LmNcXG5pbmRleCBhMTEwNGIyZjkyYTkyLi5iOGQ4ZmVmYWEzYTE1IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2RzYS9sYW50aXEvbXhsLWdzdzF4eC5jXFxuKysrIGIvZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9teGwtZ3N3MXh4LmNcXG5AQCAtMzUyLDggKzM1MiwyMiBAQCBzdGF0aWMgaW50IGdzdzF4eF9wY3NfY29uZmlnKHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzLCB1bnNpZ25lZCBpbnQgbmVnX21vZGUsXFxuIFxcdC8qIG1hcmsgUENTIGNvbmZpZ3VyYXRpb24gYXMgaW5jb21wbGV0ZSAqL1xcbiBcXHRwcml2LVxcdTAwM2V0YmlfaW50ZXJmYWNlID0gUEhZX0lOVEVSRkFDRV9NT0RFX05BO1xcbiBcXG4tXFx0aWYgKCFyZWNvbmYpXFxuK1xcdGlmICghcmVjb25mKSB7XFxuK1xcdFxcdC8qIHNldHVwIFNlckRlcyBjbG9jayBzcGVlZCAqL1xcbitcXHRcXHRpZiAoaW50ZXJmYWNlID09IFBIWV9JTlRFUkZBQ0VfTU9ERV8yNTAwQkFTRVgpXFxuK1xcdFxcdFxcdG5jb19jdHJsID0gR1NXMVhYX1NHTUlJXzJHNSB8IEdTVzFYWF9TR01JSV8yRzVfTkNPMjtcXG4rXFx0XFx0ZWxzZVxcbitcXHRcXHRcXHRuY29fY3RybCA9IEdTVzFYWF9TR01JSV8xRyB8IEdTVzFYWF9TR01JSV8xR19OQ08xO1xcbitcXG4rXFx0XFx0cmV0ID0gcmVnbWFwX3VwZGF0ZV9iaXRzKHByaXYtXFx1MDAzZWNsaywgR1NXMVhYX0NMS19OQ09fQ1RSTCxcXG4rXFx0XFx0XFx0XFx0XFx0IEdTVzFYWF9TR01JSV9IU1BfTUFTSyB8XFxuK1xcdFxcdFxcdFxcdFxcdCBHU1cxWFhfU0dNSUlfU0VMLFxcbitcXHRcXHRcXHRcXHRcXHQgbmNvX2N0cmwpO1xcbitcXHRcXHRpZiAocmV0KVxcbitcXHRcXHRcXHRyZXR1cm4gcmV0O1xcbitcXG4gXFx0XFx0cmV0ID0gZ3N3MXh4X3Bjc19yZXNldChwcml2LCBpbnRlcmZhY2UpO1xcbitcXHR9XFxuIFxcbiBcXHRpZiAocmV0KVxcbiBcXHRcXHRyZXR1cm4gcmV0O1xcbkBAIC00MjMsMTkgKzQzNyw2IEBAIHN0YXRpYyBpbnQgZ3N3MXh4X3Bjc19jb25maWcoc3RydWN0IHBoeWxpbmtfcGNzICpwY3MsIHVuc2lnbmVkIGludCBuZWdfbW9kZSxcXG4gXFx0XFx0cmV0dXJuIHJldDtcXG4gXFxuIFxcdGlmICghcmVjb25mKSB7XFxuLVxcdFxcdC8qIHNldHVwIFNlckRlcyBjbG9jayBzcGVlZCAqL1xcbi1cXHRcXHRpZiAoaW50ZXJmYWNlID09IFBIWV9JTlRFUkZBQ0VfTU9ERV8yNTAwQkFTRVgpXFxuLVxcdFxcdFxcdG5jb19jdHJsID0gR1NXMVhYX1NHTUlJXzJHNSB8IEdTVzFYWF9TR01JSV8yRzVfTkNPMjtcXG4tXFx0XFx0ZWxzZVxcbi1cXHRcXHRcXHRuY29fY3RybCA9IEdTVzFYWF9TR01JSV8xRyB8IEdTVzFYWF9TR01JSV8xR19OQ08xO1xcbi1cXG4tXFx0XFx0cmV0ID0gcmVnbWFwX3VwZGF0ZV9iaXRzKHByaXYtXFx1MDAzZWNsaywgR1NXMVhYX0NMS19OQ09fQ1RSTCxcXG4tXFx0XFx0XFx0XFx0XFx0IEdTVzFYWF9TR01JSV9IU1BfTUFTSyB8XFxuLVxcdFxcdFxcdFxcdFxcdCBHU1cxWFhfU0dNSUlfU0VMLFxcbi1cXHRcXHRcXHRcXHRcXHQgbmNvX2N0cmwpO1xcbi1cXHRcXHRpZiAocmV0KVxcbi1cXHRcXHRcXHRyZXR1cm4gcmV0O1xcbi1cXG4gXFx0XFx0cmV0ID0gZ3N3MXh4X3Bjc19waHlfeGF1aV93cml0ZShwcml2LCAweDMwLCAweDgwKTtcXG4gXFx0XFx0aWYgKHJldClcXG4gXFx0XFx0XFx0cmV0dXJuIHJldDtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDdUMTg6MTk6NDMuNjI4OTg2OTQxWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiY29yZSIsIkR1cmF0aW9uIjo1MzQwMDY5Mjg1MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgbW9kaWZpZWQgY29kZSBpcyBsb2NhdGVkIGluIGRyaXZlcnMvbmV0L2RzYS9sYW50aXEvIChMYW50aXEgR1NXSVAgLyBNYXhMaW5lYXIgR1NXMXh4IEV0aGVybmV0IHN3aXRjaCBkcml2ZXJzKSwgd2hpY2ggY29udHJvbCBzcGVjaWZpYyBwaHlzaWNhbCBzd2l0Y2ggaGFyZHdhcmUgKHZpYSBNRElPL1NvQyBwbGF0Zm9ybSBNTUlPKSBkZWZpbmVkIGluIERldmljZSBUcmVlIGFuZCBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgKFFFTVUgYW1kNjQpLiBUaGUgY2hhbmdlcyBhcmUgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIgYW5kIHNlY3VyaXR5IGVuZ2luZWVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBldmFsdWF0ZSB3aGV0aGVyIGl0IHdhcnJhbnRzIGZ1enppbmcgd2l0aCBzeXprYWxsZXIuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIGludGVybmFsIGFzc3VtcHRpb25zLiBZb3UgbXVzdCBhY3RpdmVseSB1c2UgeW91ciBjb2RlIGFjY2Vzc1xudG9vbHMgdG8gaW5zcGVjdCB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlLCBjYWxsZXJzLCBhbmQgc3Vycm91bmRpbmcgY29udGV4dC5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjEuIENPUkUgVFJJQUdFIFBISUxPU09QSFlcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5UaGUgZ29hbCBvZiBwYXRjaCBmdXp6aW5nIGlzIHRvIGRpc2NvdmVyIGNyYXNoZXMsIHJlZ3Jlc3Npb25zLCBleHBvc2VkIGxhdGVudCBidWdzLFxuYW5kIG5ld2x5IHRyaWdnZXJlZCBhc3NlcnRpb25zIGludHJvZHVjZWQgYnkgdGhlIHBhdGNoIHNlcmllcy5cblxuLSBSRUFDSEFCSUxJVFkgSVMgVEhFIFBSSU1BUlkgR0FURTpcbiAgRnV6emluZyBjYW4gb25seSBkaXNjb3ZlciBidWdzIGluIGNvZGUgdGhhdCBjYW4gYWN0dWFsbHkgZXhlY3V0ZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZFxuICBlbnZpcm9ubWVudHMgKEdDRSBvciBRRU1VLCB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgZGV2aWNlcyBsaWtlIFVTQiBnYWRnZXRzLCBuZXRkZXYsIHR1bi90YXApLlxuICBJZiB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgKHNlZSBTZWN0aW9uIDIpLCBpdCBNVVNUIE5PVCBiZSBmdXp6ZWQsXG4gIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBpdCBhZGRzIGFzc2VydGlvbnMgb3IgY29tcGxleCBsb2dpYy5cblxuLSBETyBOT1QgQkxJTkRMWSBUUlVTVCBcIk5PIEZVTkNUSU9OQUwgQ0hBTkdFXCIgKE5GQ0kpIE9SIFwiUkVGQUNUT1JJTkdcIiBDTEFJTVM6XG4gIFBhdGNoIGF1dGhvcnMgcm91dGluZWx5IGxhYmVsIGNoYW5nZXMgYXMgXCJjbGVhbnVwc1wiLCBcInJlZmFjdG9yaW5nc1wiLCBvciBzdGF0ZVxuICBcIk5vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVkXCIuIERvIE5PVCB0YWtlIHRoZXNlIGNsYWltcyBhdCBmYWNlIHZhbHVlLlxuICBDb2RlIHJlZmFjdG9yaW5ncyB0aGF0IHJlYXJyYW5nZSBsb2dpYywgaW50cm9kdWNlIGhlbHBlciBmdW5jdGlvbnMsIG9yIGFsdGVyIHN0YXRlIG1hbmFnZW1lbnRcbiAgaW4gY29yZSBzdWJzeXN0ZW1zIGZyZXF1ZW50bHkgaW50cm9kdWNlIHN1YnRsZSBzZW1hbnRpYyBzaGlmdHMgb3IgdW5jb3ZlciBsYXRlbnQga2VybmVsIGJ1Z3MuXG4gIElmIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUgaXMgbW9kaWZpZWQgb3IgcmVmYWN0b3JlZCwgaXQgTVVTVCBiZSBmdXp6ZWQuXG5cbi0gTkVXIE9SIE1PRElGSUVEIEFTU0VSVElPTlMgSU4gUkVBQ0hBQkxFIENPREUgTVVTVCBCRSBGVVpaRUQ6XG4gIFdoZW4gYSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzIHJ1bnRpbWUgY2hlY2tzIG9yIGFzc2VydGlvbnMgKGUuZy4sIFdBUk5fT04qLCBWTV9XQVJOX09OKixcbiAgQlVHX09OKiwgbG9ja2RlcF9hc3NlcnQqKSBpbiByZWFjaGFibGUgY29kZSBwYXRocywgaXQgZW5mb3JjZXMgbmV3IG9yIHN0cmljdGVyIGludmFyaWFudHMuXG4gIEV2ZW4gaWYgdGhlIGF1dGhvciBiZWxpZXZlcyB0aGUgaW52YXJpYW50IGFsd2F5cyBob2xkcywgZnV6emluZyBpcyBlc3NlbnRpYWwgdG8gdmVyaWZ5IHdoZXRoZXJcbiAgYW4gdW51c3VhbCBzZXF1ZW5jZSBvZiBvcGVyYXRpb25zIGNhbiB2aW9sYXRlIGl0LlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuMi4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPWZhbHNlIChORUdBVElWRSBDUklURVJJQSlcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIE9OTFkgSUYgYWxsIG1vZGlmaWVkIGNvZGUgZmFsbHMgc3RyaWN0bHkgaW50byBvbmUgb3IgbW9yZSBvZiB0aGVzZSBjYXRlZ29yaWVzOlxuXG4tIE5vbi1rZXJuZWwgYW5kIG5vbi1leGVjdXRhYmxlIGNoYW5nZXM6XG4gICogTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgY29tbWVudHMsIG9yIHNwZWxsaW5nIGZpeGVzLlxuICAqIFVzZXItc3BhY2UgZGlyZWN0b3JpZXMsIHNlbGYtdGVzdHMsIHNhbXBsZXMsIG9yIHNjcmlwdHMgKGUuZy4sIHRvb2xzLywgc2FtcGxlcy8sIHNjcmlwdHMvLCB1c3IvKVxuICAgIHRoYXQgZG8gbm90IGFmZmVjdCB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlICh2bWxpbnV4KSBvciBrZXJuZWwgbW9kdWxlcy5cbiAgKiBQdXJlbHkgZGVjb3JhdGl2ZSBsb2dnaW5nIChlLmcuLCBtZXNzYWdlIHN0cmluZ3MgaW4gcHJfZXJyLCBwcmludGssIGRldl9pbmZvKSBvciB0cmFjZXBvaW50c1xuICAgIHRoYXQgZG8gbm90IGFsdGVyIGNvbnRyb2wgZmxvdyBvciBkYXRhIHN0cnVjdHVyZXMuXG4gICogQnVpbGQgc3lzdGVtIG9yIEtjb25maWcgY2hhbmdlcyB0aGF0IGRvIG5vdCBhbHRlciBjb21waWxlZCBDIGxvZ2ljLlxuLSBTdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaGFyZHdhcmU6XG4gICogVmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoZXMsIFNtYXJ0TklDcywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICAgIGlvbmljLCBhbWRncHUpIHJlcXVpcmluZyBwaHlzaWNhbCBBU0lDL1BDSWUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIFVucmVhY2hhYmxlIGV4ZWN1dGlvbiBwYXRoczpcbiAgKiBEcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzICgucmVtb3ZlLCAuc2h1dGRvd24sIHBjaV91bnJlZ2lzdGVyX2RyaXZlcikgZXhlY3V0ZWQgb25seSBkdXJpbmdcbiAgICBwaHlzaWNhbCBQQ0kgaG90LXVucGx1ZyBvciBtYW51YWwgc3lzZnMgZHJpdmVyIHVuYmluZGluZy5cbiAgKiBDb2RlIHBhdGhzIGV4Y2x1c2l2ZSB0byBhcmNoaXRlY3R1cmVzIG90aGVyIHRoYW4gdGhlIHRhcmdldCBhcmNoaXRlY3R1cmUuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4zLiBXSEVOIFRPIFJFVFVSTiBXb3J0aEZ1enppbmc9dHJ1ZSAoUE9TSVRJVkUgQ1JJVEVSSUEpXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuUmV0dXJuIFdvcnRoRnV6emluZz10cnVlIHdoZW5ldmVyIHRoZSBwYXRjaCB0b3VjaGVzIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUsIGluY2x1ZGluZzpcbi0gQ29yZSBTdWJzeXN0ZW1zOlxuICAqIEFueSBsb2dpYyBtb2RpZmljYXRpb25zIGluIG1lbW9yeSBtYW5hZ2VtZW50IChtbS8pLCBzeW5jaHJvbml6YXRpb24vbG9ja2luZyAoa2VybmVsL2xvY2tpbmcvKSxcbiAgICBCUEYsIHNjaGVkdWxlciwgY29yZSBuZXR3b3JraW5nLCBWRlMsIG9yIHN5c2NhbGwgaGFuZGxpbmcuXG4tIFJlZmFjdG9yaW5ncyBhbmQgQ29kZSBDbGVhbnVwczpcbiAgKiBBbnkgcmVzdHJ1Y3R1cmluZyBvZiByZWFjaGFibGUgZGF0YSBzdHJ1Y3R1cmVzLCBoZWxwZXIgYWJzdHJhY3Rpb25zLCBvciBhbGdvcml0aG0gZmxvd3MuXG4tIFJ1bnRpbWUgQXNzZXJ0aW9ucyBhbmQgRGVmZW5zaXZlIENoZWNrczpcbiAgKiBBbnkgaW50cm9kdWN0aW9uIG9yIGFsdGVyYXRpb24gb2YgYXNzZXJ0aW9ucyAoV0FSTl9PTiosIFZNX1dBUk5fT04qLCBCVUdfT04qLCBldGMuKSBpbiByZWFjaGFibGUgcGF0aHMuXG4tIFJlYWNoYWJsZSBEcml2ZXJzIGFuZCBQcm90b2NvbHM6XG4gICogRHJpdmVycyBhY2Nlc3NpYmxlIHZpYSB2aXJ0dWFsIGJ1c2VzICh2aXJ0aW8sIFVTQiBnYWRnZXQsIGxvb3BiYWNrLCBuZXRsaW5rLCBiaW5kZXIsIHNvY2tldHMsIGV0Yy4pLlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuNC4gRVhUUkFDVElORyBGb2N1c1N5bWJvbHMgKFBSRVZFTlRJTkcgRElMVVRJT04pXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuV2hlbiBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IG11c3QgZXh0cmFjdCBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIGludG8gRm9jdXNTeW1ib2xzIHRvIGd1aWRlIHRoZSBmdXp6ZXI6XG5cbi0gQVZPSUQgVUJJUVVJVE9VUyBMSUZFQ1lDTEUgSE9ULVBBVEhTOlxuICBEbyBOT1QgbGlzdCBnZW5lcmljLCB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYWxsZWQgYnkgYWxtb3N0IGV2ZXJ5IHByb2dyYW0gaW4gdGhlIGNvcnB1c1xuICAoaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG86IGdlbmVyYWwgbWVtb3J5IGFsbG9jYXRvcnMgYW5kIGRlYWxsb2NhdG9ycywgcGFnZSBmYXVsdFxuICBhbmQgdHJhcCBoYW5kbGVycywgb3IgY29yZSBzeW5jaHJvbml6YXRpb24gcHJpbWl0aXZlczsgdGhpcyBpcyBub3QgYW4gZXhoYXVzdGl2ZSBsaXN0KS5cbiAgTGlzdGluZyB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYXVzZXMgdGhlIGZ1enplciB0byBjbGFzc2lmeSB0aG91c2FuZHMgb2YgdW5yZWxhdGVkIHRlc3RzIGFzIFwiZm9jdXNlZFwiLFxuICB3aGljaCBzZXZlcmVseSBkaWx1dGVzIGZ1enppbmcgZWZmb3J0IGF3YXkgZnJvbSB0aGUgYWN0dWFsIGNoYW5nZXMuXG5cbi0gVEFSR0VUIFNQRUNJRklDIEZFQVRVUkUgTE9HSUMgQU5EIEVOVFJZUE9JTlRTOlxuICBMaXN0IGZ1bmN0aW9ucyB0aGF0IHNwZWNpZmljYWxseSBpbXBsZW1lbnQgdGhlIGxvZ2ljIGJlaW5nIGFkZGVkIG9yIGFsdGVyZWQsIG9yIGRpcmVjdCBBUEkgZW50cnlwb2ludHNcbiAgZm9yIHRoZSBzdWJzeXN0ZW0gZmVhdHVyZSB1bmRlciByZXZpZXcuXG5cbi0gSEFORExJTkcgU1RBVElDIElOTElORSBGVU5DVElPTlMgSU4gSEVBREVSUyAoLmgpOlxuICBDb21waWxlci1pbmxpbmVkIHN0YXRpYyBmdW5jdGlvbnMgKHN1Y2ggYXMgc3RhdGljIGlubGluZXMgaW4gbW0vKi5oIG9yIGluY2x1ZGUvbGludXgvKi5oKSBsYWNrXG4gIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMgaW4gdm1saW51eCBhbmQgY2Fubm90IGJlIHRhcmdldGVkIGRpcmVjdGx5IGJ5IHN5bWJvbCBjb3ZlcmFnZSBmaWx0ZXJzLlxuICBJZiB0aGUgY2hhbmdlcyBhcmUgcHJpbWFyaWx5IGluIHN0YXRpYyBpbmxpbmUgaGVscGVycywgaWRlbnRpZnkgbm9uLXN0YXRpYywgZmVhdHVyZS1zcGVjaWZpYyBjYWxsZXJcbiAgZnVuY3Rpb25zIGluIC5jIGZpbGVzIHRoYXQgZXhlcmNpc2UgdGhlbSAoYXZvaWRpbmcgdWJpcXVpdG91cyBsaWZlY3ljbGUgd3JhcHBlcnMpLlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuNS4gSURFTlRJRllJTkcgRW5hYmxlQ29uZmlnc1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbklkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgY29tcGlsZSBhbmQgcmVhY2ggdGhlIG1vZGlmaWVkIGNvZGU6XG4tIEluc3BlY3QgS2NvbmZpZyBmaWxlcyBhbmQgI2lmZGVmIGd1YXJkczsgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4tIENoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncyBuZWVkZWQuXG4tIFN0cmlwIGFueSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJUYXJnZXQgYXJjaGl0ZWN0dXJlOiBhbWQ2NFxuXG5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAyYzg3NzE4YjU1NjYxNTk0YTBjMzgzZGY3NTc5Nzk4MzBiNzlmZTZhXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBTZXAgNyAxODoxOTo0MCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmggYi9kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oXG5pbmRleCBiYzM2ODZmYWFkMGQ2Li4wYjc1YmUxNGRjMTA5IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaFxuKysrIGIvZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaFxuQEAgLTQyLDcgKzQyLDcgQEBcbiAjZGVmaW5lICBHU1dJUF9NRElPX1BIWV9GRFVQX0RJU1x0MHgwNjAwXG4gI2RlZmluZSAgR1NXSVBfTURJT19QSFlfRkNPTlRYX01BU0tcdDB4MDE4MFxuICNkZWZpbmUgIEdTV0lQX01ESU9fUEhZX0ZDT05UWF9BVVRPXHQweDAwMDBcbi0jZGVmaW5lICBHU1dJUF9NRElPX1BIWV9GQ09OVFhfRU5cdDB4MDEwMFxuKyNkZWZpbmUgIEdTV0lQX01ESU9fUEhZX0ZDT05UWF9FTlx0MHgwMDgwXG4gI2RlZmluZSAgR1NXSVBfTURJT19QSFlfRkNPTlRYX0RJU1x0MHgwMTgwXG4gI2RlZmluZSAgR1NXSVBfTURJT19QSFlfRkNPTlJYX01BU0tcdDB4MDA2MFxuICNkZWZpbmUgIEdTV0lQX01ESU9fUEhZX0ZDT05SWF9BVVRPXHQweDAwMDBcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYyBiL2RyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jXG5pbmRleCAwZThlZWRmNjRkM2EzLi42MTUwZGMzZmZiNjQxIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmNcbisrKyBiL2RyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jXG5AQCAtMTMzOSw2ICsxMzM5LDcgQEAgc3RhdGljIHZvaWQgZ3N3aXBfcG9ydF9zZXRfc3BlZWQoc3RydWN0IGdzd2lwX3ByaXYgKnByaXYsIGludCBwb3J0LCBpbnQgc3BlZWQsXG4gXHRcdGJyZWFrO1xuIFxuIFx0Y2FzZSBTUEVFRF8xMDAwOlxuK1x0Y2FzZSBTUEVFRF8yNTAwOlxuIFx0XHRtZGlvX3BoeSA9IEdTV0lQX01ESU9fUEhZX1NQRUVEX0cxO1xuIFxuIFx0XHRtaWlfY2ZnID0gR1NXSVBfTUlJX0NGR19SQVRFX00xMjU7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9teGwtZ3N3MXh4LmMgYi9kcml2ZXJzL25ldC9kc2EvbGFudGlxL214bC1nc3cxeHguY1xuaW5kZXggYTExMDRiMmY5MmE5Mi4uYjhkOGZlZmFhM2ExNSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2RzYS9sYW50aXEvbXhsLWdzdzF4eC5jXG4rKysgYi9kcml2ZXJzL25ldC9kc2EvbGFudGlxL214bC1nc3cxeHguY1xuQEAgLTM1Miw4ICszNTIsMjIgQEAgc3RhdGljIGludCBnc3cxeHhfcGNzX2NvbmZpZyhzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcywgdW5zaWduZWQgaW50IG5lZ19tb2RlLFxuIFx0LyogbWFyayBQQ1MgY29uZmlndXJhdGlvbiBhcyBpbmNvbXBsZXRlICovXG4gXHRwcml2LVx1MDAzZXRiaV9pbnRlcmZhY2UgPSBQSFlfSU5URVJGQUNFX01PREVfTkE7XG4gXG4tXHRpZiAoIXJlY29uZilcbitcdGlmICghcmVjb25mKSB7XG4rXHRcdC8qIHNldHVwIFNlckRlcyBjbG9jayBzcGVlZCAqL1xuK1x0XHRpZiAoaW50ZXJmYWNlID09IFBIWV9JTlRFUkZBQ0VfTU9ERV8yNTAwQkFTRVgpXG4rXHRcdFx0bmNvX2N0cmwgPSBHU1cxWFhfU0dNSUlfMkc1IHwgR1NXMVhYX1NHTUlJXzJHNV9OQ08yO1xuK1x0XHRlbHNlXG4rXHRcdFx0bmNvX2N0cmwgPSBHU1cxWFhfU0dNSUlfMUcgfCBHU1cxWFhfU0dNSUlfMUdfTkNPMTtcbitcbitcdFx0cmV0ID0gcmVnbWFwX3VwZGF0ZV9iaXRzKHByaXYtXHUwMDNlY2xrLCBHU1cxWFhfQ0xLX05DT19DVFJMLFxuK1x0XHRcdFx0XHQgR1NXMVhYX1NHTUlJX0hTUF9NQVNLIHxcbitcdFx0XHRcdFx0IEdTVzFYWF9TR01JSV9TRUwsXG4rXHRcdFx0XHRcdCBuY29fY3RybCk7XG4rXHRcdGlmIChyZXQpXG4rXHRcdFx0cmV0dXJuIHJldDtcbitcbiBcdFx0cmV0ID0gZ3N3MXh4X3Bjc19yZXNldChwcml2LCBpbnRlcmZhY2UpO1xuK1x0fVxuIFxuIFx0aWYgKHJldClcbiBcdFx0cmV0dXJuIHJldDtcbkBAIC00MjMsMTkgKzQzNyw2IEBAIHN0YXRpYyBpbnQgZ3N3MXh4X3Bjc19jb25maWcoc3RydWN0IHBoeWxpbmtfcGNzICpwY3MsIHVuc2lnbmVkIGludCBuZWdfbW9kZSxcbiBcdFx0cmV0dXJuIHJldDtcbiBcbiBcdGlmICghcmVjb25mKSB7XG4tXHRcdC8qIHNldHVwIFNlckRlcyBjbG9jayBzcGVlZCAqL1xuLVx0XHRpZiAoaW50ZXJmYWNlID09IFBIWV9JTlRFUkZBQ0VfTU9ERV8yNTAwQkFTRVgpXG4tXHRcdFx0bmNvX2N0cmwgPSBHU1cxWFhfU0dNSUlfMkc1IHwgR1NXMVhYX1NHTUlJXzJHNV9OQ08yO1xuLVx0XHRlbHNlXG4tXHRcdFx0bmNvX2N0cmwgPSBHU1cxWFhfU0dNSUlfMUcgfCBHU1cxWFhfU0dNSUlfMUdfTkNPMTtcbi1cbi1cdFx0cmV0ID0gcmVnbWFwX3VwZGF0ZV9iaXRzKHByaXYtXHUwMDNlY2xrLCBHU1cxWFhfQ0xLX05DT19DVFJMLFxuLVx0XHRcdFx0XHQgR1NXMVhYX1NHTUlJX0hTUF9NQVNLIHxcbi1cdFx0XHRcdFx0IEdTVzFYWF9TR01JSV9TRUwsXG4tXHRcdFx0XHRcdCBuY29fY3RybCk7XG4tXHRcdGlmIChyZXQpXG4tXHRcdFx0cmV0dXJuIHJldDtcbi1cbiBcdFx0cmV0ID0gZ3N3MXh4X3Bjc19waHlfeGF1aV93cml0ZShwcml2LCAweDMwLCAweDgwKTtcbiBcdFx0aWYgKHJldClcbiBcdFx0XHRyZXR1cm4gcmV0O1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDdUMTg6MTk6NDMuNjI4OTg4MDlaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoyNDAzNzU3NTEzMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIExhbnRpcSBEU0EgUGF0Y2gqKlxuXG5Pa2F5LCBsZXQncyBkaXZlIGludG8gdGhpcyBwYXRjaC4gTXkgaW5pdGlhbCBtb3ZlIGlzIHRvIHVuZGVyc3RhbmQgdGhlIHNjb3BlLCBzbyBJJ20gZm9jdXNpbmcgb24gdGhlIGFmZmVjdGVkIHN1YnN5c3RlbS4gSSBzZWUgdGhhdCBpdCB0b3VjaGVzIGZpbGVzIHdpdGhpbiB0aGUgYGRyaXZlcnMvbmV0L2RzYS9sYW50aXEvYCBkaXJlY3RvcnkuIFNwZWNpZmljYWxseSwgSSdtIGxvb2tpbmcgYXQgYGxhbnRpcV9nc3dpcC5oYCwgYGxhbnRpcV9nc3dpcF9jb21tb24uY2AsIGFuZCBgbXhsLWdzdzF4eC5jYC4gQmFzZWQgb24gdGhvc2UgZmlsZSBuYW1lcywgSSdtIGltbWVkaWF0ZWx5IHRoaW5raW5nIHRoaXMgY29uY2VybnMgYSBMYW50aXEgR2lnYWJpdCBTd2l0Y2ggSVAgZHJpdmVyLCBsaWtlbHkgZm9yIGEgc3BlY2lmaWMgc2VyaWVzIG9mIFNvQ3Mgb3IgcGxhdGZvcm1zLlxuXG5Ob3csIG15IG5leHQgc3RlcCBpcyB0byBnZXQgdGhlIGNvbnRleHQgb2YgdGhpcyBkcml2ZXIuIEknbSBnb2luZyB0byBxdWlja2x5IGNoZWNrIHRoZSBLY29uZmlnIGZpbGVzIGFzc29jaWF0ZWQgd2l0aCBgZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9gLiBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgZXhhY3QgdGFyZ2V0IGhhcmR3YXJlIG9yIHBsYXRmb3JtIHRoaXMgaXMgaW50ZW5kZWQgZm9yLiBUaGF0IHdpbGwgZ2l2ZSBtZSBhIGNyaXRpY2FsIHVuZGVyc3RhbmRpbmcgb2YgdGhlIGltcGxpY2F0aW9ucyBvZiB0aGVzZSBjaGFuZ2VzIGFuZCBwb3RlbnRpYWwgY29tcGF0aWJpbGl0eSBpc3N1ZXMuIEZyb20gdGhlIEtjb25maWcsIEkgaG9wZSB0byBjb25maXJtIG15IGluaXRpYWwgYXNzdW1wdGlvbiBhYm91dCB0aGUgaGFyZHdhcmUgYW5kIGdldCBhIHNlbnNlIG9mIHRoZSBkcml2ZXIncyBkZXBlbmRlbmNpZXMgYW5kIGNvbmZpZ3VyYXRpb24gb3B0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDAwNCwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzNywiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA3VDE4OjIwOjA3LjY2NjU2NjgxMVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0Nzc5NTU3MiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJHU1dJUFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9kc2EvbGFudGlxXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTA4MiBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9LY29uZmlnPTE9Y29uZmlnIE5FVF9EU0FfTEFOVElRX0NPTU1PTlxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9LY29uZmlnLTQtXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9LY29uZmlnOjU6Y29uZmlnIE5FVF9EU0FfTEFOVElRX0dTV0lQXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9LY29uZmlnOjY6XFx0dHJpc3RhdGUgXFxcIkxhbnRpcSAvIEludGVsIEdTV0lQXFxcIlxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvS2NvbmZpZy03LVxcdGRlcGVuZHMgb24gSEFTX0lPTUVNXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9LY29uZmlnOjg6XFx0c2VsZWN0IE5FVF9EU0FfVEFHX0dTV0lQXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9LY29uZmlnLTktXFx0c2VsZWN0IE5FVF9EU0FfTEFOVElRX0NPTU1PTlxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvS2NvbmZpZy0xMC1cXHRoZWxwXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9LY29uZmlnOjExOlxcdCAgVGhpcyBlbmFibGVzIHN1cHBvcnQgZm9yIHRoZSBMYW50aXEgLyBJbnRlbCBHU1dJUCAyLjEgZm91bmQgaW5cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL0tjb25maWctMTItXFx0ICB0aGUgeHJ4MjAwIC8gVlI5IFNvQy5cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvTWFrZWZpbGU6MTpvYmotJChDT05GSUdfTkVUX0RTQV9MQU5USVFfR1NXSVApICs9IGxhbnRpcV9nc3dpcC5vXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9NYWtlZmlsZS0yLW9iai0kKENPTkZJR19ORVRfRFNBX0xBTlRJUV9DT01NT04pICs9IGxhbnRpcV9nc3dpcF9jb21tb24ub1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy0yLS8qXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYzozOiAqIExhbnRpcSAvIEludGVsIEdTV0lQIHN3aXRjaCBkcml2ZXIgZm9yIFZSWDIwMCwgeFJYMzAwIGFuZCB4UlgzMzAgU29Dc1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtNC0gKlxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYz0yMzU9c3RhdGljIGludCBnc3dpcF9ncGh5X2Z3X2xpc3Qoc3RydWN0IGdzd2lwX3ByaXYgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTI0My1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjI0NDpcXHQvKiBUaGUgVlJYMjAwIHJldiAxLjEgdXNlcyB0aGUgR1NXSVAgMi4wIGFuZCBuZWVkcyB0aGUgb2xkZXJcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjI0NTpcXHQgKiBHUEhZIGZpcm13YXJlLiBUaGUgVlJYMjAwIHJldiAxLjIgdXNlcyB0aGUgR1NXSVAgMi4xIGFuZCBhbHNvXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy0yNDYtXFx0ICogbmVlZHMgYSBkaWZmZXJlbnQgR1BIWSBmaXJtd2FyZS5cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtMjQ5LVxcdFxcdHN3aXRjaCAodmVyc2lvbikge1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM6MjUwOlxcdFxcdGNhc2UgR1NXSVBfVkVSU0lPTl8yXzA6XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy0yNTEtXFx0XFx0XFx0cHJpdi1cXHUwMDNlZ3BoeV9md19uYW1lX2NmZyA9IFxcdTAwMjZ4cngyMDBhMXhfZ3BoeV9kYXRhO1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtMjUyLVxcdFxcdFxcdGJyZWFrO1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM6MjUzOlxcdFxcdGNhc2UgR1NXSVBfVkVSU0lPTl8yXzE6XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy0yNTQtXFx0XFx0XFx0cHJpdi1cXHUwMDNlZ3BoeV9md19uYW1lX2NmZyA9IFxcdTAwMjZ4cngyMDBhMnhfZ3BoeV9kYXRhO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy0yNTctXFx0XFx0XFx0cmV0dXJuIGRldl9lcnJfcHJvYmUoZGV2LCAtRU5PRU5ULFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM6MjU4OlxcdFxcdFxcdFxcdFxcdCAgICAgXFxcInVua25vd24gR1NXSVAgdmVyc2lvbjogMHgleFxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTI1OS1cXHRcXHRcXHRcXHRcXHQgICAgIHZlcnNpb24pO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYz0zMTQ9c3RhdGljIGNvbnN0IHN0cnVjdCByZWdtYXBfY29uZmlnIHN3X3JlZ21hcF9jb25maWcgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTMxOS1cXHQudmFsX2Zvcm1hdF9lbmRpYW4gPSBSRUdNQVBfRU5ESUFOX05BVElWRSxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjMyMDpcXHQubWF4X3JlZ2lzdGVyID0gR1NXSVBfU0RNQV9QQ1RSTHAoNiksXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy0zMjEtfTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM9MzIzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgcmVnbWFwX2NvbmZpZyBtZGlvX3JlZ21hcF9jb25maWcgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTMyOC1cXHQudmFsX2Zvcm1hdF9lbmRpYW4gPSBSRUdNQVBfRU5ESUFOX05BVElWRSxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjMyOTpcXHQubWF4X3JlZ2lzdGVyID0gR1NXSVBfTURJT19QSFlwKDApLFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtMzMwLX07XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jPTMzMj1zdGF0aWMgY29uc3Qgc3RydWN0IHJlZ21hcF9jb25maWcgbWlpX3JlZ21hcF9jb25maWcgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTMzNy1cXHQudmFsX2Zvcm1hdF9lbmRpYW4gPSBSRUdNQVBfRU5ESUFOX05BVElWRSxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjMzODpcXHQubWF4X3JlZ2lzdGVyID0gR1NXSVBfTUlJX0NGR3AoNiksXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy0zMzktfTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM9MzQxPXN0YXRpYyBpbnQgZ3N3aXBfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtMzg4LVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM6Mzg5OlxcdHJlZ21hcF9yZWFkKHByaXYtXFx1MDAzZWdzd2lwLCBHU1dJUF9WRVJTSU9OLCBcXHUwMDI2dmVyc2lvbik7XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy0zOTAtXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTM5Mi1cXHRzd2l0Y2ggKHZlcnNpb24pIHtcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjM5MzpcXHRjYXNlIEdTV0lQX1ZFUlNJT05fMl8wOlxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM6Mzk0OlxcdGNhc2UgR1NXSVBfVkVSU0lPTl8yXzE6XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy0zOTUtXFx0XFx0aWYgKCFvZl9kZXZpY2VfaXNfY29tcGF0aWJsZShucCwgXFxcImxhbnRpcSx4cngyMDAtZ3N3aXBcXFwiKSlcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtMzk3LVxcdFxcdGJyZWFrO1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM6Mzk4OlxcdGNhc2UgR1NXSVBfVkVSU0lPTl8yXzI6XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYzozOTk6XFx0Y2FzZSBHU1dJUF9WRVJTSU9OXzJfMl9FVEM6XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy00MDAtXFx0XFx0aWYgKCFvZl9kZXZpY2VfaXNfY29tcGF0aWJsZShucCwgXFxcImxhbnRpcSx4cngzMDAtZ3N3aXBcXFwiKSBcXHUwMDI2XFx1MDAyNlxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy00MDUtXFx0XFx0cmV0dXJuIGRldl9lcnJfcHJvYmUoZGV2LCAtRU5PRU5ULFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM6NDA2OlxcdFxcdFxcdFxcdCAgICAgXFxcInVua25vd24gR1NXSVAgdmVyc2lvbjogMHgleFxcXFxuXFxcIiwgdmVyc2lvbik7XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy00MDctXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYz00NTk9c3RhdGljIGNvbnN0IHN0cnVjdCBnc3dpcF9od19pbmZvIGdzd2lwX3hyeDIwMCA9IHtcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjQ2MDpcXHQubWF4X3BvcnRzID0gR1NXSVBfTUFYX1BPUlRTLFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtNDYxLVxcdC5hbGxvd2VkX2NwdV9wb3J0cyA9IEJJVCg2KSxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTQ2Mi1cXHQubWlpX2NmZyA9IHtcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjQ2MzpcXHRcXHRbMF0gPSBHU1dJUF9NSUlfQ0ZHcCgwKSxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjQ2NDpcXHRcXHRbMV0gPSBHU1dJUF9NSUlfQ0ZHcCgxKSxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTQ2NS1cXHRcXHRbMiAuLi4gNF0gPSAtMSxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjQ2NjpcXHRcXHRbNV0gPSBHU1dJUF9NSUlfQ0ZHcCg1KSxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTQ2Ny1cXHRcXHRbNl0gPSAtMSxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtNDY5LVxcdC5taWlfcGNkdSA9IHtcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjQ3MDpcXHRcXHRbMF0gPSBHU1dJUF9NSUlfUENEVTAsXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYzo0NzE6XFx0XFx0WzFdID0gR1NXSVBfTUlJX1BDRFUxLFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtNDcyLVxcdFxcdFsyIC4uLiA0XSA9IC0xLFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM6NDczOlxcdFxcdFs1XSA9IEdTV0lQX01JSV9QQ0RVNSxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTQ3NC1cXHRcXHRbNl0gPSAtMSxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtNDc4LVxcdC5wY2VfbWljcm9jb2RlX3NpemUgPSBBUlJBWV9TSVpFKGdzd2lwX3BjZV9taWNyb2NvZGUpLFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM6NDc5OlxcdC50YWdfcHJvdG9jb2wgPSBEU0FfVEFHX1BST1RPX0dTV0lQLFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtNDgwLX07XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jPTQ4Mj1zdGF0aWMgY29uc3Qgc3RydWN0IGdzd2lwX2h3X2luZm8gZ3N3aXBfeHJ4MzAwID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM6NDgzOlxcdC5tYXhfcG9ydHMgPSBHU1dJUF9NQVhfUE9SVFMsXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy00ODQtXFx0LmFsbG93ZWRfY3B1X3BvcnRzID0gQklUKDYpLFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtNDg1LVxcdC5taWlfY2ZnID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM6NDg2OlxcdFxcdFswXSA9IEdTV0lQX01JSV9DRkdwKDApLFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtNDg3LVxcdFxcdFsxIC4uLiA0XSA9IC0xLFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM6NDg4OlxcdFxcdFs1XSA9IEdTV0lQX01JSV9DRkdwKDUpLFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtNDg5LVxcdFxcdFs2XSA9IC0xLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy00OTEtXFx0Lm1paV9wY2R1ID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM6NDkyOlxcdFxcdFswXSA9IEdTV0lQX01JSV9QQ0RVMCxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTQ5My1cXHRcXHRbMSAuLi4gNF0gPSAtMSxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjQ5NDpcXHRcXHRbNV0gPSBHU1dJUF9NSUlfUENEVTUsXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy00OTUtXFx0XFx0WzZdID0gLTEsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTQ5OS1cXHQucGNlX21pY3JvY29kZV9zaXplID0gQVJSQVlfU0laRShnc3dpcF9wY2VfbWljcm9jb2RlKSxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjUwMDpcXHQudGFnX3Byb3RvY29sID0gRFNBX1RBR19QUk9UT19HU1dJUCxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTUwMS19O1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYz01Mjk9TU9EVUxFX0FVVEhPUihcXFwiSGF1a2UgTWVocnRlbnMgXFx1MDAzY2hhdWtlQGhhdWtlLW0uZGVcXHUwMDNlXFxcIik7XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYzo1MzA6TU9EVUxFX0RFU0NSSVBUSU9OKFxcXCJMYW50aXEgLyBJbnRlbCBHU1dJUCBkcml2ZXJcXFwiKTtcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTUzMS1NT0RVTEVfTElDRU5TRShcXFwiR1BMIHYyXFxcIik7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oLTEtLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjI6I2lmbmRlZiBfX0xBTlRJUV9HU1dJUF9IXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDozOiNkZWZpbmUgX19MQU5USVFfR1NXSVBfSFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmgtNC1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmgtMTQtXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxNTovKiBHU1dJUCBNRElPIFJlZ2lzdGVycyAqL1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTY6I2RlZmluZSBHU1dJUF9NRElPX0dMT0JcXHRcXHRcXHQweDAwXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxNzojZGVmaW5lICBHU1dJUF9NRElPX0dMT0JfRU5BQkxFXFx0XFx0QklUKDE1KVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTg6I2RlZmluZSBHU1dJUF9NRElPX0NUUkxcXHRcXHRcXHQweDA4XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxOTojZGVmaW5lICBHU1dJUF9NRElPX0NUUkxfQlVTWVxcdFxcdEJJVCgxMilcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjIwOiNkZWZpbmUgIEdTV0lQX01ESU9fQ1RSTF9SRFxcdFxcdEJJVCgxMSlcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjIxOiNkZWZpbmUgIEdTV0lQX01ESU9fQ1RSTF9XUlxcdFxcdEJJVCgxMClcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjIyOiNkZWZpbmUgIEdTV0lQX01ESU9fQ1RSTF9QSFlBRF9NQVNLXFx0MHgxZlxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjM6I2RlZmluZSAgR1NXSVBfTURJT19DVFJMX1BIWUFEX1NISUZUXFx0NVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjQ6I2RlZmluZSAgR1NXSVBfTURJT19DVFJMX1JFR0FEX01BU0tcXHQweDFmXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoyNTojZGVmaW5lIEdTV0lQX01ESU9fUkVBRFxcdFxcdFxcdDB4MDlcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjI2OiNkZWZpbmUgR1NXSVBfTURJT19XUklURVxcdFxcdDB4MEFcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjI3OiNkZWZpbmUgR1NXSVBfTURJT19NRENfQ0ZHMFxcdFxcdDB4MEJcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjI4OiNkZWZpbmUgR1NXSVBfTURJT19NRENfQ0ZHMVxcdFxcdDB4MENcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjI5OiNkZWZpbmUgR1NXSVBfTURJT19QSFlwKHApXFx0XFx0KDB4MTUgLSAocCkpXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDozMDojZGVmaW5lICBHU1dJUF9NRElPX1BIWV9MSU5LX01BU0tcXHQweDYwMDBcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjMxOiNkZWZpbmUgIEdTV0lQX01ESU9fUEhZX0xJTktfQVVUT1xcdDB4MDAwMFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MzI6I2RlZmluZSAgR1NXSVBfTURJT19QSFlfTElOS19ET1dOXFx0MHg0MDAwXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDozMzojZGVmaW5lICBHU1dJUF9NRElPX1BIWV9MSU5LX1VQXFx0XFx0MHgyMDAwXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDozNDojZGVmaW5lICBHU1dJUF9NRElPX1BIWV9TUEVFRF9NQVNLXFx0MHgxODAwXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDozNTojZGVmaW5lICBHU1dJUF9NRElPX1BIWV9TUEVFRF9BVVRPXFx0MHgxODAwXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDozNjojZGVmaW5lICBHU1dJUF9NRElPX1BIWV9TUEVFRF9NMTBcXHQweDAwMDBcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjM3OiNkZWZpbmUgIEdTV0lQX01ESU9fUEhZX1NQRUVEX00xMDBcXHQweDA4MDBcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjM4OiNkZWZpbmUgIEdTV0lQX01ESU9fUEhZX1NQRUVEX0cxXFx0MHgxMDAwXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDozOTojZGVmaW5lICBHU1dJUF9NRElPX1BIWV9GRFVQX01BU0tcXHQweDA2MDBcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjQwOiNkZWZpbmUgIEdTV0lQX01ESU9fUEhZX0ZEVVBfQVVUT1xcdDB4MDAwMFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6NDE6I2RlZmluZSAgR1NXSVBfTURJT19QSFlfRkRVUF9FTlxcdFxcdDB4MDIwMFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6NDI6I2RlZmluZSAgR1NXSVBfTURJT19QSFlfRkRVUF9ESVNcXHQweDA2MDBcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjQzOiNkZWZpbmUgIEdTV0lQX01ESU9fUEhZX0ZDT05UWF9NQVNLXFx0MHgwMTgwXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo0NDojZGVmaW5lICBHU1dJUF9NRElPX1BIWV9GQ09OVFhfQVVUT1xcdDB4MDAwMFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6NDU6I2RlZmluZSAgR1NXSVBfTURJT19QSFlfRkNPTlRYX0VOXFx0MHgwMDgwXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo0NjojZGVmaW5lICBHU1dJUF9NRElPX1BIWV9GQ09OVFhfRElTXFx0MHgwMTgwXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo0NzojZGVmaW5lICBHU1dJUF9NRElPX1BIWV9GQ09OUlhfTUFTS1xcdDB4MDA2MFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6NDg6I2RlZmluZSAgR1NXSVBfTURJT19QSFlfRkNPTlJYX0FVVE9cXHQweDAwMDBcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjQ5OiNkZWZpbmUgIEdTV0lQX01ESU9fUEhZX0ZDT05SWF9FTlxcdDB4MDAyMFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6NTA6I2RlZmluZSAgR1NXSVBfTURJT19QSFlfRkNPTlJYX0RJU1xcdDB4MDA2MFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6NTE6I2RlZmluZSAgR1NXSVBfTURJT19QSFlfQUREUl9NQVNLXFx0MHgwMDFmXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo1MjojZGVmaW5lICBHU1dJUF9NRElPX1BIWV9NQVNLXFx0XFx0KEdTV0lQX01ESU9fUEhZX0FERFJfTUFTSyB8IFxcXFxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjUzOlxcdFxcdFxcdFxcdFxcdCBHU1dJUF9NRElPX1BIWV9GQ09OUlhfTUFTSyB8IFxcXFxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjU0OlxcdFxcdFxcdFxcdFxcdCBHU1dJUF9NRElPX1BIWV9GQ09OVFhfTUFTSyB8IFxcXFxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjU1OlxcdFxcdFxcdFxcdFxcdCBHU1dJUF9NRElPX1BIWV9MSU5LX01BU0sgfCBcXFxcXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo1NjpcXHRcXHRcXHRcXHRcXHQgR1NXSVBfTURJT19QSFlfU1BFRURfTUFTSyB8IFxcXFxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjU3OlxcdFxcdFxcdFxcdFxcdCBHU1dJUF9NRElPX1BIWV9GRFVQX01BU0spXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaC01OC1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjU5Oi8qIEdTV0lQIE1JSSBSZWdpc3RlcnMgKi9cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjYwOiNkZWZpbmUgR1NXSVBfTUlJX0NGR3AocClcXHRcXHQoMHgyICogKHApKVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6NjE6I2RlZmluZSAgR1NXSVBfTUlJX0NGR19SRVNFVFxcdFxcdEJJVCgxNSlcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjYyOiNkZWZpbmUgIEdTV0lQX01JSV9DRkdfRU5cXHRcXHRCSVQoMTQpXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo2MzojZGVmaW5lICBHU1dJUF9NSUlfQ0ZHX0lTT0xBVEVcXHRcXHRCSVQoMTMpXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo2NDojZGVmaW5lICBHU1dJUF9NSUlfQ0ZHX0xEQ0xLRElTXFx0XFx0QklUKDEyKVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6NjU6I2RlZmluZSAgR1NXSVBfTUlJX0NGR19SR01JSV9JQlNcXHRCSVQoOClcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjY2OiNkZWZpbmUgIEdTV0lQX01JSV9DRkdfUk1JSV9DTEtcXHRcXHRCSVQoNylcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjY3OiNkZWZpbmUgIEdTV0lQX01JSV9DRkdfTU9ERV9NSUlQXFx0MHgwXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo2ODojZGVmaW5lICBHU1dJUF9NSUlfQ0ZHX01PREVfTUlJTVxcdDB4MVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6Njk6I2RlZmluZSAgR1NXSVBfTUlJX0NGR19NT0RFX1JNSUlQXFx0MHgyXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo3MDojZGVmaW5lICBHU1dJUF9NSUlfQ0ZHX01PREVfUk1JSU1cXHQweDNcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjcxOiNkZWZpbmUgIEdTV0lQX01JSV9DRkdfTU9ERV9SR01JSVxcdDB4NFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6NzI6I2RlZmluZSAgR1NXSVBfTUlJX0NGR19NT0RFX0dNSUlcXHQweDlcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjczOiNkZWZpbmUgIEdTV0lQX01JSV9DRkdfTU9ERV9NQVNLXFx0MHhmXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo3NDojZGVmaW5lICBHU1dJUF9NSUlfQ0ZHX1JBVEVfTTJQNVxcdDB4MDBcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjc1OiNkZWZpbmUgIEdTV0lQX01JSV9DRkdfUkFURV9NMjVcXHQweDEwXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo3NjojZGVmaW5lICBHU1dJUF9NSUlfQ0ZHX1JBVEVfTTEyNVxcdDB4MjBcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjc3OiNkZWZpbmUgIEdTV0lQX01JSV9DRkdfUkFURV9NNTBcXHQweDMwXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo3ODojZGVmaW5lICBHU1dJUF9NSUlfQ0ZHX1JBVEVfQVVUT1xcdDB4NDBcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjc5OiNkZWZpbmUgIEdTV0lQX01JSV9DRkdfUkFURV9NQVNLXFx0MHg3MFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6ODA6I2RlZmluZSBHU1dJUF9NSUlfUENEVTBcXHRcXHRcXHQweDAxXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo4MTojZGVmaW5lIEdTV0lQX01JSV9QQ0RVMVxcdFxcdFxcdDB4MDNcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjgyOiNkZWZpbmUgR1NXSVBfTUlJX1BDRFU1XFx0XFx0XFx0MHgwNVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6ODM6I2RlZmluZSAgR1NXSVBfTUlJX1BDRFVfVFhETFlfTUFTS1xcdEdFTk1BU0soMiwgMClcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjg0OiNkZWZpbmUgIEdTV0lQX01JSV9QQ0RVX1JYRExZX01BU0tcXHRHRU5NQVNLKDksIDcpXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo4NTojZGVmaW5lICBHU1dJUF9NSUlfUENEVV9UWERMWSh4KVxcdHUxNl9lbmNvZGVfYml0cygoKHgpIC8gNTAwKSwgR1NXSVBfTUlJX1BDRFVfVFhETFlfTUFTSylcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjg2OiNkZWZpbmUgIEdTV0lQX01JSV9QQ0RVX1JYRExZKHgpXFx0dTE2X2VuY29kZV9iaXRzKCgoeCkgLyA1MDApLCBHU1dJUF9NSUlfUENEVV9SWERMWV9NQVNLKVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6ODc6I2RlZmluZSBHU1dJUF9NSUlfUENEVV9SWERMWV9ERUZBVUxUXFx0MjAwMCAvKiBwaWNvc2Vjb25kcyAqL1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6ODg6I2RlZmluZSBHU1dJUF9NSUlfUENEVV9UWERMWV9ERUZBVUxUXFx0MjAwMCAvKiBwaWNvc2Vjb25kcyAqL1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmgtODktXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo5MDovKiBHU1dJUCBDb3JlIFJlZ2lzdGVycyAqL1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6OTE6I2RlZmluZSBHU1dJUF9TV1JFU1xcdFxcdFxcdDB4MDAwXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo5MjojZGVmaW5lICBHU1dJUF9TV1JFU19SMVxcdFxcdFxcdEJJVCgxKVxcdC8qIEdTV0lQIFNvZnR3YXJlIHJlc2V0ICovXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo5MzojZGVmaW5lICBHU1dJUF9TV1JFU19SMFxcdFxcdFxcdEJJVCgwKVxcdC8qIEdTV0lQIEhhcmR3YXJlIHJlc2V0ICovXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo5NDojZGVmaW5lIEdTV0lQX1ZFUlNJT05cXHRcXHRcXHQweDAxM1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6OTU6I2RlZmluZSAgR1NXSVBfVkVSU0lPTl9SRVZfTUFTS1xcdFxcdEdFTk1BU0soNywgMClcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjk2OiNkZWZpbmUgIEdTV0lQX1ZFUlNJT05fTU9EX01BU0tcXHRcXHRHRU5NQVNLKDE1LCA4KVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6OTc6I2RlZmluZSAgR1NXSVBfVkVSU0lPTl9SRVYodilcXHRcXHRGSUVMRF9HRVQoR1NXSVBfVkVSU0lPTl9SRVZfTUFTSywgdilcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjk4OiNkZWZpbmUgIEdTV0lQX1ZFUlNJT05fTU9EKHYpXFx0XFx0RklFTERfR0VUKEdTV0lQX1ZFUlNJT05fTU9EX01BU0ssIHYpXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo5OTojZGVmaW5lICAgR1NXSVBfVkVSU0lPTl8yXzBcXHRcXHQweDEwMFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTAwOiNkZWZpbmUgICBHU1dJUF9WRVJTSU9OXzJfMVxcdFxcdDB4MDIxXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxMDE6I2RlZmluZSAgIEdTV0lQX1ZFUlNJT05fMl8yXFx0XFx0MHgxMjJcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjEwMjojZGVmaW5lICAgR1NXSVBfVkVSU0lPTl8yXzJfRVRDXFx0XFx0MHgwMjJcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oLTEwMy0vKiBUaGUgaGFyZHdhcmUgaGFzIHRoZSAnbWFqb3IvbWlub3InIHZlcnNpb24gYnl0ZXMgaW4gdGhlIHdyb25nIG9yZGVyXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oLTEwOC0gKi9cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjEwOTojZGVmaW5lIEdTV0lQX1ZFUlNJT05fR0UocHJpdiwgdmVyKVxcdCgocHJpdiktXFx1MDAzZXZlcnNpb24gXFx1MDAzZT0gc3dhYjE2KHZlcikpXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaC0xMTAtXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxMTE6I2RlZmluZSBHU1dJUF9CTV9SQU1fVkFMKHgpXFx0XFx0KDB4MDQzIC0gKHgpKVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTEyOiNkZWZpbmUgR1NXSVBfQk1fUkFNX0FERFJcXHRcXHQweDA0NFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTEzOiNkZWZpbmUgR1NXSVBfQk1fUkFNX0NUUkxcXHRcXHQweDA0NVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTE0OiNkZWZpbmUgIEdTV0lQX0JNX1JBTV9DVFJMX0JBU1xcdFxcdEJJVCgxNSlcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjExNTojZGVmaW5lICBHU1dJUF9CTV9SQU1fQ1RSTF9PUE1PRFxcdEJJVCg1KVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTE2OiNkZWZpbmUgIEdTV0lQX0JNX1JBTV9DVFJMX0FERFJfTUFTS1xcdEdFTk1BU0soNCwgMClcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjExNzojZGVmaW5lIEdTV0lQX0JNX1FVRVVFX0dDVFJMXFx0XFx0MHgwNEFcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjExODojZGVmaW5lICBHU1dJUF9CTV9RVUVVRV9HQ1RSTF9HTF9NT0RcXHRCSVQoMTApXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaC0xMTktLyogYnVmZmVyIG1hbmFnZW1lbnQgUG9ydCBDb25maWd1cmF0aW9uIFJlZ2lzdGVyICovXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxMjA6I2RlZmluZSBHU1dJUF9CTV9QQ0ZHcChwKVxcdFxcdCgweDA4MCArICgocCkgKiAyKSlcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjEyMTojZGVmaW5lICBHU1dJUF9CTV9QQ0ZHX0NOVEVOXFx0XFx0QklUKDApXFx0LyogUk1PTiBDb3VudGVyIEVuYWJsZSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTIyOiNkZWZpbmUgIEdTV0lQX0JNX1BDRkdfSUdDTlRcXHRcXHRCSVQoMSlcXHQvKiBJbmdyZXMgU3BlY2lhbCBUYWcgUk1PTiBjb3VudCAqL1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmgtMTIzLS8qIGJ1ZmZlciBtYW5hZ2VtZW50IFBvcnQgQ29udHJvbCBSZWdpc3RlciAqL1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTI0OiNkZWZpbmUgR1NXSVBfQk1fUk1PTl9DVFJMcChwKVxcdFxcdCgweDgxICsgKChwKSAqIDIpKVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTI1OiNkZWZpbmUgIEdTV0lQX0JNX0NUUkxfUk1PTl9SQU0xX1JFU1xcdEJJVCgwKVxcdC8qIFNvZnR3YXJlIFJlc2V0IGZvciBSTU9OIFJBTSAxICovXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxMjY6I2RlZmluZSAgR1NXSVBfQk1fQ1RSTF9STU9OX1JBTTJfUkVTXFx0QklUKDEpXFx0LyogU29mdHdhcmUgUmVzZXQgZm9yIFJNT04gUkFNIDIgKi9cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oLTEyNy1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oLTEyOC0vKiBQQ0UgKi9cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjEyOTojZGVmaW5lIEdTV0lQX1BDRV9UQkxfS0VZKHgpXFx0XFx0KDB4NDQ3IC0gKHgpKVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTMwOiNkZWZpbmUgR1NXSVBfUENFX1RCTF9NQVNLXFx0XFx0MHg0NDhcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjEzMTojZGVmaW5lIEdTV0lQX1BDRV9UQkxfVkFMKHgpXFx0XFx0KDB4NDREIC0gKHgpKVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTMyOiNkZWZpbmUgR1NXSVBfUENFX1RCTF9BRERSXFx0XFx0MHg0NEVcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjEzMzojZGVmaW5lIEdTV0lQX1BDRV9UQkxfQ1RSTFxcdFxcdDB4NDRGXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxMzQ6I2RlZmluZSAgR1NXSVBfUENFX1RCTF9DVFJMX0JBU1xcdFxcdEJJVCgxNSlcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjEzNTojZGVmaW5lICBHU1dJUF9QQ0VfVEJMX0NUUkxfVFlQRVxcdEJJVCgxMylcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjEzNjojZGVmaW5lICBHU1dJUF9QQ0VfVEJMX0NUUkxfVkxEXFx0XFx0QklUKDEyKVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTM3OiNkZWZpbmUgIEdTV0lQX1BDRV9UQkxfQ1RSTF9LRVlGT1JNXFx0QklUKDExKVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTM4OiNkZWZpbmUgIEdTV0lQX1BDRV9UQkxfQ1RSTF9HTUFQX01BU0tcXHRHRU5NQVNLKDEwLCA3KVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTM5OiNkZWZpbmUgIEdTV0lQX1BDRV9UQkxfQ1RSTF9PUE1PRF9NQVNLXFx0R0VOTUFTSyg2LCA1KVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTQwOiNkZWZpbmUgIEdTV0lQX1BDRV9UQkxfQ1RSTF9PUE1PRF9BRFJEXFx0MHgwMFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTQxOiNkZWZpbmUgIEdTV0lQX1BDRV9UQkxfQ1RSTF9PUE1PRF9BRFdSXFx0MHgyMFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTQyOiNkZWZpbmUgIEdTV0lQX1BDRV9UQkxfQ1RSTF9PUE1PRF9LU1JEXFx0MHg0MFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTQzOiNkZWZpbmUgIEdTV0lQX1BDRV9UQkxfQ1RSTF9PUE1PRF9LU1dSXFx0MHg2MFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTQ0OiNkZWZpbmUgIEdTV0lQX1BDRV9UQkxfQ1RSTF9BRERSX01BU0tcXHRHRU5NQVNLKDQsIDApXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxNDU6I2RlZmluZSBHU1dJUF9QQ0VfUE1BUDFcXHRcXHRcXHQweDQ1M1xcdC8qIE1vbml0b3JpbmcgcG9ydCBtYXAgKi9cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE0NjojZGVmaW5lIEdTV0lQX1BDRV9QTUFQMlxcdFxcdFxcdDB4NDU0XFx0LyogRGVmYXVsdCBNdWx0aWNhc3QgcG9ydCBtYXAgKi9cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE0NzojZGVmaW5lIEdTV0lQX1BDRV9QTUFQM1xcdFxcdFxcdDB4NDU1XFx0LyogRGVmYXVsdCBVbmtub3duIFVuaWNhc3QgcG9ydCBtYXAgKi9cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE0ODojZGVmaW5lIEdTV0lQX1BDRV9HQ1RSTF8wXFx0XFx0MHg0NTZcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE0OTojZGVmaW5lICBHU1dJUF9QQ0VfR0NUUkxfMF9NVEZMXFx0XFx0QklUKDApICAvKiBNQUMgVGFibGUgRmx1c2hpbmcgKi9cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE1MDojZGVmaW5lICBHU1dJUF9QQ0VfR0NUUkxfMF9NQ19WQUxJRFxcdEJJVCgzKVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTUxOiNkZWZpbmUgIEdTV0lQX1BDRV9HQ1RSTF8wX1ZMQU5cXHRcXHRCSVQoMTQpIC8qIFZMQU4gYXdhcmUgU3dpdGNoaW5nICovXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxNTI6I2RlZmluZSBHU1dJUF9QQ0VfR0NUUkxfMVxcdFxcdDB4NDU3XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxNTM6I2RlZmluZSAgR1NXSVBfUENFX0dDVFJMXzFfTUFDX0dMT0NLXFx0QklUKDIpXFx0LyogTUFDIEFkZHJlc3MgdGFibGUgbG9jayAqL1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTU0OiNkZWZpbmUgIEdTV0lQX1BDRV9HQ1RSTF8xX01BQ19HTE9DS19NT0RcXHRCSVQoMykgLyogTWFjIGFkZHJlc3MgdGFibGUgbG9jayBmb3J3YXJkaW5nIG1vZGUgKi9cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE1NTojZGVmaW5lIEdTV0lQX1BDRV9QQ1RSTF8wcChwKVxcdFxcdCgweDQ4MCArICgocCkgKiAweEEpKVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTU2OiNkZWZpbmUgIEdTV0lQX1BDRV9QQ1RSTF8wX1RWTVxcdFxcdEJJVCg1KVxcdC8qIFRyYW5zcGFyZW50IFZMQU4gbW9kZSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTU3OiNkZWZpbmUgIEdTV0lQX1BDRV9QQ1RSTF8wX1ZSRVBcXHRcXHRCSVQoNilcXHQvKiBWTEFOIFJlcGxhY2UgTW9kZSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTU4OiNkZWZpbmUgIEdTV0lQX1BDRV9QQ1RSTF8wX0lOR1JFU1NcXHRCSVQoMTEpXFx0LyogQWNjZXB0IHNwZWNpYWwgdGFnIGluIGluZ3Jlc3MgKi9cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE1OTojZGVmaW5lICBHU1dJUF9QQ0VfUENUUkxfMF9QU1RBVEVfTElTVEVOXFx0MHgwXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxNjA6I2RlZmluZSAgR1NXSVBfUENFX1BDVFJMXzBfUFNUQVRFX1JYXFx0XFx0MHgxXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxNjE6I2RlZmluZSAgR1NXSVBfUENFX1BDVFJMXzBfUFNUQVRFX1RYXFx0XFx0MHgyXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxNjI6I2RlZmluZSAgR1NXSVBfUENFX1BDVFJMXzBfUFNUQVRFX0xFQVJOSU5HXFx0MHgzXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxNjM6I2RlZmluZSAgR1NXSVBfUENFX1BDVFJMXzBfUFNUQVRFX0ZPUldBUkRJTkdcXHQweDdcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE2NDojZGVmaW5lICBHU1dJUF9QQ0VfUENUUkxfMF9QU1RBVEVfTUFTS1xcdEdFTk1BU0soMiwgMClcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oLTE2NS0vKiBFdGhlcm5ldCBTd2l0Y2ggUENFIFBvcnQgQ29udHJvbCBSZWdpc3RlciAzICovXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxNjY6I2RlZmluZSBHU1dJUF9QQ0VfUENUUkxfM3AocClcXHRcXHQoMHg0ODMgKyAoKHApICogMHhBKSlcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE2NzojZGVmaW5lICBHU1dJUF9QQ0VfUENUUkxfM19MTkRJU1xcdEJJVCgxNSkgIC8qIExlYXJuaW5nIERpc2FibGUgKi9cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE2ODojZGVmaW5lIEdTV0lQX1BDRV9WQ1RSTChwKVxcdFxcdCgweDQ4NSArICgocCkgKiAweEEpKVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTY5OiNkZWZpbmUgIEdTV0lQX1BDRV9WQ1RSTF9VVlJcXHRcXHRCSVQoMClcXHQvKiBVbmtub3duIFZMQU4gUnVsZSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTcwOiNkZWZpbmUgIEdTV0lQX1BDRV9WQ1RSTF9WSU5SXFx0XFx0R0VOTUFTSygyLCAxKSAvKiBWTEFOIEluZ3Jlc3MgVGFnIFJ1bGUgKi9cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE3MTojZGVmaW5lICBHU1dJUF9QQ0VfVkNUUkxfVklOUl9BTExcXHQwIC8qIEFkbWl0IHRhZ2dlZCBhbmQgdW50YWdnZWQgcGFja2V0cyAqL1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTcyOiNkZWZpbmUgIEdTV0lQX1BDRV9WQ1RSTF9WSU5SX1RBR0dFRFxcdDEgLyogQWRtaXQgb25seSB0YWdnZWQgcGFja2V0cyAqL1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTczOiNkZWZpbmUgIEdTV0lQX1BDRV9WQ1RSTF9WSU5SX1VOVEFHR0VEXFx0MiAvKiBBZG1pdCBvbmx5IHVudGFnZ2VkIHBhY2tldHMgKi9cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE3NDojZGVmaW5lICBHU1dJUF9QQ0VfVkNUUkxfVklNUlxcdFxcdEJJVCgzKVxcdC8qIFZMQU4gSW5ncmVzcyBNZW1iZXIgdmlvbGF0aW9uIHJ1bGUgKi9cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE3NTojZGVmaW5lICBHU1dJUF9QQ0VfVkNUUkxfVkVNUlxcdFxcdEJJVCg0KVxcdC8qIFZMQU4gRWdyZXNzIE1lbWJlciB2aW9sYXRpb24gcnVsZSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTc2OiNkZWZpbmUgIEdTV0lQX1BDRV9WQ1RSTF9WU1JcXHRcXHRCSVQoNSlcXHQvKiBWTEFOIFNlY3VyaXR5ICovXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxNzc6I2RlZmluZSAgR1NXSVBfUENFX1ZDVFJMX1ZJRDBcXHRcXHRCSVQoNilcXHQvKiBQcmlvcml0eSBUYWdnZWQgUnVsZSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTc4OiNkZWZpbmUgR1NXSVBfUENFX0RFRlBWSUQocClcXHRcXHQoMHg0ODYgKyAoKHApICogMHhBKSlcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oLTE3OS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE4MDojZGVmaW5lIEdTV0lQX01BQ19GTEVOXFx0XFx0XFx0MHg4QzVcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE4MTojZGVmaW5lIEdTV0lQX01BQ19DVFJMXzBwKHApXFx0XFx0KDB4OTAzICsgKChwKSAqIDB4QykpXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxODI6I2RlZmluZSAgR1NXSVBfTUFDX0NUUkxfMF9QQURFTlxcdFxcdEJJVCg4KVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTgzOiNkZWZpbmUgIEdTV0lQX01BQ19DVFJMXzBfRkNTX0VOXFx0QklUKDcpXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxODQ6I2RlZmluZSAgR1NXSVBfTUFDX0NUUkxfMF9GQ09OX01BU0tcXHQweDAwNzBcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE4NTojZGVmaW5lICBHU1dJUF9NQUNfQ1RSTF8wX0ZDT05fQVVUT1xcdDB4MDAwMFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTg2OiNkZWZpbmUgIEdTV0lQX01BQ19DVFJMXzBfRkNPTl9SWFxcdDB4MDAxMFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTg3OiNkZWZpbmUgIEdTV0lQX01BQ19DVFJMXzBfRkNPTl9UWFxcdDB4MDAyMFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTg4OiNkZWZpbmUgIEdTV0lQX01BQ19DVFJMXzBfRkNPTl9SWFRYXFx0MHgwMDMwXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxODk6I2RlZmluZSAgR1NXSVBfTUFDX0NUUkxfMF9GQ09OX05PTkVcXHQweDAwNDBcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE5MDojZGVmaW5lICBHU1dJUF9NQUNfQ1RSTF8wX0ZEVVBfTUFTS1xcdDB4MDAwQ1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTkxOiNkZWZpbmUgIEdTV0lQX01BQ19DVFJMXzBfRkRVUF9BVVRPXFx0MHgwMDAwXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxOTI6I2RlZmluZSAgR1NXSVBfTUFDX0NUUkxfMF9GRFVQX0VOXFx0MHgwMDA0XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxOTM6I2RlZmluZSAgR1NXSVBfTUFDX0NUUkxfMF9GRFVQX0RJU1xcdDB4MDAwQ1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTk0OiNkZWZpbmUgIEdTV0lQX01BQ19DVFJMXzBfR01JSV9NQVNLXFx0MHgwMDAzXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxOTU6I2RlZmluZSAgR1NXSVBfTUFDX0NUUkxfMF9HTUlJX0FVVE9cXHQweDAwMDBcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE5NjojZGVmaW5lICBHU1dJUF9NQUNfQ1RSTF8wX0dNSUlfTUlJXFx0MHgwMDAxXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxOTc6I2RlZmluZSAgR1NXSVBfTUFDX0NUUkxfMF9HTUlJX1JHTUlJXFx0MHgwMDAyXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxOTg6I2RlZmluZSBHU1dJUF9NQUNfQ1RSTF8ycChwKVxcdFxcdCgweDkwNSArICgocCkgKiAweEMpKVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTk5OiNkZWZpbmUgR1NXSVBfTUFDX0NUUkxfMl9MQ0hLTFxcdFxcdEJJVCgyKSAvKiBGcmFtZSBMZW5ndGggQ2hlY2sgTG9uZyBFbmFibGUgKi9cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjIwMDojZGVmaW5lIEdTV0lQX01BQ19DVFJMXzJfTUxFTlxcdFxcdEJJVCgzKSAvKiBNYXhpbXVtIFVudGFnZ2VkIEZyYW1lIExuZWd0aCAqL1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjAxOiNkZWZpbmUgR1NXSVBfTUFDX0NUUkxfNHAocClcXHRcXHQoMHg5MDcgKyAoKHApICogMHhDKSlcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjIwMjojZGVmaW5lICBHU1dJUF9NQUNfQ1RSTF80X0xQSUVOXFx0XFx0QklUKDcpIC8qIExQSSBNb2RlIEVuYWJsZSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjAzOiNkZWZpbmUgIEdTV0lQX01BQ19DVFJMXzRfR1dBSVRfTUFTS1xcdEdFTk1BU0soMTQsIDgpIC8qIExQSSBXYWl0IFRpbWUgMUcgKi9cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjIwNDojZGVmaW5lICBHU1dJUF9NQUNfQ1RSTF80X0dXQUlUKHQpXFx0dTE2X2VuY29kZV9iaXRzKCh0KSwgR1NXSVBfTUFDX0NUUkxfNF9HV0FJVF9NQVNLKVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjA1OiNkZWZpbmUgIEdTV0lQX01BQ19DVFJMXzRfV0FJVF9NQVNLXFx0R0VOTUFTSyg2LCAwKSAvKiBMUEkgV2FpdCBUaW1lIDEwME0gKi9cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjIwNjojZGVmaW5lICBHU1dJUF9NQUNfQ1RSTF80X1dBSVQodClcXHR1MTZfZW5jb2RlX2JpdHMoKHQpLCBHU1dJUF9NQUNfQ1RSTF80X1dBSVRfTUFTSylcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oLTIwNy1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oLTIwOC0vKiBFdGhlcm5ldCBTd2l0Y2ggRmV0Y2ggRE1BIFBvcnQgQ29udHJvbCBSZWdpc3RlciAqL1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjA5OiNkZWZpbmUgR1NXSVBfRkRNQV9QQ1RSTHAocClcXHRcXHQoMHhBODAgKyAoKHApICogMHg2KSlcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjIxMDojZGVmaW5lICBHU1dJUF9GRE1BX1BDVFJMX0VOXFx0XFx0QklUKDApXFx0LyogRkRNQSBQb3J0IEVuYWJsZSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjExOiNkZWZpbmUgIEdTV0lQX0ZETUFfUENUUkxfU1RFTlxcdFxcdEJJVCgxKVxcdC8qIFNwZWNpYWwgVGFnIEluc2VydGlvbiBFbmFibGUgKi9cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjIxMjojZGVmaW5lICBHU1dJUF9GRE1BX1BDVFJMX1ZMQU5NT0RfTUFTS1xcdEdFTk1BU0soNCwgMylcXHQvKiBWTEFOIE1vZGlmaWNhdGlvbiBDb250cm9sICovXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoyMTM6I2RlZmluZSAgR1NXSVBfRkRNQV9QQ1RSTF9WTEFOTU9EX1NISUZUXFx0M1xcdC8qIFZMQU4gTW9kaWZpY2F0aW9uIENvbnRyb2wgKi9cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjIxNDojZGVmaW5lICBHU1dJUF9GRE1BX1BDVFJMX1ZMQU5NT0RfRElTXFx0KDB4MCBcXHUwMDNjXFx1MDAzYyBHU1dJUF9GRE1BX1BDVFJMX1ZMQU5NT0RfU0hJRlQpXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoyMTU6I2RlZmluZSAgR1NXSVBfRkRNQV9QQ1RSTF9WTEFOTU9EX1BSSU9cXHQoMHgxIFxcdTAwM2NcXHUwMDNjIEdTV0lQX0ZETUFfUENUUkxfVkxBTk1PRF9TSElGVClcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjIxNjojZGVmaW5lICBHU1dJUF9GRE1BX1BDVFJMX1ZMQU5NT0RfSURcXHQoMHgyIFxcdTAwM2NcXHUwMDNjIEdTV0lQX0ZETUFfUENUUkxfVkxBTk1PRF9TSElGVClcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjIxNzojZGVmaW5lICBHU1dJUF9GRE1BX1BDVFJMX1ZMQU5NT0RfQk9USFxcdCgweDMgXFx1MDAzY1xcdTAwM2MgR1NXSVBfRkRNQV9QQ1RSTF9WTEFOTU9EX1NISUZUKVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmgtMjE4LVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmgtMjE5LS8qIEV0aGVybmV0IFN3aXRjaCBTdG9yZSBETUEgUG9ydCBDb250cm9sIFJlZ2lzdGVyICovXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoyMjA6I2RlZmluZSBHU1dJUF9TRE1BX1BDVFJMcChwKVxcdFxcdCgweEJDMCArICgocCkgKiAweDYpKVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjIxOiNkZWZpbmUgIEdTV0lQX1NETUFfUENUUkxfRU5cXHRcXHRCSVQoMClcXHQvKiBTRE1BIFBvcnQgRW5hYmxlICovXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoyMjI6I2RlZmluZSAgR1NXSVBfU0RNQV9QQ1RSTF9GQ0VOXFx0XFx0QklUKDEpXFx0LyogRmxvdyBDb250cm9sIEVuYWJsZSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjIzOiNkZWZpbmUgIEdTV0lQX1NETUFfUENUUkxfUEFVRldEXFx0QklUKDMpXFx0LyogUGF1c2UgRnJhbWUgRm9yd2FyZGluZyAqL1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmgtMjI0LVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjI1OiNkZWZpbmUgR1NXSVBfVEFCTEVfQUNUSVZFX1ZMQU5cXHRcXHQweDAxXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoyMjY6I2RlZmluZSBHU1dJUF9UQUJMRV9WTEFOX01BUFBJTkdcXHQweDAyXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoyMjc6I2RlZmluZSBHU1dJUF9UQUJMRV9NQUNfQlJJREdFXFx0XFx0MHgwYlxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjI4OiNkZWZpbmUgIEdTV0lQX1RBQkxFX01BQ19CUklER0VfS0VZM19GSURcXHRHRU5NQVNLKDUsIDApXFx0LyogRmlsdGVyaW5nIGlkZW50aWZpZXIgKi9cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjIyOTojZGVmaW5lICBHU1dJUF9UQUJMRV9NQUNfQlJJREdFX1ZBTDBfUE9SVFxcdEdFTk1BU0soNywgNClcXHQvKiBQb3J0IG9uIGxlYXJuZWQgZW50cmllcyAqL1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjMwOiNkZWZpbmUgIEdTV0lQX1RBQkxFX01BQ19CUklER0VfVkFMMV9TVEFUSUNcXHRCSVQoMClcXHRcXHQvKiBTdGF0aWMsIG5vbi1hZ2luZyBlbnRyeSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjMxOiNkZWZpbmUgIEdTV0lQX1RBQkxFX01BQ19CUklER0VfVkFMMV9WQUxJRFxcdEJJVCgxKVxcdFxcdC8qIFZhbGlkIGJpdCAqL1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmgtMjMyLVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaC0yNDEtICovXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoyNDI6I2RlZmluZSBHU1dJUF9NQVhfUEFDS0VUX0xFTkdUSFxcdDI0MDBcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oLTI0My1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjI0NDojZGVmaW5lIEdTV0lQX1ZMQU5fVU5BV0FSRV9QVklEXFx0MFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmgtMjQ1LVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjQ2OiNkZWZpbmUgR1NXSVBfTUFYX1BPUlRTXFx0XFx0N1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmgtMjQ3LVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaD0yNTU9c3RydWN0IGdzd2lwX2h3X2luZm8ge1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaC0yNTctXFx0dW5zaWduZWQgaW50IGFsbG93ZWRfY3B1X3BvcnRzO1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjU4OlxcdHMxNiBtaWlfY2ZnW0dTV0lQX01BWF9QT1JUU107XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoyNTk6XFx0czE2IG1paV9wY2R1W0dTV0lQX01BWF9QT1JUU107XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaC0yNjAtXFx0Ym9vbCBzdXBwb3J0c18yNTAwbTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg9MzAwPWludCBnc3dpcF9wcm9iZV9jb21tb24oc3RydWN0IGdzd2lwX3ByaXYgKnByaXYsIHUzMiB2ZXJzaW9uKTtcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oLTMwMS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjMwMjojZW5kaWYgLyogX19MQU5USVFfR1NXSVBfSCAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMi0vKlxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjM6ICogTGFudGlxIC8gSW50ZWwgLyBNYXhMaW5lYXIgR1NXSVAgY29tbW9uIGZ1bmN0aW9uIGxpYnJhcnlcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy00LSAqXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0xMS0gKlxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjEyOiAqIFRoZSBWTEFOIGFuZCBicmlkZ2UgbW9kZWwgdGhlIEdTV0lQIGhhcmR3YXJlIHVzZXMgZG9lcyBub3QgZGlyZWN0bHlcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0xMy0gKiBtYXRjaGVzIHRoZSBtb2RlbCBEU0EgdXNlcy5cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jPTEyOT1zdGF0aWMgaW50IGdzd2lwX21kaW9fcG9sbChzdHJ1Y3QgZ3N3aXBfcHJpdiAqcHJpdilcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTEzMi1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzoxMzM6XFx0cmV0dXJuIHJlZ21hcF9yZWFkX3BvbGxfdGltZW91dChwcml2LVxcdTAwM2VtZGlvLCBHU1dJUF9NRElPX0NUUkwsIGN0cmwsXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MTM0OlxcdFxcdFxcdFxcdFxcdCEoY3RybCBcXHUwMDI2IEdTV0lQX01ESU9fQ1RSTF9CVVNZKSwgNDAsIDQwMDApO1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTEzNS19XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYz0xMzc9c3RhdGljIGludCBnc3dpcF9tZGlvX3dyKHN0cnVjdCBtaWlfYnVzICpidXMsIGludCBhZGRyLCBpbnQgcmVnLCB1MTYgdmFsKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMTQ3LVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjE0ODpcXHRyZWdtYXBfd3JpdGUocHJpdi1cXHUwMDNlbWRpbywgR1NXSVBfTURJT19XUklURSwgdmFsKTtcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzoxNDk6XFx0cmVnbWFwX3dyaXRlKHByaXYtXFx1MDAzZW1kaW8sIEdTV0lQX01ESU9fQ1RSTCxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzoxNTA6XFx0XFx0ICAgICBHU1dJUF9NRElPX0NUUkxfQlVTWSB8IEdTV0lQX01ESU9fQ1RSTF9XUiB8XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MTUxOlxcdFxcdCAgICAgKChhZGRyIFxcdTAwMjYgR1NXSVBfTURJT19DVFJMX1BIWUFEX01BU0spIFxcdTAwM2NcXHUwMDNjIEdTV0lQX01ESU9fQ1RSTF9QSFlBRF9TSElGVCkgfFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjE1MjpcXHRcXHQgICAgIChyZWcgXFx1MDAyNiBHU1dJUF9NRElPX0NUUkxfUkVHQURfTUFTSykpO1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTE1My1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jPTE1Nz1zdGF0aWMgaW50IGdzd2lwX21kaW9fcmQoc3RydWN0IG1paV9idXMgKmJ1cywgaW50IGFkZHIsIGludCByZWcpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0xNjgtXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MTY5OlxcdHJlZ21hcF93cml0ZShwcml2LVxcdTAwM2VtZGlvLCBHU1dJUF9NRElPX0NUUkwsXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MTcwOlxcdFxcdCAgICAgR1NXSVBfTURJT19DVFJMX0JVU1kgfCBHU1dJUF9NRElPX0NUUkxfUkQgfFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjE3MTpcXHRcXHQgICAgICgoYWRkciBcXHUwMDI2IEdTV0lQX01ESU9fQ1RSTF9QSFlBRF9NQVNLKSBcXHUwMDNjXFx1MDAzYyBHU1dJUF9NRElPX0NUUkxfUEhZQURfU0hJRlQpIHxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzoxNzI6XFx0XFx0ICAgICAocmVnIFxcdTAwMjYgR1NXSVBfTURJT19DVFJMX1JFR0FEX01BU0spKTtcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0xNzMtXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0xNzktXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MTgwOlxcdGVyciA9IHJlZ21hcF9yZWFkKHByaXYtXFx1MDAzZW1kaW8sIEdTV0lQX01ESU9fUkVBRCwgXFx1MDAyNnZhbCk7XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMTgxLVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYz0yMjI9c3RhdGljIGludCBnc3dpcF9wY2VfdGFibGVfZW50cnlfcmVhZChzdHJ1Y3QgZ3N3aXBfcHJpdiAqcHJpdixcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTIyOC1cXHR1MzIgdG1wO1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjIyOTpcXHR1MTYgYWRkcl9tb2RlID0gdGJsLVxcdTAwM2VrZXlfbW9kZSA/IEdTV0lQX1BDRV9UQkxfQ1RSTF9PUE1PRF9LU1JEIDpcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzoyMzA6XFx0XFx0XFx0XFx0XFx0R1NXSVBfUENFX1RCTF9DVFJMX09QTU9EX0FEUkQ7XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMjMxLVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMjMzLVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjIzNDpcXHRlcnIgPSBnc3dpcF9zd2l0Y2hfcl90aW1lb3V0KHByaXYsIEdTV0lQX1BDRV9UQkxfQ1RSTCxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzoyMzU6XFx0XFx0XFx0XFx0ICAgICBHU1dJUF9QQ0VfVEJMX0NUUkxfQkFTKTtcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0yMzYtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTIzOC1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzoyMzk6XFx0cmVnbWFwX3dyaXRlKHByaXYtXFx1MDAzZWdzd2lwLCBHU1dJUF9QQ0VfVEJMX0FERFIsIHRibC1cXHUwMDNlaW5kZXgpO1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjI0MDpcXHRyZWdtYXBfd3JpdGVfYml0cyhwcml2LVxcdTAwM2Vnc3dpcCwgR1NXSVBfUENFX1RCTF9DVFJMLFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjI0MTpcXHRcXHRcXHQgIEdTV0lQX1BDRV9UQkxfQ1RSTF9BRERSX01BU0sgfFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjI0MjpcXHRcXHRcXHQgIEdTV0lQX1BDRV9UQkxfQ1RSTF9PUE1PRF9NQVNLIHxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzoyNDM6XFx0XFx0XFx0ICBHU1dJUF9QQ0VfVEJMX0NUUkxfQkFTLFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjI0NDpcXHRcXHRcXHQgIHRibC1cXHUwMDNldGFibGUgfCBhZGRyX21vZGUgfCBHU1dJUF9QQ0VfVEJMX0NUUkxfQkFTKTtcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0yNDUtXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MjQ2OlxcdGVyciA9IGdzd2lwX3N3aXRjaF9yX3RpbWVvdXQocHJpdiwgR1NXSVBfUENFX1RCTF9DVFJMLFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjI0NzpcXHRcXHRcXHRcXHQgICAgIEdTV0lQX1BDRV9UQkxfQ1RSTF9CQVMpO1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTI0OC1cXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMjUxLVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBBUlJBWV9TSVpFKHRibC1cXHUwMDNla2V5KTsgaSsrKSB7XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MjUyOlxcdFxcdGVyciA9IHJlZ21hcF9yZWFkKHByaXYtXFx1MDAzZWdzd2lwLCBHU1dJUF9QQ0VfVEJMX0tFWShpKSwgXFx1MDAyNnRtcCk7XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMjUzLVxcdFxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0yNTctXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIEFSUkFZX1NJWkUodGJsLVxcdTAwM2V2YWwpOyBpKyspIHtcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzoyNTg6XFx0XFx0ZXJyID0gcmVnbWFwX3JlYWQocHJpdi1cXHUwMDNlZ3N3aXAsIEdTV0lQX1BDRV9UQkxfVkFMKGkpLCBcXHUwMDI2dG1wKTtcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0yNTktXFx0XFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTI2My1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzoyNjQ6XFx0ZXJyID0gcmVnbWFwX3JlYWQocHJpdi1cXHUwMDNlZ3N3aXAsIEdTV0lQX1BDRV9UQkxfTUFTSywgXFx1MDAyNnRtcCk7XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMjY1LVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0yNjgtXFx0dGJsLVxcdTAwM2VtYXNrID0gdG1wO1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjI2OTpcXHRlcnIgPSByZWdtYXBfcmVhZChwcml2LVxcdTAwM2Vnc3dpcCwgR1NXSVBfUENFX1RCTF9DVFJMLCBcXHUwMDI2Y3J0bCk7XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMjcwLVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0yNzItXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MjczOlxcdHRibC1cXHUwMDNldHlwZSA9ICEhKGNydGwgXFx1MDAyNiBHU1dJUF9QQ0VfVEJMX0NUUkxfVFlQRSk7XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6Mjc0OlxcdHRibC1cXHUwMDNldmFsaWQgPSAhIShjcnRsIFxcdTAwMjYgR1NXSVBfUENFX1RCTF9DVFJMX1ZMRCk7XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6Mjc1OlxcdHRibC1cXHUwMDNlZ21hcCA9IChjcnRsIFxcdTAwMjYgR1NXSVBfUENFX1RCTF9DVFJMX0dNQVBfTUFTSykgXFx1MDAzZVxcdTAwM2UgNztcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0yNzYtXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYz0yODM9c3RhdGljIGludCBnc3dpcF9wY2VfdGFibGVfZW50cnlfd3JpdGUoc3RydWN0IGdzd2lwX3ByaXYgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0yODgtXFx0dTMyIGNydGw7XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6Mjg5OlxcdHUxNiBhZGRyX21vZGUgPSB0YmwtXFx1MDAzZWtleV9tb2RlID8gR1NXSVBfUENFX1RCTF9DVFJMX09QTU9EX0tTV1IgOlxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjI5MDpcXHRcXHRcXHRcXHRcXHRHU1dJUF9QQ0VfVEJMX0NUUkxfT1BNT0RfQURXUjtcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0yOTEtXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0yOTMtXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6Mjk0OlxcdGVyciA9IGdzd2lwX3N3aXRjaF9yX3RpbWVvdXQocHJpdiwgR1NXSVBfUENFX1RCTF9DVFJMLFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjI5NTpcXHRcXHRcXHRcXHQgICAgIEdTV0lQX1BDRV9UQkxfQ1RSTF9CQVMpO1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTI5Ni1cXHRpZiAoZXJyKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0zMDAtXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MzAxOlxcdHJlZ21hcF93cml0ZShwcml2LVxcdTAwM2Vnc3dpcCwgR1NXSVBfUENFX1RCTF9BRERSLCB0YmwtXFx1MDAzZWluZGV4KTtcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzozMDI6XFx0cmVnbWFwX3dyaXRlX2JpdHMocHJpdi1cXHUwMDNlZ3N3aXAsIEdTV0lQX1BDRV9UQkxfQ1RSTCxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzozMDM6XFx0XFx0XFx0ICBHU1dJUF9QQ0VfVEJMX0NUUkxfQUREUl9NQVNLIHxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzozMDQ6XFx0XFx0XFx0ICBHU1dJUF9QQ0VfVEJMX0NUUkxfT1BNT0RfTUFTSyxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0zMDUtXFx0XFx0XFx0ICB0YmwtXFx1MDAzZXRhYmxlIHwgYWRkcl9tb2RlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTMwNy1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVJSQVlfU0laRSh0YmwtXFx1MDAzZWtleSk7IGkrKylcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzozMDg6XFx0XFx0cmVnbWFwX3dyaXRlKHByaXYtXFx1MDAzZWdzd2lwLCBHU1dJUF9QQ0VfVEJMX0tFWShpKSwgdGJsLVxcdTAwM2VrZXlbaV0pO1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTMwOS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0zMTAtXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIEFSUkFZX1NJWkUodGJsLVxcdTAwM2V2YWwpOyBpKyspXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MzExOlxcdFxcdHJlZ21hcF93cml0ZShwcml2LVxcdTAwM2Vnc3dpcCwgR1NXSVBfUENFX1RCTF9WQUwoaSksIHRibC1cXHUwMDNldmFsW2ldKTtcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0zMTItXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MzEzOlxcdHJlZ21hcF93cml0ZV9iaXRzKHByaXYtXFx1MDAzZWdzd2lwLCBHU1dJUF9QQ0VfVEJMX0NUUkwsXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MzE0OlxcdFxcdFxcdCAgR1NXSVBfUENFX1RCTF9DVFJMX0FERFJfTUFTSyB8XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MzE1OlxcdFxcdFxcdCAgR1NXSVBfUENFX1RCTF9DVFJMX09QTU9EX01BU0ssXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMzE2LVxcdFxcdFxcdCAgdGJsLVxcdTAwM2V0YWJsZSB8IGFkZHJfbW9kZSk7XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMzE3LVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjMxODpcXHRyZWdtYXBfd3JpdGUocHJpdi1cXHUwMDNlZ3N3aXAsIEdTV0lQX1BDRV9UQkxfTUFTSywgdGJsLVxcdTAwM2VtYXNrKTtcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0zMTktXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MzIwOlxcdHJlZ21hcF9yZWFkKHByaXYtXFx1MDAzZWdzd2lwLCBHU1dJUF9QQ0VfVEJMX0NUUkwsIFxcdTAwMjZjcnRsKTtcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzozMjE6XFx0Y3J0bCBcXHUwMDI2PSB+KEdTV0lQX1BDRV9UQkxfQ1RSTF9UWVBFIHwgR1NXSVBfUENFX1RCTF9DVFJMX1ZMRCB8XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MzIyOlxcdFxcdCAgR1NXSVBfUENFX1RCTF9DVFJMX0dNQVBfTUFTSyk7XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMzIzLVxcdGlmICh0YmwtXFx1MDAzZXR5cGUpXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MzI0OlxcdFxcdGNydGwgfD0gR1NXSVBfUENFX1RCTF9DVFJMX1RZUEU7XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMzI1LVxcdGlmICh0YmwtXFx1MDAzZXZhbGlkKVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjMyNjpcXHRcXHRjcnRsIHw9IEdTV0lQX1BDRV9UQkxfQ1RSTF9WTEQ7XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MzI3OlxcdGNydGwgfD0gKHRibC1cXHUwMDNlZ21hcCBcXHUwMDNjXFx1MDAzYyA3KSBcXHUwMDI2IEdTV0lQX1BDRV9UQkxfQ1RSTF9HTUFQX01BU0s7XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MzI4OlxcdGNydGwgfD0gR1NXSVBfUENFX1RCTF9DVFJMX0JBUztcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzozMjk6XFx0cmVnbWFwX3dyaXRlKHByaXYtXFx1MDAzZWdzd2lwLCBHU1dJUF9QQ0VfVEJMX0NUUkwsIGNydGwpO1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTMzMC1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzozMzE6XFx0ZXJyID0gZ3N3aXBfc3dpdGNoX3JfdGltZW91dChwcml2LCBHU1dJUF9QQ0VfVEJMX0NUUkwsXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MzMyOlxcdFxcdFxcdFxcdCAgICAgR1NXSVBfUENFX1RCTF9DVFJMX0JBUyk7XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMzMzLVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM9MzQ0PXN0YXRpYyBpbnQgZ3N3aXBfYWRkX3NpbmdsZV9wb3J0X2JyKHN0cnVjdCBnc3dpcF9wcml2ICpwcml2LCBpbnQgcG9ydCwgYm9vbCBhZGQpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0zNTAtXFx0dmxhbl9hY3RpdmUuaW5kZXggPSBwb3J0ICsgMTtcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzozNTE6XFx0dmxhbl9hY3RpdmUudGFibGUgPSBHU1dJUF9UQUJMRV9BQ1RJVkVfVkxBTjtcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzozNTI6XFx0dmxhbl9hY3RpdmUua2V5WzBdID0gR1NXSVBfVkxBTl9VTkFXQVJFX1BWSUQ7XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMzUzLVxcdHZsYW5fYWN0aXZlLnZhbFswXSA9IHBvcnQgKyAxIC8qIGZpZCAqLztcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTM2NC1cXHR2bGFuX21hcHBpbmcuaW5kZXggPSBwb3J0ICsgMTtcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzozNjU6XFx0dmxhbl9tYXBwaW5nLnRhYmxlID0gR1NXSVBfVEFCTEVfVkxBTl9NQVBQSU5HO1xcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wN1QxODoyMDowNy43MTQzNjY3MTNaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoxODUzNDI1ODAxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipBbmFseXppbmcgdGhlIExhbnRpcSBEU0EgRHJpdmVyIENvbmZpZ3VyYXRpb24qKlxuXG5SaWdodCwgbGV0J3MgZGl2ZSBpbnRvIHRoZSBgZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9LY29uZmlnYCBmaWxlLiBJIG5lZWQgYSBjbGVhciBwaWN0dXJlIG9mIHdoYXQncyBnb2luZyBvbiB3aXRoaW4gdGhhdCBkaXJlY3RvcnkuIEkgd2FudCB0byBzZWUgdGhlIGNvbXBsZXRlIHNldCBvZiBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXZhaWxhYmxlIGZvciB0aGUgTGFudGlxIERTQSBkcml2ZXJzLiBVbmRlcnN0YW5kaW5nIHRoZSBLY29uZmlnIHN0cnVjdHVyZSBpcyBrZXkuIFRoaXMgd2lsbCBxdWlja2x5IGV4cG9zZSB0aGUgZGVwZW5kZW5jaWVzLCByZWxhdGlvbnNoaXBzIGJldHdlZW4gdGhlIHZhcmlvdXMgZmVhdHVyZXMsIGFuZCBob3cgdGhleSBhcmUgbG9naWNhbGx5IGdyb3VwZWQuIEknbSBlc3BlY2lhbGx5IGludGVyZXN0ZWQgaW4gYW55IHBsYXRmb3JtLXNwZWNpZmljIHN3aXRjaGVzIGFuZCBob3cgdGhlIHZhcmlvdXMgZmVhdHVyZXMgYXJlIGVuYWJsZWQgYW5kIGRpc2FibGVkLiBLbm93aW5nIHRoZSBvcmdhbml6YXRpb24gb2YgdGhlIEtjb25maWcgYWxzbyB0ZWxscyBtZSB0aGUgb3ZlcmFsbCBkcml2ZXIgYXJjaGl0ZWN0dXJlLiBMZXQncyBzZWUgaG93IHdlbGwgaXQncyBkZXNpZ25lZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjM5NTksIk91dHB1dFRva2VucyI6NDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wN1QxODoyMDowOS41Njc3OTQ2ODRaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NjcwMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC9kc2EvbGFudGlxL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogMTAwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0Y29uZmlnIE5FVF9EU0FfTEFOVElRX0NPTU1PTlxcbiAgIDI6XFx0XFx0dHJpc3RhdGVcXG4gICAzOlxcdFxcdHNlbGVjdCBSRUdNQVBcXG4gICA0OlxcdFxcbiAgIDU6XFx0Y29uZmlnIE5FVF9EU0FfTEFOVElRX0dTV0lQXFxuICAgNjpcXHRcXHR0cmlzdGF0ZSBcXFwiTGFudGlxIC8gSW50ZWwgR1NXSVBcXFwiXFxuICAgNzpcXHRcXHRkZXBlbmRzIG9uIEhBU19JT01FTVxcbiAgIDg6XFx0XFx0c2VsZWN0IE5FVF9EU0FfVEFHX0dTV0lQXFxuICAgOTpcXHRcXHRzZWxlY3QgTkVUX0RTQV9MQU5USVFfQ09NTU9OXFxuICAxMDpcXHRcXHRoZWxwXFxuICAxMTpcXHRcXHQgIFRoaXMgZW5hYmxlcyBzdXBwb3J0IGZvciB0aGUgTGFudGlxIC8gSW50ZWwgR1NXSVAgMi4xIGZvdW5kIGluXFxuICAxMjpcXHRcXHQgIHRoZSB4cngyMDAgLyBWUjkgU29DLlxcbiAgMTM6XFx0XFxuICAxNDpcXHRjb25maWcgTkVUX0RTQV9NWExfR1NXMVhYXFxuICAxNTpcXHRcXHR0cmlzdGF0ZSBcXFwiTWF4TGluZWFyIEdTVzF4eCBFdGhlcm5ldCBzd2l0Y2ggc3VwcG9ydFxcXCJcXG4gIDE2OlxcdFxcdHNlbGVjdCBORVRfRFNBX1RBR19NWExfR1NXMVhYXFxuICAxNzpcXHRcXHRzZWxlY3QgTkVUX0RTQV9MQU5USVFfQ09NTU9OXFxuICAxODpcXHRcXHRzZWxlY3QgUEhZX0NPTU1PTl9QUk9QU1xcbiAgMTk6XFx0XFx0aGVscFxcbiAgMjA6XFx0XFx0ICBUaGlzIGVuYWJsZXMgc3VwcG9ydCBmb3IgdGhlIEludGVsL01heExpbmVhciBHU1cxeHggZmFtaWx5IG9mIDFHRVxcbiAgMjE6XFx0XFx0ICBzd2l0Y2hlcy5cXG4gIDIyOlxcdFxcdCAgICBHU1cxMjAgNCBwb3J0LCAyIFBIWXMsIFJHTUlJIFxcdTAwMjYgU0dNSUkvMjUwMEJhc2UtWFxcbiAgMjM6XFx0XFx0ICAgIEdTVzEyNSA0IHBvcnQsIDIgUEhZcywgUkdNSUkgXFx1MDAyNiBTR01JSS8yNTAwQmFzZS1YLCBpbmR1c3RyaWFsIHRlbXBlcmF0dXJlXFxuICAyNDpcXHRcXHQgICAgR1NXMTQwIDYgcG9ydCwgNCBQSFlzLCBSR01JSSBcXHUwMDI2IFNHTUlJLzI1MDBCYXNlLVhcXG4gIDI1OlxcdFxcdCAgICBHU1cxNDEgNiBwb3J0LCA0IFBIWXMsIFJHTUlJIFxcdTAwMjYgU0dNSUlcXG4gIDI2OlxcdFxcdCAgICBHU1cxNDUgNiBwb3J0LCA0IFBIWXMsIFJHTUlJIFxcdTAwMjYgU0dNSUkvMjUwMEJhc2UtWCwgaW5kdXN0cmlhbCB0ZW1wZXJhdHVyZVxcbiAgMjc6XFx0XFx0ICAgIEdTVzE1MCA3IHBvcnQsIDUgUEhZcywgMXggR01JSS9SR01JSSwgMXggUkdNSUlcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDdUMTg6MjA6MDkuNTY3ODUzNjk0WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6NTU1ODg3NjA5MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoaWNoIHNwZWNpZmljIGJ1c2VzIG9yIGludGVyZmFjZXMgYXJlIHVzZWQgd2l0aCB0aGUgYE5FVF9EU0FfTEFOVElRX0dTV0lQYCBhbmQgYE5FVF9EU0FfTVhMX0dTVzFYWGAgRFNBIChEaXN0cmlidXRlZCBTd2l0Y2ggQXJjaGl0ZWN0dXJlKSBkcml2ZXJzLiBNeSBmaXJzdCB0aG91Z2h0IGlzIHRvIHRyYWNlIHRoZSBpbnN0YW50aWF0aW9uLiBJJ2xsIG5lZWQgdG8gZmlndXJlIG91dCB3aGVyZSB0aGVzZSBhcmUgY29taW5nIGZyb20uIFRoZSBiZXN0IHBsYWNlIHRvIHN0YXJ0IGlzIHRvIHNlYXJjaCBmb3IgdGhlc2UgdHdvIHN5bWJvbHMgZGlyZWN0bHksIHRvIHNlZSB3aGVyZSB0aGV5IGFyZSBiZWluZyB1c2VkLlxuXG5UaGVuLCBJJ2xsIHN3aXRjaCBnZWFycyBhbmQgbG9vayB3aXRoaW4gdGhlIGBkcml2ZXJzL25ldC9kc2EvbGFudGlxL2AgZGlyZWN0b3J5LiBUaGF0J3MgdGhlIG9idmlvdXMgcGxhY2UsIHNpbmNlIHRoZSB0ZXh0IGdpdmVzIG1lIGEgc3Ryb25nIGhpbnQuIEknbGwgYmUgbG9va2luZyBmb3IgYW55IHByb2JlIGZ1bmN0aW9ucywgb3IgZHJpdmVyIHJlZ2lzdHJhdGlvbiByb3V0aW5lcy4gVGhhdCBzaG91bGQgZ2l2ZSBtZSB0aGUgY29ubmVjdGlvbiBiZXR3ZWVuIHRoZSBoYXJkd2FyZSBhbmQgdGhlIGRyaXZlcnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI0NzI1LCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjEsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wN1QxODoyMDoxNS4xMjY3MzI0NTdaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDcxOTA5NTIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibW9kdWxlXy4qZHJpdmVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2RzYS9sYW50aXFcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYz01MTE9c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgZ3N3aXBfZHJpdmVyID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy01MjAtXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYzo1MjE6bW9kdWxlX3BsYXRmb3JtX2RyaXZlcihnc3dpcF9kcml2ZXIpO1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtNTIyLVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9teGwtZ3N3MXh4LmM9OTI3PXN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgZ3N3MXh4X2RyaXZlciA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbXhsLWdzdzF4eC5jLTkzNi1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL214bC1nc3cxeHguYzo5Mzc6bWRpb19tb2R1bGVfZHJpdmVyKGdzdzF4eF9kcml2ZXIpO1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbXhsLWdzdzF4eC5jLTkzOC1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDdUMTg6MjA6MTUuMTczOTI4MzE5WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MTI3Nzg0NTY1MzcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiBXb3J0aEZ1enppbmcgZm9yIE5ldHdvcmsgU3dpdGNoIERyaXZlcnMqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBpbnZlc3RpZ2F0ZSBgbXhsLWdzdzF4eC5jYCBhbmQgYGxhbnRpcV9nc3dpcC5jYC4gRnJvbSBteSBrbm93bGVkZ2UsIGBnc3dpcF9kcml2ZXJgIGlzIGEgYHBsYXRmb3JtX2RyaXZlcmAgZGVzaWduZWQgZm9yIExhbnRpcSB4cngyMDAveHJ4MzAwIFNvQ3MsIHdoaWNoIGFyZSBNSVBTLWJhc2VkLiBPbiB0aGUgb3RoZXIgaGFuZCwgYGdzdzF4eF9kcml2ZXJgIGlzIGFuIGBtZGlvX2RyaXZlcmAgcmVzcG9uc2libGUgZm9yIG1hbmFnaW5nIE1heExpbmVhciBHU1cxeHggRXRoZXJuZXQgc3dpdGNoZXMgY29ubmVjdGVkIHRocm91Z2ggYW4gTURJTyBidXMuXG5cblRoZSBjcnVjaWFsIHF1ZXN0aW9uIGltbWVkaWF0ZWx5IGFyaXNlczogY2FuIHRoZXNlIERTQSBzd2l0Y2hlcywgTURJTyBkcml2ZXJzLCBvciBwbGF0Zm9ybSBkcml2ZXJzIGJlIGVmZmVjdGl2ZWx5IGVtdWxhdGVkIG9yIGluc3RhbnRpYXRlZCB3aXRoaW4gYSBzdGFuZGFyZCBzeXprYWxsZXIgb3IgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgbGlrZSBRRU1VIHg4Nl82ND8gVGhpcyBpcyB0aGUga2V5IHRvIGRldGVybWluaW5nIGlmIHRoZXkncmUgXCJXb3J0aEZ1enppbmdcIi5cblxuTXkgbmV4dCBzdGVwIGlzIHRvIGNvbnN1bHQgdGhlIGZ1enppbmcgZ3VpZGVsaW5lcywgc3BlY2lmaWNhbGx5IHNlY3Rpb25zIDIgYW5kIDMuIFNlY3Rpb24gMiBvdXRsaW5lcyB0aGUgbmVnYXRpdmUgY3JpdGVyaWEsIHRoZSBzaXR1YXRpb25zIHdoZXJlIHdlICpkb24ndCogcmV0dXJuIGBXb3J0aEZ1enppbmc9dHJ1ZWAuIEl0IHN0YXRlcyB0aGF0IGNvZGUgcGF0aHMgYXJlIG5vdCB3b3J0aCBmdXp6aW5nIGlmIHRoZXkgaW52b2x2ZTpcblxuKiAgIE5vbi1rZXJuZWwgYW5kIG5vbi1leGVjdXRhYmxlIGNoYW5nZXMsXG4qICAgU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlIC0gd2hpY2ggaW5jbHVkZXMgdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoZXMsIFNtYXJ0TklDcywgR1BVIGRyaXZlcnMgKGxpa2UgbWx4c3csIHBkc19jb3JlLCBxZWQsIGlvbmljLCBhbWRncHUpIHRoYXQgbmVlZCBwaHlzaWNhbCBBU0lDL1BDSWUgY2FyZHMgdGhhdCBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuIEl0IGFsc28gaW5jbHVkZXMgY29kZSBwYXRocyB1bmlxdWUgdG8gYXJjaGl0ZWN0dXJlcyBvdGhlciB0aGFuIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLlxuKiAgIFVucmVhY2hhYmxlIGV4ZWN1dGlvbiBwYXRocy5cblxuU2VjdGlvbiAzLCBjb252ZXJzZWx5LCBzcGVsbHMgb3V0IHdoZW4gd2UgKmRvKiByZXR1cm4gYFdvcnRoRnV6emluZz10cnVlYC4gQmFzaWNhbGx5LCBhbnkgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSBpcyBvZiBpbnRlcmVzdCwgaW5jbHVkaW5nIGNvZGUgZm9yIGNvcmUgc3Vic3lzdGVtcywgcmVmYWN0b3JpbmdzLCBjb2RlIGNsZWFudXBzLCBydW50aW1lIGFzc2VydGlvbnMsIGRlZmVuc2l2ZSBjaGVja3MsIGFuZCByZWFjaGFibGUgZHJpdmVycyBhbmQgcHJvdG9jb2xzIHN1Y2ggYXMgdGhvc2UgYWNjZXNzaWJsZSB2aWEgdmlydHVhbCBidXNlcyBsaWtlIHZpcnRpbywgVVNCIGdhZGdldCwgbG9vcGJhY2ssIG5ldGxpbmssIGJpbmRlciwgb3Igc29ja2V0cy5cblxuU28sIGhlcmUncyBteSBwaXZvdGFsIHF1ZXN0aW9uOiBhcmUgdGhlc2UgTURJTyBhbmQgcGxhdGZvcm0gc3dpdGNoIGRyaXZlcnMgZm9yIHRoZSBMYW50aXEgU29DIGFuZCB0aGUgTWF4TGluZWFyIEdTVzF4eCBhY2Nlc3NpYmxlIHdpdGhpbiBhIHN0YW5kYXJkIHN5emthbGxlciBzZXR1cCBydW5uaW5nIG9uIGFtZDY0IGluIFFFTVU/XG5cblRvIGRldGVybWluZSB0aGlzLCBJIG5lZWQgdG8gY2hlY2sgd2hldGhlciB0aGUgTURJTyBvciBwbGF0Zm9ybSBkcml2ZXJzIGNhbiBiZSBwcm9iZWQgc3VjY2Vzc2Z1bGx5IHdpdGhvdXQgdGhlIHByZXNlbmNlIG9mIHBoeXNpY2FsIG9yIGRldmljZS10cmVlIChPRikgZGV2aWNlcy4gTG9va2luZyBhdCBgbGFudGlxX2dzd2lwLmNgLCBzcGVjaWZpY2FsbHkgYGdzd2lwX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpYCwgaXQgc2VlbXMgdG8gcmVxdWlyZSBhIGRldmljZSB0cmVlIG5vZGUgb3IgYSBwbGF0Zm9ybSBkZXZpY2UgZm9yIGVpdGhlciBgbGFudGlxLHhyeDIwMC1nc3dpcGAgb3IgYGxhbnRpcSx4cngzMDAtZ3N3aXBgLiBUaGlzIGlzIGEgaHVyZGxlLiBUaGVuIGluIGBteGwtZ3N3MXh4LmNgLCB0aGUgYGdzdzF4eF9wcm9iZShzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpYCBmdW5jdGlvbiBuZWVkcyB0byBiZSBjaGVja2VkLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNTI3MiwiT3V0cHV0VG9rZW5zIjo0OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU2OCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wN1QxODoyMDoyNy45NTIzODc3ODZaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTI5MTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9teGwtZ3N3MXh4LmNcIixcbiAgXCJGaXJzdExpbmVcIjogODYwLFxuICBcIkxpbmVDb3VudFwiOiA4MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgODYwOlxcdFxcdC5wY2VfbWljcm9jb2RlX3NpemVcXHQ9IEFSUkFZX1NJWkUoZ3N3MXh4X3BjZV9taWNyb2NvZGUpLFxcbiA4NjE6XFx0XFx0LnRhZ19wcm90b2NvbFxcdFxcdD0gRFNBX1RBR19QUk9UT19NWExfR1NXMVhYLFxcbiA4NjI6XFx0fTtcXG4gODYzOlxcdFxcbiA4NjQ6XFx0c3RhdGljIGNvbnN0IHN0cnVjdCBnc3dpcF9od19pbmZvIGdzdzE0MV9kYXRhID0ge1xcbiA4NjU6XFx0XFx0Lm1heF9wb3J0c1xcdFxcdD0gR1NXMVhYX1BPUlRTLFxcbiA4NjY6XFx0XFx0LmFsbG93ZWRfY3B1X3BvcnRzXFx0PSBCSVQoR1NXMVhYX01JSV9QT1JUKSB8IEJJVChHU1cxWFhfU0dNSUlfUE9SVCksXFxuIDg2NzpcXHRcXHQubWlpX2NmZyA9IHtcXG4gODY4OlxcdFxcdFxcdFswIC4uLiBHU1cxWFhfTUlJX1BPUlQgLSAxXSA9IC0xLFxcbiA4Njk6XFx0XFx0XFx0W0dTVzFYWF9NSUlfUE9SVF0gPSBHU1dJUF9NSUlfQ0ZHcCgwKSxcXG4gODcwOlxcdFxcdFxcdFtHU1cxWFhfTUlJX1BPUlQgKyAxIC4uLiBHU1dJUF9NQVhfUE9SVFMgLSAxXSA9IC0xLFxcbiA4NzE6XFx0XFx0fSxcXG4gODcyOlxcdFxcdC5taWlfcGNkdSA9IHtcXG4gODczOlxcdFxcdFxcdFswIC4uLiBHU1cxWFhfTUlJX1BPUlQgLSAxXSA9IC0xLFxcbiA4NzQ6XFx0XFx0XFx0W0dTVzFYWF9NSUlfUE9SVF0gPSBHU1dJUF9NSUlfUENEVTAsXFxuIDg3NTpcXHRcXHRcXHRbR1NXMVhYX01JSV9QT1JUICsgMSAuLi4gR1NXSVBfTUFYX1BPUlRTIC0gMV0gPSAtMSxcXG4gODc2OlxcdFxcdH0sXFxuIDg3NzpcXHRcXHQubWFjX3NlbGVjdF9wY3NcXHRcXHQ9IGdzdzF4eF9waHlsaW5rX21hY19zZWxlY3RfcGNzLFxcbiA4Nzg6XFx0XFx0LnBoeWxpbmtfZ2V0X2NhcHNcXHQ9IGdzdzF4eF9waHlsaW5rX2dldF9jYXBzLFxcbiA4Nzk6XFx0XFx0LnBvcnRfc2V0dXBcXHRcXHQ9IGdzdzF4eF9wb3J0X3NldHVwLFxcbiA4ODA6XFx0XFx0LnBjZV9taWNyb2NvZGVcXHRcXHQ9IFxcdTAwMjZnc3cxeHhfcGNlX21pY3JvY29kZSxcXG4gODgxOlxcdFxcdC5wY2VfbWljcm9jb2RlX3NpemVcXHQ9IEFSUkFZX1NJWkUoZ3N3MXh4X3BjZV9taWNyb2NvZGUpLFxcbiA4ODI6XFx0XFx0LnRhZ19wcm90b2NvbFxcdFxcdD0gRFNBX1RBR19QUk9UT19NWExfR1NXMVhYLFxcbiA4ODM6XFx0fTtcXG4gODg0OlxcdFxcbiA4ODU6XFx0c3RhdGljIGNvbnN0IHN0cnVjdCBnc3dpcF9od19pbmZvIGdzdzE1MF9kYXRhID0ge1xcbiA4ODY6XFx0XFx0Lm1heF9wb3J0c1xcdFxcdD0gR1NXMTUwX1BPUlRTLFxcbiA4ODc6XFx0XFx0LmFsbG93ZWRfY3B1X3BvcnRzXFx0PSBCSVQoNSkgfCBCSVQoNiksXFxuIDg4ODpcXHRcXHQubWlpX2NmZyA9IHtcXG4gODg5OlxcdFxcdFxcdFswIC4uLiA0XSA9IC0xLFxcbiA4OTA6XFx0XFx0XFx0WzVdID0gMCxcXG4gODkxOlxcdFxcdFxcdFs2XSA9IDEwLFxcbiA4OTI6XFx0XFx0fSxcXG4gODkzOlxcdFxcdC5taWlfcGNkdSA9IHtcXG4gODk0OlxcdFxcdFxcdFswIC4uLiA0XSA9IC0xLFxcbiA4OTU6XFx0XFx0XFx0WzVdID0gMSxcXG4gODk2OlxcdFxcdFxcdFs2XSA9IDExLFxcbiA4OTc6XFx0XFx0fSxcXG4gODk4OlxcdFxcdC5waHlsaW5rX2dldF9jYXBzXFx0PSBnc3cxNTBfcGh5bGlua19nZXRfY2FwcyxcXG4gODk5OlxcdFxcdC8qIFRoZXJlIGlzIG9ubHkgYSBzaW5nbGUgUkdNSUlfU0xFV19DRkcgcmVnaXN0ZXIgaW4gR1NXMTUwIGFuZCBpdCBpc1xcbiA5MDA6XFx0XFx0ICogdW5rbm93biBpZiBSR01JSSBzbGV3IGNvbmZpZ3VyYXRpb24gYWZmZWN0cyBib3RoIFJHTUlJIHBvcnRzXFxuIDkwMTpcXHRcXHQgKiBvciBvbmx5IHBvcnQgNS4gVXNlIC5wb3J0X3NldHVwIHdoaWNoIGFzc3VtZXMgaXQgYWZmZWN0cyBwb3J0IDVcXG4gOTAyOlxcdFxcdCAqIGZvciBub3cuXFxuIDkwMzpcXHRcXHQgKi9cXG4gOTA0OlxcdFxcdC5wb3J0X3NldHVwXFx0XFx0PSBnc3cxeHhfcG9ydF9zZXR1cCxcXG4gOTA1OlxcdFxcdC5wY2VfbWljcm9jb2RlXFx0XFx0PSBcXHUwMDI2Z3N3MXh4X3BjZV9taWNyb2NvZGUsXFxuIDkwNjpcXHRcXHQucGNlX21pY3JvY29kZV9zaXplXFx0PSBBUlJBWV9TSVpFKGdzdzF4eF9wY2VfbWljcm9jb2RlKSxcXG4gOTA3OlxcdFxcdC50YWdfcHJvdG9jb2xcXHRcXHQ9IERTQV9UQUdfUFJPVE9fTVhMX0dTVzFYWCxcXG4gOTA4OlxcdH07XFxuIDkwOTpcXHRcXG4gOTEwOlxcdC8qXFxuIDkxMTpcXHQgKiBHU1cxMjUgaXMgdGhlIGluZHVzdHJpYWwgdGVtcGVyYXR1cmUgdmVyc2lvbiBvZiBHU1cxMjAuXFxuIDkxMjpcXHQgKiBHU1cxNDUgaXMgdGhlIGluZHVzdHJpYWwgdGVtcGVyYXR1cmUgdmVyc2lvbiBvZiBHU1cxNDAuXFxuIDkxMzpcXHQgKi9cXG4gOTE0OlxcdHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGdzdzF4eF9vZl9tYXRjaFtdID0ge1xcbiA5MTU6XFx0XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJpbnRlbCxnc3cxNTBcXFwiLCAuZGF0YSA9IFxcdTAwMjZnc3cxNTBfZGF0YSB9LFxcbiA5MTY6XFx0XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJsYW50aXEscGViNzA4NFxcXCIsIC5kYXRhID0gXFx1MDAyNmdzdzE1MF9kYXRhIH0sXFxuIDkxNzpcXHRcXHR7IC5jb21wYXRpYmxlID0gXFxcIm1heGxpbmVhcixnc3cxMjBcXFwiLCAuZGF0YSA9IFxcdTAwMjZnc3cxMnhfZGF0YSB9LFxcbiA5MTg6XFx0XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJtYXhsaW5lYXIsZ3N3MTI1XFxcIiwgLmRhdGEgPSBcXHUwMDI2Z3N3MTJ4X2RhdGEgfSxcXG4gOTE5OlxcdFxcdHsgLmNvbXBhdGlibGUgPSBcXFwibWF4bGluZWFyLGdzdzE0MFxcXCIsIC5kYXRhID0gXFx1MDAyNmdzdzE0MF9kYXRhIH0sXFxuIDkyMDpcXHRcXHR7IC5jb21wYXRpYmxlID0gXFxcIm1heGxpbmVhcixnc3cxNDFcXFwiLCAuZGF0YSA9IFxcdTAwMjZnc3cxNDFfZGF0YSB9LFxcbiA5MjE6XFx0XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJtYXhsaW5lYXIsZ3N3MTQ1XFxcIiwgLmRhdGEgPSBcXHUwMDI2Z3N3MTQwX2RhdGEgfSxcXG4gOTIyOlxcdFxcdHsgLyogc2VudGluZWwgKi8gfSxcXG4gOTIzOlxcdH07XFxuIDkyNDpcXHRcXG4gOTI1OlxcdE1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGdzdzF4eF9vZl9tYXRjaCk7XFxuIDkyNjpcXHRcXG4gOTI3OlxcdHN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgZ3N3MXh4X2RyaXZlciA9IHtcXG4gOTI4OlxcdFxcdC5wcm9iZVxcdFxcdD0gZ3N3MXh4X3Byb2JlLFxcbiA5Mjk6XFx0XFx0LnJlbW92ZVxcdFxcdD0gZ3N3MXh4X3JlbW92ZSxcXG4gOTMwOlxcdFxcdC5zaHV0ZG93blxcdD0gZ3N3MXh4X3NodXRkb3duLFxcbiA5MzE6XFx0XFx0Lm1kaW9kcnYuZHJpdmVyXFx0PSB7XFxuIDkzMjpcXHRcXHRcXHQubmFtZSA9IFxcXCJteGwtZ3N3MXh4XFxcIixcXG4gOTMzOlxcdFxcdFxcdC5vZl9tYXRjaF90YWJsZSA9IGdzdzF4eF9vZl9tYXRjaCxcXG4gOTM0OlxcdFxcdH0sXFxuIDkzNTpcXHR9O1xcbiA5MzY6XFx0XFxuIDkzNzpcXHRtZGlvX21vZHVsZV9kcml2ZXIoZ3N3MXh4X2RyaXZlcik7XFxuIDkzODpcXHRcXG4gOTM5OlxcdE1PRFVMRV9BVVRIT1IoXFxcIkRhbmllbCBHb2xsZSBcXHUwMDNjZGFuaWVsQG1ha3JvdG9waWEub3JnXFx1MDAzZVxcXCIpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wN1QxODoyMDoyNy45NTI0ODM0MzZaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6Mzc4NzMwODU0OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBJbml0aWFsIEFzc2Vzc21lbnQgb2YgdGhlIERyaXZlciBMYW5kc2NhcGUqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBpbnRvIHRoZSBwb3NzaWJpbGl0eSBvZiB3b3JraW5nIHdpdGggdGhlc2Ugc3dpdGNoIGRyaXZlcnMg4oCTIHNwZWNpZmljYWxseSBgbXhsLWdzdzF4eGAgYW5kIGBsYW50aXFfZ3N3aXBgIOKAkyB3aXRob3V0IG5lY2Vzc2FyaWx5IGhhdmluZyB0aGUgKmFjdHVhbCogaGFyZHdhcmUgcHJlc2VudCBvciBhIGRldmljZSB0cmVlIGNvbmZpZ3VyZWQuIFRoZSBmaXJzdCB0aGluZyBJJ20gZG9pbmcgaXMgc2VlaW5nIGlmIHRoZXJlJ3MgYW55IG1lY2hhbmlzbSwgZXZlbiBhIHZpcnR1YWwgb25lLCB0byBpbnN0YW50aWF0ZSB0aGVtLiBDYW4gSSBjcmVhdGUgYW4gTURJTyBidXMgb3IgdHJpZ2dlciB0aGVpciBsb2FkaW5nIGluIGEgbW9yZSBhYnN0cmFjdCB3YXk/IEkgbmVlZCB0byB1bmRlcnN0YW5kIGlmIHRoZXkncmUgY29tcGxldGVseSBoYXJkd2FyZS1ib3VuZC5cblxuTm93LCBsZXQncyBkaXZlIGludG8gd2hhdCBtYWtlcyB0aGVzZSBkcml2ZXJzIHRpY2suIEkgc2VlIHRoYXQgYG14bC1nc3cxeHhgIHNlZW1zIHByZXR0eSB0aWdodGx5IGNvdXBsZWQgdG8gdGhlIGRldmljZSB0cmVlLCB1c2luZyBhbiBgb2ZfbWF0Y2hfdGFibGVgIGNhbGxlZCBgZ3N3MXh4X29mX21hdGNoYC4gSXQgZXhwZWN0cyBhbiBNRElPIGJ1cywgYW5kIGl0IGxvb2tzIGxpa2UgaXQncyBkZXNpZ25lZCBmb3IgcmVhbC13b3JsZCBNYXhMaW5lYXIgb3IgSW50ZWwgc3dpdGNoIElDcy4gVGhlbiB0aGVyZSdzIGBsYW50aXFfZ3N3aXBgLCB3aGljaCBhbHNvIHJlbGllcyBvbiB0aGUgZGV2aWNlIHRyZWUsIG1hdGNoaW5nIHNwZWNpZmljIExhbnRpcSBNSVBTIFNvQyBwbGF0Zm9ybSBidXNlczogYGxhbnRpcSx4cngyMDAtZ3N3aXBgIGFuZCBgbGFudGlxLHhyeDMwMC1nc3dpcGAuIFRoaXMgY29uZmlybXMgbXkgaW5pdGlhbCBzdXNwaWNpb24gLSBpdCdzIGxvb2tpbmcgbGlrZSB0aGVzZSBkcml2ZXJzIGFyZSBnb2luZyB0byBiZSB0aWVkIHRvIGEgc3BlY2lmaWMgaGFyZHdhcmUgY29uZmlndXJhdGlvbi5cblxuTmV4dCwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGltcGFjdCBvZiB0aGUgY2hhbmdlcyBpbiB0aGlzIGNvbW1pdC4gSSd2ZSBub3RlZCB0aHJlZSBrZXkgYXJlYXM6IGEgbWFjcm8sIGBHU1dJUF9NRElPX1BIWV9GQ09OVFhfRU4gMHgwMDgwYCwgZGVmaW5lZCBpbiBgbGFudGlxX2dzd2lwLmhgLCB0aGUgYGdzd2lwX3BvcnRfc2V0X3NwZWVkYCBmdW5jdGlvbiBpbiBgbGFudGlxX2dzd2lwX2NvbW1vbi5jYCwgYW5kIGBnc3cxeHhfcGNzX2NvbmZpZ2AgaW4gYG14bC1nc3cxeHguY2AuIEkgbmVlZCB0byBmaWd1cmUgb3V0IGhvdyB0aGVzZSBmdW5jdGlvbnMgYWZmZWN0IHRoZSBiaWdnZXIgcGljdHVyZS5cblxuRmluYWxseSwgSSdsbCBuZWVkIHRvIHRyYWNlIHdoZXJlIHRoZSBgZ3N3aXBfcG9ydF9zZXRfc3BlZWRgIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aXRoaW4gYGxhbnRpcV9nc3dpcF9jb21tb24uY2AuIFRoaXMgd2lsbCBnaXZlIG1lIGEgYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2YgdGhlIGRyaXZlcidzIGV4ZWN1dGlvbiBmbG93IGFuZCB3aGV0aGVyIG9yIG5vdCBpdCdzIHBvc3NpYmxlIHRvIFwidHJpY2tcIiBpdCBpbnRvIGJlaGF2aW5nIHdpdGhvdXQgdGhlIGhhcmR3YXJlIGl0IGV4cGVjdHMuIFVuZGVyc3RhbmRpbmcgdGhpcyBjYWxsIGNoYWluIGlzIGtleS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjgxNTMsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyOTcsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wN1QxODoyMDozMS43Mzk3OTQ5NjVaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUzNjQzMDYxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImdzd2lwX3BvcnRfc2V0X3NwZWVkXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2RzYS9sYW50aXFcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM9MTMwMD1zdGF0aWMgdm9pZCBnc3dpcF9wb3J0X3NldF9saW5rKHN0cnVjdCBnc3dpcF9wcml2ICpwcml2LCBpbnQgcG9ydCwgYm9vbCBsaW5rKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMTMxMi1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzoxMzEzOnN0YXRpYyB2b2lkIGdzd2lwX3BvcnRfc2V0X3NwZWVkKHN0cnVjdCBnc3dpcF9wcml2ICpwcml2LCBpbnQgcG9ydCwgaW50IHNwZWVkLFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTEzMTQtXFx0XFx0XFx0XFx0IHBoeV9pbnRlcmZhY2VfdCBpbnRlcmZhY2UpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYz0xNDcxPXN0YXRpYyB2b2lkIGdzd2lwX3BoeWxpbmtfbWFjX2xpbmtfdXAoc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0xNDgzLVxcdFxcdGdzd2lwX3BvcnRfc2V0X2xpbmsocHJpdiwgcG9ydCwgdHJ1ZSk7XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MTQ4NDpcXHRcXHRnc3dpcF9wb3J0X3NldF9zcGVlZChwcml2LCBwb3J0LCBzcGVlZCwgaW50ZXJmYWNlKTtcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0xNDg1LVxcdFxcdGdzd2lwX3BvcnRfc2V0X2R1cGxleChwcml2LCBwb3J0LCBkdXBsZXgpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wN1QxODoyMDozMS43OTM0NDMwOTZaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6NTIzNjIwOTk4NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50OiBUaGlzIENvZGUgaXMgVW5mdXp6YWJsZSoqXG5cbk9rYXksIGhlcmUncyB0aGUgYnJlYWtkb3duIG9mIG15IHRoaW5raW5nLiBUaGlzIHBhdGNoIGlzIGZvY3VzZWQgc29sZWx5IG9uIGBkcml2ZXJzL25ldC9kc2EvbGFudGlxL2AgYW5kIHRoZSBhc3NvY2lhdGVkIGZpbGVzOiBgbGFudGlxX2dzd2lwLmhgLCBgbGFudGlxX2dzd2lwX2NvbW1vbi5jYCwgYW5kIGBteGwtZ3N3MXh4LmNgLiBUaGVzZSBhcmUgaGFyZHdhcmUgZHJpdmVycy4gU3BlY2lmaWNhbGx5LCB0aGV5J3JlIGZvciBMYW50aXEgVlJYMjAwL3hSWDMwMCBTb0NzIGFuZCBNYXhMaW5lYXIgR1NXMXh4IEV0aGVybmV0IHN3aXRjaCBjaGlwcywgYW5kIHRoZXkgY29tbXVuaWNhdGUgdmlhIE1ESU8uIEkga25vdyB0aG9zZSBkZXZpY2VzIOKAkyB0aGV5IHJlcXVpcmUgdmVyeSBzcGVjaWZpYywgYWN0dWFsIGhhcmR3YXJlOiBlaXRoZXIgdGhlIFNvQydzIE1lbW9yeS1NYXBwZWQgSS9PIG9yIHRoZSBNRElPLWNvbm5lY3RlZCBzd2l0Y2ggY2hpcHMuIFRoZXkgYWxzbyBuZWVkIERldmljZSBUcmVlIG5vZGVzIGxpa2UgYGxhbnRpcSx4cngyMDAtZ3N3aXBgIG9yIGBtYXhsaW5lYXIsZ3N3MTIwYCB0byBmdW5jdGlvbi5cblxuVGhlIGtleSBwb2ludCBoZXJlIGlzIHRoYXQgKm5vbmUqIG9mIHRoaXMgaGFyZHdhcmUgaXMgZW11bGF0ZWQgaW4gYSBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBsaWtlIFFFTVUgb24geDg2XzY0IG9yIGFtZDY0LiBUaGF0IG1lYW5zIHRoaXMgY29kZSBpcyBpbmhlcmVudGx5ICpzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUqIGZvciBzdGFuZGFyZCBmdXp6aW5nLlxuXG5JJ20gZG91YmxlLWNoZWNraW5nIHRoZSBkZWZpbml0aW9uIG9mIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZSBpbiB0aGUgZ3VpZGVsaW5lcy4gVGhleSBzdGF0ZSB0aGF0IHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzIGFyZSBvZmYtbGltaXRzIGJlY2F1c2UgdGhleSByZXF1aXJlIHBoeXNpY2FsIEFTSUNzIG9yIFBDSWUgY2FyZHMgbm90IHNpbXVsYXRlZCBpbiBRRU1VLiBUaGF0J3MgKmV4YWN0bHkqIHdoYXQgdGhpcyBpczogYSB2ZW5kb3Itc3BlY2lmaWMgZHJpdmVyIHRpZWQgdG8gc3BlY2lmaWMsIHJlYWwgaGFyZHdhcmUuIFRoZW4gdGhlIGd1aWRlbGluZXMgZ28gb24gdG8gaGlnaGxpZ2h0IHRoYXQgcmVhY2hhYmlsaXR5IGlzIHRoZSBwcmltYXJ5IGdhdGUgYW5kIHRoYXQgZnV6emluZyBjYW4gb25seSBkaXNjb3ZlciBidWdzIGluIGNvZGUgdGhhdCdzIGV4ZWN1dGFibGUgaW4gc3RhbmRhcmQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUuIElmIHRoZSBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSwgd2Ugc2hvdWxkbid0IGV2ZW4gYXR0ZW1wdCB0byBmdXp6IGl0LCBldmVuIGlmIGl0IGhhcyBhc3NlcnRpb25zIG9yIGNvbXBsZXggbG9naWMuXG5cblNvLCAqV29ydGhGdXp6aW5nKiBoYXMgdG8gYmUgYGZhbHNlYC5cblxuTGV0IG1lIHF1aWNrbHkgY29uZmlybSB0aGUgcGFyYW1ldGVyczpcblxuKiAgICpXb3J0aEZ1enppbmcqOiBEZWZpbml0ZWx5IGBmYWxzZWAuXG4qICAgKkZvY3VzU3ltYm9scyo6IEVtcHR5IGxpc3Qg4oCTIG5vdGhpbmcgdG8gZm9jdXMgb24gaGVyZS5cbiogICAqRW5hYmxlQ29uZmlncyo6IEVtcHR5IGxpc3Qg4oCTIG5vIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBuZWVkZWQuXG4qICAgKlJlYXNvbmluZyo6IFRoZSBkcml2ZXJzIG1vZGlmeSBMYW50aXEgR1NXSVAgYW5kIE1heExpbmVhciBHU1cxeHggRXRoZXJuZXQgc3dpdGNoZXMgd2l0aGluIGBkcml2ZXJzL25ldC9kc2EvbGFudGlxL2AuIFRoZXkgbmVlZCBzcGVjaWZpYywgcmVhbCBNRElPL1NvQyBzd2l0Y2hlcywgYW5kIHRob3NlIGFyZSBzaW1wbHkgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3Igb3RoZXIgdmlydHVhbCBlbnZpcm9ubWVudHMgd2UnZCBiZSB1c2luZyBvbiBhbWQ2NCwgbWVhbmluZyB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuIFRoZXJlZm9yZSwgbm8gZnV6emluZy5cblxuQWxyaWdodCwgSSdtIGdvaW5nIHRvIGdvIGFoZWFkIGFuZCBpbnZva2UgYHNldC1yZXN1bHRzYC4gVGhpcyBwYXRjaCBpc24ndCBzdWl0YWJsZSBmb3IgZnV6emluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjkzNzMsIk91dHB1dFRva2VucyI6MTEyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTAxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA3VDE4OjIwOjM3LjAyOTY1NjMwMloiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIyMzIwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIG1vZGlmaWVkIGNvZGUgaXMgbG9jYXRlZCBpbiBkcml2ZXJzL25ldC9kc2EvbGFudGlxLyAoTGFudGlxIEdTV0lQIC8gTWF4TGluZWFyIEdTVzF4eCBFdGhlcm5ldCBzd2l0Y2ggZHJpdmVycyksIHdoaWNoIGNvbnRyb2wgc3BlY2lmaWMgcGh5c2ljYWwgc3dpdGNoIGhhcmR3YXJlICh2aWEgTURJTy9Tb0MgcGxhdGZvcm0gTU1JTykgZGVmaW5lZCBpbiBEZXZpY2UgVHJlZSBhbmQgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChRRU1VIGFtZDY0KS4gVGhlIGNoYW5nZXMgYXJlIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIG1vZGlmaWVkIGNvZGUgaXMgbG9jYXRlZCBpbiBkcml2ZXJzL25ldC9kc2EvbGFudGlxLyAoTGFudGlxIEdTV0lQIC8gTWF4TGluZWFyIEdTVzF4eCBFdGhlcm5ldCBzd2l0Y2ggZHJpdmVycyksIHdoaWNoIGNvbnRyb2wgc3BlY2lmaWMgcGh5c2ljYWwgc3dpdGNoIGhhcmR3YXJlICh2aWEgTURJTy9Tb0MgcGxhdGZvcm0gTU1JTykgZGVmaW5lZCBpbiBEZXZpY2UgVHJlZSBhbmQgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChRRU1VIGFtZDY0KS4gVGhlIGNoYW5nZXMgYXJlIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA3VDE4OjIwOjM3LjAyOTY4MTkxMVoiLCJTZXEiOjE1LCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjE5MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowd5tjd[0].run-triage(0) Phase: Succeeded StartedAt: 2026-09-07 18:16:18 +0000 UTC FinishedAt: 2026-09-07 18:20:38 +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+CgkJCTx0ZD4yMDI2LzA5LzA3IDE4OjE5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgbW9kaWZpZWQgY29kZSBpcyBsb2NhdGVkIGluIGRyaXZlcnMvbmV0L2RzYS9sYW50aXEvIChMYW50aXEgR1NXSVAgLyBNYXhMaW5lYXIgR1NXMXh4IEV0aGVybmV0IHN3aXRjaCBkcml2ZXJzKSwgd2hpY2ggY29udHJvbCBzcGVjaWZpYyBwaHlzaWNhbCBzd2l0Y2ggaGFyZHdhcmUgKHZpYSBNRElPL1NvQyBwbGF0Zm9ybSBNTUlPKSBkZWZpbmVkIGluIERldmljZSBUcmVlIGFuZCBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgKFFFTVUgYW1kNjQpLiBUaGUgY2hhbmdlcyBhcmUgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNyAxODoxOTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDJjODc3MThiNTU2NjE1OTRhMGMzODNkZjc1Nzk3OTgzMGI3OWZlNmFcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIFNlcCA3IDE4OjE5OjQwIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmggYi9kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oXG5pbmRleCBiYzM2ODZmYWFkMGQ2Li4wYjc1YmUxNGRjMTA5IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaFxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaFxuQEAgLTQyLDcgJiM0Mzs0Miw3IEBAXG4gI2RlZmluZSAgR1NXSVBfTURJT19QSFlfRkRVUF9ESVNcdDB4MDYwMFxuICNkZWZpbmUgIEdTV0lQX01ESU9fUEhZX0ZDT05UWF9NQVNLXHQweDAxODBcbiAjZGVmaW5lICBHU1dJUF9NRElPX1BIWV9GQ09OVFhfQVVUT1x0MHgwMDAwXG4tI2RlZmluZSAgR1NXSVBfTURJT19QSFlfRkNPTlRYX0VOXHQweDAxMDBcbiYjNDM7I2RlZmluZSAgR1NXSVBfTURJT19QSFlfRkNPTlRYX0VOXHQweDAwODBcbiAjZGVmaW5lICBHU1dJUF9NRElPX1BIWV9GQ09OVFhfRElTXHQweDAxODBcbiAjZGVmaW5lICBHU1dJUF9NRElPX1BIWV9GQ09OUlhfTUFTS1x0MHgwMDYwXG4gI2RlZmluZSAgR1NXSVBfTURJT19QSFlfRkNPTlJYX0FVVE9cdDB4MDAwMFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jIGIvZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmNcbmluZGV4IDBlOGVlZGY2NGQzYTMuLjYxNTBkYzNmZmI2NDEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmNcbkBAIC0xMzM5LDYgJiM0MzsxMzM5LDcgQEAgc3RhdGljIHZvaWQgZ3N3aXBfcG9ydF9zZXRfc3BlZWQoc3RydWN0IGdzd2lwX3ByaXYgKnByaXYsIGludCBwb3J0LCBpbnQgc3BlZWQsXG4gXHRcdGJyZWFrO1xuIFxuIFx0Y2FzZSBTUEVFRF8xMDAwOlxuJiM0MztcdGNhc2UgU1BFRURfMjUwMDpcbiBcdFx0bWRpb19waHkgPSBHU1dJUF9NRElPX1BIWV9TUEVFRF9HMTtcbiBcbiBcdFx0bWlpX2NmZyA9IEdTV0lQX01JSV9DRkdfUkFURV9NMTI1O1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9sYW50aXEvbXhsLWdzdzF4eC5jIGIvZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9teGwtZ3N3MXh4LmNcbmluZGV4IGExMTA0YjJmOTJhOTIuLmI4ZDhmZWZhYTNhMTUgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9kc2EvbGFudGlxL214bC1nc3cxeHguY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9teGwtZ3N3MXh4LmNcbkBAIC0zNTIsOCAmIzQzOzM1MiwyMiBAQCBzdGF0aWMgaW50IGdzdzF4eF9wY3NfY29uZmlnKHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzLCB1bnNpZ25lZCBpbnQgbmVnX21vZGUsXG4gXHQvKiBtYXJrIFBDUyBjb25maWd1cmF0aW9uIGFzIGluY29tcGxldGUgKi9cbiBcdHByaXYtXHUwMDNldGJpX2ludGVyZmFjZSA9IFBIWV9JTlRFUkZBQ0VfTU9ERV9OQTtcbiBcbi1cdGlmICghcmVjb25mKVxuJiM0MztcdGlmICghcmVjb25mKSB7XG4mIzQzO1x0XHQvKiBzZXR1cCBTZXJEZXMgY2xvY2sgc3BlZWQgKi9cbiYjNDM7XHRcdGlmIChpbnRlcmZhY2UgPT0gUEhZX0lOVEVSRkFDRV9NT0RFXzI1MDBCQVNFWClcbiYjNDM7XHRcdFx0bmNvX2N0cmwgPSBHU1cxWFhfU0dNSUlfMkc1IHwgR1NXMVhYX1NHTUlJXzJHNV9OQ08yO1xuJiM0MztcdFx0ZWxzZVxuJiM0MztcdFx0XHRuY29fY3RybCA9IEdTVzFYWF9TR01JSV8xRyB8IEdTVzFYWF9TR01JSV8xR19OQ08xO1xuJiM0MztcbiYjNDM7XHRcdHJldCA9IHJlZ21hcF91cGRhdGVfYml0cyhwcml2LVx1MDAzZWNsaywgR1NXMVhYX0NMS19OQ09fQ1RSTCxcbiYjNDM7XHRcdFx0XHRcdCBHU1cxWFhfU0dNSUlfSFNQX01BU0sgfFxuJiM0MztcdFx0XHRcdFx0IEdTVzFYWF9TR01JSV9TRUwsXG4mIzQzO1x0XHRcdFx0XHQgbmNvX2N0cmwpO1xuJiM0MztcdFx0aWYgKHJldClcbiYjNDM7XHRcdFx0cmV0dXJuIHJldDtcbiYjNDM7XG4gXHRcdHJldCA9IGdzdzF4eF9wY3NfcmVzZXQocHJpdiwgaW50ZXJmYWNlKTtcbiYjNDM7XHR9XG4gXG4gXHRpZiAocmV0KVxuIFx0XHRyZXR1cm4gcmV0O1xuQEAgLTQyMywxOSAmIzQzOzQzNyw2IEBAIHN0YXRpYyBpbnQgZ3N3MXh4X3Bjc19jb25maWcoc3RydWN0IHBoeWxpbmtfcGNzICpwY3MsIHVuc2lnbmVkIGludCBuZWdfbW9kZSxcbiBcdFx0cmV0dXJuIHJldDtcbiBcbiBcdGlmICghcmVjb25mKSB7XG4tXHRcdC8qIHNldHVwIFNlckRlcyBjbG9jayBzcGVlZCAqL1xuLVx0XHRpZiAoaW50ZXJmYWNlID09IFBIWV9JTlRFUkZBQ0VfTU9ERV8yNTAwQkFTRVgpXG4tXHRcdFx0bmNvX2N0cmwgPSBHU1cxWFhfU0dNSUlfMkc1IHwgR1NXMVhYX1NHTUlJXzJHNV9OQ08yO1xuLVx0XHRlbHNlXG4tXHRcdFx0bmNvX2N0cmwgPSBHU1cxWFhfU0dNSUlfMUcgfCBHU1cxWFhfU0dNSUlfMUdfTkNPMTtcbi1cbi1cdFx0cmV0ID0gcmVnbWFwX3VwZGF0ZV9iaXRzKHByaXYtXHUwMDNlY2xrLCBHU1cxWFhfQ0xLX05DT19DVFJMLFxuLVx0XHRcdFx0XHQgR1NXMVhYX1NHTUlJX0hTUF9NQVNLIHxcbi1cdFx0XHRcdFx0IEdTVzFYWF9TR01JSV9TRUwsXG4tXHRcdFx0XHRcdCBuY29fY3RybCk7XG4tXHRcdGlmIChyZXQpXG4tXHRcdFx0cmV0dXJuIHJldDtcbi1cbiBcdFx0cmV0ID0gZ3N3MXh4X3Bjc19waHlfeGF1aV93cml0ZShwcml2LCAweDMwLCAweDgwKTtcbiBcdFx0aWYgKHJldClcbiBcdFx0XHRyZXR1cm4gcmV0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA3IDE4OjE5PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmNvcmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIG1vZGlmaWVkIGNvZGUgaXMgbG9jYXRlZCBpbiBkcml2ZXJzL25ldC9kc2EvbGFudGlxLyAoTGFudGlxIEdTV0lQIC8gTWF4TGluZWFyIEdTVzF4eCBFdGhlcm5ldCBzd2l0Y2ggZHJpdmVycyksIHdoaWNoIGNvbnRyb2wgc3BlY2lmaWMgcGh5c2ljYWwgc3dpdGNoIGhhcmR3YXJlICh2aWEgTURJTy9Tb0MgcGxhdGZvcm0gTU1JTykgZGVmaW5lZCBpbiBEZXZpY2UgVHJlZSBhbmQgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChRRU1VIGFtZDY0KS4gVGhlIGNoYW5nZXMgYXJlIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyIGFuZCBzZWN1cml0eSBlbmdpbmVlci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBldmFsdWF0ZSB3aGV0aGVyIGl0IHdhcnJhbnRzIGZ1enppbmcgd2l0aCBzeXprYWxsZXIuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIGludGVybmFsIGFzc3VtcHRpb25zLiBZb3UgbXVzdCBhY3RpdmVseSB1c2UgeW91ciBjb2RlIGFjY2Vzcwp0b29scyB0byBpbnNwZWN0IHRoZSBhY3R1YWwgc291cmNlIGNvZGUsIGNhbGxlcnMsIGFuZCBzdXJyb3VuZGluZyBjb250ZXh0LgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMS4gQ09SRSBUUklBR0UgUEhJTE9TT1BIWQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpUaGUgZ29hbCBvZiBwYXRjaCBmdXp6aW5nIGlzIHRvIGRpc2NvdmVyIGNyYXNoZXMsIHJlZ3Jlc3Npb25zLCBleHBvc2VkIGxhdGVudCBidWdzLAphbmQgbmV3bHkgdHJpZ2dlcmVkIGFzc2VydGlvbnMgaW50cm9kdWNlZCBieSB0aGUgcGF0Y2ggc2VyaWVzLgoKLSBSRUFDSEFCSUxJVFkgSVMgVEhFIFBSSU1BUlkgR0FURToKICBGdXp6aW5nIGNhbiBvbmx5IGRpc2NvdmVyIGJ1Z3MgaW4gY29kZSB0aGF0IGNhbiBhY3R1YWxseSBleGVjdXRlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkCiAgZW52aXJvbm1lbnRzIChHQ0Ugb3IgUUVNVSwgdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGRldmljZXMgbGlrZSBVU0IgZ2FkZ2V0cywgbmV0ZGV2LCB0dW4vdGFwKS4KICBJZiB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgKHNlZSBTZWN0aW9uIDIpLCBpdCBNVVNUIE5PVCBiZSBmdXp6ZWQsCiAgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0IGFkZHMgYXNzZXJ0aW9ucyBvciBjb21wbGV4IGxvZ2ljLgoKLSBETyBOT1QgQkxJTkRMWSBUUlVTVCAmIzM0O05PIEZVTkNUSU9OQUwgQ0hBTkdFJiMzNDsgKE5GQ0kpIE9SICYjMzQ7UkVGQUNUT1JJTkcmIzM0OyBDTEFJTVM6CiAgUGF0Y2ggYXV0aG9ycyByb3V0aW5lbHkgbGFiZWwgY2hhbmdlcyBhcyAmIzM0O2NsZWFudXBzJiMzNDssICYjMzQ7cmVmYWN0b3JpbmdzJiMzNDssIG9yIHN0YXRlCiAgJiMzNDtObyBmdW5jdGlvbmFsIGNoYW5nZSBpbnRlbmRlZCYjMzQ7LiBEbyBOT1QgdGFrZSB0aGVzZSBjbGFpbXMgYXQgZmFjZSB2YWx1ZS4KICBDb2RlIHJlZmFjdG9yaW5ncyB0aGF0IHJlYXJyYW5nZSBsb2dpYywgaW50cm9kdWNlIGhlbHBlciBmdW5jdGlvbnMsIG9yIGFsdGVyIHN0YXRlIG1hbmFnZW1lbnQKICBpbiBjb3JlIHN1YnN5c3RlbXMgZnJlcXVlbnRseSBpbnRyb2R1Y2Ugc3VidGxlIHNlbWFudGljIHNoaWZ0cyBvciB1bmNvdmVyIGxhdGVudCBrZXJuZWwgYnVncy4KICBJZiByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlIGlzIG1vZGlmaWVkIG9yIHJlZmFjdG9yZWQsIGl0IE1VU1QgYmUgZnV6emVkLgoKLSBORVcgT1IgTU9ESUZJRUQgQVNTRVJUSU9OUyBJTiBSRUFDSEFCTEUgQ09ERSBNVVNUIEJFIEZVWlpFRDoKICBXaGVuIGEgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllcyBydW50aW1lIGNoZWNrcyBvciBhc3NlcnRpb25zIChlLmcuLCBXQVJOX09OKiwgVk1fV0FSTl9PTiosCiAgQlVHX09OKiwgbG9ja2RlcF9hc3NlcnQqKSBpbiByZWFjaGFibGUgY29kZSBwYXRocywgaXQgZW5mb3JjZXMgbmV3IG9yIHN0cmljdGVyIGludmFyaWFudHMuCiAgRXZlbiBpZiB0aGUgYXV0aG9yIGJlbGlldmVzIHRoZSBpbnZhcmlhbnQgYWx3YXlzIGhvbGRzLCBmdXp6aW5nIGlzIGVzc2VudGlhbCB0byB2ZXJpZnkgd2hldGhlcgogIGFuIHVudXN1YWwgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucyBjYW4gdmlvbGF0ZSBpdC4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjIuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz1mYWxzZSAoTkVHQVRJVkUgQ1JJVEVSSUEpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgT05MWSBJRiBhbGwgbW9kaWZpZWQgY29kZSBmYWxscyBzdHJpY3RseSBpbnRvIG9uZSBvciBtb3JlIG9mIHRoZXNlIGNhdGVnb3JpZXM6CgotIE5vbi1rZXJuZWwgYW5kIG5vbi1leGVjdXRhYmxlIGNoYW5nZXM6CiAgKiBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBjb21tZW50cywgb3Igc3BlbGxpbmcgZml4ZXMuCiAgKiBVc2VyLXNwYWNlIGRpcmVjdG9yaWVzLCBzZWxmLXRlc3RzLCBzYW1wbGVzLCBvciBzY3JpcHRzIChlLmcuLCB0b29scy8sIHNhbXBsZXMvLCBzY3JpcHRzLywgdXNyLykKICAgIHRoYXQgZG8gbm90IGFmZmVjdCB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlICh2bWxpbnV4KSBvciBrZXJuZWwgbW9kdWxlcy4KICAqIFB1cmVseSBkZWNvcmF0aXZlIGxvZ2dpbmcgKGUuZy4sIG1lc3NhZ2Ugc3RyaW5ncyBpbiBwcl9lcnIsIHByaW50aywgZGV2X2luZm8pIG9yIHRyYWNlcG9pbnRzCiAgICB0aGF0IGRvIG5vdCBhbHRlciBjb250cm9sIGZsb3cgb3IgZGF0YSBzdHJ1Y3R1cmVzLgogICogQnVpbGQgc3lzdGVtIG9yIEtjb25maWcgY2hhbmdlcyB0aGF0IGRvIG5vdCBhbHRlciBjb21waWxlZCBDIGxvZ2ljLgotIFN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZToKICAqIFZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICAgIGlvbmljLCBhbWRncHUpIHJlcXVpcmluZyBwaHlzaWNhbCBBU0lDL1BDSWUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gVW5yZWFjaGFibGUgZXhlY3V0aW9uIHBhdGhzOgogICogRHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoLnJlbW92ZSwgLnNodXRkb3duLCBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIpIGV4ZWN1dGVkIG9ubHkgZHVyaW5nCiAgICBwaHlzaWNhbCBQQ0kgaG90LXVucGx1ZyBvciBtYW51YWwgc3lzZnMgZHJpdmVyIHVuYmluZGluZy4KICAqIENvZGUgcGF0aHMgZXhjbHVzaXZlIHRvIGFyY2hpdGVjdHVyZXMgb3RoZXIgdGhhbiB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjMuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz10cnVlIChQT1NJVElWRSBDUklURVJJQSkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUmV0dXJuIFdvcnRoRnV6emluZz10cnVlIHdoZW5ldmVyIHRoZSBwYXRjaCB0b3VjaGVzIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUsIGluY2x1ZGluZzoKLSBDb3JlIFN1YnN5c3RlbXM6CiAgKiBBbnkgbG9naWMgbW9kaWZpY2F0aW9ucyBpbiBtZW1vcnkgbWFuYWdlbWVudCAobW0vKSwgc3luY2hyb25pemF0aW9uL2xvY2tpbmcgKGtlcm5lbC9sb2NraW5nLyksCiAgICBCUEYsIHNjaGVkdWxlciwgY29yZSBuZXR3b3JraW5nLCBWRlMsIG9yIHN5c2NhbGwgaGFuZGxpbmcuCi0gUmVmYWN0b3JpbmdzIGFuZCBDb2RlIENsZWFudXBzOgogICogQW55IHJlc3RydWN0dXJpbmcgb2YgcmVhY2hhYmxlIGRhdGEgc3RydWN0dXJlcywgaGVscGVyIGFic3RyYWN0aW9ucywgb3IgYWxnb3JpdGhtIGZsb3dzLgotIFJ1bnRpbWUgQXNzZXJ0aW9ucyBhbmQgRGVmZW5zaXZlIENoZWNrczoKICAqIEFueSBpbnRyb2R1Y3Rpb24gb3IgYWx0ZXJhdGlvbiBvZiBhc3NlcnRpb25zIChXQVJOX09OKiwgVk1fV0FSTl9PTiosIEJVR19PTiosIGV0Yy4pIGluIHJlYWNoYWJsZSBwYXRocy4KLSBSZWFjaGFibGUgRHJpdmVycyBhbmQgUHJvdG9jb2xzOgogICogRHJpdmVycyBhY2Nlc3NpYmxlIHZpYSB2aXJ0dWFsIGJ1c2VzICh2aXJ0aW8sIFVTQiBnYWRnZXQsIGxvb3BiYWNrLCBuZXRsaW5rLCBiaW5kZXIsIHNvY2tldHMsIGV0Yy4pLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KNC4gRVhUUkFDVElORyBGb2N1c1N5bWJvbHMgKFBSRVZFTlRJTkcgRElMVVRJT04pCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CldoZW4gV29ydGhGdXp6aW5nPXRydWUsIHlvdSBtdXN0IGV4dHJhY3Qgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyBpbnRvIEZvY3VzU3ltYm9scyB0byBndWlkZSB0aGUgZnV6emVyOgoKLSBBVk9JRCBVQklRVUlUT1VTIExJRkVDWUNMRSBIT1QtUEFUSFM6CiAgRG8gTk9UIGxpc3QgZ2VuZXJpYywgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2FsbGVkIGJ5IGFsbW9zdCBldmVyeSBwcm9ncmFtIGluIHRoZSBjb3JwdXMKICAoaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG86IGdlbmVyYWwgbWVtb3J5IGFsbG9jYXRvcnMgYW5kIGRlYWxsb2NhdG9ycywgcGFnZSBmYXVsdAogIGFuZCB0cmFwIGhhbmRsZXJzLCBvciBjb3JlIHN5bmNocm9uaXphdGlvbiBwcmltaXRpdmVzOyB0aGlzIGlzIG5vdCBhbiBleGhhdXN0aXZlIGxpc3QpLgogIExpc3RpbmcgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2F1c2VzIHRoZSBmdXp6ZXIgdG8gY2xhc3NpZnkgdGhvdXNhbmRzIG9mIHVucmVsYXRlZCB0ZXN0cyBhcyAmIzM0O2ZvY3VzZWQmIzM0OywKICB3aGljaCBzZXZlcmVseSBkaWx1dGVzIGZ1enppbmcgZWZmb3J0IGF3YXkgZnJvbSB0aGUgYWN0dWFsIGNoYW5nZXMuCgotIFRBUkdFVCBTUEVDSUZJQyBGRUFUVVJFIExPR0lDIEFORCBFTlRSWVBPSU5UUzoKICBMaXN0IGZ1bmN0aW9ucyB0aGF0IHNwZWNpZmljYWxseSBpbXBsZW1lbnQgdGhlIGxvZ2ljIGJlaW5nIGFkZGVkIG9yIGFsdGVyZWQsIG9yIGRpcmVjdCBBUEkgZW50cnlwb2ludHMKICBmb3IgdGhlIHN1YnN5c3RlbSBmZWF0dXJlIHVuZGVyIHJldmlldy4KCi0gSEFORExJTkcgU1RBVElDIElOTElORSBGVU5DVElPTlMgSU4gSEVBREVSUyAoLmgpOgogIENvbXBpbGVyLWlubGluZWQgc3RhdGljIGZ1bmN0aW9ucyAoc3VjaCBhcyBzdGF0aWMgaW5saW5lcyBpbiBtbS8qLmggb3IgaW5jbHVkZS9saW51eC8qLmgpIGxhY2sKICBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzIGluIHZtbGludXggYW5kIGNhbm5vdCBiZSB0YXJnZXRlZCBkaXJlY3RseSBieSBzeW1ib2wgY292ZXJhZ2UgZmlsdGVycy4KICBJZiB0aGUgY2hhbmdlcyBhcmUgcHJpbWFyaWx5IGluIHN0YXRpYyBpbmxpbmUgaGVscGVycywgaWRlbnRpZnkgbm9uLXN0YXRpYywgZmVhdHVyZS1zcGVjaWZpYyBjYWxsZXIKICBmdW5jdGlvbnMgaW4gLmMgZmlsZXMgdGhhdCBleGVyY2lzZSB0aGVtIChhdm9pZGluZyB1YmlxdWl0b3VzIGxpZmVjeWNsZSB3cmFwcGVycykuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo1LiBJREVOVElGWUlORyBFbmFibGVDb25maWdzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CklkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgY29tcGlsZSBhbmQgcmVhY2ggdGhlIG1vZGlmaWVkIGNvZGU6Ci0gSW5zcGVjdCBLY29uZmlnIGZpbGVzIGFuZCAjaWZkZWYgZ3VhcmRzOyBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KLSBDaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MgbmVlZGVkLgotIFN0cmlwIGFueSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5UYXJnZXQgYXJjaGl0ZWN0dXJlOiBhbWQ2NAoKRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAyYzg3NzE4YjU1NjYxNTk0YTBjMzgzZGY3NTc5Nzk4MzBiNzlmZTZhCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIE1vbiBTZXAgNyAxODoxOTo0MCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmggYi9kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oCmluZGV4IGJjMzY4NmZhYWQwZDYuLjBiNzViZTE0ZGMxMDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmgKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaApAQCAtNDIsNyAmIzQzOzQyLDcgQEAKICNkZWZpbmUgIEdTV0lQX01ESU9fUEhZX0ZEVVBfRElTCTB4MDYwMAogI2RlZmluZSAgR1NXSVBfTURJT19QSFlfRkNPTlRYX01BU0sJMHgwMTgwCiAjZGVmaW5lICBHU1dJUF9NRElPX1BIWV9GQ09OVFhfQVVUTwkweDAwMDAKLSNkZWZpbmUgIEdTV0lQX01ESU9fUEhZX0ZDT05UWF9FTgkweDAxMDAKJiM0MzsjZGVmaW5lICBHU1dJUF9NRElPX1BIWV9GQ09OVFhfRU4JMHgwMDgwCiAjZGVmaW5lICBHU1dJUF9NRElPX1BIWV9GQ09OVFhfRElTCTB4MDE4MAogI2RlZmluZSAgR1NXSVBfTURJT19QSFlfRkNPTlJYX01BU0sJMHgwMDYwCiAjZGVmaW5lICBHU1dJUF9NRElPX1BIWV9GQ09OUlhfQVVUTwkweDAwMDAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jIGIvZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMKaW5kZXggMGU4ZWVkZjY0ZDNhMy4uNjE1MGRjM2ZmYjY0MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMKQEAgLTEzMzksNiAmIzQzOzEzMzksNyBAQCBzdGF0aWMgdm9pZCBnc3dpcF9wb3J0X3NldF9zcGVlZChzdHJ1Y3QgZ3N3aXBfcHJpdiAqcHJpdiwgaW50IHBvcnQsIGludCBzcGVlZCwKIAkJYnJlYWs7CiAKIAljYXNlIFNQRUVEXzEwMDA6CiYjNDM7CWNhc2UgU1BFRURfMjUwMDoKIAkJbWRpb19waHkgPSBHU1dJUF9NRElPX1BIWV9TUEVFRF9HMTsKIAogCQltaWlfY2ZnID0gR1NXSVBfTUlJX0NGR19SQVRFX00xMjU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbGFudGlxL214bC1nc3cxeHguYyBiL2RyaXZlcnMvbmV0L2RzYS9sYW50aXEvbXhsLWdzdzF4eC5jCmluZGV4IGExMTA0YjJmOTJhOTIuLmI4ZDhmZWZhYTNhMTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2RzYS9sYW50aXEvbXhsLWdzdzF4eC5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2RzYS9sYW50aXEvbXhsLWdzdzF4eC5jCkBAIC0zNTIsOCAmIzQzOzM1MiwyMiBAQCBzdGF0aWMgaW50IGdzdzF4eF9wY3NfY29uZmlnKHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzLCB1bnNpZ25lZCBpbnQgbmVnX21vZGUsCiAJLyogbWFyayBQQ1MgY29uZmlndXJhdGlvbiBhcyBpbmNvbXBsZXRlICovCiAJcHJpdi0mZ3Q7dGJpX2ludGVyZmFjZSA9IFBIWV9JTlRFUkZBQ0VfTU9ERV9OQTsKIAotCWlmICghcmVjb25mKQomIzQzOwlpZiAoIXJlY29uZikgewomIzQzOwkJLyogc2V0dXAgU2VyRGVzIGNsb2NrIHNwZWVkICovCiYjNDM7CQlpZiAoaW50ZXJmYWNlID09IFBIWV9JTlRFUkZBQ0VfTU9ERV8yNTAwQkFTRVgpCiYjNDM7CQkJbmNvX2N0cmwgPSBHU1cxWFhfU0dNSUlfMkc1IHwgR1NXMVhYX1NHTUlJXzJHNV9OQ08yOwomIzQzOwkJZWxzZQomIzQzOwkJCW5jb19jdHJsID0gR1NXMVhYX1NHTUlJXzFHIHwgR1NXMVhYX1NHTUlJXzFHX05DTzE7CiYjNDM7CiYjNDM7CQlyZXQgPSByZWdtYXBfdXBkYXRlX2JpdHMocHJpdi0mZ3Q7Y2xrLCBHU1cxWFhfQ0xLX05DT19DVFJMLAomIzQzOwkJCQkJIEdTVzFYWF9TR01JSV9IU1BfTUFTSyB8CiYjNDM7CQkJCQkgR1NXMVhYX1NHTUlJX1NFTCwKJiM0MzsJCQkJCSBuY29fY3RybCk7CiYjNDM7CQlpZiAocmV0KQomIzQzOwkJCXJldHVybiByZXQ7CiYjNDM7CiAJCXJldCA9IGdzdzF4eF9wY3NfcmVzZXQocHJpdiwgaW50ZXJmYWNlKTsKJiM0MzsJfQogCiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKQEAgLTQyMywxOSAmIzQzOzQzNyw2IEBAIHN0YXRpYyBpbnQgZ3N3MXh4X3Bjc19jb25maWcoc3RydWN0IHBoeWxpbmtfcGNzICpwY3MsIHVuc2lnbmVkIGludCBuZWdfbW9kZSwKIAkJcmV0dXJuIHJldDsKIAogCWlmICghcmVjb25mKSB7Ci0JCS8qIHNldHVwIFNlckRlcyBjbG9jayBzcGVlZCAqLwotCQlpZiAoaW50ZXJmYWNlID09IFBIWV9JTlRFUkZBQ0VfTU9ERV8yNTAwQkFTRVgpCi0JCQluY29fY3RybCA9IEdTVzFYWF9TR01JSV8yRzUgfCBHU1cxWFhfU0dNSUlfMkc1X05DTzI7Ci0JCWVsc2UKLQkJCW5jb19jdHJsID0gR1NXMVhYX1NHTUlJXzFHIHwgR1NXMVhYX1NHTUlJXzFHX05DTzE7Ci0KLQkJcmV0ID0gcmVnbWFwX3VwZGF0ZV9iaXRzKHByaXYtJmd0O2NsaywgR1NXMVhYX0NMS19OQ09fQ1RSTCwKLQkJCQkJIEdTVzFYWF9TR01JSV9IU1BfTUFTSyB8Ci0JCQkJCSBHU1cxWFhfU0dNSUlfU0VMLAotCQkJCQkgbmNvX2N0cmwpOwotCQlpZiAocmV0KQotCQkJcmV0dXJuIHJldDsKLQogCQlyZXQgPSBnc3cxeHhfcGNzX3BoeV94YXVpX3dyaXRlKHByaXYsIDB4MzAsIDB4ODApOwogCQlpZiAocmV0KQogCQkJcmV0dXJuIHJldDsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDcgMTg6MTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDAwNAoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDEzNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIExhbnRpcSBEU0EgUGF0Y2gqKgoKT2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzIHBhdGNoLiBNeSBpbml0aWFsIG1vdmUgaXMgdG8gdW5kZXJzdGFuZCB0aGUgc2NvcGUsIHNvIEkmIzM5O20gZm9jdXNpbmcgb24gdGhlIGFmZmVjdGVkIHN1YnN5c3RlbS4gSSBzZWUgdGhhdCBpdCB0b3VjaGVzIGZpbGVzIHdpdGhpbiB0aGUgYGRyaXZlcnMvbmV0L2RzYS9sYW50aXEvYCBkaXJlY3RvcnkuIFNwZWNpZmljYWxseSwgSSYjMzk7bSBsb29raW5nIGF0IGBsYW50aXFfZ3N3aXAuaGAsIGBsYW50aXFfZ3N3aXBfY29tbW9uLmNgLCBhbmQgYG14bC1nc3cxeHguY2AuIEJhc2VkIG9uIHRob3NlIGZpbGUgbmFtZXMsIEkmIzM5O20gaW1tZWRpYXRlbHkgdGhpbmtpbmcgdGhpcyBjb25jZXJucyBhIExhbnRpcSBHaWdhYml0IFN3aXRjaCBJUCBkcml2ZXIsIGxpa2VseSBmb3IgYSBzcGVjaWZpYyBzZXJpZXMgb2YgU29DcyBvciBwbGF0Zm9ybXMuCgpOb3csIG15IG5leHQgc3RlcCBpcyB0byBnZXQgdGhlIGNvbnRleHQgb2YgdGhpcyBkcml2ZXIuIEkmIzM5O20gZ29pbmcgdG8gcXVpY2tseSBjaGVjayB0aGUgS2NvbmZpZyBmaWxlcyBhc3NvY2lhdGVkIHdpdGggYGRyaXZlcnMvbmV0L2RzYS9sYW50aXEvYC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIGV4YWN0IHRhcmdldCBoYXJkd2FyZSBvciBwbGF0Zm9ybSB0aGlzIGlzIGludGVuZGVkIGZvci4gVGhhdCB3aWxsIGdpdmUgbWUgYSBjcml0aWNhbCB1bmRlcnN0YW5kaW5nIG9mIHRoZSBpbXBsaWNhdGlvbnMgb2YgdGhlc2UgY2hhbmdlcyBhbmQgcG90ZW50aWFsIGNvbXBhdGliaWxpdHkgaXNzdWVzLiBGcm9tIHRoZSBLY29uZmlnLCBJIGhvcGUgdG8gY29uZmlybSBteSBpbml0aWFsIGFzc3VtcHRpb24gYWJvdXQgdGhlIGhhcmR3YXJlIGFuZCBnZXQgYSBzZW5zZSBvZiB0aGUgZHJpdmVyJiMzOTtzIGRlcGVuZGVuY2llcyBhbmQgY29uZmlndXJhdGlvbiBvcHRpb25zLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA3IDE4OjIwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O0dTV0lQJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL2xhbnRpcSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTA4MiBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9LY29uZmlnPTE9Y29uZmlnIE5FVF9EU0FfTEFOVElRX0NPTU1PTlxuLS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvS2NvbmZpZy00LVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9LY29uZmlnOjU6Y29uZmlnIE5FVF9EU0FfTEFOVElRX0dTV0lQXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL0tjb25maWc6NjpcdHRyaXN0YXRlIFwmIzM0O0xhbnRpcSAvIEludGVsIEdTV0lQXCYjMzQ7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL0tjb25maWctNy1cdGRlcGVuZHMgb24gSEFTX0lPTUVNXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL0tjb25maWc6ODpcdHNlbGVjdCBORVRfRFNBX1RBR19HU1dJUFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9LY29uZmlnLTktXHRzZWxlY3QgTkVUX0RTQV9MQU5USVFfQ09NTU9OXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL0tjb25maWctMTAtXHRoZWxwXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL0tjb25maWc6MTE6XHQgIFRoaXMgZW5hYmxlcyBzdXBwb3J0IGZvciB0aGUgTGFudGlxIC8gSW50ZWwgR1NXSVAgMi4xIGZvdW5kIGluXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL0tjb25maWctMTItXHQgIHRoZSB4cngyMDAgLyBWUjkgU29DLlxuLS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvTWFrZWZpbGU6MTpvYmotJChDT05GSUdfTkVUX0RTQV9MQU5USVFfR1NXSVApICYjNDM7PSBsYW50aXFfZ3N3aXAub1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9NYWtlZmlsZS0yLW9iai0kKENPTkZJR19ORVRfRFNBX0xBTlRJUV9DT01NT04pICYjNDM7PSBsYW50aXFfZ3N3aXBfY29tbW9uLm9cbi0tXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTItLypcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM6MzogKiBMYW50aXEgLyBJbnRlbCBHU1dJUCBzd2l0Y2ggZHJpdmVyIGZvciBWUlgyMDAsIHhSWDMwMCBhbmQgeFJYMzMwIFNvQ3NcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtNC0gKlxuLS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM9MjM1PXN0YXRpYyBpbnQgZ3N3aXBfZ3BoeV9md19saXN0KHN0cnVjdCBnc3dpcF9wcml2ICpwcml2LFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtMjQzLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYzoyNDQ6XHQvKiBUaGUgVlJYMjAwIHJldiAxLjEgdXNlcyB0aGUgR1NXSVAgMi4wIGFuZCBuZWVkcyB0aGUgb2xkZXJcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM6MjQ1Olx0ICogR1BIWSBmaXJtd2FyZS4gVGhlIFZSWDIwMCByZXYgMS4yIHVzZXMgdGhlIEdTV0lQIDIuMSBhbmQgYWxzb1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy0yNDYtXHQgKiBuZWVkcyBhIGRpZmZlcmVudCBHUEhZIGZpcm13YXJlLlxuLS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtMjQ5LVx0XHRzd2l0Y2ggKHZlcnNpb24pIHtcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM6MjUwOlx0XHRjYXNlIEdTV0lQX1ZFUlNJT05fMl8wOlxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy0yNTEtXHRcdFx0cHJpdi1cdTAwM2VncGh5X2Z3X25hbWVfY2ZnID0gXHUwMDI2eHJ4MjAwYTF4X2dwaHlfZGF0YTtcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtMjUyLVx0XHRcdGJyZWFrO1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYzoyNTM6XHRcdGNhc2UgR1NXSVBfVkVSU0lPTl8yXzE6XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTI1NC1cdFx0XHRwcml2LVx1MDAzZWdwaHlfZndfbmFtZV9jZmcgPSBcdTAwMjZ4cngyMDBhMnhfZ3BoeV9kYXRhO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtMjU3LVx0XHRcdHJldHVybiBkZXZfZXJyX3Byb2JlKGRldiwgLUVOT0VOVCxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM6MjU4Olx0XHRcdFx0XHQgICAgIFwmIzM0O3Vua25vd24gR1NXSVAgdmVyc2lvbjogMHgleFxcblwmIzM0OyxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtMjU5LVx0XHRcdFx0XHQgICAgIHZlcnNpb24pO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM9MzE0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcmVnbWFwX2NvbmZpZyBzd19yZWdtYXBfY29uZmlnID0ge1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtMzE5LVx0LnZhbF9mb3JtYXRfZW5kaWFuID0gUkVHTUFQX0VORElBTl9OQVRJVkUsXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjMyMDpcdC5tYXhfcmVnaXN0ZXIgPSBHU1dJUF9TRE1BX1BDVFJMcCg2KSxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtMzIxLX07XG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYz0zMjM9c3RhdGljIGNvbnN0IHN0cnVjdCByZWdtYXBfY29uZmlnIG1kaW9fcmVnbWFwX2NvbmZpZyA9IHtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTMyOC1cdC52YWxfZm9ybWF0X2VuZGlhbiA9IFJFR01BUF9FTkRJQU5fTkFUSVZFLFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYzozMjk6XHQubWF4X3JlZ2lzdGVyID0gR1NXSVBfTURJT19QSFlwKDApLFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy0zMzAtfTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jPTMzMj1zdGF0aWMgY29uc3Qgc3RydWN0IHJlZ21hcF9jb25maWcgbWlpX3JlZ21hcF9jb25maWcgPSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy0zMzctXHQudmFsX2Zvcm1hdF9lbmRpYW4gPSBSRUdNQVBfRU5ESUFOX05BVElWRSxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM6MzM4Olx0Lm1heF9yZWdpc3RlciA9IEdTV0lQX01JSV9DRkdwKDYpLFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy0zMzktfTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jPTM0MT1zdGF0aWMgaW50IGdzd2lwX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy0zODgtXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjM4OTpcdHJlZ21hcF9yZWFkKHByaXYtXHUwMDNlZ3N3aXAsIEdTV0lQX1ZFUlNJT04sIFx1MDAyNnZlcnNpb24pO1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy0zOTAtXG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy0zOTItXHRzd2l0Y2ggKHZlcnNpb24pIHtcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM6MzkzOlx0Y2FzZSBHU1dJUF9WRVJTSU9OXzJfMDpcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM6Mzk0Olx0Y2FzZSBHU1dJUF9WRVJTSU9OXzJfMTpcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtMzk1LVx0XHRpZiAoIW9mX2RldmljZV9pc19jb21wYXRpYmxlKG5wLCBcJiMzNDtsYW50aXEseHJ4MjAwLWdzd2lwXCYjMzQ7KSlcbi0tXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTM5Ny1cdFx0YnJlYWs7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjM5ODpcdGNhc2UgR1NXSVBfVkVSU0lPTl8yXzI6XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjM5OTpcdGNhc2UgR1NXSVBfVkVSU0lPTl8yXzJfRVRDOlxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy00MDAtXHRcdGlmICghb2ZfZGV2aWNlX2lzX2NvbXBhdGlibGUobnAsIFwmIzM0O2xhbnRpcSx4cngzMDAtZ3N3aXBcJiMzNDspIFx1MDAyNlx1MDAyNlxuLS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtNDA1LVx0XHRyZXR1cm4gZGV2X2Vycl9wcm9iZShkZXYsIC1FTk9FTlQsXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjQwNjpcdFx0XHRcdCAgICAgXCYjMzQ7dW5rbm93biBHU1dJUCB2ZXJzaW9uOiAweCV4XFxuXCYjMzQ7LCB2ZXJzaW9uKTtcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtNDA3LVx0fVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM9NDU5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgZ3N3aXBfaHdfaW5mbyBnc3dpcF94cngyMDAgPSB7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjQ2MDpcdC5tYXhfcG9ydHMgPSBHU1dJUF9NQVhfUE9SVFMsXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTQ2MS1cdC5hbGxvd2VkX2NwdV9wb3J0cyA9IEJJVCg2KSxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtNDYyLVx0Lm1paV9jZmcgPSB7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjQ2MzpcdFx0WzBdID0gR1NXSVBfTUlJX0NGR3AoMCksXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjQ2NDpcdFx0WzFdID0gR1NXSVBfTUlJX0NGR3AoMSksXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTQ2NS1cdFx0WzIgLi4uIDRdID0gLTEsXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjQ2NjpcdFx0WzVdID0gR1NXSVBfTUlJX0NGR3AoNSksXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTQ2Ny1cdFx0WzZdID0gLTEsXG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy00NjktXHQubWlpX3BjZHUgPSB7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjQ3MDpcdFx0WzBdID0gR1NXSVBfTUlJX1BDRFUwLFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYzo0NzE6XHRcdFsxXSA9IEdTV0lQX01JSV9QQ0RVMSxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtNDcyLVx0XHRbMiAuLi4gNF0gPSAtMSxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM6NDczOlx0XHRbNV0gPSBHU1dJUF9NSUlfUENEVTUsXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTQ3NC1cdFx0WzZdID0gLTEsXG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy00NzgtXHQucGNlX21pY3JvY29kZV9zaXplID0gQVJSQVlfU0laRShnc3dpcF9wY2VfbWljcm9jb2RlKSxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM6NDc5Olx0LnRhZ19wcm90b2NvbCA9IERTQV9UQUdfUFJPVE9fR1NXSVAsXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTQ4MC19O1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM9NDgyPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZ3N3aXBfaHdfaW5mbyBnc3dpcF94cngzMDAgPSB7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjQ4MzpcdC5tYXhfcG9ydHMgPSBHU1dJUF9NQVhfUE9SVFMsXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTQ4NC1cdC5hbGxvd2VkX2NwdV9wb3J0cyA9IEJJVCg2KSxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtNDg1LVx0Lm1paV9jZmcgPSB7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjQ4NjpcdFx0WzBdID0gR1NXSVBfTUlJX0NGR3AoMCksXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTQ4Ny1cdFx0WzEgLi4uIDRdID0gLTEsXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjQ4ODpcdFx0WzVdID0gR1NXSVBfTUlJX0NGR3AoNSksXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTQ4OS1cdFx0WzZdID0gLTEsXG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy00OTEtXHQubWlpX3BjZHUgPSB7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjQ5MjpcdFx0WzBdID0gR1NXSVBfTUlJX1BDRFUwLFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy00OTMtXHRcdFsxIC4uLiA0XSA9IC0xLFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYzo0OTQ6XHRcdFs1XSA9IEdTV0lQX01JSV9QQ0RVNSxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtNDk1LVx0XHRbNl0gPSAtMSxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTQ5OS1cdC5wY2VfbWljcm9jb2RlX3NpemUgPSBBUlJBWV9TSVpFKGdzd2lwX3BjZV9taWNyb2NvZGUpLFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYzo1MDA6XHQudGFnX3Byb3RvY29sID0gRFNBX1RBR19QUk9UT19HU1dJUCxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtNTAxLX07XG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYz01Mjk9TU9EVUxFX0FVVEhPUihcJiMzNDtIYXVrZSBNZWhydGVucyBcdTAwM2NoYXVrZUBoYXVrZS1tLmRlXHUwMDNlXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM6NTMwOk1PRFVMRV9ERVNDUklQVElPTihcJiMzNDtMYW50aXEgLyBJbnRlbCBHU1dJUCBkcml2ZXJcJiMzNDspO1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy01MzEtTU9EVUxFX0xJQ0VOU0UoXCYjMzQ7R1BMIHYyXCYjMzQ7KTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oLTEtLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjojaWZuZGVmIF9fTEFOVElRX0dTV0lQX0hcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MzojZGVmaW5lIF9fTEFOVElRX0dTV0lQX0hcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmgtNC1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oLTE0LVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxNTovKiBHU1dJUCBNRElPIFJlZ2lzdGVycyAqL1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxNjojZGVmaW5lIEdTV0lQX01ESU9fR0xPQlx0XHRcdDB4MDBcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTc6I2RlZmluZSAgR1NXSVBfTURJT19HTE9CX0VOQUJMRVx0XHRCSVQoMTUpXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE4OiNkZWZpbmUgR1NXSVBfTURJT19DVFJMXHRcdFx0MHgwOFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxOTojZGVmaW5lICBHU1dJUF9NRElPX0NUUkxfQlVTWVx0XHRCSVQoMTIpXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjIwOiNkZWZpbmUgIEdTV0lQX01ESU9fQ1RSTF9SRFx0XHRCSVQoMTEpXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjIxOiNkZWZpbmUgIEdTV0lQX01ESU9fQ1RSTF9XUlx0XHRCSVQoMTApXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjIyOiNkZWZpbmUgIEdTV0lQX01ESU9fQ1RSTF9QSFlBRF9NQVNLXHQweDFmXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjIzOiNkZWZpbmUgIEdTV0lQX01ESU9fQ1RSTF9QSFlBRF9TSElGVFx0NVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoyNDojZGVmaW5lICBHU1dJUF9NRElPX0NUUkxfUkVHQURfTUFTS1x0MHgxZlxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoyNTojZGVmaW5lIEdTV0lQX01ESU9fUkVBRFx0XHRcdDB4MDlcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjY6I2RlZmluZSBHU1dJUF9NRElPX1dSSVRFXHRcdDB4MEFcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6Mjc6I2RlZmluZSBHU1dJUF9NRElPX01EQ19DRkcwXHRcdDB4MEJcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6Mjg6I2RlZmluZSBHU1dJUF9NRElPX01EQ19DRkcxXHRcdDB4MENcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6Mjk6I2RlZmluZSBHU1dJUF9NRElPX1BIWXAocClcdFx0KDB4MTUgLSAocCkpXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjMwOiNkZWZpbmUgIEdTV0lQX01ESU9fUEhZX0xJTktfTUFTS1x0MHg2MDAwXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjMxOiNkZWZpbmUgIEdTV0lQX01ESU9fUEhZX0xJTktfQVVUT1x0MHgwMDAwXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjMyOiNkZWZpbmUgIEdTV0lQX01ESU9fUEhZX0xJTktfRE9XTlx0MHg0MDAwXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjMzOiNkZWZpbmUgIEdTV0lQX01ESU9fUEhZX0xJTktfVVBcdFx0MHgyMDAwXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjM0OiNkZWZpbmUgIEdTV0lQX01ESU9fUEhZX1NQRUVEX01BU0tcdDB4MTgwMFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDozNTojZGVmaW5lICBHU1dJUF9NRElPX1BIWV9TUEVFRF9BVVRPXHQweDE4MDBcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MzY6I2RlZmluZSAgR1NXSVBfTURJT19QSFlfU1BFRURfTTEwXHQweDAwMDBcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6Mzc6I2RlZmluZSAgR1NXSVBfTURJT19QSFlfU1BFRURfTTEwMFx0MHgwODAwXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjM4OiNkZWZpbmUgIEdTV0lQX01ESU9fUEhZX1NQRUVEX0cxXHQweDEwMDBcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6Mzk6I2RlZmluZSAgR1NXSVBfTURJT19QSFlfRkRVUF9NQVNLXHQweDA2MDBcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6NDA6I2RlZmluZSAgR1NXSVBfTURJT19QSFlfRkRVUF9BVVRPXHQweDAwMDBcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6NDE6I2RlZmluZSAgR1NXSVBfTURJT19QSFlfRkRVUF9FTlx0XHQweDAyMDBcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6NDI6I2RlZmluZSAgR1NXSVBfTURJT19QSFlfRkRVUF9ESVNcdDB4MDYwMFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo0MzojZGVmaW5lICBHU1dJUF9NRElPX1BIWV9GQ09OVFhfTUFTS1x0MHgwMTgwXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjQ0OiNkZWZpbmUgIEdTV0lQX01ESU9fUEhZX0ZDT05UWF9BVVRPXHQweDAwMDBcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6NDU6I2RlZmluZSAgR1NXSVBfTURJT19QSFlfRkNPTlRYX0VOXHQweDAwODBcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6NDY6I2RlZmluZSAgR1NXSVBfTURJT19QSFlfRkNPTlRYX0RJU1x0MHgwMTgwXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjQ3OiNkZWZpbmUgIEdTV0lQX01ESU9fUEhZX0ZDT05SWF9NQVNLXHQweDAwNjBcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6NDg6I2RlZmluZSAgR1NXSVBfTURJT19QSFlfRkNPTlJYX0FVVE9cdDB4MDAwMFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo0OTojZGVmaW5lICBHU1dJUF9NRElPX1BIWV9GQ09OUlhfRU5cdDB4MDAyMFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo1MDojZGVmaW5lICBHU1dJUF9NRElPX1BIWV9GQ09OUlhfRElTXHQweDAwNjBcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6NTE6I2RlZmluZSAgR1NXSVBfTURJT19QSFlfQUREUl9NQVNLXHQweDAwMWZcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6NTI6I2RlZmluZSAgR1NXSVBfTURJT19QSFlfTUFTS1x0XHQoR1NXSVBfTURJT19QSFlfQUREUl9NQVNLIHwgXFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6NTM6XHRcdFx0XHRcdCBHU1dJUF9NRElPX1BIWV9GQ09OUlhfTUFTSyB8IFxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjU0Olx0XHRcdFx0XHQgR1NXSVBfTURJT19QSFlfRkNPTlRYX01BU0sgfCBcXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo1NTpcdFx0XHRcdFx0IEdTV0lQX01ESU9fUEhZX0xJTktfTUFTSyB8IFxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjU2Olx0XHRcdFx0XHQgR1NXSVBfTURJT19QSFlfU1BFRURfTUFTSyB8IFxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjU3Olx0XHRcdFx0XHQgR1NXSVBfTURJT19QSFlfRkRVUF9NQVNLKVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaC01OC1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6NTk6LyogR1NXSVAgTUlJIFJlZ2lzdGVycyAqL1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo2MDojZGVmaW5lIEdTV0lQX01JSV9DRkdwKHApXHRcdCgweDIgKiAocCkpXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjYxOiNkZWZpbmUgIEdTV0lQX01JSV9DRkdfUkVTRVRcdFx0QklUKDE1KVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo2MjojZGVmaW5lICBHU1dJUF9NSUlfQ0ZHX0VOXHRcdEJJVCgxNClcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6NjM6I2RlZmluZSAgR1NXSVBfTUlJX0NGR19JU09MQVRFXHRcdEJJVCgxMylcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6NjQ6I2RlZmluZSAgR1NXSVBfTUlJX0NGR19MRENMS0RJU1x0XHRCSVQoMTIpXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjY1OiNkZWZpbmUgIEdTV0lQX01JSV9DRkdfUkdNSUlfSUJTXHRCSVQoOClcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6NjY6I2RlZmluZSAgR1NXSVBfTUlJX0NGR19STUlJX0NMS1x0XHRCSVQoNylcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6Njc6I2RlZmluZSAgR1NXSVBfTUlJX0NGR19NT0RFX01JSVBcdDB4MFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo2ODojZGVmaW5lICBHU1dJUF9NSUlfQ0ZHX01PREVfTUlJTVx0MHgxXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjY5OiNkZWZpbmUgIEdTV0lQX01JSV9DRkdfTU9ERV9STUlJUFx0MHgyXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjcwOiNkZWZpbmUgIEdTV0lQX01JSV9DRkdfTU9ERV9STUlJTVx0MHgzXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjcxOiNkZWZpbmUgIEdTV0lQX01JSV9DRkdfTU9ERV9SR01JSVx0MHg0XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjcyOiNkZWZpbmUgIEdTV0lQX01JSV9DRkdfTU9ERV9HTUlJXHQweDlcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6NzM6I2RlZmluZSAgR1NXSVBfTUlJX0NGR19NT0RFX01BU0tcdDB4ZlxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo3NDojZGVmaW5lICBHU1dJUF9NSUlfQ0ZHX1JBVEVfTTJQNVx0MHgwMFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo3NTojZGVmaW5lICBHU1dJUF9NSUlfQ0ZHX1JBVEVfTTI1XHQweDEwXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjc2OiNkZWZpbmUgIEdTV0lQX01JSV9DRkdfUkFURV9NMTI1XHQweDIwXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjc3OiNkZWZpbmUgIEdTV0lQX01JSV9DRkdfUkFURV9NNTBcdDB4MzBcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6Nzg6I2RlZmluZSAgR1NXSVBfTUlJX0NGR19SQVRFX0FVVE9cdDB4NDBcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6Nzk6I2RlZmluZSAgR1NXSVBfTUlJX0NGR19SQVRFX01BU0tcdDB4NzBcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6ODA6I2RlZmluZSBHU1dJUF9NSUlfUENEVTBcdFx0XHQweDAxXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjgxOiNkZWZpbmUgR1NXSVBfTUlJX1BDRFUxXHRcdFx0MHgwM1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo4MjojZGVmaW5lIEdTV0lQX01JSV9QQ0RVNVx0XHRcdDB4MDVcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6ODM6I2RlZmluZSAgR1NXSVBfTUlJX1BDRFVfVFhETFlfTUFTS1x0R0VOTUFTSygyLCAwKVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo4NDojZGVmaW5lICBHU1dJUF9NSUlfUENEVV9SWERMWV9NQVNLXHRHRU5NQVNLKDksIDcpXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjg1OiNkZWZpbmUgIEdTV0lQX01JSV9QQ0RVX1RYRExZKHgpXHR1MTZfZW5jb2RlX2JpdHMoKCh4KSAvIDUwMCksIEdTV0lQX01JSV9QQ0RVX1RYRExZX01BU0spXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjg2OiNkZWZpbmUgIEdTV0lQX01JSV9QQ0RVX1JYRExZKHgpXHR1MTZfZW5jb2RlX2JpdHMoKCh4KSAvIDUwMCksIEdTV0lQX01JSV9QQ0RVX1JYRExZX01BU0spXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjg3OiNkZWZpbmUgR1NXSVBfTUlJX1BDRFVfUlhETFlfREVGQVVMVFx0MjAwMCAvKiBwaWNvc2Vjb25kcyAqL1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo4ODojZGVmaW5lIEdTV0lQX01JSV9QQ0RVX1RYRExZX0RFRkFVTFRcdDIwMDAgLyogcGljb3NlY29uZHMgKi9cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmgtODktXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjkwOi8qIEdTV0lQIENvcmUgUmVnaXN0ZXJzICovXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjkxOiNkZWZpbmUgR1NXSVBfU1dSRVNcdFx0XHQweDAwMFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo5MjojZGVmaW5lICBHU1dJUF9TV1JFU19SMVx0XHRcdEJJVCgxKVx0LyogR1NXSVAgU29mdHdhcmUgcmVzZXQgKi9cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6OTM6I2RlZmluZSAgR1NXSVBfU1dSRVNfUjBcdFx0XHRCSVQoMClcdC8qIEdTV0lQIEhhcmR3YXJlIHJlc2V0ICovXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjk0OiNkZWZpbmUgR1NXSVBfVkVSU0lPTlx0XHRcdDB4MDEzXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjk1OiNkZWZpbmUgIEdTV0lQX1ZFUlNJT05fUkVWX01BU0tcdFx0R0VOTUFTSyg3LCAwKVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo5NjojZGVmaW5lICBHU1dJUF9WRVJTSU9OX01PRF9NQVNLXHRcdEdFTk1BU0soMTUsIDgpXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjk3OiNkZWZpbmUgIEdTV0lQX1ZFUlNJT05fUkVWKHYpXHRcdEZJRUxEX0dFVChHU1dJUF9WRVJTSU9OX1JFVl9NQVNLLCB2KVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo5ODojZGVmaW5lICBHU1dJUF9WRVJTSU9OX01PRCh2KVx0XHRGSUVMRF9HRVQoR1NXSVBfVkVSU0lPTl9NT0RfTUFTSywgdilcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6OTk6I2RlZmluZSAgIEdTV0lQX1ZFUlNJT05fMl8wXHRcdDB4MTAwXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjEwMDojZGVmaW5lICAgR1NXSVBfVkVSU0lPTl8yXzFcdFx0MHgwMjFcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTAxOiNkZWZpbmUgICBHU1dJUF9WRVJTSU9OXzJfMlx0XHQweDEyMlxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxMDI6I2RlZmluZSAgIEdTV0lQX1ZFUlNJT05fMl8yX0VUQ1x0XHQweDAyMlxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaC0xMDMtLyogVGhlIGhhcmR3YXJlIGhhcyB0aGUgJiMzOTttYWpvci9taW5vciYjMzk7IHZlcnNpb24gYnl0ZXMgaW4gdGhlIHdyb25nIG9yZGVyXG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaC0xMDgtICovXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjEwOTojZGVmaW5lIEdTV0lQX1ZFUlNJT05fR0UocHJpdiwgdmVyKVx0KChwcml2KS1cdTAwM2V2ZXJzaW9uIFx1MDAzZT0gc3dhYjE2KHZlcikpXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oLTExMC1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTExOiNkZWZpbmUgR1NXSVBfQk1fUkFNX1ZBTCh4KVx0XHQoMHgwNDMgLSAoeCkpXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjExMjojZGVmaW5lIEdTV0lQX0JNX1JBTV9BRERSXHRcdDB4MDQ0XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjExMzojZGVmaW5lIEdTV0lQX0JNX1JBTV9DVFJMXHRcdDB4MDQ1XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjExNDojZGVmaW5lICBHU1dJUF9CTV9SQU1fQ1RSTF9CQVNcdFx0QklUKDE1KVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxMTU6I2RlZmluZSAgR1NXSVBfQk1fUkFNX0NUUkxfT1BNT0RcdEJJVCg1KVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxMTY6I2RlZmluZSAgR1NXSVBfQk1fUkFNX0NUUkxfQUREUl9NQVNLXHRHRU5NQVNLKDQsIDApXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjExNzojZGVmaW5lIEdTV0lQX0JNX1FVRVVFX0dDVFJMXHRcdDB4MDRBXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjExODojZGVmaW5lICBHU1dJUF9CTV9RVUVVRV9HQ1RSTF9HTF9NT0RcdEJJVCgxMClcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmgtMTE5LS8qIGJ1ZmZlciBtYW5hZ2VtZW50IFBvcnQgQ29uZmlndXJhdGlvbiBSZWdpc3RlciAqL1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxMjA6I2RlZmluZSBHU1dJUF9CTV9QQ0ZHcChwKVx0XHQoMHgwODAgJiM0MzsgKChwKSAqIDIpKVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxMjE6I2RlZmluZSAgR1NXSVBfQk1fUENGR19DTlRFTlx0XHRCSVQoMClcdC8qIFJNT04gQ291bnRlciBFbmFibGUgKi9cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTIyOiNkZWZpbmUgIEdTV0lQX0JNX1BDRkdfSUdDTlRcdFx0QklUKDEpXHQvKiBJbmdyZXMgU3BlY2lhbCBUYWcgUk1PTiBjb3VudCAqL1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaC0xMjMtLyogYnVmZmVyIG1hbmFnZW1lbnQgUG9ydCBDb250cm9sIFJlZ2lzdGVyICovXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjEyNDojZGVmaW5lIEdTV0lQX0JNX1JNT05fQ1RSTHAocClcdFx0KDB4ODEgJiM0MzsgKChwKSAqIDIpKVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxMjU6I2RlZmluZSAgR1NXSVBfQk1fQ1RSTF9STU9OX1JBTTFfUkVTXHRCSVQoMClcdC8qIFNvZnR3YXJlIFJlc2V0IGZvciBSTU9OIFJBTSAxICovXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjEyNjojZGVmaW5lICBHU1dJUF9CTV9DVFJMX1JNT05fUkFNMl9SRVNcdEJJVCgxKVx0LyogU29mdHdhcmUgUmVzZXQgZm9yIFJNT04gUkFNIDIgKi9cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmgtMTI3LVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaC0xMjgtLyogUENFICovXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjEyOTojZGVmaW5lIEdTV0lQX1BDRV9UQkxfS0VZKHgpXHRcdCgweDQ0NyAtICh4KSlcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTMwOiNkZWZpbmUgR1NXSVBfUENFX1RCTF9NQVNLXHRcdDB4NDQ4XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjEzMTojZGVmaW5lIEdTV0lQX1BDRV9UQkxfVkFMKHgpXHRcdCgweDQ0RCAtICh4KSlcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTMyOiNkZWZpbmUgR1NXSVBfUENFX1RCTF9BRERSXHRcdDB4NDRFXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjEzMzojZGVmaW5lIEdTV0lQX1BDRV9UQkxfQ1RSTFx0XHQweDQ0RlxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxMzQ6I2RlZmluZSAgR1NXSVBfUENFX1RCTF9DVFJMX0JBU1x0XHRCSVQoMTUpXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjEzNTojZGVmaW5lICBHU1dJUF9QQ0VfVEJMX0NUUkxfVFlQRVx0QklUKDEzKVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxMzY6I2RlZmluZSAgR1NXSVBfUENFX1RCTF9DVFJMX1ZMRFx0XHRCSVQoMTIpXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjEzNzojZGVmaW5lICBHU1dJUF9QQ0VfVEJMX0NUUkxfS0VZRk9STVx0QklUKDExKVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxMzg6I2RlZmluZSAgR1NXSVBfUENFX1RCTF9DVFJMX0dNQVBfTUFTS1x0R0VOTUFTSygxMCwgNylcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTM5OiNkZWZpbmUgIEdTV0lQX1BDRV9UQkxfQ1RSTF9PUE1PRF9NQVNLXHRHRU5NQVNLKDYsIDUpXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE0MDojZGVmaW5lICBHU1dJUF9QQ0VfVEJMX0NUUkxfT1BNT0RfQURSRFx0MHgwMFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxNDE6I2RlZmluZSAgR1NXSVBfUENFX1RCTF9DVFJMX09QTU9EX0FEV1JcdDB4MjBcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTQyOiNkZWZpbmUgIEdTV0lQX1BDRV9UQkxfQ1RSTF9PUE1PRF9LU1JEXHQweDQwXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE0MzojZGVmaW5lICBHU1dJUF9QQ0VfVEJMX0NUUkxfT1BNT0RfS1NXUlx0MHg2MFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxNDQ6I2RlZmluZSAgR1NXSVBfUENFX1RCTF9DVFJMX0FERFJfTUFTS1x0R0VOTUFTSyg0LCAwKVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxNDU6I2RlZmluZSBHU1dJUF9QQ0VfUE1BUDFcdFx0XHQweDQ1M1x0LyogTW9uaXRvcmluZyBwb3J0IG1hcCAqL1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxNDY6I2RlZmluZSBHU1dJUF9QQ0VfUE1BUDJcdFx0XHQweDQ1NFx0LyogRGVmYXVsdCBNdWx0aWNhc3QgcG9ydCBtYXAgKi9cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTQ3OiNkZWZpbmUgR1NXSVBfUENFX1BNQVAzXHRcdFx0MHg0NTVcdC8qIERlZmF1bHQgVW5rbm93biBVbmljYXN0IHBvcnQgbWFwICovXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE0ODojZGVmaW5lIEdTV0lQX1BDRV9HQ1RSTF8wXHRcdDB4NDU2XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE0OTojZGVmaW5lICBHU1dJUF9QQ0VfR0NUUkxfMF9NVEZMXHRcdEJJVCgwKSAgLyogTUFDIFRhYmxlIEZsdXNoaW5nICovXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE1MDojZGVmaW5lICBHU1dJUF9QQ0VfR0NUUkxfMF9NQ19WQUxJRFx0QklUKDMpXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE1MTojZGVmaW5lICBHU1dJUF9QQ0VfR0NUUkxfMF9WTEFOXHRcdEJJVCgxNCkgLyogVkxBTiBhd2FyZSBTd2l0Y2hpbmcgKi9cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTUyOiNkZWZpbmUgR1NXSVBfUENFX0dDVFJMXzFcdFx0MHg0NTdcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTUzOiNkZWZpbmUgIEdTV0lQX1BDRV9HQ1RSTF8xX01BQ19HTE9DS1x0QklUKDIpXHQvKiBNQUMgQWRkcmVzcyB0YWJsZSBsb2NrICovXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE1NDojZGVmaW5lICBHU1dJUF9QQ0VfR0NUUkxfMV9NQUNfR0xPQ0tfTU9EXHRCSVQoMykgLyogTWFjIGFkZHJlc3MgdGFibGUgbG9jayBmb3J3YXJkaW5nIG1vZGUgKi9cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTU1OiNkZWZpbmUgR1NXSVBfUENFX1BDVFJMXzBwKHApXHRcdCgweDQ4MCAmIzQzOyAoKHApICogMHhBKSlcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTU2OiNkZWZpbmUgIEdTV0lQX1BDRV9QQ1RSTF8wX1RWTVx0XHRCSVQoNSlcdC8qIFRyYW5zcGFyZW50IFZMQU4gbW9kZSAqL1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxNTc6I2RlZmluZSAgR1NXSVBfUENFX1BDVFJMXzBfVlJFUFx0XHRCSVQoNilcdC8qIFZMQU4gUmVwbGFjZSBNb2RlICovXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE1ODojZGVmaW5lICBHU1dJUF9QQ0VfUENUUkxfMF9JTkdSRVNTXHRCSVQoMTEpXHQvKiBBY2NlcHQgc3BlY2lhbCB0YWcgaW4gaW5ncmVzcyAqL1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxNTk6I2RlZmluZSAgR1NXSVBfUENFX1BDVFJMXzBfUFNUQVRFX0xJU1RFTlx0MHgwXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE2MDojZGVmaW5lICBHU1dJUF9QQ0VfUENUUkxfMF9QU1RBVEVfUlhcdFx0MHgxXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE2MTojZGVmaW5lICBHU1dJUF9QQ0VfUENUUkxfMF9QU1RBVEVfVFhcdFx0MHgyXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE2MjojZGVmaW5lICBHU1dJUF9QQ0VfUENUUkxfMF9QU1RBVEVfTEVBUk5JTkdcdDB4M1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxNjM6I2RlZmluZSAgR1NXSVBfUENFX1BDVFJMXzBfUFNUQVRFX0ZPUldBUkRJTkdcdDB4N1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxNjQ6I2RlZmluZSAgR1NXSVBfUENFX1BDVFJMXzBfUFNUQVRFX01BU0tcdEdFTk1BU0soMiwgMClcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmgtMTY1LS8qIEV0aGVybmV0IFN3aXRjaCBQQ0UgUG9ydCBDb250cm9sIFJlZ2lzdGVyIDMgKi9cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTY2OiNkZWZpbmUgR1NXSVBfUENFX1BDVFJMXzNwKHApXHRcdCgweDQ4MyAmIzQzOyAoKHApICogMHhBKSlcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTY3OiNkZWZpbmUgIEdTV0lQX1BDRV9QQ1RSTF8zX0xORElTXHRCSVQoMTUpICAvKiBMZWFybmluZyBEaXNhYmxlICovXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE2ODojZGVmaW5lIEdTV0lQX1BDRV9WQ1RSTChwKVx0XHQoMHg0ODUgJiM0MzsgKChwKSAqIDB4QSkpXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE2OTojZGVmaW5lICBHU1dJUF9QQ0VfVkNUUkxfVVZSXHRcdEJJVCgwKVx0LyogVW5rbm93biBWTEFOIFJ1bGUgKi9cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTcwOiNkZWZpbmUgIEdTV0lQX1BDRV9WQ1RSTF9WSU5SXHRcdEdFTk1BU0soMiwgMSkgLyogVkxBTiBJbmdyZXNzIFRhZyBSdWxlICovXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE3MTojZGVmaW5lICBHU1dJUF9QQ0VfVkNUUkxfVklOUl9BTExcdDAgLyogQWRtaXQgdGFnZ2VkIGFuZCB1bnRhZ2dlZCBwYWNrZXRzICovXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE3MjojZGVmaW5lICBHU1dJUF9QQ0VfVkNUUkxfVklOUl9UQUdHRURcdDEgLyogQWRtaXQgb25seSB0YWdnZWQgcGFja2V0cyAqL1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxNzM6I2RlZmluZSAgR1NXSVBfUENFX1ZDVFJMX1ZJTlJfVU5UQUdHRURcdDIgLyogQWRtaXQgb25seSB1bnRhZ2dlZCBwYWNrZXRzICovXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE3NDojZGVmaW5lICBHU1dJUF9QQ0VfVkNUUkxfVklNUlx0XHRCSVQoMylcdC8qIFZMQU4gSW5ncmVzcyBNZW1iZXIgdmlvbGF0aW9uIHJ1bGUgKi9cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTc1OiNkZWZpbmUgIEdTV0lQX1BDRV9WQ1RSTF9WRU1SXHRcdEJJVCg0KVx0LyogVkxBTiBFZ3Jlc3MgTWVtYmVyIHZpb2xhdGlvbiBydWxlICovXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE3NjojZGVmaW5lICBHU1dJUF9QQ0VfVkNUUkxfVlNSXHRcdEJJVCg1KVx0LyogVkxBTiBTZWN1cml0eSAqL1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxNzc6I2RlZmluZSAgR1NXSVBfUENFX1ZDVFJMX1ZJRDBcdFx0QklUKDYpXHQvKiBQcmlvcml0eSBUYWdnZWQgUnVsZSAqL1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxNzg6I2RlZmluZSBHU1dJUF9QQ0VfREVGUFZJRChwKVx0XHQoMHg0ODYgJiM0MzsgKChwKSAqIDB4QSkpXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oLTE3OS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTgwOiNkZWZpbmUgR1NXSVBfTUFDX0ZMRU5cdFx0XHQweDhDNVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxODE6I2RlZmluZSBHU1dJUF9NQUNfQ1RSTF8wcChwKVx0XHQoMHg5MDMgJiM0MzsgKChwKSAqIDB4QykpXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE4MjojZGVmaW5lICBHU1dJUF9NQUNfQ1RSTF8wX1BBREVOXHRcdEJJVCg4KVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxODM6I2RlZmluZSAgR1NXSVBfTUFDX0NUUkxfMF9GQ1NfRU5cdEJJVCg3KVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxODQ6I2RlZmluZSAgR1NXSVBfTUFDX0NUUkxfMF9GQ09OX01BU0tcdDB4MDA3MFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxODU6I2RlZmluZSAgR1NXSVBfTUFDX0NUUkxfMF9GQ09OX0FVVE9cdDB4MDAwMFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxODY6I2RlZmluZSAgR1NXSVBfTUFDX0NUUkxfMF9GQ09OX1JYXHQweDAwMTBcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTg3OiNkZWZpbmUgIEdTV0lQX01BQ19DVFJMXzBfRkNPTl9UWFx0MHgwMDIwXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE4ODojZGVmaW5lICBHU1dJUF9NQUNfQ1RSTF8wX0ZDT05fUlhUWFx0MHgwMDMwXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE4OTojZGVmaW5lICBHU1dJUF9NQUNfQ1RSTF8wX0ZDT05fTk9ORVx0MHgwMDQwXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE5MDojZGVmaW5lICBHU1dJUF9NQUNfQ1RSTF8wX0ZEVVBfTUFTS1x0MHgwMDBDXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE5MTojZGVmaW5lICBHU1dJUF9NQUNfQ1RSTF8wX0ZEVVBfQVVUT1x0MHgwMDAwXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE5MjojZGVmaW5lICBHU1dJUF9NQUNfQ1RSTF8wX0ZEVVBfRU5cdDB4MDAwNFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxOTM6I2RlZmluZSAgR1NXSVBfTUFDX0NUUkxfMF9GRFVQX0RJU1x0MHgwMDBDXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE5NDojZGVmaW5lICBHU1dJUF9NQUNfQ1RSTF8wX0dNSUlfTUFTS1x0MHgwMDAzXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE5NTojZGVmaW5lICBHU1dJUF9NQUNfQ1RSTF8wX0dNSUlfQVVUT1x0MHgwMDAwXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE5NjojZGVmaW5lICBHU1dJUF9NQUNfQ1RSTF8wX0dNSUlfTUlJXHQweDAwMDFcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTk3OiNkZWZpbmUgIEdTV0lQX01BQ19DVFJMXzBfR01JSV9SR01JSVx0MHgwMDAyXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE5ODojZGVmaW5lIEdTV0lQX01BQ19DVFJMXzJwKHApXHRcdCgweDkwNSAmIzQzOyAoKHApICogMHhDKSlcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTk5OiNkZWZpbmUgR1NXSVBfTUFDX0NUUkxfMl9MQ0hLTFx0XHRCSVQoMikgLyogRnJhbWUgTGVuZ3RoIENoZWNrIExvbmcgRW5hYmxlICovXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjIwMDojZGVmaW5lIEdTV0lQX01BQ19DVFJMXzJfTUxFTlx0XHRCSVQoMykgLyogTWF4aW11bSBVbnRhZ2dlZCBGcmFtZSBMbmVndGggKi9cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjAxOiNkZWZpbmUgR1NXSVBfTUFDX0NUUkxfNHAocClcdFx0KDB4OTA3ICYjNDM7ICgocCkgKiAweEMpKVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoyMDI6I2RlZmluZSAgR1NXSVBfTUFDX0NUUkxfNF9MUElFTlx0XHRCSVQoNykgLyogTFBJIE1vZGUgRW5hYmxlICovXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjIwMzojZGVmaW5lICBHU1dJUF9NQUNfQ1RSTF80X0dXQUlUX01BU0tcdEdFTk1BU0soMTQsIDgpIC8qIExQSSBXYWl0IFRpbWUgMUcgKi9cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjA0OiNkZWZpbmUgIEdTV0lQX01BQ19DVFJMXzRfR1dBSVQodClcdHUxNl9lbmNvZGVfYml0cygodCksIEdTV0lQX01BQ19DVFJMXzRfR1dBSVRfTUFTSylcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjA1OiNkZWZpbmUgIEdTV0lQX01BQ19DVFJMXzRfV0FJVF9NQVNLXHRHRU5NQVNLKDYsIDApIC8qIExQSSBXYWl0IFRpbWUgMTAwTSAqL1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoyMDY6I2RlZmluZSAgR1NXSVBfTUFDX0NUUkxfNF9XQUlUKHQpXHR1MTZfZW5jb2RlX2JpdHMoKHQpLCBHU1dJUF9NQUNfQ1RSTF80X1dBSVRfTUFTSylcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmgtMjA3LVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaC0yMDgtLyogRXRoZXJuZXQgU3dpdGNoIEZldGNoIERNQSBQb3J0IENvbnRyb2wgUmVnaXN0ZXIgKi9cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjA5OiNkZWZpbmUgR1NXSVBfRkRNQV9QQ1RSTHAocClcdFx0KDB4QTgwICYjNDM7ICgocCkgKiAweDYpKVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoyMTA6I2RlZmluZSAgR1NXSVBfRkRNQV9QQ1RSTF9FTlx0XHRCSVQoMClcdC8qIEZETUEgUG9ydCBFbmFibGUgKi9cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjExOiNkZWZpbmUgIEdTV0lQX0ZETUFfUENUUkxfU1RFTlx0XHRCSVQoMSlcdC8qIFNwZWNpYWwgVGFnIEluc2VydGlvbiBFbmFibGUgKi9cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjEyOiNkZWZpbmUgIEdTV0lQX0ZETUFfUENUUkxfVkxBTk1PRF9NQVNLXHRHRU5NQVNLKDQsIDMpXHQvKiBWTEFOIE1vZGlmaWNhdGlvbiBDb250cm9sICovXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjIxMzojZGVmaW5lICBHU1dJUF9GRE1BX1BDVFJMX1ZMQU5NT0RfU0hJRlRcdDNcdC8qIFZMQU4gTW9kaWZpY2F0aW9uIENvbnRyb2wgKi9cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjE0OiNkZWZpbmUgIEdTV0lQX0ZETUFfUENUUkxfVkxBTk1PRF9ESVNcdCgweDAgXHUwMDNjXHUwMDNjIEdTV0lQX0ZETUFfUENUUkxfVkxBTk1PRF9TSElGVClcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjE1OiNkZWZpbmUgIEdTV0lQX0ZETUFfUENUUkxfVkxBTk1PRF9QUklPXHQoMHgxIFx1MDAzY1x1MDAzYyBHU1dJUF9GRE1BX1BDVFJMX1ZMQU5NT0RfU0hJRlQpXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjIxNjojZGVmaW5lICBHU1dJUF9GRE1BX1BDVFJMX1ZMQU5NT0RfSURcdCgweDIgXHUwMDNjXHUwMDNjIEdTV0lQX0ZETUFfUENUUkxfVkxBTk1PRF9TSElGVClcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjE3OiNkZWZpbmUgIEdTV0lQX0ZETUFfUENUUkxfVkxBTk1PRF9CT1RIXHQoMHgzIFx1MDAzY1x1MDAzYyBHU1dJUF9GRE1BX1BDVFJMX1ZMQU5NT0RfU0hJRlQpXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oLTIxOC1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmgtMjE5LS8qIEV0aGVybmV0IFN3aXRjaCBTdG9yZSBETUEgUG9ydCBDb250cm9sIFJlZ2lzdGVyICovXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjIyMDojZGVmaW5lIEdTV0lQX1NETUFfUENUUkxwKHApXHRcdCgweEJDMCAmIzQzOyAoKHApICogMHg2KSlcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjIxOiNkZWZpbmUgIEdTV0lQX1NETUFfUENUUkxfRU5cdFx0QklUKDApXHQvKiBTRE1BIFBvcnQgRW5hYmxlICovXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjIyMjojZGVmaW5lICBHU1dJUF9TRE1BX1BDVFJMX0ZDRU5cdFx0QklUKDEpXHQvKiBGbG93IENvbnRyb2wgRW5hYmxlICovXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjIyMzojZGVmaW5lICBHU1dJUF9TRE1BX1BDVFJMX1BBVUZXRFx0QklUKDMpXHQvKiBQYXVzZSBGcmFtZSBGb3J3YXJkaW5nICovXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oLTIyNC1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjI1OiNkZWZpbmUgR1NXSVBfVEFCTEVfQUNUSVZFX1ZMQU5cdFx0MHgwMVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoyMjY6I2RlZmluZSBHU1dJUF9UQUJMRV9WTEFOX01BUFBJTkdcdDB4MDJcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjI3OiNkZWZpbmUgR1NXSVBfVEFCTEVfTUFDX0JSSURHRVx0XHQweDBiXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjIyODojZGVmaW5lICBHU1dJUF9UQUJMRV9NQUNfQlJJREdFX0tFWTNfRklEXHRHRU5NQVNLKDUsIDApXHQvKiBGaWx0ZXJpbmcgaWRlbnRpZmllciAqL1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoyMjk6I2RlZmluZSAgR1NXSVBfVEFCTEVfTUFDX0JSSURHRV9WQUwwX1BPUlRcdEdFTk1BU0soNywgNClcdC8qIFBvcnQgb24gbGVhcm5lZCBlbnRyaWVzICovXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjIzMDojZGVmaW5lICBHU1dJUF9UQUJMRV9NQUNfQlJJREdFX1ZBTDFfU1RBVElDXHRCSVQoMClcdFx0LyogU3RhdGljLCBub24tYWdpbmcgZW50cnkgKi9cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjMxOiNkZWZpbmUgIEdTV0lQX1RBQkxFX01BQ19CUklER0VfVkFMMV9WQUxJRFx0QklUKDEpXHRcdC8qIFZhbGlkIGJpdCAqL1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaC0yMzItXG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaC0yNDEtICovXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjI0MjojZGVmaW5lIEdTV0lQX01BWF9QQUNLRVRfTEVOR1RIXHQyNDAwXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oLTI0My1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjQ0OiNkZWZpbmUgR1NXSVBfVkxBTl9VTkFXQVJFX1BWSURcdDBcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmgtMjQ1LVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoyNDY6I2RlZmluZSBHU1dJUF9NQVhfUE9SVFNcdFx0N1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaC0yNDctXG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaD0yNTU9c3RydWN0IGdzd2lwX2h3X2luZm8ge1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmgtMjU3LVx0dW5zaWduZWQgaW50IGFsbG93ZWRfY3B1X3BvcnRzO1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoyNTg6XHRzMTYgbWlpX2NmZ1tHU1dJUF9NQVhfUE9SVFNdO1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoyNTk6XHRzMTYgbWlpX3BjZHVbR1NXSVBfTUFYX1BPUlRTXTtcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmgtMjYwLVx0Ym9vbCBzdXBwb3J0c18yNTAwbTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oPTMwMD1pbnQgZ3N3aXBfcHJvYmVfY29tbW9uKHN0cnVjdCBnc3dpcF9wcml2ICpwcml2LCB1MzIgdmVyc2lvbik7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oLTMwMS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MzAyOiNlbmRpZiAvKiBfX0xBTlRJUV9HU1dJUF9IICovXG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMi0vKlxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MzogKiBMYW50aXEgLyBJbnRlbCAvIE1heExpbmVhciBHU1dJUCBjb21tb24gZnVuY3Rpb24gbGlicmFyeVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtNC0gKlxuLS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTExLSAqXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzoxMjogKiBUaGUgVkxBTiBhbmQgYnJpZGdlIG1vZGVsIHRoZSBHU1dJUCBoYXJkd2FyZSB1c2VzIGRvZXMgbm90IGRpcmVjdGx5XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0xMy0gKiBtYXRjaGVzIHRoZSBtb2RlbCBEU0EgdXNlcy5cbi0tXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYz0xMjk9c3RhdGljIGludCBnc3dpcF9tZGlvX3BvbGwoc3RydWN0IGdzd2lwX3ByaXYgKnByaXYpXG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMTMyLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MTMzOlx0cmV0dXJuIHJlZ21hcF9yZWFkX3BvbGxfdGltZW91dChwcml2LVx1MDAzZW1kaW8sIEdTV0lQX01ESU9fQ1RSTCwgY3RybCxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjEzNDpcdFx0XHRcdFx0IShjdHJsIFx1MDAyNiBHU1dJUF9NRElPX0NUUkxfQlVTWSksIDQwLCA0MDAwKTtcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTEzNS19XG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM9MTM3PXN0YXRpYyBpbnQgZ3N3aXBfbWRpb193cihzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgYWRkciwgaW50IHJlZywgdTE2IHZhbClcbi0tXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0xNDctXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzoxNDg6XHRyZWdtYXBfd3JpdGUocHJpdi1cdTAwM2VtZGlvLCBHU1dJUF9NRElPX1dSSVRFLCB2YWwpO1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MTQ5Olx0cmVnbWFwX3dyaXRlKHByaXYtXHUwMDNlbWRpbywgR1NXSVBfTURJT19DVFJMLFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MTUwOlx0XHQgICAgIEdTV0lQX01ESU9fQ1RSTF9CVVNZIHwgR1NXSVBfTURJT19DVFJMX1dSIHxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjE1MTpcdFx0ICAgICAoKGFkZHIgXHUwMDI2IEdTV0lQX01ESU9fQ1RSTF9QSFlBRF9NQVNLKSBcdTAwM2NcdTAwM2MgR1NXSVBfTURJT19DVFJMX1BIWUFEX1NISUZUKSB8XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzoxNTI6XHRcdCAgICAgKHJlZyBcdTAwMjYgR1NXSVBfTURJT19DVFJMX1JFR0FEX01BU0spKTtcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTE1My1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYz0xNTc9c3RhdGljIGludCBnc3dpcF9tZGlvX3JkKHN0cnVjdCBtaWlfYnVzICpidXMsIGludCBhZGRyLCBpbnQgcmVnKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTE2OC1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjE2OTpcdHJlZ21hcF93cml0ZShwcml2LVx1MDAzZW1kaW8sIEdTV0lQX01ESU9fQ1RSTCxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjE3MDpcdFx0ICAgICBHU1dJUF9NRElPX0NUUkxfQlVTWSB8IEdTV0lQX01ESU9fQ1RSTF9SRCB8XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzoxNzE6XHRcdCAgICAgKChhZGRyIFx1MDAyNiBHU1dJUF9NRElPX0NUUkxfUEhZQURfTUFTSykgXHUwMDNjXHUwMDNjIEdTV0lQX01ESU9fQ1RSTF9QSFlBRF9TSElGVCkgfFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MTcyOlx0XHQgICAgIChyZWcgXHUwMDI2IEdTV0lQX01ESU9fQ1RSTF9SRUdBRF9NQVNLKSk7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0xNzMtXG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMTc5LVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MTgwOlx0ZXJyID0gcmVnbWFwX3JlYWQocHJpdi1cdTAwM2VtZGlvLCBHU1dJUF9NRElPX1JFQUQsIFx1MDAyNnZhbCk7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0xODEtXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jPTIyMj1zdGF0aWMgaW50IGdzd2lwX3BjZV90YWJsZV9lbnRyeV9yZWFkKHN0cnVjdCBnc3dpcF9wcml2ICpwcml2LFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTIyOC1cdHUzMiB0bXA7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzoyMjk6XHR1MTYgYWRkcl9tb2RlID0gdGJsLVx1MDAzZWtleV9tb2RlID8gR1NXSVBfUENFX1RCTF9DVFJMX09QTU9EX0tTUkQgOlxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MjMwOlx0XHRcdFx0XHRHU1dJUF9QQ0VfVEJMX0NUUkxfT1BNT0RfQURSRDtcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTIzMS1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0yMzMtXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzoyMzQ6XHRlcnIgPSBnc3dpcF9zd2l0Y2hfcl90aW1lb3V0KHByaXYsIEdTV0lQX1BDRV9UQkxfQ1RSTCxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjIzNTpcdFx0XHRcdCAgICAgR1NXSVBfUENFX1RCTF9DVFJMX0JBUyk7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0yMzYtXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTIzOC1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjIzOTpcdHJlZ21hcF93cml0ZShwcml2LVx1MDAzZWdzd2lwLCBHU1dJUF9QQ0VfVEJMX0FERFIsIHRibC1cdTAwM2VpbmRleCk7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzoyNDA6XHRyZWdtYXBfd3JpdGVfYml0cyhwcml2LVx1MDAzZWdzd2lwLCBHU1dJUF9QQ0VfVEJMX0NUUkwsXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzoyNDE6XHRcdFx0ICBHU1dJUF9QQ0VfVEJMX0NUUkxfQUREUl9NQVNLIHxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjI0MjpcdFx0XHQgIEdTV0lQX1BDRV9UQkxfQ1RSTF9PUE1PRF9NQVNLIHxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjI0MzpcdFx0XHQgIEdTV0lQX1BDRV9UQkxfQ1RSTF9CQVMsXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzoyNDQ6XHRcdFx0ICB0YmwtXHUwMDNldGFibGUgfCBhZGRyX21vZGUgfCBHU1dJUF9QQ0VfVEJMX0NUUkxfQkFTKTtcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTI0NS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjI0NjpcdGVyciA9IGdzd2lwX3N3aXRjaF9yX3RpbWVvdXQocHJpdiwgR1NXSVBfUENFX1RCTF9DVFJMLFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MjQ3Olx0XHRcdFx0ICAgICBHU1dJUF9QQ0VfVEJMX0NUUkxfQkFTKTtcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTI0OC1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMjUxLVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVJSQVlfU0laRSh0YmwtXHUwMDNla2V5KTsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjI1MjpcdFx0ZXJyID0gcmVnbWFwX3JlYWQocHJpdi1cdTAwM2Vnc3dpcCwgR1NXSVBfUENFX1RCTF9LRVkoaSksIFx1MDAyNnRtcCk7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0yNTMtXHRcdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMjU3LVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVJSQVlfU0laRSh0YmwtXHUwMDNldmFsKTsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjI1ODpcdFx0ZXJyID0gcmVnbWFwX3JlYWQocHJpdi1cdTAwM2Vnc3dpcCwgR1NXSVBfUENFX1RCTF9WQUwoaSksIFx1MDAyNnRtcCk7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0yNTktXHRcdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMjYzLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MjY0Olx0ZXJyID0gcmVnbWFwX3JlYWQocHJpdi1cdTAwM2Vnc3dpcCwgR1NXSVBfUENFX1RCTF9NQVNLLCBcdTAwMjZ0bXApO1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMjY1LVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0yNjgtXHR0YmwtXHUwMDNlbWFzayA9IHRtcDtcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjI2OTpcdGVyciA9IHJlZ21hcF9yZWFkKHByaXYtXHUwMDNlZ3N3aXAsIEdTV0lQX1BDRV9UQkxfQ1RSTCwgXHUwMDI2Y3J0bCk7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0yNzAtXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTI3Mi1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjI3MzpcdHRibC1cdTAwM2V0eXBlID0gISEoY3J0bCBcdTAwMjYgR1NXSVBfUENFX1RCTF9DVFJMX1RZUEUpO1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6Mjc0Olx0dGJsLVx1MDAzZXZhbGlkID0gISEoY3J0bCBcdTAwMjYgR1NXSVBfUENFX1RCTF9DVFJMX1ZMRCk7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzoyNzU6XHR0YmwtXHUwMDNlZ21hcCA9IChjcnRsIFx1MDAyNiBHU1dJUF9QQ0VfVEJMX0NUUkxfR01BUF9NQVNLKSBcdTAwM2VcdTAwM2UgNztcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTI3Ni1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYz0yODM9c3RhdGljIGludCBnc3dpcF9wY2VfdGFibGVfZW50cnlfd3JpdGUoc3RydWN0IGdzd2lwX3ByaXYgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMjg4LVx0dTMyIGNydGw7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzoyODk6XHR1MTYgYWRkcl9tb2RlID0gdGJsLVx1MDAzZWtleV9tb2RlID8gR1NXSVBfUENFX1RCTF9DVFJMX09QTU9EX0tTV1IgOlxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MjkwOlx0XHRcdFx0XHRHU1dJUF9QQ0VfVEJMX0NUUkxfT1BNT0RfQURXUjtcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTI5MS1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0yOTMtXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzoyOTQ6XHRlcnIgPSBnc3dpcF9zd2l0Y2hfcl90aW1lb3V0KHByaXYsIEdTV0lQX1BDRV9UQkxfQ1RSTCxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjI5NTpcdFx0XHRcdCAgICAgR1NXSVBfUENFX1RCTF9DVFJMX0JBUyk7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0yOTYtXHRpZiAoZXJyKSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMzAwLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MzAxOlx0cmVnbWFwX3dyaXRlKHByaXYtXHUwMDNlZ3N3aXAsIEdTV0lQX1BDRV9UQkxfQUREUiwgdGJsLVx1MDAzZWluZGV4KTtcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjMwMjpcdHJlZ21hcF93cml0ZV9iaXRzKHByaXYtXHUwMDNlZ3N3aXAsIEdTV0lQX1BDRV9UQkxfQ1RSTCxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjMwMzpcdFx0XHQgIEdTV0lQX1BDRV9UQkxfQ1RSTF9BRERSX01BU0sgfFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MzA0Olx0XHRcdCAgR1NXSVBfUENFX1RCTF9DVFJMX09QTU9EX01BU0ssXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0zMDUtXHRcdFx0ICB0YmwtXHUwMDNldGFibGUgfCBhZGRyX21vZGUpO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTMwNy1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFSUkFZX1NJWkUodGJsLVx1MDAzZWtleSk7IGkmIzQzOyYjNDM7KVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MzA4Olx0XHRyZWdtYXBfd3JpdGUocHJpdi1cdTAwM2Vnc3dpcCwgR1NXSVBfUENFX1RCTF9LRVkoaSksIHRibC1cdTAwM2VrZXlbaV0pO1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMzA5LVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMzEwLVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVJSQVlfU0laRSh0YmwtXHUwMDNldmFsKTsgaSYjNDM7JiM0MzspXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzozMTE6XHRcdHJlZ21hcF93cml0ZShwcml2LVx1MDAzZWdzd2lwLCBHU1dJUF9QQ0VfVEJMX1ZBTChpKSwgdGJsLVx1MDAzZXZhbFtpXSk7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0zMTItXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzozMTM6XHRyZWdtYXBfd3JpdGVfYml0cyhwcml2LVx1MDAzZWdzd2lwLCBHU1dJUF9QQ0VfVEJMX0NUUkwsXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzozMTQ6XHRcdFx0ICBHU1dJUF9QQ0VfVEJMX0NUUkxfQUREUl9NQVNLIHxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjMxNTpcdFx0XHQgIEdTV0lQX1BDRV9UQkxfQ1RSTF9PUE1PRF9NQVNLLFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMzE2LVx0XHRcdCAgdGJsLVx1MDAzZXRhYmxlIHwgYWRkcl9tb2RlKTtcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTMxNy1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjMxODpcdHJlZ21hcF93cml0ZShwcml2LVx1MDAzZWdzd2lwLCBHU1dJUF9QQ0VfVEJMX01BU0ssIHRibC1cdTAwM2VtYXNrKTtcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTMxOS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjMyMDpcdHJlZ21hcF9yZWFkKHByaXYtXHUwMDNlZ3N3aXAsIEdTV0lQX1BDRV9UQkxfQ1RSTCwgXHUwMDI2Y3J0bCk7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzozMjE6XHRjcnRsIFx1MDAyNj0gfihHU1dJUF9QQ0VfVEJMX0NUUkxfVFlQRSB8IEdTV0lQX1BDRV9UQkxfQ1RSTF9WTEQgfFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MzIyOlx0XHQgIEdTV0lQX1BDRV9UQkxfQ1RSTF9HTUFQX01BU0spO1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMzIzLVx0aWYgKHRibC1cdTAwM2V0eXBlKVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MzI0Olx0XHRjcnRsIHw9IEdTV0lQX1BDRV9UQkxfQ1RSTF9UWVBFO1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMzI1LVx0aWYgKHRibC1cdTAwM2V2YWxpZClcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjMyNjpcdFx0Y3J0bCB8PSBHU1dJUF9QQ0VfVEJMX0NUUkxfVkxEO1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MzI3Olx0Y3J0bCB8PSAodGJsLVx1MDAzZWdtYXAgXHUwMDNjXHUwMDNjIDcpIFx1MDAyNiBHU1dJUF9QQ0VfVEJMX0NUUkxfR01BUF9NQVNLO1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MzI4Olx0Y3J0bCB8PSBHU1dJUF9QQ0VfVEJMX0NUUkxfQkFTO1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MzI5Olx0cmVnbWFwX3dyaXRlKHByaXYtXHUwMDNlZ3N3aXAsIEdTV0lQX1BDRV9UQkxfQ1RSTCwgY3J0bCk7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0zMzAtXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzozMzE6XHRlcnIgPSBnc3dpcF9zd2l0Y2hfcl90aW1lb3V0KHByaXYsIEdTV0lQX1BDRV9UQkxfQ1RSTCxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjMzMjpcdFx0XHRcdCAgICAgR1NXSVBfUENFX1RCTF9DVFJMX0JBUyk7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0zMzMtXG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM9MzQ0PXN0YXRpYyBpbnQgZ3N3aXBfYWRkX3NpbmdsZV9wb3J0X2JyKHN0cnVjdCBnc3dpcF9wcml2ICpwcml2LCBpbnQgcG9ydCwgYm9vbCBhZGQpXG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMzUwLVx0dmxhbl9hY3RpdmUuaW5kZXggPSBwb3J0ICYjNDM7IDE7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzozNTE6XHR2bGFuX2FjdGl2ZS50YWJsZSA9IEdTV0lQX1RBQkxFX0FDVElWRV9WTEFOO1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MzUyOlx0dmxhbl9hY3RpdmUua2V5WzBdID0gR1NXSVBfVkxBTl9VTkFXQVJFX1BWSUQ7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0zNTMtXHR2bGFuX2FjdGl2ZS52YWxbMF0gPSBwb3J0ICYjNDM7IDEgLyogZmlkICovO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTM2NC1cdHZsYW5fbWFwcGluZy5pbmRleCA9IHBvcnQgJiM0MzsgMTtcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjM2NTpcdHZsYW5fbWFwcGluZy50YWJsZSA9IEdTV0lQX1RBQkxFX1ZMQU5fTUFQUElORztcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA3IDE4OjIwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIzOTU5CgkJCQkJCQlvdXRwdXQ6IDQwCgkJCQkJCQl0aG91Z2h0czogMzQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqQW5hbHl6aW5nIHRoZSBMYW50aXEgRFNBIERyaXZlciBDb25maWd1cmF0aW9uKioKClJpZ2h0LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoZSBgZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9LY29uZmlnYCBmaWxlLiBJIG5lZWQgYSBjbGVhciBwaWN0dXJlIG9mIHdoYXQmIzM5O3MgZ29pbmcgb24gd2l0aGluIHRoYXQgZGlyZWN0b3J5LiBJIHdhbnQgdG8gc2VlIHRoZSBjb21wbGV0ZSBzZXQgb2YgY29uZmlndXJhdGlvbiBvcHRpb25zIGF2YWlsYWJsZSBmb3IgdGhlIExhbnRpcSBEU0EgZHJpdmVycy4gVW5kZXJzdGFuZGluZyB0aGUgS2NvbmZpZyBzdHJ1Y3R1cmUgaXMga2V5LiBUaGlzIHdpbGwgcXVpY2tseSBleHBvc2UgdGhlIGRlcGVuZGVuY2llcywgcmVsYXRpb25zaGlwcyBiZXR3ZWVuIHRoZSB2YXJpb3VzIGZlYXR1cmVzLCBhbmQgaG93IHRoZXkgYXJlIGxvZ2ljYWxseSBncm91cGVkLiBJJiMzOTttIGVzcGVjaWFsbHkgaW50ZXJlc3RlZCBpbiBhbnkgcGxhdGZvcm0tc3BlY2lmaWMgc3dpdGNoZXMgYW5kIGhvdyB0aGUgdmFyaW91cyBmZWF0dXJlcyBhcmUgZW5hYmxlZCBhbmQgZGlzYWJsZWQuIEtub3dpbmcgdGhlIG9yZ2FuaXphdGlvbiBvZiB0aGUgS2NvbmZpZyBhbHNvIHRlbGxzIG1lIHRoZSBvdmVyYWxsIGRyaXZlciBhcmNoaXRlY3R1cmUuIExldCYjMzk7cyBzZWUgaG93IHdlbGwgaXQmIzM5O3MgZGVzaWduZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDcgMTg6MjA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9kc2EvbGFudGlxL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDEwMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0Y29uZmlnIE5FVF9EU0FfTEFOVElRX0NPTU1PTlxuICAgMjpcdFx0dHJpc3RhdGVcbiAgIDM6XHRcdHNlbGVjdCBSRUdNQVBcbiAgIDQ6XHRcbiAgIDU6XHRjb25maWcgTkVUX0RTQV9MQU5USVFfR1NXSVBcbiAgIDY6XHRcdHRyaXN0YXRlIFwmIzM0O0xhbnRpcSAvIEludGVsIEdTV0lQXCYjMzQ7XG4gICA3Olx0XHRkZXBlbmRzIG9uIEhBU19JT01FTVxuICAgODpcdFx0c2VsZWN0IE5FVF9EU0FfVEFHX0dTV0lQXG4gICA5Olx0XHRzZWxlY3QgTkVUX0RTQV9MQU5USVFfQ09NTU9OXG4gIDEwOlx0XHRoZWxwXG4gIDExOlx0XHQgIFRoaXMgZW5hYmxlcyBzdXBwb3J0IGZvciB0aGUgTGFudGlxIC8gSW50ZWwgR1NXSVAgMi4xIGZvdW5kIGluXG4gIDEyOlx0XHQgIHRoZSB4cngyMDAgLyBWUjkgU29DLlxuICAxMzpcdFxuICAxNDpcdGNvbmZpZyBORVRfRFNBX01YTF9HU1cxWFhcbiAgMTU6XHRcdHRyaXN0YXRlIFwmIzM0O01heExpbmVhciBHU1cxeHggRXRoZXJuZXQgc3dpdGNoIHN1cHBvcnRcJiMzNDtcbiAgMTY6XHRcdHNlbGVjdCBORVRfRFNBX1RBR19NWExfR1NXMVhYXG4gIDE3Olx0XHRzZWxlY3QgTkVUX0RTQV9MQU5USVFfQ09NTU9OXG4gIDE4Olx0XHRzZWxlY3QgUEhZX0NPTU1PTl9QUk9QU1xuICAxOTpcdFx0aGVscFxuICAyMDpcdFx0ICBUaGlzIGVuYWJsZXMgc3VwcG9ydCBmb3IgdGhlIEludGVsL01heExpbmVhciBHU1cxeHggZmFtaWx5IG9mIDFHRVxuICAyMTpcdFx0ICBzd2l0Y2hlcy5cbiAgMjI6XHRcdCAgICBHU1cxMjAgNCBwb3J0LCAyIFBIWXMsIFJHTUlJIFx1MDAyNiBTR01JSS8yNTAwQmFzZS1YXG4gIDIzOlx0XHQgICAgR1NXMTI1IDQgcG9ydCwgMiBQSFlzLCBSR01JSSBcdTAwMjYgU0dNSUkvMjUwMEJhc2UtWCwgaW5kdXN0cmlhbCB0ZW1wZXJhdHVyZVxuICAyNDpcdFx0ICAgIEdTVzE0MCA2IHBvcnQsIDQgUEhZcywgUkdNSUkgXHUwMDI2IFNHTUlJLzI1MDBCYXNlLVhcbiAgMjU6XHRcdCAgICBHU1cxNDEgNiBwb3J0LCA0IFBIWXMsIFJHTUlJIFx1MDAyNiBTR01JSVxuICAyNjpcdFx0ICAgIEdTVzE0NSA2IHBvcnQsIDQgUEhZcywgUkdNSUkgXHUwMDI2IFNHTUlJLzI1MDBCYXNlLVgsIGluZHVzdHJpYWwgdGVtcGVyYXR1cmVcbiAgMjc6XHRcdCAgICBHU1cxNTAgNyBwb3J0LCA1IFBIWXMsIDF4IEdNSUkvUkdNSUksIDF4IFJHTUlJXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDcgMTg6MjA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjQ3MjUKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiA2MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzLiBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGljaCBzcGVjaWZpYyBidXNlcyBvciBpbnRlcmZhY2VzIGFyZSB1c2VkIHdpdGggdGhlIGBORVRfRFNBX0xBTlRJUV9HU1dJUGAgYW5kIGBORVRfRFNBX01YTF9HU1cxWFhgIERTQSAoRGlzdHJpYnV0ZWQgU3dpdGNoIEFyY2hpdGVjdHVyZSkgZHJpdmVycy4gTXkgZmlyc3QgdGhvdWdodCBpcyB0byB0cmFjZSB0aGUgaW5zdGFudGlhdGlvbi4gSSYjMzk7bGwgbmVlZCB0byBmaWd1cmUgb3V0IHdoZXJlIHRoZXNlIGFyZSBjb21pbmcgZnJvbS4gVGhlIGJlc3QgcGxhY2UgdG8gc3RhcnQgaXMgdG8gc2VhcmNoIGZvciB0aGVzZSB0d28gc3ltYm9scyBkaXJlY3RseSwgdG8gc2VlIHdoZXJlIHRoZXkgYXJlIGJlaW5nIHVzZWQuCgpUaGVuLCBJJiMzOTtsbCBzd2l0Y2ggZ2VhcnMgYW5kIGxvb2sgd2l0aGluIHRoZSBgZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9gIGRpcmVjdG9yeS4gVGhhdCYjMzk7cyB0aGUgb2J2aW91cyBwbGFjZSwgc2luY2UgdGhlIHRleHQgZ2l2ZXMgbWUgYSBzdHJvbmcgaGludC4gSSYjMzk7bGwgYmUgbG9va2luZyBmb3IgYW55IHByb2JlIGZ1bmN0aW9ucywgb3IgZHJpdmVyIHJlZ2lzdHJhdGlvbiByb3V0aW5lcy4gVGhhdCBzaG91bGQgZ2l2ZSBtZSB0aGUgY29ubmVjdGlvbiBiZXR3ZWVuIHRoZSBoYXJkd2FyZSBhbmQgdGhlIGRyaXZlcnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDcgMTg6MjA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bW9kdWxlXy4qZHJpdmVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL2xhbnRpcSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jPTUxMT1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBnc3dpcF9kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy01MjAtXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjUyMTptb2R1bGVfcGxhdGZvcm1fZHJpdmVyKGdzd2lwX2RyaXZlcik7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTUyMi1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL214bC1nc3cxeHguYz05Mjc9c3RhdGljIHN0cnVjdCBtZGlvX2RyaXZlciBnc3cxeHhfZHJpdmVyID0ge1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbXhsLWdzdzF4eC5jLTkzNi1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbXhsLWdzdzF4eC5jOjkzNzptZGlvX21vZHVsZV9kcml2ZXIoZ3N3MXh4X2RyaXZlcik7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL214bC1nc3cxeHguYy05MzgtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDcgMTg6MjA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjUyNzIKCQkJCQkJCW91dHB1dDogNDgKCQkJCQkJCXRob3VnaHRzOiA1NjgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiBXb3J0aEZ1enppbmcgZm9yIE5ldHdvcmsgU3dpdGNoIERyaXZlcnMqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGludmVzdGlnYXRlIGBteGwtZ3N3MXh4LmNgIGFuZCBgbGFudGlxX2dzd2lwLmNgLiBGcm9tIG15IGtub3dsZWRnZSwgYGdzd2lwX2RyaXZlcmAgaXMgYSBgcGxhdGZvcm1fZHJpdmVyYCBkZXNpZ25lZCBmb3IgTGFudGlxIHhyeDIwMC94cngzMDAgU29Dcywgd2hpY2ggYXJlIE1JUFMtYmFzZWQuIE9uIHRoZSBvdGhlciBoYW5kLCBgZ3N3MXh4X2RyaXZlcmAgaXMgYW4gYG1kaW9fZHJpdmVyYCByZXNwb25zaWJsZSBmb3IgbWFuYWdpbmcgTWF4TGluZWFyIEdTVzF4eCBFdGhlcm5ldCBzd2l0Y2hlcyBjb25uZWN0ZWQgdGhyb3VnaCBhbiBNRElPIGJ1cy4KClRoZSBjcnVjaWFsIHF1ZXN0aW9uIGltbWVkaWF0ZWx5IGFyaXNlczogY2FuIHRoZXNlIERTQSBzd2l0Y2hlcywgTURJTyBkcml2ZXJzLCBvciBwbGF0Zm9ybSBkcml2ZXJzIGJlIGVmZmVjdGl2ZWx5IGVtdWxhdGVkIG9yIGluc3RhbnRpYXRlZCB3aXRoaW4gYSBzdGFuZGFyZCBzeXprYWxsZXIgb3IgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgbGlrZSBRRU1VIHg4Nl82ND8gVGhpcyBpcyB0aGUga2V5IHRvIGRldGVybWluaW5nIGlmIHRoZXkmIzM5O3JlICYjMzQ7V29ydGhGdXp6aW5nJiMzNDsuCgpNeSBuZXh0IHN0ZXAgaXMgdG8gY29uc3VsdCB0aGUgZnV6emluZyBndWlkZWxpbmVzLCBzcGVjaWZpY2FsbHkgc2VjdGlvbnMgMiBhbmQgMy4gU2VjdGlvbiAyIG91dGxpbmVzIHRoZSBuZWdhdGl2ZSBjcml0ZXJpYSwgdGhlIHNpdHVhdGlvbnMgd2hlcmUgd2UgKmRvbiYjMzk7dCogcmV0dXJuIGBXb3J0aEZ1enppbmc9dHJ1ZWAuIEl0IHN0YXRlcyB0aGF0IGNvZGUgcGF0aHMgYXJlIG5vdCB3b3J0aCBmdXp6aW5nIGlmIHRoZXkgaW52b2x2ZToKCiogICBOb24ta2VybmVsIGFuZCBub24tZXhlY3V0YWJsZSBjaGFuZ2VzLAoqICAgU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlIC0gd2hpY2ggaW5jbHVkZXMgdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoZXMsIFNtYXJ0TklDcywgR1BVIGRyaXZlcnMgKGxpa2UgbWx4c3csIHBkc19jb3JlLCBxZWQsIGlvbmljLCBhbWRncHUpIHRoYXQgbmVlZCBwaHlzaWNhbCBBU0lDL1BDSWUgY2FyZHMgdGhhdCBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuIEl0IGFsc28gaW5jbHVkZXMgY29kZSBwYXRocyB1bmlxdWUgdG8gYXJjaGl0ZWN0dXJlcyBvdGhlciB0aGFuIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLgoqICAgVW5yZWFjaGFibGUgZXhlY3V0aW9uIHBhdGhzLgoKU2VjdGlvbiAzLCBjb252ZXJzZWx5LCBzcGVsbHMgb3V0IHdoZW4gd2UgKmRvKiByZXR1cm4gYFdvcnRoRnV6emluZz10cnVlYC4gQmFzaWNhbGx5LCBhbnkgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSBpcyBvZiBpbnRlcmVzdCwgaW5jbHVkaW5nIGNvZGUgZm9yIGNvcmUgc3Vic3lzdGVtcywgcmVmYWN0b3JpbmdzLCBjb2RlIGNsZWFudXBzLCBydW50aW1lIGFzc2VydGlvbnMsIGRlZmVuc2l2ZSBjaGVja3MsIGFuZCByZWFjaGFibGUgZHJpdmVycyBhbmQgcHJvdG9jb2xzIHN1Y2ggYXMgdGhvc2UgYWNjZXNzaWJsZSB2aWEgdmlydHVhbCBidXNlcyBsaWtlIHZpcnRpbywgVVNCIGdhZGdldCwgbG9vcGJhY2ssIG5ldGxpbmssIGJpbmRlciwgb3Igc29ja2V0cy4KClNvLCBoZXJlJiMzOTtzIG15IHBpdm90YWwgcXVlc3Rpb246IGFyZSB0aGVzZSBNRElPIGFuZCBwbGF0Zm9ybSBzd2l0Y2ggZHJpdmVycyBmb3IgdGhlIExhbnRpcSBTb0MgYW5kIHRoZSBNYXhMaW5lYXIgR1NXMXh4IGFjY2Vzc2libGUgd2l0aGluIGEgc3RhbmRhcmQgc3l6a2FsbGVyIHNldHVwIHJ1bm5pbmcgb24gYW1kNjQgaW4gUUVNVT8KClRvIGRldGVybWluZSB0aGlzLCBJIG5lZWQgdG8gY2hlY2sgd2hldGhlciB0aGUgTURJTyBvciBwbGF0Zm9ybSBkcml2ZXJzIGNhbiBiZSBwcm9iZWQgc3VjY2Vzc2Z1bGx5IHdpdGhvdXQgdGhlIHByZXNlbmNlIG9mIHBoeXNpY2FsIG9yIGRldmljZS10cmVlIChPRikgZGV2aWNlcy4gTG9va2luZyBhdCBgbGFudGlxX2dzd2lwLmNgLCBzcGVjaWZpY2FsbHkgYGdzd2lwX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpYCwgaXQgc2VlbXMgdG8gcmVxdWlyZSBhIGRldmljZSB0cmVlIG5vZGUgb3IgYSBwbGF0Zm9ybSBkZXZpY2UgZm9yIGVpdGhlciBgbGFudGlxLHhyeDIwMC1nc3dpcGAgb3IgYGxhbnRpcSx4cngzMDAtZ3N3aXBgLiBUaGlzIGlzIGEgaHVyZGxlLiBUaGVuIGluIGBteGwtZ3N3MXh4LmNgLCB0aGUgYGdzdzF4eF9wcm9iZShzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpYCBmdW5jdGlvbiBuZWVkcyB0byBiZSBjaGVja2VkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNyAxODoyMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2RzYS9sYW50aXEvbXhsLWdzdzF4eC5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogODYwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDgwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyA4NjA6XHRcdC5wY2VfbWljcm9jb2RlX3NpemVcdD0gQVJSQVlfU0laRShnc3cxeHhfcGNlX21pY3JvY29kZSksXG4gODYxOlx0XHQudGFnX3Byb3RvY29sXHRcdD0gRFNBX1RBR19QUk9UT19NWExfR1NXMVhYLFxuIDg2MjpcdH07XG4gODYzOlx0XG4gODY0Olx0c3RhdGljIGNvbnN0IHN0cnVjdCBnc3dpcF9od19pbmZvIGdzdzE0MV9kYXRhID0ge1xuIDg2NTpcdFx0Lm1heF9wb3J0c1x0XHQ9IEdTVzFYWF9QT1JUUyxcbiA4NjY6XHRcdC5hbGxvd2VkX2NwdV9wb3J0c1x0PSBCSVQoR1NXMVhYX01JSV9QT1JUKSB8IEJJVChHU1cxWFhfU0dNSUlfUE9SVCksXG4gODY3Olx0XHQubWlpX2NmZyA9IHtcbiA4Njg6XHRcdFx0WzAgLi4uIEdTVzFYWF9NSUlfUE9SVCAtIDFdID0gLTEsXG4gODY5Olx0XHRcdFtHU1cxWFhfTUlJX1BPUlRdID0gR1NXSVBfTUlJX0NGR3AoMCksXG4gODcwOlx0XHRcdFtHU1cxWFhfTUlJX1BPUlQgJiM0MzsgMSAuLi4gR1NXSVBfTUFYX1BPUlRTIC0gMV0gPSAtMSxcbiA4NzE6XHRcdH0sXG4gODcyOlx0XHQubWlpX3BjZHUgPSB7XG4gODczOlx0XHRcdFswIC4uLiBHU1cxWFhfTUlJX1BPUlQgLSAxXSA9IC0xLFxuIDg3NDpcdFx0XHRbR1NXMVhYX01JSV9QT1JUXSA9IEdTV0lQX01JSV9QQ0RVMCxcbiA4NzU6XHRcdFx0W0dTVzFYWF9NSUlfUE9SVCAmIzQzOyAxIC4uLiBHU1dJUF9NQVhfUE9SVFMgLSAxXSA9IC0xLFxuIDg3NjpcdFx0fSxcbiA4Nzc6XHRcdC5tYWNfc2VsZWN0X3Bjc1x0XHQ9IGdzdzF4eF9waHlsaW5rX21hY19zZWxlY3RfcGNzLFxuIDg3ODpcdFx0LnBoeWxpbmtfZ2V0X2NhcHNcdD0gZ3N3MXh4X3BoeWxpbmtfZ2V0X2NhcHMsXG4gODc5Olx0XHQucG9ydF9zZXR1cFx0XHQ9IGdzdzF4eF9wb3J0X3NldHVwLFxuIDg4MDpcdFx0LnBjZV9taWNyb2NvZGVcdFx0PSBcdTAwMjZnc3cxeHhfcGNlX21pY3JvY29kZSxcbiA4ODE6XHRcdC5wY2VfbWljcm9jb2RlX3NpemVcdD0gQVJSQVlfU0laRShnc3cxeHhfcGNlX21pY3JvY29kZSksXG4gODgyOlx0XHQudGFnX3Byb3RvY29sXHRcdD0gRFNBX1RBR19QUk9UT19NWExfR1NXMVhYLFxuIDg4MzpcdH07XG4gODg0Olx0XG4gODg1Olx0c3RhdGljIGNvbnN0IHN0cnVjdCBnc3dpcF9od19pbmZvIGdzdzE1MF9kYXRhID0ge1xuIDg4NjpcdFx0Lm1heF9wb3J0c1x0XHQ9IEdTVzE1MF9QT1JUUyxcbiA4ODc6XHRcdC5hbGxvd2VkX2NwdV9wb3J0c1x0PSBCSVQoNSkgfCBCSVQoNiksXG4gODg4Olx0XHQubWlpX2NmZyA9IHtcbiA4ODk6XHRcdFx0WzAgLi4uIDRdID0gLTEsXG4gODkwOlx0XHRcdFs1XSA9IDAsXG4gODkxOlx0XHRcdFs2XSA9IDEwLFxuIDg5MjpcdFx0fSxcbiA4OTM6XHRcdC5taWlfcGNkdSA9IHtcbiA4OTQ6XHRcdFx0WzAgLi4uIDRdID0gLTEsXG4gODk1Olx0XHRcdFs1XSA9IDEsXG4gODk2Olx0XHRcdFs2XSA9IDExLFxuIDg5NzpcdFx0fSxcbiA4OTg6XHRcdC5waHlsaW5rX2dldF9jYXBzXHQ9IGdzdzE1MF9waHlsaW5rX2dldF9jYXBzLFxuIDg5OTpcdFx0LyogVGhlcmUgaXMgb25seSBhIHNpbmdsZSBSR01JSV9TTEVXX0NGRyByZWdpc3RlciBpbiBHU1cxNTAgYW5kIGl0IGlzXG4gOTAwOlx0XHQgKiB1bmtub3duIGlmIFJHTUlJIHNsZXcgY29uZmlndXJhdGlvbiBhZmZlY3RzIGJvdGggUkdNSUkgcG9ydHNcbiA5MDE6XHRcdCAqIG9yIG9ubHkgcG9ydCA1LiBVc2UgLnBvcnRfc2V0dXAgd2hpY2ggYXNzdW1lcyBpdCBhZmZlY3RzIHBvcnQgNVxuIDkwMjpcdFx0ICogZm9yIG5vdy5cbiA5MDM6XHRcdCAqL1xuIDkwNDpcdFx0LnBvcnRfc2V0dXBcdFx0PSBnc3cxeHhfcG9ydF9zZXR1cCxcbiA5MDU6XHRcdC5wY2VfbWljcm9jb2RlXHRcdD0gXHUwMDI2Z3N3MXh4X3BjZV9taWNyb2NvZGUsXG4gOTA2Olx0XHQucGNlX21pY3JvY29kZV9zaXplXHQ9IEFSUkFZX1NJWkUoZ3N3MXh4X3BjZV9taWNyb2NvZGUpLFxuIDkwNzpcdFx0LnRhZ19wcm90b2NvbFx0XHQ9IERTQV9UQUdfUFJPVE9fTVhMX0dTVzFYWCxcbiA5MDg6XHR9O1xuIDkwOTpcdFxuIDkxMDpcdC8qXG4gOTExOlx0ICogR1NXMTI1IGlzIHRoZSBpbmR1c3RyaWFsIHRlbXBlcmF0dXJlIHZlcnNpb24gb2YgR1NXMTIwLlxuIDkxMjpcdCAqIEdTVzE0NSBpcyB0aGUgaW5kdXN0cmlhbCB0ZW1wZXJhdHVyZSB2ZXJzaW9uIG9mIEdTVzE0MC5cbiA5MTM6XHQgKi9cbiA5MTQ6XHRzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBnc3cxeHhfb2ZfbWF0Y2hbXSA9IHtcbiA5MTU6XHRcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDtpbnRlbCxnc3cxNTBcJiMzNDssIC5kYXRhID0gXHUwMDI2Z3N3MTUwX2RhdGEgfSxcbiA5MTY6XHRcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDtsYW50aXEscGViNzA4NFwmIzM0OywgLmRhdGEgPSBcdTAwMjZnc3cxNTBfZGF0YSB9LFxuIDkxNzpcdFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O21heGxpbmVhcixnc3cxMjBcJiMzNDssIC5kYXRhID0gXHUwMDI2Z3N3MTJ4X2RhdGEgfSxcbiA5MTg6XHRcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDttYXhsaW5lYXIsZ3N3MTI1XCYjMzQ7LCAuZGF0YSA9IFx1MDAyNmdzdzEyeF9kYXRhIH0sXG4gOTE5Olx0XHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7bWF4bGluZWFyLGdzdzE0MFwmIzM0OywgLmRhdGEgPSBcdTAwMjZnc3cxNDBfZGF0YSB9LFxuIDkyMDpcdFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O21heGxpbmVhcixnc3cxNDFcJiMzNDssIC5kYXRhID0gXHUwMDI2Z3N3MTQxX2RhdGEgfSxcbiA5MjE6XHRcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDttYXhsaW5lYXIsZ3N3MTQ1XCYjMzQ7LCAuZGF0YSA9IFx1MDAyNmdzdzE0MF9kYXRhIH0sXG4gOTIyOlx0XHR7IC8qIHNlbnRpbmVsICovIH0sXG4gOTIzOlx0fTtcbiA5MjQ6XHRcbiA5MjU6XHRNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBnc3cxeHhfb2ZfbWF0Y2gpO1xuIDkyNjpcdFxuIDkyNzpcdHN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgZ3N3MXh4X2RyaXZlciA9IHtcbiA5Mjg6XHRcdC5wcm9iZVx0XHQ9IGdzdzF4eF9wcm9iZSxcbiA5Mjk6XHRcdC5yZW1vdmVcdFx0PSBnc3cxeHhfcmVtb3ZlLFxuIDkzMDpcdFx0LnNodXRkb3duXHQ9IGdzdzF4eF9zaHV0ZG93bixcbiA5MzE6XHRcdC5tZGlvZHJ2LmRyaXZlclx0PSB7XG4gOTMyOlx0XHRcdC5uYW1lID0gXCYjMzQ7bXhsLWdzdzF4eFwmIzM0OyxcbiA5MzM6XHRcdFx0Lm9mX21hdGNoX3RhYmxlID0gZ3N3MXh4X29mX21hdGNoLFxuIDkzNDpcdFx0fSxcbiA5MzU6XHR9O1xuIDkzNjpcdFxuIDkzNzpcdG1kaW9fbW9kdWxlX2RyaXZlcihnc3cxeHhfZHJpdmVyKTtcbiA5Mzg6XHRcbiA5Mzk6XHRNT0RVTEVfQVVUSE9SKFwmIzM0O0RhbmllbCBHb2xsZSBcdTAwM2NkYW5pZWxAbWFrcm90b3BpYS5vcmdcdTAwM2VcJiMzNDspO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNyAxODoyMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyODE1MwoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDI5NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBJbml0aWFsIEFzc2Vzc21lbnQgb2YgdGhlIERyaXZlciBMYW5kc2NhcGUqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGludG8gdGhlIHBvc3NpYmlsaXR5IG9mIHdvcmtpbmcgd2l0aCB0aGVzZSBzd2l0Y2ggZHJpdmVycyDigJMgc3BlY2lmaWNhbGx5IGBteGwtZ3N3MXh4YCBhbmQgYGxhbnRpcV9nc3dpcGAg4oCTIHdpdGhvdXQgbmVjZXNzYXJpbHkgaGF2aW5nIHRoZSAqYWN0dWFsKiBoYXJkd2FyZSBwcmVzZW50IG9yIGEgZGV2aWNlIHRyZWUgY29uZmlndXJlZC4gVGhlIGZpcnN0IHRoaW5nIEkmIzM5O20gZG9pbmcgaXMgc2VlaW5nIGlmIHRoZXJlJiMzOTtzIGFueSBtZWNoYW5pc20sIGV2ZW4gYSB2aXJ0dWFsIG9uZSwgdG8gaW5zdGFudGlhdGUgdGhlbS4gQ2FuIEkgY3JlYXRlIGFuIE1ESU8gYnVzIG9yIHRyaWdnZXIgdGhlaXIgbG9hZGluZyBpbiBhIG1vcmUgYWJzdHJhY3Qgd2F5PyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpZiB0aGV5JiMzOTtyZSBjb21wbGV0ZWx5IGhhcmR3YXJlLWJvdW5kLgoKTm93LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHdoYXQgbWFrZXMgdGhlc2UgZHJpdmVycyB0aWNrLiBJIHNlZSB0aGF0IGBteGwtZ3N3MXh4YCBzZWVtcyBwcmV0dHkgdGlnaHRseSBjb3VwbGVkIHRvIHRoZSBkZXZpY2UgdHJlZSwgdXNpbmcgYW4gYG9mX21hdGNoX3RhYmxlYCBjYWxsZWQgYGdzdzF4eF9vZl9tYXRjaGAuIEl0IGV4cGVjdHMgYW4gTURJTyBidXMsIGFuZCBpdCBsb29rcyBsaWtlIGl0JiMzOTtzIGRlc2lnbmVkIGZvciByZWFsLXdvcmxkIE1heExpbmVhciBvciBJbnRlbCBzd2l0Y2ggSUNzLiBUaGVuIHRoZXJlJiMzOTtzIGBsYW50aXFfZ3N3aXBgLCB3aGljaCBhbHNvIHJlbGllcyBvbiB0aGUgZGV2aWNlIHRyZWUsIG1hdGNoaW5nIHNwZWNpZmljIExhbnRpcSBNSVBTIFNvQyBwbGF0Zm9ybSBidXNlczogYGxhbnRpcSx4cngyMDAtZ3N3aXBgIGFuZCBgbGFudGlxLHhyeDMwMC1nc3dpcGAuIFRoaXMgY29uZmlybXMgbXkgaW5pdGlhbCBzdXNwaWNpb24gLSBpdCYjMzk7cyBsb29raW5nIGxpa2UgdGhlc2UgZHJpdmVycyBhcmUgZ29pbmcgdG8gYmUgdGllZCB0byBhIHNwZWNpZmljIGhhcmR3YXJlIGNvbmZpZ3VyYXRpb24uCgpOZXh0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgaW1wYWN0IG9mIHRoZSBjaGFuZ2VzIGluIHRoaXMgY29tbWl0LiBJJiMzOTt2ZSBub3RlZCB0aHJlZSBrZXkgYXJlYXM6IGEgbWFjcm8sIGBHU1dJUF9NRElPX1BIWV9GQ09OVFhfRU4gMHgwMDgwYCwgZGVmaW5lZCBpbiBgbGFudGlxX2dzd2lwLmhgLCB0aGUgYGdzd2lwX3BvcnRfc2V0X3NwZWVkYCBmdW5jdGlvbiBpbiBgbGFudGlxX2dzd2lwX2NvbW1vbi5jYCwgYW5kIGBnc3cxeHhfcGNzX2NvbmZpZ2AgaW4gYG14bC1nc3cxeHguY2AuIEkgbmVlZCB0byBmaWd1cmUgb3V0IGhvdyB0aGVzZSBmdW5jdGlvbnMgYWZmZWN0IHRoZSBiaWdnZXIgcGljdHVyZS4KCkZpbmFsbHksIEkmIzM5O2xsIG5lZWQgdG8gdHJhY2Ugd2hlcmUgdGhlIGBnc3dpcF9wb3J0X3NldF9zcGVlZGAgZnVuY3Rpb24gaXMgY2FsbGVkIHdpdGhpbiBgbGFudGlxX2dzd2lwX2NvbW1vbi5jYC4gVGhpcyB3aWxsIGdpdmUgbWUgYSBiZXR0ZXIgdW5kZXJzdGFuZGluZyBvZiB0aGUgZHJpdmVyJiMzOTtzIGV4ZWN1dGlvbiBmbG93IGFuZCB3aGV0aGVyIG9yIG5vdCBpdCYjMzk7cyBwb3NzaWJsZSB0byAmIzM0O3RyaWNrJiMzNDsgaXQgaW50byBiZWhhdmluZyB3aXRob3V0IHRoZSBoYXJkd2FyZSBpdCBleHBlY3RzLiBVbmRlcnN0YW5kaW5nIHRoaXMgY2FsbCBjaGFpbiBpcyBrZXkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA3IDE4OjIwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2dzd2lwX3BvcnRfc2V0X3NwZWVkJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL2xhbnRpcSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYz0xMzAwPXN0YXRpYyB2b2lkIGdzd2lwX3BvcnRfc2V0X2xpbmsoc3RydWN0IGdzd2lwX3ByaXYgKnByaXYsIGludCBwb3J0LCBib29sIGxpbmspXG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMTMxMi1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjEzMTM6c3RhdGljIHZvaWQgZ3N3aXBfcG9ydF9zZXRfc3BlZWQoc3RydWN0IGdzd2lwX3ByaXYgKnByaXYsIGludCBwb3J0LCBpbnQgc3BlZWQsXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0xMzE0LVx0XHRcdFx0IHBoeV9pbnRlcmZhY2VfdCBpbnRlcmZhY2UpXG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM9MTQ3MT1zdGF0aWMgdm9pZCBnc3dpcF9waHlsaW5rX21hY19saW5rX3VwKHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTE0ODMtXHRcdGdzd2lwX3BvcnRfc2V0X2xpbmsocHJpdiwgcG9ydCwgdHJ1ZSk7XG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzoxNDg0Olx0XHRnc3dpcF9wb3J0X3NldF9zcGVlZChwcml2LCBwb3J0LCBzcGVlZCwgaW50ZXJmYWNlKTtcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTE0ODUtXHRcdGdzd2lwX3BvcnRfc2V0X2R1cGxleChwcml2LCBwb3J0LCBkdXBsZXgpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNyAxODoyMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyOTM3MwoJCQkJCQkJb3V0cHV0OiAxMTIKCQkJCQkJCXRob3VnaHRzOiA1MDEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudDogVGhpcyBDb2RlIGlzIFVuZnV6emFibGUqKgoKT2theSwgaGVyZSYjMzk7cyB0aGUgYnJlYWtkb3duIG9mIG15IHRoaW5raW5nLiBUaGlzIHBhdGNoIGlzIGZvY3VzZWQgc29sZWx5IG9uIGBkcml2ZXJzL25ldC9kc2EvbGFudGlxL2AgYW5kIHRoZSBhc3NvY2lhdGVkIGZpbGVzOiBgbGFudGlxX2dzd2lwLmhgLCBgbGFudGlxX2dzd2lwX2NvbW1vbi5jYCwgYW5kIGBteGwtZ3N3MXh4LmNgLiBUaGVzZSBhcmUgaGFyZHdhcmUgZHJpdmVycy4gU3BlY2lmaWNhbGx5LCB0aGV5JiMzOTtyZSBmb3IgTGFudGlxIFZSWDIwMC94UlgzMDAgU29DcyBhbmQgTWF4TGluZWFyIEdTVzF4eCBFdGhlcm5ldCBzd2l0Y2ggY2hpcHMsIGFuZCB0aGV5IGNvbW11bmljYXRlIHZpYSBNRElPLiBJIGtub3cgdGhvc2UgZGV2aWNlcyDigJMgdGhleSByZXF1aXJlIHZlcnkgc3BlY2lmaWMsIGFjdHVhbCBoYXJkd2FyZTogZWl0aGVyIHRoZSBTb0MmIzM5O3MgTWVtb3J5LU1hcHBlZCBJL08gb3IgdGhlIE1ESU8tY29ubmVjdGVkIHN3aXRjaCBjaGlwcy4gVGhleSBhbHNvIG5lZWQgRGV2aWNlIFRyZWUgbm9kZXMgbGlrZSBgbGFudGlxLHhyeDIwMC1nc3dpcGAgb3IgYG1heGxpbmVhcixnc3cxMjBgIHRvIGZ1bmN0aW9uLgoKVGhlIGtleSBwb2ludCBoZXJlIGlzIHRoYXQgKm5vbmUqIG9mIHRoaXMgaGFyZHdhcmUgaXMgZW11bGF0ZWQgaW4gYSBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBsaWtlIFFFTVUgb24geDg2XzY0IG9yIGFtZDY0LiBUaGF0IG1lYW5zIHRoaXMgY29kZSBpcyBpbmhlcmVudGx5ICpzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUqIGZvciBzdGFuZGFyZCBmdXp6aW5nLgoKSSYjMzk7bSBkb3VibGUtY2hlY2tpbmcgdGhlIGRlZmluaXRpb24gb2Ygc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlIGluIHRoZSBndWlkZWxpbmVzLiBUaGV5IHN0YXRlIHRoYXQgdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoZXMsIFNtYXJ0TklDcywgb3IgR1BVIGRyaXZlcnMgYXJlIG9mZi1saW1pdHMgYmVjYXVzZSB0aGV5IHJlcXVpcmUgcGh5c2ljYWwgQVNJQ3Mgb3IgUENJZSBjYXJkcyBub3Qgc2ltdWxhdGVkIGluIFFFTVUuIFRoYXQmIzM5O3MgKmV4YWN0bHkqIHdoYXQgdGhpcyBpczogYSB2ZW5kb3Itc3BlY2lmaWMgZHJpdmVyIHRpZWQgdG8gc3BlY2lmaWMsIHJlYWwgaGFyZHdhcmUuIFRoZW4gdGhlIGd1aWRlbGluZXMgZ28gb24gdG8gaGlnaGxpZ2h0IHRoYXQgcmVhY2hhYmlsaXR5IGlzIHRoZSBwcmltYXJ5IGdhdGUgYW5kIHRoYXQgZnV6emluZyBjYW4gb25seSBkaXNjb3ZlciBidWdzIGluIGNvZGUgdGhhdCYjMzk7cyBleGVjdXRhYmxlIGluIHN0YW5kYXJkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLiBJZiB0aGUgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUsIHdlIHNob3VsZG4mIzM5O3QgZXZlbiBhdHRlbXB0IHRvIGZ1enogaXQsIGV2ZW4gaWYgaXQgaGFzIGFzc2VydGlvbnMgb3IgY29tcGxleCBsb2dpYy4KClNvLCAqV29ydGhGdXp6aW5nKiBoYXMgdG8gYmUgYGZhbHNlYC4KCkxldCBtZSBxdWlja2x5IGNvbmZpcm0gdGhlIHBhcmFtZXRlcnM6CgoqICAgKldvcnRoRnV6emluZyo6IERlZmluaXRlbHkgYGZhbHNlYC4KKiAgICpGb2N1c1N5bWJvbHMqOiBFbXB0eSBsaXN0IOKAkyBub3RoaW5nIHRvIGZvY3VzIG9uIGhlcmUuCiogICAqRW5hYmxlQ29uZmlncyo6IEVtcHR5IGxpc3Qg4oCTIG5vIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBuZWVkZWQuCiogICAqUmVhc29uaW5nKjogVGhlIGRyaXZlcnMgbW9kaWZ5IExhbnRpcSBHU1dJUCBhbmQgTWF4TGluZWFyIEdTVzF4eCBFdGhlcm5ldCBzd2l0Y2hlcyB3aXRoaW4gYGRyaXZlcnMvbmV0L2RzYS9sYW50aXEvYC4gVGhleSBuZWVkIHNwZWNpZmljLCByZWFsIE1ESU8vU29DIHN3aXRjaGVzLCBhbmQgdGhvc2UgYXJlIHNpbXBseSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciBvdGhlciB2aXJ0dWFsIGVudmlyb25tZW50cyB3ZSYjMzk7ZCBiZSB1c2luZyBvbiBhbWQ2NCwgbWVhbmluZyB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuIFRoZXJlZm9yZSwgbm8gZnV6emluZy4KCkFscmlnaHQsIEkmIzM5O20gZ29pbmcgdG8gZ28gYWhlYWQgYW5kIGludm9rZSBgc2V0LXJlc3VsdHNgLiBUaGlzIHBhdGNoIGlzbiYjMzk7dCBzdWl0YWJsZSBmb3IgZnV6emluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDcgMTg6MjA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBtb2RpZmllZCBjb2RlIGlzIGxvY2F0ZWQgaW4gZHJpdmVycy9uZXQvZHNhL2xhbnRpcS8gKExhbnRpcSBHU1dJUCAvIE1heExpbmVhciBHU1cxeHggRXRoZXJuZXQgc3dpdGNoIGRyaXZlcnMpLCB3aGljaCBjb250cm9sIHNwZWNpZmljIHBoeXNpY2FsIHN3aXRjaCBoYXJkd2FyZSAodmlhIE1ESU8vU29DIHBsYXRmb3JtIE1NSU8pIGRlZmluZWQgaW4gRGV2aWNlIFRyZWUgYW5kIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVSBhbWQ2NCkuIFRoZSBjaGFuZ2VzIGFyZSBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBtb2RpZmllZCBjb2RlIGlzIGxvY2F0ZWQgaW4gZHJpdmVycy9uZXQvZHNhL2xhbnRpcS8gKExhbnRpcSBHU1dJUCAvIE1heExpbmVhciBHU1cxeHggRXRoZXJuZXQgc3dpdGNoIGRyaXZlcnMpLCB3aGljaCBjb250cm9sIHNwZWNpZmljIHBoeXNpY2FsIHN3aXRjaCBoYXJkd2FyZSAodmlhIE1ESU8vU29DIHBsYXRmb3JtIE1NSU8pIGRlZmluZWQgaW4gRGV2aWNlIFRyZWUgYW5kIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVSBhbWQ2NCkuIFRoZSBjaGFuZ2VzIGFyZSBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNyAxODoyMDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+SWY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDktMDdUMTg6MTk6NDIuMzUxMjg3MTY3WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTQ2Nzg0MDQyMDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJcIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBtb2RpZmllZCBjb2RlIGlzIGxvY2F0ZWQgaW4gZHJpdmVycy9uZXQvZHNhL2xhbnRpcS8gKExhbnRpcSBHU1dJUCAvIE1heExpbmVhciBHU1cxeHggRXRoZXJuZXQgc3dpdGNoIGRyaXZlcnMpLCB3aGljaCBjb250cm9sIHNwZWNpZmljIHBoeXNpY2FsIHN3aXRjaCBoYXJkd2FyZSAodmlhIE1ESU8vU29DIHBsYXRmb3JtIE1NSU8pIGRlZmluZWQgaW4gRGV2aWNlIFRyZWUgYW5kIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVSBhbWQ2NCkuIFRoZSBjaGFuZ2VzIGFyZSBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wN1QxODoxOTo0Mi4zNTEyOTEyOTdaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyNzY5OTcxODMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCAyYzg3NzE4YjU1NjYxNTk0YTBjMzgzZGY3NTc5Nzk4MzBiNzlmZTZhXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBNb24gU2VwIDcgMTg6MTk6NDAgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaCBiL2RyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmhcXG5pbmRleCBiYzM2ODZmYWFkMGQ2Li4wYjc1YmUxNGRjMTA5IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmhcXG4rKysgYi9kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oXFxuQEAgLTQyLDcgKzQyLDcgQEBcXG4gI2RlZmluZSAgR1NXSVBfTURJT19QSFlfRkRVUF9ESVNcXHQweDA2MDBcXG4gI2RlZmluZSAgR1NXSVBfTURJT19QSFlfRkNPTlRYX01BU0tcXHQweDAxODBcXG4gI2RlZmluZSAgR1NXSVBfTURJT19QSFlfRkNPTlRYX0FVVE9cXHQweDAwMDBcXG4tI2RlZmluZSAgR1NXSVBfTURJT19QSFlfRkNPTlRYX0VOXFx0MHgwMTAwXFxuKyNkZWZpbmUgIEdTV0lQX01ESU9fUEhZX0ZDT05UWF9FTlxcdDB4MDA4MFxcbiAjZGVmaW5lICBHU1dJUF9NRElPX1BIWV9GQ09OVFhfRElTXFx0MHgwMTgwXFxuICNkZWZpbmUgIEdTV0lQX01ESU9fUEhZX0ZDT05SWF9NQVNLXFx0MHgwMDYwXFxuICNkZWZpbmUgIEdTV0lQX01ESU9fUEhZX0ZDT05SWF9BVVRPXFx0MHgwMDAwXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jIGIvZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmNcXG5pbmRleCAwZThlZWRmNjRkM2EzLi42MTUwZGMzZmZiNjQxIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jXFxuKysrIGIvZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmNcXG5AQCAtMTMzOSw2ICsxMzM5LDcgQEAgc3RhdGljIHZvaWQgZ3N3aXBfcG9ydF9zZXRfc3BlZWQoc3RydWN0IGdzd2lwX3ByaXYgKnByaXYsIGludCBwb3J0LCBpbnQgc3BlZWQsXFxuIFxcdFxcdGJyZWFrO1xcbiBcXG4gXFx0Y2FzZSBTUEVFRF8xMDAwOlxcbitcXHRjYXNlIFNQRUVEXzI1MDA6XFxuIFxcdFxcdG1kaW9fcGh5ID0gR1NXSVBfTURJT19QSFlfU1BFRURfRzE7XFxuIFxcbiBcXHRcXHRtaWlfY2ZnID0gR1NXSVBfTUlJX0NGR19SQVRFX00xMjU7XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9sYW50aXEvbXhsLWdzdzF4eC5jIGIvZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9teGwtZ3N3MXh4LmNcXG5pbmRleCBhMTEwNGIyZjkyYTkyLi5iOGQ4ZmVmYWEzYTE1IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2RzYS9sYW50aXEvbXhsLWdzdzF4eC5jXFxuKysrIGIvZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9teGwtZ3N3MXh4LmNcXG5AQCAtMzUyLDggKzM1MiwyMiBAQCBzdGF0aWMgaW50IGdzdzF4eF9wY3NfY29uZmlnKHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzLCB1bnNpZ25lZCBpbnQgbmVnX21vZGUsXFxuIFxcdC8qIG1hcmsgUENTIGNvbmZpZ3VyYXRpb24gYXMgaW5jb21wbGV0ZSAqL1xcbiBcXHRwcml2LVxcdTAwM2V0YmlfaW50ZXJmYWNlID0gUEhZX0lOVEVSRkFDRV9NT0RFX05BO1xcbiBcXG4tXFx0aWYgKCFyZWNvbmYpXFxuK1xcdGlmICghcmVjb25mKSB7XFxuK1xcdFxcdC8qIHNldHVwIFNlckRlcyBjbG9jayBzcGVlZCAqL1xcbitcXHRcXHRpZiAoaW50ZXJmYWNlID09IFBIWV9JTlRFUkZBQ0VfTU9ERV8yNTAwQkFTRVgpXFxuK1xcdFxcdFxcdG5jb19jdHJsID0gR1NXMVhYX1NHTUlJXzJHNSB8IEdTVzFYWF9TR01JSV8yRzVfTkNPMjtcXG4rXFx0XFx0ZWxzZVxcbitcXHRcXHRcXHRuY29fY3RybCA9IEdTVzFYWF9TR01JSV8xRyB8IEdTVzFYWF9TR01JSV8xR19OQ08xO1xcbitcXG4rXFx0XFx0cmV0ID0gcmVnbWFwX3VwZGF0ZV9iaXRzKHByaXYtXFx1MDAzZWNsaywgR1NXMVhYX0NMS19OQ09fQ1RSTCxcXG4rXFx0XFx0XFx0XFx0XFx0IEdTVzFYWF9TR01JSV9IU1BfTUFTSyB8XFxuK1xcdFxcdFxcdFxcdFxcdCBHU1cxWFhfU0dNSUlfU0VMLFxcbitcXHRcXHRcXHRcXHRcXHQgbmNvX2N0cmwpO1xcbitcXHRcXHRpZiAocmV0KVxcbitcXHRcXHRcXHRyZXR1cm4gcmV0O1xcbitcXG4gXFx0XFx0cmV0ID0gZ3N3MXh4X3Bjc19yZXNldChwcml2LCBpbnRlcmZhY2UpO1xcbitcXHR9XFxuIFxcbiBcXHRpZiAocmV0KVxcbiBcXHRcXHRyZXR1cm4gcmV0O1xcbkBAIC00MjMsMTkgKzQzNyw2IEBAIHN0YXRpYyBpbnQgZ3N3MXh4X3Bjc19jb25maWcoc3RydWN0IHBoeWxpbmtfcGNzICpwY3MsIHVuc2lnbmVkIGludCBuZWdfbW9kZSxcXG4gXFx0XFx0cmV0dXJuIHJldDtcXG4gXFxuIFxcdGlmICghcmVjb25mKSB7XFxuLVxcdFxcdC8qIHNldHVwIFNlckRlcyBjbG9jayBzcGVlZCAqL1xcbi1cXHRcXHRpZiAoaW50ZXJmYWNlID09IFBIWV9JTlRFUkZBQ0VfTU9ERV8yNTAwQkFTRVgpXFxuLVxcdFxcdFxcdG5jb19jdHJsID0gR1NXMVhYX1NHTUlJXzJHNSB8IEdTVzFYWF9TR01JSV8yRzVfTkNPMjtcXG4tXFx0XFx0ZWxzZVxcbi1cXHRcXHRcXHRuY29fY3RybCA9IEdTVzFYWF9TR01JSV8xRyB8IEdTVzFYWF9TR01JSV8xR19OQ08xO1xcbi1cXG4tXFx0XFx0cmV0ID0gcmVnbWFwX3VwZGF0ZV9iaXRzKHByaXYtXFx1MDAzZWNsaywgR1NXMVhYX0NMS19OQ09fQ1RSTCxcXG4tXFx0XFx0XFx0XFx0XFx0IEdTVzFYWF9TR01JSV9IU1BfTUFTSyB8XFxuLVxcdFxcdFxcdFxcdFxcdCBHU1cxWFhfU0dNSUlfU0VMLFxcbi1cXHRcXHRcXHRcXHRcXHQgbmNvX2N0cmwpO1xcbi1cXHRcXHRpZiAocmV0KVxcbi1cXHRcXHRcXHRyZXR1cm4gcmV0O1xcbi1cXG4gXFx0XFx0cmV0ID0gZ3N3MXh4X3Bjc19waHlfeGF1aV93cml0ZShwcml2LCAweDMwLCAweDgwKTtcXG4gXFx0XFx0aWYgKHJldClcXG4gXFx0XFx0XFx0cmV0dXJuIHJldDtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDdUMTg6MTk6NDMuNjI4OTg2OTQxWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiY29yZSIsIkR1cmF0aW9uIjo1MzQwMDY5Mjg1MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgbW9kaWZpZWQgY29kZSBpcyBsb2NhdGVkIGluIGRyaXZlcnMvbmV0L2RzYS9sYW50aXEvIChMYW50aXEgR1NXSVAgLyBNYXhMaW5lYXIgR1NXMXh4IEV0aGVybmV0IHN3aXRjaCBkcml2ZXJzKSwgd2hpY2ggY29udHJvbCBzcGVjaWZpYyBwaHlzaWNhbCBzd2l0Y2ggaGFyZHdhcmUgKHZpYSBNRElPL1NvQyBwbGF0Zm9ybSBNTUlPKSBkZWZpbmVkIGluIERldmljZSBUcmVlIGFuZCBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgKFFFTVUgYW1kNjQpLiBUaGUgY2hhbmdlcyBhcmUgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIgYW5kIHNlY3VyaXR5IGVuZ2luZWVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBldmFsdWF0ZSB3aGV0aGVyIGl0IHdhcnJhbnRzIGZ1enppbmcgd2l0aCBzeXprYWxsZXIuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIGludGVybmFsIGFzc3VtcHRpb25zLiBZb3UgbXVzdCBhY3RpdmVseSB1c2UgeW91ciBjb2RlIGFjY2Vzc1xudG9vbHMgdG8gaW5zcGVjdCB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlLCBjYWxsZXJzLCBhbmQgc3Vycm91bmRpbmcgY29udGV4dC5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjEuIENPUkUgVFJJQUdFIFBISUxPU09QSFlcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5UaGUgZ29hbCBvZiBwYXRjaCBmdXp6aW5nIGlzIHRvIGRpc2NvdmVyIGNyYXNoZXMsIHJlZ3Jlc3Npb25zLCBleHBvc2VkIGxhdGVudCBidWdzLFxuYW5kIG5ld2x5IHRyaWdnZXJlZCBhc3NlcnRpb25zIGludHJvZHVjZWQgYnkgdGhlIHBhdGNoIHNlcmllcy5cblxuLSBSRUFDSEFCSUxJVFkgSVMgVEhFIFBSSU1BUlkgR0FURTpcbiAgRnV6emluZyBjYW4gb25seSBkaXNjb3ZlciBidWdzIGluIGNvZGUgdGhhdCBjYW4gYWN0dWFsbHkgZXhlY3V0ZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZFxuICBlbnZpcm9ubWVudHMgKEdDRSBvciBRRU1VLCB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgZGV2aWNlcyBsaWtlIFVTQiBnYWRnZXRzLCBuZXRkZXYsIHR1bi90YXApLlxuICBJZiB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgKHNlZSBTZWN0aW9uIDIpLCBpdCBNVVNUIE5PVCBiZSBmdXp6ZWQsXG4gIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBpdCBhZGRzIGFzc2VydGlvbnMgb3IgY29tcGxleCBsb2dpYy5cblxuLSBETyBOT1QgQkxJTkRMWSBUUlVTVCBcIk5PIEZVTkNUSU9OQUwgQ0hBTkdFXCIgKE5GQ0kpIE9SIFwiUkVGQUNUT1JJTkdcIiBDTEFJTVM6XG4gIFBhdGNoIGF1dGhvcnMgcm91dGluZWx5IGxhYmVsIGNoYW5nZXMgYXMgXCJjbGVhbnVwc1wiLCBcInJlZmFjdG9yaW5nc1wiLCBvciBzdGF0ZVxuICBcIk5vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVkXCIuIERvIE5PVCB0YWtlIHRoZXNlIGNsYWltcyBhdCBmYWNlIHZhbHVlLlxuICBDb2RlIHJlZmFjdG9yaW5ncyB0aGF0IHJlYXJyYW5nZSBsb2dpYywgaW50cm9kdWNlIGhlbHBlciBmdW5jdGlvbnMsIG9yIGFsdGVyIHN0YXRlIG1hbmFnZW1lbnRcbiAgaW4gY29yZSBzdWJzeXN0ZW1zIGZyZXF1ZW50bHkgaW50cm9kdWNlIHN1YnRsZSBzZW1hbnRpYyBzaGlmdHMgb3IgdW5jb3ZlciBsYXRlbnQga2VybmVsIGJ1Z3MuXG4gIElmIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUgaXMgbW9kaWZpZWQgb3IgcmVmYWN0b3JlZCwgaXQgTVVTVCBiZSBmdXp6ZWQuXG5cbi0gTkVXIE9SIE1PRElGSUVEIEFTU0VSVElPTlMgSU4gUkVBQ0hBQkxFIENPREUgTVVTVCBCRSBGVVpaRUQ6XG4gIFdoZW4gYSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzIHJ1bnRpbWUgY2hlY2tzIG9yIGFzc2VydGlvbnMgKGUuZy4sIFdBUk5fT04qLCBWTV9XQVJOX09OKixcbiAgQlVHX09OKiwgbG9ja2RlcF9hc3NlcnQqKSBpbiByZWFjaGFibGUgY29kZSBwYXRocywgaXQgZW5mb3JjZXMgbmV3IG9yIHN0cmljdGVyIGludmFyaWFudHMuXG4gIEV2ZW4gaWYgdGhlIGF1dGhvciBiZWxpZXZlcyB0aGUgaW52YXJpYW50IGFsd2F5cyBob2xkcywgZnV6emluZyBpcyBlc3NlbnRpYWwgdG8gdmVyaWZ5IHdoZXRoZXJcbiAgYW4gdW51c3VhbCBzZXF1ZW5jZSBvZiBvcGVyYXRpb25zIGNhbiB2aW9sYXRlIGl0LlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuMi4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPWZhbHNlIChORUdBVElWRSBDUklURVJJQSlcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIE9OTFkgSUYgYWxsIG1vZGlmaWVkIGNvZGUgZmFsbHMgc3RyaWN0bHkgaW50byBvbmUgb3IgbW9yZSBvZiB0aGVzZSBjYXRlZ29yaWVzOlxuXG4tIE5vbi1rZXJuZWwgYW5kIG5vbi1leGVjdXRhYmxlIGNoYW5nZXM6XG4gICogTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgY29tbWVudHMsIG9yIHNwZWxsaW5nIGZpeGVzLlxuICAqIFVzZXItc3BhY2UgZGlyZWN0b3JpZXMsIHNlbGYtdGVzdHMsIHNhbXBsZXMsIG9yIHNjcmlwdHMgKGUuZy4sIHRvb2xzLywgc2FtcGxlcy8sIHNjcmlwdHMvLCB1c3IvKVxuICAgIHRoYXQgZG8gbm90IGFmZmVjdCB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlICh2bWxpbnV4KSBvciBrZXJuZWwgbW9kdWxlcy5cbiAgKiBQdXJlbHkgZGVjb3JhdGl2ZSBsb2dnaW5nIChlLmcuLCBtZXNzYWdlIHN0cmluZ3MgaW4gcHJfZXJyLCBwcmludGssIGRldl9pbmZvKSBvciB0cmFjZXBvaW50c1xuICAgIHRoYXQgZG8gbm90IGFsdGVyIGNvbnRyb2wgZmxvdyBvciBkYXRhIHN0cnVjdHVyZXMuXG4gICogQnVpbGQgc3lzdGVtIG9yIEtjb25maWcgY2hhbmdlcyB0aGF0IGRvIG5vdCBhbHRlciBjb21waWxlZCBDIGxvZ2ljLlxuLSBTdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaGFyZHdhcmU6XG4gICogVmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoZXMsIFNtYXJ0TklDcywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICAgIGlvbmljLCBhbWRncHUpIHJlcXVpcmluZyBwaHlzaWNhbCBBU0lDL1BDSWUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIFVucmVhY2hhYmxlIGV4ZWN1dGlvbiBwYXRoczpcbiAgKiBEcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzICgucmVtb3ZlLCAuc2h1dGRvd24sIHBjaV91bnJlZ2lzdGVyX2RyaXZlcikgZXhlY3V0ZWQgb25seSBkdXJpbmdcbiAgICBwaHlzaWNhbCBQQ0kgaG90LXVucGx1ZyBvciBtYW51YWwgc3lzZnMgZHJpdmVyIHVuYmluZGluZy5cbiAgKiBDb2RlIHBhdGhzIGV4Y2x1c2l2ZSB0byBhcmNoaXRlY3R1cmVzIG90aGVyIHRoYW4gdGhlIHRhcmdldCBhcmNoaXRlY3R1cmUuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4zLiBXSEVOIFRPIFJFVFVSTiBXb3J0aEZ1enppbmc9dHJ1ZSAoUE9TSVRJVkUgQ1JJVEVSSUEpXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuUmV0dXJuIFdvcnRoRnV6emluZz10cnVlIHdoZW5ldmVyIHRoZSBwYXRjaCB0b3VjaGVzIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUsIGluY2x1ZGluZzpcbi0gQ29yZSBTdWJzeXN0ZW1zOlxuICAqIEFueSBsb2dpYyBtb2RpZmljYXRpb25zIGluIG1lbW9yeSBtYW5hZ2VtZW50IChtbS8pLCBzeW5jaHJvbml6YXRpb24vbG9ja2luZyAoa2VybmVsL2xvY2tpbmcvKSxcbiAgICBCUEYsIHNjaGVkdWxlciwgY29yZSBuZXR3b3JraW5nLCBWRlMsIG9yIHN5c2NhbGwgaGFuZGxpbmcuXG4tIFJlZmFjdG9yaW5ncyBhbmQgQ29kZSBDbGVhbnVwczpcbiAgKiBBbnkgcmVzdHJ1Y3R1cmluZyBvZiByZWFjaGFibGUgZGF0YSBzdHJ1Y3R1cmVzLCBoZWxwZXIgYWJzdHJhY3Rpb25zLCBvciBhbGdvcml0aG0gZmxvd3MuXG4tIFJ1bnRpbWUgQXNzZXJ0aW9ucyBhbmQgRGVmZW5zaXZlIENoZWNrczpcbiAgKiBBbnkgaW50cm9kdWN0aW9uIG9yIGFsdGVyYXRpb24gb2YgYXNzZXJ0aW9ucyAoV0FSTl9PTiosIFZNX1dBUk5fT04qLCBCVUdfT04qLCBldGMuKSBpbiByZWFjaGFibGUgcGF0aHMuXG4tIFJlYWNoYWJsZSBEcml2ZXJzIGFuZCBQcm90b2NvbHM6XG4gICogRHJpdmVycyBhY2Nlc3NpYmxlIHZpYSB2aXJ0dWFsIGJ1c2VzICh2aXJ0aW8sIFVTQiBnYWRnZXQsIGxvb3BiYWNrLCBuZXRsaW5rLCBiaW5kZXIsIHNvY2tldHMsIGV0Yy4pLlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuNC4gRVhUUkFDVElORyBGb2N1c1N5bWJvbHMgKFBSRVZFTlRJTkcgRElMVVRJT04pXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuV2hlbiBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IG11c3QgZXh0cmFjdCBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIGludG8gRm9jdXNTeW1ib2xzIHRvIGd1aWRlIHRoZSBmdXp6ZXI6XG5cbi0gQVZPSUQgVUJJUVVJVE9VUyBMSUZFQ1lDTEUgSE9ULVBBVEhTOlxuICBEbyBOT1QgbGlzdCBnZW5lcmljLCB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYWxsZWQgYnkgYWxtb3N0IGV2ZXJ5IHByb2dyYW0gaW4gdGhlIGNvcnB1c1xuICAoaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG86IGdlbmVyYWwgbWVtb3J5IGFsbG9jYXRvcnMgYW5kIGRlYWxsb2NhdG9ycywgcGFnZSBmYXVsdFxuICBhbmQgdHJhcCBoYW5kbGVycywgb3IgY29yZSBzeW5jaHJvbml6YXRpb24gcHJpbWl0aXZlczsgdGhpcyBpcyBub3QgYW4gZXhoYXVzdGl2ZSBsaXN0KS5cbiAgTGlzdGluZyB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYXVzZXMgdGhlIGZ1enplciB0byBjbGFzc2lmeSB0aG91c2FuZHMgb2YgdW5yZWxhdGVkIHRlc3RzIGFzIFwiZm9jdXNlZFwiLFxuICB3aGljaCBzZXZlcmVseSBkaWx1dGVzIGZ1enppbmcgZWZmb3J0IGF3YXkgZnJvbSB0aGUgYWN0dWFsIGNoYW5nZXMuXG5cbi0gVEFSR0VUIFNQRUNJRklDIEZFQVRVUkUgTE9HSUMgQU5EIEVOVFJZUE9JTlRTOlxuICBMaXN0IGZ1bmN0aW9ucyB0aGF0IHNwZWNpZmljYWxseSBpbXBsZW1lbnQgdGhlIGxvZ2ljIGJlaW5nIGFkZGVkIG9yIGFsdGVyZWQsIG9yIGRpcmVjdCBBUEkgZW50cnlwb2ludHNcbiAgZm9yIHRoZSBzdWJzeXN0ZW0gZmVhdHVyZSB1bmRlciByZXZpZXcuXG5cbi0gSEFORExJTkcgU1RBVElDIElOTElORSBGVU5DVElPTlMgSU4gSEVBREVSUyAoLmgpOlxuICBDb21waWxlci1pbmxpbmVkIHN0YXRpYyBmdW5jdGlvbnMgKHN1Y2ggYXMgc3RhdGljIGlubGluZXMgaW4gbW0vKi5oIG9yIGluY2x1ZGUvbGludXgvKi5oKSBsYWNrXG4gIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMgaW4gdm1saW51eCBhbmQgY2Fubm90IGJlIHRhcmdldGVkIGRpcmVjdGx5IGJ5IHN5bWJvbCBjb3ZlcmFnZSBmaWx0ZXJzLlxuICBJZiB0aGUgY2hhbmdlcyBhcmUgcHJpbWFyaWx5IGluIHN0YXRpYyBpbmxpbmUgaGVscGVycywgaWRlbnRpZnkgbm9uLXN0YXRpYywgZmVhdHVyZS1zcGVjaWZpYyBjYWxsZXJcbiAgZnVuY3Rpb25zIGluIC5jIGZpbGVzIHRoYXQgZXhlcmNpc2UgdGhlbSAoYXZvaWRpbmcgdWJpcXVpdG91cyBsaWZlY3ljbGUgd3JhcHBlcnMpLlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuNS4gSURFTlRJRllJTkcgRW5hYmxlQ29uZmlnc1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbklkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgY29tcGlsZSBhbmQgcmVhY2ggdGhlIG1vZGlmaWVkIGNvZGU6XG4tIEluc3BlY3QgS2NvbmZpZyBmaWxlcyBhbmQgI2lmZGVmIGd1YXJkczsgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4tIENoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncyBuZWVkZWQuXG4tIFN0cmlwIGFueSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJUYXJnZXQgYXJjaGl0ZWN0dXJlOiBhbWQ2NFxuXG5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAyYzg3NzE4YjU1NjYxNTk0YTBjMzgzZGY3NTc5Nzk4MzBiNzlmZTZhXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBTZXAgNyAxODoxOTo0MCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmggYi9kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oXG5pbmRleCBiYzM2ODZmYWFkMGQ2Li4wYjc1YmUxNGRjMTA5IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaFxuKysrIGIvZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaFxuQEAgLTQyLDcgKzQyLDcgQEBcbiAjZGVmaW5lICBHU1dJUF9NRElPX1BIWV9GRFVQX0RJU1x0MHgwNjAwXG4gI2RlZmluZSAgR1NXSVBfTURJT19QSFlfRkNPTlRYX01BU0tcdDB4MDE4MFxuICNkZWZpbmUgIEdTV0lQX01ESU9fUEhZX0ZDT05UWF9BVVRPXHQweDAwMDBcbi0jZGVmaW5lICBHU1dJUF9NRElPX1BIWV9GQ09OVFhfRU5cdDB4MDEwMFxuKyNkZWZpbmUgIEdTV0lQX01ESU9fUEhZX0ZDT05UWF9FTlx0MHgwMDgwXG4gI2RlZmluZSAgR1NXSVBfTURJT19QSFlfRkNPTlRYX0RJU1x0MHgwMTgwXG4gI2RlZmluZSAgR1NXSVBfTURJT19QSFlfRkNPTlJYX01BU0tcdDB4MDA2MFxuICNkZWZpbmUgIEdTV0lQX01ESU9fUEhZX0ZDT05SWF9BVVRPXHQweDAwMDBcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYyBiL2RyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jXG5pbmRleCAwZThlZWRmNjRkM2EzLi42MTUwZGMzZmZiNjQxIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmNcbisrKyBiL2RyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jXG5AQCAtMTMzOSw2ICsxMzM5LDcgQEAgc3RhdGljIHZvaWQgZ3N3aXBfcG9ydF9zZXRfc3BlZWQoc3RydWN0IGdzd2lwX3ByaXYgKnByaXYsIGludCBwb3J0LCBpbnQgc3BlZWQsXG4gXHRcdGJyZWFrO1xuIFxuIFx0Y2FzZSBTUEVFRF8xMDAwOlxuK1x0Y2FzZSBTUEVFRF8yNTAwOlxuIFx0XHRtZGlvX3BoeSA9IEdTV0lQX01ESU9fUEhZX1NQRUVEX0cxO1xuIFxuIFx0XHRtaWlfY2ZnID0gR1NXSVBfTUlJX0NGR19SQVRFX00xMjU7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9teGwtZ3N3MXh4LmMgYi9kcml2ZXJzL25ldC9kc2EvbGFudGlxL214bC1nc3cxeHguY1xuaW5kZXggYTExMDRiMmY5MmE5Mi4uYjhkOGZlZmFhM2ExNSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2RzYS9sYW50aXEvbXhsLWdzdzF4eC5jXG4rKysgYi9kcml2ZXJzL25ldC9kc2EvbGFudGlxL214bC1nc3cxeHguY1xuQEAgLTM1Miw4ICszNTIsMjIgQEAgc3RhdGljIGludCBnc3cxeHhfcGNzX2NvbmZpZyhzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcywgdW5zaWduZWQgaW50IG5lZ19tb2RlLFxuIFx0LyogbWFyayBQQ1MgY29uZmlndXJhdGlvbiBhcyBpbmNvbXBsZXRlICovXG4gXHRwcml2LVx1MDAzZXRiaV9pbnRlcmZhY2UgPSBQSFlfSU5URVJGQUNFX01PREVfTkE7XG4gXG4tXHRpZiAoIXJlY29uZilcbitcdGlmICghcmVjb25mKSB7XG4rXHRcdC8qIHNldHVwIFNlckRlcyBjbG9jayBzcGVlZCAqL1xuK1x0XHRpZiAoaW50ZXJmYWNlID09IFBIWV9JTlRFUkZBQ0VfTU9ERV8yNTAwQkFTRVgpXG4rXHRcdFx0bmNvX2N0cmwgPSBHU1cxWFhfU0dNSUlfMkc1IHwgR1NXMVhYX1NHTUlJXzJHNV9OQ08yO1xuK1x0XHRlbHNlXG4rXHRcdFx0bmNvX2N0cmwgPSBHU1cxWFhfU0dNSUlfMUcgfCBHU1cxWFhfU0dNSUlfMUdfTkNPMTtcbitcbitcdFx0cmV0ID0gcmVnbWFwX3VwZGF0ZV9iaXRzKHByaXYtXHUwMDNlY2xrLCBHU1cxWFhfQ0xLX05DT19DVFJMLFxuK1x0XHRcdFx0XHQgR1NXMVhYX1NHTUlJX0hTUF9NQVNLIHxcbitcdFx0XHRcdFx0IEdTVzFYWF9TR01JSV9TRUwsXG4rXHRcdFx0XHRcdCBuY29fY3RybCk7XG4rXHRcdGlmIChyZXQpXG4rXHRcdFx0cmV0dXJuIHJldDtcbitcbiBcdFx0cmV0ID0gZ3N3MXh4X3Bjc19yZXNldChwcml2LCBpbnRlcmZhY2UpO1xuK1x0fVxuIFxuIFx0aWYgKHJldClcbiBcdFx0cmV0dXJuIHJldDtcbkBAIC00MjMsMTkgKzQzNyw2IEBAIHN0YXRpYyBpbnQgZ3N3MXh4X3Bjc19jb25maWcoc3RydWN0IHBoeWxpbmtfcGNzICpwY3MsIHVuc2lnbmVkIGludCBuZWdfbW9kZSxcbiBcdFx0cmV0dXJuIHJldDtcbiBcbiBcdGlmICghcmVjb25mKSB7XG4tXHRcdC8qIHNldHVwIFNlckRlcyBjbG9jayBzcGVlZCAqL1xuLVx0XHRpZiAoaW50ZXJmYWNlID09IFBIWV9JTlRFUkZBQ0VfTU9ERV8yNTAwQkFTRVgpXG4tXHRcdFx0bmNvX2N0cmwgPSBHU1cxWFhfU0dNSUlfMkc1IHwgR1NXMVhYX1NHTUlJXzJHNV9OQ08yO1xuLVx0XHRlbHNlXG4tXHRcdFx0bmNvX2N0cmwgPSBHU1cxWFhfU0dNSUlfMUcgfCBHU1cxWFhfU0dNSUlfMUdfTkNPMTtcbi1cbi1cdFx0cmV0ID0gcmVnbWFwX3VwZGF0ZV9iaXRzKHByaXYtXHUwMDNlY2xrLCBHU1cxWFhfQ0xLX05DT19DVFJMLFxuLVx0XHRcdFx0XHQgR1NXMVhYX1NHTUlJX0hTUF9NQVNLIHxcbi1cdFx0XHRcdFx0IEdTVzFYWF9TR01JSV9TRUwsXG4tXHRcdFx0XHRcdCBuY29fY3RybCk7XG4tXHRcdGlmIChyZXQpXG4tXHRcdFx0cmV0dXJuIHJldDtcbi1cbiBcdFx0cmV0ID0gZ3N3MXh4X3Bjc19waHlfeGF1aV93cml0ZShwcml2LCAweDMwLCAweDgwKTtcbiBcdFx0aWYgKHJldClcbiBcdFx0XHRyZXR1cm4gcmV0O1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDdUMTg6MTk6NDMuNjI4OTg4MDlaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoyNDAzNzU3NTEzMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIExhbnRpcSBEU0EgUGF0Y2gqKlxuXG5Pa2F5LCBsZXQncyBkaXZlIGludG8gdGhpcyBwYXRjaC4gTXkgaW5pdGlhbCBtb3ZlIGlzIHRvIHVuZGVyc3RhbmQgdGhlIHNjb3BlLCBzbyBJJ20gZm9jdXNpbmcgb24gdGhlIGFmZmVjdGVkIHN1YnN5c3RlbS4gSSBzZWUgdGhhdCBpdCB0b3VjaGVzIGZpbGVzIHdpdGhpbiB0aGUgYGRyaXZlcnMvbmV0L2RzYS9sYW50aXEvYCBkaXJlY3RvcnkuIFNwZWNpZmljYWxseSwgSSdtIGxvb2tpbmcgYXQgYGxhbnRpcV9nc3dpcC5oYCwgYGxhbnRpcV9nc3dpcF9jb21tb24uY2AsIGFuZCBgbXhsLWdzdzF4eC5jYC4gQmFzZWQgb24gdGhvc2UgZmlsZSBuYW1lcywgSSdtIGltbWVkaWF0ZWx5IHRoaW5raW5nIHRoaXMgY29uY2VybnMgYSBMYW50aXEgR2lnYWJpdCBTd2l0Y2ggSVAgZHJpdmVyLCBsaWtlbHkgZm9yIGEgc3BlY2lmaWMgc2VyaWVzIG9mIFNvQ3Mgb3IgcGxhdGZvcm1zLlxuXG5Ob3csIG15IG5leHQgc3RlcCBpcyB0byBnZXQgdGhlIGNvbnRleHQgb2YgdGhpcyBkcml2ZXIuIEknbSBnb2luZyB0byBxdWlja2x5IGNoZWNrIHRoZSBLY29uZmlnIGZpbGVzIGFzc29jaWF0ZWQgd2l0aCBgZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9gLiBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgZXhhY3QgdGFyZ2V0IGhhcmR3YXJlIG9yIHBsYXRmb3JtIHRoaXMgaXMgaW50ZW5kZWQgZm9yLiBUaGF0IHdpbGwgZ2l2ZSBtZSBhIGNyaXRpY2FsIHVuZGVyc3RhbmRpbmcgb2YgdGhlIGltcGxpY2F0aW9ucyBvZiB0aGVzZSBjaGFuZ2VzIGFuZCBwb3RlbnRpYWwgY29tcGF0aWJpbGl0eSBpc3N1ZXMuIEZyb20gdGhlIEtjb25maWcsIEkgaG9wZSB0byBjb25maXJtIG15IGluaXRpYWwgYXNzdW1wdGlvbiBhYm91dCB0aGUgaGFyZHdhcmUgYW5kIGdldCBhIHNlbnNlIG9mIHRoZSBkcml2ZXIncyBkZXBlbmRlbmNpZXMgYW5kIGNvbmZpZ3VyYXRpb24gb3B0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDAwNCwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzNywiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA3VDE4OjIwOjA3LjY2NjU2NjgxMVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0Nzc5NTU3MiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJHU1dJUFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9kc2EvbGFudGlxXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTA4MiBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9LY29uZmlnPTE9Y29uZmlnIE5FVF9EU0FfTEFOVElRX0NPTU1PTlxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9LY29uZmlnLTQtXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9LY29uZmlnOjU6Y29uZmlnIE5FVF9EU0FfTEFOVElRX0dTV0lQXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9LY29uZmlnOjY6XFx0dHJpc3RhdGUgXFxcIkxhbnRpcSAvIEludGVsIEdTV0lQXFxcIlxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvS2NvbmZpZy03LVxcdGRlcGVuZHMgb24gSEFTX0lPTUVNXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9LY29uZmlnOjg6XFx0c2VsZWN0IE5FVF9EU0FfVEFHX0dTV0lQXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9LY29uZmlnLTktXFx0c2VsZWN0IE5FVF9EU0FfTEFOVElRX0NPTU1PTlxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvS2NvbmZpZy0xMC1cXHRoZWxwXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9LY29uZmlnOjExOlxcdCAgVGhpcyBlbmFibGVzIHN1cHBvcnQgZm9yIHRoZSBMYW50aXEgLyBJbnRlbCBHU1dJUCAyLjEgZm91bmQgaW5cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL0tjb25maWctMTItXFx0ICB0aGUgeHJ4MjAwIC8gVlI5IFNvQy5cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvTWFrZWZpbGU6MTpvYmotJChDT05GSUdfTkVUX0RTQV9MQU5USVFfR1NXSVApICs9IGxhbnRpcV9nc3dpcC5vXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9NYWtlZmlsZS0yLW9iai0kKENPTkZJR19ORVRfRFNBX0xBTlRJUV9DT01NT04pICs9IGxhbnRpcV9nc3dpcF9jb21tb24ub1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy0yLS8qXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYzozOiAqIExhbnRpcSAvIEludGVsIEdTV0lQIHN3aXRjaCBkcml2ZXIgZm9yIFZSWDIwMCwgeFJYMzAwIGFuZCB4UlgzMzAgU29Dc1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtNC0gKlxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYz0yMzU9c3RhdGljIGludCBnc3dpcF9ncGh5X2Z3X2xpc3Qoc3RydWN0IGdzd2lwX3ByaXYgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTI0My1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjI0NDpcXHQvKiBUaGUgVlJYMjAwIHJldiAxLjEgdXNlcyB0aGUgR1NXSVAgMi4wIGFuZCBuZWVkcyB0aGUgb2xkZXJcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjI0NTpcXHQgKiBHUEhZIGZpcm13YXJlLiBUaGUgVlJYMjAwIHJldiAxLjIgdXNlcyB0aGUgR1NXSVAgMi4xIGFuZCBhbHNvXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy0yNDYtXFx0ICogbmVlZHMgYSBkaWZmZXJlbnQgR1BIWSBmaXJtd2FyZS5cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtMjQ5LVxcdFxcdHN3aXRjaCAodmVyc2lvbikge1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM6MjUwOlxcdFxcdGNhc2UgR1NXSVBfVkVSU0lPTl8yXzA6XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy0yNTEtXFx0XFx0XFx0cHJpdi1cXHUwMDNlZ3BoeV9md19uYW1lX2NmZyA9IFxcdTAwMjZ4cngyMDBhMXhfZ3BoeV9kYXRhO1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtMjUyLVxcdFxcdFxcdGJyZWFrO1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM6MjUzOlxcdFxcdGNhc2UgR1NXSVBfVkVSU0lPTl8yXzE6XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy0yNTQtXFx0XFx0XFx0cHJpdi1cXHUwMDNlZ3BoeV9md19uYW1lX2NmZyA9IFxcdTAwMjZ4cngyMDBhMnhfZ3BoeV9kYXRhO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy0yNTctXFx0XFx0XFx0cmV0dXJuIGRldl9lcnJfcHJvYmUoZGV2LCAtRU5PRU5ULFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM6MjU4OlxcdFxcdFxcdFxcdFxcdCAgICAgXFxcInVua25vd24gR1NXSVAgdmVyc2lvbjogMHgleFxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTI1OS1cXHRcXHRcXHRcXHRcXHQgICAgIHZlcnNpb24pO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYz0zMTQ9c3RhdGljIGNvbnN0IHN0cnVjdCByZWdtYXBfY29uZmlnIHN3X3JlZ21hcF9jb25maWcgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTMxOS1cXHQudmFsX2Zvcm1hdF9lbmRpYW4gPSBSRUdNQVBfRU5ESUFOX05BVElWRSxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjMyMDpcXHQubWF4X3JlZ2lzdGVyID0gR1NXSVBfU0RNQV9QQ1RSTHAoNiksXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy0zMjEtfTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM9MzIzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgcmVnbWFwX2NvbmZpZyBtZGlvX3JlZ21hcF9jb25maWcgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTMyOC1cXHQudmFsX2Zvcm1hdF9lbmRpYW4gPSBSRUdNQVBfRU5ESUFOX05BVElWRSxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjMyOTpcXHQubWF4X3JlZ2lzdGVyID0gR1NXSVBfTURJT19QSFlwKDApLFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtMzMwLX07XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jPTMzMj1zdGF0aWMgY29uc3Qgc3RydWN0IHJlZ21hcF9jb25maWcgbWlpX3JlZ21hcF9jb25maWcgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTMzNy1cXHQudmFsX2Zvcm1hdF9lbmRpYW4gPSBSRUdNQVBfRU5ESUFOX05BVElWRSxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjMzODpcXHQubWF4X3JlZ2lzdGVyID0gR1NXSVBfTUlJX0NGR3AoNiksXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy0zMzktfTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM9MzQxPXN0YXRpYyBpbnQgZ3N3aXBfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtMzg4LVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM6Mzg5OlxcdHJlZ21hcF9yZWFkKHByaXYtXFx1MDAzZWdzd2lwLCBHU1dJUF9WRVJTSU9OLCBcXHUwMDI2dmVyc2lvbik7XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy0zOTAtXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTM5Mi1cXHRzd2l0Y2ggKHZlcnNpb24pIHtcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjM5MzpcXHRjYXNlIEdTV0lQX1ZFUlNJT05fMl8wOlxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM6Mzk0OlxcdGNhc2UgR1NXSVBfVkVSU0lPTl8yXzE6XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy0zOTUtXFx0XFx0aWYgKCFvZl9kZXZpY2VfaXNfY29tcGF0aWJsZShucCwgXFxcImxhbnRpcSx4cngyMDAtZ3N3aXBcXFwiKSlcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtMzk3LVxcdFxcdGJyZWFrO1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM6Mzk4OlxcdGNhc2UgR1NXSVBfVkVSU0lPTl8yXzI6XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYzozOTk6XFx0Y2FzZSBHU1dJUF9WRVJTSU9OXzJfMl9FVEM6XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy00MDAtXFx0XFx0aWYgKCFvZl9kZXZpY2VfaXNfY29tcGF0aWJsZShucCwgXFxcImxhbnRpcSx4cngzMDAtZ3N3aXBcXFwiKSBcXHUwMDI2XFx1MDAyNlxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy00MDUtXFx0XFx0cmV0dXJuIGRldl9lcnJfcHJvYmUoZGV2LCAtRU5PRU5ULFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM6NDA2OlxcdFxcdFxcdFxcdCAgICAgXFxcInVua25vd24gR1NXSVAgdmVyc2lvbjogMHgleFxcXFxuXFxcIiwgdmVyc2lvbik7XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy00MDctXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYz00NTk9c3RhdGljIGNvbnN0IHN0cnVjdCBnc3dpcF9od19pbmZvIGdzd2lwX3hyeDIwMCA9IHtcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjQ2MDpcXHQubWF4X3BvcnRzID0gR1NXSVBfTUFYX1BPUlRTLFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtNDYxLVxcdC5hbGxvd2VkX2NwdV9wb3J0cyA9IEJJVCg2KSxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTQ2Mi1cXHQubWlpX2NmZyA9IHtcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjQ2MzpcXHRcXHRbMF0gPSBHU1dJUF9NSUlfQ0ZHcCgwKSxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjQ2NDpcXHRcXHRbMV0gPSBHU1dJUF9NSUlfQ0ZHcCgxKSxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTQ2NS1cXHRcXHRbMiAuLi4gNF0gPSAtMSxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjQ2NjpcXHRcXHRbNV0gPSBHU1dJUF9NSUlfQ0ZHcCg1KSxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTQ2Ny1cXHRcXHRbNl0gPSAtMSxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtNDY5LVxcdC5taWlfcGNkdSA9IHtcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjQ3MDpcXHRcXHRbMF0gPSBHU1dJUF9NSUlfUENEVTAsXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYzo0NzE6XFx0XFx0WzFdID0gR1NXSVBfTUlJX1BDRFUxLFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtNDcyLVxcdFxcdFsyIC4uLiA0XSA9IC0xLFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM6NDczOlxcdFxcdFs1XSA9IEdTV0lQX01JSV9QQ0RVNSxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTQ3NC1cXHRcXHRbNl0gPSAtMSxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtNDc4LVxcdC5wY2VfbWljcm9jb2RlX3NpemUgPSBBUlJBWV9TSVpFKGdzd2lwX3BjZV9taWNyb2NvZGUpLFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM6NDc5OlxcdC50YWdfcHJvdG9jb2wgPSBEU0FfVEFHX1BST1RPX0dTV0lQLFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtNDgwLX07XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jPTQ4Mj1zdGF0aWMgY29uc3Qgc3RydWN0IGdzd2lwX2h3X2luZm8gZ3N3aXBfeHJ4MzAwID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM6NDgzOlxcdC5tYXhfcG9ydHMgPSBHU1dJUF9NQVhfUE9SVFMsXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy00ODQtXFx0LmFsbG93ZWRfY3B1X3BvcnRzID0gQklUKDYpLFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtNDg1LVxcdC5taWlfY2ZnID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM6NDg2OlxcdFxcdFswXSA9IEdTV0lQX01JSV9DRkdwKDApLFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtNDg3LVxcdFxcdFsxIC4uLiA0XSA9IC0xLFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM6NDg4OlxcdFxcdFs1XSA9IEdTV0lQX01JSV9DRkdwKDUpLFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtNDg5LVxcdFxcdFs2XSA9IC0xLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy00OTEtXFx0Lm1paV9wY2R1ID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmM6NDkyOlxcdFxcdFswXSA9IEdTV0lQX01JSV9QQ0RVMCxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTQ5My1cXHRcXHRbMSAuLi4gNF0gPSAtMSxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjQ5NDpcXHRcXHRbNV0gPSBHU1dJUF9NSUlfUENEVTUsXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy00OTUtXFx0XFx0WzZdID0gLTEsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTQ5OS1cXHQucGNlX21pY3JvY29kZV9zaXplID0gQVJSQVlfU0laRShnc3dpcF9wY2VfbWljcm9jb2RlKSxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jOjUwMDpcXHQudGFnX3Byb3RvY29sID0gRFNBX1RBR19QUk9UT19HU1dJUCxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTUwMS19O1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYz01Mjk9TU9EVUxFX0FVVEhPUihcXFwiSGF1a2UgTWVocnRlbnMgXFx1MDAzY2hhdWtlQGhhdWtlLW0uZGVcXHUwMDNlXFxcIik7XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYzo1MzA6TU9EVUxFX0RFU0NSSVBUSU9OKFxcXCJMYW50aXEgLyBJbnRlbCBHU1dJUCBkcml2ZXJcXFwiKTtcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5jLTUzMS1NT0RVTEVfTElDRU5TRShcXFwiR1BMIHYyXFxcIik7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oLTEtLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjI6I2lmbmRlZiBfX0xBTlRJUV9HU1dJUF9IXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDozOiNkZWZpbmUgX19MQU5USVFfR1NXSVBfSFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmgtNC1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmgtMTQtXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxNTovKiBHU1dJUCBNRElPIFJlZ2lzdGVycyAqL1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTY6I2RlZmluZSBHU1dJUF9NRElPX0dMT0JcXHRcXHRcXHQweDAwXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxNzojZGVmaW5lICBHU1dJUF9NRElPX0dMT0JfRU5BQkxFXFx0XFx0QklUKDE1KVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTg6I2RlZmluZSBHU1dJUF9NRElPX0NUUkxcXHRcXHRcXHQweDA4XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxOTojZGVmaW5lICBHU1dJUF9NRElPX0NUUkxfQlVTWVxcdFxcdEJJVCgxMilcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjIwOiNkZWZpbmUgIEdTV0lQX01ESU9fQ1RSTF9SRFxcdFxcdEJJVCgxMSlcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjIxOiNkZWZpbmUgIEdTV0lQX01ESU9fQ1RSTF9XUlxcdFxcdEJJVCgxMClcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjIyOiNkZWZpbmUgIEdTV0lQX01ESU9fQ1RSTF9QSFlBRF9NQVNLXFx0MHgxZlxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjM6I2RlZmluZSAgR1NXSVBfTURJT19DVFJMX1BIWUFEX1NISUZUXFx0NVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjQ6I2RlZmluZSAgR1NXSVBfTURJT19DVFJMX1JFR0FEX01BU0tcXHQweDFmXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoyNTojZGVmaW5lIEdTV0lQX01ESU9fUkVBRFxcdFxcdFxcdDB4MDlcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjI2OiNkZWZpbmUgR1NXSVBfTURJT19XUklURVxcdFxcdDB4MEFcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjI3OiNkZWZpbmUgR1NXSVBfTURJT19NRENfQ0ZHMFxcdFxcdDB4MEJcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjI4OiNkZWZpbmUgR1NXSVBfTURJT19NRENfQ0ZHMVxcdFxcdDB4MENcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjI5OiNkZWZpbmUgR1NXSVBfTURJT19QSFlwKHApXFx0XFx0KDB4MTUgLSAocCkpXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDozMDojZGVmaW5lICBHU1dJUF9NRElPX1BIWV9MSU5LX01BU0tcXHQweDYwMDBcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjMxOiNkZWZpbmUgIEdTV0lQX01ESU9fUEhZX0xJTktfQVVUT1xcdDB4MDAwMFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MzI6I2RlZmluZSAgR1NXSVBfTURJT19QSFlfTElOS19ET1dOXFx0MHg0MDAwXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDozMzojZGVmaW5lICBHU1dJUF9NRElPX1BIWV9MSU5LX1VQXFx0XFx0MHgyMDAwXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDozNDojZGVmaW5lICBHU1dJUF9NRElPX1BIWV9TUEVFRF9NQVNLXFx0MHgxODAwXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDozNTojZGVmaW5lICBHU1dJUF9NRElPX1BIWV9TUEVFRF9BVVRPXFx0MHgxODAwXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDozNjojZGVmaW5lICBHU1dJUF9NRElPX1BIWV9TUEVFRF9NMTBcXHQweDAwMDBcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjM3OiNkZWZpbmUgIEdTV0lQX01ESU9fUEhZX1NQRUVEX00xMDBcXHQweDA4MDBcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjM4OiNkZWZpbmUgIEdTV0lQX01ESU9fUEhZX1NQRUVEX0cxXFx0MHgxMDAwXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDozOTojZGVmaW5lICBHU1dJUF9NRElPX1BIWV9GRFVQX01BU0tcXHQweDA2MDBcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjQwOiNkZWZpbmUgIEdTV0lQX01ESU9fUEhZX0ZEVVBfQVVUT1xcdDB4MDAwMFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6NDE6I2RlZmluZSAgR1NXSVBfTURJT19QSFlfRkRVUF9FTlxcdFxcdDB4MDIwMFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6NDI6I2RlZmluZSAgR1NXSVBfTURJT19QSFlfRkRVUF9ESVNcXHQweDA2MDBcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjQzOiNkZWZpbmUgIEdTV0lQX01ESU9fUEhZX0ZDT05UWF9NQVNLXFx0MHgwMTgwXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo0NDojZGVmaW5lICBHU1dJUF9NRElPX1BIWV9GQ09OVFhfQVVUT1xcdDB4MDAwMFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6NDU6I2RlZmluZSAgR1NXSVBfTURJT19QSFlfRkNPTlRYX0VOXFx0MHgwMDgwXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo0NjojZGVmaW5lICBHU1dJUF9NRElPX1BIWV9GQ09OVFhfRElTXFx0MHgwMTgwXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo0NzojZGVmaW5lICBHU1dJUF9NRElPX1BIWV9GQ09OUlhfTUFTS1xcdDB4MDA2MFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6NDg6I2RlZmluZSAgR1NXSVBfTURJT19QSFlfRkNPTlJYX0FVVE9cXHQweDAwMDBcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjQ5OiNkZWZpbmUgIEdTV0lQX01ESU9fUEhZX0ZDT05SWF9FTlxcdDB4MDAyMFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6NTA6I2RlZmluZSAgR1NXSVBfTURJT19QSFlfRkNPTlJYX0RJU1xcdDB4MDA2MFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6NTE6I2RlZmluZSAgR1NXSVBfTURJT19QSFlfQUREUl9NQVNLXFx0MHgwMDFmXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo1MjojZGVmaW5lICBHU1dJUF9NRElPX1BIWV9NQVNLXFx0XFx0KEdTV0lQX01ESU9fUEhZX0FERFJfTUFTSyB8IFxcXFxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjUzOlxcdFxcdFxcdFxcdFxcdCBHU1dJUF9NRElPX1BIWV9GQ09OUlhfTUFTSyB8IFxcXFxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjU0OlxcdFxcdFxcdFxcdFxcdCBHU1dJUF9NRElPX1BIWV9GQ09OVFhfTUFTSyB8IFxcXFxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjU1OlxcdFxcdFxcdFxcdFxcdCBHU1dJUF9NRElPX1BIWV9MSU5LX01BU0sgfCBcXFxcXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo1NjpcXHRcXHRcXHRcXHRcXHQgR1NXSVBfTURJT19QSFlfU1BFRURfTUFTSyB8IFxcXFxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjU3OlxcdFxcdFxcdFxcdFxcdCBHU1dJUF9NRElPX1BIWV9GRFVQX01BU0spXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaC01OC1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjU5Oi8qIEdTV0lQIE1JSSBSZWdpc3RlcnMgKi9cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjYwOiNkZWZpbmUgR1NXSVBfTUlJX0NGR3AocClcXHRcXHQoMHgyICogKHApKVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6NjE6I2RlZmluZSAgR1NXSVBfTUlJX0NGR19SRVNFVFxcdFxcdEJJVCgxNSlcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjYyOiNkZWZpbmUgIEdTV0lQX01JSV9DRkdfRU5cXHRcXHRCSVQoMTQpXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo2MzojZGVmaW5lICBHU1dJUF9NSUlfQ0ZHX0lTT0xBVEVcXHRcXHRCSVQoMTMpXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo2NDojZGVmaW5lICBHU1dJUF9NSUlfQ0ZHX0xEQ0xLRElTXFx0XFx0QklUKDEyKVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6NjU6I2RlZmluZSAgR1NXSVBfTUlJX0NGR19SR01JSV9JQlNcXHRCSVQoOClcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjY2OiNkZWZpbmUgIEdTV0lQX01JSV9DRkdfUk1JSV9DTEtcXHRcXHRCSVQoNylcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjY3OiNkZWZpbmUgIEdTV0lQX01JSV9DRkdfTU9ERV9NSUlQXFx0MHgwXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo2ODojZGVmaW5lICBHU1dJUF9NSUlfQ0ZHX01PREVfTUlJTVxcdDB4MVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6Njk6I2RlZmluZSAgR1NXSVBfTUlJX0NGR19NT0RFX1JNSUlQXFx0MHgyXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo3MDojZGVmaW5lICBHU1dJUF9NSUlfQ0ZHX01PREVfUk1JSU1cXHQweDNcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjcxOiNkZWZpbmUgIEdTV0lQX01JSV9DRkdfTU9ERV9SR01JSVxcdDB4NFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6NzI6I2RlZmluZSAgR1NXSVBfTUlJX0NGR19NT0RFX0dNSUlcXHQweDlcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjczOiNkZWZpbmUgIEdTV0lQX01JSV9DRkdfTU9ERV9NQVNLXFx0MHhmXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo3NDojZGVmaW5lICBHU1dJUF9NSUlfQ0ZHX1JBVEVfTTJQNVxcdDB4MDBcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjc1OiNkZWZpbmUgIEdTV0lQX01JSV9DRkdfUkFURV9NMjVcXHQweDEwXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo3NjojZGVmaW5lICBHU1dJUF9NSUlfQ0ZHX1JBVEVfTTEyNVxcdDB4MjBcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjc3OiNkZWZpbmUgIEdTV0lQX01JSV9DRkdfUkFURV9NNTBcXHQweDMwXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo3ODojZGVmaW5lICBHU1dJUF9NSUlfQ0ZHX1JBVEVfQVVUT1xcdDB4NDBcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjc5OiNkZWZpbmUgIEdTV0lQX01JSV9DRkdfUkFURV9NQVNLXFx0MHg3MFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6ODA6I2RlZmluZSBHU1dJUF9NSUlfUENEVTBcXHRcXHRcXHQweDAxXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo4MTojZGVmaW5lIEdTV0lQX01JSV9QQ0RVMVxcdFxcdFxcdDB4MDNcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjgyOiNkZWZpbmUgR1NXSVBfTUlJX1BDRFU1XFx0XFx0XFx0MHgwNVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6ODM6I2RlZmluZSAgR1NXSVBfTUlJX1BDRFVfVFhETFlfTUFTS1xcdEdFTk1BU0soMiwgMClcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjg0OiNkZWZpbmUgIEdTV0lQX01JSV9QQ0RVX1JYRExZX01BU0tcXHRHRU5NQVNLKDksIDcpXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo4NTojZGVmaW5lICBHU1dJUF9NSUlfUENEVV9UWERMWSh4KVxcdHUxNl9lbmNvZGVfYml0cygoKHgpIC8gNTAwKSwgR1NXSVBfTUlJX1BDRFVfVFhETFlfTUFTSylcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjg2OiNkZWZpbmUgIEdTV0lQX01JSV9QQ0RVX1JYRExZKHgpXFx0dTE2X2VuY29kZV9iaXRzKCgoeCkgLyA1MDApLCBHU1dJUF9NSUlfUENEVV9SWERMWV9NQVNLKVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6ODc6I2RlZmluZSBHU1dJUF9NSUlfUENEVV9SWERMWV9ERUZBVUxUXFx0MjAwMCAvKiBwaWNvc2Vjb25kcyAqL1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6ODg6I2RlZmluZSBHU1dJUF9NSUlfUENEVV9UWERMWV9ERUZBVUxUXFx0MjAwMCAvKiBwaWNvc2Vjb25kcyAqL1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmgtODktXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo5MDovKiBHU1dJUCBDb3JlIFJlZ2lzdGVycyAqL1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6OTE6I2RlZmluZSBHU1dJUF9TV1JFU1xcdFxcdFxcdDB4MDAwXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo5MjojZGVmaW5lICBHU1dJUF9TV1JFU19SMVxcdFxcdFxcdEJJVCgxKVxcdC8qIEdTV0lQIFNvZnR3YXJlIHJlc2V0ICovXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo5MzojZGVmaW5lICBHU1dJUF9TV1JFU19SMFxcdFxcdFxcdEJJVCgwKVxcdC8qIEdTV0lQIEhhcmR3YXJlIHJlc2V0ICovXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo5NDojZGVmaW5lIEdTV0lQX1ZFUlNJT05cXHRcXHRcXHQweDAxM1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6OTU6I2RlZmluZSAgR1NXSVBfVkVSU0lPTl9SRVZfTUFTS1xcdFxcdEdFTk1BU0soNywgMClcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjk2OiNkZWZpbmUgIEdTV0lQX1ZFUlNJT05fTU9EX01BU0tcXHRcXHRHRU5NQVNLKDE1LCA4KVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6OTc6I2RlZmluZSAgR1NXSVBfVkVSU0lPTl9SRVYodilcXHRcXHRGSUVMRF9HRVQoR1NXSVBfVkVSU0lPTl9SRVZfTUFTSywgdilcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjk4OiNkZWZpbmUgIEdTV0lQX1ZFUlNJT05fTU9EKHYpXFx0XFx0RklFTERfR0VUKEdTV0lQX1ZFUlNJT05fTU9EX01BU0ssIHYpXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDo5OTojZGVmaW5lICAgR1NXSVBfVkVSU0lPTl8yXzBcXHRcXHQweDEwMFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTAwOiNkZWZpbmUgICBHU1dJUF9WRVJTSU9OXzJfMVxcdFxcdDB4MDIxXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxMDE6I2RlZmluZSAgIEdTV0lQX1ZFUlNJT05fMl8yXFx0XFx0MHgxMjJcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjEwMjojZGVmaW5lICAgR1NXSVBfVkVSU0lPTl8yXzJfRVRDXFx0XFx0MHgwMjJcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oLTEwMy0vKiBUaGUgaGFyZHdhcmUgaGFzIHRoZSAnbWFqb3IvbWlub3InIHZlcnNpb24gYnl0ZXMgaW4gdGhlIHdyb25nIG9yZGVyXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oLTEwOC0gKi9cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjEwOTojZGVmaW5lIEdTV0lQX1ZFUlNJT05fR0UocHJpdiwgdmVyKVxcdCgocHJpdiktXFx1MDAzZXZlcnNpb24gXFx1MDAzZT0gc3dhYjE2KHZlcikpXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaC0xMTAtXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxMTE6I2RlZmluZSBHU1dJUF9CTV9SQU1fVkFMKHgpXFx0XFx0KDB4MDQzIC0gKHgpKVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTEyOiNkZWZpbmUgR1NXSVBfQk1fUkFNX0FERFJcXHRcXHQweDA0NFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTEzOiNkZWZpbmUgR1NXSVBfQk1fUkFNX0NUUkxcXHRcXHQweDA0NVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTE0OiNkZWZpbmUgIEdTV0lQX0JNX1JBTV9DVFJMX0JBU1xcdFxcdEJJVCgxNSlcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjExNTojZGVmaW5lICBHU1dJUF9CTV9SQU1fQ1RSTF9PUE1PRFxcdEJJVCg1KVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTE2OiNkZWZpbmUgIEdTV0lQX0JNX1JBTV9DVFJMX0FERFJfTUFTS1xcdEdFTk1BU0soNCwgMClcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjExNzojZGVmaW5lIEdTV0lQX0JNX1FVRVVFX0dDVFJMXFx0XFx0MHgwNEFcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjExODojZGVmaW5lICBHU1dJUF9CTV9RVUVVRV9HQ1RSTF9HTF9NT0RcXHRCSVQoMTApXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaC0xMTktLyogYnVmZmVyIG1hbmFnZW1lbnQgUG9ydCBDb25maWd1cmF0aW9uIFJlZ2lzdGVyICovXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxMjA6I2RlZmluZSBHU1dJUF9CTV9QQ0ZHcChwKVxcdFxcdCgweDA4MCArICgocCkgKiAyKSlcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjEyMTojZGVmaW5lICBHU1dJUF9CTV9QQ0ZHX0NOVEVOXFx0XFx0QklUKDApXFx0LyogUk1PTiBDb3VudGVyIEVuYWJsZSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTIyOiNkZWZpbmUgIEdTV0lQX0JNX1BDRkdfSUdDTlRcXHRcXHRCSVQoMSlcXHQvKiBJbmdyZXMgU3BlY2lhbCBUYWcgUk1PTiBjb3VudCAqL1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmgtMTIzLS8qIGJ1ZmZlciBtYW5hZ2VtZW50IFBvcnQgQ29udHJvbCBSZWdpc3RlciAqL1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTI0OiNkZWZpbmUgR1NXSVBfQk1fUk1PTl9DVFJMcChwKVxcdFxcdCgweDgxICsgKChwKSAqIDIpKVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTI1OiNkZWZpbmUgIEdTV0lQX0JNX0NUUkxfUk1PTl9SQU0xX1JFU1xcdEJJVCgwKVxcdC8qIFNvZnR3YXJlIFJlc2V0IGZvciBSTU9OIFJBTSAxICovXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxMjY6I2RlZmluZSAgR1NXSVBfQk1fQ1RSTF9STU9OX1JBTTJfUkVTXFx0QklUKDEpXFx0LyogU29mdHdhcmUgUmVzZXQgZm9yIFJNT04gUkFNIDIgKi9cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oLTEyNy1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oLTEyOC0vKiBQQ0UgKi9cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjEyOTojZGVmaW5lIEdTV0lQX1BDRV9UQkxfS0VZKHgpXFx0XFx0KDB4NDQ3IC0gKHgpKVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTMwOiNkZWZpbmUgR1NXSVBfUENFX1RCTF9NQVNLXFx0XFx0MHg0NDhcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjEzMTojZGVmaW5lIEdTV0lQX1BDRV9UQkxfVkFMKHgpXFx0XFx0KDB4NDREIC0gKHgpKVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTMyOiNkZWZpbmUgR1NXSVBfUENFX1RCTF9BRERSXFx0XFx0MHg0NEVcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjEzMzojZGVmaW5lIEdTV0lQX1BDRV9UQkxfQ1RSTFxcdFxcdDB4NDRGXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxMzQ6I2RlZmluZSAgR1NXSVBfUENFX1RCTF9DVFJMX0JBU1xcdFxcdEJJVCgxNSlcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjEzNTojZGVmaW5lICBHU1dJUF9QQ0VfVEJMX0NUUkxfVFlQRVxcdEJJVCgxMylcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjEzNjojZGVmaW5lICBHU1dJUF9QQ0VfVEJMX0NUUkxfVkxEXFx0XFx0QklUKDEyKVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTM3OiNkZWZpbmUgIEdTV0lQX1BDRV9UQkxfQ1RSTF9LRVlGT1JNXFx0QklUKDExKVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTM4OiNkZWZpbmUgIEdTV0lQX1BDRV9UQkxfQ1RSTF9HTUFQX01BU0tcXHRHRU5NQVNLKDEwLCA3KVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTM5OiNkZWZpbmUgIEdTV0lQX1BDRV9UQkxfQ1RSTF9PUE1PRF9NQVNLXFx0R0VOTUFTSyg2LCA1KVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTQwOiNkZWZpbmUgIEdTV0lQX1BDRV9UQkxfQ1RSTF9PUE1PRF9BRFJEXFx0MHgwMFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTQxOiNkZWZpbmUgIEdTV0lQX1BDRV9UQkxfQ1RSTF9PUE1PRF9BRFdSXFx0MHgyMFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTQyOiNkZWZpbmUgIEdTV0lQX1BDRV9UQkxfQ1RSTF9PUE1PRF9LU1JEXFx0MHg0MFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTQzOiNkZWZpbmUgIEdTV0lQX1BDRV9UQkxfQ1RSTF9PUE1PRF9LU1dSXFx0MHg2MFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTQ0OiNkZWZpbmUgIEdTV0lQX1BDRV9UQkxfQ1RSTF9BRERSX01BU0tcXHRHRU5NQVNLKDQsIDApXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxNDU6I2RlZmluZSBHU1dJUF9QQ0VfUE1BUDFcXHRcXHRcXHQweDQ1M1xcdC8qIE1vbml0b3JpbmcgcG9ydCBtYXAgKi9cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE0NjojZGVmaW5lIEdTV0lQX1BDRV9QTUFQMlxcdFxcdFxcdDB4NDU0XFx0LyogRGVmYXVsdCBNdWx0aWNhc3QgcG9ydCBtYXAgKi9cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE0NzojZGVmaW5lIEdTV0lQX1BDRV9QTUFQM1xcdFxcdFxcdDB4NDU1XFx0LyogRGVmYXVsdCBVbmtub3duIFVuaWNhc3QgcG9ydCBtYXAgKi9cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE0ODojZGVmaW5lIEdTV0lQX1BDRV9HQ1RSTF8wXFx0XFx0MHg0NTZcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE0OTojZGVmaW5lICBHU1dJUF9QQ0VfR0NUUkxfMF9NVEZMXFx0XFx0QklUKDApICAvKiBNQUMgVGFibGUgRmx1c2hpbmcgKi9cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE1MDojZGVmaW5lICBHU1dJUF9QQ0VfR0NUUkxfMF9NQ19WQUxJRFxcdEJJVCgzKVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTUxOiNkZWZpbmUgIEdTV0lQX1BDRV9HQ1RSTF8wX1ZMQU5cXHRcXHRCSVQoMTQpIC8qIFZMQU4gYXdhcmUgU3dpdGNoaW5nICovXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxNTI6I2RlZmluZSBHU1dJUF9QQ0VfR0NUUkxfMVxcdFxcdDB4NDU3XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxNTM6I2RlZmluZSAgR1NXSVBfUENFX0dDVFJMXzFfTUFDX0dMT0NLXFx0QklUKDIpXFx0LyogTUFDIEFkZHJlc3MgdGFibGUgbG9jayAqL1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTU0OiNkZWZpbmUgIEdTV0lQX1BDRV9HQ1RSTF8xX01BQ19HTE9DS19NT0RcXHRCSVQoMykgLyogTWFjIGFkZHJlc3MgdGFibGUgbG9jayBmb3J3YXJkaW5nIG1vZGUgKi9cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE1NTojZGVmaW5lIEdTV0lQX1BDRV9QQ1RSTF8wcChwKVxcdFxcdCgweDQ4MCArICgocCkgKiAweEEpKVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTU2OiNkZWZpbmUgIEdTV0lQX1BDRV9QQ1RSTF8wX1RWTVxcdFxcdEJJVCg1KVxcdC8qIFRyYW5zcGFyZW50IFZMQU4gbW9kZSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTU3OiNkZWZpbmUgIEdTV0lQX1BDRV9QQ1RSTF8wX1ZSRVBcXHRcXHRCSVQoNilcXHQvKiBWTEFOIFJlcGxhY2UgTW9kZSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTU4OiNkZWZpbmUgIEdTV0lQX1BDRV9QQ1RSTF8wX0lOR1JFU1NcXHRCSVQoMTEpXFx0LyogQWNjZXB0IHNwZWNpYWwgdGFnIGluIGluZ3Jlc3MgKi9cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE1OTojZGVmaW5lICBHU1dJUF9QQ0VfUENUUkxfMF9QU1RBVEVfTElTVEVOXFx0MHgwXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxNjA6I2RlZmluZSAgR1NXSVBfUENFX1BDVFJMXzBfUFNUQVRFX1JYXFx0XFx0MHgxXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxNjE6I2RlZmluZSAgR1NXSVBfUENFX1BDVFJMXzBfUFNUQVRFX1RYXFx0XFx0MHgyXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxNjI6I2RlZmluZSAgR1NXSVBfUENFX1BDVFJMXzBfUFNUQVRFX0xFQVJOSU5HXFx0MHgzXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxNjM6I2RlZmluZSAgR1NXSVBfUENFX1BDVFJMXzBfUFNUQVRFX0ZPUldBUkRJTkdcXHQweDdcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE2NDojZGVmaW5lICBHU1dJUF9QQ0VfUENUUkxfMF9QU1RBVEVfTUFTS1xcdEdFTk1BU0soMiwgMClcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oLTE2NS0vKiBFdGhlcm5ldCBTd2l0Y2ggUENFIFBvcnQgQ29udHJvbCBSZWdpc3RlciAzICovXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxNjY6I2RlZmluZSBHU1dJUF9QQ0VfUENUUkxfM3AocClcXHRcXHQoMHg0ODMgKyAoKHApICogMHhBKSlcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE2NzojZGVmaW5lICBHU1dJUF9QQ0VfUENUUkxfM19MTkRJU1xcdEJJVCgxNSkgIC8qIExlYXJuaW5nIERpc2FibGUgKi9cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE2ODojZGVmaW5lIEdTV0lQX1BDRV9WQ1RSTChwKVxcdFxcdCgweDQ4NSArICgocCkgKiAweEEpKVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTY5OiNkZWZpbmUgIEdTV0lQX1BDRV9WQ1RSTF9VVlJcXHRcXHRCSVQoMClcXHQvKiBVbmtub3duIFZMQU4gUnVsZSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTcwOiNkZWZpbmUgIEdTV0lQX1BDRV9WQ1RSTF9WSU5SXFx0XFx0R0VOTUFTSygyLCAxKSAvKiBWTEFOIEluZ3Jlc3MgVGFnIFJ1bGUgKi9cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE3MTojZGVmaW5lICBHU1dJUF9QQ0VfVkNUUkxfVklOUl9BTExcXHQwIC8qIEFkbWl0IHRhZ2dlZCBhbmQgdW50YWdnZWQgcGFja2V0cyAqL1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTcyOiNkZWZpbmUgIEdTV0lQX1BDRV9WQ1RSTF9WSU5SX1RBR0dFRFxcdDEgLyogQWRtaXQgb25seSB0YWdnZWQgcGFja2V0cyAqL1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTczOiNkZWZpbmUgIEdTV0lQX1BDRV9WQ1RSTF9WSU5SX1VOVEFHR0VEXFx0MiAvKiBBZG1pdCBvbmx5IHVudGFnZ2VkIHBhY2tldHMgKi9cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE3NDojZGVmaW5lICBHU1dJUF9QQ0VfVkNUUkxfVklNUlxcdFxcdEJJVCgzKVxcdC8qIFZMQU4gSW5ncmVzcyBNZW1iZXIgdmlvbGF0aW9uIHJ1bGUgKi9cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE3NTojZGVmaW5lICBHU1dJUF9QQ0VfVkNUUkxfVkVNUlxcdFxcdEJJVCg0KVxcdC8qIFZMQU4gRWdyZXNzIE1lbWJlciB2aW9sYXRpb24gcnVsZSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTc2OiNkZWZpbmUgIEdTV0lQX1BDRV9WQ1RSTF9WU1JcXHRcXHRCSVQoNSlcXHQvKiBWTEFOIFNlY3VyaXR5ICovXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxNzc6I2RlZmluZSAgR1NXSVBfUENFX1ZDVFJMX1ZJRDBcXHRcXHRCSVQoNilcXHQvKiBQcmlvcml0eSBUYWdnZWQgUnVsZSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTc4OiNkZWZpbmUgR1NXSVBfUENFX0RFRlBWSUQocClcXHRcXHQoMHg0ODYgKyAoKHApICogMHhBKSlcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oLTE3OS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE4MDojZGVmaW5lIEdTV0lQX01BQ19GTEVOXFx0XFx0XFx0MHg4QzVcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE4MTojZGVmaW5lIEdTV0lQX01BQ19DVFJMXzBwKHApXFx0XFx0KDB4OTAzICsgKChwKSAqIDB4QykpXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxODI6I2RlZmluZSAgR1NXSVBfTUFDX0NUUkxfMF9QQURFTlxcdFxcdEJJVCg4KVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTgzOiNkZWZpbmUgIEdTV0lQX01BQ19DVFJMXzBfRkNTX0VOXFx0QklUKDcpXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxODQ6I2RlZmluZSAgR1NXSVBfTUFDX0NUUkxfMF9GQ09OX01BU0tcXHQweDAwNzBcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE4NTojZGVmaW5lICBHU1dJUF9NQUNfQ1RSTF8wX0ZDT05fQVVUT1xcdDB4MDAwMFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTg2OiNkZWZpbmUgIEdTV0lQX01BQ19DVFJMXzBfRkNPTl9SWFxcdDB4MDAxMFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTg3OiNkZWZpbmUgIEdTV0lQX01BQ19DVFJMXzBfRkNPTl9UWFxcdDB4MDAyMFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTg4OiNkZWZpbmUgIEdTV0lQX01BQ19DVFJMXzBfRkNPTl9SWFRYXFx0MHgwMDMwXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxODk6I2RlZmluZSAgR1NXSVBfTUFDX0NUUkxfMF9GQ09OX05PTkVcXHQweDAwNDBcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE5MDojZGVmaW5lICBHU1dJUF9NQUNfQ1RSTF8wX0ZEVVBfTUFTS1xcdDB4MDAwQ1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTkxOiNkZWZpbmUgIEdTV0lQX01BQ19DVFJMXzBfRkRVUF9BVVRPXFx0MHgwMDAwXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxOTI6I2RlZmluZSAgR1NXSVBfTUFDX0NUUkxfMF9GRFVQX0VOXFx0MHgwMDA0XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxOTM6I2RlZmluZSAgR1NXSVBfTUFDX0NUUkxfMF9GRFVQX0RJU1xcdDB4MDAwQ1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTk0OiNkZWZpbmUgIEdTV0lQX01BQ19DVFJMXzBfR01JSV9NQVNLXFx0MHgwMDAzXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxOTU6I2RlZmluZSAgR1NXSVBfTUFDX0NUUkxfMF9HTUlJX0FVVE9cXHQweDAwMDBcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjE5NjojZGVmaW5lICBHU1dJUF9NQUNfQ1RSTF8wX0dNSUlfTUlJXFx0MHgwMDAxXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxOTc6I2RlZmluZSAgR1NXSVBfTUFDX0NUUkxfMF9HTUlJX1JHTUlJXFx0MHgwMDAyXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoxOTg6I2RlZmluZSBHU1dJUF9NQUNfQ1RSTF8ycChwKVxcdFxcdCgweDkwNSArICgocCkgKiAweEMpKVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MTk5OiNkZWZpbmUgR1NXSVBfTUFDX0NUUkxfMl9MQ0hLTFxcdFxcdEJJVCgyKSAvKiBGcmFtZSBMZW5ndGggQ2hlY2sgTG9uZyBFbmFibGUgKi9cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjIwMDojZGVmaW5lIEdTV0lQX01BQ19DVFJMXzJfTUxFTlxcdFxcdEJJVCgzKSAvKiBNYXhpbXVtIFVudGFnZ2VkIEZyYW1lIExuZWd0aCAqL1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjAxOiNkZWZpbmUgR1NXSVBfTUFDX0NUUkxfNHAocClcXHRcXHQoMHg5MDcgKyAoKHApICogMHhDKSlcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjIwMjojZGVmaW5lICBHU1dJUF9NQUNfQ1RSTF80X0xQSUVOXFx0XFx0QklUKDcpIC8qIExQSSBNb2RlIEVuYWJsZSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjAzOiNkZWZpbmUgIEdTV0lQX01BQ19DVFJMXzRfR1dBSVRfTUFTS1xcdEdFTk1BU0soMTQsIDgpIC8qIExQSSBXYWl0IFRpbWUgMUcgKi9cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjIwNDojZGVmaW5lICBHU1dJUF9NQUNfQ1RSTF80X0dXQUlUKHQpXFx0dTE2X2VuY29kZV9iaXRzKCh0KSwgR1NXSVBfTUFDX0NUUkxfNF9HV0FJVF9NQVNLKVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjA1OiNkZWZpbmUgIEdTV0lQX01BQ19DVFJMXzRfV0FJVF9NQVNLXFx0R0VOTUFTSyg2LCAwKSAvKiBMUEkgV2FpdCBUaW1lIDEwME0gKi9cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjIwNjojZGVmaW5lICBHU1dJUF9NQUNfQ1RSTF80X1dBSVQodClcXHR1MTZfZW5jb2RlX2JpdHMoKHQpLCBHU1dJUF9NQUNfQ1RSTF80X1dBSVRfTUFTSylcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oLTIwNy1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oLTIwOC0vKiBFdGhlcm5ldCBTd2l0Y2ggRmV0Y2ggRE1BIFBvcnQgQ29udHJvbCBSZWdpc3RlciAqL1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjA5OiNkZWZpbmUgR1NXSVBfRkRNQV9QQ1RSTHAocClcXHRcXHQoMHhBODAgKyAoKHApICogMHg2KSlcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjIxMDojZGVmaW5lICBHU1dJUF9GRE1BX1BDVFJMX0VOXFx0XFx0QklUKDApXFx0LyogRkRNQSBQb3J0IEVuYWJsZSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjExOiNkZWZpbmUgIEdTV0lQX0ZETUFfUENUUkxfU1RFTlxcdFxcdEJJVCgxKVxcdC8qIFNwZWNpYWwgVGFnIEluc2VydGlvbiBFbmFibGUgKi9cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjIxMjojZGVmaW5lICBHU1dJUF9GRE1BX1BDVFJMX1ZMQU5NT0RfTUFTS1xcdEdFTk1BU0soNCwgMylcXHQvKiBWTEFOIE1vZGlmaWNhdGlvbiBDb250cm9sICovXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoyMTM6I2RlZmluZSAgR1NXSVBfRkRNQV9QQ1RSTF9WTEFOTU9EX1NISUZUXFx0M1xcdC8qIFZMQU4gTW9kaWZpY2F0aW9uIENvbnRyb2wgKi9cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjIxNDojZGVmaW5lICBHU1dJUF9GRE1BX1BDVFJMX1ZMQU5NT0RfRElTXFx0KDB4MCBcXHUwMDNjXFx1MDAzYyBHU1dJUF9GRE1BX1BDVFJMX1ZMQU5NT0RfU0hJRlQpXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoyMTU6I2RlZmluZSAgR1NXSVBfRkRNQV9QQ1RSTF9WTEFOTU9EX1BSSU9cXHQoMHgxIFxcdTAwM2NcXHUwMDNjIEdTV0lQX0ZETUFfUENUUkxfVkxBTk1PRF9TSElGVClcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjIxNjojZGVmaW5lICBHU1dJUF9GRE1BX1BDVFJMX1ZMQU5NT0RfSURcXHQoMHgyIFxcdTAwM2NcXHUwMDNjIEdTV0lQX0ZETUFfUENUUkxfVkxBTk1PRF9TSElGVClcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjIxNzojZGVmaW5lICBHU1dJUF9GRE1BX1BDVFJMX1ZMQU5NT0RfQk9USFxcdCgweDMgXFx1MDAzY1xcdTAwM2MgR1NXSVBfRkRNQV9QQ1RSTF9WTEFOTU9EX1NISUZUKVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmgtMjE4LVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmgtMjE5LS8qIEV0aGVybmV0IFN3aXRjaCBTdG9yZSBETUEgUG9ydCBDb250cm9sIFJlZ2lzdGVyICovXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoyMjA6I2RlZmluZSBHU1dJUF9TRE1BX1BDVFJMcChwKVxcdFxcdCgweEJDMCArICgocCkgKiAweDYpKVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjIxOiNkZWZpbmUgIEdTV0lQX1NETUFfUENUUkxfRU5cXHRcXHRCSVQoMClcXHQvKiBTRE1BIFBvcnQgRW5hYmxlICovXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoyMjI6I2RlZmluZSAgR1NXSVBfU0RNQV9QQ1RSTF9GQ0VOXFx0XFx0QklUKDEpXFx0LyogRmxvdyBDb250cm9sIEVuYWJsZSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjIzOiNkZWZpbmUgIEdTV0lQX1NETUFfUENUUkxfUEFVRldEXFx0QklUKDMpXFx0LyogUGF1c2UgRnJhbWUgRm9yd2FyZGluZyAqL1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmgtMjI0LVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjI1OiNkZWZpbmUgR1NXSVBfVEFCTEVfQUNUSVZFX1ZMQU5cXHRcXHQweDAxXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoyMjY6I2RlZmluZSBHU1dJUF9UQUJMRV9WTEFOX01BUFBJTkdcXHQweDAyXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoyMjc6I2RlZmluZSBHU1dJUF9UQUJMRV9NQUNfQlJJREdFXFx0XFx0MHgwYlxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjI4OiNkZWZpbmUgIEdTV0lQX1RBQkxFX01BQ19CUklER0VfS0VZM19GSURcXHRHRU5NQVNLKDUsIDApXFx0LyogRmlsdGVyaW5nIGlkZW50aWZpZXIgKi9cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjIyOTojZGVmaW5lICBHU1dJUF9UQUJMRV9NQUNfQlJJREdFX1ZBTDBfUE9SVFxcdEdFTk1BU0soNywgNClcXHQvKiBQb3J0IG9uIGxlYXJuZWQgZW50cmllcyAqL1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjMwOiNkZWZpbmUgIEdTV0lQX1RBQkxFX01BQ19CUklER0VfVkFMMV9TVEFUSUNcXHRCSVQoMClcXHRcXHQvKiBTdGF0aWMsIG5vbi1hZ2luZyBlbnRyeSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjMxOiNkZWZpbmUgIEdTV0lQX1RBQkxFX01BQ19CUklER0VfVkFMMV9WQUxJRFxcdEJJVCgxKVxcdFxcdC8qIFZhbGlkIGJpdCAqL1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmgtMjMyLVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaC0yNDEtICovXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoyNDI6I2RlZmluZSBHU1dJUF9NQVhfUEFDS0VUX0xFTkdUSFxcdDI0MDBcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oLTI0My1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjI0NDojZGVmaW5lIEdTV0lQX1ZMQU5fVU5BV0FSRV9QVklEXFx0MFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmgtMjQ1LVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjQ2OiNkZWZpbmUgR1NXSVBfTUFYX1BPUlRTXFx0XFx0N1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmgtMjQ3LVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaD0yNTU9c3RydWN0IGdzd2lwX2h3X2luZm8ge1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaC0yNTctXFx0dW5zaWduZWQgaW50IGFsbG93ZWRfY3B1X3BvcnRzO1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg6MjU4OlxcdHMxNiBtaWlfY2ZnW0dTV0lQX01BWF9QT1JUU107XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaDoyNTk6XFx0czE2IG1paV9wY2R1W0dTV0lQX01BWF9QT1JUU107XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuaC0yNjAtXFx0Ym9vbCBzdXBwb3J0c18yNTAwbTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmg9MzAwPWludCBnc3dpcF9wcm9iZV9jb21tb24oc3RydWN0IGdzd2lwX3ByaXYgKnByaXYsIHUzMiB2ZXJzaW9uKTtcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oLTMwMS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcC5oOjMwMjojZW5kaWYgLyogX19MQU5USVFfR1NXSVBfSCAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMi0vKlxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjM6ICogTGFudGlxIC8gSW50ZWwgLyBNYXhMaW5lYXIgR1NXSVAgY29tbW9uIGZ1bmN0aW9uIGxpYnJhcnlcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy00LSAqXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0xMS0gKlxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjEyOiAqIFRoZSBWTEFOIGFuZCBicmlkZ2UgbW9kZWwgdGhlIEdTV0lQIGhhcmR3YXJlIHVzZXMgZG9lcyBub3QgZGlyZWN0bHlcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0xMy0gKiBtYXRjaGVzIHRoZSBtb2RlbCBEU0EgdXNlcy5cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jPTEyOT1zdGF0aWMgaW50IGdzd2lwX21kaW9fcG9sbChzdHJ1Y3QgZ3N3aXBfcHJpdiAqcHJpdilcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTEzMi1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzoxMzM6XFx0cmV0dXJuIHJlZ21hcF9yZWFkX3BvbGxfdGltZW91dChwcml2LVxcdTAwM2VtZGlvLCBHU1dJUF9NRElPX0NUUkwsIGN0cmwsXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MTM0OlxcdFxcdFxcdFxcdFxcdCEoY3RybCBcXHUwMDI2IEdTV0lQX01ESU9fQ1RSTF9CVVNZKSwgNDAsIDQwMDApO1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTEzNS19XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYz0xMzc9c3RhdGljIGludCBnc3dpcF9tZGlvX3dyKHN0cnVjdCBtaWlfYnVzICpidXMsIGludCBhZGRyLCBpbnQgcmVnLCB1MTYgdmFsKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMTQ3LVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjE0ODpcXHRyZWdtYXBfd3JpdGUocHJpdi1cXHUwMDNlbWRpbywgR1NXSVBfTURJT19XUklURSwgdmFsKTtcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzoxNDk6XFx0cmVnbWFwX3dyaXRlKHByaXYtXFx1MDAzZW1kaW8sIEdTV0lQX01ESU9fQ1RSTCxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzoxNTA6XFx0XFx0ICAgICBHU1dJUF9NRElPX0NUUkxfQlVTWSB8IEdTV0lQX01ESU9fQ1RSTF9XUiB8XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MTUxOlxcdFxcdCAgICAgKChhZGRyIFxcdTAwMjYgR1NXSVBfTURJT19DVFJMX1BIWUFEX01BU0spIFxcdTAwM2NcXHUwMDNjIEdTV0lQX01ESU9fQ1RSTF9QSFlBRF9TSElGVCkgfFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjE1MjpcXHRcXHQgICAgIChyZWcgXFx1MDAyNiBHU1dJUF9NRElPX0NUUkxfUkVHQURfTUFTSykpO1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTE1My1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jPTE1Nz1zdGF0aWMgaW50IGdzd2lwX21kaW9fcmQoc3RydWN0IG1paV9idXMgKmJ1cywgaW50IGFkZHIsIGludCByZWcpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0xNjgtXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MTY5OlxcdHJlZ21hcF93cml0ZShwcml2LVxcdTAwM2VtZGlvLCBHU1dJUF9NRElPX0NUUkwsXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MTcwOlxcdFxcdCAgICAgR1NXSVBfTURJT19DVFJMX0JVU1kgfCBHU1dJUF9NRElPX0NUUkxfUkQgfFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjE3MTpcXHRcXHQgICAgICgoYWRkciBcXHUwMDI2IEdTV0lQX01ESU9fQ1RSTF9QSFlBRF9NQVNLKSBcXHUwMDNjXFx1MDAzYyBHU1dJUF9NRElPX0NUUkxfUEhZQURfU0hJRlQpIHxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzoxNzI6XFx0XFx0ICAgICAocmVnIFxcdTAwMjYgR1NXSVBfTURJT19DVFJMX1JFR0FEX01BU0spKTtcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0xNzMtXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0xNzktXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MTgwOlxcdGVyciA9IHJlZ21hcF9yZWFkKHByaXYtXFx1MDAzZW1kaW8sIEdTV0lQX01ESU9fUkVBRCwgXFx1MDAyNnZhbCk7XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMTgxLVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYz0yMjI9c3RhdGljIGludCBnc3dpcF9wY2VfdGFibGVfZW50cnlfcmVhZChzdHJ1Y3QgZ3N3aXBfcHJpdiAqcHJpdixcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTIyOC1cXHR1MzIgdG1wO1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjIyOTpcXHR1MTYgYWRkcl9tb2RlID0gdGJsLVxcdTAwM2VrZXlfbW9kZSA/IEdTV0lQX1BDRV9UQkxfQ1RSTF9PUE1PRF9LU1JEIDpcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzoyMzA6XFx0XFx0XFx0XFx0XFx0R1NXSVBfUENFX1RCTF9DVFJMX09QTU9EX0FEUkQ7XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMjMxLVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMjMzLVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjIzNDpcXHRlcnIgPSBnc3dpcF9zd2l0Y2hfcl90aW1lb3V0KHByaXYsIEdTV0lQX1BDRV9UQkxfQ1RSTCxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzoyMzU6XFx0XFx0XFx0XFx0ICAgICBHU1dJUF9QQ0VfVEJMX0NUUkxfQkFTKTtcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0yMzYtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTIzOC1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzoyMzk6XFx0cmVnbWFwX3dyaXRlKHByaXYtXFx1MDAzZWdzd2lwLCBHU1dJUF9QQ0VfVEJMX0FERFIsIHRibC1cXHUwMDNlaW5kZXgpO1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjI0MDpcXHRyZWdtYXBfd3JpdGVfYml0cyhwcml2LVxcdTAwM2Vnc3dpcCwgR1NXSVBfUENFX1RCTF9DVFJMLFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjI0MTpcXHRcXHRcXHQgIEdTV0lQX1BDRV9UQkxfQ1RSTF9BRERSX01BU0sgfFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjI0MjpcXHRcXHRcXHQgIEdTV0lQX1BDRV9UQkxfQ1RSTF9PUE1PRF9NQVNLIHxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzoyNDM6XFx0XFx0XFx0ICBHU1dJUF9QQ0VfVEJMX0NUUkxfQkFTLFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjI0NDpcXHRcXHRcXHQgIHRibC1cXHUwMDNldGFibGUgfCBhZGRyX21vZGUgfCBHU1dJUF9QQ0VfVEJMX0NUUkxfQkFTKTtcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0yNDUtXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MjQ2OlxcdGVyciA9IGdzd2lwX3N3aXRjaF9yX3RpbWVvdXQocHJpdiwgR1NXSVBfUENFX1RCTF9DVFJMLFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjI0NzpcXHRcXHRcXHRcXHQgICAgIEdTV0lQX1BDRV9UQkxfQ1RSTF9CQVMpO1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTI0OC1cXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMjUxLVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBBUlJBWV9TSVpFKHRibC1cXHUwMDNla2V5KTsgaSsrKSB7XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MjUyOlxcdFxcdGVyciA9IHJlZ21hcF9yZWFkKHByaXYtXFx1MDAzZWdzd2lwLCBHU1dJUF9QQ0VfVEJMX0tFWShpKSwgXFx1MDAyNnRtcCk7XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMjUzLVxcdFxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0yNTctXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIEFSUkFZX1NJWkUodGJsLVxcdTAwM2V2YWwpOyBpKyspIHtcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzoyNTg6XFx0XFx0ZXJyID0gcmVnbWFwX3JlYWQocHJpdi1cXHUwMDNlZ3N3aXAsIEdTV0lQX1BDRV9UQkxfVkFMKGkpLCBcXHUwMDI2dG1wKTtcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0yNTktXFx0XFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTI2My1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzoyNjQ6XFx0ZXJyID0gcmVnbWFwX3JlYWQocHJpdi1cXHUwMDNlZ3N3aXAsIEdTV0lQX1BDRV9UQkxfTUFTSywgXFx1MDAyNnRtcCk7XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMjY1LVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0yNjgtXFx0dGJsLVxcdTAwM2VtYXNrID0gdG1wO1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjI2OTpcXHRlcnIgPSByZWdtYXBfcmVhZChwcml2LVxcdTAwM2Vnc3dpcCwgR1NXSVBfUENFX1RCTF9DVFJMLCBcXHUwMDI2Y3J0bCk7XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMjcwLVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0yNzItXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MjczOlxcdHRibC1cXHUwMDNldHlwZSA9ICEhKGNydGwgXFx1MDAyNiBHU1dJUF9QQ0VfVEJMX0NUUkxfVFlQRSk7XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6Mjc0OlxcdHRibC1cXHUwMDNldmFsaWQgPSAhIShjcnRsIFxcdTAwMjYgR1NXSVBfUENFX1RCTF9DVFJMX1ZMRCk7XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6Mjc1OlxcdHRibC1cXHUwMDNlZ21hcCA9IChjcnRsIFxcdTAwMjYgR1NXSVBfUENFX1RCTF9DVFJMX0dNQVBfTUFTSykgXFx1MDAzZVxcdTAwM2UgNztcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0yNzYtXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYz0yODM9c3RhdGljIGludCBnc3dpcF9wY2VfdGFibGVfZW50cnlfd3JpdGUoc3RydWN0IGdzd2lwX3ByaXYgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0yODgtXFx0dTMyIGNydGw7XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6Mjg5OlxcdHUxNiBhZGRyX21vZGUgPSB0YmwtXFx1MDAzZWtleV9tb2RlID8gR1NXSVBfUENFX1RCTF9DVFJMX09QTU9EX0tTV1IgOlxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjI5MDpcXHRcXHRcXHRcXHRcXHRHU1dJUF9QQ0VfVEJMX0NUUkxfT1BNT0RfQURXUjtcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0yOTEtXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0yOTMtXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6Mjk0OlxcdGVyciA9IGdzd2lwX3N3aXRjaF9yX3RpbWVvdXQocHJpdiwgR1NXSVBfUENFX1RCTF9DVFJMLFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjI5NTpcXHRcXHRcXHRcXHQgICAgIEdTV0lQX1BDRV9UQkxfQ1RSTF9CQVMpO1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTI5Ni1cXHRpZiAoZXJyKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0zMDAtXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MzAxOlxcdHJlZ21hcF93cml0ZShwcml2LVxcdTAwM2Vnc3dpcCwgR1NXSVBfUENFX1RCTF9BRERSLCB0YmwtXFx1MDAzZWluZGV4KTtcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzozMDI6XFx0cmVnbWFwX3dyaXRlX2JpdHMocHJpdi1cXHUwMDNlZ3N3aXAsIEdTV0lQX1BDRV9UQkxfQ1RSTCxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzozMDM6XFx0XFx0XFx0ICBHU1dJUF9QQ0VfVEJMX0NUUkxfQUREUl9NQVNLIHxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzozMDQ6XFx0XFx0XFx0ICBHU1dJUF9QQ0VfVEJMX0NUUkxfT1BNT0RfTUFTSyxcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0zMDUtXFx0XFx0XFx0ICB0YmwtXFx1MDAzZXRhYmxlIHwgYWRkcl9tb2RlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTMwNy1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVJSQVlfU0laRSh0YmwtXFx1MDAzZWtleSk7IGkrKylcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzozMDg6XFx0XFx0cmVnbWFwX3dyaXRlKHByaXYtXFx1MDAzZWdzd2lwLCBHU1dJUF9QQ0VfVEJMX0tFWShpKSwgdGJsLVxcdTAwM2VrZXlbaV0pO1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTMwOS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0zMTAtXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIEFSUkFZX1NJWkUodGJsLVxcdTAwM2V2YWwpOyBpKyspXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MzExOlxcdFxcdHJlZ21hcF93cml0ZShwcml2LVxcdTAwM2Vnc3dpcCwgR1NXSVBfUENFX1RCTF9WQUwoaSksIHRibC1cXHUwMDNldmFsW2ldKTtcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0zMTItXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MzEzOlxcdHJlZ21hcF93cml0ZV9iaXRzKHByaXYtXFx1MDAzZWdzd2lwLCBHU1dJUF9QQ0VfVEJMX0NUUkwsXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MzE0OlxcdFxcdFxcdCAgR1NXSVBfUENFX1RCTF9DVFJMX0FERFJfTUFTSyB8XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MzE1OlxcdFxcdFxcdCAgR1NXSVBfUENFX1RCTF9DVFJMX09QTU9EX01BU0ssXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMzE2LVxcdFxcdFxcdCAgdGJsLVxcdTAwM2V0YWJsZSB8IGFkZHJfbW9kZSk7XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMzE3LVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjMxODpcXHRyZWdtYXBfd3JpdGUocHJpdi1cXHUwMDNlZ3N3aXAsIEdTV0lQX1BDRV9UQkxfTUFTSywgdGJsLVxcdTAwM2VtYXNrKTtcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0zMTktXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MzIwOlxcdHJlZ21hcF9yZWFkKHByaXYtXFx1MDAzZWdzd2lwLCBHU1dJUF9QQ0VfVEJMX0NUUkwsIFxcdTAwMjZjcnRsKTtcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzozMjE6XFx0Y3J0bCBcXHUwMDI2PSB+KEdTV0lQX1BDRV9UQkxfQ1RSTF9UWVBFIHwgR1NXSVBfUENFX1RCTF9DVFJMX1ZMRCB8XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MzIyOlxcdFxcdCAgR1NXSVBfUENFX1RCTF9DVFJMX0dNQVBfTUFTSyk7XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMzIzLVxcdGlmICh0YmwtXFx1MDAzZXR5cGUpXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MzI0OlxcdFxcdGNydGwgfD0gR1NXSVBfUENFX1RCTF9DVFJMX1RZUEU7XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMzI1LVxcdGlmICh0YmwtXFx1MDAzZXZhbGlkKVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjMyNjpcXHRcXHRjcnRsIHw9IEdTV0lQX1BDRV9UQkxfQ1RSTF9WTEQ7XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MzI3OlxcdGNydGwgfD0gKHRibC1cXHUwMDNlZ21hcCBcXHUwMDNjXFx1MDAzYyA3KSBcXHUwMDI2IEdTV0lQX1BDRV9UQkxfQ1RSTF9HTUFQX01BU0s7XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MzI4OlxcdGNydGwgfD0gR1NXSVBfUENFX1RCTF9DVFJMX0JBUztcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzozMjk6XFx0cmVnbWFwX3dyaXRlKHByaXYtXFx1MDAzZWdzd2lwLCBHU1dJUF9QQ0VfVEJMX0NUUkwsIGNydGwpO1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTMzMC1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzozMzE6XFx0ZXJyID0gZ3N3aXBfc3dpdGNoX3JfdGltZW91dChwcml2LCBHU1dJUF9QQ0VfVEJMX0NUUkwsXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MzMyOlxcdFxcdFxcdFxcdCAgICAgR1NXSVBfUENFX1RCTF9DVFJMX0JBUyk7XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMzMzLVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM9MzQ0PXN0YXRpYyBpbnQgZ3N3aXBfYWRkX3NpbmdsZV9wb3J0X2JyKHN0cnVjdCBnc3dpcF9wcml2ICpwcml2LCBpbnQgcG9ydCwgYm9vbCBhZGQpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0zNTAtXFx0dmxhbl9hY3RpdmUuaW5kZXggPSBwb3J0ICsgMTtcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzozNTE6XFx0dmxhbl9hY3RpdmUudGFibGUgPSBHU1dJUF9UQUJMRV9BQ1RJVkVfVkxBTjtcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzozNTI6XFx0dmxhbl9hY3RpdmUua2V5WzBdID0gR1NXSVBfVkxBTl9VTkFXQVJFX1BWSUQ7XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMzUzLVxcdHZsYW5fYWN0aXZlLnZhbFswXSA9IHBvcnQgKyAxIC8qIGZpZCAqLztcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTM2NC1cXHR2bGFuX21hcHBpbmcuaW5kZXggPSBwb3J0ICsgMTtcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzozNjU6XFx0dmxhbl9tYXBwaW5nLnRhYmxlID0gR1NXSVBfVEFCTEVfVkxBTl9NQVBQSU5HO1xcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wN1QxODoyMDowNy43MTQzNjY3MTNaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoxODUzNDI1ODAxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipBbmFseXppbmcgdGhlIExhbnRpcSBEU0EgRHJpdmVyIENvbmZpZ3VyYXRpb24qKlxuXG5SaWdodCwgbGV0J3MgZGl2ZSBpbnRvIHRoZSBgZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9LY29uZmlnYCBmaWxlLiBJIG5lZWQgYSBjbGVhciBwaWN0dXJlIG9mIHdoYXQncyBnb2luZyBvbiB3aXRoaW4gdGhhdCBkaXJlY3RvcnkuIEkgd2FudCB0byBzZWUgdGhlIGNvbXBsZXRlIHNldCBvZiBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXZhaWxhYmxlIGZvciB0aGUgTGFudGlxIERTQSBkcml2ZXJzLiBVbmRlcnN0YW5kaW5nIHRoZSBLY29uZmlnIHN0cnVjdHVyZSBpcyBrZXkuIFRoaXMgd2lsbCBxdWlja2x5IGV4cG9zZSB0aGUgZGVwZW5kZW5jaWVzLCByZWxhdGlvbnNoaXBzIGJldHdlZW4gdGhlIHZhcmlvdXMgZmVhdHVyZXMsIGFuZCBob3cgdGhleSBhcmUgbG9naWNhbGx5IGdyb3VwZWQuIEknbSBlc3BlY2lhbGx5IGludGVyZXN0ZWQgaW4gYW55IHBsYXRmb3JtLXNwZWNpZmljIHN3aXRjaGVzIGFuZCBob3cgdGhlIHZhcmlvdXMgZmVhdHVyZXMgYXJlIGVuYWJsZWQgYW5kIGRpc2FibGVkLiBLbm93aW5nIHRoZSBvcmdhbml6YXRpb24gb2YgdGhlIEtjb25maWcgYWxzbyB0ZWxscyBtZSB0aGUgb3ZlcmFsbCBkcml2ZXIgYXJjaGl0ZWN0dXJlLiBMZXQncyBzZWUgaG93IHdlbGwgaXQncyBkZXNpZ25lZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjM5NTksIk91dHB1dFRva2VucyI6NDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wN1QxODoyMDowOS41Njc3OTQ2ODRaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NjcwMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC9kc2EvbGFudGlxL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogMTAwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0Y29uZmlnIE5FVF9EU0FfTEFOVElRX0NPTU1PTlxcbiAgIDI6XFx0XFx0dHJpc3RhdGVcXG4gICAzOlxcdFxcdHNlbGVjdCBSRUdNQVBcXG4gICA0OlxcdFxcbiAgIDU6XFx0Y29uZmlnIE5FVF9EU0FfTEFOVElRX0dTV0lQXFxuICAgNjpcXHRcXHR0cmlzdGF0ZSBcXFwiTGFudGlxIC8gSW50ZWwgR1NXSVBcXFwiXFxuICAgNzpcXHRcXHRkZXBlbmRzIG9uIEhBU19JT01FTVxcbiAgIDg6XFx0XFx0c2VsZWN0IE5FVF9EU0FfVEFHX0dTV0lQXFxuICAgOTpcXHRcXHRzZWxlY3QgTkVUX0RTQV9MQU5USVFfQ09NTU9OXFxuICAxMDpcXHRcXHRoZWxwXFxuICAxMTpcXHRcXHQgIFRoaXMgZW5hYmxlcyBzdXBwb3J0IGZvciB0aGUgTGFudGlxIC8gSW50ZWwgR1NXSVAgMi4xIGZvdW5kIGluXFxuICAxMjpcXHRcXHQgIHRoZSB4cngyMDAgLyBWUjkgU29DLlxcbiAgMTM6XFx0XFxuICAxNDpcXHRjb25maWcgTkVUX0RTQV9NWExfR1NXMVhYXFxuICAxNTpcXHRcXHR0cmlzdGF0ZSBcXFwiTWF4TGluZWFyIEdTVzF4eCBFdGhlcm5ldCBzd2l0Y2ggc3VwcG9ydFxcXCJcXG4gIDE2OlxcdFxcdHNlbGVjdCBORVRfRFNBX1RBR19NWExfR1NXMVhYXFxuICAxNzpcXHRcXHRzZWxlY3QgTkVUX0RTQV9MQU5USVFfQ09NTU9OXFxuICAxODpcXHRcXHRzZWxlY3QgUEhZX0NPTU1PTl9QUk9QU1xcbiAgMTk6XFx0XFx0aGVscFxcbiAgMjA6XFx0XFx0ICBUaGlzIGVuYWJsZXMgc3VwcG9ydCBmb3IgdGhlIEludGVsL01heExpbmVhciBHU1cxeHggZmFtaWx5IG9mIDFHRVxcbiAgMjE6XFx0XFx0ICBzd2l0Y2hlcy5cXG4gIDIyOlxcdFxcdCAgICBHU1cxMjAgNCBwb3J0LCAyIFBIWXMsIFJHTUlJIFxcdTAwMjYgU0dNSUkvMjUwMEJhc2UtWFxcbiAgMjM6XFx0XFx0ICAgIEdTVzEyNSA0IHBvcnQsIDIgUEhZcywgUkdNSUkgXFx1MDAyNiBTR01JSS8yNTAwQmFzZS1YLCBpbmR1c3RyaWFsIHRlbXBlcmF0dXJlXFxuICAyNDpcXHRcXHQgICAgR1NXMTQwIDYgcG9ydCwgNCBQSFlzLCBSR01JSSBcXHUwMDI2IFNHTUlJLzI1MDBCYXNlLVhcXG4gIDI1OlxcdFxcdCAgICBHU1cxNDEgNiBwb3J0LCA0IFBIWXMsIFJHTUlJIFxcdTAwMjYgU0dNSUlcXG4gIDI2OlxcdFxcdCAgICBHU1cxNDUgNiBwb3J0LCA0IFBIWXMsIFJHTUlJIFxcdTAwMjYgU0dNSUkvMjUwMEJhc2UtWCwgaW5kdXN0cmlhbCB0ZW1wZXJhdHVyZVxcbiAgMjc6XFx0XFx0ICAgIEdTVzE1MCA3IHBvcnQsIDUgUEhZcywgMXggR01JSS9SR01JSSwgMXggUkdNSUlcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDdUMTg6MjA6MDkuNTY3ODUzNjk0WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6NTU1ODg3NjA5MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoaWNoIHNwZWNpZmljIGJ1c2VzIG9yIGludGVyZmFjZXMgYXJlIHVzZWQgd2l0aCB0aGUgYE5FVF9EU0FfTEFOVElRX0dTV0lQYCBhbmQgYE5FVF9EU0FfTVhMX0dTVzFYWGAgRFNBIChEaXN0cmlidXRlZCBTd2l0Y2ggQXJjaGl0ZWN0dXJlKSBkcml2ZXJzLiBNeSBmaXJzdCB0aG91Z2h0IGlzIHRvIHRyYWNlIHRoZSBpbnN0YW50aWF0aW9uLiBJJ2xsIG5lZWQgdG8gZmlndXJlIG91dCB3aGVyZSB0aGVzZSBhcmUgY29taW5nIGZyb20uIFRoZSBiZXN0IHBsYWNlIHRvIHN0YXJ0IGlzIHRvIHNlYXJjaCBmb3IgdGhlc2UgdHdvIHN5bWJvbHMgZGlyZWN0bHksIHRvIHNlZSB3aGVyZSB0aGV5IGFyZSBiZWluZyB1c2VkLlxuXG5UaGVuLCBJJ2xsIHN3aXRjaCBnZWFycyBhbmQgbG9vayB3aXRoaW4gdGhlIGBkcml2ZXJzL25ldC9kc2EvbGFudGlxL2AgZGlyZWN0b3J5LiBUaGF0J3MgdGhlIG9idmlvdXMgcGxhY2UsIHNpbmNlIHRoZSB0ZXh0IGdpdmVzIG1lIGEgc3Ryb25nIGhpbnQuIEknbGwgYmUgbG9va2luZyBmb3IgYW55IHByb2JlIGZ1bmN0aW9ucywgb3IgZHJpdmVyIHJlZ2lzdHJhdGlvbiByb3V0aW5lcy4gVGhhdCBzaG91bGQgZ2l2ZSBtZSB0aGUgY29ubmVjdGlvbiBiZXR3ZWVuIHRoZSBoYXJkd2FyZSBhbmQgdGhlIGRyaXZlcnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI0NzI1LCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjEsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wN1QxODoyMDoxNS4xMjY3MzI0NTdaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDcxOTA5NTIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibW9kdWxlXy4qZHJpdmVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2RzYS9sYW50aXFcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYz01MTE9c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgZ3N3aXBfZHJpdmVyID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYy01MjAtXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXAuYzo1MjE6bW9kdWxlX3BsYXRmb3JtX2RyaXZlcihnc3dpcF9kcml2ZXIpO1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwLmMtNTIyLVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9teGwtZ3N3MXh4LmM9OTI3PXN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgZ3N3MXh4X2RyaXZlciA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbXhsLWdzdzF4eC5jLTkzNi1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL214bC1nc3cxeHguYzo5Mzc6bWRpb19tb2R1bGVfZHJpdmVyKGdzdzF4eF9kcml2ZXIpO1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbXhsLWdzdzF4eC5jLTkzOC1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDdUMTg6MjA6MTUuMTczOTI4MzE5WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MTI3Nzg0NTY1MzcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiBXb3J0aEZ1enppbmcgZm9yIE5ldHdvcmsgU3dpdGNoIERyaXZlcnMqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBpbnZlc3RpZ2F0ZSBgbXhsLWdzdzF4eC5jYCBhbmQgYGxhbnRpcV9nc3dpcC5jYC4gRnJvbSBteSBrbm93bGVkZ2UsIGBnc3dpcF9kcml2ZXJgIGlzIGEgYHBsYXRmb3JtX2RyaXZlcmAgZGVzaWduZWQgZm9yIExhbnRpcSB4cngyMDAveHJ4MzAwIFNvQ3MsIHdoaWNoIGFyZSBNSVBTLWJhc2VkLiBPbiB0aGUgb3RoZXIgaGFuZCwgYGdzdzF4eF9kcml2ZXJgIGlzIGFuIGBtZGlvX2RyaXZlcmAgcmVzcG9uc2libGUgZm9yIG1hbmFnaW5nIE1heExpbmVhciBHU1cxeHggRXRoZXJuZXQgc3dpdGNoZXMgY29ubmVjdGVkIHRocm91Z2ggYW4gTURJTyBidXMuXG5cblRoZSBjcnVjaWFsIHF1ZXN0aW9uIGltbWVkaWF0ZWx5IGFyaXNlczogY2FuIHRoZXNlIERTQSBzd2l0Y2hlcywgTURJTyBkcml2ZXJzLCBvciBwbGF0Zm9ybSBkcml2ZXJzIGJlIGVmZmVjdGl2ZWx5IGVtdWxhdGVkIG9yIGluc3RhbnRpYXRlZCB3aXRoaW4gYSBzdGFuZGFyZCBzeXprYWxsZXIgb3IgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgbGlrZSBRRU1VIHg4Nl82ND8gVGhpcyBpcyB0aGUga2V5IHRvIGRldGVybWluaW5nIGlmIHRoZXkncmUgXCJXb3J0aEZ1enppbmdcIi5cblxuTXkgbmV4dCBzdGVwIGlzIHRvIGNvbnN1bHQgdGhlIGZ1enppbmcgZ3VpZGVsaW5lcywgc3BlY2lmaWNhbGx5IHNlY3Rpb25zIDIgYW5kIDMuIFNlY3Rpb24gMiBvdXRsaW5lcyB0aGUgbmVnYXRpdmUgY3JpdGVyaWEsIHRoZSBzaXR1YXRpb25zIHdoZXJlIHdlICpkb24ndCogcmV0dXJuIGBXb3J0aEZ1enppbmc9dHJ1ZWAuIEl0IHN0YXRlcyB0aGF0IGNvZGUgcGF0aHMgYXJlIG5vdCB3b3J0aCBmdXp6aW5nIGlmIHRoZXkgaW52b2x2ZTpcblxuKiAgIE5vbi1rZXJuZWwgYW5kIG5vbi1leGVjdXRhYmxlIGNoYW5nZXMsXG4qICAgU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlIC0gd2hpY2ggaW5jbHVkZXMgdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoZXMsIFNtYXJ0TklDcywgR1BVIGRyaXZlcnMgKGxpa2UgbWx4c3csIHBkc19jb3JlLCBxZWQsIGlvbmljLCBhbWRncHUpIHRoYXQgbmVlZCBwaHlzaWNhbCBBU0lDL1BDSWUgY2FyZHMgdGhhdCBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuIEl0IGFsc28gaW5jbHVkZXMgY29kZSBwYXRocyB1bmlxdWUgdG8gYXJjaGl0ZWN0dXJlcyBvdGhlciB0aGFuIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLlxuKiAgIFVucmVhY2hhYmxlIGV4ZWN1dGlvbiBwYXRocy5cblxuU2VjdGlvbiAzLCBjb252ZXJzZWx5LCBzcGVsbHMgb3V0IHdoZW4gd2UgKmRvKiByZXR1cm4gYFdvcnRoRnV6emluZz10cnVlYC4gQmFzaWNhbGx5LCBhbnkgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSBpcyBvZiBpbnRlcmVzdCwgaW5jbHVkaW5nIGNvZGUgZm9yIGNvcmUgc3Vic3lzdGVtcywgcmVmYWN0b3JpbmdzLCBjb2RlIGNsZWFudXBzLCBydW50aW1lIGFzc2VydGlvbnMsIGRlZmVuc2l2ZSBjaGVja3MsIGFuZCByZWFjaGFibGUgZHJpdmVycyBhbmQgcHJvdG9jb2xzIHN1Y2ggYXMgdGhvc2UgYWNjZXNzaWJsZSB2aWEgdmlydHVhbCBidXNlcyBsaWtlIHZpcnRpbywgVVNCIGdhZGdldCwgbG9vcGJhY2ssIG5ldGxpbmssIGJpbmRlciwgb3Igc29ja2V0cy5cblxuU28sIGhlcmUncyBteSBwaXZvdGFsIHF1ZXN0aW9uOiBhcmUgdGhlc2UgTURJTyBhbmQgcGxhdGZvcm0gc3dpdGNoIGRyaXZlcnMgZm9yIHRoZSBMYW50aXEgU29DIGFuZCB0aGUgTWF4TGluZWFyIEdTVzF4eCBhY2Nlc3NpYmxlIHdpdGhpbiBhIHN0YW5kYXJkIHN5emthbGxlciBzZXR1cCBydW5uaW5nIG9uIGFtZDY0IGluIFFFTVU/XG5cblRvIGRldGVybWluZSB0aGlzLCBJIG5lZWQgdG8gY2hlY2sgd2hldGhlciB0aGUgTURJTyBvciBwbGF0Zm9ybSBkcml2ZXJzIGNhbiBiZSBwcm9iZWQgc3VjY2Vzc2Z1bGx5IHdpdGhvdXQgdGhlIHByZXNlbmNlIG9mIHBoeXNpY2FsIG9yIGRldmljZS10cmVlIChPRikgZGV2aWNlcy4gTG9va2luZyBhdCBgbGFudGlxX2dzd2lwLmNgLCBzcGVjaWZpY2FsbHkgYGdzd2lwX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpYCwgaXQgc2VlbXMgdG8gcmVxdWlyZSBhIGRldmljZSB0cmVlIG5vZGUgb3IgYSBwbGF0Zm9ybSBkZXZpY2UgZm9yIGVpdGhlciBgbGFudGlxLHhyeDIwMC1nc3dpcGAgb3IgYGxhbnRpcSx4cngzMDAtZ3N3aXBgLiBUaGlzIGlzIGEgaHVyZGxlLiBUaGVuIGluIGBteGwtZ3N3MXh4LmNgLCB0aGUgYGdzdzF4eF9wcm9iZShzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpYCBmdW5jdGlvbiBuZWVkcyB0byBiZSBjaGVja2VkLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNTI3MiwiT3V0cHV0VG9rZW5zIjo0OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU2OCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wN1QxODoyMDoyNy45NTIzODc3ODZaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTI5MTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9teGwtZ3N3MXh4LmNcIixcbiAgXCJGaXJzdExpbmVcIjogODYwLFxuICBcIkxpbmVDb3VudFwiOiA4MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgODYwOlxcdFxcdC5wY2VfbWljcm9jb2RlX3NpemVcXHQ9IEFSUkFZX1NJWkUoZ3N3MXh4X3BjZV9taWNyb2NvZGUpLFxcbiA4NjE6XFx0XFx0LnRhZ19wcm90b2NvbFxcdFxcdD0gRFNBX1RBR19QUk9UT19NWExfR1NXMVhYLFxcbiA4NjI6XFx0fTtcXG4gODYzOlxcdFxcbiA4NjQ6XFx0c3RhdGljIGNvbnN0IHN0cnVjdCBnc3dpcF9od19pbmZvIGdzdzE0MV9kYXRhID0ge1xcbiA4NjU6XFx0XFx0Lm1heF9wb3J0c1xcdFxcdD0gR1NXMVhYX1BPUlRTLFxcbiA4NjY6XFx0XFx0LmFsbG93ZWRfY3B1X3BvcnRzXFx0PSBCSVQoR1NXMVhYX01JSV9QT1JUKSB8IEJJVChHU1cxWFhfU0dNSUlfUE9SVCksXFxuIDg2NzpcXHRcXHQubWlpX2NmZyA9IHtcXG4gODY4OlxcdFxcdFxcdFswIC4uLiBHU1cxWFhfTUlJX1BPUlQgLSAxXSA9IC0xLFxcbiA4Njk6XFx0XFx0XFx0W0dTVzFYWF9NSUlfUE9SVF0gPSBHU1dJUF9NSUlfQ0ZHcCgwKSxcXG4gODcwOlxcdFxcdFxcdFtHU1cxWFhfTUlJX1BPUlQgKyAxIC4uLiBHU1dJUF9NQVhfUE9SVFMgLSAxXSA9IC0xLFxcbiA4NzE6XFx0XFx0fSxcXG4gODcyOlxcdFxcdC5taWlfcGNkdSA9IHtcXG4gODczOlxcdFxcdFxcdFswIC4uLiBHU1cxWFhfTUlJX1BPUlQgLSAxXSA9IC0xLFxcbiA4NzQ6XFx0XFx0XFx0W0dTVzFYWF9NSUlfUE9SVF0gPSBHU1dJUF9NSUlfUENEVTAsXFxuIDg3NTpcXHRcXHRcXHRbR1NXMVhYX01JSV9QT1JUICsgMSAuLi4gR1NXSVBfTUFYX1BPUlRTIC0gMV0gPSAtMSxcXG4gODc2OlxcdFxcdH0sXFxuIDg3NzpcXHRcXHQubWFjX3NlbGVjdF9wY3NcXHRcXHQ9IGdzdzF4eF9waHlsaW5rX21hY19zZWxlY3RfcGNzLFxcbiA4Nzg6XFx0XFx0LnBoeWxpbmtfZ2V0X2NhcHNcXHQ9IGdzdzF4eF9waHlsaW5rX2dldF9jYXBzLFxcbiA4Nzk6XFx0XFx0LnBvcnRfc2V0dXBcXHRcXHQ9IGdzdzF4eF9wb3J0X3NldHVwLFxcbiA4ODA6XFx0XFx0LnBjZV9taWNyb2NvZGVcXHRcXHQ9IFxcdTAwMjZnc3cxeHhfcGNlX21pY3JvY29kZSxcXG4gODgxOlxcdFxcdC5wY2VfbWljcm9jb2RlX3NpemVcXHQ9IEFSUkFZX1NJWkUoZ3N3MXh4X3BjZV9taWNyb2NvZGUpLFxcbiA4ODI6XFx0XFx0LnRhZ19wcm90b2NvbFxcdFxcdD0gRFNBX1RBR19QUk9UT19NWExfR1NXMVhYLFxcbiA4ODM6XFx0fTtcXG4gODg0OlxcdFxcbiA4ODU6XFx0c3RhdGljIGNvbnN0IHN0cnVjdCBnc3dpcF9od19pbmZvIGdzdzE1MF9kYXRhID0ge1xcbiA4ODY6XFx0XFx0Lm1heF9wb3J0c1xcdFxcdD0gR1NXMTUwX1BPUlRTLFxcbiA4ODc6XFx0XFx0LmFsbG93ZWRfY3B1X3BvcnRzXFx0PSBCSVQoNSkgfCBCSVQoNiksXFxuIDg4ODpcXHRcXHQubWlpX2NmZyA9IHtcXG4gODg5OlxcdFxcdFxcdFswIC4uLiA0XSA9IC0xLFxcbiA4OTA6XFx0XFx0XFx0WzVdID0gMCxcXG4gODkxOlxcdFxcdFxcdFs2XSA9IDEwLFxcbiA4OTI6XFx0XFx0fSxcXG4gODkzOlxcdFxcdC5taWlfcGNkdSA9IHtcXG4gODk0OlxcdFxcdFxcdFswIC4uLiA0XSA9IC0xLFxcbiA4OTU6XFx0XFx0XFx0WzVdID0gMSxcXG4gODk2OlxcdFxcdFxcdFs2XSA9IDExLFxcbiA4OTc6XFx0XFx0fSxcXG4gODk4OlxcdFxcdC5waHlsaW5rX2dldF9jYXBzXFx0PSBnc3cxNTBfcGh5bGlua19nZXRfY2FwcyxcXG4gODk5OlxcdFxcdC8qIFRoZXJlIGlzIG9ubHkgYSBzaW5nbGUgUkdNSUlfU0xFV19DRkcgcmVnaXN0ZXIgaW4gR1NXMTUwIGFuZCBpdCBpc1xcbiA5MDA6XFx0XFx0ICogdW5rbm93biBpZiBSR01JSSBzbGV3IGNvbmZpZ3VyYXRpb24gYWZmZWN0cyBib3RoIFJHTUlJIHBvcnRzXFxuIDkwMTpcXHRcXHQgKiBvciBvbmx5IHBvcnQgNS4gVXNlIC5wb3J0X3NldHVwIHdoaWNoIGFzc3VtZXMgaXQgYWZmZWN0cyBwb3J0IDVcXG4gOTAyOlxcdFxcdCAqIGZvciBub3cuXFxuIDkwMzpcXHRcXHQgKi9cXG4gOTA0OlxcdFxcdC5wb3J0X3NldHVwXFx0XFx0PSBnc3cxeHhfcG9ydF9zZXR1cCxcXG4gOTA1OlxcdFxcdC5wY2VfbWljcm9jb2RlXFx0XFx0PSBcXHUwMDI2Z3N3MXh4X3BjZV9taWNyb2NvZGUsXFxuIDkwNjpcXHRcXHQucGNlX21pY3JvY29kZV9zaXplXFx0PSBBUlJBWV9TSVpFKGdzdzF4eF9wY2VfbWljcm9jb2RlKSxcXG4gOTA3OlxcdFxcdC50YWdfcHJvdG9jb2xcXHRcXHQ9IERTQV9UQUdfUFJPVE9fTVhMX0dTVzFYWCxcXG4gOTA4OlxcdH07XFxuIDkwOTpcXHRcXG4gOTEwOlxcdC8qXFxuIDkxMTpcXHQgKiBHU1cxMjUgaXMgdGhlIGluZHVzdHJpYWwgdGVtcGVyYXR1cmUgdmVyc2lvbiBvZiBHU1cxMjAuXFxuIDkxMjpcXHQgKiBHU1cxNDUgaXMgdGhlIGluZHVzdHJpYWwgdGVtcGVyYXR1cmUgdmVyc2lvbiBvZiBHU1cxNDAuXFxuIDkxMzpcXHQgKi9cXG4gOTE0OlxcdHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGdzdzF4eF9vZl9tYXRjaFtdID0ge1xcbiA5MTU6XFx0XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJpbnRlbCxnc3cxNTBcXFwiLCAuZGF0YSA9IFxcdTAwMjZnc3cxNTBfZGF0YSB9LFxcbiA5MTY6XFx0XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJsYW50aXEscGViNzA4NFxcXCIsIC5kYXRhID0gXFx1MDAyNmdzdzE1MF9kYXRhIH0sXFxuIDkxNzpcXHRcXHR7IC5jb21wYXRpYmxlID0gXFxcIm1heGxpbmVhcixnc3cxMjBcXFwiLCAuZGF0YSA9IFxcdTAwMjZnc3cxMnhfZGF0YSB9LFxcbiA5MTg6XFx0XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJtYXhsaW5lYXIsZ3N3MTI1XFxcIiwgLmRhdGEgPSBcXHUwMDI2Z3N3MTJ4X2RhdGEgfSxcXG4gOTE5OlxcdFxcdHsgLmNvbXBhdGlibGUgPSBcXFwibWF4bGluZWFyLGdzdzE0MFxcXCIsIC5kYXRhID0gXFx1MDAyNmdzdzE0MF9kYXRhIH0sXFxuIDkyMDpcXHRcXHR7IC5jb21wYXRpYmxlID0gXFxcIm1heGxpbmVhcixnc3cxNDFcXFwiLCAuZGF0YSA9IFxcdTAwMjZnc3cxNDFfZGF0YSB9LFxcbiA5MjE6XFx0XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJtYXhsaW5lYXIsZ3N3MTQ1XFxcIiwgLmRhdGEgPSBcXHUwMDI2Z3N3MTQwX2RhdGEgfSxcXG4gOTIyOlxcdFxcdHsgLyogc2VudGluZWwgKi8gfSxcXG4gOTIzOlxcdH07XFxuIDkyNDpcXHRcXG4gOTI1OlxcdE1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGdzdzF4eF9vZl9tYXRjaCk7XFxuIDkyNjpcXHRcXG4gOTI3OlxcdHN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgZ3N3MXh4X2RyaXZlciA9IHtcXG4gOTI4OlxcdFxcdC5wcm9iZVxcdFxcdD0gZ3N3MXh4X3Byb2JlLFxcbiA5Mjk6XFx0XFx0LnJlbW92ZVxcdFxcdD0gZ3N3MXh4X3JlbW92ZSxcXG4gOTMwOlxcdFxcdC5zaHV0ZG93blxcdD0gZ3N3MXh4X3NodXRkb3duLFxcbiA5MzE6XFx0XFx0Lm1kaW9kcnYuZHJpdmVyXFx0PSB7XFxuIDkzMjpcXHRcXHRcXHQubmFtZSA9IFxcXCJteGwtZ3N3MXh4XFxcIixcXG4gOTMzOlxcdFxcdFxcdC5vZl9tYXRjaF90YWJsZSA9IGdzdzF4eF9vZl9tYXRjaCxcXG4gOTM0OlxcdFxcdH0sXFxuIDkzNTpcXHR9O1xcbiA5MzY6XFx0XFxuIDkzNzpcXHRtZGlvX21vZHVsZV9kcml2ZXIoZ3N3MXh4X2RyaXZlcik7XFxuIDkzODpcXHRcXG4gOTM5OlxcdE1PRFVMRV9BVVRIT1IoXFxcIkRhbmllbCBHb2xsZSBcXHUwMDNjZGFuaWVsQG1ha3JvdG9waWEub3JnXFx1MDAzZVxcXCIpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wN1QxODoyMDoyNy45NTI0ODM0MzZaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6Mzc4NzMwODU0OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBJbml0aWFsIEFzc2Vzc21lbnQgb2YgdGhlIERyaXZlciBMYW5kc2NhcGUqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBpbnRvIHRoZSBwb3NzaWJpbGl0eSBvZiB3b3JraW5nIHdpdGggdGhlc2Ugc3dpdGNoIGRyaXZlcnMg4oCTIHNwZWNpZmljYWxseSBgbXhsLWdzdzF4eGAgYW5kIGBsYW50aXFfZ3N3aXBgIOKAkyB3aXRob3V0IG5lY2Vzc2FyaWx5IGhhdmluZyB0aGUgKmFjdHVhbCogaGFyZHdhcmUgcHJlc2VudCBvciBhIGRldmljZSB0cmVlIGNvbmZpZ3VyZWQuIFRoZSBmaXJzdCB0aGluZyBJJ20gZG9pbmcgaXMgc2VlaW5nIGlmIHRoZXJlJ3MgYW55IG1lY2hhbmlzbSwgZXZlbiBhIHZpcnR1YWwgb25lLCB0byBpbnN0YW50aWF0ZSB0aGVtLiBDYW4gSSBjcmVhdGUgYW4gTURJTyBidXMgb3IgdHJpZ2dlciB0aGVpciBsb2FkaW5nIGluIGEgbW9yZSBhYnN0cmFjdCB3YXk/IEkgbmVlZCB0byB1bmRlcnN0YW5kIGlmIHRoZXkncmUgY29tcGxldGVseSBoYXJkd2FyZS1ib3VuZC5cblxuTm93LCBsZXQncyBkaXZlIGludG8gd2hhdCBtYWtlcyB0aGVzZSBkcml2ZXJzIHRpY2suIEkgc2VlIHRoYXQgYG14bC1nc3cxeHhgIHNlZW1zIHByZXR0eSB0aWdodGx5IGNvdXBsZWQgdG8gdGhlIGRldmljZSB0cmVlLCB1c2luZyBhbiBgb2ZfbWF0Y2hfdGFibGVgIGNhbGxlZCBgZ3N3MXh4X29mX21hdGNoYC4gSXQgZXhwZWN0cyBhbiBNRElPIGJ1cywgYW5kIGl0IGxvb2tzIGxpa2UgaXQncyBkZXNpZ25lZCBmb3IgcmVhbC13b3JsZCBNYXhMaW5lYXIgb3IgSW50ZWwgc3dpdGNoIElDcy4gVGhlbiB0aGVyZSdzIGBsYW50aXFfZ3N3aXBgLCB3aGljaCBhbHNvIHJlbGllcyBvbiB0aGUgZGV2aWNlIHRyZWUsIG1hdGNoaW5nIHNwZWNpZmljIExhbnRpcSBNSVBTIFNvQyBwbGF0Zm9ybSBidXNlczogYGxhbnRpcSx4cngyMDAtZ3N3aXBgIGFuZCBgbGFudGlxLHhyeDMwMC1nc3dpcGAuIFRoaXMgY29uZmlybXMgbXkgaW5pdGlhbCBzdXNwaWNpb24gLSBpdCdzIGxvb2tpbmcgbGlrZSB0aGVzZSBkcml2ZXJzIGFyZSBnb2luZyB0byBiZSB0aWVkIHRvIGEgc3BlY2lmaWMgaGFyZHdhcmUgY29uZmlndXJhdGlvbi5cblxuTmV4dCwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGltcGFjdCBvZiB0aGUgY2hhbmdlcyBpbiB0aGlzIGNvbW1pdC4gSSd2ZSBub3RlZCB0aHJlZSBrZXkgYXJlYXM6IGEgbWFjcm8sIGBHU1dJUF9NRElPX1BIWV9GQ09OVFhfRU4gMHgwMDgwYCwgZGVmaW5lZCBpbiBgbGFudGlxX2dzd2lwLmhgLCB0aGUgYGdzd2lwX3BvcnRfc2V0X3NwZWVkYCBmdW5jdGlvbiBpbiBgbGFudGlxX2dzd2lwX2NvbW1vbi5jYCwgYW5kIGBnc3cxeHhfcGNzX2NvbmZpZ2AgaW4gYG14bC1nc3cxeHguY2AuIEkgbmVlZCB0byBmaWd1cmUgb3V0IGhvdyB0aGVzZSBmdW5jdGlvbnMgYWZmZWN0IHRoZSBiaWdnZXIgcGljdHVyZS5cblxuRmluYWxseSwgSSdsbCBuZWVkIHRvIHRyYWNlIHdoZXJlIHRoZSBgZ3N3aXBfcG9ydF9zZXRfc3BlZWRgIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aXRoaW4gYGxhbnRpcV9nc3dpcF9jb21tb24uY2AuIFRoaXMgd2lsbCBnaXZlIG1lIGEgYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2YgdGhlIGRyaXZlcidzIGV4ZWN1dGlvbiBmbG93IGFuZCB3aGV0aGVyIG9yIG5vdCBpdCdzIHBvc3NpYmxlIHRvIFwidHJpY2tcIiBpdCBpbnRvIGJlaGF2aW5nIHdpdGhvdXQgdGhlIGhhcmR3YXJlIGl0IGV4cGVjdHMuIFVuZGVyc3RhbmRpbmcgdGhpcyBjYWxsIGNoYWluIGlzIGtleS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjgxNTMsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyOTcsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wN1QxODoyMDozMS43Mzk3OTQ5NjVaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUzNjQzMDYxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImdzd2lwX3BvcnRfc2V0X3NwZWVkXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2RzYS9sYW50aXFcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM9MTMwMD1zdGF0aWMgdm9pZCBnc3dpcF9wb3J0X3NldF9saW5rKHN0cnVjdCBnc3dpcF9wcml2ICpwcml2LCBpbnQgcG9ydCwgYm9vbCBsaW5rKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMTMxMi1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYzoxMzEzOnN0YXRpYyB2b2lkIGdzd2lwX3BvcnRfc2V0X3NwZWVkKHN0cnVjdCBnc3dpcF9wcml2ICpwcml2LCBpbnQgcG9ydCwgaW50IHNwZWVkLFxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTEzMTQtXFx0XFx0XFx0XFx0IHBoeV9pbnRlcmZhY2VfdCBpbnRlcmZhY2UpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYz0xNDcxPXN0YXRpYyB2b2lkIGdzd2lwX3BoeWxpbmtfbWFjX2xpbmtfdXAoc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0xNDgzLVxcdFxcdGdzd2lwX3BvcnRfc2V0X2xpbmsocHJpdiwgcG9ydCwgdHJ1ZSk7XFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MTQ4NDpcXHRcXHRnc3dpcF9wb3J0X3NldF9zcGVlZChwcml2LCBwb3J0LCBzcGVlZCwgaW50ZXJmYWNlKTtcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYy0xNDg1LVxcdFxcdGdzd2lwX3BvcnRfc2V0X2R1cGxleChwcml2LCBwb3J0LCBkdXBsZXgpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wN1QxODoyMDozMS43OTM0NDMwOTZaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6NTIzNjIwOTk4NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50OiBUaGlzIENvZGUgaXMgVW5mdXp6YWJsZSoqXG5cbk9rYXksIGhlcmUncyB0aGUgYnJlYWtkb3duIG9mIG15IHRoaW5raW5nLiBUaGlzIHBhdGNoIGlzIGZvY3VzZWQgc29sZWx5IG9uIGBkcml2ZXJzL25ldC9kc2EvbGFudGlxL2AgYW5kIHRoZSBhc3NvY2lhdGVkIGZpbGVzOiBgbGFudGlxX2dzd2lwLmhgLCBgbGFudGlxX2dzd2lwX2NvbW1vbi5jYCwgYW5kIGBteGwtZ3N3MXh4LmNgLiBUaGVzZSBhcmUgaGFyZHdhcmUgZHJpdmVycy4gU3BlY2lmaWNhbGx5LCB0aGV5J3JlIGZvciBMYW50aXEgVlJYMjAwL3hSWDMwMCBTb0NzIGFuZCBNYXhMaW5lYXIgR1NXMXh4IEV0aGVybmV0IHN3aXRjaCBjaGlwcywgYW5kIHRoZXkgY29tbXVuaWNhdGUgdmlhIE1ESU8uIEkga25vdyB0aG9zZSBkZXZpY2VzIOKAkyB0aGV5IHJlcXVpcmUgdmVyeSBzcGVjaWZpYywgYWN0dWFsIGhhcmR3YXJlOiBlaXRoZXIgdGhlIFNvQydzIE1lbW9yeS1NYXBwZWQgSS9PIG9yIHRoZSBNRElPLWNvbm5lY3RlZCBzd2l0Y2ggY2hpcHMuIFRoZXkgYWxzbyBuZWVkIERldmljZSBUcmVlIG5vZGVzIGxpa2UgYGxhbnRpcSx4cngyMDAtZ3N3aXBgIG9yIGBtYXhsaW5lYXIsZ3N3MTIwYCB0byBmdW5jdGlvbi5cblxuVGhlIGtleSBwb2ludCBoZXJlIGlzIHRoYXQgKm5vbmUqIG9mIHRoaXMgaGFyZHdhcmUgaXMgZW11bGF0ZWQgaW4gYSBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBsaWtlIFFFTVUgb24geDg2XzY0IG9yIGFtZDY0LiBUaGF0IG1lYW5zIHRoaXMgY29kZSBpcyBpbmhlcmVudGx5ICpzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUqIGZvciBzdGFuZGFyZCBmdXp6aW5nLlxuXG5JJ20gZG91YmxlLWNoZWNraW5nIHRoZSBkZWZpbml0aW9uIG9mIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZSBpbiB0aGUgZ3VpZGVsaW5lcy4gVGhleSBzdGF0ZSB0aGF0IHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzIGFyZSBvZmYtbGltaXRzIGJlY2F1c2UgdGhleSByZXF1aXJlIHBoeXNpY2FsIEFTSUNzIG9yIFBDSWUgY2FyZHMgbm90IHNpbXVsYXRlZCBpbiBRRU1VLiBUaGF0J3MgKmV4YWN0bHkqIHdoYXQgdGhpcyBpczogYSB2ZW5kb3Itc3BlY2lmaWMgZHJpdmVyIHRpZWQgdG8gc3BlY2lmaWMsIHJlYWwgaGFyZHdhcmUuIFRoZW4gdGhlIGd1aWRlbGluZXMgZ28gb24gdG8gaGlnaGxpZ2h0IHRoYXQgcmVhY2hhYmlsaXR5IGlzIHRoZSBwcmltYXJ5IGdhdGUgYW5kIHRoYXQgZnV6emluZyBjYW4gb25seSBkaXNjb3ZlciBidWdzIGluIGNvZGUgdGhhdCdzIGV4ZWN1dGFibGUgaW4gc3RhbmRhcmQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUuIElmIHRoZSBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSwgd2Ugc2hvdWxkbid0IGV2ZW4gYXR0ZW1wdCB0byBmdXp6IGl0LCBldmVuIGlmIGl0IGhhcyBhc3NlcnRpb25zIG9yIGNvbXBsZXggbG9naWMuXG5cblNvLCAqV29ydGhGdXp6aW5nKiBoYXMgdG8gYmUgYGZhbHNlYC5cblxuTGV0IG1lIHF1aWNrbHkgY29uZmlybSB0aGUgcGFyYW1ldGVyczpcblxuKiAgICpXb3J0aEZ1enppbmcqOiBEZWZpbml0ZWx5IGBmYWxzZWAuXG4qICAgKkZvY3VzU3ltYm9scyo6IEVtcHR5IGxpc3Qg4oCTIG5vdGhpbmcgdG8gZm9jdXMgb24gaGVyZS5cbiogICAqRW5hYmxlQ29uZmlncyo6IEVtcHR5IGxpc3Qg4oCTIG5vIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBuZWVkZWQuXG4qICAgKlJlYXNvbmluZyo6IFRoZSBkcml2ZXJzIG1vZGlmeSBMYW50aXEgR1NXSVAgYW5kIE1heExpbmVhciBHU1cxeHggRXRoZXJuZXQgc3dpdGNoZXMgd2l0aGluIGBkcml2ZXJzL25ldC9kc2EvbGFudGlxL2AuIFRoZXkgbmVlZCBzcGVjaWZpYywgcmVhbCBNRElPL1NvQyBzd2l0Y2hlcywgYW5kIHRob3NlIGFyZSBzaW1wbHkgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3Igb3RoZXIgdmlydHVhbCBlbnZpcm9ubWVudHMgd2UnZCBiZSB1c2luZyBvbiBhbWQ2NCwgbWVhbmluZyB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuIFRoZXJlZm9yZSwgbm8gZnV6emluZy5cblxuQWxyaWdodCwgSSdtIGdvaW5nIHRvIGdvIGFoZWFkIGFuZCBpbnZva2UgYHNldC1yZXN1bHRzYC4gVGhpcyBwYXRjaCBpc24ndCBzdWl0YWJsZSBmb3IgZnV6emluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjkzNzMsIk91dHB1dFRva2VucyI6MTEyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTAxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA3VDE4OjIwOjM3LjAyOTY1NjMwMloiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIyMzIwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIG1vZGlmaWVkIGNvZGUgaXMgbG9jYXRlZCBpbiBkcml2ZXJzL25ldC9kc2EvbGFudGlxLyAoTGFudGlxIEdTV0lQIC8gTWF4TGluZWFyIEdTVzF4eCBFdGhlcm5ldCBzd2l0Y2ggZHJpdmVycyksIHdoaWNoIGNvbnRyb2wgc3BlY2lmaWMgcGh5c2ljYWwgc3dpdGNoIGhhcmR3YXJlICh2aWEgTURJTy9Tb0MgcGxhdGZvcm0gTU1JTykgZGVmaW5lZCBpbiBEZXZpY2UgVHJlZSBhbmQgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChRRU1VIGFtZDY0KS4gVGhlIGNoYW5nZXMgYXJlIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIG1vZGlmaWVkIGNvZGUgaXMgbG9jYXRlZCBpbiBkcml2ZXJzL25ldC9kc2EvbGFudGlxLyAoTGFudGlxIEdTV0lQIC8gTWF4TGluZWFyIEdTVzF4eCBFdGhlcm5ldCBzd2l0Y2ggZHJpdmVycyksIHdoaWNoIGNvbnRyb2wgc3BlY2lmaWMgcGh5c2ljYWwgc3dpdGNoIGhhcmR3YXJlICh2aWEgTURJTy9Tb0MgcGxhdGZvcm0gTU1JTykgZGVmaW5lZCBpbiBEZXZpY2UgVHJlZSBhbmQgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChRRU1VIGFtZDY0KS4gVGhlIGNoYW5nZXMgYXJlIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA3VDE4OjIwOjM3LjAyOTY4MTkxMVoiLCJTZXEiOjE1LCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjE5MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowd5tjd[1] Phase: Running StartedAt: 2026-09-07 18:21:06 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowd5tjd[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-09-07 18:21:06 +0000 UTC FinishedAt: 2026-09-07 18:21:11 +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,}