Name: series-workflowl6sf7 Phase: Failed StartedAt: 2026-07-28 06:50:41 +0000 UTC FinishedAt: 2026-07-28 07:19:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowl6sf7[0] Phase: Succeeded StartedAt: 2026-07-28 06:50:41 +0000 UTC FinishedAt: 2026-07-28 07:19:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflowl6sf7[0].run-triage Phase: Succeeded StartedAt: 2026-07-28 06:50:41 +0000 UTC FinishedAt: 2026-07-28 07:19:05 +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+CgkJCTx0ZD4yMDI2LzA3LzI4IDA3OjE4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWRpYXRlayBNVDc5OTYgd2lyZWxlc3MgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGhhcmR3YXJlIGRyaXZlci4gU2luY2UgdGhpcyBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSwgdGhlIGNvZGUgY2Fubm90IGJlIHJlYWNoZWQgb3IgdGVzdGVkIGluIGEgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDc6MTg8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBmMjYxOTM2MmVkZDc2NmU0YWY3MDBmNWM2MDU2ZTNhNzQ5YWQ3OTg2XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBKdWwgMjggMDc6MTg6MjEgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuY1xuaW5kZXggMGVlYmM4MTgyY2E5YWEuLjQ2M2JlYzdhZDczMmEwIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jXG5AQCAtMjM4NCw2ICYjNDM7MjM4NCw5IEBAIG10Nzk5Nl9tYWNfcmVzZXRfdmlmX2l0ZXIodm9pZCAqZGF0YSwgdTggKm1hYywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZilcbiBcdFx0a2ZyZWVfcmN1KG1saW5rLCByY3VfaGVhZCk7XG4gXHR9XG4gXHRyY3VfcmVhZF91bmxvY2soKTtcbiYjNDM7XG4mIzQzO1x0bXZpZi1cdTAwM2V2YWxpZF9saW5rcyA9IDA7XG4mIzQzO1x0bXZpZi1cdTAwM2VkZWZsaW5rX2lkID0gSUVFRTgwMjExX0xJTktfVU5TUEVDSUZJRUQ7XG4gfVxuIFxuIHN0YXRpYyB2b2lkXG5AQCAtMjQyMyw2ICYjNDM7MjQyNiw5IEBAIG10Nzk5Nl9tYWNfZnVsbF9yZXNldChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuIFx0XHRcdFx0XHRcdCAgIG10Nzk5Nl9tYWNfcmVzZXRfdmlmX2l0ZXIsIGRldik7XG4gXHRtdDc2X3Jlc2V0X2RldmljZShcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG4gXG4mIzQzO1x0ZGV2LVx1MDAzZW1sZF9pZHhfbWFzayA9IDA7XG4mIzQzO1x0ZGV2LVx1MDAzZW1sZF9yZW1hcF9pZHhfbWFzayA9IDA7XG4mIzQzO1xuIFx0SU5JVF9MSVNUX0hFQUQoXHUwMDI2ZGV2LVx1MDAzZXN0YV9yY19saXN0KTtcbiBcdElOSVRfTElTVF9IRUFEKFx1MDAyNmRldi1cdTAwM2V0d3RfbGlzdCk7XG4gXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDc6MTg8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWRpYXRlayBNVDc5OTYgd2lyZWxlc3MgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGhhcmR3YXJlIGRyaXZlci4gU2luY2UgdGhpcyBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSwgdGhlIGNvZGUgY2Fubm90IGJlIHJlYWNoZWQgb3IgdGVzdGVkIGluIGEgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBmMjYxOTM2MmVkZDc2NmU0YWY3MDBmNWM2MDU2ZTNhNzQ5YWQ3OTg2CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFR1ZSBKdWwgMjggMDc6MTg6MjEgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jCmluZGV4IDBlZWJjODE4MmNhOWFhLi40NjNiZWM3YWQ3MzJhMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMKQEAgLTIzODQsNiAmIzQzOzIzODQsOSBAQCBtdDc5OTZfbWFjX3Jlc2V0X3ZpZl9pdGVyKHZvaWQgKmRhdGEsIHU4ICptYWMsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYpCiAJCWtmcmVlX3JjdShtbGluaywgcmN1X2hlYWQpOwogCX0KIAlyY3VfcmVhZF91bmxvY2soKTsKJiM0MzsKJiM0MzsJbXZpZi0mZ3Q7dmFsaWRfbGlua3MgPSAwOwomIzQzOwltdmlmLSZndDtkZWZsaW5rX2lkID0gSUVFRTgwMjExX0xJTktfVU5TUEVDSUZJRUQ7CiB9CiAKIHN0YXRpYyB2b2lkCkBAIC0yNDIzLDYgJiM0MzsyNDI2LDkgQEAgbXQ3OTk2X21hY19mdWxsX3Jlc2V0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpCiAJCQkJCQkgICBtdDc5OTZfbWFjX3Jlc2V0X3ZpZl9pdGVyLCBkZXYpOwogCW10NzZfcmVzZXRfZGV2aWNlKCZhbXA7ZGV2LSZndDttdDc2KTsKIAomIzQzOwlkZXYtJmd0O21sZF9pZHhfbWFzayA9IDA7CiYjNDM7CWRldi0mZ3Q7bWxkX3JlbWFwX2lkeF9tYXNrID0gMDsKJiM0MzsKIAlJTklUX0xJU1RfSEVBRCgmYW1wO2Rldi0mZ3Q7c3RhX3JjX2xpc3QpOwogCUlOSVRfTElTVF9IRUFEKCZhbXA7ZGV2LSZndDt0d3RfbGlzdCk7CiAKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDc6MTg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjI1OQoJCQkJCQkJb3V0cHV0OiA1MAoJCQkJCQkJdGhvdWdodHM6IDI4MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBNZWRpYXRlayBNVDc5OTYgRHJpdmVyIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBhIHBhdGNoIHRoYXQgdHdlYWtzIHRoZSBgbXQ3OTk2L21hYy5jYCBkcml2ZXIgZmlsZSBmb3IgdGhlIE1lZGlhdGVrIE1UNzk5NiB3aXJlbGVzcyBjaGlwc2V0LiBJdCBsb29rcyBsaWtlIHRoZSBwYXRjaCBpcyBpbml0aWFsaXppbmcgc29tZSB2YXJpYWJsZXMgd2l0aGluIHRoZSBgbXQ3OTk2X21hY19yZXNldF92aWZfaXRlcmAgZnVuY3Rpb246IHNwZWNpZmljYWxseSBzZXR0aW5nIGBtdmlmLSZndDt2YWxpZF9saW5rcyA9IDA7YCBhbmQgYG12aWYtJmd0O2RlZmxpbmtfaWQgPSBJRUVFODAyMTFfTElOS19VTlNQRUNJRklFRDtgLiBJdCBhbHNvIGxvb2tzIGxpa2UgaXQgemVyb2VzIG91dCBzb21lIGBkZXZgIHZhcmlhYmxlcyBpbiB0aGUgYG10Nzk5Nl9tYWNfZnVsbF9yZXNldGAgZnVuY3Rpb246IGBkZXYtJmd0O21sZF9pZHhfbWFzayA9IDA7YCBhbmQgYGRldi0mZ3Q7bWxkX3JlbWFwX2lkeF9tYXNrID0gMDtgLiBTZWVtcyBsaWtlIHNvbWUga2luZCBvZiByZXNldCBhbmQgbGluayBtYW5hZ2VtZW50IGNoYW5nZS4uLiBtYWtlcyBtZSB3b25kZXIgd2hhdCB0aGUgY29udGV4dCBpcy4KCk5vdywgYSBjcml0aWNhbCBxdWVzdGlvbiBwb3BzIGludG8gbXkgaGVhZDogaXMgdGhpcyBkcml2ZXIgdGVzdGFibGUgd2l0aGluIGEgUUVNVSBlbnZpcm9ubWVudD8gQ29uc2lkZXJpbmcgdGhpcyBpcyBhIGRyaXZlciBmb3IgYSBzcGVjaWZpYyBwaWVjZSBvZiBoYXJkd2FyZSDigJMgdGhlIE1UNzk5NiDigJMgSSBpbW1lZGlhdGVseSBkb3VidCBpdC4gVHlwaWNhbGx5LCB0aGVzZSBraW5kcyBvZiBkcml2ZXJzIGFyZW4mIzM5O3QgZWFzaWx5IHRlc3RhYmxlIHVubGVzcyB5b3UmIzM5O3JlIGRlYWxpbmcgd2l0aCBhIHNpbXVsYXRpb24gbGlrZSBtYWM4MDIxMV9od3NpbSBvciBpZiB0aGUgZGV2aWNlIGNvbm5lY3RzIHRocm91Z2ggYW4gaW50ZXJmYWNlIHRoYXQgY2FuIGJlIGVtdWxhdGVkLCBsaWtlIFVTQiwgU0RJTywgb3IgUENJZS4KClRoZSBrZXkgdGhlbiBpcyB3aGV0aGVyIHRoZSBNVDc5OTYgdXNlcyBQQ0llLiBJZiBpdCBkb2VzLCB3ZSYjMzk7cmUgbGlrZWx5IGxvb2tpbmcgYXQgYSBuZWVkIGZvciBwaHlzaWNhbCBoYXJkd2FyZSwgd2hpY2ggY29tcGxpY2F0ZXMgdGVzdGluZyBjb25zaWRlcmFibHkuIEkmIzM5O2xsIG5lZWQgdG8gY2hlY2sgdGhlIGNvZGViYXNlIGZvciB0aGUgTVQ3OTk2JiMzOTtzIGludGVyZmFjZS4gTXkgaW5zdGluY3QgaXMgdG8gbG9vayBhdCBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmNgIG9yIGEgZmlsZSB3aXRoIGEgc2ltaWxhciBuYW1lIGluIHRoZSBkaXJlY3RvcnkgdG8gY29uZmlybS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwNzoxODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdDc5OTZfbWFjX2Z1bGxfcmVzZXQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmM9MjM5Mj1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmM6MjM5MzptdDc5OTZfbWFjX2Z1bGxfcmVzZXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jLTIzOTQte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jPTI0NTc9dm9pZCBtdDc5OTZfbWFjX3Jlc2V0X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jLTI0NzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYzoyNDc4Olx0XHRtdDc5OTZfbWFjX2Z1bGxfcmVzZXQoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jLTI0NzktXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDc6MTg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzI3MQoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDEzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkFuYWx5emluZyBCdXMgTVQ3OTk2KioKCkFscmlnaHQsIGxldCYjMzk7cyBkaXZlIGluLiBUaGUgY29yZSBxdWVzdGlvbiBJIGhhdmUgaGVyZSBpcyBhYm91dCBidXMgKk1UNzk5NiouIFRoYXQmIzM5O3MgdGhlIHN0YXJ0aW5nIHBvaW50LiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdHMgY2hhcmFjdGVyaXN0aWNzLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgJiMzNDtXaGF0IGtpbmQgb2YgYnVzIGlzIGl0PyBXaGF0IGRvZXMgdGhlICYjMzk7TVQmIzM5OyBkZXNpZ25hdGlvbiB0ZWxsIG1lPyYjMzQ7IElzIGl0IGEgbWFudWZhY3R1cmVyIGNvZGUsIGEgcmVnaW9uLCBvciBzb21ldGhpbmcgZWxzZSBlbnRpcmVseT8gR2l2ZW4gbXkgZXhwZXJpZW5jZSwgSSYjMzk7bSBhbHJlYWR5IG1lbnRhbGx5IHJ1bm5pbmcgdGhyb3VnaCBwb3RlbnRpYWwgYnVzIHR5cGVzIOKAkyBpcyBpdCBhIHNlcmlhbCBidXMsIHBhcmFsbGVsIGJ1cywgYW4gZW1iZWRkZWQgc3lzdGVtIGJ1cywgb3IgcGVyaGFwcyBzb21ldGhpbmcgbW9yZSBzcGVjaWFsaXplZD8gVGhlIG51bWVyaWMgcG9ydGlvbiBpcyBpbnRlcmVzdGluZzsgY2FuIHRoYXQgYmUgbWFwcGVkIHRvIGEgc3BlY2lmaWMgZGF0YSBzaGVldCBvciBtYW51ZmFjdHVyZXIgc3BlY2lmaWNhdGlvbj8gSSYjMzk7bSBhbHJlYWR5IG1lbnRhbGx5IGNyb3NzLXJlZmVyZW5jaW5nIHRoaXMgd2l0aCBteSBtZW50YWwgZGF0YWJhc2Ugb2YgY29tbW9uIGJ1cyBzdGFuZGFyZHMgYW5kIHRoZWlyIGFzc29jaWF0ZWQgbmFtaW5nIGNvbnZlbnRpb25zLiBTbywgdGhlIHByb2Nlc3MgaGFzIGJlZ3VuOiBhIG1lbnRhbCByZXZpZXcgaXMgaW5pdGlhdGVkIHRvIGNhdGVnb3JpemUgdGhpcyBidXMgYW5kIGFzc2VzcyBhbnkgcHJlLWV4aXN0aW5nIGtub3dsZWRnZSBvbiB0aGlzIHN1YmplY3QuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDc6MTg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5jb2Rlc2VhcmNoLWRpci1pbmRleDwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RGlyJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGVzJiMzNDs6IFsKICAgICYjMzQ7Y29yZWR1bXAuYyYjMzQ7LAogICAgJiMzNDtjb3JlZHVtcC5oJiMzNDssCiAgICAmIzM0O2RlYnVnZnMuYyYjMzQ7LAogICAgJiMzNDtkbWEuYyYjMzQ7LAogICAgJiMzNDtlZXByb20uYyYjMzQ7LAogICAgJiMzNDtlZXByb20uaCYjMzQ7LAogICAgJiMzNDtpbml0LmMmIzM0OywKICAgICYjMzQ7bWFjLmMmIzM0OywKICAgICYjMzQ7bWFjLmgmIzM0OywKICAgICYjMzQ7bWFpbi5jJiMzNDssCiAgICAmIzM0O21jdS5jJiMzNDssCiAgICAmIzM0O21jdS5oJiMzNDssCiAgICAmIzM0O21taW8uYyYjMzQ7LAogICAgJiMzNDttdDc5OTYuaCYjMzQ7LAogICAgJiMzNDtucHUuYyYjMzQ7LAogICAgJiMzNDtwY2kuYyYjMzQ7LAogICAgJiMzNDtyZWdzLmgmIzM0OwogIF0sCiAgJiMzNDtTdWJkaXJzJiMzNDs6IG51bGwKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDA3OjE4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM2NjAKCQkJCQkJCW91dHB1dDogNDkKCQkJCQkJCXRob3VnaHRzOiAyOAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duOgoKKipBbmFseXppbmcgdGhlIFBvdGVudGlhbCBQQ0llIERyaXZlcioqCgpBbHJpZ2h0LCBzbyB0aGUgY2x1ZSBpcyBgcGNpLmNgLiBNeSBmaXJzdCBpbnN0aW5jdCBpcyB0byBkaXZlIHN0cmFpZ2h0IGludG8gdGhhdCBmaWxlLiBLbm93aW5nIHRoZSBjb2RlYmFzZSwgdGhlIGZpbGVuYW1lIGl0c2VsZiBzdHJvbmdseSBzdWdnZXN0cyB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIGEgUENJLXJlbGF0ZWQgZHJpdmVyLiBUaGUgY3JpdGljYWwgcXVlc3Rpb24gbm93IGlzIHdoZXRoZXIgaXQmIzM5O3Mgc3BlY2lmaWNhbGx5IGEgUENJZSBkcml2ZXIuIExldCYjMzk7cyBnZXQgcmlnaHQgaW4gdGhlcmUgYW5kIHNlZSB3aGF0IGl0IGhhcyB0byBzYXkgZm9yIGl0c2VsZi4gVGltZSB0byBjb25maXJtIGlmIHRoaXMgaHVuY2ggaG9sZHMgd2F0ZXIuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDc6MTg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtwY2lfcmVnaXN0ZXJfZHJpdmVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDA3OjE4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM4NjAKCQkJCQkJCW91dHB1dDogNDIKCQkJCQkJCXRob3VnaHRzOiAxNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSBjb25zaWRlcmluZyB0aGlzIGlzc3VlOgoKKipFeGFtaW5pbmcgdGhlIFBDSSBNb2R1bGUgSW5pdGlhbGl6YXRpb24qKgoKT2theSwgYmVmb3JlIGRpdmluZyB0b28gZGVlcCwgSSBzaG91bGQgcHJvYmFibHkgZG91YmxlLWNoZWNrIHRoZSBtb2R1bGUgaW5pdGlhbGl6YXRpb24gY29kZSB3aXRoaW4gYHBjaS5jYC4gTXkgZXhwZXJpZW5jZSB0ZWxscyBtZSB0aGF0JiMzOTtzIG9mdGVuIHRoZSBsb2dpY2FsIHN0YXJ0aW5nIHBvaW50IGZvciB1bmRlcnN0YW5kaW5nIGhvdyB0aGUgUENJIHN1YnN5c3RlbSBpcyBicm91Z2h0IG9ubGluZS4gSXQmIzM5O3MgdXN1YWxseSB3aGVyZSB0aGUgYmFzZSBzZXR1cCwgcmVzb3VyY2UgYWxsb2NhdGlvbiwgYW5kIGFueSBpbml0aWFsIHByb2Jpbmcgb2YgdGhlIFBDSSBidXMgaGFwcGVuLiBJJiMzOTtkIHdhbnQgdG8gbG9vayBmb3IgdGhlIGVudHJ5IHBvaW50LCB0aGUgbWFpbiBpbml0aWFsaXphdGlvbiBmdW5jdGlvbi4gRnJvbSB0aGVyZSwgSSBjYW4gZ2V0IGEgY2xlYXJlciBwaWN0dXJlIG9mIGhvdyBpdCBhbGwgaGFuZ3MgdG9nZXRoZXIgYW5kIHdoYXQgc3RlcHMgYXJlIHBlcmZvcm1lZCBpbiBzZXF1ZW5jZS4gVGhpcyBzaG91bGQgaGVscCB0byB1bmRlcnN0YW5kIHRoZSBvdmVyYWxsIGFyY2hpdGVjdHVyZSwgYW5kIGlkZW50aWZ5IHdoZXJlIGEgcHJvYmxlbSBtaWdodCBiZSBvcmlnaW5hdGluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDc6MTg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bW9kdWxlX2luaXQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jPTg4Mz1zdGF0aWMgdm9pZCBfX2V4aXQgbXQ3OTk2X2V4aXQodm9pZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODg4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jOjg4OTptb2R1bGVfaW5pdChtdDc5OTZfaW5pdCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODkwLW1vZHVsZV9leGl0KG10Nzk5Nl9leGl0KTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDc6MTg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDIzNwoJCQkJCQkJb3V0cHV0OiA1MAoJCQkJCQkJdGhvdWdodHM6IDE2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkRpdmluZyBpbnRvIHRoZSBgbXQ3OTk2X2luaXRgIEZ1bmN0aW9uKioKCkFscmlnaHQsIGxldCYjMzk7cyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGltbWVkaWF0ZWx5IGRpc3NlY3Qgd2hhdCYjMzk7cyBoYXBwZW5pbmcgd2l0aGluIHRoZSBgbXQ3OTk2X2luaXRgIGZ1bmN0aW9uLiBHaXZlbiBvdXIgc2hhcmVkIHVuZGVyc3RhbmRpbmcgb2YgdGhpcyBhcmNoaXRlY3R1cmUsIEkmIzM5O20gdGhpbmtpbmcgd2UgbmVlZCB0byBxdWlja2x5IHBpbnBvaW50IHRoZSBrZXkgaW5pdGlhbGl6YXRpb24gcm91dGluZXMsIGZvY3VzaW5nIG9uIHRoaW5ncyBsaWtlOgoKKiAgICoqQ2hpcHNldCBJZGVudGlmaWNhdGlvbiBhbmQgVmVyaWZpY2F0aW9uOioqIEFyZSB3ZSBjb25maXJtaW5nIHRoZSBzaWxpY29uIHJldmlzaW9uLCBjaGVja2luZyBmb3IgYW55IHBsYXRmb3JtLXNwZWNpZmljIHF1aXJrcywgYW5kIHZhbGlkYXRpbmcgdGhlIGV4cGVjdGVkIGhhcmR3YXJlIHByZXNlbmNlPwoqICAgKipDbG9jayBDb25maWd1cmF0aW9uOioqIFVuZG91YnRlZGx5LCBpdCYjMzk7cyBzZXR0aW5nIHVwIHRoZSBjcnVjaWFsIGNsb2NrIGRvbWFpbnMg4oCTIHRoZSByZWZlcmVuY2UgY2xvY2ssIHRoZSBNQUMgY2xvY2ssIFBMTHMsIGV0Yy4gSSYjMzk7bGwgbmVlZCB0byBzZWUgaWYgaXQmIzM5O3MgdXNpbmcgdGhlIHN0YW5kYXJkIGZyZXF1ZW5jeSBkaXZpZGVycyBhbmQgbXVsdGlwbGllcnMgb3IgaWYgdGhlcmUgYXJlIGFueSBjdXN0b20gc2V0dGluZ3MuCiogICAqKlBvd2VyIE1hbmFnZW1lbnQgSW5pdGlhbGl6YXRpb246KiogSSYjMzk7bSBleHBlY3RpbmcgdG8gc2VlIGNhbGxzIHJlbGF0ZWQgdG8gcG93ZXIgZG9tYWluIGVuYWJsZW1lbnQsIHZvbHRhZ2Ugc2NhbGluZyAoaWYgYXBwbGljYWJsZSksIGFuZCBwb3NzaWJseSBzb21lIGluaXRpYWwgbG93LXBvd2VyIHN0YXRlIGNvbmZpZ3VyYXRpb25zLgoqICAgKipSZWdpc3RlciBJbml0aWFsaXphdGlvbjoqKiBUaGlzIGlzIGEgYmlnIG9uZS4gV2hhdCByZWdpc3RlciBibG9ja3MgYXJlIGJlaW5nIHRvdWNoZWQgaW5pdGlhbGx5PyBJcyBpdCB3cml0aW5nIGRlZmF1bHQgdmFsdWVzIHRvIHRoZSBjb250cm9sIHJlZ2lzdGVycywgc2V0dGluZyB1cCBpbnRlcnJ1cHQgbWFza3MsIG9yIHByb2dyYW1taW5nIHRoZSBETUEgZW5naW5lcz8gSSYjMzk7bGwgcGF5IGNsb3NlIGF0dGVudGlvbiB0byB0aGUgb3JkZXIgaGVyZSwgYXMgdGhpcyBjYW4gYmUgY3JpdGljYWwgdG8gb3ZlcmFsbCBwZXJmb3JtYW5jZSBhbmQgc3RhYmlsaXR5LgoqICAgKipIYXJkd2FyZSBBYnN0cmFjdGlvbiBMYXllciAoSEFMKSBTZXR1cDoqKiBMZXQmIzM5O3Mgc2VlIGhvdyBpdCYjMzk7cyBpbnRlcmZhY2luZyB3aXRoIHRoZSB1bmRlcmx5aW5nIGhhcmR3YXJlLCBtYWtpbmcgc3VyZSB0aGluZ3MgbGlrZSB0aGUgZGV2aWNlIHRyZWUgY29uZmlndXJhdGlvbiBpcyBhY2NvdW50ZWQgZm9yIGluIHRoaXMgaW5pdGlhbCBzdGF0ZS4gQW55IGN1c3RvbSBIQUwgbGF5ZXIgc2hvdWxkIGJlIGNsZWFybHkgZGVmaW5lZC4KCkkmIzM5O20gaG9waW5nIHRvIHF1aWNrbHkgaWRlbnRpZnkgdGhlIGNydWNpYWwgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucywgc28gSSYjMzk7bSBwcmVwYXJlZCBmb3IgdGhlIG5leHQgc3RhZ2Ugb2Ygb3VyIHByb2plY3QuIEkmIzM5O20gbG9va2luZyBmb3Igd2hlcmUgYW55IHBvdGVudGlhbCBpc3N1ZXMgbWlnaHQgY3JvcCB1cCBkdXJpbmcgaGFyZHdhcmUgYnJpbmctdXAgb3IgaWYgdGhlcmUgYXJlIGFueSBzcGVjaWZpYyBpbml0aWFsaXphdGlvbiB0d2Vha3MgcmVxdWlyZWQgZm9yIHRoaXMgcGFydGljdWxhciBkcml2ZXIgaW5zdGFuY2UuIExldCYjMzk7cyBzZWUgd2hhdCB3ZSB1bmNvdmVyIQoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwNzoxODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdDc5OTZfaW5pdCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM9ODE2PXN0cnVjdCBtdDc5OTZfZGV2ICptdDc5OTZfbW1pb19wcm9iZShzdHJ1Y3QgZGV2aWNlICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04NjctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM6ODY4OnN0YXRpYyBpbnQgX19pbml0IG10Nzk5Nl9pbml0KHZvaWQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODY5LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM9ODgzPXN0YXRpYyB2b2lkIF9fZXhpdCBtdDc5OTZfZXhpdCh2b2lkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04ODgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM6ODg5Om1vZHVsZV9pbml0KG10Nzk5Nl9pbml0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04OTAtbW9kdWxlX2V4aXQobXQ3OTk2X2V4aXQpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwNzoxODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MDM3CgkJCQkJCQlvdXRwdXQ6IDUxCgkJCQkJCQl0aG91Z2h0czogMTMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcyBgbXQ3OTk2X2luaXRgIGZ1bmN0aW9uLiBNeSBleHBlcnQgZXllIGltbWVkaWF0ZWx5IHN0YXJ0cyBzY2FubmluZyBmb3IgdGhlIGNyaXRpY2FsIHBpZWNlcy4gSSYjMzk7bSBsb29raW5nIGZvciB0aGUgY29yZSBpbml0aWFsaXphdGlvbiBzZXF1ZW5jZXMg4oCTIHRoZSBzdGVwcyB0aGF0IGJyaW5nIHRoaXMgc2lsaWNvbiB0byBsaWZlLiBJIHdhbnQgdG8gc2VlIGhvdyB0aGUgcmVnaXN0ZXJzIGFyZSBjb25maWd1cmVkLCBob3cgdGhlIGNsb2NrcyBhcmUgbWFuYWdlZCwgYW5kIHdoYXQgdGhlIG92ZXJhbGwgcG93ZXItdXAgc2VxdWVuY2UgbG9va3MgbGlrZS4gQXJlIHRoZXJlIGFueSBlYXJseSBzZWxmLXRlc3RzIG9yIGNhbGlicmF0aW9uIHJvdXRpbmVzIHRoYXQgZ2l2ZSBtZSBhIHF1aWNrIGhlYWx0aCBjaGVjaz8KCkkmIzM5O2xsIGJlIHBheWluZyBjbG9zZSBhdHRlbnRpb24gdG8gYW55IGRlcGVuZGVuY2llcy4gRG9lcyBpdCByZWx5IG9uIHNwZWNpZmljIGhhcmR3YXJlIHNldHRpbmdzIGJlaW5nIGluIHBsYWNlLCBvciBvdGhlciBkcml2ZXJzIGJlaW5nIGxvYWRlZCBiZWZvcmVoYW5kPyBBcmUgdGhlcmUgYW55IGVycm9yIGhhbmRsaW5nIG1lY2hhbmlzbXM/IEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyByZXNpbGllbnQgdGhpcyBpbml0aWFsaXphdGlvbiBwcm9jZXNzIGlzLiBBIHJvYnVzdCBpbml0aWFsaXphdGlvbiBpcyBrZXkuCgpUaGVuLCBJJiMzOTtsbCBiZSBsb29raW5nIGZvciBhbnkgY3VzdG9taXphdGlvbnMuIElzIHRoaXMgYSBnZW5lcmljIGluaXRpYWxpemF0aW9uLCBvciBhcmUgdGhlcmUgcGxhdGZvcm0tc3BlY2lmaWMgYWRhcHRhdGlvbnM/IEkmIzM5O20gcGFydGljdWxhcmx5IGludGVyZXN0ZWQgaWYgdGhlcmUgYXJlIGFueSBjb25kaXRpb25hbCBjb21waWxhdGlvbiBibG9ja3MuIFRoYXQgdGVsbHMgbWUgd2hhdCB2YXJpYXRpb25zIHRoZSB2ZW5kb3Igc3VwcG9ydHMgaW4gZGlmZmVyZW50IFNLVXMuIEFueSBkZXZpY2UtdHJlZSBpbnRlcmFjdGlvbnMgd291bGQgYWxzbyBiZSB1c2VmdWwgdG8ga25vdy4KClVsdGltYXRlbHksIEkmIzM5O20gdHJ5aW5nIHRvIGJ1aWxkIGEgbWVudGFsIG1hcCBvZiBob3cgdGhpcyB0aGluZyBnZXRzIGdvaW5nLCBzbyBJIGtub3cgd2hlcmUgcG90ZW50aWFsIGJvdHRsZW5lY2tzIG9yIGlzc3VlcyBtaWdodCBhcmlzZS4gSSYjMzk7bGwgYmUgd2F0Y2hpbmcgZm9yIGFueSBhcmVhcyB3aGVyZSB0aGUgaW5pdGlhbGl6YXRpb24gbWlnaHQgYmUgc2Vuc2l0aXZlIHRvIHRpbWluZyBvciBleHRlcm5hbCBlbnZpcm9ubWVudGFsIGNvbmRpdGlvbnMuIE15IGdvYWwgaXMgdG8gdW5kZXJzdGFuZCBob3cgdGhpcyBjaGlwIGlzIGJyb3VnaHQgZnJvbSBhIGRlYWQgc3RhdGUgaW50byBhIGZ1bmN0aW9uYWwsIGNvbW11bmljYXRpbmcgZW50aXR5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwNzoxODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDg2MCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA0MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgODYwOlx0XHRyZXR1cm4gZGV2O1xuIDg2MTpcdFxuIDg2MjpcdGVycm9yOlxuIDg2MzpcdFx0bXQ3Nl9mcmVlX2RldmljZShcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG4gODY0Olx0XG4gODY1Olx0XHRyZXR1cm4gRVJSX1BUUihyZXQpO1xuIDg2NjpcdH1cbiA4Njc6XHRcbiA4Njg6XHRzdGF0aWMgaW50IF9faW5pdCBtdDc5OTZfaW5pdCh2b2lkKVxuIDg2OTpcdHtcbiA4NzA6XHRcdGludCByZXQ7XG4gODcxOlx0XG4gODcyOlx0XHRyZXQgPSBwY2lfcmVnaXN0ZXJfZHJpdmVyKFx1MDAyNm10Nzk5Nl9oaWZfZHJpdmVyKTtcbiA4NzM6XHRcdGlmIChyZXQpXG4gODc0Olx0XHRcdHJldHVybiByZXQ7XG4gODc1Olx0XG4gODc2Olx0XHRyZXQgPSBwY2lfcmVnaXN0ZXJfZHJpdmVyKFx1MDAyNm10Nzk5Nl9wY2lfZHJpdmVyKTtcbiA4Nzc6XHRcdGlmIChyZXQpXG4gODc4Olx0XHRcdHBjaV91bnJlZ2lzdGVyX2RyaXZlcihcdTAwMjZtdDc5OTZfaGlmX2RyaXZlcik7XG4gODc5Olx0XG4gODgwOlx0XHRyZXR1cm4gcmV0O1xuIDg4MTpcdH1cbiA4ODI6XHRcbiA4ODM6XHRzdGF0aWMgdm9pZCBfX2V4aXQgbXQ3OTk2X2V4aXQodm9pZClcbiA4ODQ6XHR7XG4gODg1Olx0XHRwY2lfdW5yZWdpc3Rlcl9kcml2ZXIoXHUwMDI2bXQ3OTk2X3BjaV9kcml2ZXIpO1xuIDg4NjpcdFx0cGNpX3VucmVnaXN0ZXJfZHJpdmVyKFx1MDAyNm10Nzk5Nl9oaWZfZHJpdmVyKTtcbiA4ODc6XHR9XG4gODg4Olx0XG4gODg5Olx0bW9kdWxlX2luaXQobXQ3OTk2X2luaXQpO1xuIDg5MDpcdG1vZHVsZV9leGl0KG10Nzk5Nl9leGl0KTtcbiA4OTE6XHRNT0RVTEVfREVTQ1JJUFRJT04oXCYjMzQ7TWVkaWFUZWsgTVQ3OTk2IE1NSU8gaGVscGVyc1wmIzM0Oyk7XG4gODkyOlx0TU9EVUxFX0xJQ0VOU0UoXCYjMzQ7RHVhbCBCU0QvR1BMXCYjMzQ7KTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDc6MTg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTg0OQoJCQkJCQkJb3V0cHV0OiA4NAoJCQkJCQkJdGhvdWdodHM6IDE3MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBGdXp6aW5nIFN1aXRhYmlsaXR5KioKCk9rYXksIHNvIEkmIzM5O3ZlIGp1c3QgcHJvY2Vzc2VkIHRoZSBpbmZvcm1hdGlvbiBvbiB0aGVzZSB0d28gUENJIGRyaXZlcnMsIGBtdDc5OTZfaGlmX2RyaXZlcmAgYW5kIGBtdDc5OTZfcGNpX2RyaXZlcmAuIEl0JiMzOTtzIHByZXR0eSBjbGVhciB0aGF0IHRoZXNlIGFyZSBzcGVjaWZpYyB0byB0aGUgTWVkaWF0ZWsgTVQ3OTk2IGNoaXBzZXQsIHdoaWNoIGlzIGEgUENJZSBkZXZpY2UuIFRoaXMgaXMgYSBjcnVjaWFsIHBpZWNlIG9mIGluZm9ybWF0aW9uLgoKTm93LCBJJiMzOTttIHJlY2FsbGluZyB0aGUgZnV6emluZyBndWlkZWxpbmVzLiBTcGVjaWZpY2FsbHksIHRoYXQgaWYgYSBwYXRjaCBpbnZvbHZlcyBkcml2ZXJzIGZvciB2ZW5kb3Itc3BlY2lmaWMgUENJZSBkZXZpY2VzIHRoYXQgYXJlbiYjMzk7dCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLCB3ZSBzaG91bGQgc2V0IGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBUaGUgZXhhbXBsZXMgdGhleSBnaXZlIOKAkyBgbWx4c3dgLCBgcGRzX2NvcmVgLCBgcWVkYCwgYGlvbmljYCwgYGFtZGdwdWAg4oCTIGFyZSBhbGwgcG9pbnRpbmcgdG8gaGFyZHdhcmUgZGVwZW5kZW5jaWVzLgoKR2l2ZW4gdGhhdCB0aGlzIGBtdDc5OTZgIGRyaXZlciBpcyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIHdpcmVsZXNzIGRyaXZlciBhbmQsIGltcG9ydGFudGx5LCAqcmVxdWlyZXMqIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUsIHdoaWNoIGlzbiYjMzk7dCBnb2luZyB0byBiZSBwcmVzZW50IGluIGEgc3RhbmRhcmQgUUVNVSBlbnZpcm9ubWVudCwgSSYjMzk7bSBmb3JjZWQgdG8gY29uY2x1ZGUgdGhhdCB0aGlzIHBhdGNoIGlzICoqbm90KiogYSBnb29kIGNhbmRpZGF0ZSBmb3IgZnV6emluZy4gSXQmIzM5O3MgYSB0ZXh0Ym9vayBjYXNlIG9mIHNvbWV0aGluZyB0aGF0JiMzOTtzIGxpa2VseSB0byBnZW5lcmF0ZSBhIGxvdCBvZiBub2lzZSBhbmQgZmFsc2UgcG9zaXRpdmVzIGluIGEgcHVyZWx5IHNvZnR3YXJlLWJhc2VkIGZ1enppbmcgY2FtcGFpZ24uIFRoZSBwYXRjaCB3b24mIzM5O3QgZXhlY3V0ZSB3aXRob3V0IHRoZSBwaHlzaWNhbCBoYXJkd2FyZSwgYW5kIHRoYXQgbWVhbnMgZnV6emluZyBpdCBpbiBhIHR5cGljYWwgUUVNVSBlbnZpcm9ubWVudCBpcyBhIHdhc3RlIG9mIHRpbWUgYW5kIHJlc291cmNlcy4gU2V0dGluZyBgV29ydGhGdXp6aW5nPWZhbHNlYCBpcyB0aGUgcmlnaHQgY2FsbCBoZXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwNzoxODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWRpYXRlayBNVDc5OTYgd2lyZWxlc3MgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGhhcmR3YXJlIGRyaXZlci4gU2luY2UgdGhpcyBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSwgdGhlIGNvZGUgY2Fubm90IGJlIHJlYWNoZWQgb3IgdGVzdGVkIGluIGEgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWRpYXRlayBNVDc5OTYgd2lyZWxlc3MgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGhhcmR3YXJlIGRyaXZlci4gU2luY2UgdGhpcyBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSwgdGhlIGNvZGUgY2Fubm90IGJlIHJlYWNoZWQgb3IgdGVzdGVkIGluIGEgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwNzoxODoyMy41MzcwODQzNDlaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMDYyNjEzMTEwNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lZGlhdGVrIE1UNzk5NiB3aXJlbGVzcyBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgaGFyZHdhcmUgZHJpdmVyLiBTaW5jZSB0aGlzIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLCB0aGUgY29kZSBjYW5ub3QgYmUgcmVhY2hlZCBvciB0ZXN0ZWQgaW4gYSB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50LlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMDc6MTg6MjMuNTM3MDkwODE5WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2OTkyNTQ4NDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBmMjYxOTM2MmVkZDc2NmU0YWY3MDBmNWM2MDU2ZTNhNzQ5YWQ3OTg2XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUdWUgSnVsIDI4IDA3OjE4OjIxIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmNcXG5pbmRleCAwZWViYzgxODJjYTlhYS4uNDYzYmVjN2FkNzMyYTAgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuY1xcbkBAIC0yMzg0LDYgKzIzODQsOSBAQCBtdDc5OTZfbWFjX3Jlc2V0X3ZpZl9pdGVyKHZvaWQgKmRhdGEsIHU4ICptYWMsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYpXFxuIFxcdFxcdGtmcmVlX3JjdShtbGluaywgcmN1X2hlYWQpO1xcbiBcXHR9XFxuIFxcdHJjdV9yZWFkX3VubG9jaygpO1xcbitcXG4rXFx0bXZpZi1cXHUwMDNldmFsaWRfbGlua3MgPSAwO1xcbitcXHRtdmlmLVxcdTAwM2VkZWZsaW5rX2lkID0gSUVFRTgwMjExX0xJTktfVU5TUEVDSUZJRUQ7XFxuIH1cXG4gXFxuIHN0YXRpYyB2b2lkXFxuQEAgLTI0MjMsNiArMjQyNiw5IEBAIG10Nzk5Nl9tYWNfZnVsbF9yZXNldChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbiBcXHRcXHRcXHRcXHRcXHRcXHQgICBtdDc5OTZfbWFjX3Jlc2V0X3ZpZl9pdGVyLCBkZXYpO1xcbiBcXHRtdDc2X3Jlc2V0X2RldmljZShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG4gXFxuK1xcdGRldi1cXHUwMDNlbWxkX2lkeF9tYXNrID0gMDtcXG4rXFx0ZGV2LVxcdTAwM2VtbGRfcmVtYXBfaWR4X21hc2sgPSAwO1xcbitcXG4gXFx0SU5JVF9MSVNUX0hFQUQoXFx1MDAyNmRldi1cXHUwMDNlc3RhX3JjX2xpc3QpO1xcbiBcXHRJTklUX0xJU1RfSEVBRChcXHUwMDI2ZGV2LVxcdTAwM2V0d3RfbGlzdCk7XFxuIFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwNzoxODoyNC4yMzcyOTE1NzNaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjoyOTkyNTkxNTEzMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lZGlhdGVrIE1UNzk5NiB3aXJlbGVzcyBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgaGFyZHdhcmUgZHJpdmVyLiBTaW5jZSB0aGlzIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLCB0aGUgY29kZSBjYW5ub3QgYmUgcmVhY2hlZCBvciB0ZXN0ZWQgaW4gYSB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50LlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgZjI2MTkzNjJlZGQ3NjZlNGFmNzAwZjVjNjA1NmUzYTc0OWFkNzk4NlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgSnVsIDI4IDA3OjE4OjIxIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuY1xuaW5kZXggMGVlYmM4MTgyY2E5YWEuLjQ2M2JlYzdhZDczMmEwIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jXG5AQCAtMjM4NCw2ICsyMzg0LDkgQEAgbXQ3OTk2X21hY19yZXNldF92aWZfaXRlcih2b2lkICpkYXRhLCB1OCAqbWFjLCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmKVxuIFx0XHRrZnJlZV9yY3UobWxpbmssIHJjdV9oZWFkKTtcbiBcdH1cbiBcdHJjdV9yZWFkX3VubG9jaygpO1xuK1xuK1x0bXZpZi1cdTAwM2V2YWxpZF9saW5rcyA9IDA7XG4rXHRtdmlmLVx1MDAzZWRlZmxpbmtfaWQgPSBJRUVFODAyMTFfTElOS19VTlNQRUNJRklFRDtcbiB9XG4gXG4gc3RhdGljIHZvaWRcbkBAIC0yNDIzLDYgKzI0MjYsOSBAQCBtdDc5OTZfbWFjX2Z1bGxfcmVzZXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcbiBcdFx0XHRcdFx0XHQgICBtdDc5OTZfbWFjX3Jlc2V0X3ZpZl9pdGVyLCBkZXYpO1xuIFx0bXQ3Nl9yZXNldF9kZXZpY2UoXHUwMDI2ZGV2LVx1MDAzZW10NzYpO1xuIFxuK1x0ZGV2LVx1MDAzZW1sZF9pZHhfbWFzayA9IDA7XG4rXHRkZXYtXHUwMDNlbWxkX3JlbWFwX2lkeF9tYXNrID0gMDtcbitcbiBcdElOSVRfTElTVF9IRUFEKFx1MDAyNmRldi1cdTAwM2VzdGFfcmNfbGlzdCk7XG4gXHRJTklUX0xJU1RfSEVBRChcdTAwMjZkZXYtXHUwMDNldHd0X2xpc3QpO1xuIFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMDc6MTg6MjQuMjM3MjkzMzAzWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTkwMzM4NTA4MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBNZWRpYXRlayBNVDc5OTYgRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYSBwYXRjaCB0aGF0IHR3ZWFrcyB0aGUgYG10Nzk5Ni9tYWMuY2AgZHJpdmVyIGZpbGUgZm9yIHRoZSBNZWRpYXRlayBNVDc5OTYgd2lyZWxlc3MgY2hpcHNldC4gSXQgbG9va3MgbGlrZSB0aGUgcGF0Y2ggaXMgaW5pdGlhbGl6aW5nIHNvbWUgdmFyaWFibGVzIHdpdGhpbiB0aGUgYG10Nzk5Nl9tYWNfcmVzZXRfdmlmX2l0ZXJgIGZ1bmN0aW9uOiBzcGVjaWZpY2FsbHkgc2V0dGluZyBgbXZpZi1cdTAwM2V2YWxpZF9saW5rcyA9IDA7YCBhbmQgYG12aWYtXHUwMDNlZGVmbGlua19pZCA9IElFRUU4MDIxMV9MSU5LX1VOU1BFQ0lGSUVEO2AuIEl0IGFsc28gbG9va3MgbGlrZSBpdCB6ZXJvZXMgb3V0IHNvbWUgYGRldmAgdmFyaWFibGVzIGluIHRoZSBgbXQ3OTk2X21hY19mdWxsX3Jlc2V0YCBmdW5jdGlvbjogYGRldi1cdTAwM2VtbGRfaWR4X21hc2sgPSAwO2AgYW5kIGBkZXYtXHUwMDNlbWxkX3JlbWFwX2lkeF9tYXNrID0gMDtgLiBTZWVtcyBsaWtlIHNvbWUga2luZCBvZiByZXNldCBhbmQgbGluayBtYW5hZ2VtZW50IGNoYW5nZS4uLiBtYWtlcyBtZSB3b25kZXIgd2hhdCB0aGUgY29udGV4dCBpcy5cblxuTm93LCBhIGNyaXRpY2FsIHF1ZXN0aW9uIHBvcHMgaW50byBteSBoZWFkOiBpcyB0aGlzIGRyaXZlciB0ZXN0YWJsZSB3aXRoaW4gYSBRRU1VIGVudmlyb25tZW50PyBDb25zaWRlcmluZyB0aGlzIGlzIGEgZHJpdmVyIGZvciBhIHNwZWNpZmljIHBpZWNlIG9mIGhhcmR3YXJlIOKAkyB0aGUgTVQ3OTk2IOKAkyBJIGltbWVkaWF0ZWx5IGRvdWJ0IGl0LiBUeXBpY2FsbHksIHRoZXNlIGtpbmRzIG9mIGRyaXZlcnMgYXJlbid0IGVhc2lseSB0ZXN0YWJsZSB1bmxlc3MgeW91J3JlIGRlYWxpbmcgd2l0aCBhIHNpbXVsYXRpb24gbGlrZSBtYWM4MDIxMV9od3NpbSBvciBpZiB0aGUgZGV2aWNlIGNvbm5lY3RzIHRocm91Z2ggYW4gaW50ZXJmYWNlIHRoYXQgY2FuIGJlIGVtdWxhdGVkLCBsaWtlIFVTQiwgU0RJTywgb3IgUENJZS5cblxuVGhlIGtleSB0aGVuIGlzIHdoZXRoZXIgdGhlIE1UNzk5NiB1c2VzIFBDSWUuIElmIGl0IGRvZXMsIHdlJ3JlIGxpa2VseSBsb29raW5nIGF0IGEgbmVlZCBmb3IgcGh5c2ljYWwgaGFyZHdhcmUsIHdoaWNoIGNvbXBsaWNhdGVzIHRlc3RpbmcgY29uc2lkZXJhYmx5LiBJJ2xsIG5lZWQgdG8gY2hlY2sgdGhlIGNvZGViYXNlIGZvciB0aGUgTVQ3OTk2J3MgaW50ZXJmYWNlLiBNeSBpbnN0aW5jdCBpcyB0byBsb29rIGF0IGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuY2Agb3IgYSBmaWxlIHdpdGggYSBzaW1pbGFyIG5hbWUgaW4gdGhlIGRpcmVjdG9yeSB0byBjb25maXJtLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjU5LCJPdXRwdXRUb2tlbnMiOjUwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjgyLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMDc6MTg6MzAuMTQwNjgyNzM1WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMzMDg1MDMxMiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc5OTZfbWFjX2Z1bGxfcmVzZXRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jPTIzOTI9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYzoyMzkzOm10Nzk5Nl9tYWNfZnVsbF9yZXNldChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jLTIzOTQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmM9MjQ1Nz12b2lkIG10Nzk5Nl9tYWNfcmVzZXRfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYy0yNDc3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jOjI0Nzg6XFx0XFx0bXQ3OTk2X21hY19mdWxsX3Jlc2V0KGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMtMjQ3OS1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMDc6MTg6MzAuNDcxNTM4NDQ3WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzMxMTM2NDkyMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqQW5hbHl6aW5nIEJ1cyBNVDc5OTYqKlxuXG5BbHJpZ2h0LCBsZXQncyBkaXZlIGluLiBUaGUgY29yZSBxdWVzdGlvbiBJIGhhdmUgaGVyZSBpcyBhYm91dCBidXMgKk1UNzk5NiouIFRoYXQncyB0aGUgc3RhcnRpbmcgcG9pbnQuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyBjaGFyYWN0ZXJpc3RpY3MuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBcIldoYXQga2luZCBvZiBidXMgaXMgaXQ/IFdoYXQgZG9lcyB0aGUgJ01UJyBkZXNpZ25hdGlvbiB0ZWxsIG1lP1wiIElzIGl0IGEgbWFudWZhY3R1cmVyIGNvZGUsIGEgcmVnaW9uLCBvciBzb21ldGhpbmcgZWxzZSBlbnRpcmVseT8gR2l2ZW4gbXkgZXhwZXJpZW5jZSwgSSdtIGFscmVhZHkgbWVudGFsbHkgcnVubmluZyB0aHJvdWdoIHBvdGVudGlhbCBidXMgdHlwZXMg4oCTIGlzIGl0IGEgc2VyaWFsIGJ1cywgcGFyYWxsZWwgYnVzLCBhbiBlbWJlZGRlZCBzeXN0ZW0gYnVzLCBvciBwZXJoYXBzIHNvbWV0aGluZyBtb3JlIHNwZWNpYWxpemVkPyBUaGUgbnVtZXJpYyBwb3J0aW9uIGlzIGludGVyZXN0aW5nOyBjYW4gdGhhdCBiZSBtYXBwZWQgdG8gYSBzcGVjaWZpYyBkYXRhIHNoZWV0IG9yIG1hbnVmYWN0dXJlciBzcGVjaWZpY2F0aW9uPyBJJ20gYWxyZWFkeSBtZW50YWxseSBjcm9zcy1yZWZlcmVuY2luZyB0aGlzIHdpdGggbXkgbWVudGFsIGRhdGFiYXNlIG9mIGNvbW1vbiBidXMgc3RhbmRhcmRzIGFuZCB0aGVpciBhc3NvY2lhdGVkIG5hbWluZyBjb252ZW50aW9ucy4gU28sIHRoZSBwcm9jZXNzIGhhcyBiZWd1bjogYSBtZW50YWwgcmV2aWV3IGlzIGluaXRpYXRlZCB0byBjYXRlZ29yaXplIHRoaXMgYnVzIGFuZCBhc3Nlc3MgYW55IHByZS1leGlzdGluZyBrbm93bGVkZ2Ugb24gdGhpcyBzdWJqZWN0LlxuXG5cbiIsIklucHV0VG9rZW5zIjozMjcxLCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMDc6MTg6MzMuNzgyOTA3MTlaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJjb2Rlc2VhcmNoLWRpci1pbmRleCIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjkyNjYwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRGlyXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIkZpbGVzXCI6IFtcbiAgICBcImNvcmVkdW1wLmNcIixcbiAgICBcImNvcmVkdW1wLmhcIixcbiAgICBcImRlYnVnZnMuY1wiLFxuICAgIFwiZG1hLmNcIixcbiAgICBcImVlcHJvbS5jXCIsXG4gICAgXCJlZXByb20uaFwiLFxuICAgIFwiaW5pdC5jXCIsXG4gICAgXCJtYWMuY1wiLFxuICAgIFwibWFjLmhcIixcbiAgICBcIm1haW4uY1wiLFxuICAgIFwibWN1LmNcIixcbiAgICBcIm1jdS5oXCIsXG4gICAgXCJtbWlvLmNcIixcbiAgICBcIm10Nzk5Ni5oXCIsXG4gICAgXCJucHUuY1wiLFxuICAgIFwicGNpLmNcIixcbiAgICBcInJlZ3MuaFwiXG4gIF0sXG4gIFwiU3ViZGlyc1wiOiBudWxsXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwNzoxODozMy43ODMwMDIzNFoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI3NTk4MzczMzUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duOlxuXG4qKkFuYWx5emluZyB0aGUgUG90ZW50aWFsIFBDSWUgRHJpdmVyKipcblxuQWxyaWdodCwgc28gdGhlIGNsdWUgaXMgYHBjaS5jYC4gTXkgZmlyc3QgaW5zdGluY3QgaXMgdG8gZGl2ZSBzdHJhaWdodCBpbnRvIHRoYXQgZmlsZS4gS25vd2luZyB0aGUgY29kZWJhc2UsIHRoZSBmaWxlbmFtZSBpdHNlbGYgc3Ryb25nbHkgc3VnZ2VzdHMgd2UncmUgZGVhbGluZyB3aXRoIGEgUENJLXJlbGF0ZWQgZHJpdmVyLiBUaGUgY3JpdGljYWwgcXVlc3Rpb24gbm93IGlzIHdoZXRoZXIgaXQncyBzcGVjaWZpY2FsbHkgYSBQQ0llIGRyaXZlci4gTGV0J3MgZ2V0IHJpZ2h0IGluIHRoZXJlIGFuZCBzZWUgd2hhdCBpdCBoYXMgdG8gc2F5IGZvciBpdHNlbGYuIFRpbWUgdG8gY29uZmlybSBpZiB0aGlzIGh1bmNoIGhvbGRzIHdhdGVyLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNjYwLCJPdXRwdXRUb2tlbnMiOjQ5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjgsIlRvb2xDYWxscyI6WyJjb2Rlc2VhcmNoLWRpci1pbmRleCJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDA3OjE4OjM2LjU0Mjg0NDEwNloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxODE4MTQ4NTYsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInBjaV9yZWdpc3Rlcl9kcml2ZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDA3OjE4OjM2LjcyNDY3MTg2MVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMxNjMzNDcxODcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSBjb25zaWRlcmluZyB0aGlzIGlzc3VlOlxuXG4qKkV4YW1pbmluZyB0aGUgUENJIE1vZHVsZSBJbml0aWFsaXphdGlvbioqXG5cbk9rYXksIGJlZm9yZSBkaXZpbmcgdG9vIGRlZXAsIEkgc2hvdWxkIHByb2JhYmx5IGRvdWJsZS1jaGVjayB0aGUgbW9kdWxlIGluaXRpYWxpemF0aW9uIGNvZGUgd2l0aGluIGBwY2kuY2AuIE15IGV4cGVyaWVuY2UgdGVsbHMgbWUgdGhhdCdzIG9mdGVuIHRoZSBsb2dpY2FsIHN0YXJ0aW5nIHBvaW50IGZvciB1bmRlcnN0YW5kaW5nIGhvdyB0aGUgUENJIHN1YnN5c3RlbSBpcyBicm91Z2h0IG9ubGluZS4gSXQncyB1c3VhbGx5IHdoZXJlIHRoZSBiYXNlIHNldHVwLCByZXNvdXJjZSBhbGxvY2F0aW9uLCBhbmQgYW55IGluaXRpYWwgcHJvYmluZyBvZiB0aGUgUENJIGJ1cyBoYXBwZW4uIEknZCB3YW50IHRvIGxvb2sgZm9yIHRoZSBlbnRyeSBwb2ludCwgdGhlIG1haW4gaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24uIEZyb20gdGhlcmUsIEkgY2FuIGdldCBhIGNsZWFyZXIgcGljdHVyZSBvZiBob3cgaXQgYWxsIGhhbmdzIHRvZ2V0aGVyIGFuZCB3aGF0IHN0ZXBzIGFyZSBwZXJmb3JtZWQgaW4gc2VxdWVuY2UuIFRoaXMgc2hvdWxkIGhlbHAgdG8gdW5kZXJzdGFuZCB0aGUgb3ZlcmFsbCBhcmNoaXRlY3R1cmUsIGFuZCBpZGVudGlmeSB3aGVyZSBhIHByb2JsZW0gbWlnaHQgYmUgb3JpZ2luYXRpbmcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM4NjAsIk91dHB1dFRva2VucyI6NDIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwNzoxODozOS44ODgwMjIwNzdaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI1MDI1MTYwMywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtb2R1bGVfaW5pdFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jPTg4Mz1zdGF0aWMgdm9pZCBfX2V4aXQgbXQ3OTk2X2V4aXQodm9pZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04ODgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jOjg4OTptb2R1bGVfaW5pdChtdDc5OTZfaW5pdCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg5MC1tb2R1bGVfZXhpdChtdDc5OTZfZXhpdCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDA3OjE4OjQwLjEzODI3OTI0MloiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0Mjc1NzY5MDExLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipEaXZpbmcgaW50byB0aGUgYG10Nzk5Nl9pbml0YCBGdW5jdGlvbioqXG5cbkFscmlnaHQsIGxldCdzIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gaW1tZWRpYXRlbHkgZGlzc2VjdCB3aGF0J3MgaGFwcGVuaW5nIHdpdGhpbiB0aGUgYG10Nzk5Nl9pbml0YCBmdW5jdGlvbi4gR2l2ZW4gb3VyIHNoYXJlZCB1bmRlcnN0YW5kaW5nIG9mIHRoaXMgYXJjaGl0ZWN0dXJlLCBJJ20gdGhpbmtpbmcgd2UgbmVlZCB0byBxdWlja2x5IHBpbnBvaW50IHRoZSBrZXkgaW5pdGlhbGl6YXRpb24gcm91dGluZXMsIGZvY3VzaW5nIG9uIHRoaW5ncyBsaWtlOlxuXG4qICAgKipDaGlwc2V0IElkZW50aWZpY2F0aW9uIGFuZCBWZXJpZmljYXRpb246KiogQXJlIHdlIGNvbmZpcm1pbmcgdGhlIHNpbGljb24gcmV2aXNpb24sIGNoZWNraW5nIGZvciBhbnkgcGxhdGZvcm0tc3BlY2lmaWMgcXVpcmtzLCBhbmQgdmFsaWRhdGluZyB0aGUgZXhwZWN0ZWQgaGFyZHdhcmUgcHJlc2VuY2U/XG4qICAgKipDbG9jayBDb25maWd1cmF0aW9uOioqIFVuZG91YnRlZGx5LCBpdCdzIHNldHRpbmcgdXAgdGhlIGNydWNpYWwgY2xvY2sgZG9tYWlucyDigJMgdGhlIHJlZmVyZW5jZSBjbG9jaywgdGhlIE1BQyBjbG9jaywgUExMcywgZXRjLiBJJ2xsIG5lZWQgdG8gc2VlIGlmIGl0J3MgdXNpbmcgdGhlIHN0YW5kYXJkIGZyZXF1ZW5jeSBkaXZpZGVycyBhbmQgbXVsdGlwbGllcnMgb3IgaWYgdGhlcmUgYXJlIGFueSBjdXN0b20gc2V0dGluZ3MuXG4qICAgKipQb3dlciBNYW5hZ2VtZW50IEluaXRpYWxpemF0aW9uOioqIEknbSBleHBlY3RpbmcgdG8gc2VlIGNhbGxzIHJlbGF0ZWQgdG8gcG93ZXIgZG9tYWluIGVuYWJsZW1lbnQsIHZvbHRhZ2Ugc2NhbGluZyAoaWYgYXBwbGljYWJsZSksIGFuZCBwb3NzaWJseSBzb21lIGluaXRpYWwgbG93LXBvd2VyIHN0YXRlIGNvbmZpZ3VyYXRpb25zLlxuKiAgICoqUmVnaXN0ZXIgSW5pdGlhbGl6YXRpb246KiogVGhpcyBpcyBhIGJpZyBvbmUuIFdoYXQgcmVnaXN0ZXIgYmxvY2tzIGFyZSBiZWluZyB0b3VjaGVkIGluaXRpYWxseT8gSXMgaXQgd3JpdGluZyBkZWZhdWx0IHZhbHVlcyB0byB0aGUgY29udHJvbCByZWdpc3RlcnMsIHNldHRpbmcgdXAgaW50ZXJydXB0IG1hc2tzLCBvciBwcm9ncmFtbWluZyB0aGUgRE1BIGVuZ2luZXM/IEknbGwgcGF5IGNsb3NlIGF0dGVudGlvbiB0byB0aGUgb3JkZXIgaGVyZSwgYXMgdGhpcyBjYW4gYmUgY3JpdGljYWwgdG8gb3ZlcmFsbCBwZXJmb3JtYW5jZSBhbmQgc3RhYmlsaXR5LlxuKiAgICoqSGFyZHdhcmUgQWJzdHJhY3Rpb24gTGF5ZXIgKEhBTCkgU2V0dXA6KiogTGV0J3Mgc2VlIGhvdyBpdCdzIGludGVyZmFjaW5nIHdpdGggdGhlIHVuZGVybHlpbmcgaGFyZHdhcmUsIG1ha2luZyBzdXJlIHRoaW5ncyBsaWtlIHRoZSBkZXZpY2UgdHJlZSBjb25maWd1cmF0aW9uIGlzIGFjY291bnRlZCBmb3IgaW4gdGhpcyBpbml0aWFsIHN0YXRlLiBBbnkgY3VzdG9tIEhBTCBsYXllciBzaG91bGQgYmUgY2xlYXJseSBkZWZpbmVkLlxuXG5JJ20gaG9waW5nIHRvIHF1aWNrbHkgaWRlbnRpZnkgdGhlIGNydWNpYWwgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucywgc28gSSdtIHByZXBhcmVkIGZvciB0aGUgbmV4dCBzdGFnZSBvZiBvdXIgcHJvamVjdC4gSSdtIGxvb2tpbmcgZm9yIHdoZXJlIGFueSBwb3RlbnRpYWwgaXNzdWVzIG1pZ2h0IGNyb3AgdXAgZHVyaW5nIGhhcmR3YXJlIGJyaW5nLXVwIG9yIGlmIHRoZXJlIGFyZSBhbnkgc3BlY2lmaWMgaW5pdGlhbGl6YXRpb24gdHdlYWtzIHJlcXVpcmVkIGZvciB0aGlzIHBhcnRpY3VsYXIgZHJpdmVyIGluc3RhbmNlLiBMZXQncyBzZWUgd2hhdCB3ZSB1bmNvdmVyIVxuXG5cbiIsIklucHV0VG9rZW5zIjo0MjM3LCJPdXRwdXRUb2tlbnMiOjUwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMDc6MTg6NDQuNDE0MDUxMjgyWiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NzE0OTkxNjQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXQ3OTk2X2luaXRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYz04MTY9c3RydWN0IG10Nzk5Nl9kZXYgKm10Nzk5Nl9tbWlvX3Byb2JlKHN0cnVjdCBkZXZpY2UgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODY3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYzo4Njg6c3RhdGljIGludCBfX2luaXQgbXQ3OTk2X2luaXQodm9pZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODY5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYz04ODM9c3RhdGljIHZvaWQgX19leGl0IG10Nzk5Nl9leGl0KHZvaWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODg4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYzo4ODk6bW9kdWxlX2luaXQobXQ3OTk2X2luaXQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04OTAtbW9kdWxlX2V4aXQobXQ3OTk2X2V4aXQpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwNzoxODo0NS4wODU1NTYzNzZaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzgyNzI3NDc3MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMgYG10Nzk5Nl9pbml0YCBmdW5jdGlvbi4gTXkgZXhwZXJ0IGV5ZSBpbW1lZGlhdGVseSBzdGFydHMgc2Nhbm5pbmcgZm9yIHRoZSBjcml0aWNhbCBwaWVjZXMuIEknbSBsb29raW5nIGZvciB0aGUgY29yZSBpbml0aWFsaXphdGlvbiBzZXF1ZW5jZXMg4oCTIHRoZSBzdGVwcyB0aGF0IGJyaW5nIHRoaXMgc2lsaWNvbiB0byBsaWZlLiBJIHdhbnQgdG8gc2VlIGhvdyB0aGUgcmVnaXN0ZXJzIGFyZSBjb25maWd1cmVkLCBob3cgdGhlIGNsb2NrcyBhcmUgbWFuYWdlZCwgYW5kIHdoYXQgdGhlIG92ZXJhbGwgcG93ZXItdXAgc2VxdWVuY2UgbG9va3MgbGlrZS4gQXJlIHRoZXJlIGFueSBlYXJseSBzZWxmLXRlc3RzIG9yIGNhbGlicmF0aW9uIHJvdXRpbmVzIHRoYXQgZ2l2ZSBtZSBhIHF1aWNrIGhlYWx0aCBjaGVjaz9cblxuSSdsbCBiZSBwYXlpbmcgY2xvc2UgYXR0ZW50aW9uIHRvIGFueSBkZXBlbmRlbmNpZXMuIERvZXMgaXQgcmVseSBvbiBzcGVjaWZpYyBoYXJkd2FyZSBzZXR0aW5ncyBiZWluZyBpbiBwbGFjZSwgb3Igb3RoZXIgZHJpdmVycyBiZWluZyBsb2FkZWQgYmVmb3JlaGFuZD8gQXJlIHRoZXJlIGFueSBlcnJvciBoYW5kbGluZyBtZWNoYW5pc21zPyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgcmVzaWxpZW50IHRoaXMgaW5pdGlhbGl6YXRpb24gcHJvY2VzcyBpcy4gQSByb2J1c3QgaW5pdGlhbGl6YXRpb24gaXMga2V5LlxuXG5UaGVuLCBJJ2xsIGJlIGxvb2tpbmcgZm9yIGFueSBjdXN0b21pemF0aW9ucy4gSXMgdGhpcyBhIGdlbmVyaWMgaW5pdGlhbGl6YXRpb24sIG9yIGFyZSB0aGVyZSBwbGF0Zm9ybS1zcGVjaWZpYyBhZGFwdGF0aW9ucz8gSSdtIHBhcnRpY3VsYXJseSBpbnRlcmVzdGVkIGlmIHRoZXJlIGFyZSBhbnkgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gYmxvY2tzLiBUaGF0IHRlbGxzIG1lIHdoYXQgdmFyaWF0aW9ucyB0aGUgdmVuZG9yIHN1cHBvcnRzIGluIGRpZmZlcmVudCBTS1VzLiBBbnkgZGV2aWNlLXRyZWUgaW50ZXJhY3Rpb25zIHdvdWxkIGFsc28gYmUgdXNlZnVsIHRvIGtub3cuXG5cblVsdGltYXRlbHksIEknbSB0cnlpbmcgdG8gYnVpbGQgYSBtZW50YWwgbWFwIG9mIGhvdyB0aGlzIHRoaW5nIGdldHMgZ29pbmcsIHNvIEkga25vdyB3aGVyZSBwb3RlbnRpYWwgYm90dGxlbmVja3Mgb3IgaXNzdWVzIG1pZ2h0IGFyaXNlLiBJJ2xsIGJlIHdhdGNoaW5nIGZvciBhbnkgYXJlYXMgd2hlcmUgdGhlIGluaXRpYWxpemF0aW9uIG1pZ2h0IGJlIHNlbnNpdGl2ZSB0byB0aW1pbmcgb3IgZXh0ZXJuYWwgZW52aXJvbm1lbnRhbCBjb25kaXRpb25zLiBNeSBnb2FsIGlzIHRvIHVuZGVyc3RhbmQgaG93IHRoaXMgY2hpcCBpcyBicm91Z2h0IGZyb20gYSBkZWFkIHN0YXRlIGludG8gYSBmdW5jdGlvbmFsLCBjb21tdW5pY2F0aW5nIGVudGl0eS5cblxuXG4iLCJJbnB1dFRva2VucyI6NTAzNywiT3V0cHV0VG9rZW5zIjo1MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDA3OjE4OjQ4LjkxMjgzNDIzN1oiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzk4NTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDg2MCxcbiAgXCJMaW5lQ291bnRcIjogNDBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDg2MDpcXHRcXHRyZXR1cm4gZGV2O1xcbiA4NjE6XFx0XFxuIDg2MjpcXHRlcnJvcjpcXG4gODYzOlxcdFxcdG10NzZfZnJlZV9kZXZpY2UoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Nik7XFxuIDg2NDpcXHRcXG4gODY1OlxcdFxcdHJldHVybiBFUlJfUFRSKHJldCk7XFxuIDg2NjpcXHR9XFxuIDg2NzpcXHRcXG4gODY4OlxcdHN0YXRpYyBpbnQgX19pbml0IG10Nzk5Nl9pbml0KHZvaWQpXFxuIDg2OTpcXHR7XFxuIDg3MDpcXHRcXHRpbnQgcmV0O1xcbiA4NzE6XFx0XFxuIDg3MjpcXHRcXHRyZXQgPSBwY2lfcmVnaXN0ZXJfZHJpdmVyKFxcdTAwMjZtdDc5OTZfaGlmX2RyaXZlcik7XFxuIDg3MzpcXHRcXHRpZiAocmV0KVxcbiA4NzQ6XFx0XFx0XFx0cmV0dXJuIHJldDtcXG4gODc1OlxcdFxcbiA4NzY6XFx0XFx0cmV0ID0gcGNpX3JlZ2lzdGVyX2RyaXZlcihcXHUwMDI2bXQ3OTk2X3BjaV9kcml2ZXIpO1xcbiA4Nzc6XFx0XFx0aWYgKHJldClcXG4gODc4OlxcdFxcdFxcdHBjaV91bnJlZ2lzdGVyX2RyaXZlcihcXHUwMDI2bXQ3OTk2X2hpZl9kcml2ZXIpO1xcbiA4Nzk6XFx0XFxuIDg4MDpcXHRcXHRyZXR1cm4gcmV0O1xcbiA4ODE6XFx0fVxcbiA4ODI6XFx0XFxuIDg4MzpcXHRzdGF0aWMgdm9pZCBfX2V4aXQgbXQ3OTk2X2V4aXQodm9pZClcXG4gODg0OlxcdHtcXG4gODg1OlxcdFxcdHBjaV91bnJlZ2lzdGVyX2RyaXZlcihcXHUwMDI2bXQ3OTk2X3BjaV9kcml2ZXIpO1xcbiA4ODY6XFx0XFx0cGNpX3VucmVnaXN0ZXJfZHJpdmVyKFxcdTAwMjZtdDc5OTZfaGlmX2RyaXZlcik7XFxuIDg4NzpcXHR9XFxuIDg4ODpcXHRcXG4gODg5OlxcdG1vZHVsZV9pbml0KG10Nzk5Nl9pbml0KTtcXG4gODkwOlxcdG1vZHVsZV9leGl0KG10Nzk5Nl9leGl0KTtcXG4gODkxOlxcdE1PRFVMRV9ERVNDUklQVElPTihcXFwiTWVkaWFUZWsgTVQ3OTk2IE1NSU8gaGVscGVyc1xcXCIpO1xcbiA4OTI6XFx0TU9EVUxFX0xJQ0VOU0UoXFxcIkR1YWwgQlNEL0dQTFxcXCIpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwNzoxODo0OC45MTMwNzYyOTdaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTI1MDA4OTA0NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBGdXp6aW5nIFN1aXRhYmlsaXR5KipcblxuT2theSwgc28gSSd2ZSBqdXN0IHByb2Nlc3NlZCB0aGUgaW5mb3JtYXRpb24gb24gdGhlc2UgdHdvIFBDSSBkcml2ZXJzLCBgbXQ3OTk2X2hpZl9kcml2ZXJgIGFuZCBgbXQ3OTk2X3BjaV9kcml2ZXJgLiBJdCdzIHByZXR0eSBjbGVhciB0aGF0IHRoZXNlIGFyZSBzcGVjaWZpYyB0byB0aGUgTWVkaWF0ZWsgTVQ3OTk2IGNoaXBzZXQsIHdoaWNoIGlzIGEgUENJZSBkZXZpY2UuIFRoaXMgaXMgYSBjcnVjaWFsIHBpZWNlIG9mIGluZm9ybWF0aW9uLlxuXG5Ob3csIEknbSByZWNhbGxpbmcgdGhlIGZ1enppbmcgZ3VpZGVsaW5lcy4gU3BlY2lmaWNhbGx5LCB0aGF0IGlmIGEgcGF0Y2ggaW52b2x2ZXMgZHJpdmVycyBmb3IgdmVuZG9yLXNwZWNpZmljIFBDSWUgZGV2aWNlcyB0aGF0IGFyZW4ndCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLCB3ZSBzaG91bGQgc2V0IGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBUaGUgZXhhbXBsZXMgdGhleSBnaXZlIOKAkyBgbWx4c3dgLCBgcGRzX2NvcmVgLCBgcWVkYCwgYGlvbmljYCwgYGFtZGdwdWAg4oCTIGFyZSBhbGwgcG9pbnRpbmcgdG8gaGFyZHdhcmUgZGVwZW5kZW5jaWVzLlxuXG5HaXZlbiB0aGF0IHRoaXMgYG10Nzk5NmAgZHJpdmVyIGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgd2lyZWxlc3MgZHJpdmVyIGFuZCwgaW1wb3J0YW50bHksICpyZXF1aXJlcyogcGh5c2ljYWwgUENJZSBoYXJkd2FyZSwgd2hpY2ggaXNuJ3QgZ29pbmcgdG8gYmUgcHJlc2VudCBpbiBhIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnQsIEknbSBmb3JjZWQgdG8gY29uY2x1ZGUgdGhhdCB0aGlzIHBhdGNoIGlzICoqbm90KiogYSBnb29kIGNhbmRpZGF0ZSBmb3IgZnV6emluZy4gSXQncyBhIHRleHRib29rIGNhc2Ugb2Ygc29tZXRoaW5nIHRoYXQncyBsaWtlbHkgdG8gZ2VuZXJhdGUgYSBsb3Qgb2Ygbm9pc2UgYW5kIGZhbHNlIHBvc2l0aXZlcyBpbiBhIHB1cmVseSBzb2Z0d2FyZS1iYXNlZCBmdXp6aW5nIGNhbXBhaWduLiBUaGUgcGF0Y2ggd29uJ3QgZXhlY3V0ZSB3aXRob3V0IHRoZSBwaHlzaWNhbCBoYXJkd2FyZSwgYW5kIHRoYXQgbWVhbnMgZnV6emluZyBpdCBpbiBhIHR5cGljYWwgUUVNVSBlbnZpcm9ubWVudCBpcyBhIHdhc3RlIG9mIHRpbWUgYW5kIHJlc291cmNlcy4gU2V0dGluZyBgV29ydGhGdXp6aW5nPWZhbHNlYCBpcyB0aGUgcmlnaHQgY2FsbCBoZXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1ODQ5LCJPdXRwdXRUb2tlbnMiOjg0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTcyLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMDc6MTg6NTQuMTYzMTcwMTQ0WiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzM2MTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lZGlhdGVrIE1UNzk5NiB3aXJlbGVzcyBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgaGFyZHdhcmUgZHJpdmVyLiBTaW5jZSB0aGlzIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLCB0aGUgY29kZSBjYW5ub3QgYmUgcmVhY2hlZCBvciB0ZXN0ZWQgaW4gYSB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50LlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lZGlhdGVrIE1UNzk5NiB3aXJlbGVzcyBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgaGFyZHdhcmUgZHJpdmVyLiBTaW5jZSB0aGlzIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLCB0aGUgY29kZSBjYW5ub3QgYmUgcmVhY2hlZCBvciB0ZXN0ZWQgaW4gYSB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50LlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowl6sf7[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-28 06:50:41 +0000 UTC FinishedAt: 2026-07-28 07:18:55 +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+CgkJCTx0ZD4yMDI2LzA3LzI4IDA3OjE4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWRpYXRlayBNVDc5OTYgd2lyZWxlc3MgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGhhcmR3YXJlIGRyaXZlci4gU2luY2UgdGhpcyBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSwgdGhlIGNvZGUgY2Fubm90IGJlIHJlYWNoZWQgb3IgdGVzdGVkIGluIGEgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDc6MTg8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBmMjYxOTM2MmVkZDc2NmU0YWY3MDBmNWM2MDU2ZTNhNzQ5YWQ3OTg2XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBKdWwgMjggMDc6MTg6MjEgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuY1xuaW5kZXggMGVlYmM4MTgyY2E5YWEuLjQ2M2JlYzdhZDczMmEwIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jXG5AQCAtMjM4NCw2ICYjNDM7MjM4NCw5IEBAIG10Nzk5Nl9tYWNfcmVzZXRfdmlmX2l0ZXIodm9pZCAqZGF0YSwgdTggKm1hYywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZilcbiBcdFx0a2ZyZWVfcmN1KG1saW5rLCByY3VfaGVhZCk7XG4gXHR9XG4gXHRyY3VfcmVhZF91bmxvY2soKTtcbiYjNDM7XG4mIzQzO1x0bXZpZi1cdTAwM2V2YWxpZF9saW5rcyA9IDA7XG4mIzQzO1x0bXZpZi1cdTAwM2VkZWZsaW5rX2lkID0gSUVFRTgwMjExX0xJTktfVU5TUEVDSUZJRUQ7XG4gfVxuIFxuIHN0YXRpYyB2b2lkXG5AQCAtMjQyMyw2ICYjNDM7MjQyNiw5IEBAIG10Nzk5Nl9tYWNfZnVsbF9yZXNldChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuIFx0XHRcdFx0XHRcdCAgIG10Nzk5Nl9tYWNfcmVzZXRfdmlmX2l0ZXIsIGRldik7XG4gXHRtdDc2X3Jlc2V0X2RldmljZShcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG4gXG4mIzQzO1x0ZGV2LVx1MDAzZW1sZF9pZHhfbWFzayA9IDA7XG4mIzQzO1x0ZGV2LVx1MDAzZW1sZF9yZW1hcF9pZHhfbWFzayA9IDA7XG4mIzQzO1xuIFx0SU5JVF9MSVNUX0hFQUQoXHUwMDI2ZGV2LVx1MDAzZXN0YV9yY19saXN0KTtcbiBcdElOSVRfTElTVF9IRUFEKFx1MDAyNmRldi1cdTAwM2V0d3RfbGlzdCk7XG4gXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDc6MTg8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWRpYXRlayBNVDc5OTYgd2lyZWxlc3MgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGhhcmR3YXJlIGRyaXZlci4gU2luY2UgdGhpcyBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSwgdGhlIGNvZGUgY2Fubm90IGJlIHJlYWNoZWQgb3IgdGVzdGVkIGluIGEgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBmMjYxOTM2MmVkZDc2NmU0YWY3MDBmNWM2MDU2ZTNhNzQ5YWQ3OTg2CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFR1ZSBKdWwgMjggMDc6MTg6MjEgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jCmluZGV4IDBlZWJjODE4MmNhOWFhLi40NjNiZWM3YWQ3MzJhMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMKQEAgLTIzODQsNiAmIzQzOzIzODQsOSBAQCBtdDc5OTZfbWFjX3Jlc2V0X3ZpZl9pdGVyKHZvaWQgKmRhdGEsIHU4ICptYWMsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYpCiAJCWtmcmVlX3JjdShtbGluaywgcmN1X2hlYWQpOwogCX0KIAlyY3VfcmVhZF91bmxvY2soKTsKJiM0MzsKJiM0MzsJbXZpZi0mZ3Q7dmFsaWRfbGlua3MgPSAwOwomIzQzOwltdmlmLSZndDtkZWZsaW5rX2lkID0gSUVFRTgwMjExX0xJTktfVU5TUEVDSUZJRUQ7CiB9CiAKIHN0YXRpYyB2b2lkCkBAIC0yNDIzLDYgJiM0MzsyNDI2LDkgQEAgbXQ3OTk2X21hY19mdWxsX3Jlc2V0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpCiAJCQkJCQkgICBtdDc5OTZfbWFjX3Jlc2V0X3ZpZl9pdGVyLCBkZXYpOwogCW10NzZfcmVzZXRfZGV2aWNlKCZhbXA7ZGV2LSZndDttdDc2KTsKIAomIzQzOwlkZXYtJmd0O21sZF9pZHhfbWFzayA9IDA7CiYjNDM7CWRldi0mZ3Q7bWxkX3JlbWFwX2lkeF9tYXNrID0gMDsKJiM0MzsKIAlJTklUX0xJU1RfSEVBRCgmYW1wO2Rldi0mZ3Q7c3RhX3JjX2xpc3QpOwogCUlOSVRfTElTVF9IRUFEKCZhbXA7ZGV2LSZndDt0d3RfbGlzdCk7CiAKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDc6MTg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjI1OQoJCQkJCQkJb3V0cHV0OiA1MAoJCQkJCQkJdGhvdWdodHM6IDI4MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBNZWRpYXRlayBNVDc5OTYgRHJpdmVyIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBhIHBhdGNoIHRoYXQgdHdlYWtzIHRoZSBgbXQ3OTk2L21hYy5jYCBkcml2ZXIgZmlsZSBmb3IgdGhlIE1lZGlhdGVrIE1UNzk5NiB3aXJlbGVzcyBjaGlwc2V0LiBJdCBsb29rcyBsaWtlIHRoZSBwYXRjaCBpcyBpbml0aWFsaXppbmcgc29tZSB2YXJpYWJsZXMgd2l0aGluIHRoZSBgbXQ3OTk2X21hY19yZXNldF92aWZfaXRlcmAgZnVuY3Rpb246IHNwZWNpZmljYWxseSBzZXR0aW5nIGBtdmlmLSZndDt2YWxpZF9saW5rcyA9IDA7YCBhbmQgYG12aWYtJmd0O2RlZmxpbmtfaWQgPSBJRUVFODAyMTFfTElOS19VTlNQRUNJRklFRDtgLiBJdCBhbHNvIGxvb2tzIGxpa2UgaXQgemVyb2VzIG91dCBzb21lIGBkZXZgIHZhcmlhYmxlcyBpbiB0aGUgYG10Nzk5Nl9tYWNfZnVsbF9yZXNldGAgZnVuY3Rpb246IGBkZXYtJmd0O21sZF9pZHhfbWFzayA9IDA7YCBhbmQgYGRldi0mZ3Q7bWxkX3JlbWFwX2lkeF9tYXNrID0gMDtgLiBTZWVtcyBsaWtlIHNvbWUga2luZCBvZiByZXNldCBhbmQgbGluayBtYW5hZ2VtZW50IGNoYW5nZS4uLiBtYWtlcyBtZSB3b25kZXIgd2hhdCB0aGUgY29udGV4dCBpcy4KCk5vdywgYSBjcml0aWNhbCBxdWVzdGlvbiBwb3BzIGludG8gbXkgaGVhZDogaXMgdGhpcyBkcml2ZXIgdGVzdGFibGUgd2l0aGluIGEgUUVNVSBlbnZpcm9ubWVudD8gQ29uc2lkZXJpbmcgdGhpcyBpcyBhIGRyaXZlciBmb3IgYSBzcGVjaWZpYyBwaWVjZSBvZiBoYXJkd2FyZSDigJMgdGhlIE1UNzk5NiDigJMgSSBpbW1lZGlhdGVseSBkb3VidCBpdC4gVHlwaWNhbGx5LCB0aGVzZSBraW5kcyBvZiBkcml2ZXJzIGFyZW4mIzM5O3QgZWFzaWx5IHRlc3RhYmxlIHVubGVzcyB5b3UmIzM5O3JlIGRlYWxpbmcgd2l0aCBhIHNpbXVsYXRpb24gbGlrZSBtYWM4MDIxMV9od3NpbSBvciBpZiB0aGUgZGV2aWNlIGNvbm5lY3RzIHRocm91Z2ggYW4gaW50ZXJmYWNlIHRoYXQgY2FuIGJlIGVtdWxhdGVkLCBsaWtlIFVTQiwgU0RJTywgb3IgUENJZS4KClRoZSBrZXkgdGhlbiBpcyB3aGV0aGVyIHRoZSBNVDc5OTYgdXNlcyBQQ0llLiBJZiBpdCBkb2VzLCB3ZSYjMzk7cmUgbGlrZWx5IGxvb2tpbmcgYXQgYSBuZWVkIGZvciBwaHlzaWNhbCBoYXJkd2FyZSwgd2hpY2ggY29tcGxpY2F0ZXMgdGVzdGluZyBjb25zaWRlcmFibHkuIEkmIzM5O2xsIG5lZWQgdG8gY2hlY2sgdGhlIGNvZGViYXNlIGZvciB0aGUgTVQ3OTk2JiMzOTtzIGludGVyZmFjZS4gTXkgaW5zdGluY3QgaXMgdG8gbG9vayBhdCBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmNgIG9yIGEgZmlsZSB3aXRoIGEgc2ltaWxhciBuYW1lIGluIHRoZSBkaXJlY3RvcnkgdG8gY29uZmlybS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwNzoxODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdDc5OTZfbWFjX2Z1bGxfcmVzZXQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmM9MjM5Mj1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmM6MjM5MzptdDc5OTZfbWFjX2Z1bGxfcmVzZXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jLTIzOTQte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jPTI0NTc9dm9pZCBtdDc5OTZfbWFjX3Jlc2V0X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jLTI0NzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYzoyNDc4Olx0XHRtdDc5OTZfbWFjX2Z1bGxfcmVzZXQoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jLTI0NzktXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDc6MTg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzI3MQoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDEzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkFuYWx5emluZyBCdXMgTVQ3OTk2KioKCkFscmlnaHQsIGxldCYjMzk7cyBkaXZlIGluLiBUaGUgY29yZSBxdWVzdGlvbiBJIGhhdmUgaGVyZSBpcyBhYm91dCBidXMgKk1UNzk5NiouIFRoYXQmIzM5O3MgdGhlIHN0YXJ0aW5nIHBvaW50LiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdHMgY2hhcmFjdGVyaXN0aWNzLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgJiMzNDtXaGF0IGtpbmQgb2YgYnVzIGlzIGl0PyBXaGF0IGRvZXMgdGhlICYjMzk7TVQmIzM5OyBkZXNpZ25hdGlvbiB0ZWxsIG1lPyYjMzQ7IElzIGl0IGEgbWFudWZhY3R1cmVyIGNvZGUsIGEgcmVnaW9uLCBvciBzb21ldGhpbmcgZWxzZSBlbnRpcmVseT8gR2l2ZW4gbXkgZXhwZXJpZW5jZSwgSSYjMzk7bSBhbHJlYWR5IG1lbnRhbGx5IHJ1bm5pbmcgdGhyb3VnaCBwb3RlbnRpYWwgYnVzIHR5cGVzIOKAkyBpcyBpdCBhIHNlcmlhbCBidXMsIHBhcmFsbGVsIGJ1cywgYW4gZW1iZWRkZWQgc3lzdGVtIGJ1cywgb3IgcGVyaGFwcyBzb21ldGhpbmcgbW9yZSBzcGVjaWFsaXplZD8gVGhlIG51bWVyaWMgcG9ydGlvbiBpcyBpbnRlcmVzdGluZzsgY2FuIHRoYXQgYmUgbWFwcGVkIHRvIGEgc3BlY2lmaWMgZGF0YSBzaGVldCBvciBtYW51ZmFjdHVyZXIgc3BlY2lmaWNhdGlvbj8gSSYjMzk7bSBhbHJlYWR5IG1lbnRhbGx5IGNyb3NzLXJlZmVyZW5jaW5nIHRoaXMgd2l0aCBteSBtZW50YWwgZGF0YWJhc2Ugb2YgY29tbW9uIGJ1cyBzdGFuZGFyZHMgYW5kIHRoZWlyIGFzc29jaWF0ZWQgbmFtaW5nIGNvbnZlbnRpb25zLiBTbywgdGhlIHByb2Nlc3MgaGFzIGJlZ3VuOiBhIG1lbnRhbCByZXZpZXcgaXMgaW5pdGlhdGVkIHRvIGNhdGVnb3JpemUgdGhpcyBidXMgYW5kIGFzc2VzcyBhbnkgcHJlLWV4aXN0aW5nIGtub3dsZWRnZSBvbiB0aGlzIHN1YmplY3QuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDc6MTg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5jb2Rlc2VhcmNoLWRpci1pbmRleDwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RGlyJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGVzJiMzNDs6IFsKICAgICYjMzQ7Y29yZWR1bXAuYyYjMzQ7LAogICAgJiMzNDtjb3JlZHVtcC5oJiMzNDssCiAgICAmIzM0O2RlYnVnZnMuYyYjMzQ7LAogICAgJiMzNDtkbWEuYyYjMzQ7LAogICAgJiMzNDtlZXByb20uYyYjMzQ7LAogICAgJiMzNDtlZXByb20uaCYjMzQ7LAogICAgJiMzNDtpbml0LmMmIzM0OywKICAgICYjMzQ7bWFjLmMmIzM0OywKICAgICYjMzQ7bWFjLmgmIzM0OywKICAgICYjMzQ7bWFpbi5jJiMzNDssCiAgICAmIzM0O21jdS5jJiMzNDssCiAgICAmIzM0O21jdS5oJiMzNDssCiAgICAmIzM0O21taW8uYyYjMzQ7LAogICAgJiMzNDttdDc5OTYuaCYjMzQ7LAogICAgJiMzNDtucHUuYyYjMzQ7LAogICAgJiMzNDtwY2kuYyYjMzQ7LAogICAgJiMzNDtyZWdzLmgmIzM0OwogIF0sCiAgJiMzNDtTdWJkaXJzJiMzNDs6IG51bGwKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDA3OjE4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM2NjAKCQkJCQkJCW91dHB1dDogNDkKCQkJCQkJCXRob3VnaHRzOiAyOAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duOgoKKipBbmFseXppbmcgdGhlIFBvdGVudGlhbCBQQ0llIERyaXZlcioqCgpBbHJpZ2h0LCBzbyB0aGUgY2x1ZSBpcyBgcGNpLmNgLiBNeSBmaXJzdCBpbnN0aW5jdCBpcyB0byBkaXZlIHN0cmFpZ2h0IGludG8gdGhhdCBmaWxlLiBLbm93aW5nIHRoZSBjb2RlYmFzZSwgdGhlIGZpbGVuYW1lIGl0c2VsZiBzdHJvbmdseSBzdWdnZXN0cyB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIGEgUENJLXJlbGF0ZWQgZHJpdmVyLiBUaGUgY3JpdGljYWwgcXVlc3Rpb24gbm93IGlzIHdoZXRoZXIgaXQmIzM5O3Mgc3BlY2lmaWNhbGx5IGEgUENJZSBkcml2ZXIuIExldCYjMzk7cyBnZXQgcmlnaHQgaW4gdGhlcmUgYW5kIHNlZSB3aGF0IGl0IGhhcyB0byBzYXkgZm9yIGl0c2VsZi4gVGltZSB0byBjb25maXJtIGlmIHRoaXMgaHVuY2ggaG9sZHMgd2F0ZXIuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDc6MTg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtwY2lfcmVnaXN0ZXJfZHJpdmVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDA3OjE4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM4NjAKCQkJCQkJCW91dHB1dDogNDIKCQkJCQkJCXRob3VnaHRzOiAxNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSBjb25zaWRlcmluZyB0aGlzIGlzc3VlOgoKKipFeGFtaW5pbmcgdGhlIFBDSSBNb2R1bGUgSW5pdGlhbGl6YXRpb24qKgoKT2theSwgYmVmb3JlIGRpdmluZyB0b28gZGVlcCwgSSBzaG91bGQgcHJvYmFibHkgZG91YmxlLWNoZWNrIHRoZSBtb2R1bGUgaW5pdGlhbGl6YXRpb24gY29kZSB3aXRoaW4gYHBjaS5jYC4gTXkgZXhwZXJpZW5jZSB0ZWxscyBtZSB0aGF0JiMzOTtzIG9mdGVuIHRoZSBsb2dpY2FsIHN0YXJ0aW5nIHBvaW50IGZvciB1bmRlcnN0YW5kaW5nIGhvdyB0aGUgUENJIHN1YnN5c3RlbSBpcyBicm91Z2h0IG9ubGluZS4gSXQmIzM5O3MgdXN1YWxseSB3aGVyZSB0aGUgYmFzZSBzZXR1cCwgcmVzb3VyY2UgYWxsb2NhdGlvbiwgYW5kIGFueSBpbml0aWFsIHByb2Jpbmcgb2YgdGhlIFBDSSBidXMgaGFwcGVuLiBJJiMzOTtkIHdhbnQgdG8gbG9vayBmb3IgdGhlIGVudHJ5IHBvaW50LCB0aGUgbWFpbiBpbml0aWFsaXphdGlvbiBmdW5jdGlvbi4gRnJvbSB0aGVyZSwgSSBjYW4gZ2V0IGEgY2xlYXJlciBwaWN0dXJlIG9mIGhvdyBpdCBhbGwgaGFuZ3MgdG9nZXRoZXIgYW5kIHdoYXQgc3RlcHMgYXJlIHBlcmZvcm1lZCBpbiBzZXF1ZW5jZS4gVGhpcyBzaG91bGQgaGVscCB0byB1bmRlcnN0YW5kIHRoZSBvdmVyYWxsIGFyY2hpdGVjdHVyZSwgYW5kIGlkZW50aWZ5IHdoZXJlIGEgcHJvYmxlbSBtaWdodCBiZSBvcmlnaW5hdGluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDc6MTg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bW9kdWxlX2luaXQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jPTg4Mz1zdGF0aWMgdm9pZCBfX2V4aXQgbXQ3OTk2X2V4aXQodm9pZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODg4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jOjg4OTptb2R1bGVfaW5pdChtdDc5OTZfaW5pdCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODkwLW1vZHVsZV9leGl0KG10Nzk5Nl9leGl0KTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDc6MTg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDIzNwoJCQkJCQkJb3V0cHV0OiA1MAoJCQkJCQkJdGhvdWdodHM6IDE2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkRpdmluZyBpbnRvIHRoZSBgbXQ3OTk2X2luaXRgIEZ1bmN0aW9uKioKCkFscmlnaHQsIGxldCYjMzk7cyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGltbWVkaWF0ZWx5IGRpc3NlY3Qgd2hhdCYjMzk7cyBoYXBwZW5pbmcgd2l0aGluIHRoZSBgbXQ3OTk2X2luaXRgIGZ1bmN0aW9uLiBHaXZlbiBvdXIgc2hhcmVkIHVuZGVyc3RhbmRpbmcgb2YgdGhpcyBhcmNoaXRlY3R1cmUsIEkmIzM5O20gdGhpbmtpbmcgd2UgbmVlZCB0byBxdWlja2x5IHBpbnBvaW50IHRoZSBrZXkgaW5pdGlhbGl6YXRpb24gcm91dGluZXMsIGZvY3VzaW5nIG9uIHRoaW5ncyBsaWtlOgoKKiAgICoqQ2hpcHNldCBJZGVudGlmaWNhdGlvbiBhbmQgVmVyaWZpY2F0aW9uOioqIEFyZSB3ZSBjb25maXJtaW5nIHRoZSBzaWxpY29uIHJldmlzaW9uLCBjaGVja2luZyBmb3IgYW55IHBsYXRmb3JtLXNwZWNpZmljIHF1aXJrcywgYW5kIHZhbGlkYXRpbmcgdGhlIGV4cGVjdGVkIGhhcmR3YXJlIHByZXNlbmNlPwoqICAgKipDbG9jayBDb25maWd1cmF0aW9uOioqIFVuZG91YnRlZGx5LCBpdCYjMzk7cyBzZXR0aW5nIHVwIHRoZSBjcnVjaWFsIGNsb2NrIGRvbWFpbnMg4oCTIHRoZSByZWZlcmVuY2UgY2xvY2ssIHRoZSBNQUMgY2xvY2ssIFBMTHMsIGV0Yy4gSSYjMzk7bGwgbmVlZCB0byBzZWUgaWYgaXQmIzM5O3MgdXNpbmcgdGhlIHN0YW5kYXJkIGZyZXF1ZW5jeSBkaXZpZGVycyBhbmQgbXVsdGlwbGllcnMgb3IgaWYgdGhlcmUgYXJlIGFueSBjdXN0b20gc2V0dGluZ3MuCiogICAqKlBvd2VyIE1hbmFnZW1lbnQgSW5pdGlhbGl6YXRpb246KiogSSYjMzk7bSBleHBlY3RpbmcgdG8gc2VlIGNhbGxzIHJlbGF0ZWQgdG8gcG93ZXIgZG9tYWluIGVuYWJsZW1lbnQsIHZvbHRhZ2Ugc2NhbGluZyAoaWYgYXBwbGljYWJsZSksIGFuZCBwb3NzaWJseSBzb21lIGluaXRpYWwgbG93LXBvd2VyIHN0YXRlIGNvbmZpZ3VyYXRpb25zLgoqICAgKipSZWdpc3RlciBJbml0aWFsaXphdGlvbjoqKiBUaGlzIGlzIGEgYmlnIG9uZS4gV2hhdCByZWdpc3RlciBibG9ja3MgYXJlIGJlaW5nIHRvdWNoZWQgaW5pdGlhbGx5PyBJcyBpdCB3cml0aW5nIGRlZmF1bHQgdmFsdWVzIHRvIHRoZSBjb250cm9sIHJlZ2lzdGVycywgc2V0dGluZyB1cCBpbnRlcnJ1cHQgbWFza3MsIG9yIHByb2dyYW1taW5nIHRoZSBETUEgZW5naW5lcz8gSSYjMzk7bGwgcGF5IGNsb3NlIGF0dGVudGlvbiB0byB0aGUgb3JkZXIgaGVyZSwgYXMgdGhpcyBjYW4gYmUgY3JpdGljYWwgdG8gb3ZlcmFsbCBwZXJmb3JtYW5jZSBhbmQgc3RhYmlsaXR5LgoqICAgKipIYXJkd2FyZSBBYnN0cmFjdGlvbiBMYXllciAoSEFMKSBTZXR1cDoqKiBMZXQmIzM5O3Mgc2VlIGhvdyBpdCYjMzk7cyBpbnRlcmZhY2luZyB3aXRoIHRoZSB1bmRlcmx5aW5nIGhhcmR3YXJlLCBtYWtpbmcgc3VyZSB0aGluZ3MgbGlrZSB0aGUgZGV2aWNlIHRyZWUgY29uZmlndXJhdGlvbiBpcyBhY2NvdW50ZWQgZm9yIGluIHRoaXMgaW5pdGlhbCBzdGF0ZS4gQW55IGN1c3RvbSBIQUwgbGF5ZXIgc2hvdWxkIGJlIGNsZWFybHkgZGVmaW5lZC4KCkkmIzM5O20gaG9waW5nIHRvIHF1aWNrbHkgaWRlbnRpZnkgdGhlIGNydWNpYWwgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucywgc28gSSYjMzk7bSBwcmVwYXJlZCBmb3IgdGhlIG5leHQgc3RhZ2Ugb2Ygb3VyIHByb2plY3QuIEkmIzM5O20gbG9va2luZyBmb3Igd2hlcmUgYW55IHBvdGVudGlhbCBpc3N1ZXMgbWlnaHQgY3JvcCB1cCBkdXJpbmcgaGFyZHdhcmUgYnJpbmctdXAgb3IgaWYgdGhlcmUgYXJlIGFueSBzcGVjaWZpYyBpbml0aWFsaXphdGlvbiB0d2Vha3MgcmVxdWlyZWQgZm9yIHRoaXMgcGFydGljdWxhciBkcml2ZXIgaW5zdGFuY2UuIExldCYjMzk7cyBzZWUgd2hhdCB3ZSB1bmNvdmVyIQoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwNzoxODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdDc5OTZfaW5pdCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM9ODE2PXN0cnVjdCBtdDc5OTZfZGV2ICptdDc5OTZfbW1pb19wcm9iZShzdHJ1Y3QgZGV2aWNlICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04NjctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM6ODY4OnN0YXRpYyBpbnQgX19pbml0IG10Nzk5Nl9pbml0KHZvaWQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODY5LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM9ODgzPXN0YXRpYyB2b2lkIF9fZXhpdCBtdDc5OTZfZXhpdCh2b2lkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04ODgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM6ODg5Om1vZHVsZV9pbml0KG10Nzk5Nl9pbml0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04OTAtbW9kdWxlX2V4aXQobXQ3OTk2X2V4aXQpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwNzoxODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MDM3CgkJCQkJCQlvdXRwdXQ6IDUxCgkJCQkJCQl0aG91Z2h0czogMTMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcyBgbXQ3OTk2X2luaXRgIGZ1bmN0aW9uLiBNeSBleHBlcnQgZXllIGltbWVkaWF0ZWx5IHN0YXJ0cyBzY2FubmluZyBmb3IgdGhlIGNyaXRpY2FsIHBpZWNlcy4gSSYjMzk7bSBsb29raW5nIGZvciB0aGUgY29yZSBpbml0aWFsaXphdGlvbiBzZXF1ZW5jZXMg4oCTIHRoZSBzdGVwcyB0aGF0IGJyaW5nIHRoaXMgc2lsaWNvbiB0byBsaWZlLiBJIHdhbnQgdG8gc2VlIGhvdyB0aGUgcmVnaXN0ZXJzIGFyZSBjb25maWd1cmVkLCBob3cgdGhlIGNsb2NrcyBhcmUgbWFuYWdlZCwgYW5kIHdoYXQgdGhlIG92ZXJhbGwgcG93ZXItdXAgc2VxdWVuY2UgbG9va3MgbGlrZS4gQXJlIHRoZXJlIGFueSBlYXJseSBzZWxmLXRlc3RzIG9yIGNhbGlicmF0aW9uIHJvdXRpbmVzIHRoYXQgZ2l2ZSBtZSBhIHF1aWNrIGhlYWx0aCBjaGVjaz8KCkkmIzM5O2xsIGJlIHBheWluZyBjbG9zZSBhdHRlbnRpb24gdG8gYW55IGRlcGVuZGVuY2llcy4gRG9lcyBpdCByZWx5IG9uIHNwZWNpZmljIGhhcmR3YXJlIHNldHRpbmdzIGJlaW5nIGluIHBsYWNlLCBvciBvdGhlciBkcml2ZXJzIGJlaW5nIGxvYWRlZCBiZWZvcmVoYW5kPyBBcmUgdGhlcmUgYW55IGVycm9yIGhhbmRsaW5nIG1lY2hhbmlzbXM/IEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyByZXNpbGllbnQgdGhpcyBpbml0aWFsaXphdGlvbiBwcm9jZXNzIGlzLiBBIHJvYnVzdCBpbml0aWFsaXphdGlvbiBpcyBrZXkuCgpUaGVuLCBJJiMzOTtsbCBiZSBsb29raW5nIGZvciBhbnkgY3VzdG9taXphdGlvbnMuIElzIHRoaXMgYSBnZW5lcmljIGluaXRpYWxpemF0aW9uLCBvciBhcmUgdGhlcmUgcGxhdGZvcm0tc3BlY2lmaWMgYWRhcHRhdGlvbnM/IEkmIzM5O20gcGFydGljdWxhcmx5IGludGVyZXN0ZWQgaWYgdGhlcmUgYXJlIGFueSBjb25kaXRpb25hbCBjb21waWxhdGlvbiBibG9ja3MuIFRoYXQgdGVsbHMgbWUgd2hhdCB2YXJpYXRpb25zIHRoZSB2ZW5kb3Igc3VwcG9ydHMgaW4gZGlmZmVyZW50IFNLVXMuIEFueSBkZXZpY2UtdHJlZSBpbnRlcmFjdGlvbnMgd291bGQgYWxzbyBiZSB1c2VmdWwgdG8ga25vdy4KClVsdGltYXRlbHksIEkmIzM5O20gdHJ5aW5nIHRvIGJ1aWxkIGEgbWVudGFsIG1hcCBvZiBob3cgdGhpcyB0aGluZyBnZXRzIGdvaW5nLCBzbyBJIGtub3cgd2hlcmUgcG90ZW50aWFsIGJvdHRsZW5lY2tzIG9yIGlzc3VlcyBtaWdodCBhcmlzZS4gSSYjMzk7bGwgYmUgd2F0Y2hpbmcgZm9yIGFueSBhcmVhcyB3aGVyZSB0aGUgaW5pdGlhbGl6YXRpb24gbWlnaHQgYmUgc2Vuc2l0aXZlIHRvIHRpbWluZyBvciBleHRlcm5hbCBlbnZpcm9ubWVudGFsIGNvbmRpdGlvbnMuIE15IGdvYWwgaXMgdG8gdW5kZXJzdGFuZCBob3cgdGhpcyBjaGlwIGlzIGJyb3VnaHQgZnJvbSBhIGRlYWQgc3RhdGUgaW50byBhIGZ1bmN0aW9uYWwsIGNvbW11bmljYXRpbmcgZW50aXR5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwNzoxODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDg2MCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA0MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgODYwOlx0XHRyZXR1cm4gZGV2O1xuIDg2MTpcdFxuIDg2MjpcdGVycm9yOlxuIDg2MzpcdFx0bXQ3Nl9mcmVlX2RldmljZShcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG4gODY0Olx0XG4gODY1Olx0XHRyZXR1cm4gRVJSX1BUUihyZXQpO1xuIDg2NjpcdH1cbiA4Njc6XHRcbiA4Njg6XHRzdGF0aWMgaW50IF9faW5pdCBtdDc5OTZfaW5pdCh2b2lkKVxuIDg2OTpcdHtcbiA4NzA6XHRcdGludCByZXQ7XG4gODcxOlx0XG4gODcyOlx0XHRyZXQgPSBwY2lfcmVnaXN0ZXJfZHJpdmVyKFx1MDAyNm10Nzk5Nl9oaWZfZHJpdmVyKTtcbiA4NzM6XHRcdGlmIChyZXQpXG4gODc0Olx0XHRcdHJldHVybiByZXQ7XG4gODc1Olx0XG4gODc2Olx0XHRyZXQgPSBwY2lfcmVnaXN0ZXJfZHJpdmVyKFx1MDAyNm10Nzk5Nl9wY2lfZHJpdmVyKTtcbiA4Nzc6XHRcdGlmIChyZXQpXG4gODc4Olx0XHRcdHBjaV91bnJlZ2lzdGVyX2RyaXZlcihcdTAwMjZtdDc5OTZfaGlmX2RyaXZlcik7XG4gODc5Olx0XG4gODgwOlx0XHRyZXR1cm4gcmV0O1xuIDg4MTpcdH1cbiA4ODI6XHRcbiA4ODM6XHRzdGF0aWMgdm9pZCBfX2V4aXQgbXQ3OTk2X2V4aXQodm9pZClcbiA4ODQ6XHR7XG4gODg1Olx0XHRwY2lfdW5yZWdpc3Rlcl9kcml2ZXIoXHUwMDI2bXQ3OTk2X3BjaV9kcml2ZXIpO1xuIDg4NjpcdFx0cGNpX3VucmVnaXN0ZXJfZHJpdmVyKFx1MDAyNm10Nzk5Nl9oaWZfZHJpdmVyKTtcbiA4ODc6XHR9XG4gODg4Olx0XG4gODg5Olx0bW9kdWxlX2luaXQobXQ3OTk2X2luaXQpO1xuIDg5MDpcdG1vZHVsZV9leGl0KG10Nzk5Nl9leGl0KTtcbiA4OTE6XHRNT0RVTEVfREVTQ1JJUFRJT04oXCYjMzQ7TWVkaWFUZWsgTVQ3OTk2IE1NSU8gaGVscGVyc1wmIzM0Oyk7XG4gODkyOlx0TU9EVUxFX0xJQ0VOU0UoXCYjMzQ7RHVhbCBCU0QvR1BMXCYjMzQ7KTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDc6MTg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTg0OQoJCQkJCQkJb3V0cHV0OiA4NAoJCQkJCQkJdGhvdWdodHM6IDE3MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBGdXp6aW5nIFN1aXRhYmlsaXR5KioKCk9rYXksIHNvIEkmIzM5O3ZlIGp1c3QgcHJvY2Vzc2VkIHRoZSBpbmZvcm1hdGlvbiBvbiB0aGVzZSB0d28gUENJIGRyaXZlcnMsIGBtdDc5OTZfaGlmX2RyaXZlcmAgYW5kIGBtdDc5OTZfcGNpX2RyaXZlcmAuIEl0JiMzOTtzIHByZXR0eSBjbGVhciB0aGF0IHRoZXNlIGFyZSBzcGVjaWZpYyB0byB0aGUgTWVkaWF0ZWsgTVQ3OTk2IGNoaXBzZXQsIHdoaWNoIGlzIGEgUENJZSBkZXZpY2UuIFRoaXMgaXMgYSBjcnVjaWFsIHBpZWNlIG9mIGluZm9ybWF0aW9uLgoKTm93LCBJJiMzOTttIHJlY2FsbGluZyB0aGUgZnV6emluZyBndWlkZWxpbmVzLiBTcGVjaWZpY2FsbHksIHRoYXQgaWYgYSBwYXRjaCBpbnZvbHZlcyBkcml2ZXJzIGZvciB2ZW5kb3Itc3BlY2lmaWMgUENJZSBkZXZpY2VzIHRoYXQgYXJlbiYjMzk7dCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLCB3ZSBzaG91bGQgc2V0IGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBUaGUgZXhhbXBsZXMgdGhleSBnaXZlIOKAkyBgbWx4c3dgLCBgcGRzX2NvcmVgLCBgcWVkYCwgYGlvbmljYCwgYGFtZGdwdWAg4oCTIGFyZSBhbGwgcG9pbnRpbmcgdG8gaGFyZHdhcmUgZGVwZW5kZW5jaWVzLgoKR2l2ZW4gdGhhdCB0aGlzIGBtdDc5OTZgIGRyaXZlciBpcyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIHdpcmVsZXNzIGRyaXZlciBhbmQsIGltcG9ydGFudGx5LCAqcmVxdWlyZXMqIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUsIHdoaWNoIGlzbiYjMzk7dCBnb2luZyB0byBiZSBwcmVzZW50IGluIGEgc3RhbmRhcmQgUUVNVSBlbnZpcm9ubWVudCwgSSYjMzk7bSBmb3JjZWQgdG8gY29uY2x1ZGUgdGhhdCB0aGlzIHBhdGNoIGlzICoqbm90KiogYSBnb29kIGNhbmRpZGF0ZSBmb3IgZnV6emluZy4gSXQmIzM5O3MgYSB0ZXh0Ym9vayBjYXNlIG9mIHNvbWV0aGluZyB0aGF0JiMzOTtzIGxpa2VseSB0byBnZW5lcmF0ZSBhIGxvdCBvZiBub2lzZSBhbmQgZmFsc2UgcG9zaXRpdmVzIGluIGEgcHVyZWx5IHNvZnR3YXJlLWJhc2VkIGZ1enppbmcgY2FtcGFpZ24uIFRoZSBwYXRjaCB3b24mIzM5O3QgZXhlY3V0ZSB3aXRob3V0IHRoZSBwaHlzaWNhbCBoYXJkd2FyZSwgYW5kIHRoYXQgbWVhbnMgZnV6emluZyBpdCBpbiBhIHR5cGljYWwgUUVNVSBlbnZpcm9ubWVudCBpcyBhIHdhc3RlIG9mIHRpbWUgYW5kIHJlc291cmNlcy4gU2V0dGluZyBgV29ydGhGdXp6aW5nPWZhbHNlYCBpcyB0aGUgcmlnaHQgY2FsbCBoZXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwNzoxODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWRpYXRlayBNVDc5OTYgd2lyZWxlc3MgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGhhcmR3YXJlIGRyaXZlci4gU2luY2UgdGhpcyBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSwgdGhlIGNvZGUgY2Fubm90IGJlIHJlYWNoZWQgb3IgdGVzdGVkIGluIGEgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWRpYXRlayBNVDc5OTYgd2lyZWxlc3MgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGhhcmR3YXJlIGRyaXZlci4gU2luY2UgdGhpcyBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSwgdGhlIGNvZGUgY2Fubm90IGJlIHJlYWNoZWQgb3IgdGVzdGVkIGluIGEgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwNzoxODoyMy41MzcwODQzNDlaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMDYyNjEzMTEwNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lZGlhdGVrIE1UNzk5NiB3aXJlbGVzcyBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgaGFyZHdhcmUgZHJpdmVyLiBTaW5jZSB0aGlzIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLCB0aGUgY29kZSBjYW5ub3QgYmUgcmVhY2hlZCBvciB0ZXN0ZWQgaW4gYSB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50LlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMDc6MTg6MjMuNTM3MDkwODE5WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2OTkyNTQ4NDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBmMjYxOTM2MmVkZDc2NmU0YWY3MDBmNWM2MDU2ZTNhNzQ5YWQ3OTg2XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUdWUgSnVsIDI4IDA3OjE4OjIxIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmNcXG5pbmRleCAwZWViYzgxODJjYTlhYS4uNDYzYmVjN2FkNzMyYTAgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuY1xcbkBAIC0yMzg0LDYgKzIzODQsOSBAQCBtdDc5OTZfbWFjX3Jlc2V0X3ZpZl9pdGVyKHZvaWQgKmRhdGEsIHU4ICptYWMsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYpXFxuIFxcdFxcdGtmcmVlX3JjdShtbGluaywgcmN1X2hlYWQpO1xcbiBcXHR9XFxuIFxcdHJjdV9yZWFkX3VubG9jaygpO1xcbitcXG4rXFx0bXZpZi1cXHUwMDNldmFsaWRfbGlua3MgPSAwO1xcbitcXHRtdmlmLVxcdTAwM2VkZWZsaW5rX2lkID0gSUVFRTgwMjExX0xJTktfVU5TUEVDSUZJRUQ7XFxuIH1cXG4gXFxuIHN0YXRpYyB2b2lkXFxuQEAgLTI0MjMsNiArMjQyNiw5IEBAIG10Nzk5Nl9tYWNfZnVsbF9yZXNldChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbiBcXHRcXHRcXHRcXHRcXHRcXHQgICBtdDc5OTZfbWFjX3Jlc2V0X3ZpZl9pdGVyLCBkZXYpO1xcbiBcXHRtdDc2X3Jlc2V0X2RldmljZShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG4gXFxuK1xcdGRldi1cXHUwMDNlbWxkX2lkeF9tYXNrID0gMDtcXG4rXFx0ZGV2LVxcdTAwM2VtbGRfcmVtYXBfaWR4X21hc2sgPSAwO1xcbitcXG4gXFx0SU5JVF9MSVNUX0hFQUQoXFx1MDAyNmRldi1cXHUwMDNlc3RhX3JjX2xpc3QpO1xcbiBcXHRJTklUX0xJU1RfSEVBRChcXHUwMDI2ZGV2LVxcdTAwM2V0d3RfbGlzdCk7XFxuIFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwNzoxODoyNC4yMzcyOTE1NzNaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjoyOTkyNTkxNTEzMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lZGlhdGVrIE1UNzk5NiB3aXJlbGVzcyBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgaGFyZHdhcmUgZHJpdmVyLiBTaW5jZSB0aGlzIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLCB0aGUgY29kZSBjYW5ub3QgYmUgcmVhY2hlZCBvciB0ZXN0ZWQgaW4gYSB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50LlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgZjI2MTkzNjJlZGQ3NjZlNGFmNzAwZjVjNjA1NmUzYTc0OWFkNzk4NlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgSnVsIDI4IDA3OjE4OjIxIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuY1xuaW5kZXggMGVlYmM4MTgyY2E5YWEuLjQ2M2JlYzdhZDczMmEwIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jXG5AQCAtMjM4NCw2ICsyMzg0LDkgQEAgbXQ3OTk2X21hY19yZXNldF92aWZfaXRlcih2b2lkICpkYXRhLCB1OCAqbWFjLCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmKVxuIFx0XHRrZnJlZV9yY3UobWxpbmssIHJjdV9oZWFkKTtcbiBcdH1cbiBcdHJjdV9yZWFkX3VubG9jaygpO1xuK1xuK1x0bXZpZi1cdTAwM2V2YWxpZF9saW5rcyA9IDA7XG4rXHRtdmlmLVx1MDAzZWRlZmxpbmtfaWQgPSBJRUVFODAyMTFfTElOS19VTlNQRUNJRklFRDtcbiB9XG4gXG4gc3RhdGljIHZvaWRcbkBAIC0yNDIzLDYgKzI0MjYsOSBAQCBtdDc5OTZfbWFjX2Z1bGxfcmVzZXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcbiBcdFx0XHRcdFx0XHQgICBtdDc5OTZfbWFjX3Jlc2V0X3ZpZl9pdGVyLCBkZXYpO1xuIFx0bXQ3Nl9yZXNldF9kZXZpY2UoXHUwMDI2ZGV2LVx1MDAzZW10NzYpO1xuIFxuK1x0ZGV2LVx1MDAzZW1sZF9pZHhfbWFzayA9IDA7XG4rXHRkZXYtXHUwMDNlbWxkX3JlbWFwX2lkeF9tYXNrID0gMDtcbitcbiBcdElOSVRfTElTVF9IRUFEKFx1MDAyNmRldi1cdTAwM2VzdGFfcmNfbGlzdCk7XG4gXHRJTklUX0xJU1RfSEVBRChcdTAwMjZkZXYtXHUwMDNldHd0X2xpc3QpO1xuIFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMDc6MTg6MjQuMjM3MjkzMzAzWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTkwMzM4NTA4MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBNZWRpYXRlayBNVDc5OTYgRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYSBwYXRjaCB0aGF0IHR3ZWFrcyB0aGUgYG10Nzk5Ni9tYWMuY2AgZHJpdmVyIGZpbGUgZm9yIHRoZSBNZWRpYXRlayBNVDc5OTYgd2lyZWxlc3MgY2hpcHNldC4gSXQgbG9va3MgbGlrZSB0aGUgcGF0Y2ggaXMgaW5pdGlhbGl6aW5nIHNvbWUgdmFyaWFibGVzIHdpdGhpbiB0aGUgYG10Nzk5Nl9tYWNfcmVzZXRfdmlmX2l0ZXJgIGZ1bmN0aW9uOiBzcGVjaWZpY2FsbHkgc2V0dGluZyBgbXZpZi1cdTAwM2V2YWxpZF9saW5rcyA9IDA7YCBhbmQgYG12aWYtXHUwMDNlZGVmbGlua19pZCA9IElFRUU4MDIxMV9MSU5LX1VOU1BFQ0lGSUVEO2AuIEl0IGFsc28gbG9va3MgbGlrZSBpdCB6ZXJvZXMgb3V0IHNvbWUgYGRldmAgdmFyaWFibGVzIGluIHRoZSBgbXQ3OTk2X21hY19mdWxsX3Jlc2V0YCBmdW5jdGlvbjogYGRldi1cdTAwM2VtbGRfaWR4X21hc2sgPSAwO2AgYW5kIGBkZXYtXHUwMDNlbWxkX3JlbWFwX2lkeF9tYXNrID0gMDtgLiBTZWVtcyBsaWtlIHNvbWUga2luZCBvZiByZXNldCBhbmQgbGluayBtYW5hZ2VtZW50IGNoYW5nZS4uLiBtYWtlcyBtZSB3b25kZXIgd2hhdCB0aGUgY29udGV4dCBpcy5cblxuTm93LCBhIGNyaXRpY2FsIHF1ZXN0aW9uIHBvcHMgaW50byBteSBoZWFkOiBpcyB0aGlzIGRyaXZlciB0ZXN0YWJsZSB3aXRoaW4gYSBRRU1VIGVudmlyb25tZW50PyBDb25zaWRlcmluZyB0aGlzIGlzIGEgZHJpdmVyIGZvciBhIHNwZWNpZmljIHBpZWNlIG9mIGhhcmR3YXJlIOKAkyB0aGUgTVQ3OTk2IOKAkyBJIGltbWVkaWF0ZWx5IGRvdWJ0IGl0LiBUeXBpY2FsbHksIHRoZXNlIGtpbmRzIG9mIGRyaXZlcnMgYXJlbid0IGVhc2lseSB0ZXN0YWJsZSB1bmxlc3MgeW91J3JlIGRlYWxpbmcgd2l0aCBhIHNpbXVsYXRpb24gbGlrZSBtYWM4MDIxMV9od3NpbSBvciBpZiB0aGUgZGV2aWNlIGNvbm5lY3RzIHRocm91Z2ggYW4gaW50ZXJmYWNlIHRoYXQgY2FuIGJlIGVtdWxhdGVkLCBsaWtlIFVTQiwgU0RJTywgb3IgUENJZS5cblxuVGhlIGtleSB0aGVuIGlzIHdoZXRoZXIgdGhlIE1UNzk5NiB1c2VzIFBDSWUuIElmIGl0IGRvZXMsIHdlJ3JlIGxpa2VseSBsb29raW5nIGF0IGEgbmVlZCBmb3IgcGh5c2ljYWwgaGFyZHdhcmUsIHdoaWNoIGNvbXBsaWNhdGVzIHRlc3RpbmcgY29uc2lkZXJhYmx5LiBJJ2xsIG5lZWQgdG8gY2hlY2sgdGhlIGNvZGViYXNlIGZvciB0aGUgTVQ3OTk2J3MgaW50ZXJmYWNlLiBNeSBpbnN0aW5jdCBpcyB0byBsb29rIGF0IGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuY2Agb3IgYSBmaWxlIHdpdGggYSBzaW1pbGFyIG5hbWUgaW4gdGhlIGRpcmVjdG9yeSB0byBjb25maXJtLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjU5LCJPdXRwdXRUb2tlbnMiOjUwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjgyLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMDc6MTg6MzAuMTQwNjgyNzM1WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMzMDg1MDMxMiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc5OTZfbWFjX2Z1bGxfcmVzZXRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jPTIzOTI9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYzoyMzkzOm10Nzk5Nl9tYWNfZnVsbF9yZXNldChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jLTIzOTQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmM9MjQ1Nz12b2lkIG10Nzk5Nl9tYWNfcmVzZXRfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYy0yNDc3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jOjI0Nzg6XFx0XFx0bXQ3OTk2X21hY19mdWxsX3Jlc2V0KGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMtMjQ3OS1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMDc6MTg6MzAuNDcxNTM4NDQ3WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzMxMTM2NDkyMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqQW5hbHl6aW5nIEJ1cyBNVDc5OTYqKlxuXG5BbHJpZ2h0LCBsZXQncyBkaXZlIGluLiBUaGUgY29yZSBxdWVzdGlvbiBJIGhhdmUgaGVyZSBpcyBhYm91dCBidXMgKk1UNzk5NiouIFRoYXQncyB0aGUgc3RhcnRpbmcgcG9pbnQuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyBjaGFyYWN0ZXJpc3RpY3MuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBcIldoYXQga2luZCBvZiBidXMgaXMgaXQ/IFdoYXQgZG9lcyB0aGUgJ01UJyBkZXNpZ25hdGlvbiB0ZWxsIG1lP1wiIElzIGl0IGEgbWFudWZhY3R1cmVyIGNvZGUsIGEgcmVnaW9uLCBvciBzb21ldGhpbmcgZWxzZSBlbnRpcmVseT8gR2l2ZW4gbXkgZXhwZXJpZW5jZSwgSSdtIGFscmVhZHkgbWVudGFsbHkgcnVubmluZyB0aHJvdWdoIHBvdGVudGlhbCBidXMgdHlwZXMg4oCTIGlzIGl0IGEgc2VyaWFsIGJ1cywgcGFyYWxsZWwgYnVzLCBhbiBlbWJlZGRlZCBzeXN0ZW0gYnVzLCBvciBwZXJoYXBzIHNvbWV0aGluZyBtb3JlIHNwZWNpYWxpemVkPyBUaGUgbnVtZXJpYyBwb3J0aW9uIGlzIGludGVyZXN0aW5nOyBjYW4gdGhhdCBiZSBtYXBwZWQgdG8gYSBzcGVjaWZpYyBkYXRhIHNoZWV0IG9yIG1hbnVmYWN0dXJlciBzcGVjaWZpY2F0aW9uPyBJJ20gYWxyZWFkeSBtZW50YWxseSBjcm9zcy1yZWZlcmVuY2luZyB0aGlzIHdpdGggbXkgbWVudGFsIGRhdGFiYXNlIG9mIGNvbW1vbiBidXMgc3RhbmRhcmRzIGFuZCB0aGVpciBhc3NvY2lhdGVkIG5hbWluZyBjb252ZW50aW9ucy4gU28sIHRoZSBwcm9jZXNzIGhhcyBiZWd1bjogYSBtZW50YWwgcmV2aWV3IGlzIGluaXRpYXRlZCB0byBjYXRlZ29yaXplIHRoaXMgYnVzIGFuZCBhc3Nlc3MgYW55IHByZS1leGlzdGluZyBrbm93bGVkZ2Ugb24gdGhpcyBzdWJqZWN0LlxuXG5cbiIsIklucHV0VG9rZW5zIjozMjcxLCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMDc6MTg6MzMuNzgyOTA3MTlaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJjb2Rlc2VhcmNoLWRpci1pbmRleCIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjkyNjYwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRGlyXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIkZpbGVzXCI6IFtcbiAgICBcImNvcmVkdW1wLmNcIixcbiAgICBcImNvcmVkdW1wLmhcIixcbiAgICBcImRlYnVnZnMuY1wiLFxuICAgIFwiZG1hLmNcIixcbiAgICBcImVlcHJvbS5jXCIsXG4gICAgXCJlZXByb20uaFwiLFxuICAgIFwiaW5pdC5jXCIsXG4gICAgXCJtYWMuY1wiLFxuICAgIFwibWFjLmhcIixcbiAgICBcIm1haW4uY1wiLFxuICAgIFwibWN1LmNcIixcbiAgICBcIm1jdS5oXCIsXG4gICAgXCJtbWlvLmNcIixcbiAgICBcIm10Nzk5Ni5oXCIsXG4gICAgXCJucHUuY1wiLFxuICAgIFwicGNpLmNcIixcbiAgICBcInJlZ3MuaFwiXG4gIF0sXG4gIFwiU3ViZGlyc1wiOiBudWxsXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwNzoxODozMy43ODMwMDIzNFoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI3NTk4MzczMzUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duOlxuXG4qKkFuYWx5emluZyB0aGUgUG90ZW50aWFsIFBDSWUgRHJpdmVyKipcblxuQWxyaWdodCwgc28gdGhlIGNsdWUgaXMgYHBjaS5jYC4gTXkgZmlyc3QgaW5zdGluY3QgaXMgdG8gZGl2ZSBzdHJhaWdodCBpbnRvIHRoYXQgZmlsZS4gS25vd2luZyB0aGUgY29kZWJhc2UsIHRoZSBmaWxlbmFtZSBpdHNlbGYgc3Ryb25nbHkgc3VnZ2VzdHMgd2UncmUgZGVhbGluZyB3aXRoIGEgUENJLXJlbGF0ZWQgZHJpdmVyLiBUaGUgY3JpdGljYWwgcXVlc3Rpb24gbm93IGlzIHdoZXRoZXIgaXQncyBzcGVjaWZpY2FsbHkgYSBQQ0llIGRyaXZlci4gTGV0J3MgZ2V0IHJpZ2h0IGluIHRoZXJlIGFuZCBzZWUgd2hhdCBpdCBoYXMgdG8gc2F5IGZvciBpdHNlbGYuIFRpbWUgdG8gY29uZmlybSBpZiB0aGlzIGh1bmNoIGhvbGRzIHdhdGVyLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNjYwLCJPdXRwdXRUb2tlbnMiOjQ5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjgsIlRvb2xDYWxscyI6WyJjb2Rlc2VhcmNoLWRpci1pbmRleCJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDA3OjE4OjM2LjU0Mjg0NDEwNloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxODE4MTQ4NTYsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInBjaV9yZWdpc3Rlcl9kcml2ZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDA3OjE4OjM2LjcyNDY3MTg2MVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMxNjMzNDcxODcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSBjb25zaWRlcmluZyB0aGlzIGlzc3VlOlxuXG4qKkV4YW1pbmluZyB0aGUgUENJIE1vZHVsZSBJbml0aWFsaXphdGlvbioqXG5cbk9rYXksIGJlZm9yZSBkaXZpbmcgdG9vIGRlZXAsIEkgc2hvdWxkIHByb2JhYmx5IGRvdWJsZS1jaGVjayB0aGUgbW9kdWxlIGluaXRpYWxpemF0aW9uIGNvZGUgd2l0aGluIGBwY2kuY2AuIE15IGV4cGVyaWVuY2UgdGVsbHMgbWUgdGhhdCdzIG9mdGVuIHRoZSBsb2dpY2FsIHN0YXJ0aW5nIHBvaW50IGZvciB1bmRlcnN0YW5kaW5nIGhvdyB0aGUgUENJIHN1YnN5c3RlbSBpcyBicm91Z2h0IG9ubGluZS4gSXQncyB1c3VhbGx5IHdoZXJlIHRoZSBiYXNlIHNldHVwLCByZXNvdXJjZSBhbGxvY2F0aW9uLCBhbmQgYW55IGluaXRpYWwgcHJvYmluZyBvZiB0aGUgUENJIGJ1cyBoYXBwZW4uIEknZCB3YW50IHRvIGxvb2sgZm9yIHRoZSBlbnRyeSBwb2ludCwgdGhlIG1haW4gaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24uIEZyb20gdGhlcmUsIEkgY2FuIGdldCBhIGNsZWFyZXIgcGljdHVyZSBvZiBob3cgaXQgYWxsIGhhbmdzIHRvZ2V0aGVyIGFuZCB3aGF0IHN0ZXBzIGFyZSBwZXJmb3JtZWQgaW4gc2VxdWVuY2UuIFRoaXMgc2hvdWxkIGhlbHAgdG8gdW5kZXJzdGFuZCB0aGUgb3ZlcmFsbCBhcmNoaXRlY3R1cmUsIGFuZCBpZGVudGlmeSB3aGVyZSBhIHByb2JsZW0gbWlnaHQgYmUgb3JpZ2luYXRpbmcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM4NjAsIk91dHB1dFRva2VucyI6NDIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwNzoxODozOS44ODgwMjIwNzdaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI1MDI1MTYwMywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtb2R1bGVfaW5pdFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jPTg4Mz1zdGF0aWMgdm9pZCBfX2V4aXQgbXQ3OTk2X2V4aXQodm9pZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04ODgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jOjg4OTptb2R1bGVfaW5pdChtdDc5OTZfaW5pdCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg5MC1tb2R1bGVfZXhpdChtdDc5OTZfZXhpdCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDA3OjE4OjQwLjEzODI3OTI0MloiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0Mjc1NzY5MDExLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipEaXZpbmcgaW50byB0aGUgYG10Nzk5Nl9pbml0YCBGdW5jdGlvbioqXG5cbkFscmlnaHQsIGxldCdzIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gaW1tZWRpYXRlbHkgZGlzc2VjdCB3aGF0J3MgaGFwcGVuaW5nIHdpdGhpbiB0aGUgYG10Nzk5Nl9pbml0YCBmdW5jdGlvbi4gR2l2ZW4gb3VyIHNoYXJlZCB1bmRlcnN0YW5kaW5nIG9mIHRoaXMgYXJjaGl0ZWN0dXJlLCBJJ20gdGhpbmtpbmcgd2UgbmVlZCB0byBxdWlja2x5IHBpbnBvaW50IHRoZSBrZXkgaW5pdGlhbGl6YXRpb24gcm91dGluZXMsIGZvY3VzaW5nIG9uIHRoaW5ncyBsaWtlOlxuXG4qICAgKipDaGlwc2V0IElkZW50aWZpY2F0aW9uIGFuZCBWZXJpZmljYXRpb246KiogQXJlIHdlIGNvbmZpcm1pbmcgdGhlIHNpbGljb24gcmV2aXNpb24sIGNoZWNraW5nIGZvciBhbnkgcGxhdGZvcm0tc3BlY2lmaWMgcXVpcmtzLCBhbmQgdmFsaWRhdGluZyB0aGUgZXhwZWN0ZWQgaGFyZHdhcmUgcHJlc2VuY2U/XG4qICAgKipDbG9jayBDb25maWd1cmF0aW9uOioqIFVuZG91YnRlZGx5LCBpdCdzIHNldHRpbmcgdXAgdGhlIGNydWNpYWwgY2xvY2sgZG9tYWlucyDigJMgdGhlIHJlZmVyZW5jZSBjbG9jaywgdGhlIE1BQyBjbG9jaywgUExMcywgZXRjLiBJJ2xsIG5lZWQgdG8gc2VlIGlmIGl0J3MgdXNpbmcgdGhlIHN0YW5kYXJkIGZyZXF1ZW5jeSBkaXZpZGVycyBhbmQgbXVsdGlwbGllcnMgb3IgaWYgdGhlcmUgYXJlIGFueSBjdXN0b20gc2V0dGluZ3MuXG4qICAgKipQb3dlciBNYW5hZ2VtZW50IEluaXRpYWxpemF0aW9uOioqIEknbSBleHBlY3RpbmcgdG8gc2VlIGNhbGxzIHJlbGF0ZWQgdG8gcG93ZXIgZG9tYWluIGVuYWJsZW1lbnQsIHZvbHRhZ2Ugc2NhbGluZyAoaWYgYXBwbGljYWJsZSksIGFuZCBwb3NzaWJseSBzb21lIGluaXRpYWwgbG93LXBvd2VyIHN0YXRlIGNvbmZpZ3VyYXRpb25zLlxuKiAgICoqUmVnaXN0ZXIgSW5pdGlhbGl6YXRpb246KiogVGhpcyBpcyBhIGJpZyBvbmUuIFdoYXQgcmVnaXN0ZXIgYmxvY2tzIGFyZSBiZWluZyB0b3VjaGVkIGluaXRpYWxseT8gSXMgaXQgd3JpdGluZyBkZWZhdWx0IHZhbHVlcyB0byB0aGUgY29udHJvbCByZWdpc3RlcnMsIHNldHRpbmcgdXAgaW50ZXJydXB0IG1hc2tzLCBvciBwcm9ncmFtbWluZyB0aGUgRE1BIGVuZ2luZXM/IEknbGwgcGF5IGNsb3NlIGF0dGVudGlvbiB0byB0aGUgb3JkZXIgaGVyZSwgYXMgdGhpcyBjYW4gYmUgY3JpdGljYWwgdG8gb3ZlcmFsbCBwZXJmb3JtYW5jZSBhbmQgc3RhYmlsaXR5LlxuKiAgICoqSGFyZHdhcmUgQWJzdHJhY3Rpb24gTGF5ZXIgKEhBTCkgU2V0dXA6KiogTGV0J3Mgc2VlIGhvdyBpdCdzIGludGVyZmFjaW5nIHdpdGggdGhlIHVuZGVybHlpbmcgaGFyZHdhcmUsIG1ha2luZyBzdXJlIHRoaW5ncyBsaWtlIHRoZSBkZXZpY2UgdHJlZSBjb25maWd1cmF0aW9uIGlzIGFjY291bnRlZCBmb3IgaW4gdGhpcyBpbml0aWFsIHN0YXRlLiBBbnkgY3VzdG9tIEhBTCBsYXllciBzaG91bGQgYmUgY2xlYXJseSBkZWZpbmVkLlxuXG5JJ20gaG9waW5nIHRvIHF1aWNrbHkgaWRlbnRpZnkgdGhlIGNydWNpYWwgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucywgc28gSSdtIHByZXBhcmVkIGZvciB0aGUgbmV4dCBzdGFnZSBvZiBvdXIgcHJvamVjdC4gSSdtIGxvb2tpbmcgZm9yIHdoZXJlIGFueSBwb3RlbnRpYWwgaXNzdWVzIG1pZ2h0IGNyb3AgdXAgZHVyaW5nIGhhcmR3YXJlIGJyaW5nLXVwIG9yIGlmIHRoZXJlIGFyZSBhbnkgc3BlY2lmaWMgaW5pdGlhbGl6YXRpb24gdHdlYWtzIHJlcXVpcmVkIGZvciB0aGlzIHBhcnRpY3VsYXIgZHJpdmVyIGluc3RhbmNlLiBMZXQncyBzZWUgd2hhdCB3ZSB1bmNvdmVyIVxuXG5cbiIsIklucHV0VG9rZW5zIjo0MjM3LCJPdXRwdXRUb2tlbnMiOjUwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMDc6MTg6NDQuNDE0MDUxMjgyWiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NzE0OTkxNjQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXQ3OTk2X2luaXRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYz04MTY9c3RydWN0IG10Nzk5Nl9kZXYgKm10Nzk5Nl9tbWlvX3Byb2JlKHN0cnVjdCBkZXZpY2UgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODY3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYzo4Njg6c3RhdGljIGludCBfX2luaXQgbXQ3OTk2X2luaXQodm9pZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODY5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYz04ODM9c3RhdGljIHZvaWQgX19leGl0IG10Nzk5Nl9leGl0KHZvaWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODg4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYzo4ODk6bW9kdWxlX2luaXQobXQ3OTk2X2luaXQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04OTAtbW9kdWxlX2V4aXQobXQ3OTk2X2V4aXQpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwNzoxODo0NS4wODU1NTYzNzZaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzgyNzI3NDc3MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMgYG10Nzk5Nl9pbml0YCBmdW5jdGlvbi4gTXkgZXhwZXJ0IGV5ZSBpbW1lZGlhdGVseSBzdGFydHMgc2Nhbm5pbmcgZm9yIHRoZSBjcml0aWNhbCBwaWVjZXMuIEknbSBsb29raW5nIGZvciB0aGUgY29yZSBpbml0aWFsaXphdGlvbiBzZXF1ZW5jZXMg4oCTIHRoZSBzdGVwcyB0aGF0IGJyaW5nIHRoaXMgc2lsaWNvbiB0byBsaWZlLiBJIHdhbnQgdG8gc2VlIGhvdyB0aGUgcmVnaXN0ZXJzIGFyZSBjb25maWd1cmVkLCBob3cgdGhlIGNsb2NrcyBhcmUgbWFuYWdlZCwgYW5kIHdoYXQgdGhlIG92ZXJhbGwgcG93ZXItdXAgc2VxdWVuY2UgbG9va3MgbGlrZS4gQXJlIHRoZXJlIGFueSBlYXJseSBzZWxmLXRlc3RzIG9yIGNhbGlicmF0aW9uIHJvdXRpbmVzIHRoYXQgZ2l2ZSBtZSBhIHF1aWNrIGhlYWx0aCBjaGVjaz9cblxuSSdsbCBiZSBwYXlpbmcgY2xvc2UgYXR0ZW50aW9uIHRvIGFueSBkZXBlbmRlbmNpZXMuIERvZXMgaXQgcmVseSBvbiBzcGVjaWZpYyBoYXJkd2FyZSBzZXR0aW5ncyBiZWluZyBpbiBwbGFjZSwgb3Igb3RoZXIgZHJpdmVycyBiZWluZyBsb2FkZWQgYmVmb3JlaGFuZD8gQXJlIHRoZXJlIGFueSBlcnJvciBoYW5kbGluZyBtZWNoYW5pc21zPyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgcmVzaWxpZW50IHRoaXMgaW5pdGlhbGl6YXRpb24gcHJvY2VzcyBpcy4gQSByb2J1c3QgaW5pdGlhbGl6YXRpb24gaXMga2V5LlxuXG5UaGVuLCBJJ2xsIGJlIGxvb2tpbmcgZm9yIGFueSBjdXN0b21pemF0aW9ucy4gSXMgdGhpcyBhIGdlbmVyaWMgaW5pdGlhbGl6YXRpb24sIG9yIGFyZSB0aGVyZSBwbGF0Zm9ybS1zcGVjaWZpYyBhZGFwdGF0aW9ucz8gSSdtIHBhcnRpY3VsYXJseSBpbnRlcmVzdGVkIGlmIHRoZXJlIGFyZSBhbnkgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gYmxvY2tzLiBUaGF0IHRlbGxzIG1lIHdoYXQgdmFyaWF0aW9ucyB0aGUgdmVuZG9yIHN1cHBvcnRzIGluIGRpZmZlcmVudCBTS1VzLiBBbnkgZGV2aWNlLXRyZWUgaW50ZXJhY3Rpb25zIHdvdWxkIGFsc28gYmUgdXNlZnVsIHRvIGtub3cuXG5cblVsdGltYXRlbHksIEknbSB0cnlpbmcgdG8gYnVpbGQgYSBtZW50YWwgbWFwIG9mIGhvdyB0aGlzIHRoaW5nIGdldHMgZ29pbmcsIHNvIEkga25vdyB3aGVyZSBwb3RlbnRpYWwgYm90dGxlbmVja3Mgb3IgaXNzdWVzIG1pZ2h0IGFyaXNlLiBJJ2xsIGJlIHdhdGNoaW5nIGZvciBhbnkgYXJlYXMgd2hlcmUgdGhlIGluaXRpYWxpemF0aW9uIG1pZ2h0IGJlIHNlbnNpdGl2ZSB0byB0aW1pbmcgb3IgZXh0ZXJuYWwgZW52aXJvbm1lbnRhbCBjb25kaXRpb25zLiBNeSBnb2FsIGlzIHRvIHVuZGVyc3RhbmQgaG93IHRoaXMgY2hpcCBpcyBicm91Z2h0IGZyb20gYSBkZWFkIHN0YXRlIGludG8gYSBmdW5jdGlvbmFsLCBjb21tdW5pY2F0aW5nIGVudGl0eS5cblxuXG4iLCJJbnB1dFRva2VucyI6NTAzNywiT3V0cHV0VG9rZW5zIjo1MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDA3OjE4OjQ4LjkxMjgzNDIzN1oiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzk4NTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDg2MCxcbiAgXCJMaW5lQ291bnRcIjogNDBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDg2MDpcXHRcXHRyZXR1cm4gZGV2O1xcbiA4NjE6XFx0XFxuIDg2MjpcXHRlcnJvcjpcXG4gODYzOlxcdFxcdG10NzZfZnJlZV9kZXZpY2UoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Nik7XFxuIDg2NDpcXHRcXG4gODY1OlxcdFxcdHJldHVybiBFUlJfUFRSKHJldCk7XFxuIDg2NjpcXHR9XFxuIDg2NzpcXHRcXG4gODY4OlxcdHN0YXRpYyBpbnQgX19pbml0IG10Nzk5Nl9pbml0KHZvaWQpXFxuIDg2OTpcXHR7XFxuIDg3MDpcXHRcXHRpbnQgcmV0O1xcbiA4NzE6XFx0XFxuIDg3MjpcXHRcXHRyZXQgPSBwY2lfcmVnaXN0ZXJfZHJpdmVyKFxcdTAwMjZtdDc5OTZfaGlmX2RyaXZlcik7XFxuIDg3MzpcXHRcXHRpZiAocmV0KVxcbiA4NzQ6XFx0XFx0XFx0cmV0dXJuIHJldDtcXG4gODc1OlxcdFxcbiA4NzY6XFx0XFx0cmV0ID0gcGNpX3JlZ2lzdGVyX2RyaXZlcihcXHUwMDI2bXQ3OTk2X3BjaV9kcml2ZXIpO1xcbiA4Nzc6XFx0XFx0aWYgKHJldClcXG4gODc4OlxcdFxcdFxcdHBjaV91bnJlZ2lzdGVyX2RyaXZlcihcXHUwMDI2bXQ3OTk2X2hpZl9kcml2ZXIpO1xcbiA4Nzk6XFx0XFxuIDg4MDpcXHRcXHRyZXR1cm4gcmV0O1xcbiA4ODE6XFx0fVxcbiA4ODI6XFx0XFxuIDg4MzpcXHRzdGF0aWMgdm9pZCBfX2V4aXQgbXQ3OTk2X2V4aXQodm9pZClcXG4gODg0OlxcdHtcXG4gODg1OlxcdFxcdHBjaV91bnJlZ2lzdGVyX2RyaXZlcihcXHUwMDI2bXQ3OTk2X3BjaV9kcml2ZXIpO1xcbiA4ODY6XFx0XFx0cGNpX3VucmVnaXN0ZXJfZHJpdmVyKFxcdTAwMjZtdDc5OTZfaGlmX2RyaXZlcik7XFxuIDg4NzpcXHR9XFxuIDg4ODpcXHRcXG4gODg5OlxcdG1vZHVsZV9pbml0KG10Nzk5Nl9pbml0KTtcXG4gODkwOlxcdG1vZHVsZV9leGl0KG10Nzk5Nl9leGl0KTtcXG4gODkxOlxcdE1PRFVMRV9ERVNDUklQVElPTihcXFwiTWVkaWFUZWsgTVQ3OTk2IE1NSU8gaGVscGVyc1xcXCIpO1xcbiA4OTI6XFx0TU9EVUxFX0xJQ0VOU0UoXFxcIkR1YWwgQlNEL0dQTFxcXCIpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwNzoxODo0OC45MTMwNzYyOTdaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTI1MDA4OTA0NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBGdXp6aW5nIFN1aXRhYmlsaXR5KipcblxuT2theSwgc28gSSd2ZSBqdXN0IHByb2Nlc3NlZCB0aGUgaW5mb3JtYXRpb24gb24gdGhlc2UgdHdvIFBDSSBkcml2ZXJzLCBgbXQ3OTk2X2hpZl9kcml2ZXJgIGFuZCBgbXQ3OTk2X3BjaV9kcml2ZXJgLiBJdCdzIHByZXR0eSBjbGVhciB0aGF0IHRoZXNlIGFyZSBzcGVjaWZpYyB0byB0aGUgTWVkaWF0ZWsgTVQ3OTk2IGNoaXBzZXQsIHdoaWNoIGlzIGEgUENJZSBkZXZpY2UuIFRoaXMgaXMgYSBjcnVjaWFsIHBpZWNlIG9mIGluZm9ybWF0aW9uLlxuXG5Ob3csIEknbSByZWNhbGxpbmcgdGhlIGZ1enppbmcgZ3VpZGVsaW5lcy4gU3BlY2lmaWNhbGx5LCB0aGF0IGlmIGEgcGF0Y2ggaW52b2x2ZXMgZHJpdmVycyBmb3IgdmVuZG9yLXNwZWNpZmljIFBDSWUgZGV2aWNlcyB0aGF0IGFyZW4ndCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLCB3ZSBzaG91bGQgc2V0IGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBUaGUgZXhhbXBsZXMgdGhleSBnaXZlIOKAkyBgbWx4c3dgLCBgcGRzX2NvcmVgLCBgcWVkYCwgYGlvbmljYCwgYGFtZGdwdWAg4oCTIGFyZSBhbGwgcG9pbnRpbmcgdG8gaGFyZHdhcmUgZGVwZW5kZW5jaWVzLlxuXG5HaXZlbiB0aGF0IHRoaXMgYG10Nzk5NmAgZHJpdmVyIGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgd2lyZWxlc3MgZHJpdmVyIGFuZCwgaW1wb3J0YW50bHksICpyZXF1aXJlcyogcGh5c2ljYWwgUENJZSBoYXJkd2FyZSwgd2hpY2ggaXNuJ3QgZ29pbmcgdG8gYmUgcHJlc2VudCBpbiBhIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnQsIEknbSBmb3JjZWQgdG8gY29uY2x1ZGUgdGhhdCB0aGlzIHBhdGNoIGlzICoqbm90KiogYSBnb29kIGNhbmRpZGF0ZSBmb3IgZnV6emluZy4gSXQncyBhIHRleHRib29rIGNhc2Ugb2Ygc29tZXRoaW5nIHRoYXQncyBsaWtlbHkgdG8gZ2VuZXJhdGUgYSBsb3Qgb2Ygbm9pc2UgYW5kIGZhbHNlIHBvc2l0aXZlcyBpbiBhIHB1cmVseSBzb2Z0d2FyZS1iYXNlZCBmdXp6aW5nIGNhbXBhaWduLiBUaGUgcGF0Y2ggd29uJ3QgZXhlY3V0ZSB3aXRob3V0IHRoZSBwaHlzaWNhbCBoYXJkd2FyZSwgYW5kIHRoYXQgbWVhbnMgZnV6emluZyBpdCBpbiBhIHR5cGljYWwgUUVNVSBlbnZpcm9ubWVudCBpcyBhIHdhc3RlIG9mIHRpbWUgYW5kIHJlc291cmNlcy4gU2V0dGluZyBgV29ydGhGdXp6aW5nPWZhbHNlYCBpcyB0aGUgcmlnaHQgY2FsbCBoZXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1ODQ5LCJPdXRwdXRUb2tlbnMiOjg0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTcyLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMDc6MTg6NTQuMTYzMTcwMTQ0WiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzM2MTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lZGlhdGVrIE1UNzk5NiB3aXJlbGVzcyBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgaGFyZHdhcmUgZHJpdmVyLiBTaW5jZSB0aGlzIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLCB0aGUgY29kZSBjYW5ub3QgYmUgcmVhY2hlZCBvciB0ZXN0ZWQgaW4gYSB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50LlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lZGlhdGVrIE1UNzk5NiB3aXJlbGVzcyBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgaGFyZHdhcmUgZHJpdmVyLiBTaW5jZSB0aGlzIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLCB0aGUgY29kZSBjYW5ub3QgYmUgcmVhY2hlZCBvciB0ZXN0ZWQgaW4gYSB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50LlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowl6sf7[1] Phase: Running StartedAt: 2026-07-28 07:19:05 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowl6sf7[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-07-28 07:19:05 +0000 UTC FinishedAt: 2026-07-28 07:19:32 +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,}