Name: series-workflowpfqgb Phase: Failed StartedAt: 2026-08-28 01:05:27 +0000 UTC FinishedAt: 2026-08-28 01:50:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpfqgb[0] Phase: Succeeded StartedAt: 2026-08-28 01:05:27 +0000 UTC FinishedAt: 2026-08-28 01:50:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpfqgb[0].run-triage Phase: Succeeded StartedAt: 2026-08-28 01:05:27 +0000 UTC FinishedAt: 2026-08-28 01:50:43 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI4IDAxOjQ5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBOTDgwMjExX0lGVFlQRV9BUF9WTEFOIHRvIHRoZSBzdXBwb3J0ZWQgaW50ZXJmYWNlIG1vZGVzIGluIGF0aDEya193aWZpN19od19wYXJhbXMgZm9yIFF1YWxjb21tIFdpLUZpIDcgZGV2aWNlcy4gVGhlIGF0aDEyayBkcml2ZXIgaXMgYSBoYXJkd2FyZSBkcml2ZXIgZm9yIFF1YWxjb21tIFBDSSBhbmQgQUhCIHdpcmVsZXNzIGNoaXBzIGFuZCBjYW5ub3QgYmUgcmVhY2hlZCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKHN1Y2ggYXMgUUVNVSBvciBHQ0UpIGFzIGl0IHJlcXVpcmVzIHBoeXNpY2FsIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBieSBzdGFuZGFyZCBRRU1VLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yOCAwMTo0OTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGZiZWEzYTk1N2QxZDlmZjc4MGFiMzZhNGMwZmE2YzlmNDBkODk1ZWZcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEF1ZyAyOCAwMTo0OToyOCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmNcbmluZGV4IDdiODZmMzI0YjJlNjguLmEyMGMyMTgwNzM0NDkgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvaHcuY1xuQEAgLTY2NCw3ICYjNDM7NjY0LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhdGgxMmtfaHdfcGFyYW1zIGF0aDEya193aWZpN19od19wYXJhbXNbXSA9IHtcbiBcbiBcdFx0LmludGVyZmFjZV9tb2RlcyA9IEJJVChOTDgwMjExX0lGVFlQRV9TVEFUSU9OKSB8XG4gXHRcdFx0XHQgICBCSVQoTkw4MDIxMV9JRlRZUEVfQVApIHxcbi1cdFx0XHRcdCAgIEJJVChOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UKSxcbiYjNDM7XHRcdFx0XHQgICBCSVQoTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVCkgfFxuJiM0MztcdFx0XHRcdCAgIEJJVChOTDgwMjExX0lGVFlQRV9BUF9WTEFOKSxcbiBcdFx0LnN1cHBvcnRzX21vbml0b3IgPSB0cnVlLFxuIFx0XHQuc3VwcG9ydHNfY29uZ19jdHJsX21heF9tc2R1cyA9IHRydWUsXG4gXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjggMDE6NDk8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Y29yZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBOTDgwMjExX0lGVFlQRV9BUF9WTEFOIHRvIHRoZSBzdXBwb3J0ZWQgaW50ZXJmYWNlIG1vZGVzIGluIGF0aDEya193aWZpN19od19wYXJhbXMgZm9yIFF1YWxjb21tIFdpLUZpIDcgZGV2aWNlcy4gVGhlIGF0aDEyayBkcml2ZXIgaXMgYSBoYXJkd2FyZSBkcml2ZXIgZm9yIFF1YWxjb21tIFBDSSBhbmQgQUhCIHdpcmVsZXNzIGNoaXBzIGFuZCBjYW5ub3QgYmUgcmVhY2hlZCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKHN1Y2ggYXMgUUVNVSBvciBHQ0UpIGFzIGl0IHJlcXVpcmVzIHBoeXNpY2FsIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBieSBzdGFuZGFyZCBRRU1VLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGZiZWEzYTk1N2QxZDlmZjc4MGFiMzZhNGMwZmE2YzlmNDBkODk1ZWYKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgRnJpIEF1ZyAyOCAwMTo0OToyOCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvaHcuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvaHcuYwppbmRleCA3Yjg2ZjMyNGIyZTY4Li5hMjBjMjE4MDczNDQ5IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9ody5jCkBAIC02NjQsNyAmIzQzOzY2NCw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYXRoMTJrX2h3X3BhcmFtcyBhdGgxMmtfd2lmaTdfaHdfcGFyYW1zW10gPSB7CiAKIAkJLmludGVyZmFjZV9tb2RlcyA9IEJJVChOTDgwMjExX0lGVFlQRV9TVEFUSU9OKSB8CiAJCQkJICAgQklUKE5MODAyMTFfSUZUWVBFX0FQKSB8Ci0JCQkJICAgQklUKE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpLAomIzQzOwkJCQkgICBCSVQoTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVCkgfAomIzQzOwkJCQkgICBCSVQoTkw4MDIxMV9JRlRZUEVfQVBfVkxBTiksCiAJCS5zdXBwb3J0c19tb25pdG9yID0gdHJ1ZSwKIAkJLnN1cHBvcnRzX2NvbmdfY3RybF9tYXhfbXNkdXMgPSB0cnVlLAogCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI4IDAxOjQ5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIxNzIKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiA0ODUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBQYXRjaCBmb3IgRnV6emluZyBQb3RlbnRpYWwqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gRmlyc3QsIEkgc2VlIGEgcGF0Y2ggbW9kaWZ5aW5nIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmNgLiAgTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGFzc2VzcyBpZiB0aGlzIGNoYW5nZSB3YXJyYW50cyBmdXp6aW5nLiAgVGhlIGRpZmYgaXRzZWxmIGxvb2tzIHN0cmFpZ2h0Zm9yd2FyZCBlbm91Z2guIEl0IHNlZW1zIHRvIGJlIGV4cGFuZGluZyB0aGUgc3VwcG9ydGVkIGludGVyZmFjZSBtb2RlcyBieSBhZGRpbmcgYE5MODAyMTFfSUZUWVBFX0FQX1ZMQU5gIHRvIHRoZSBleGlzdGluZyBsaXN0OiBgTkw4MDIxMV9JRlRZUEVfU1RBVElPTmAsIGBOTDgwMjExX0lGVFlQRV9BUGAsIGFuZCBgTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVGAuCgpOb3csIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjb250ZXh0LiBXaGF0IGlzIGBhdGgxMmtgPyBBaCwgcmlnaHQsIFF1YWxjb21tJiMzOTtzIElFRUUgODAyLjExYmUgKFdpLUZpIDcpIHdpcmVsZXNzIGRyaXZlci4gVGhhdCBjbGFyaWZpZXMgdGhpbmdzLiBUaGUgZm9jdXMgaGVyZSBpcyBvbiBhIGN1dHRpbmctZWRnZSB3aXJlbGVzcyBkcml2ZXIuIFRoaXMgaXMgaW50ZXJlc3RpbmcsIGJ1dCBJIG5lZWQgdG8gcXVpY2tseSBhc3Nlc3MgdGhlIGZlYXNpYmlsaXR5IG9mIGZ1enppbmcgdGhpcy4gVGhlIGNyaXRpY2FsIHF1ZXN0aW9uIGlzIHdoZXRoZXIgSSBjYW4gcnVuIHRoaXMgd2l0aGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgbGlrZSBRRU1VIG9yIGV2ZW4gd2l0aCBgbWFjODAyMTFfaHdzaW1gLiBJZiBpdCByZXF1aXJlcyBwaHlzaWNhbCBoYXJkd2FyZSAoUENJZSwgQUhCLCBldGMuKSwgdGhhdCYjMzk7cyBhIHNpZ25pZmljYW50IGh1cmRsZS4KClRoZXJlZm9yZSwgSSBuZWVkIHRvIGNoZWNrIHRoZSBicm9hZGVyIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2AgZGlyZWN0b3J5LiBJJiMzOTtsbCBwcm9iYWJseSB1c2UgYHJlYWQtZmlsZWAgb3IgYGdyZXBwZXJgIHRvIHF1aWNrbHkgaW5zcGVjdCB0aGUgc291cmNlIGFuZCBsb29rIGZvciBjbHVlcyBhYm91dCB2aXJ0dWFsaXphdGlvbiBzdXBwb3J0IG9yIGhhcmR3YXJlIGRlcGVuZGVuY2llcy4gSG9wZWZ1bGx5LCB0aGVyZSBpcyBkb2N1bWVudGF0aW9uIG9yIHNvbWUgZm9ybSBvZiB2aXJ0dWFsIGludGVyZmFjZSB0byBhbGxvdyBmdXp6aW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI4IDAxOjQ5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O0FUSDEySyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDEzNDk1IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzoyOmNvbmZpZyBBVEgxMktcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7UXVhbGNvbW0gV2ktRmkgNyBzdXBwb3J0IChhdGgxMmspXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjE3OmNvbmZpZyBBVEgxMktfQUhCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMTgtXHRib29sIFwmIzM0O1F1YWxjb21tIGF0aDEyayBBSEIgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjE5Olx0ZGVwZW5kcyBvbiBBVEgxMksgXHUwMDI2XHUwMDI2IFJFTU9URVBST0NcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0yMC1cdHNlbGVjdCBRQ09NX01EVF9MT0FERVJcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMjQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6MjU6Y29uZmlnIEFUSDEyS19ERUJVR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTI2LVx0Ym9vbCBcJiMzNDthdGgxMmsgZGVidWdnaW5nXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6Mjc6XHRkZXBlbmRzIG9uIEFUSDEyS1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTI4LVx0aGVscFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0zNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzozNTpjb25maWcgQVRIMTJLX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0zNi1cdGJvb2wgXCYjMzQ7UXVhbGNvbW0gYXRoMTJrIGRlYnVnZnMgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjM3Olx0ZGVwZW5kcyBvbiBBVEgxMksgXHUwMDI2XHUwMDI2IE1BQzgwMjExX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0zOC1cdGhlbHBcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6NDQ6Y29uZmlnIEFUSDEyS19UUkFDSU5HXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNDUtXHRib29sIFwmIzM0O2F0aDEyayB0cmFjaW5nIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzo0NjpcdGRlcGVuZHMgb24gQVRIMTJLIFx1MDAyNlx1MDAyNiBFVkVOVF9UUkFDSU5HXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNDctXHRoZWxwXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTUyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjUzOmNvbmZpZyBBVEgxMktfQ09SRURVTVBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy01NC1cdGJvb2wgXCYjMzQ7YXRoMTJrIGNvcmVkdW1wXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6NTU6XHRkZXBlbmRzIG9uIEFUSDEyS1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTU2LVx0c2VsZWN0IFdBTlRfREVWX0NPUkVEVU1QXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZS0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZToyOm9iai0kKENPTkZJR19BVEgxMkspICYjNDM7PSBhdGgxMmsub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZS0zLWF0aDEyay15ICYjNDM7PSBjb3JlLm8gXFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlLTI0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZToyNTphdGgxMmstJChDT05GSUdfQVRIMTJLX0FIQikgJiM0Mzs9IGFoYi5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlLTI2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZToyNzpvYmotJChDT05GSUdfQVRIMTJLKSAmIzQzOz0gd2lmaTcvXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlLTI4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZToyOTphdGgxMmstJChDT05GSUdfQVRIMTJLX0RFQlVHRlMpICYjNDM7PSBkZWJ1Z2ZzLm8gZGVidWdmc19odHRfc3RhdHMubyBkZWJ1Z2ZzX3N0YS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlLTMwLWF0aDEyay0kKENPTkZJR19BQ1BJKSAmIzQzOz0gYWNwaS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlOjMxOmF0aDEyay0kKENPTkZJR19BVEgxMktfVFJBQ0lORykgJiM0Mzs9IHRyYWNlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGUtMzItYXRoMTJrLSQoQ09ORklHX1BNKSAmIzQzOz0gd293Lm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGU6MzM6YXRoMTJrLSQoQ09ORklHX0FUSDEyS19DT1JFRFVNUCkgJiM0Mzs9IGNvcmVkdW1wLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGUtMzQtYXRoMTJrLSQoQ09ORklHX05MODAyMTFfVEVTVE1PREUpICYjNDM7PSB0ZXN0bW9kZS5vXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM9MTE9c3RhdGljIGludCBhdGgxMmtfYWNwaV9kc21fZ2V0X2RhdGEoc3RydWN0IGF0aDEya19iYXNlICphYiwgaW50IGZ1bmMpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTgtXHRpZiAoIXJvb3RfaGFuZGxlKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoxOTpcdFx0YXRoMTJrX2RiZyhhYiwgQVRIMTJLX0RCR19CT09ULCBcJiMzNDtpbnZhbGlkIGFjcGkgaGFuZGxlclxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yMC1cdFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI2LVx0aWYgKCFvYmopIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjI3Olx0XHRhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX0JPT1QsIFwmIzM0O2FjcGlfZXZhbHVhdGVfZHNtKCkgZmFpbGVkXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI4LVx0XHRyZXR1cm4gLUVOT0VOVDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zMi1cdFx0c3dpdGNoIChmdW5jKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzozMzpcdFx0Y2FzZSBBVEgxMktfQUNQSV9EU01fRlVOQ19TVVBQT1JUX0ZVTkNTOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzQtXHRcdFx0YWItXHUwMDNlYWNwaS5mdW5jX2JpdCA9IG9iai1cdTAwM2VpbnRlZ2VyLnZhbHVlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzUtXHRcdFx0YnJlYWs7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzozNjpcdFx0Y2FzZSBBVEgxMktfQUNQSV9EU01fRlVOQ19ESVNBQkxFX0ZMQUc6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zNy1cdFx0XHRhYi1cdTAwM2VhY3BpLmJpdF9mbGFnID0gb2JqLVx1MDAzZWludGVnZXIudmFsdWU7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDEtXHRcdHN3aXRjaCAoZnVuYykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDI6XHRcdGNhc2UgQVRIMTJLX0FDUElfRFNNX0ZVTkNfQkRGX0VYVDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQzOlx0XHRcdGlmIChvYmotXHUwMDNlc3RyaW5nLmxlbmd0aCBcdTAwM2M9IEFUSDEyS19BQ1BJX0JERl9BTkNIT1JfU1RSSU5HX0xFTiB8fFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDQ6XHRcdFx0ICAgIG9iai1cdTAwM2VzdHJpbmcubGVuZ3RoIFx1MDAzZSBBVEgxMktfQUNQSV9CREZfTUFYX0xFTiB8fFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDU6XHRcdFx0ICAgIG1lbWNtcChvYmotXHUwMDNlc3RyaW5nLnBvaW50ZXIsIEFUSDEyS19BQ1BJX0JERl9BTkNIT1JfU1RSSU5HLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDY6XHRcdFx0XHQgICBBVEgxMktfQUNQSV9CREZfQU5DSE9SX1NUUklOR19MRU4pKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00Ny1cdFx0XHRcdGF0aDEya193YXJuKGFiLCBcJiMzNDtpbnZhbGlkIEFDUEkgRFNNIEJERiBzaXplOiAlZFxcblwmIzM0Oyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy01OS1cdFx0c3dpdGNoIChmdW5jKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo2MDpcdFx0Y2FzZSBBVEgxMktfQUNQSV9EU01fRlVOQ19TVVBQT1JUX0ZVTkNTOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NjE6XHRcdFx0aWYgKG9iai1cdTAwM2VidWZmZXIubGVuZ3RoIFx1MDAzYyBBVEgxMktfQUNQSV9EU01fRlVOQ19NSU5fQklUTUFQX1NJWkUgfHxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjYyOlx0XHRcdCAgICBvYmotXHUwMDNlYnVmZmVyLmxlbmd0aCBcdTAwM2UgQVRIMTJLX0FDUElfRFNNX0ZVTkNfTUFYX0JJVE1BUF9TSVpFKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy02My1cdFx0XHRcdGF0aDEya193YXJuKGFiLCBcJiMzNDtpbnZhbGlkIEFDUEkgRFNNIGZ1bmMgc2l6ZTogJWRcXG5cJiMzNDssXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNzMtXHRcdFx0YnJlYWs7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo3NDpcdFx0Y2FzZSBBVEgxMktfQUNQSV9EU01fRlVOQ19UQVNfQ0ZHOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NzU6XHRcdFx0aWYgKG9iai1cdTAwM2VidWZmZXIubGVuZ3RoICE9IEFUSDEyS19BQ1BJX0RTTV9UQVNfQ0ZHX1NJWkUpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTc2LVx0XHRcdFx0YXRoMTJrX3dhcm4oYWIsIFwmIzM0O2ludmFsaWQgQUNQSSBEU00gVEFTIGNvbmZpZyBzaXplOiAlZFxcblwmIzM0Oyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy04NS1cdFx0XHRicmVhaztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjg2Olx0XHRjYXNlIEFUSDEyS19BQ1BJX0RTTV9GVU5DX1RBU19EQVRBOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6ODc6XHRcdFx0aWYgKG9iai1cdTAwM2VidWZmZXIubGVuZ3RoICE9IEFUSDEyS19BQ1BJX0RTTV9UQVNfREFUQV9TSVpFKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy04OC1cdFx0XHRcdGF0aDEya193YXJuKGFiLCBcJiMzNDtpbnZhbGlkIEFDUEkgRFNNIFRBUyBkYXRhIHNpemU6ICVkXFxuXCYjMzQ7LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTk3LVx0XHRcdGJyZWFrO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6OTg6XHRcdGNhc2UgQVRIMTJLX0FDUElfRFNNX0ZVTkNfQklPU19TQVI6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo5OTpcdFx0XHRpZiAob2JqLVx1MDAzZWJ1ZmZlci5sZW5ndGggIT0gQVRIMTJLX0FDUElfRFNNX0JJT1NfU0FSX0RBVEFfU0laRSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTAwLVx0XHRcdFx0YXRoMTJrX3dhcm4oYWIsIFwmIzM0O2ludmFsaWQgQUNQSSBCSU9TIFNBUiBkYXRhIHNpemU6ICVkXFxuXCYjMzQ7LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTEwOS1cdFx0XHRicmVhaztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjExMDpcdFx0Y2FzZSBBVEgxMktfQUNQSV9EU01fRlVOQ19HRU9fT0ZGU0VUOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MTExOlx0XHRcdGlmIChvYmotXHUwMDNlYnVmZmVyLmxlbmd0aCAhPSBBVEgxMktfQUNQSV9EU01fR0VPX09GRlNFVF9EQVRBX1NJWkUpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTExMi1cdFx0XHRcdGF0aDEya193YXJuKGFiLCBcJiMzNDtpbnZhbGlkIEFDUEkgR0VPIE9GRlNFVCBkYXRhIHNpemU6ICVkXFxuXCYjMzQ7LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTEyMS1cdFx0XHRicmVhaztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjEyMjpcdFx0Y2FzZSBBVEgxMktfQUNQSV9EU01fRlVOQ19JTkRFWF9DQ0E6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoxMjM6XHRcdFx0aWYgKG9iai1cdTAwM2VidWZmZXIubGVuZ3RoICE9IEFUSDEyS19BQ1BJX0RTTV9DQ0FfREFUQV9TSVpFKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xMjQtXHRcdFx0XHRhdGgxMmtfd2FybihhYiwgXCYjMzQ7aW52YWxpZCBBQ1BJIERTTSBDQ0EgZGF0YSBzaXplOiAlZFxcblwmIzM0Oyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xMzMtXHRcdFx0YnJlYWs7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoxMzQ6XHRcdGNhc2UgQVRIMTJLX0FDUElfRFNNX0ZVTkNfSU5ERVhfQkFORF9FREdFOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MTM1Olx0XHRcdGlmIChvYmotXHUwMDNlYnVmZmVyLmxlbmd0aCAhPSBBVEgxMktfQUNQSV9EU01fQkFORF9FREdFX0RBVEFfU0laRSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTM2LVx0XHRcdFx0YXRoMTJrX3dhcm4oYWIsIFwmIzM0O2ludmFsaWQgQUNQSSBEU00gYmFuZCBlZGdlIGRhdGEgc2l6ZTogJWRcXG5cJiMzNDssXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM9MTYxPXN0YXRpYyBpbnQgYXRoMTJrX2FjcGlfc2V0X3Bvd2VyX2xpbWl0KHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTY1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MTY2Olx0aWYgKHRhc19zYXJfcG93ZXJfdGFibGVbMF0gIT0gQVRIMTJLX0FDUElfVEFTX0RBVEFfVkVSU0lPTiB8fFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MTY3Olx0ICAgIHRhc19zYXJfcG93ZXJfdGFibGVbMV0gIT0gQVRIMTJLX0FDUElfVEFTX0RBVEFfRU5BQkxFKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xNjgtXHRcdGF0aDEya193YXJuKGFiLCBcJiMzNDtsYXRlc3QgQUNQSSBUQVMgZGF0YSBpcyBpbnZhbGlkXFxuXCYjMzQ7KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xNzMtXHRcdFx0XHQgICAgICB0YXNfc2FyX3Bvd2VyX3RhYmxlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MTc0Olx0XHRcdFx0ICAgICAgQVRIMTJLX0FDUElfRFNNX1RBU19EQVRBX1NJWkUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTc1LVx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jPTE4Mz1zdGF0aWMgaW50IGF0aDEya19hY3BpX3NldF9iaW9zX3Nhcl9wb3dlcihzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTE4Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjE4NzpcdGlmIChhYi1cdTAwM2VhY3BpLmJpb3Nfc2FyX2RhdGFbMF0gIT0gQVRIMTJLX0FDUElfUE9XRVJfTElNSVRfVkVSU0lPTiB8fFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MTg4Olx0ICAgIGFiLVx1MDAzZWFjcGkuYmlvc19zYXJfZGF0YVsxXSAhPSBBVEgxMktfQUNQSV9QT1dFUl9MSU1JVF9FTkFCTEVfRkxBRykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTg5LVx0XHRhdGgxMmtfd2FybihhYiwgXCYjMzQ7aW52YWxpZCBsYXRlc3QgQUNQSSBCSU9TIFNBUiBkYXRhXFxuXCYjMzQ7KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYz0yMDI9c3RhdGljIHZvaWQgYXRoMTJrX2FjcGlfZHNtX25vdGlmeShhY3BpX2hhbmRsZSBoYW5kbGUsIHUzMiBldmVudCwgdm9pZCAqZGF0YSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yMDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoyMDc6XHRpZiAoZXZlbnQgPT0gQVRIMTJLX0FDUElfTk9USUZZX0VWRU5UKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yMDgtXHRcdGF0aDEya193YXJuKGFiLCBcJiMzNDt1bmtub3duIGFjcGkgbm90aWZ5ICV1XFxuXCYjMzQ7LCBldmVudCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjEyLVx0aWYgKCFhYi1cdTAwM2VhY3BpLmFjcGlfdGFzX2VuYWJsZSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MjEzOlx0XHRhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX0JPT1QsIFwmIzM0O2FjcGlfdGFzX2VuYWJsZSBpcyBmYWxzZVxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yMTQtXHRcdHJldHVybjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yMTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoyMTc6XHRyZXQgPSBhdGgxMmtfYWNwaV9kc21fZ2V0X2RhdGEoYWIsIEFUSDEyS19BQ1BJX0RTTV9GVU5DX1RBU19EQVRBKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTIxOC1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yMzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoyMzI6XHRyZXQgPSBhdGgxMmtfYWNwaV9kc21fZ2V0X2RhdGEoYWIsIEFUSDEyS19BQ1BJX0RTTV9GVU5DX0JJT1NfU0FSKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTIzMy1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYz0yNjQ9c3RhdGljIGludCBhdGgxMmtfYWNwaV9zZXRfdGFzX3BhcmFtcyhzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI2OS1cdFx0XHRcdCAgICAgIGFiLVx1MDAzZWFjcGkudGFzX2NmZyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjI3MDpcdFx0XHRcdCAgICAgIEFUSDEyS19BQ1BJX0RTTV9UQVNfQ0ZHX1NJWkUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjcxLVx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI3OC1cdFx0XHRcdCAgICAgIGFiLVx1MDAzZWFjcGkudGFzX3Nhcl9wb3dlcl90YWJsZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjI3OTpcdFx0XHRcdCAgICAgIEFUSDEyS19BQ1BJX0RTTV9UQVNfREFUQV9TSVpFKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI4MC1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYz0yOTk9dm9pZCBhdGgxMmtfYWNwaV9zZXRfZHNtX2Z1bmMoc3RydWN0IGF0aDEya19iYXNlICphYilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zMjQtXHRpZiAoYWItXHUwMDNlYWNwaS5hY3BpX2NjYV9lbmFibGUpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjMyNTpcdFx0YnVmID0gYWItXHUwMDNlYWNwaS5jY2FfZGF0YSAmIzQzOyBBVEgxMktfQUNQSV9DQ0FfVEhSX09GRlNFVF9EQVRBX09GRlNFVDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTMyNi1cdFx0cmV0ID0gYXRoMTJrX3dtaV9zZXRfYmlvc19jbWQoYWIsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzI4LVx0XHRcdFx0XHQgICAgICBidWYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzozMjk6XHRcdFx0XHRcdCAgICAgIEFUSDEyS19BQ1BJX0NDQV9USFJfT0ZGU0VUX0xFTik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zMzAtXHRcdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYz0zNTE9aW50IGF0aDEya19hY3BpX3N0YXJ0KHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzY4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MzY5Olx0cmV0ID0gYXRoMTJrX2FjcGlfZHNtX2dldF9kYXRhKGFiLCBBVEgxMktfQUNQSV9EU01fRlVOQ19TVVBQT1JUX0ZVTkNTKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTM3MC1cdGlmIChyZXQpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjM3MTpcdFx0YXRoMTJrX2RiZyhhYiwgQVRIMTJLX0RCR19CT09ULCBcJiMzNDtmYWlsZWQgdG8gZ2V0IEFDUEkgRFNNIGRhdGE6ICVkXFxuXCYjMzQ7LCByZXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzcyLVx0XHRyZXR1cm4gcmV0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTM3NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjM3NTpcdGlmIChBVEgxMktfQUNQSV9GVU5DX0JJVF9WQUxJRChhYi1cdTAwM2VhY3BpLCBBVEgxMktfQUNQSV9GVU5DX0JJVF9ESVNBQkxFX0ZMQUcpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzozNzY6XHRcdHJldCA9IGF0aDEya19hY3BpX2RzbV9nZXRfZGF0YShhYiwgQVRIMTJLX0FDUElfRFNNX0ZVTkNfRElTQUJMRV9GTEFHKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTM3Ny1cdFx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTM4MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjM4MjpcdFx0aWYgKEFUSDEyS19BQ1BJX0NIRUtfQklUX1ZBTElEKGFiLVx1MDAzZWFjcGksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzozODM6XHRcdFx0XHRcdCAgICAgICBBVEgxMktfQUNQSV9EU01fRElTQUJMRV8xMUJFX0JJVCkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zODQtXHRcdFx0YWItXHUwMDNlYWNwaS5hY3BpX2Rpc2FibGVfMTFiZSA9IHRydWU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zODUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzozODY6XHRcdGlmICghQVRIMTJLX0FDUElfQ0hFS19CSVRfVkFMSUQoYWItXHUwMDNlYWNwaSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjM4NzpcdFx0XHRcdFx0XHRBVEgxMktfQUNQSV9EU01fRElTQUJMRV9SRktJTExfQklUKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTM4OC1cdFx0XHRhYi1cdTAwM2VhY3BpLmFjcGlfZGlzYWJsZV9yZmtpbGwgPSB0cnVlO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTM5MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjM5MTpcdGlmIChBVEgxMktfQUNQSV9GVU5DX0JJVF9WQUxJRChhYi1cdTAwM2VhY3BpLCBBVEgxMktfQUNQSV9GVU5DX0JJVF9CREZfRVhUKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MzkyOlx0XHRyZXQgPSBhdGgxMmtfYWNwaV9kc21fZ2V0X2RhdGEoYWIsIEFUSDEyS19BQ1BJX0RTTV9GVU5DX0JERl9FWFQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzkzLVx0XHRpZiAocmV0IHx8IGFiLVx1MDAzZWFjcGkuYmRmX3N0cmluZ1swXSA9PSAmIzM5O1xcMCYjMzk7KSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDAwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDAxOlx0aWYgKEFUSDEyS19BQ1BJX0ZVTkNfQklUX1ZBTElEKGFiLVx1MDAzZWFjcGksIEFUSDEyS19BQ1BJX0ZVTkNfQklUX1RBU19DRkcpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0MDI6XHRcdHJldCA9IGF0aDEya19hY3BpX2RzbV9nZXRfZGF0YShhYiwgQVRIMTJLX0FDUElfRFNNX0ZVTkNfVEFTX0NGRyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00MDMtXHRcdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00MDgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0MDk6XHRpZiAoQVRIMTJLX0FDUElfRlVOQ19CSVRfVkFMSUQoYWItXHUwMDNlYWNwaSwgQVRIMTJLX0FDUElfRlVOQ19CSVRfVEFTX0RBVEEpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0MTA6XHRcdHJldCA9IGF0aDEya19hY3BpX2RzbV9nZXRfZGF0YShhYiwgQVRIMTJLX0FDUElfRFNNX0ZVTkNfVEFTX0RBVEEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDExLVx0XHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDE1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDE2Olx0XHRpZiAoQVRIMTJLX0FDUElfRlVOQ19CSVRfVkFMSUQoYWItXHUwMDNlYWNwaSwgQVRIMTJLX0FDUElfRlVOQ19CSVRfVEFTX0NGRykgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0MTc6XHRcdCAgICBhYi1cdTAwM2VhY3BpLnRhc19zYXJfcG93ZXJfdGFibGVbMF0gPT0gQVRIMTJLX0FDUElfVEFTX0RBVEFfVkVSU0lPTiBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQxODpcdFx0ICAgIGFiLVx1MDAzZWFjcGkudGFzX3Nhcl9wb3dlcl90YWJsZVsxXSA9PSBBVEgxMktfQUNQSV9UQVNfREFUQV9FTkFCTEUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00MTktXHRcdFx0YWItXHUwMDNlYWNwaS5hY3BpX3Rhc19lbmFibGUgPSB0cnVlO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQyMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQyMjpcdGlmIChBVEgxMktfQUNQSV9GVU5DX0JJVF9WQUxJRChhYi1cdTAwM2VhY3BpLCBBVEgxMktfQUNQSV9GVU5DX0JJVF9CSU9TX1NBUikpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQyMzpcdFx0cmV0ID0gYXRoMTJrX2FjcGlfZHNtX2dldF9kYXRhKGFiLCBBVEgxMktfQUNQSV9EU01fRlVOQ19CSU9TX1NBUik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00MjQtXHRcdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00MjktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0MzA6XHRpZiAoQVRIMTJLX0FDUElfRlVOQ19CSVRfVkFMSUQoYWItXHUwMDNlYWNwaSwgQVRIMTJLX0FDUElfRlVOQ19CSVRfR0VPX09GRlNFVCkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQzMTpcdFx0cmV0ID0gYXRoMTJrX2FjcGlfZHNtX2dldF9kYXRhKGFiLCBBVEgxMktfQUNQSV9EU01fRlVOQ19HRU9fT0ZGU0VUKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQzMi1cdFx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQzNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQzNzpcdFx0aWYgKEFUSDEyS19BQ1BJX0ZVTkNfQklUX1ZBTElEKGFiLVx1MDAzZWFjcGksIEFUSDEyS19BQ1BJX0ZVTkNfQklUX0JJT1NfU0FSKSBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQzODpcdFx0ICAgIGFiLVx1MDAzZWFjcGkuYmlvc19zYXJfZGF0YVswXSA9PSBBVEgxMktfQUNQSV9QT1dFUl9MSU1JVF9WRVJTSU9OIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDM5Olx0XHQgICAgYWItXHUwMDNlYWNwaS5iaW9zX3Nhcl9kYXRhWzFdID09IEFUSDEyS19BQ1BJX1BPV0VSX0xJTUlUX0VOQUJMRV9GTEFHIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDQwLVx0XHQgICAgIWFiLVx1MDAzZWFjcGkuYWNwaV90YXNfZW5hYmxlKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQ0My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQ0NDpcdGlmIChBVEgxMktfQUNQSV9GVU5DX0JJVF9WQUxJRChhYi1cdTAwM2VhY3BpLCBBVEgxMktfQUNQSV9GVU5DX0JJVF9DQ0EpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0NDU6XHRcdHJldCA9IGF0aDEya19hY3BpX2RzbV9nZXRfZGF0YShhYiwgQVRIMTJLX0FDUElfRFNNX0ZVTkNfSU5ERVhfQ0NBKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQ0Ni1cdFx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQ1MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQ1MjpcdFx0aWYgKGFiLVx1MDAzZWFjcGkuY2NhX2RhdGFbMF0gPT0gQVRIMTJLX0FDUElfQ0NBX1RIUl9WRVJTSU9OIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDUzOlx0XHQgICAgYWItXHUwMDNlYWNwaS5jY2FfZGF0YVtBVEgxMktfQUNQSV9DQ0FfVEhSX09GRlNFVF9EQVRBX09GRlNFVF0gPT1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQ1NDpcdFx0ICAgIEFUSDEyS19BQ1BJX0NDQV9USFJfRU5BQkxFX0ZMQUcpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00NTUtXHRcdFx0YWItXHUwMDNlYWNwaS5hY3BpX2NjYV9lbmFibGUgPSB0cnVlO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQ1Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQ1ODpcdGlmIChBVEgxMktfQUNQSV9GVU5DX0JJVF9WQUxJRChhYi1cdTAwM2VhY3BpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDU5Olx0XHRcdFx0ICAgICAgIEFUSDEyS19BQ1BJX0ZVTkNfQklUX0JBTkRfRURHRV9DSEFOX1BPV0VSKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDYwOlx0XHRyZXQgPSBhdGgxMmtfYWNwaV9kc21fZ2V0X2RhdGEoYWIsIEFUSDEyS19BQ1BJX0RTTV9GVU5DX0lOREVYX0JBTkRfRURHRSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00NjEtXHRcdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00NjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0Njc6XHRcdGlmIChhYi1cdTAwM2VhY3BpLmJhbmRfZWRnZV9wb3dlclswXSA9PSBBVEgxMktfQUNQSV9CQU5EX0VER0VfVkVSU0lPTiBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQ2ODpcdFx0ICAgIGFiLVx1MDAzZWFjcGkuYmFuZF9lZGdlX3Bvd2VyWzFdID09IEFUSDEyS19BQ1BJX0JBTkRfRURHRV9FTkFCTEVfRkxBRylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQ2OS1cdFx0XHRhYi1cdTAwM2VhY3BpLmFjcGlfYmFuZF9lZGdlX2VuYWJsZSA9IHRydWU7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM9NDg1PWludCBhdGgxMmtfYWNwaV9jaGVja19iZGZfdmFyaWFudF9uYW1lKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDkyLVx0aWYgKHN0cnNjcHkoYWItXHUwMDNlcW1pLnRhcmdldC5iZGZfZXh0LCBhYi1cdTAwM2VhY3BpLmJkZl9zdHJpbmcgJiM0MzsgNCwgbWF4X2xlbikgXHUwMDNjIDApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0OTM6XHRcdGF0aDEya19kYmcoYWIsIEFUSDEyS19EQkdfQk9PVCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQ5NC1cdFx0XHQgICBcJiMzNDthY3BpIGJkZiB2YXJpYW50IGxvbmdlciB0aGFuIHRoZSBidWZmZXIgKHZhcmlhbnQ6ICVzKVxcblwmIzM0Oyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaC01LSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6NjojaWZuZGVmIEFUSDEyS19BQ1BJX0hcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjc6I2RlZmluZSBBVEgxMktfQUNQSV9IXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaC04LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oLTEwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6MTE6I2RlZmluZSBBVEgxMktfQUNQSV9EU01fRlVOQ19TVVBQT1JUX0ZVTkNTXHQwXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDoxMjojZGVmaW5lIEFUSDEyS19BQ1BJX0RTTV9GVU5DX0RJU0FCTEVfRkxBR1x0MlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6MTM6I2RlZmluZSBBVEgxMktfQUNQSV9EU01fRlVOQ19CREZfRVhUXHRcdDNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjE0OiNkZWZpbmUgQVRIMTJLX0FDUElfRFNNX0ZVTkNfQklPU19TQVJcdFx0NFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6MTU6I2RlZmluZSBBVEgxMktfQUNQSV9EU01fRlVOQ19HRU9fT0ZGU0VUXHRcdDVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjE2OiNkZWZpbmUgQVRIMTJLX0FDUElfRFNNX0ZVTkNfSU5ERVhfQ0NBXHRcdDZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjE3OiNkZWZpbmUgQVRIMTJLX0FDUElfRFNNX0ZVTkNfVEFTX0NGR1x0XHQ4XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDoxODojZGVmaW5lIEFUSDEyS19BQ1BJX0RTTV9GVU5DX1RBU19EQVRBXHRcdDlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjE5OiNkZWZpbmUgQVRIMTJLX0FDUElfRFNNX0ZVTkNfSU5ERVhfQkFORF9FREdFXHRcdDEwXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaC0yMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjIxOiNkZWZpbmUgQVRIMTJLX0FDUElfRlVOQ19CSVRfRElTQUJMRV9GTEFHXHRcdEJJVCgxKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6MjI6I2RlZmluZSBBVEgxMktfQUNQSV9GVU5DX0JJVF9CREZfRVhUXHRcdFx0QklUKDIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDoyMzojZGVmaW5lIEFUSDEyS19BQ1BJX0ZVTkNfQklUX0JJT1NfU0FSXHRcdFx0QklUKDMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDoyNDojZGVmaW5lIEFUSDEyS19BQ1BJX0ZVTkNfQklUX0dFT19PRkZTRVRcdFx0XHRCSVQoNClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjI1OiNkZWZpbmUgQVRIMTJLX0FDUElfRlVOQ19CSVRfQ0NBXHRcdFx0QklUKDUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDoyNjojZGVmaW5lIEFUSDEyS19BQ1BJX0ZVTkNfQklUX1RBU19DRkdcdFx0XHRCSVQoNylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjI3OiNkZWZpbmUgQVRIMTJLX0FDUElfRlVOQ19CSVRfVEFTX0RBVEFcdFx0XHRCSVQoOClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjI4OiNkZWZpbmUgQVRIMTJLX0FDUElfRlVOQ19CSVRfQkFORF9FREdFX0NIQU5fUE9XRVJcdEJJVCg5KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmgtMjktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDozMDojZGVmaW5lIEFUSDEyS19BQ1BJX05PVElGWV9FVkVOVFx0XHRcdDB4ODZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjMxOiNkZWZpbmUgQVRIMTJLX0FDUElfRlVOQ19CSVRfVkFMSUQoX2FjZGF0YSwgX2Z1bmMpXHQoKChfYWNkYXRhKS5mdW5jX2JpdCkgXHUwMDI2IChfZnVuYykpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDozMjojZGVmaW5lIEFUSDEyS19BQ1BJX0NIRUtfQklUX1ZBTElEKF9hY2RhdGEsIF9mdW5jKVx0KCgoX2FjZGF0YSkuYml0X2ZsYWcpIFx1MDAyNiAoX2Z1bmMpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmgtMzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDozNDojZGVmaW5lIEFUSDEyS19BQ1BJX1RBU19EQVRBX1ZFUlNJT05cdFx0MHgxXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDozNTojZGVmaW5lIEFUSDEyS19BQ1BJX1RBU19EQVRBX0VOQUJMRVx0XHQweDFcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjM2OiNkZWZpbmUgQVRIMTJLX0FDUElfUE9XRVJfTElNSVRfVkVSU0lPTlx0XHQweDFcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjM3OiNkZWZpbmUgQVRIMTJLX0FDUElfUE9XRVJfTElNSVRfRU5BQkxFX0ZMQUdcdDB4MVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6Mzg6I2RlZmluZSBBVEgxMktfQUNQSV9DQ0FfVEhSX1ZFUlNJT05cdFx0MHgxXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDozOTojZGVmaW5lIEFUSDEyS19BQ1BJX0NDQV9USFJfRU5BQkxFX0ZMQUdcdFx0MHgxXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDo0MDojZGVmaW5lIEFUSDEyS19BQ1BJX0JBTkRfRURHRV9WRVJTSU9OXHRcdDB4MVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6NDE6I2RlZmluZSBBVEgxMktfQUNQSV9CQU5EX0VER0VfRU5BQkxFX0ZMQUdcdDB4MVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmgtNDItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDo0MzojZGVmaW5lIEFUSDEyS19BQ1BJX0dFT19PRkZTRVRfREFUQV9PRkZTRVRcdDFcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjQ0OiNkZWZpbmUgQVRIMTJLX0FDUElfREJTX0JBQ0tPRkZfREFUQV9PRkZTRVRcdDJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjQ1OiNkZWZpbmUgQVRIMTJLX0FDUElfQ0NBX1RIUl9PRkZTRVRfREFUQV9PRkZTRVRcdDVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjQ2OiNkZWZpbmUgQVRIMTJLX0FDUElfQklPU19TQVJfREJTX0JBQ0tPRkZfTEVOXHQxMFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6NDc6I2RlZmluZSBBVEgxMktfQUNQSV9QT1dFUl9MSU1JVF9EQVRBX09GRlNFVFx0MTJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjQ4OiNkZWZpbmUgQVRIMTJLX0FDUElfQklPU19TQVJfR0VPX09GRlNFVF9MRU5cdDE4XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDo0OTojZGVmaW5lIEFUSDEyS19BQ1BJX0JJT1NfU0FSX1RBQkxFX0xFTlx0XHQyMlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6NTA6I2RlZmluZSBBVEgxMktfQUNQSV9DQ0FfVEhSX09GRlNFVF9MRU5cdFx0MzZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oLTUxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6NTI6I2RlZmluZSBBVEgxMktfQUNQSV9EU01fVEFTX0RBVEFfU0laRVx0XHRcdDY5XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDo1MzojZGVmaW5lIEFUSDEyS19BQ1BJX0RTTV9CQU5EX0VER0VfREFUQV9TSVpFXHRcdDEwMFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6NTQ6I2RlZmluZSBBVEgxMktfQUNQSV9EU01fVEFTX0NGR19TSVpFXHRcdFx0MTA4XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaC01NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjU2OiNkZWZpbmUgQVRIMTJLX0FDUElfRFNNX0ZVTkNfTUlOX0JJVE1BUF9TSVpFXHQxXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDo1NzojZGVmaW5lIEFUSDEyS19BQ1BJX0RTTV9GVU5DX01BWF9CSVRNQVBfU0laRVx0NFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmgtNTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDo1OTojZGVmaW5lIEFUSDEyS19BQ1BJX0RTTV9ESVNBQkxFXzExQkVfQklUXHRCSVQoMClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjYwOiNkZWZpbmUgQVRIMTJLX0FDUElfRFNNX0RJU0FCTEVfUkZLSUxMX0JJVFx0QklUKDIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaC02MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjYyOiNkZWZpbmUgQVRIMTJLX0FDUElfQkRGX0FOQ0hPUl9TVFJJTkdfTEVOXHQzXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDo2MzojZGVmaW5lIEFUSDEyS19BQ1BJX0JERl9BTkNIT1JfU1RSSU5HXHRcdFwmIzM0O0JERlwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6NjQ6I2RlZmluZSBBVEgxMktfQUNQSV9CREZfTUFYX0xFTlx0XHRcdDEwMFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmgtNjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDo2NjojZGVmaW5lIEFUSDEyS19BQ1BJX0RTTV9HRU9fT0ZGU0VUX0RBVEFfU0laRSAoQVRIMTJLX0FDUElfR0VPX09GRlNFVF9EQVRBX09GRlNFVCAmIzQzOyBcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6Njc6XHRcdFx0XHRcdCAgICAgIEFUSDEyS19BQ1BJX0JJT1NfU0FSX0dFT19PRkZTRVRfTEVOKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6Njg6I2RlZmluZSBBVEgxMktfQUNQSV9EU01fQklPU19TQVJfREFUQV9TSVpFIChBVEgxMktfQUNQSV9QT1dFUl9MSU1JVF9EQVRBX09GRlNFVCAmIzQzOyBcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6Njk6XHRcdFx0XHRcdCAgICBBVEgxMktfQUNQSV9CSU9TX1NBUl9UQUJMRV9MRU4pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDo3MDojZGVmaW5lIEFUSDEyS19BQ1BJX0RTTV9DQ0FfREFUQV9TSVpFIChBVEgxMktfQUNQSV9DQ0FfVEhSX09GRlNFVF9EQVRBX09GRlNFVCAmIzQzOyBcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6NzE6XHRcdFx0XHQgICAgICAgQVRIMTJLX0FDUElfQ0NBX1RIUl9PRkZTRVRfTEVOKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmgtNzItXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg9MTA3PXN0YXRpYyBpbmxpbmUgaW50IGF0aDEya19hY3BpX2NoZWNrX2JkZl92YXJpYW50X25hbWUoc3RydWN0IGF0aDEya19iYXNlICphYilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaC0xMTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDoxMTQ6I2VuZGlmIC8qIEFUSDEyS19BQ1BJX0ggKi9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTE5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzoyMDojZGVmaW5lIEFUSDEyS19JUlFfQ0UwX09GRlNFVCA0XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjIxOiNkZWZpbmUgQVRIMTJLX1VQRF9JUlFfV1JEX0xFTiAgMThcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjIzOnN0YXRpYyBzdHJ1Y3QgYXRoMTJrX2FoYl9kcml2ZXIgKmF0aDEya19haGJfZmFtaWx5X2RyaXZlcnNbQVRIMTJLX0RFVklDRV9GQU1JTFlfTUFYXTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjQtc3RhdGljIGNvbnN0IGNoYXIgYXRoMTJrX3VzZXJwZF9pcnFbXVs5XSA9IHtcJiMzNDtzcGF3blwmIzM0Oyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jPTQyPXN0YXRpYyBERUZJTkVfTVVURVgoYXRoMTJrX3Jwcm9jX2luZm9fbG9jayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTQzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzo0NDpzdGF0aWMgY29uc3QgY2hhciAqaXJxX25hbWVbQVRIMTJLX0lSUV9OVU1fTUFYXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNDUtXHRcJiMzNDttaXNjLXB1bHNlMVwmIzM0Oyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jPTE3OD1zdGF0aWMgdm9pZCBfX2F0aDEya19haGJfZXh0X2lycV9kaXNhYmxlKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0xODEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjE4MjpcdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFUSDEyS19FWFRfSVJRX0dSUF9OVU1fTUFYOyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0xODMtXHRcdHN0cnVjdCBhdGgxMmtfZXh0X2lycV9ncnAgKmlycV9ncnAgPSBcdTAwMjZhYi1cdTAwM2VleHRfaXJxX2dycFtpXTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jPTI2MD1zdGF0aWMgdm9pZCBhdGgxMmtfYWhiX3N5bmNfY2VfaXJxcyhzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjY4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzoyNjk6XHRcdGlycV9pZHggPSBBVEgxMktfSVJRX0NFMF9PRkZTRVQgJiM0MzsgaTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjcwLVx0XHRzeW5jaHJvbml6ZV9pcnEoYWItXHUwMDNlaXJxX251bVtpcnFfaWR4XSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYz0yNzQ9c3RhdGljIHZvaWQgYXRoMTJrX2FoYl9zeW5jX2V4dF9pcnFzKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0yNzgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjI3OTpcdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFUSDEyS19FWFRfSVJRX0dSUF9OVU1fTUFYOyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0yODAtXHRcdHN0cnVjdCBhdGgxMmtfZXh0X2lycV9ncnAgKmlycV9ncnAgPSBcdTAwMjZhYi1cdTAwM2VleHRfaXJxX2dycFtpXTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jPTMxOT1zdGF0aWMgdm9pZCBhdGgxMmtfYWhiX2V4dF9pcnFfZW5hYmxlKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0zMjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjMyNDpcdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFUSDEyS19FWFRfSVJRX0dSUF9OVU1fTUFYOyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0zMjUtXHRcdGlycV9ncnAgPSBcdTAwMjZhYi1cdTAwM2VleHRfaXJxX2dycFtpXTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jPTM0MD1zdGF0aWMgdm9pZCBhdGgxMmtfYWhiX3N0b3Aoc3RydWN0IGF0aDEya19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMzQxLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MzQyOlx0aWYgKCF0ZXN0X2JpdChBVEgxMktfRkxBR19DUkFTSF9GTFVTSCwgXHUwMDI2YWItXHUwMDNlZGV2X2ZsYWdzKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMzQzLVx0XHRhdGgxMmtfYWhiX2NlX2lycXNfZGlzYWJsZShhYik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYz0zNTA9c3RhdGljIGludCBhdGgxMmtfYWhiX3Bvd2VyX3VwKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0zNTItXHRzdHJ1Y3QgYXRoMTJrX2FoYiAqYWJfYWhiID0gYXRoMTJrX2FiX3RvX2FoYihhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjM1MzpcdGNoYXIgZndfbmFtZVtBVEgxMktfVVNFUlBEX0ZXX05BTUVfTEVOXTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MzU0Olx0Y2hhciBmdzJfbmFtZVtBVEgxMktfVVNFUlBEX0ZXX05BTUVfTEVOXTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMzU1LVx0c3RydWN0IGRldmljZSAqZGV2ID0gYWItXHUwMDNlZGV2O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMzc4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzozNzk6XHRzbnByaW50Zihmd19uYW1lLCBzaXplb2YoZndfbmFtZSksIFwmIzM0OyVzLyVzLyVzJWQlc1wmIzM0OywgQVRIMTJLX0ZXX0RJUixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MzgwOlx0XHQgYWItXHUwMDNlaHdfcGFyYW1zLVx1MDAzZWZ3LmRpciwgQVRIMTJLX0FIQl9GV19QUkVGSVgsIGFiX2FoYi1cdTAwM2V1c2VycGRfaWQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjM4MTpcdFx0IEFUSDEyS19BSEJfRldfU1VGRklYKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMzgyLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMzg4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzozODk6XHRhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX0FIQiwgXCYjMzQ7Qm9vdGluZyBmdyBpbWFnZSAlcywgc2l6ZSAlemRcXG5cJiMzNDssIGZ3X25hbWUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTM5MC1cdFx0ICAgZnctXHUwMDNlc2l6ZSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0zOTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjM5ODpcdHBhc2lkID0gKHUzMl9lbmNvZGVfYml0cyhhYl9haGItXHUwMDNldXNlcnBkX2lkLCBBVEgxMktfVVNFUlBEX0lEX01BU0spKSB8XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjM5OTpcdFx0QVRIMTJLX0FIQl9VUERfU1dJRDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNDAwLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNDEyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzo0MTM6XHRzbnByaW50ZihmdzJfbmFtZSwgc2l6ZW9mKGZ3Ml9uYW1lKSwgXCYjMzQ7JXMvJXMvJXNcJiMzNDssIEFUSDEyS19GV19ESVIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjQxNDpcdFx0IGFiLVx1MDAzZWh3X3BhcmFtcy1cdTAwM2Vmdy5kaXIsIEFUSDEyS19BSEJfRlcyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNDE1LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNDIxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzo0MjI6XHRhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX0FIQiwgXCYjMzQ7Qm9vdGluZyBmdyBpbWFnZSAlcywgc2l6ZSAlemRcXG5cJiMzNDssIGZ3Ml9uYW1lLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy00MjMtXHRcdCAgIGZ3Mi1cdTAwM2VzaXplKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTQ1NS1cdHRpbWVfbGVmdCA9IHdhaXRfZm9yX2NvbXBsZXRpb25fdGltZW91dChcdTAwMjZhYl9haGItXHUwMDNldXNlcnBkX3NwYXduZWQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjQ1NjpcdFx0XHRcdFx0XHRBVEgxMktfVVNFUlBEX1NQQVdOX1RJTUVPVVQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy00NTctXHRpZiAoIXRpbWVfbGVmdCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNDYzLVx0dGltZV9sZWZ0ID0gd2FpdF9mb3JfY29tcGxldGlvbl90aW1lb3V0KFx1MDAyNmFiX2FoYi1cdTAwM2V1c2VycGRfcmVhZHksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjQ2NDpcdFx0XHRcdFx0XHRBVEgxMktfVVNFUlBEX1JFQURZX1RJTUVPVVQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy00NjUtXHRpZiAoIXRpbWVfbGVmdCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNDcyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzo0NzM6XHRhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX0FIQiwgXCYjMzQ7VXNlclBEJWQgaXMgbm93IFVQXFxuXCYjMzQ7LCBhYl9haGItXHUwMDNldXNlcnBkX2lkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNDc0LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM9NDgyPXN0YXRpYyB2b2lkIGF0aDEya19haGJfcG93ZXJfZG93bihzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiLCBib29sIGlzX3N1c3BlbmQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy00OTItXHR0aW1lX2xlZnQgPSB3YWl0X2Zvcl9jb21wbGV0aW9uX3RpbWVvdXQoXHUwMDI2YWJfYWhiLVx1MDAzZXVzZXJwZF9zdG9wcGVkLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzo0OTM6XHRcdFx0XHRcdFx0QVRIMTJLX1VTRVJQRF9TVE9QX1RJTUVPVVQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy00OTQtXHRpZiAoIXRpbWVfbGVmdCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNTAxLVx0aWYgKGFiX2FoYi1cdTAwM2VzY21fYXV0aF9lbmFibGVkKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjUwMjpcdFx0cGFzaWQgPSAodTMyX2VuY29kZV9iaXRzKGFiX2FoYi1cdTAwM2V1c2VycGRfaWQsIEFUSDEyS19VU0VSUERfSURfTUFTSykpIHxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6NTAzOlx0XHRcdCBBVEgxMktfQUhCX1VQRF9TV0lEO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy01MDQtXHRcdC8qIFJlbGVhc2UgdGhlIGZpcm13YXJlICovXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYz01ODE9c3RhdGljIGludCBhdGgxMmtfYWhiX2NvbmZpZ19leHRfaXJxKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy01ODgtXHRyaW5nX21hc2sgPSBhYi1cdTAwM2Vod19wYXJhbXMtXHUwMDNlcmluZ19tYXNrO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzo1ODk6XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBVEgxMktfRVhUX0lSUV9HUlBfTlVNX01BWDsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNTkwLVx0XHRpcnFfZ3JwID0gXHUwMDI2YWItXHUwMDNlZXh0X2lycV9ncnBbaV07XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy02MDUtXHRcdFx0ICAgIEJJVChhYi1cdTAwM2VoYWwudGNsX3RvX3dibV9yYm1fbWFwW2pdLndibV9yaW5nX251bSkgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjYwNjpcdFx0XHQgICAgbnVtX2lycSBcdTAwM2MgQVRIMTJLX0VYVF9JUlFfTlVNX01BWCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy02MDctXHRcdFx0XHRpcnFfZ3JwLVx1MDAzZWlycXNbbnVtX2lycSYjNDM7JiM0MztdID1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTYxMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6NjEyOlx0XHRmb3IgKGogPSAwOyBqIFx1MDAzYyBBVEgxMktfRVhUX0lSUV9OVU1fTUFYOyBqJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy02MTMtXHRcdFx0aWYgKHJpbmdfbWFzay1cdTAwM2VyeFtpXSBcdTAwMjYgQklUKGopIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzo2MTQ6XHRcdFx0ICAgIG51bV9pcnEgXHUwMDNjIEFUSDEyS19FWFRfSVJRX05VTV9NQVgpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNjE1LVx0XHRcdFx0aXJxX2dycC1cdTAwM2VpcnFzW251bV9pcnEmIzQzOyYjNDM7XSA9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy02MTktXHRcdFx0aWYgKHJpbmdfbWFzay1cdTAwM2VyeF9lcnJbaV0gXHUwMDI2IEJJVChqKSBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6NjIwOlx0XHRcdCAgICBudW1faXJxIFx1MDAzYyBBVEgxMktfRVhUX0lSUV9OVU1fTUFYKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy02MjEtXHRcdFx0XHRpcnFfZ3JwLVx1MDAzZWlycXNbbnVtX2lycSYjNDM7JiM0MztdID0gcmVvMmhvc3RfZXhjZXB0aW9uO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNjIzLVx0XHRcdGlmIChyaW5nX21hc2stXHUwMDNlcnhfd2JtX3JlbFtpXSBcdTAwMjYgQklUKGopIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzo2MjQ6XHRcdFx0ICAgIG51bV9pcnEgXHUwMDNjIEFUSDEyS19FWFRfSVJRX05VTV9NQVgpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTYyNS1cdFx0XHRcdGlycV9ncnAtXHUwMDNlaXJxc1tudW1faXJxJiM0MzsmIzQzO10gPSB3Ym0yaG9zdF9yeF9yZWxlYXNlO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNjI3LVx0XHRcdGlmIChyaW5nX21hc2stXHUwMDNlcmVvX3N0YXR1c1tpXSBcdTAwMjYgQklUKGopIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzo2Mjg6XHRcdFx0ICAgIG51bV9pcnEgXHUwMDNjIEFUSDEyS19FWFRfSVJRX05VTV9NQVgpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTYyOS1cdFx0XHRcdGlycV9ncnAtXHUwMDNlaXJxc1tudW1faXJxJiM0MzsmIzQzO10gPSByZW8yaG9zdF9zdGF0dXM7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy02MzEtXHRcdFx0aWYgKHJpbmdfbWFzay1cdTAwM2VyeF9tb25fZGVzdFtpXSBcdTAwMjYgQklUKGopIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzo2MzI6XHRcdFx0ICAgIG51bV9pcnEgXHUwMDNjIEFUSDEyS19FWFRfSVJRX05VTV9NQVgpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTYzMy1cdFx0XHRcdGlycV9ncnAtXHUwMDNlaXJxc1tudW1faXJxJiM0MzsmIzQzO10gPVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM9NjU4PXN0YXRpYyBpbnQgYXRoMTJrX2FoYl9jb25maWdfaXJxKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy02NjktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjY3MDpcdFx0aXJxX2lkeCA9IEFUSDEyS19JUlFfQ0UwX09GRlNFVCAmIzQzOyBpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy02NzEtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYz03MzY9c3RhdGljIGlycXJldHVybl90IGF0aDEya191c2VycGRfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqZGF0YSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTc0MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6NzQxOlx0aWYgKGlycSA9PSBhYl9haGItXHUwMDNldXNlcnBkX2lycV9udW1bQVRIMTJLX1VTRVJQRF9TUEFXTl9JUlFdKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTc0Mi1cdFx0Y29tcGxldGUoXHUwMDI2YWJfYWhiLVx1MDAzZXVzZXJwZF9zcGF3bmVkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6NzQzOlx0fSBlbHNlIGlmIChpcnEgPT0gYWJfYWhiLVx1MDAzZXVzZXJwZF9pcnFfbnVtW0FUSDEyS19VU0VSUERfUkVBRFlfSVJRXSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy03NDQtXHRcdGNvbXBsZXRlKFx1MDAyNmFiX2FoYi1cdTAwM2V1c2VycGRfcmVhZHkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzo3NDU6XHR9IGVsc2UgaWYgKGlycSA9PSBhYl9haGItXHUwMDNldXNlcnBkX2lycV9udW1bQVRIMTJLX1VTRVJQRF9TVE9QX0FDS19JUlFdKVx0e1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy03NDYtXHRcdGNvbXBsZXRlKFx1MDAyNmFiX2FoYi1cdTAwM2V1c2VycGRfc3RvcHBlZCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYz03NTU9c3RhdGljIGludCBhdGgxMmtfYWhiX2NvbmZpZ19ycHJvY19pcnEoc3RydWN0IGF0aDEya19iYXNlICphYilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTc2MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6NzYxOlx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVRIMTJLX1VTRVJQRF9NQVhfSVJROyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy03NjItXHRcdGFiX2FoYi1cdTAwM2V1c2VycGRfaXJxX251bVtpXSA9IHBsYXRmb3JtX2dldF9pcnFfYnluYW1lKGFiLVx1MDAzZXBkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy03NjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjc2NzpcdFx0dXBkX2lycV9uYW1lID0gZGV2bV9remFsbG9jKFx1MDAyNmFiLVx1MDAzZXBkZXYtXHUwMDNlZGV2LCBBVEgxMktfVVBEX0lSUV9XUkRfTEVOLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy03NjgtXHRcdFx0XHRcdCAgICBHRlBfS0VSTkVMKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTc3MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6NzcyOlx0XHRzY25wcmludGYodXBkX2lycV9uYW1lLCBBVEgxMktfVVBEX0lSUV9XUkRfTEVOLCBcJiMzNDtVc2VyUEQldS0lc1wmIzM0OyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNzczLVx0XHRcdCAgYWJfYWhiLVx1MDAzZXVzZXJwZF9pZCwgYXRoMTJrX3VzZXJwZF9pcnFbaV0pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM9ODAyPXN0YXRpYyBpbnQgYXRoMTJrX2FoYl9yb290X3BkX3N0YXRlX25vdGlmaWVyKHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy04MDctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjgwODpcdGlmIChldmVudCA9PSBBVEgxMktfUlBST0NfQUZURVJfUE9XRVJVUCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzo4MDk6XHRcdGF0aDEya19nZW5lcmljX2RiZyhBVEgxMktfREJHX0FIQiwgXCYjMzQ7Um9vdCBQRCBpcyBVUFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTgxMC1cdFx0Y29tcGxldGUoXHUwMDI2cnByb2NfaW5mby1cdTAwM2Vyb290cGRfcmVhZHkpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM9ODg2PXN0YXRpYyBpbnQgYXRoMTJrX2FoYl9nZXRfcnByb2Moc3RydWN0IGF0aDEya19iYXNlICphYilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTg5NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6ODk2Olx0aWYgKGFiX2FoYi1cdTAwM2V1c2VycGRfaWQgXHUwMDNlIEFUSDEyS19NQVhfREVWSUNFUylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtODk3LVx0XHRyZXR1cm4gLUVOT1NQQztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTg5OS1cdGlmIChnX3Jwcm9jX2luZm8pIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6OTAwOlx0XHRpZiAoZ19ycHJvY19pbmZvLVx1MDAzZW51bV91c2VycGQgXHUwMDNlPSBBVEgxMktfTUFYX0RFVklDRVMpIHtcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI4IDAxOjQ5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE4OTY3CgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogMzMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0czoKCioqSW52ZXN0aWdhdGluZyBhdGgxMmsgQnVzIFN1cHBvcnQqKgoKT2theSwgc28gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hhdCBidXNlcyB0aGUgYXRoMTJrIGRyaXZlciBhY3R1YWxseSBzdXBwb3J0cy4gVGhhdCYjMzk7cyB0aGUgbG9naWNhbCBzdGFydGluZyBwb2ludCwgcmlnaHQ/IFRvIGdldCBhIGhhbmRsZSBvbiB0aGUgb3ZlcmFsbCBhcmNoaXRlY3R1cmUgYW5kIGhvdyBpdCYjMzk7cyBpbnRlcmZhY2luZyB3aXRoIGRpZmZlcmVudCBoYXJkd2FyZSwgSSBuZWVkIHRvIGtub3cgd2hlcmUgaXQgY2FuIHBsdWcgaW4uIExldCYjMzk7cyBkaXZlIHN0cmFpZ2h0IGludG8gdGhlIGNvZGUuIFRoZSBvYnZpb3VzIHBsYWNlIHRvIGJlZ2luIGlzIHRoZSBgS2NvbmZpZ2AgZmlsZSB3aXRoaW4gdGhlIGF0aDEyayBkaXJlY3Rvcnkg4oCTIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWdgLiBUaGF0JiMzOTtzIHdoZXJlIGFsbCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSBkZWNsYXJlZCwgYW5kIHRoYXQgc2hvdWxkIGRlZmluaXRlbHkgaW5jbHVkZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc3VwcG9ydGVkIGJ1cyB0eXBlcy4gSSYjMzk7bGwgZ2V0IHRoYXQgZmlsZSBvcGVuIGFuZCBzdGFydCBsb29raW5nIGZvciB0aGUgcGVydGluZW50IGNvbmZpZ3VyYXRpb25zLiBUaW1lIHRvIGRpZyBpbiBhbmQgc2VlIHdoYXQgYEtjb25maWdgIHJldmVhbHMhCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjggMDE6NDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDYwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcbiAgIDI6XHRjb25maWcgQVRIMTJLXG4gICAzOlx0XHR0cmlzdGF0ZSBcJiMzNDtRdWFsY29tbSBXaS1GaSA3IHN1cHBvcnQgKGF0aDEyaylcJiMzNDtcbiAgIDQ6XHRcdGRlcGVuZHMgb24gTUFDODAyMTEgXHUwMDI2XHUwMDI2IEhBU19ETUEgXHUwMDI2XHUwMDI2IFBDSVxuICAgNTpcdFx0c2VsZWN0IFFDT01fUU1JX0hFTFBFUlNcbiAgIDY6XHRcdHNlbGVjdCBNSElfQlVTXG4gICA3Olx0XHRzZWxlY3QgUVJUUlxuICAgODpcdFx0c2VsZWN0IFFSVFJfTUhJXG4gICA5Olx0XHRzZWxlY3QgUENJX1BXUkNUUkxfUFdSU0VRIGlmIEhBVkVfUFdSQ1RSTFxuICAxMDpcdFx0aGVscFxuICAxMTpcdFx0ICBFbmFibGUgc3VwcG9ydCBmb3IgUXVhbGNvbW0gVGVjaG5vbG9naWVzIFdpLUZpIDcgKElFRUVcbiAgMTI6XHRcdCAgODAyLjExYmUpIGZhbWlseSBvZiBjaGlwc2V0cywgZm9yIGV4YW1wbGUgV0NONzg1MCBhbmRcbiAgMTM6XHRcdCAgUUNOOTI3NC5cbiAgMTQ6XHRcbiAgMTU6XHRcdCAgSWYgeW91IGNob29zZSB0byBidWlsZCBhIG1vZHVsZSwgaXQmIzM5O2xsIGJlIGNhbGxlZCBhdGgxMmsuXG4gIDE2Olx0XG4gIDE3Olx0Y29uZmlnIEFUSDEyS19BSEJcbiAgMTg6XHRcdGJvb2wgXCYjMzQ7UXVhbGNvbW0gYXRoMTJrIEFIQiBzdXBwb3J0XCYjMzQ7XG4gIDE5Olx0XHRkZXBlbmRzIG9uIEFUSDEySyBcdTAwMjZcdTAwMjYgUkVNT1RFUFJPQ1xuICAyMDpcdFx0c2VsZWN0IFFDT01fTURUX0xPQURFUlxuICAyMTpcdFx0c2VsZWN0IFFDT01fUEFTXG4gIDIyOlx0XHRoZWxwXG4gIDIzOlx0XHQgIEVuYWJsZSBzdXBwb3J0IGZvciBBdGgxMmsgQUhCIGJ1cyBjaGlwc2V0cywgZXhhbXBsZSBJUFE1MzMyLlxuICAyNDpcdFxuICAyNTpcdGNvbmZpZyBBVEgxMktfREVCVUdcbiAgMjY6XHRcdGJvb2wgXCYjMzQ7YXRoMTJrIGRlYnVnZ2luZ1wmIzM0O1xuICAyNzpcdFx0ZGVwZW5kcyBvbiBBVEgxMktcbiAgMjg6XHRcdGhlbHBcbiAgMjk6XHRcdCAgRW5hYmxlIGRlYnVnIHN1cHBvcnQsIGZvciBleGFtcGxlIGRlYnVnIG1lc3NhZ2VzIHdoaWNoIG11c3RcbiAgMzA6XHRcdCAgYmUgZW5hYmxlZCBzZXBhcmF0ZWx5IHVzaW5nIHRoZSBkZWJ1Z19tYXNrIG1vZHVsZSBwYXJhbWV0ZXIuXG4gIDMxOlx0XG4gIDMyOlx0XHQgIElmIHVuc3VyZSwgc2F5IFkgdG8gbWFrZSBpdCBlYXNpZXIgdG8gZGVidWcgcHJvYmxlbXMuIEJ1dCBpZlxuICAzMzpcdFx0ICB5b3Ugd2FudCBvcHRpbWFsIHBlcmZvcm1hbmNlIGNob29zZSBOLlxuICAzNDpcdFxuICAzNTpcdGNvbmZpZyBBVEgxMktfREVCVUdGU1xuICAzNjpcdFx0Ym9vbCBcJiMzNDtRdWFsY29tbSBhdGgxMmsgZGVidWdmcyBzdXBwb3J0XCYjMzQ7XG4gIDM3Olx0XHRkZXBlbmRzIG9uIEFUSDEySyBcdTAwMjZcdTAwMjYgTUFDODAyMTFfREVCVUdGU1xuICAzODpcdFx0aGVscFxuICAzOTpcdFx0ICBFbmFibGUgYXRoMTJrIGRlYnVnZnMgc3VwcG9ydFxuICA0MDpcdFxuICA0MTpcdFx0ICBJZiB1bnN1cmUsIHNheSBZIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGRlYnVnIHByb2JsZW1zLiBCdXQgaWZcbiAgNDI6XHRcdCAgeW91IHdhbnQgb3B0aW1hbCBwZXJmb3JtYW5jZSBjaG9vc2UgTi5cbiAgNDM6XHRcbiAgNDQ6XHRjb25maWcgQVRIMTJLX1RSQUNJTkdcbiAgNDU6XHRcdGJvb2wgXCYjMzQ7YXRoMTJrIHRyYWNpbmcgc3VwcG9ydFwmIzM0O1xuICA0NjpcdFx0ZGVwZW5kcyBvbiBBVEgxMksgXHUwMDI2XHUwMDI2IEVWRU5UX1RSQUNJTkdcbiAgNDc6XHRcdGhlbHBcbiAgNDg6XHRcdCAgRW5hYmxlIGF0aDEyayB0cmFjaW5nIGluZnJhc3RydWN0dXJlLlxuICA0OTpcdFxuICA1MDpcdFx0ICBJZiB1bnN1cmUsIHNheSBZIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGRlYnVnIHByb2JsZW1zLiBCdXQgaWZcbiAgNTE6XHRcdCAgeW91IHdhbnQgb3B0aW1hbCBwZXJmb3JtYW5jZSBjaG9vc2UgTi5cbiAgNTI6XHRcbiAgNTM6XHRjb25maWcgQVRIMTJLX0NPUkVEVU1QXG4gIDU0Olx0XHRib29sIFwmIzM0O2F0aDEyayBjb3JlZHVtcFwmIzM0O1xuICA1NTpcdFx0ZGVwZW5kcyBvbiBBVEgxMktcbiAgNTY6XHRcdHNlbGVjdCBXQU5UX0RFVl9DT1JFRFVNUFxuICA1NzpcdFx0aGVscFxuICA1ODpcdFx0ICBFbmFibGUgYXRoMTJrIGNvcmVkdW1wIGNvbGxlY3Rpb25cbiAgNTk6XHRcbiAgNjA6XHRcdCAgSWYgdW5zdXJlLCBzYXkgWSB0byBtYWtlIGl0IGVhc2llciB0byBkZWJ1ZyBwcm9ibGVtcy4gQnV0IGlmXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjggMDE6NDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjAwNTcKCQkJCQkJCW91dHB1dDogNDMKCQkJCQkJCXRob3VnaHRzOiAzMTgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgYXRoMTJrIERyaXZlciBmb3IgRnV6emluZyBTdWl0YWJpbGl0eSoqCgpPa2F5LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMgYGF0aDEya2Agc2l0dWF0aW9uLiBGaXJzdCwgSSBuZWVkIHRvIHJlbWluZCBteXNlbGY6IGl0JiMzOTtzIGEgUXVhbGNvbW0gV2ktRmkgNyBQQ0kvQUhCIGRyaXZlci4gUmlnaHQsIGl0JiMzOTtzIHRpZWQgdG8gc3BlY2lmaWMgUXVhbGNvbW0gaGFyZHdhcmXigJR0aGluZ3MgbGlrZSBXQ043ODUwLCBRQ045Mjc0LCBvciBJUFE1MzMyLiBJdCBhbHNvIGFwcGVhcnMgdG8gcmVseSBvbiBNSEkgb3IgUUNPTSBRTUkgZmlybXdhcmUgbG9hZGluZy4KCk5vdywgaG9sZCBvbi4gQmVmb3JlIEkganVtcCB0byBjb25jbHVzaW9ucywgSSBuZWVkIHRvIGNvbnNpZGVyIHdoZXRoZXIgdGhlcmUmIzM5O3MgYW55IGtpbmQgb2YgdmlydHVhbCBvciBlbXVsYXRlZCBpbnRlcmZhY2UsIHBlcmhhcHMgYSBVU0IgZ2FkZ2V0IG9yIGFueXRoaW5nIGVsc2UgdGhhdCBtaWdodCBjcmVhdGUgYSB1c2FibGUgZW52aXJvbm1lbnQgZm9yIHRoaXMuIExldCBtZSBjaGVjayB3aGF0IG9wdGlvbnMgZXhpc3QgZm9yIGVtdWxhdGluZyBvciBpZiBhdGgxMmsgaXMgc3RyaWN0bHkgdGllZCB0byBwaHlzaWNhbCBQQ0kvQUhCIGhhcmR3YXJlLgoKV2FpdCwgdGhlIGluc3RydWN0aW9ucy4gTGV0JiMzOTtzIG1ha2Ugc3VyZSBJJiMzOTttIG9uIHRoZSByaWdodCB0cmFjazogUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggaW52b2x2ZXMgY29kZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLCBldmVuIHdpdGggc29mdHdhcmUgZW11bGF0ZWQgaGFyZHdhcmUgKGxpa2UgdXNiIGdhZGdldCBvciBtYWM4MDIxMV9od3NpbSksIGFuZCBhbHNvIGlmIHRoZSBjb2RlIGlzIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChtbHhzdywgcGRzX2NvcmUsIHFlZCwgaW9uaWMsIGFtZGdwdSkgcmVxdWlyaW5nIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCgpBaGEhIE5vdyBJJiMzOTttIGdldHRpbmcgYSBjbGVhcmVyIHBpY3R1cmUuIElzIGBhdGgxMmtgICpvbmx5KiBwaHlzaWNhbCBoYXJkd2FyZT8gVGhhdCYjMzk7cyB0aGUgY3JpdGljYWwgcXVlc3Rpb24gaGVyZS4KCk9rYXksIHRpbWUgdG8gZ2V0IHNwZWNpZmljLiBJJiMzOTtsbCBuZWVkIHRvIGRyaWxsIGRvd24gaW50byB0aGUgY29kZSBpdHNlbGYsIHN0YXJ0aW5nIHdpdGggYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvaHcuY2AuIEkgd2FudCB0byBzZWUgZXhhY3RseSB3aGVyZSBgYXRoMTJrX3dpZmk3X2h3X3BhcmFtc2AgaXMgdXNlZCwgYW5kIGhvdy4gVGhhdCB3aWxsIGxpa2VseSByZXZlYWwgaWYgdGhpcyBkcml2ZXIgaGFzIGFueSBjaGFuY2Ugb2YgYmVpbmcgdGVzdGVkIG91dHNpZGUgb2YgYSB2ZXJ5IHNwZWNpZmljIGhhcmR3YXJlIGNvbmZpZ3VyYXRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjggMDE6NDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7YXRoMTJrX3dpZmk3X2h3X3BhcmFtcyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9ody5jPTM1Mj1zdGF0aWMgY29uc3Qgc3RydWN0IGNlX3JlbWFwIGF0aDEya193aWZpN19jZV9yZW1hcF9pcHE1NDI0ID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvaHcuYy0zNTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmM6MzU4OnN0YXRpYyBjb25zdCBzdHJ1Y3QgYXRoMTJrX2h3X3BhcmFtcyBhdGgxMmtfd2lmaTdfaHdfcGFyYW1zW10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmMtMzU5LVx0e1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvaHcuYz0xMjIyPWludCBhdGgxMmtfd2lmaTdfaHdfaW5pdChzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvaHcuYy0xMjI2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9ody5jOjEyMjc6XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBUlJBWV9TSVpFKGF0aDEya193aWZpN19od19wYXJhbXMpOyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9ody5jOjEyMjg6XHRcdGh3X3BhcmFtcyA9IFx1MDAyNmF0aDEya193aWZpN19od19wYXJhbXNbaV07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmMtMTIyOS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmMtMTIzMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvaHcuYzoxMjM0Olx0aWYgKGkgPT0gQVJSQVlfU0laRShhdGgxMmtfd2lmaTdfaHdfcGFyYW1zKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9ody5jLTEyMzUtXHRcdGF0aDEya19lcnIoYWIsIFwmIzM0O1Vuc3VwcG9ydGVkIFdpLUZpIDcgaGFyZHdhcmUgdmVyc2lvbjogMHgleFxcblwmIzM0OyxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yOCAwMTo0OTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTM0MwoJCQkJCQkJb3V0cHV0OiA0MwoJCQkJCQkJdGhvdWdodHM6IDIxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqVHJhY2luZyB0aGUgYGF0aDEya193aWZpN19od19pbml0YCBDYWxsIENoYWluKioKCkFscmlnaHQsIGxldCYjMzk7cyBkaXZlIGluLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UgZm9yIHRoaXMgYGF0aDEya193aWZpN19od19pbml0YCBmdW5jdGlvbi4gR2l2ZW4gdGhlIG5hbWluZyBjb252ZW50aW9uLCBpdCYjMzk7cyBwcmV0dHkgY2xlYXIgaXQmIzM5O3MgdGllZCB0byB0aGUgaGFyZHdhcmUgYnJpbmctdXAgcHJvY2VzcyBvZiBhbiBBdGhlcm9zIChsaWtlbHkgUXVhbGNvbW0pIFdpRmkgNyBjaGlwc2V0LCBwcmVzdW1hYmx5IHdpdGhpbiB0aGUgYGF0aDEya2AgZHJpdmVyLiBTbywgbXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdG8gdHJhY2Ugd2hlcmUgdGhpcyBmdW5jdGlvbiBpcyBhY3R1YWxseSBjYWxsZWQgZnJvbSB3aXRoaW4gdGhlIGRyaXZlciYjMzk7cyBjb2RlYmFzZS4gSSYjMzk7bGwgbmVlZCB0byB1c2UgbXkgdXN1YWwgbWV0aG9kcywgbGlrZWx5IGEgY29tYmluYXRpb24gb2Ygc3RhdGljIGFuYWx5c2lzIChncmVwcGluZyB0aGUgc291cmNlKSBhbmQgcGVyaGFwcyBldmVuIHNvbWUgZHluYW1pYyB0cmFjaW5nIChpZiBJJiMzOTttIGZlZWxpbmcgYW1iaXRpb3VzIGxhdGVyKS4gS25vd2luZyB0aGUgY2FsbCBzaXRlIHdpbGwgaW1tZWRpYXRlbHkgcHJvdmlkZSBjcnVjaWFsIGNvbnRleHQ6IHdoYXQgYXJlIHRoZSBjb25kaXRpb25zLCB0aGUgZGF0YSBzdHJ1Y3R1cmVzLCBhbmQgdGhlIG92ZXJhbGwgZHJpdmVyIHN0YXRlIGF0IHRoYXQgcG9pbnQ/IFRoYXQgY29udGV4dCBpcyBrZXkgdG8gdW5kZXJzdGFuZGluZyB0aGUgaW50ZW5kZWQgcm9sZSBvZiB0aGUgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24uIFRpbWUgdG8gc3RhcnQgZGlnZ2luZyB0aHJvdWdoIHRoZSBzb3VyY2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI4IDAxOjUwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2F0aDEya193aWZpN19od19pbml0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyayYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2FoYi5jPTkyPXN0YXRpYyBpbnQgYXRoMTJrX3dpZmk3X2FoYl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvYWhiLmMtMTEyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9haGIuYzoxMTM6XHRyZXQgPSBhdGgxMmtfd2lmaTdfaHdfaW5pdChhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2FoYi5jLTExNC1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmM9MTE2ND1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgYXRoMTJrX29wc193aWZpNyA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmMtMTIyMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvaHcuYzoxMjIyOmludCBhdGgxMmtfd2lmaTdfaHdfaW5pdChzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9ody5jLTEyMjMte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvaHcuaD0xMD1zdHJ1Y3QgYXRoMTJrX2Jhc2U7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3Lmg6MTE6aW50IGF0aDEya193aWZpN19od19pbml0KHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9ody5oLTEyLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvcGNpLmM9OTE9c3RhdGljIGludCBhdGgxMmtfd2lmaTdfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvcGNpLmMtMTczLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9wY2kuYzoxNzQ6XHRyZXQgPSBhdGgxMmtfd2lmaTdfaHdfaW5pdChhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L3BjaS5jLTE3NS1cdGlmIChyZXQpIHtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjggMDE6NTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjIyMDgKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiAyNzgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgYXRoMTJrIERyaXZlciBhbmQgaXRzIEVudmlyb25tZW50KioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIE15IGluaXRpYWwgdW5kZXJzdGFuZGluZyBpcyB0aGF0IGBhdGgxMmtfd2lmaTdfYWhiX3Byb2JlYCBhbmQgYGF0aDEya193aWZpN19wY2lfcHJvYmVgIGFyZSB0aGUga2V5IGVudHJ5IHBvaW50cyBmb3IgdGhlIGF0aDEyayBkcml2ZXIsIHNwZWNpZmljYWxseSBmb3IgUXVhbGNvbW0mIzM5O3MgV2ktRmkgNyBoYXJkd2FyZS4gUmlnaHQsIGl0JiMzOTtzIGEgaGFyZHdhcmUgZHJpdmVyLCBhbmQgaXQgbmVlZHMgcGh5c2ljYWwgUENJIG9yIEFIQiBjYXJkcyAob3IgYSBRdWFsY29tbSBTb0MgQUhCIGRldmljZSwgc3BlY2lmaWNhbGx5KSB0byBmdW5jdGlvbi4gU28sIGltbWVkaWF0ZWx5LCBJJiMzOTttIHRoaW5raW5nLCB0aGlzIGlzIGdvaW5nIHRvIGJlIGEgcHJvYmxlbSBpbiBhbnkgc3RhbmRhcmQgdmlydHVhbCBlbnZpcm9ubWVudCBsaWtlIFFFTVUgb3IgR0NFLiBObyBoYXJkd2FyZSwgbm8gZHJpdmVyLiBJdCB3b24mIzM5O3Qgd29yay4KCk15IGV4cGVyaWVuY2UgdGVsbHMgbWUgdGhlIHR5cGljYWwgd29ya2Fyb3VuZCBmb3IgdmlydHVhbGl6ZWQgd2lyZWxlc3MgdGVzdGluZyBpcyBgbWFjODAyMTFfaHdzaW1gLiBUaGF0JiMzOTtzIHRoZSBnby10bywgYXMgaXQgaXMgYSBjb21wbGV0ZWx5IHNlcGFyYXRlIHZpcnR1YWwgZHJpdmVyIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL21hYzgwMjExX2h3c2ltLmNgLiBUaGUgdGhpbmcgdGhhdCYjMzk7cyBhbHNvIGZyZXNoIGluIG15IG1pbmQgaXMgdGhhdCBVU0Igd2lyZWxlc3MgY2FyZHMgYXJlIGEgcG90ZW50aWFsIGF2ZW51ZSBmb3IgZnV6emluZywgc3BlY2lmaWNhbGx5IHdpdGggdG9vbHMgbGlrZSBSYXcgR2FkZ2V0IG9yIHN5emthbGxlci4gRHJpdmVycyBsaWtlIGBhdGg5a19odGNgLCBgbXQ3NmAsIGFuZCBgcnQyODAwdXNiYCBjb21lIHRvIG1pbmQuIEhvd2V2ZXIsIGFuZCB0aGlzIGlzIGNydWNpYWwsIGF0aDEyayBpcyAqbm90KiBhIFVTQiBkcml2ZXIuIEl0IGlzIHB1cmVseSBQQ0kgYW5kIEFIQiBiYXNlZCwgYW5kIGl0IHdvcmtzIHdpdGggYSBRdWFsY29tbSByZW1vdGVwcm9jLgoKSG9sZCBvbiwgSSBuZWVkIHRvIHZlcmlmeSB0aGF0IHN0YXRlbWVudC4gSXQmIzM5O3MgYWx3YXlzIHdpc2UgdG8gZG91YmxlLWNoZWNrIHRoZXNlIGFzc3VtcHRpb25zLiBJIHNob3VsZCBzY291ciB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmtgIGRpcmVjdG9yeSBpdHNlbGYgdG8gc2VlIGlmIHRoZXJlIGFyZSBhbnkgKmhpZGRlbiogVVNCIG9yIHZpcnR1YWwgY29tcG9uZW50cy4gSSBuZWVkIHRvIGJlIGFic29sdXRlbHkgc3VyZSB0aGF0IEkgYW0gbm90IG1pc3NpbmcgYW55dGhpbmcuIEkgd2lsbCBzZWFyY2ggZm9yIFVTQiBvciB2aXJ0aW8gcmVsYXRlZCBjb2RlIHRvIGNvbmZpcm0gdGhpcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjggMDE6NTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt1c2J8dmlydGlvJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyayYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI4IDAxOjUwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIyOTQxCgkJCQkJCQlvdXRwdXQ6IDEyNAoJCQkJCQkJdGhvdWdodHM6IDUyMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBQYXRjaCoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBGaXJzdCwgSSYjMzk7bSBjaGVja2luZyBhZ2FpbnN0IHRoZSBkZWZpbmVkIHJ1bGVzIGZvciBza2lwcGluZyBmdXp6aW5nLiBUaGUga2V5IGhlcmUgaXMgdGhlIG1vZGlmaWNhdGlvbiB0byBgYXRoMTJrX3dpZmk3X2h3X3BhcmFtc2AgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvaHcuY2AuIEkga25vdyB0aGlzIGRyaXZlciBpcyBmb3IgUXVhbGNvbW0gV2ktRmkgNyBoYXJkd2FyZSDigJMgdGhpbmsgV0NONzg1MCwgUUNOOTI3NCwgSVBRNTMzMiwgdGhhdCBzb3J0IG9mIHRoaW5nLiBJdCBoYW5kbGVzIGJvdGggUENJIGFuZCBBSEIgZGV2aWNlcy4gVGhlIHNwZWNpZmljIGNoYW5nZSBpcyBhZGRpbmcgYEJJVChOTDgwMjExX0lGVFlQRV9BUF9WTEFOKWAgdG8gYGludGVyZmFjZV9tb2Rlc2AuCgpUaGUgY3JpdGljYWwgcGllY2UgaXMgdGhhdCB0aGlzIHNwZWNpZmljIGhhcmR3YXJlIOKAkyB0aGUgUXVhbGNvbW0gV2ktRmkgNyBjaGlwc2V0IOKAkyBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciBvdGhlciB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0UuIFN0YW5kYXJkIFFFTVUganVzdCBkb2VzbiYjMzk7dCBoYXZlIHRoZSBtb2RlbCBmb3IgdGhlc2Ugc3BlY2lmaWMgZGV2aWNlcywgZXNwZWNpYWxseSB0aG9zZSB1c2luZyBNSEkgYnVzZXMuIFRoZXJlZm9yZSwgdGhlIGNvZGUgcGF0aCB0aGF0IHRoaXMgcGF0Y2ggdG91Y2hlcyAqY2Fubm90KiBiZSByZWFjaGVkIGluIGEgdHlwaWNhbCBmdXp6aW5nIHNldHVwLiBJdCByZXF1aXJlcyByZWFsLCBwaHlzaWNhbCBoYXJkd2FyZS4KClNvLCBhY2NvcmRpbmcgdG8gdGhlIHJ1bGVzLCBJIGNhbiBjb25maWRlbnRseSBzZXQgYFdvcnRoRnV6emluZ2AgdG8gYGZhbHNlYC4gVGhlcmUgYXJlIG5vIHNwZWNpZmljIGZvY3VzIHN5bWJvbHMgb3IgZW5hYmxlIGNvbmZpZ3VyYXRpb25zIG5lZWRlZCBoZXJlLCBzbyB0aG9zZSBjYW4gcmVtYWluIGVtcHR5LiBNeSByZWFzb25pbmcgaXMgc3RyYWlnaHRmb3J3YXJkOiB0aGUgY2hhbmdlcyBhcmUgd2l0aGluIGEgZHJpdmVyIGZvciBoYXJkd2FyZSB0aGF0JiMzOTtzIG5vdCBlbXVsYXRhYmxlIGluIG91ciBzdGFuZGFyZCBmdXp6aW5nIGVudmlyb25tZW50cy4gV2Ugd29uJiMzOTt0IGJlIGFibGUgdG8gYWNoaWV2ZSBjb2RlIGNvdmVyYWdlIG9mIHRoaXMgY2hhbmdlIHdpdGhvdXQgdGhhdCBwaHlzaWNhbCBoYXJkd2FyZS4gSSYjMzk7bGwgZG9jdW1lbnQgdGhpcyBjb25jaXNlIGV4cGxhbmF0aW9uIGFuZCBmaW5hbGl6ZSB0aGUgcmVzdWx0cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjggMDE6NTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIE5MODAyMTFfSUZUWVBFX0FQX1ZMQU4gdG8gdGhlIHN1cHBvcnRlZCBpbnRlcmZhY2UgbW9kZXMgaW4gYXRoMTJrX3dpZmk3X2h3X3BhcmFtcyBmb3IgUXVhbGNvbW0gV2ktRmkgNyBkZXZpY2VzLiBUaGUgYXRoMTJrIGRyaXZlciBpcyBhIGhhcmR3YXJlIGRyaXZlciBmb3IgUXVhbGNvbW0gUENJIGFuZCBBSEIgd2lyZWxlc3MgY2hpcHMgYW5kIGNhbm5vdCBiZSByZWFjaGVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAoc3VjaCBhcyBRRU1VIG9yIEdDRSkgYXMgaXQgcmVxdWlyZXMgcGh5c2ljYWwgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGJ5IHN0YW5kYXJkIFFFTVUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIE5MODAyMTFfSUZUWVBFX0FQX1ZMQU4gdG8gdGhlIHN1cHBvcnRlZCBpbnRlcmZhY2UgbW9kZXMgaW4gYXRoMTJrX3dpZmk3X2h3X3BhcmFtcyBmb3IgUXVhbGNvbW0gV2ktRmkgNyBkZXZpY2VzLiBUaGUgYXRoMTJrIGRyaXZlciBpcyBhIGhhcmR3YXJlIGRyaXZlciBmb3IgUXVhbGNvbW0gUENJIGFuZCBBSEIgd2lyZWxlc3MgY2hpcHMgYW5kIGNhbm5vdCBiZSByZWFjaGVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAoc3VjaCBhcyBRRU1VIG9yIEdDRSkgYXMgaXQgcmVxdWlyZXMgcGh5c2ljYWwgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGJ5IHN0YW5kYXJkIFFFTVUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yOCAwMTo1MDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+SWY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMjhUMDE6NDk6MzAuMDQxOTY1MjVaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MTk2OTYyNzI0NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2UsXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgTkw4MDIxMV9JRlRZUEVfQVBfVkxBTiB0byB0aGUgc3VwcG9ydGVkIGludGVyZmFjZSBtb2RlcyBpbiBhdGgxMmtfd2lmaTdfaHdfcGFyYW1zIGZvciBRdWFsY29tbSBXaS1GaSA3IGRldmljZXMuIFRoZSBhdGgxMmsgZHJpdmVyIGlzIGEgaGFyZHdhcmUgZHJpdmVyIGZvciBRdWFsY29tbSBQQ0kgYW5kIEFIQiB3aXJlbGVzcyBjaGlwcyBhbmQgY2Fubm90IGJlIHJlYWNoZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChzdWNoIGFzIFFFTVUgb3IgR0NFKSBhcyBpdCByZXF1aXJlcyBwaHlzaWNhbCBoYXJkd2FyZSBub3QgZW11bGF0ZWQgYnkgc3RhbmRhcmQgUUVNVS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI4VDAxOjQ5OjMwLjA0MTk3MDU5WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDM1Nzk0MzA1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgZmJlYTNhOTU3ZDFkOWZmNzgwYWIzNmE0YzBmYTZjOWY0MGQ4OTVlZlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgRnJpIEF1ZyAyOCAwMTo0OToyOCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmNcXG5pbmRleCA3Yjg2ZjMyNGIyZTY4Li5hMjBjMjE4MDczNDQ5IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvaHcuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvaHcuY1xcbkBAIC02NjQsNyArNjY0LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhdGgxMmtfaHdfcGFyYW1zIGF0aDEya193aWZpN19od19wYXJhbXNbXSA9IHtcXG4gXFxuIFxcdFxcdC5pbnRlcmZhY2VfbW9kZXMgPSBCSVQoTkw4MDIxMV9JRlRZUEVfU1RBVElPTikgfFxcbiBcXHRcXHRcXHRcXHQgICBCSVQoTkw4MDIxMV9JRlRZUEVfQVApIHxcXG4tXFx0XFx0XFx0XFx0ICAgQklUKE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpLFxcbitcXHRcXHRcXHRcXHQgICBCSVQoTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVCkgfFxcbitcXHRcXHRcXHRcXHQgICBCSVQoTkw4MDIxMV9JRlRZUEVfQVBfVkxBTiksXFxuIFxcdFxcdC5zdXBwb3J0c19tb25pdG9yID0gdHJ1ZSxcXG4gXFx0XFx0LnN1cHBvcnRzX2NvbmdfY3RybF9tYXhfbXNkdXMgPSB0cnVlLFxcbiBcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjhUMDE6NDk6MzEuNDc4NDI4MzU1WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiY29yZSIsIkR1cmF0aW9uIjo2MDUzMzE1MjUzMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBOTDgwMjExX0lGVFlQRV9BUF9WTEFOIHRvIHRoZSBzdXBwb3J0ZWQgaW50ZXJmYWNlIG1vZGVzIGluIGF0aDEya193aWZpN19od19wYXJhbXMgZm9yIFF1YWxjb21tIFdpLUZpIDcgZGV2aWNlcy4gVGhlIGF0aDEyayBkcml2ZXIgaXMgYSBoYXJkd2FyZSBkcml2ZXIgZm9yIFF1YWxjb21tIFBDSSBhbmQgQUhCIHdpcmVsZXNzIGNoaXBzIGFuZCBjYW5ub3QgYmUgcmVhY2hlZCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKHN1Y2ggYXMgUUVNVSBvciBHQ0UpIGFzIGl0IHJlcXVpcmVzIHBoeXNpY2FsIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBieSBzdGFuZGFyZCBRRU1VLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgZmJlYTNhOTU3ZDFkOWZmNzgwYWIzNmE0YzBmYTZjOWY0MGQ4OTVlZlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgQXVnIDI4IDAxOjQ5OjI4IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9ody5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9ody5jXG5pbmRleCA3Yjg2ZjMyNGIyZTY4Li5hMjBjMjE4MDczNDQ5IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9ody5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmNcbkBAIC02NjQsNyArNjY0LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhdGgxMmtfaHdfcGFyYW1zIGF0aDEya193aWZpN19od19wYXJhbXNbXSA9IHtcbiBcbiBcdFx0LmludGVyZmFjZV9tb2RlcyA9IEJJVChOTDgwMjExX0lGVFlQRV9TVEFUSU9OKSB8XG4gXHRcdFx0XHQgICBCSVQoTkw4MDIxMV9JRlRZUEVfQVApIHxcbi1cdFx0XHRcdCAgIEJJVChOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UKSxcbitcdFx0XHRcdCAgIEJJVChOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UKSB8XG4rXHRcdFx0XHQgICBCSVQoTkw4MDIxMV9JRlRZUEVfQVBfVkxBTiksXG4gXHRcdC5zdXBwb3J0c19tb25pdG9yID0gdHJ1ZSxcbiBcdFx0LnN1cHBvcnRzX2NvbmdfY3RybF9tYXhfbXNkdXMgPSB0cnVlLFxuIFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjhUMDE6NDk6MzEuNDc4NDI5NTg1WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6NTQ0Nzk0MDc5NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFBhdGNoIGZvciBGdXp6aW5nIFBvdGVudGlhbCoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gRmlyc3QsIEkgc2VlIGEgcGF0Y2ggbW9kaWZ5aW5nIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmNgLiAgTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGFzc2VzcyBpZiB0aGlzIGNoYW5nZSB3YXJyYW50cyBmdXp6aW5nLiAgVGhlIGRpZmYgaXRzZWxmIGxvb2tzIHN0cmFpZ2h0Zm9yd2FyZCBlbm91Z2guIEl0IHNlZW1zIHRvIGJlIGV4cGFuZGluZyB0aGUgc3VwcG9ydGVkIGludGVyZmFjZSBtb2RlcyBieSBhZGRpbmcgYE5MODAyMTFfSUZUWVBFX0FQX1ZMQU5gIHRvIHRoZSBleGlzdGluZyBsaXN0OiBgTkw4MDIxMV9JRlRZUEVfU1RBVElPTmAsIGBOTDgwMjExX0lGVFlQRV9BUGAsIGFuZCBgTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVGAuXG5cbk5vdywgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNvbnRleHQuIFdoYXQgaXMgYGF0aDEya2A/IEFoLCByaWdodCwgUXVhbGNvbW0ncyBJRUVFIDgwMi4xMWJlIChXaS1GaSA3KSB3aXJlbGVzcyBkcml2ZXIuIFRoYXQgY2xhcmlmaWVzIHRoaW5ncy4gVGhlIGZvY3VzIGhlcmUgaXMgb24gYSBjdXR0aW5nLWVkZ2Ugd2lyZWxlc3MgZHJpdmVyLiBUaGlzIGlzIGludGVyZXN0aW5nLCBidXQgSSBuZWVkIHRvIHF1aWNrbHkgYXNzZXNzIHRoZSBmZWFzaWJpbGl0eSBvZiBmdXp6aW5nIHRoaXMuIFRoZSBjcml0aWNhbCBxdWVzdGlvbiBpcyB3aGV0aGVyIEkgY2FuIHJ1biB0aGlzIHdpdGhpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IGxpa2UgUUVNVSBvciBldmVuIHdpdGggYG1hYzgwMjExX2h3c2ltYC4gSWYgaXQgcmVxdWlyZXMgcGh5c2ljYWwgaGFyZHdhcmUgKFBDSWUsIEFIQiwgZXRjLiksIHRoYXQncyBhIHNpZ25pZmljYW50IGh1cmRsZS5cblxuVGhlcmVmb3JlLCBJIG5lZWQgdG8gY2hlY2sgdGhlIGJyb2FkZXIgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYCBkaXJlY3RvcnkuIEknbGwgcHJvYmFibHkgdXNlIGByZWFkLWZpbGVgIG9yIGBncmVwcGVyYCB0byBxdWlja2x5IGluc3BlY3QgdGhlIHNvdXJjZSBhbmQgbG9vayBmb3IgY2x1ZXMgYWJvdXQgdmlydHVhbGl6YXRpb24gc3VwcG9ydCBvciBoYXJkd2FyZSBkZXBlbmRlbmNpZXMuIEhvcGVmdWxseSwgdGhlcmUgaXMgZG9jdW1lbnRhdGlvbiBvciBzb21lIGZvcm0gb2YgdmlydHVhbCBpbnRlcmZhY2UgdG8gYWxsb3cgZnV6emluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjE3MiwiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ4NSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI4VDAxOjQ5OjM2LjkyNjM3MjQ1MVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDQwODIxODgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiQVRIMTJLXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmtcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxMzQ5NSBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjI6Y29uZmlnIEFUSDEyS1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJRdWFsY29tbSBXaS1GaSA3IHN1cHBvcnQgKGF0aDEyaylcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjE3OmNvbmZpZyBBVEgxMktfQUhCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTE4LVxcdGJvb2wgXFxcIlF1YWxjb21tIGF0aDEyayBBSEIgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6MTk6XFx0ZGVwZW5kcyBvbiBBVEgxMksgXFx1MDAyNlxcdTAwMjYgUkVNT1RFUFJPQ1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0yMC1cXHRzZWxlY3QgUUNPTV9NRFRfTE9BREVSXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMjQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjI1OmNvbmZpZyBBVEgxMktfREVCVUdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMjYtXFx0Ym9vbCBcXFwiYXRoMTJrIGRlYnVnZ2luZ1xcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6Mjc6XFx0ZGVwZW5kcyBvbiBBVEgxMktcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMjgtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTM0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzozNTpjb25maWcgQVRIMTJLX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMzYtXFx0Ym9vbCBcXFwiUXVhbGNvbW0gYXRoMTJrIGRlYnVnZnMgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6Mzc6XFx0ZGVwZW5kcyBvbiBBVEgxMksgXFx1MDAyNlxcdTAwMjYgTUFDODAyMTFfREVCVUdGU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0zOC1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjQ0OmNvbmZpZyBBVEgxMktfVFJBQ0lOR1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy00NS1cXHRib29sIFxcXCJhdGgxMmsgdHJhY2luZyBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzo0NjpcXHRkZXBlbmRzIG9uIEFUSDEySyBcXHUwMDI2XFx1MDAyNiBFVkVOVF9UUkFDSU5HXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTQ3LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy01Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6NTM6Y29uZmlnIEFUSDEyS19DT1JFRFVNUFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy01NC1cXHRib29sIFxcXCJhdGgxMmsgY29yZWR1bXBcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjU1OlxcdGRlcGVuZHMgb24gQVRIMTJLXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTU2LVxcdHNlbGVjdCBXQU5UX0RFVl9DT1JFRFVNUFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZS0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGU6MjpvYmotJChDT05GSUdfQVRIMTJLKSArPSBhdGgxMmsub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGUtMy1hdGgxMmsteSArPSBjb3JlLm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZS0yNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlOjI1OmF0aDEyay0kKENPTkZJR19BVEgxMktfQUhCKSArPSBhaGIub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGUtMjYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZToyNzpvYmotJChDT05GSUdfQVRIMTJLKSArPSB3aWZpNy9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlLTI4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGU6Mjk6YXRoMTJrLSQoQ09ORklHX0FUSDEyS19ERUJVR0ZTKSArPSBkZWJ1Z2ZzLm8gZGVidWdmc19odHRfc3RhdHMubyBkZWJ1Z2ZzX3N0YS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZS0zMC1hdGgxMmstJChDT05GSUdfQUNQSSkgKz0gYWNwaS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZTozMTphdGgxMmstJChDT05GSUdfQVRIMTJLX1RSQUNJTkcpICs9IHRyYWNlLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlLTMyLWF0aDEyay0kKENPTkZJR19QTSkgKz0gd293Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlOjMzOmF0aDEyay0kKENPTkZJR19BVEgxMktfQ09SRURVTVApICs9IGNvcmVkdW1wLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlLTM0LWF0aDEyay0kKENPTkZJR19OTDgwMjExX1RFU1RNT0RFKSArPSB0ZXN0bW9kZS5vXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYz0xMT1zdGF0aWMgaW50IGF0aDEya19hY3BpX2RzbV9nZXRfZGF0YShzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiLCBpbnQgZnVuYylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTE4LVxcdGlmICghcm9vdF9oYW5kbGUpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoxOTpcXHRcXHRhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX0JPT1QsIFxcXCJpbnZhbGlkIGFjcGkgaGFuZGxlclxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjAtXFx0XFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjYtXFx0aWYgKCFvYmopIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoyNzpcXHRcXHRhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX0JPT1QsIFxcXCJhY3BpX2V2YWx1YXRlX2RzbSgpIGZhaWxlZFxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjgtXFx0XFx0cmV0dXJuIC1FTk9FTlQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zMi1cXHRcXHRzd2l0Y2ggKGZ1bmMpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzozMzpcXHRcXHRjYXNlIEFUSDEyS19BQ1BJX0RTTV9GVU5DX1NVUFBPUlRfRlVOQ1M6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzQtXFx0XFx0XFx0YWItXFx1MDAzZWFjcGkuZnVuY19iaXQgPSBvYmotXFx1MDAzZWludGVnZXIudmFsdWU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzUtXFx0XFx0XFx0YnJlYWs7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MzY6XFx0XFx0Y2FzZSBBVEgxMktfQUNQSV9EU01fRlVOQ19ESVNBQkxFX0ZMQUc6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzctXFx0XFx0XFx0YWItXFx1MDAzZWFjcGkuYml0X2ZsYWcgPSBvYmotXFx1MDAzZWludGVnZXIudmFsdWU7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00MS1cXHRcXHRzd2l0Y2ggKGZ1bmMpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0MjpcXHRcXHRjYXNlIEFUSDEyS19BQ1BJX0RTTV9GVU5DX0JERl9FWFQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDM6XFx0XFx0XFx0aWYgKG9iai1cXHUwMDNlc3RyaW5nLmxlbmd0aCBcXHUwMDNjPSBBVEgxMktfQUNQSV9CREZfQU5DSE9SX1NUUklOR19MRU4gfHxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0NDpcXHRcXHRcXHQgICAgb2JqLVxcdTAwM2VzdHJpbmcubGVuZ3RoIFxcdTAwM2UgQVRIMTJLX0FDUElfQkRGX01BWF9MRU4gfHxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0NTpcXHRcXHRcXHQgICAgbWVtY21wKG9iai1cXHUwMDNlc3RyaW5nLnBvaW50ZXIsIEFUSDEyS19BQ1BJX0JERl9BTkNIT1JfU1RSSU5HLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQ2OlxcdFxcdFxcdFxcdCAgIEFUSDEyS19BQ1BJX0JERl9BTkNIT1JfU1RSSU5HX0xFTikpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00Ny1cXHRcXHRcXHRcXHRhdGgxMmtfd2FybihhYiwgXFxcImludmFsaWQgQUNQSSBEU00gQkRGIHNpemU6ICVkXFxcXG5cXFwiLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNTktXFx0XFx0c3dpdGNoIChmdW5jKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NjA6XFx0XFx0Y2FzZSBBVEgxMktfQUNQSV9EU01fRlVOQ19TVVBQT1JUX0ZVTkNTOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjYxOlxcdFxcdFxcdGlmIChvYmotXFx1MDAzZWJ1ZmZlci5sZW5ndGggXFx1MDAzYyBBVEgxMktfQUNQSV9EU01fRlVOQ19NSU5fQklUTUFQX1NJWkUgfHxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo2MjpcXHRcXHRcXHQgICAgb2JqLVxcdTAwM2VidWZmZXIubGVuZ3RoIFxcdTAwM2UgQVRIMTJLX0FDUElfRFNNX0ZVTkNfTUFYX0JJVE1BUF9TSVpFKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNjMtXFx0XFx0XFx0XFx0YXRoMTJrX3dhcm4oYWIsIFxcXCJpbnZhbGlkIEFDUEkgRFNNIGZ1bmMgc2l6ZTogJWRcXFxcblxcXCIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy03My1cXHRcXHRcXHRicmVhaztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo3NDpcXHRcXHRjYXNlIEFUSDEyS19BQ1BJX0RTTV9GVU5DX1RBU19DRkc6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NzU6XFx0XFx0XFx0aWYgKG9iai1cXHUwMDNlYnVmZmVyLmxlbmd0aCAhPSBBVEgxMktfQUNQSV9EU01fVEFTX0NGR19TSVpFKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNzYtXFx0XFx0XFx0XFx0YXRoMTJrX3dhcm4oYWIsIFxcXCJpbnZhbGlkIEFDUEkgRFNNIFRBUyBjb25maWcgc2l6ZTogJWRcXFxcblxcXCIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy04NS1cXHRcXHRcXHRicmVhaztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo4NjpcXHRcXHRjYXNlIEFUSDEyS19BQ1BJX0RTTV9GVU5DX1RBU19EQVRBOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjg3OlxcdFxcdFxcdGlmIChvYmotXFx1MDAzZWJ1ZmZlci5sZW5ndGggIT0gQVRIMTJLX0FDUElfRFNNX1RBU19EQVRBX1NJWkUpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy04OC1cXHRcXHRcXHRcXHRhdGgxMmtfd2FybihhYiwgXFxcImludmFsaWQgQUNQSSBEU00gVEFTIGRhdGEgc2l6ZTogJWRcXFxcblxcXCIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy05Ny1cXHRcXHRcXHRicmVhaztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo5ODpcXHRcXHRjYXNlIEFUSDEyS19BQ1BJX0RTTV9GVU5DX0JJT1NfU0FSOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjk5OlxcdFxcdFxcdGlmIChvYmotXFx1MDAzZWJ1ZmZlci5sZW5ndGggIT0gQVRIMTJLX0FDUElfRFNNX0JJT1NfU0FSX0RBVEFfU0laRSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTEwMC1cXHRcXHRcXHRcXHRhdGgxMmtfd2FybihhYiwgXFxcImludmFsaWQgQUNQSSBCSU9TIFNBUiBkYXRhIHNpemU6ICVkXFxcXG5cXFwiLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTA5LVxcdFxcdFxcdGJyZWFrO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjExMDpcXHRcXHRjYXNlIEFUSDEyS19BQ1BJX0RTTV9GVU5DX0dFT19PRkZTRVQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MTExOlxcdFxcdFxcdGlmIChvYmotXFx1MDAzZWJ1ZmZlci5sZW5ndGggIT0gQVRIMTJLX0FDUElfRFNNX0dFT19PRkZTRVRfREFUQV9TSVpFKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTEyLVxcdFxcdFxcdFxcdGF0aDEya193YXJuKGFiLCBcXFwiaW52YWxpZCBBQ1BJIEdFTyBPRkZTRVQgZGF0YSBzaXplOiAlZFxcXFxuXFxcIixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTEyMS1cXHRcXHRcXHRicmVhaztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoxMjI6XFx0XFx0Y2FzZSBBVEgxMktfQUNQSV9EU01fRlVOQ19JTkRFWF9DQ0E6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MTIzOlxcdFxcdFxcdGlmIChvYmotXFx1MDAzZWJ1ZmZlci5sZW5ndGggIT0gQVRIMTJLX0FDUElfRFNNX0NDQV9EQVRBX1NJWkUpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xMjQtXFx0XFx0XFx0XFx0YXRoMTJrX3dhcm4oYWIsIFxcXCJpbnZhbGlkIEFDUEkgRFNNIENDQSBkYXRhIHNpemU6ICVkXFxcXG5cXFwiLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTMzLVxcdFxcdFxcdGJyZWFrO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjEzNDpcXHRcXHRjYXNlIEFUSDEyS19BQ1BJX0RTTV9GVU5DX0lOREVYX0JBTkRfRURHRTpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoxMzU6XFx0XFx0XFx0aWYgKG9iai1cXHUwMDNlYnVmZmVyLmxlbmd0aCAhPSBBVEgxMktfQUNQSV9EU01fQkFORF9FREdFX0RBVEFfU0laRSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTEzNi1cXHRcXHRcXHRcXHRhdGgxMmtfd2FybihhYiwgXFxcImludmFsaWQgQUNQSSBEU00gYmFuZCBlZGdlIGRhdGEgc2l6ZTogJWRcXFxcblxcXCIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYz0xNjE9c3RhdGljIGludCBhdGgxMmtfYWNwaV9zZXRfcG93ZXJfbGltaXQoc3RydWN0IGF0aDEya19iYXNlICphYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTE2NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoxNjY6XFx0aWYgKHRhc19zYXJfcG93ZXJfdGFibGVbMF0gIT0gQVRIMTJLX0FDUElfVEFTX0RBVEFfVkVSU0lPTiB8fFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjE2NzpcXHQgICAgdGFzX3Nhcl9wb3dlcl90YWJsZVsxXSAhPSBBVEgxMktfQUNQSV9UQVNfREFUQV9FTkFCTEUpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xNjgtXFx0XFx0YXRoMTJrX3dhcm4oYWIsIFxcXCJsYXRlc3QgQUNQSSBUQVMgZGF0YSBpcyBpbnZhbGlkXFxcXG5cXFwiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTE3My1cXHRcXHRcXHRcXHQgICAgICB0YXNfc2FyX3Bvd2VyX3RhYmxlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjE3NDpcXHRcXHRcXHRcXHQgICAgICBBVEgxMktfQUNQSV9EU01fVEFTX0RBVEFfU0laRSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTc1LVxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jPTE4Mz1zdGF0aWMgaW50IGF0aDEya19hY3BpX3NldF9iaW9zX3Nhcl9wb3dlcihzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTg2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjE4NzpcXHRpZiAoYWItXFx1MDAzZWFjcGkuYmlvc19zYXJfZGF0YVswXSAhPSBBVEgxMktfQUNQSV9QT1dFUl9MSU1JVF9WRVJTSU9OIHx8XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MTg4OlxcdCAgICBhYi1cXHUwMDNlYWNwaS5iaW9zX3Nhcl9kYXRhWzFdICE9IEFUSDEyS19BQ1BJX1BPV0VSX0xJTUlUX0VOQUJMRV9GTEFHKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTg5LVxcdFxcdGF0aDEya193YXJuKGFiLCBcXFwiaW52YWxpZCBsYXRlc3QgQUNQSSBCSU9TIFNBUiBkYXRhXFxcXG5cXFwiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jPTIwMj1zdGF0aWMgdm9pZCBhdGgxMmtfYWNwaV9kc21fbm90aWZ5KGFjcGlfaGFuZGxlIGhhbmRsZSwgdTMyIGV2ZW50LCB2b2lkICpkYXRhKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjA2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjIwNzpcXHRpZiAoZXZlbnQgPT0gQVRIMTJLX0FDUElfTk9USUZZX0VWRU5UKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjA4LVxcdFxcdGF0aDEya193YXJuKGFiLCBcXFwidW5rbm93biBhY3BpIG5vdGlmeSAldVxcXFxuXFxcIiwgZXZlbnQpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjEyLVxcdGlmICghYWItXFx1MDAzZWFjcGkuYWNwaV90YXNfZW5hYmxlKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MjEzOlxcdFxcdGF0aDEya19kYmcoYWIsIEFUSDEyS19EQkdfQk9PVCwgXFxcImFjcGlfdGFzX2VuYWJsZSBpcyBmYWxzZVxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjE0LVxcdFxcdHJldHVybjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTIxNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoyMTc6XFx0cmV0ID0gYXRoMTJrX2FjcGlfZHNtX2dldF9kYXRhKGFiLCBBVEgxMktfQUNQSV9EU01fRlVOQ19UQVNfREFUQSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjE4LVxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTIzMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoyMzI6XFx0cmV0ID0gYXRoMTJrX2FjcGlfZHNtX2dldF9kYXRhKGFiLCBBVEgxMktfQUNQSV9EU01fRlVOQ19CSU9TX1NBUik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjMzLVxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jPTI2ND1zdGF0aWMgaW50IGF0aDEya19hY3BpX3NldF90YXNfcGFyYW1zKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yNjktXFx0XFx0XFx0XFx0ICAgICAgYWItXFx1MDAzZWFjcGkudGFzX2NmZyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoyNzA6XFx0XFx0XFx0XFx0ICAgICAgQVRIMTJLX0FDUElfRFNNX1RBU19DRkdfU0laRSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjcxLVxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI3OC1cXHRcXHRcXHRcXHQgICAgICBhYi1cXHUwMDNlYWNwaS50YXNfc2FyX3Bvd2VyX3RhYmxlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjI3OTpcXHRcXHRcXHRcXHQgICAgICBBVEgxMktfQUNQSV9EU01fVEFTX0RBVEFfU0laRSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjgwLVxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jPTI5OT12b2lkIGF0aDEya19hY3BpX3NldF9kc21fZnVuYyhzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzI0LVxcdGlmIChhYi1cXHUwMDNlYWNwaS5hY3BpX2NjYV9lbmFibGUpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzozMjU6XFx0XFx0YnVmID0gYWItXFx1MDAzZWFjcGkuY2NhX2RhdGEgKyBBVEgxMktfQUNQSV9DQ0FfVEhSX09GRlNFVF9EQVRBX09GRlNFVDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zMjYtXFx0XFx0cmV0ID0gYXRoMTJrX3dtaV9zZXRfYmlvc19jbWQoYWIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zMjgtXFx0XFx0XFx0XFx0XFx0ICAgICAgYnVmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjMyOTpcXHRcXHRcXHRcXHRcXHQgICAgICBBVEgxMktfQUNQSV9DQ0FfVEhSX09GRlNFVF9MRU4pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTMzMC1cXHRcXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYz0zNTE9aW50IGF0aDEya19hY3BpX3N0YXJ0KHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zNjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MzY5OlxcdHJldCA9IGF0aDEya19hY3BpX2RzbV9nZXRfZGF0YShhYiwgQVRIMTJLX0FDUElfRFNNX0ZVTkNfU1VQUE9SVF9GVU5DUyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzcwLVxcdGlmIChyZXQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzozNzE6XFx0XFx0YXRoMTJrX2RiZyhhYiwgQVRIMTJLX0RCR19CT09ULCBcXFwiZmFpbGVkIHRvIGdldCBBQ1BJIERTTSBkYXRhOiAlZFxcXFxuXFxcIiwgcmV0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zNzItXFx0XFx0cmV0dXJuIHJldDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTM3NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzozNzU6XFx0aWYgKEFUSDEyS19BQ1BJX0ZVTkNfQklUX1ZBTElEKGFiLVxcdTAwM2VhY3BpLCBBVEgxMktfQUNQSV9GVU5DX0JJVF9ESVNBQkxFX0ZMQUcpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6Mzc2OlxcdFxcdHJldCA9IGF0aDEya19hY3BpX2RzbV9nZXRfZGF0YShhYiwgQVRIMTJLX0FDUElfRFNNX0ZVTkNfRElTQUJMRV9GTEFHKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zNzctXFx0XFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzgxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjM4MjpcXHRcXHRpZiAoQVRIMTJLX0FDUElfQ0hFS19CSVRfVkFMSUQoYWItXFx1MDAzZWFjcGksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MzgzOlxcdFxcdFxcdFxcdFxcdCAgICAgICBBVEgxMktfQUNQSV9EU01fRElTQUJMRV8xMUJFX0JJVCkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzg0LVxcdFxcdFxcdGFiLVxcdTAwM2VhY3BpLmFjcGlfZGlzYWJsZV8xMWJlID0gdHJ1ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zODUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6Mzg2OlxcdFxcdGlmICghQVRIMTJLX0FDUElfQ0hFS19CSVRfVkFMSUQoYWItXFx1MDAzZWFjcGksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6Mzg3OlxcdFxcdFxcdFxcdFxcdFxcdEFUSDEyS19BQ1BJX0RTTV9ESVNBQkxFX1JGS0lMTF9CSVQpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTM4OC1cXHRcXHRcXHRhYi1cXHUwMDNlYWNwaS5hY3BpX2Rpc2FibGVfcmZraWxsID0gdHJ1ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTM5MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzozOTE6XFx0aWYgKEFUSDEyS19BQ1BJX0ZVTkNfQklUX1ZBTElEKGFiLVxcdTAwM2VhY3BpLCBBVEgxMktfQUNQSV9GVU5DX0JJVF9CREZfRVhUKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjM5MjpcXHRcXHRyZXQgPSBhdGgxMmtfYWNwaV9kc21fZ2V0X2RhdGEoYWIsIEFUSDEyS19BQ1BJX0RTTV9GVU5DX0JERl9FWFQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTM5My1cXHRcXHRpZiAocmV0IHx8IGFiLVxcdTAwM2VhY3BpLmJkZl9zdHJpbmdbMF0gPT0gJ1xcXFwwJykge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDAwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQwMTpcXHRpZiAoQVRIMTJLX0FDUElfRlVOQ19CSVRfVkFMSUQoYWItXFx1MDAzZWFjcGksIEFUSDEyS19BQ1BJX0ZVTkNfQklUX1RBU19DRkcpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDAyOlxcdFxcdHJldCA9IGF0aDEya19hY3BpX2RzbV9nZXRfZGF0YShhYiwgQVRIMTJLX0FDUElfRFNNX0ZVTkNfVEFTX0NGRyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDAzLVxcdFxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQwOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0MDk6XFx0aWYgKEFUSDEyS19BQ1BJX0ZVTkNfQklUX1ZBTElEKGFiLVxcdTAwM2VhY3BpLCBBVEgxMktfQUNQSV9GVU5DX0JJVF9UQVNfREFUQSkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0MTA6XFx0XFx0cmV0ID0gYXRoMTJrX2FjcGlfZHNtX2dldF9kYXRhKGFiLCBBVEgxMktfQUNQSV9EU01fRlVOQ19UQVNfREFUQSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDExLVxcdFxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQxNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0MTY6XFx0XFx0aWYgKEFUSDEyS19BQ1BJX0ZVTkNfQklUX1ZBTElEKGFiLVxcdTAwM2VhY3BpLCBBVEgxMktfQUNQSV9GVU5DX0JJVF9UQVNfQ0ZHKSBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQxNzpcXHRcXHQgICAgYWItXFx1MDAzZWFjcGkudGFzX3Nhcl9wb3dlcl90YWJsZVswXSA9PSBBVEgxMktfQUNQSV9UQVNfREFUQV9WRVJTSU9OIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDE4OlxcdFxcdCAgICBhYi1cXHUwMDNlYWNwaS50YXNfc2FyX3Bvd2VyX3RhYmxlWzFdID09IEFUSDEyS19BQ1BJX1RBU19EQVRBX0VOQUJMRSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00MTktXFx0XFx0XFx0YWItXFx1MDAzZWFjcGkuYWNwaV90YXNfZW5hYmxlID0gdHJ1ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQyMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0MjI6XFx0aWYgKEFUSDEyS19BQ1BJX0ZVTkNfQklUX1ZBTElEKGFiLVxcdTAwM2VhY3BpLCBBVEgxMktfQUNQSV9GVU5DX0JJVF9CSU9TX1NBUikpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0MjM6XFx0XFx0cmV0ID0gYXRoMTJrX2FjcGlfZHNtX2dldF9kYXRhKGFiLCBBVEgxMktfQUNQSV9EU01fRlVOQ19CSU9TX1NBUik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDI0LVxcdFxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQyOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0MzA6XFx0aWYgKEFUSDEyS19BQ1BJX0ZVTkNfQklUX1ZBTElEKGFiLVxcdTAwM2VhY3BpLCBBVEgxMktfQUNQSV9GVU5DX0JJVF9HRU9fT0ZGU0VUKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQzMTpcXHRcXHRyZXQgPSBhdGgxMmtfYWNwaV9kc21fZ2V0X2RhdGEoYWIsIEFUSDEyS19BQ1BJX0RTTV9GVU5DX0dFT19PRkZTRVQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQzMi1cXHRcXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00MzYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDM3OlxcdFxcdGlmIChBVEgxMktfQUNQSV9GVU5DX0JJVF9WQUxJRChhYi1cXHUwMDNlYWNwaSwgQVRIMTJLX0FDUElfRlVOQ19CSVRfQklPU19TQVIpIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDM4OlxcdFxcdCAgICBhYi1cXHUwMDNlYWNwaS5iaW9zX3Nhcl9kYXRhWzBdID09IEFUSDEyS19BQ1BJX1BPV0VSX0xJTUlUX1ZFUlNJT04gXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0Mzk6XFx0XFx0ICAgIGFiLVxcdTAwM2VhY3BpLmJpb3Nfc2FyX2RhdGFbMV0gPT0gQVRIMTJLX0FDUElfUE9XRVJfTElNSVRfRU5BQkxFX0ZMQUcgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00NDAtXFx0XFx0ICAgICFhYi1cXHUwMDNlYWNwaS5hY3BpX3Rhc19lbmFibGUpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00NDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDQ0OlxcdGlmIChBVEgxMktfQUNQSV9GVU5DX0JJVF9WQUxJRChhYi1cXHUwMDNlYWNwaSwgQVRIMTJLX0FDUElfRlVOQ19CSVRfQ0NBKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQ0NTpcXHRcXHRyZXQgPSBhdGgxMmtfYWNwaV9kc21fZ2V0X2RhdGEoYWIsIEFUSDEyS19BQ1BJX0RTTV9GVU5DX0lOREVYX0NDQSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDQ2LVxcdFxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQ1MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0NTI6XFx0XFx0aWYgKGFiLVxcdTAwM2VhY3BpLmNjYV9kYXRhWzBdID09IEFUSDEyS19BQ1BJX0NDQV9USFJfVkVSU0lPTiBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQ1MzpcXHRcXHQgICAgYWItXFx1MDAzZWFjcGkuY2NhX2RhdGFbQVRIMTJLX0FDUElfQ0NBX1RIUl9PRkZTRVRfREFUQV9PRkZTRVRdID09XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDU0OlxcdFxcdCAgICBBVEgxMktfQUNQSV9DQ0FfVEhSX0VOQUJMRV9GTEFHKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQ1NS1cXHRcXHRcXHRhYi1cXHUwMDNlYWNwaS5hY3BpX2NjYV9lbmFibGUgPSB0cnVlO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDU3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQ1ODpcXHRpZiAoQVRIMTJLX0FDUElfRlVOQ19CSVRfVkFMSUQoYWItXFx1MDAzZWFjcGksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDU5OlxcdFxcdFxcdFxcdCAgICAgICBBVEgxMktfQUNQSV9GVU5DX0JJVF9CQU5EX0VER0VfQ0hBTl9QT1dFUikpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0NjA6XFx0XFx0cmV0ID0gYXRoMTJrX2FjcGlfZHNtX2dldF9kYXRhKGFiLCBBVEgxMktfQUNQSV9EU01fRlVOQ19JTkRFWF9CQU5EX0VER0UpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQ2MS1cXHRcXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00NjYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDY3OlxcdFxcdGlmIChhYi1cXHUwMDNlYWNwaS5iYW5kX2VkZ2VfcG93ZXJbMF0gPT0gQVRIMTJLX0FDUElfQkFORF9FREdFX1ZFUlNJT04gXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0Njg6XFx0XFx0ICAgIGFiLVxcdTAwM2VhY3BpLmJhbmRfZWRnZV9wb3dlclsxXSA9PSBBVEgxMktfQUNQSV9CQU5EX0VER0VfRU5BQkxFX0ZMQUcpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDY5LVxcdFxcdFxcdGFiLVxcdTAwM2VhY3BpLmFjcGlfYmFuZF9lZGdlX2VuYWJsZSA9IHRydWU7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYz00ODU9aW50IGF0aDEya19hY3BpX2NoZWNrX2JkZl92YXJpYW50X25hbWUoc3RydWN0IGF0aDEya19iYXNlICphYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQ5Mi1cXHRpZiAoc3Ryc2NweShhYi1cXHUwMDNlcW1pLnRhcmdldC5iZGZfZXh0LCBhYi1cXHUwMDNlYWNwaS5iZGZfc3RyaW5nICsgNCwgbWF4X2xlbikgXFx1MDAzYyAwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQ5MzpcXHRcXHRhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX0JPT1QsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDk0LVxcdFxcdFxcdCAgIFxcXCJhY3BpIGJkZiB2YXJpYW50IGxvbmdlciB0aGFuIHRoZSBidWZmZXIgKHZhcmlhbnQ6ICVzKVxcXFxuXFxcIixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oLTUtICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6NjojaWZuZGVmIEFUSDEyS19BQ1BJX0hcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDo3OiNkZWZpbmUgQVRIMTJLX0FDUElfSFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oLTgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaC0xMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDoxMTojZGVmaW5lIEFUSDEyS19BQ1BJX0RTTV9GVU5DX1NVUFBPUlRfRlVOQ1NcXHQwXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6MTI6I2RlZmluZSBBVEgxMktfQUNQSV9EU01fRlVOQ19ESVNBQkxFX0ZMQUdcXHQyXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6MTM6I2RlZmluZSBBVEgxMktfQUNQSV9EU01fRlVOQ19CREZfRVhUXFx0XFx0M1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjE0OiNkZWZpbmUgQVRIMTJLX0FDUElfRFNNX0ZVTkNfQklPU19TQVJcXHRcXHQ0XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6MTU6I2RlZmluZSBBVEgxMktfQUNQSV9EU01fRlVOQ19HRU9fT0ZGU0VUXFx0XFx0NVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjE2OiNkZWZpbmUgQVRIMTJLX0FDUElfRFNNX0ZVTkNfSU5ERVhfQ0NBXFx0XFx0NlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjE3OiNkZWZpbmUgQVRIMTJLX0FDUElfRFNNX0ZVTkNfVEFTX0NGR1xcdFxcdDhcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDoxODojZGVmaW5lIEFUSDEyS19BQ1BJX0RTTV9GVU5DX1RBU19EQVRBXFx0XFx0OVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjE5OiNkZWZpbmUgQVRIMTJLX0FDUElfRFNNX0ZVTkNfSU5ERVhfQkFORF9FREdFXFx0XFx0MTBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaC0yMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDoyMTojZGVmaW5lIEFUSDEyS19BQ1BJX0ZVTkNfQklUX0RJU0FCTEVfRkxBR1xcdFxcdEJJVCgxKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjIyOiNkZWZpbmUgQVRIMTJLX0FDUElfRlVOQ19CSVRfQkRGX0VYVFxcdFxcdFxcdEJJVCgyKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjIzOiNkZWZpbmUgQVRIMTJLX0FDUElfRlVOQ19CSVRfQklPU19TQVJcXHRcXHRcXHRCSVQoMylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDoyNDojZGVmaW5lIEFUSDEyS19BQ1BJX0ZVTkNfQklUX0dFT19PRkZTRVRcXHRcXHRcXHRCSVQoNClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDoyNTojZGVmaW5lIEFUSDEyS19BQ1BJX0ZVTkNfQklUX0NDQVxcdFxcdFxcdEJJVCg1KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjI2OiNkZWZpbmUgQVRIMTJLX0FDUElfRlVOQ19CSVRfVEFTX0NGR1xcdFxcdFxcdEJJVCg3KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjI3OiNkZWZpbmUgQVRIMTJLX0FDUElfRlVOQ19CSVRfVEFTX0RBVEFcXHRcXHRcXHRCSVQoOClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDoyODojZGVmaW5lIEFUSDEyS19BQ1BJX0ZVTkNfQklUX0JBTkRfRURHRV9DSEFOX1BPV0VSXFx0QklUKDkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmgtMjktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6MzA6I2RlZmluZSBBVEgxMktfQUNQSV9OT1RJRllfRVZFTlRcXHRcXHRcXHQweDg2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6MzE6I2RlZmluZSBBVEgxMktfQUNQSV9GVU5DX0JJVF9WQUxJRChfYWNkYXRhLCBfZnVuYylcXHQoKChfYWNkYXRhKS5mdW5jX2JpdCkgXFx1MDAyNiAoX2Z1bmMpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjMyOiNkZWZpbmUgQVRIMTJLX0FDUElfQ0hFS19CSVRfVkFMSUQoX2FjZGF0YSwgX2Z1bmMpXFx0KCgoX2FjZGF0YSkuYml0X2ZsYWcpIFxcdTAwMjYgKF9mdW5jKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaC0zMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDozNDojZGVmaW5lIEFUSDEyS19BQ1BJX1RBU19EQVRBX1ZFUlNJT05cXHRcXHQweDFcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDozNTojZGVmaW5lIEFUSDEyS19BQ1BJX1RBU19EQVRBX0VOQUJMRVxcdFxcdDB4MVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjM2OiNkZWZpbmUgQVRIMTJLX0FDUElfUE9XRVJfTElNSVRfVkVSU0lPTlxcdFxcdDB4MVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjM3OiNkZWZpbmUgQVRIMTJLX0FDUElfUE9XRVJfTElNSVRfRU5BQkxFX0ZMQUdcXHQweDFcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDozODojZGVmaW5lIEFUSDEyS19BQ1BJX0NDQV9USFJfVkVSU0lPTlxcdFxcdDB4MVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjM5OiNkZWZpbmUgQVRIMTJLX0FDUElfQ0NBX1RIUl9FTkFCTEVfRkxBR1xcdFxcdDB4MVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjQwOiNkZWZpbmUgQVRIMTJLX0FDUElfQkFORF9FREdFX1ZFUlNJT05cXHRcXHQweDFcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDo0MTojZGVmaW5lIEFUSDEyS19BQ1BJX0JBTkRfRURHRV9FTkFCTEVfRkxBR1xcdDB4MVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oLTQyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjQzOiNkZWZpbmUgQVRIMTJLX0FDUElfR0VPX09GRlNFVF9EQVRBX09GRlNFVFxcdDFcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDo0NDojZGVmaW5lIEFUSDEyS19BQ1BJX0RCU19CQUNLT0ZGX0RBVEFfT0ZGU0VUXFx0MlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjQ1OiNkZWZpbmUgQVRIMTJLX0FDUElfQ0NBX1RIUl9PRkZTRVRfREFUQV9PRkZTRVRcXHQ1XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6NDY6I2RlZmluZSBBVEgxMktfQUNQSV9CSU9TX1NBUl9EQlNfQkFDS09GRl9MRU5cXHQxMFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjQ3OiNkZWZpbmUgQVRIMTJLX0FDUElfUE9XRVJfTElNSVRfREFUQV9PRkZTRVRcXHQxMlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjQ4OiNkZWZpbmUgQVRIMTJLX0FDUElfQklPU19TQVJfR0VPX09GRlNFVF9MRU5cXHQxOFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjQ5OiNkZWZpbmUgQVRIMTJLX0FDUElfQklPU19TQVJfVEFCTEVfTEVOXFx0XFx0MjJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDo1MDojZGVmaW5lIEFUSDEyS19BQ1BJX0NDQV9USFJfT0ZGU0VUX0xFTlxcdFxcdDM2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmgtNTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6NTI6I2RlZmluZSBBVEgxMktfQUNQSV9EU01fVEFTX0RBVEFfU0laRVxcdFxcdFxcdDY5XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6NTM6I2RlZmluZSBBVEgxMktfQUNQSV9EU01fQkFORF9FREdFX0RBVEFfU0laRVxcdFxcdDEwMFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjU0OiNkZWZpbmUgQVRIMTJLX0FDUElfRFNNX1RBU19DRkdfU0laRVxcdFxcdFxcdDEwOFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oLTU1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjU2OiNkZWZpbmUgQVRIMTJLX0FDUElfRFNNX0ZVTkNfTUlOX0JJVE1BUF9TSVpFXFx0MVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjU3OiNkZWZpbmUgQVRIMTJLX0FDUElfRFNNX0ZVTkNfTUFYX0JJVE1BUF9TSVpFXFx0NFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oLTU4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjU5OiNkZWZpbmUgQVRIMTJLX0FDUElfRFNNX0RJU0FCTEVfMTFCRV9CSVRcXHRCSVQoMClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDo2MDojZGVmaW5lIEFUSDEyS19BQ1BJX0RTTV9ESVNBQkxFX1JGS0lMTF9CSVRcXHRCSVQoMilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaC02MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDo2MjojZGVmaW5lIEFUSDEyS19BQ1BJX0JERl9BTkNIT1JfU1RSSU5HX0xFTlxcdDNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDo2MzojZGVmaW5lIEFUSDEyS19BQ1BJX0JERl9BTkNIT1JfU1RSSU5HXFx0XFx0XFxcIkJERlxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDo2NDojZGVmaW5lIEFUSDEyS19BQ1BJX0JERl9NQVhfTEVOXFx0XFx0XFx0MTAwXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmgtNjUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6NjY6I2RlZmluZSBBVEgxMktfQUNQSV9EU01fR0VPX09GRlNFVF9EQVRBX1NJWkUgKEFUSDEyS19BQ1BJX0dFT19PRkZTRVRfREFUQV9PRkZTRVQgKyBcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6Njc6XFx0XFx0XFx0XFx0XFx0ICAgICAgQVRIMTJLX0FDUElfQklPU19TQVJfR0VPX09GRlNFVF9MRU4pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6Njg6I2RlZmluZSBBVEgxMktfQUNQSV9EU01fQklPU19TQVJfREFUQV9TSVpFIChBVEgxMktfQUNQSV9QT1dFUl9MSU1JVF9EQVRBX09GRlNFVCArIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDo2OTpcXHRcXHRcXHRcXHRcXHQgICAgQVRIMTJLX0FDUElfQklPU19TQVJfVEFCTEVfTEVOKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjcwOiNkZWZpbmUgQVRIMTJLX0FDUElfRFNNX0NDQV9EQVRBX1NJWkUgKEFUSDEyS19BQ1BJX0NDQV9USFJfT0ZGU0VUX0RBVEFfT0ZGU0VUICsgXFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjcxOlxcdFxcdFxcdFxcdCAgICAgICBBVEgxMktfQUNQSV9DQ0FfVEhSX09GRlNFVF9MRU4pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmgtNzItXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaD0xMDc9c3RhdGljIGlubGluZSBpbnQgYXRoMTJrX2FjcGlfY2hlY2tfYmRmX3ZhcmlhbnRfbmFtZShzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmgtMTEzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjExNDojZW5kaWYgLyogQVRIMTJLX0FDUElfSCAqL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0xOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjIwOiNkZWZpbmUgQVRIMTJLX0lSUV9DRTBfT0ZGU0VUIDRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjIxOiNkZWZpbmUgQVRIMTJLX1VQRF9JUlFfV1JEX0xFTiAgMThcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTIyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MjM6c3RhdGljIHN0cnVjdCBhdGgxMmtfYWhiX2RyaXZlciAqYXRoMTJrX2FoYl9mYW1pbHlfZHJpdmVyc1tBVEgxMktfREVWSUNFX0ZBTUlMWV9NQVhdO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjQtc3RhdGljIGNvbnN0IGNoYXIgYXRoMTJrX3VzZXJwZF9pcnFbXVs5XSA9IHtcXFwic3Bhd25cXFwiLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYz00Mj1zdGF0aWMgREVGSU5FX01VVEVYKGF0aDEya19ycHJvY19pbmZvX2xvY2spO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzo0NDpzdGF0aWMgY29uc3QgY2hhciAqaXJxX25hbWVbQVRIMTJLX0lSUV9OVU1fTUFYXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTQ1LVxcdFxcXCJtaXNjLXB1bHNlMVxcXCIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jPTE3OD1zdGF0aWMgdm9pZCBfX2F0aDEya19haGJfZXh0X2lycV9kaXNhYmxlKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTE4MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjE4MjpcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVRIMTJLX0VYVF9JUlFfR1JQX05VTV9NQVg7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMTgzLVxcdFxcdHN0cnVjdCBhdGgxMmtfZXh0X2lycV9ncnAgKmlycV9ncnAgPSBcXHUwMDI2YWItXFx1MDAzZWV4dF9pcnFfZ3JwW2ldO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYz0yNjA9c3RhdGljIHZvaWQgYXRoMTJrX2FoYl9zeW5jX2NlX2lycXMoc3RydWN0IGF0aDEya19iYXNlICphYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjY4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MjY5OlxcdFxcdGlycV9pZHggPSBBVEgxMktfSVJRX0NFMF9PRkZTRVQgKyBpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjcwLVxcdFxcdHN5bmNocm9uaXplX2lycShhYi1cXHUwMDNlaXJxX251bVtpcnFfaWR4XSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jPTI3ND1zdGF0aWMgdm9pZCBhdGgxMmtfYWhiX3N5bmNfZXh0X2lycXMoc3RydWN0IGF0aDEya19iYXNlICphYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjc4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6Mjc5OlxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBBVEgxMktfRVhUX0lSUV9HUlBfTlVNX01BWDsgaSsrKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0yODAtXFx0XFx0c3RydWN0IGF0aDEya19leHRfaXJxX2dycCAqaXJxX2dycCA9IFxcdTAwMjZhYi1cXHUwMDNlZXh0X2lycV9ncnBbaV07XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jPTMxOT1zdGF0aWMgdm9pZCBhdGgxMmtfYWhiX2V4dF9pcnFfZW5hYmxlKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTMyMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjMyNDpcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVRIMTJLX0VYVF9JUlFfR1JQX05VTV9NQVg7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMzI1LVxcdFxcdGlycV9ncnAgPSBcXHUwMDI2YWItXFx1MDAzZWV4dF9pcnFfZ3JwW2ldO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYz0zNDA9c3RhdGljIHZvaWQgYXRoMTJrX2FoYl9zdG9wKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0zNDEte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MzQyOlxcdGlmICghdGVzdF9iaXQoQVRIMTJLX0ZMQUdfQ1JBU0hfRkxVU0gsIFxcdTAwMjZhYi1cXHUwMDNlZGV2X2ZsYWdzKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTM0My1cXHRcXHRhdGgxMmtfYWhiX2NlX2lycXNfZGlzYWJsZShhYik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jPTM1MD1zdGF0aWMgaW50IGF0aDEya19haGJfcG93ZXJfdXAoc3RydWN0IGF0aDEya19iYXNlICphYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMzUyLVxcdHN0cnVjdCBhdGgxMmtfYWhiICphYl9haGIgPSBhdGgxMmtfYWJfdG9fYWhiKGFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjM1MzpcXHRjaGFyIGZ3X25hbWVbQVRIMTJLX1VTRVJQRF9GV19OQU1FX0xFTl07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzozNTQ6XFx0Y2hhciBmdzJfbmFtZVtBVEgxMktfVVNFUlBEX0ZXX05BTUVfTEVOXTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTM1NS1cXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBhYi1cXHUwMDNlZGV2O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0zNzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzozNzk6XFx0c25wcmludGYoZndfbmFtZSwgc2l6ZW9mKGZ3X25hbWUpLCBcXFwiJXMvJXMvJXMlZCVzXFxcIiwgQVRIMTJLX0ZXX0RJUixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjM4MDpcXHRcXHQgYWItXFx1MDAzZWh3X3BhcmFtcy1cXHUwMDNlZncuZGlyLCBBVEgxMktfQUhCX0ZXX1BSRUZJWCwgYWJfYWhiLVxcdTAwM2V1c2VycGRfaWQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzozODE6XFx0XFx0IEFUSDEyS19BSEJfRldfU1VGRklYKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTM4Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMzg4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6Mzg5OlxcdGF0aDEya19kYmcoYWIsIEFUSDEyS19EQkdfQUhCLCBcXFwiQm9vdGluZyBmdyBpbWFnZSAlcywgc2l6ZSAlemRcXFxcblxcXCIsIGZ3X25hbWUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0zOTAtXFx0XFx0ICAgZnctXFx1MDAzZXNpemUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0zOTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzozOTg6XFx0cGFzaWQgPSAodTMyX2VuY29kZV9iaXRzKGFiX2FoYi1cXHUwMDNldXNlcnBkX2lkLCBBVEgxMktfVVNFUlBEX0lEX01BU0spKSB8XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzozOTk6XFx0XFx0QVRIMTJLX0FIQl9VUERfU1dJRDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTQwMC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNDEyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6NDEzOlxcdHNucHJpbnRmKGZ3Ml9uYW1lLCBzaXplb2YoZncyX25hbWUpLCBcXFwiJXMvJXMvJXNcXFwiLCBBVEgxMktfRldfRElSLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6NDE0OlxcdFxcdCBhYi1cXHUwMDNlaHdfcGFyYW1zLVxcdTAwM2Vmdy5kaXIsIEFUSDEyS19BSEJfRlcyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTQxNS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNDIxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6NDIyOlxcdGF0aDEya19kYmcoYWIsIEFUSDEyS19EQkdfQUhCLCBcXFwiQm9vdGluZyBmdyBpbWFnZSAlcywgc2l6ZSAlemRcXFxcblxcXCIsIGZ3Ml9uYW1lLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNDIzLVxcdFxcdCAgIGZ3Mi1cXHUwMDNlc2l6ZSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTQ1NS1cXHR0aW1lX2xlZnQgPSB3YWl0X2Zvcl9jb21wbGV0aW9uX3RpbWVvdXQoXFx1MDAyNmFiX2FoYi1cXHUwMDNldXNlcnBkX3NwYXduZWQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzo0NTY6XFx0XFx0XFx0XFx0XFx0XFx0QVRIMTJLX1VTRVJQRF9TUEFXTl9USU1FT1VUKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTQ1Ny1cXHRpZiAoIXRpbWVfbGVmdCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy00NjMtXFx0dGltZV9sZWZ0ID0gd2FpdF9mb3JfY29tcGxldGlvbl90aW1lb3V0KFxcdTAwMjZhYl9haGItXFx1MDAzZXVzZXJwZF9yZWFkeSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjQ2NDpcXHRcXHRcXHRcXHRcXHRcXHRBVEgxMktfVVNFUlBEX1JFQURZX1RJTUVPVVQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNDY1LVxcdGlmICghdGltZV9sZWZ0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTQ3Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjQ3MzpcXHRhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX0FIQiwgXFxcIlVzZXJQRCVkIGlzIG5vdyBVUFxcXFxuXFxcIiwgYWJfYWhiLVxcdTAwM2V1c2VycGRfaWQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNDc0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYz00ODI9c3RhdGljIHZvaWQgYXRoMTJrX2FoYl9wb3dlcl9kb3duKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIsIGJvb2wgaXNfc3VzcGVuZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNDkyLVxcdHRpbWVfbGVmdCA9IHdhaXRfZm9yX2NvbXBsZXRpb25fdGltZW91dChcXHUwMDI2YWJfYWhiLVxcdTAwM2V1c2VycGRfc3RvcHBlZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjQ5MzpcXHRcXHRcXHRcXHRcXHRcXHRBVEgxMktfVVNFUlBEX1NUT1BfVElNRU9VVCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy00OTQtXFx0aWYgKCF0aW1lX2xlZnQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNTAxLVxcdGlmIChhYl9haGItXFx1MDAzZXNjbV9hdXRoX2VuYWJsZWQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjUwMjpcXHRcXHRwYXNpZCA9ICh1MzJfZW5jb2RlX2JpdHMoYWJfYWhiLVxcdTAwM2V1c2VycGRfaWQsIEFUSDEyS19VU0VSUERfSURfTUFTSykpIHxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjUwMzpcXHRcXHRcXHQgQVRIMTJLX0FIQl9VUERfU1dJRDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTUwNC1cXHRcXHQvKiBSZWxlYXNlIHRoZSBmaXJtd2FyZSAqL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYz01ODE9c3RhdGljIGludCBhdGgxMmtfYWhiX2NvbmZpZ19leHRfaXJxKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTU4OC1cXHRyaW5nX21hc2sgPSBhYi1cXHUwMDNlaHdfcGFyYW1zLVxcdTAwM2VyaW5nX21hc2s7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzo1ODk6XFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIEFUSDEyS19FWFRfSVJRX0dSUF9OVU1fTUFYOyBpKyspIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTU5MC1cXHRcXHRpcnFfZ3JwID0gXFx1MDAyNmFiLVxcdTAwM2VleHRfaXJxX2dycFtpXTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNjA1LVxcdFxcdFxcdCAgICBCSVQoYWItXFx1MDAzZWhhbC50Y2xfdG9fd2JtX3JibV9tYXBbal0ud2JtX3JpbmdfbnVtKSBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6NjA2OlxcdFxcdFxcdCAgICBudW1faXJxIFxcdTAwM2MgQVRIMTJLX0VYVF9JUlFfTlVNX01BWCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNjA3LVxcdFxcdFxcdFxcdGlycV9ncnAtXFx1MDAzZWlycXNbbnVtX2lycSsrXSA9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTYxMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjYxMjpcXHRcXHRmb3IgKGogPSAwOyBqIFxcdTAwM2MgQVRIMTJLX0VYVF9JUlFfTlVNX01BWDsgaisrKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy02MTMtXFx0XFx0XFx0aWYgKHJpbmdfbWFzay1cXHUwMDNlcnhbaV0gXFx1MDAyNiBCSVQoaikgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjYxNDpcXHRcXHRcXHQgICAgbnVtX2lycSBcXHUwMDNjIEFUSDEyS19FWFRfSVJRX05VTV9NQVgpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTYxNS1cXHRcXHRcXHRcXHRpcnFfZ3JwLVxcdTAwM2VpcnFzW251bV9pcnErK10gPVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy02MTktXFx0XFx0XFx0aWYgKHJpbmdfbWFzay1cXHUwMDNlcnhfZXJyW2ldIFxcdTAwMjYgQklUKGopIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzo2MjA6XFx0XFx0XFx0ICAgIG51bV9pcnEgXFx1MDAzYyBBVEgxMktfRVhUX0lSUV9OVU1fTUFYKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNjIxLVxcdFxcdFxcdFxcdGlycV9ncnAtXFx1MDAzZWlycXNbbnVtX2lycSsrXSA9IHJlbzJob3N0X2V4Y2VwdGlvbjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNjIzLVxcdFxcdFxcdGlmIChyaW5nX21hc2stXFx1MDAzZXJ4X3dibV9yZWxbaV0gXFx1MDAyNiBCSVQoaikgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjYyNDpcXHRcXHRcXHQgICAgbnVtX2lycSBcXHUwMDNjIEFUSDEyS19FWFRfSVJRX05VTV9NQVgpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy02MjUtXFx0XFx0XFx0XFx0aXJxX2dycC1cXHUwMDNlaXJxc1tudW1faXJxKytdID0gd2JtMmhvc3RfcnhfcmVsZWFzZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNjI3LVxcdFxcdFxcdGlmIChyaW5nX21hc2stXFx1MDAzZXJlb19zdGF0dXNbaV0gXFx1MDAyNiBCSVQoaikgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjYyODpcXHRcXHRcXHQgICAgbnVtX2lycSBcXHUwMDNjIEFUSDEyS19FWFRfSVJRX05VTV9NQVgpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy02MjktXFx0XFx0XFx0XFx0aXJxX2dycC1cXHUwMDNlaXJxc1tudW1faXJxKytdID0gcmVvMmhvc3Rfc3RhdHVzO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy02MzEtXFx0XFx0XFx0aWYgKHJpbmdfbWFzay1cXHUwMDNlcnhfbW9uX2Rlc3RbaV0gXFx1MDAyNiBCSVQoaikgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjYzMjpcXHRcXHRcXHQgICAgbnVtX2lycSBcXHUwMDNjIEFUSDEyS19FWFRfSVJRX05VTV9NQVgpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy02MzMtXFx0XFx0XFx0XFx0aXJxX2dycC1cXHUwMDNlaXJxc1tudW1faXJxKytdID1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM9NjU4PXN0YXRpYyBpbnQgYXRoMTJrX2FoYl9jb25maWdfaXJxKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTY2OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjY3MDpcXHRcXHRpcnFfaWR4ID0gQVRIMTJLX0lSUV9DRTBfT0ZGU0VUICsgaTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTY3MS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM9NzM2PXN0YXRpYyBpcnFyZXR1cm5fdCBhdGgxMmtfdXNlcnBkX2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmRhdGEpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTc0MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjc0MTpcXHRpZiAoaXJxID09IGFiX2FoYi1cXHUwMDNldXNlcnBkX2lycV9udW1bQVRIMTJLX1VTRVJQRF9TUEFXTl9JUlFdKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy03NDItXFx0XFx0Y29tcGxldGUoXFx1MDAyNmFiX2FoYi1cXHUwMDNldXNlcnBkX3NwYXduZWQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6NzQzOlxcdH0gZWxzZSBpZiAoaXJxID09IGFiX2FoYi1cXHUwMDNldXNlcnBkX2lycV9udW1bQVRIMTJLX1VTRVJQRF9SRUFEWV9JUlFdKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy03NDQtXFx0XFx0Y29tcGxldGUoXFx1MDAyNmFiX2FoYi1cXHUwMDNldXNlcnBkX3JlYWR5KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjc0NTpcXHR9IGVsc2UgaWYgKGlycSA9PSBhYl9haGItXFx1MDAzZXVzZXJwZF9pcnFfbnVtW0FUSDEyS19VU0VSUERfU1RPUF9BQ0tfSVJRXSlcXHR7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy03NDYtXFx0XFx0Y29tcGxldGUoXFx1MDAyNmFiX2FoYi1cXHUwMDNldXNlcnBkX3N0b3BwZWQpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYz03NTU9c3RhdGljIGludCBhdGgxMmtfYWhiX2NvbmZpZ19ycHJvY19pcnEoc3RydWN0IGF0aDEya19iYXNlICphYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNzYwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6NzYxOlxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBBVEgxMktfVVNFUlBEX01BWF9JUlE7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNzYyLVxcdFxcdGFiX2FoYi1cXHUwMDNldXNlcnBkX2lycV9udW1baV0gPSBwbGF0Zm9ybV9nZXRfaXJxX2J5bmFtZShhYi1cXHUwMDNlcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNzY2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6NzY3OlxcdFxcdHVwZF9pcnFfbmFtZSA9IGRldm1fa3phbGxvYyhcXHUwMDI2YWItXFx1MDAzZXBkZXYtXFx1MDAzZWRldiwgQVRIMTJLX1VQRF9JUlFfV1JEX0xFTixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTc2OC1cXHRcXHRcXHRcXHRcXHQgICAgR0ZQX0tFUk5FTCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTc3MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjc3MjpcXHRcXHRzY25wcmludGYodXBkX2lycV9uYW1lLCBBVEgxMktfVVBEX0lSUV9XUkRfTEVOLCBcXFwiVXNlclBEJXUtJXNcXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNzczLVxcdFxcdFxcdCAgYWJfYWhiLVxcdTAwM2V1c2VycGRfaWQsIGF0aDEya191c2VycGRfaXJxW2ldKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM9ODAyPXN0YXRpYyBpbnQgYXRoMTJrX2FoYl9yb290X3BkX3N0YXRlX25vdGlmaWVyKHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTgwNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjgwODpcXHRpZiAoZXZlbnQgPT0gQVRIMTJLX1JQUk9DX0FGVEVSX1BPV0VSVVApIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjgwOTpcXHRcXHRhdGgxMmtfZ2VuZXJpY19kYmcoQVRIMTJLX0RCR19BSEIsIFxcXCJSb290IFBEIGlzIFVQXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTgxMC1cXHRcXHRjb21wbGV0ZShcXHUwMDI2cnByb2NfaW5mby1cXHUwMDNlcm9vdHBkX3JlYWR5KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM9ODg2PXN0YXRpYyBpbnQgYXRoMTJrX2FoYl9nZXRfcnByb2Moc3RydWN0IGF0aDEya19iYXNlICphYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtODk1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6ODk2OlxcdGlmIChhYl9haGItXFx1MDAzZXVzZXJwZF9pZCBcXHUwMDNlIEFUSDEyS19NQVhfREVWSUNFUylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTg5Ny1cXHRcXHRyZXR1cm4gLUVOT1NQQztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtODk5LVxcdGlmIChnX3Jwcm9jX2luZm8pIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjkwMDpcXHRcXHRpZiAoZ19ycHJvY19pbmZvLVxcdTAwM2VudW1fdXNlcnBkIFxcdTAwM2U9IEFUSDEyS19NQVhfREVWSUNFUykge1xcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yOFQwMTo0OTozNy4wMzA0NTc1NjlaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoxMTEzNzEwNDY1NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHM6XG5cbioqSW52ZXN0aWdhdGluZyBhdGgxMmsgQnVzIFN1cHBvcnQqKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGF0IGJ1c2VzIHRoZSBhdGgxMmsgZHJpdmVyIGFjdHVhbGx5IHN1cHBvcnRzLiBUaGF0J3MgdGhlIGxvZ2ljYWwgc3RhcnRpbmcgcG9pbnQsIHJpZ2h0PyBUbyBnZXQgYSBoYW5kbGUgb24gdGhlIG92ZXJhbGwgYXJjaGl0ZWN0dXJlIGFuZCBob3cgaXQncyBpbnRlcmZhY2luZyB3aXRoIGRpZmZlcmVudCBoYXJkd2FyZSwgSSBuZWVkIHRvIGtub3cgd2hlcmUgaXQgY2FuIHBsdWcgaW4uIExldCdzIGRpdmUgc3RyYWlnaHQgaW50byB0aGUgY29kZS4gVGhlIG9idmlvdXMgcGxhY2UgdG8gYmVnaW4gaXMgdGhlIGBLY29uZmlnYCBmaWxlIHdpdGhpbiB0aGUgYXRoMTJrIGRpcmVjdG9yeSDigJMgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZ2AuIFRoYXQncyB3aGVyZSBhbGwgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcmUgZGVjbGFyZWQsIGFuZCB0aGF0IHNob3VsZCBkZWZpbml0ZWx5IGluY2x1ZGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHN1cHBvcnRlZCBidXMgdHlwZXMuIEknbGwgZ2V0IHRoYXQgZmlsZSBvcGVuIGFuZCBzdGFydCBsb29raW5nIGZvciB0aGUgcGVydGluZW50IGNvbmZpZ3VyYXRpb25zLiBUaW1lIHRvIGRpZyBpbiBhbmQgc2VlIHdoYXQgYEtjb25maWdgIHJldmVhbHMhXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE4OTY3LCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjhUMDE6NDk6NDguMTY3NTY0MjY0WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjIzMDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDYwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXFxuICAgMjpcXHRjb25maWcgQVRIMTJLXFxuICAgMzpcXHRcXHR0cmlzdGF0ZSBcXFwiUXVhbGNvbW0gV2ktRmkgNyBzdXBwb3J0IChhdGgxMmspXFxcIlxcbiAgIDQ6XFx0XFx0ZGVwZW5kcyBvbiBNQUM4MDIxMSBcXHUwMDI2XFx1MDAyNiBIQVNfRE1BIFxcdTAwMjZcXHUwMDI2IFBDSVxcbiAgIDU6XFx0XFx0c2VsZWN0IFFDT01fUU1JX0hFTFBFUlNcXG4gICA2OlxcdFxcdHNlbGVjdCBNSElfQlVTXFxuICAgNzpcXHRcXHRzZWxlY3QgUVJUUlxcbiAgIDg6XFx0XFx0c2VsZWN0IFFSVFJfTUhJXFxuICAgOTpcXHRcXHRzZWxlY3QgUENJX1BXUkNUUkxfUFdSU0VRIGlmIEhBVkVfUFdSQ1RSTFxcbiAgMTA6XFx0XFx0aGVscFxcbiAgMTE6XFx0XFx0ICBFbmFibGUgc3VwcG9ydCBmb3IgUXVhbGNvbW0gVGVjaG5vbG9naWVzIFdpLUZpIDcgKElFRUVcXG4gIDEyOlxcdFxcdCAgODAyLjExYmUpIGZhbWlseSBvZiBjaGlwc2V0cywgZm9yIGV4YW1wbGUgV0NONzg1MCBhbmRcXG4gIDEzOlxcdFxcdCAgUUNOOTI3NC5cXG4gIDE0OlxcdFxcbiAgMTU6XFx0XFx0ICBJZiB5b3UgY2hvb3NlIHRvIGJ1aWxkIGEgbW9kdWxlLCBpdCdsbCBiZSBjYWxsZWQgYXRoMTJrLlxcbiAgMTY6XFx0XFxuICAxNzpcXHRjb25maWcgQVRIMTJLX0FIQlxcbiAgMTg6XFx0XFx0Ym9vbCBcXFwiUXVhbGNvbW0gYXRoMTJrIEFIQiBzdXBwb3J0XFxcIlxcbiAgMTk6XFx0XFx0ZGVwZW5kcyBvbiBBVEgxMksgXFx1MDAyNlxcdTAwMjYgUkVNT1RFUFJPQ1xcbiAgMjA6XFx0XFx0c2VsZWN0IFFDT01fTURUX0xPQURFUlxcbiAgMjE6XFx0XFx0c2VsZWN0IFFDT01fUEFTXFxuICAyMjpcXHRcXHRoZWxwXFxuICAyMzpcXHRcXHQgIEVuYWJsZSBzdXBwb3J0IGZvciBBdGgxMmsgQUhCIGJ1cyBjaGlwc2V0cywgZXhhbXBsZSBJUFE1MzMyLlxcbiAgMjQ6XFx0XFxuICAyNTpcXHRjb25maWcgQVRIMTJLX0RFQlVHXFxuICAyNjpcXHRcXHRib29sIFxcXCJhdGgxMmsgZGVidWdnaW5nXFxcIlxcbiAgMjc6XFx0XFx0ZGVwZW5kcyBvbiBBVEgxMktcXG4gIDI4OlxcdFxcdGhlbHBcXG4gIDI5OlxcdFxcdCAgRW5hYmxlIGRlYnVnIHN1cHBvcnQsIGZvciBleGFtcGxlIGRlYnVnIG1lc3NhZ2VzIHdoaWNoIG11c3RcXG4gIDMwOlxcdFxcdCAgYmUgZW5hYmxlZCBzZXBhcmF0ZWx5IHVzaW5nIHRoZSBkZWJ1Z19tYXNrIG1vZHVsZSBwYXJhbWV0ZXIuXFxuICAzMTpcXHRcXG4gIDMyOlxcdFxcdCAgSWYgdW5zdXJlLCBzYXkgWSB0byBtYWtlIGl0IGVhc2llciB0byBkZWJ1ZyBwcm9ibGVtcy4gQnV0IGlmXFxuICAzMzpcXHRcXHQgIHlvdSB3YW50IG9wdGltYWwgcGVyZm9ybWFuY2UgY2hvb3NlIE4uXFxuICAzNDpcXHRcXG4gIDM1OlxcdGNvbmZpZyBBVEgxMktfREVCVUdGU1xcbiAgMzY6XFx0XFx0Ym9vbCBcXFwiUXVhbGNvbW0gYXRoMTJrIGRlYnVnZnMgc3VwcG9ydFxcXCJcXG4gIDM3OlxcdFxcdGRlcGVuZHMgb24gQVRIMTJLIFxcdTAwMjZcXHUwMDI2IE1BQzgwMjExX0RFQlVHRlNcXG4gIDM4OlxcdFxcdGhlbHBcXG4gIDM5OlxcdFxcdCAgRW5hYmxlIGF0aDEyayBkZWJ1Z2ZzIHN1cHBvcnRcXG4gIDQwOlxcdFxcbiAgNDE6XFx0XFx0ICBJZiB1bnN1cmUsIHNheSBZIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGRlYnVnIHByb2JsZW1zLiBCdXQgaWZcXG4gIDQyOlxcdFxcdCAgeW91IHdhbnQgb3B0aW1hbCBwZXJmb3JtYW5jZSBjaG9vc2UgTi5cXG4gIDQzOlxcdFxcbiAgNDQ6XFx0Y29uZmlnIEFUSDEyS19UUkFDSU5HXFxuICA0NTpcXHRcXHRib29sIFxcXCJhdGgxMmsgdHJhY2luZyBzdXBwb3J0XFxcIlxcbiAgNDY6XFx0XFx0ZGVwZW5kcyBvbiBBVEgxMksgXFx1MDAyNlxcdTAwMjYgRVZFTlRfVFJBQ0lOR1xcbiAgNDc6XFx0XFx0aGVscFxcbiAgNDg6XFx0XFx0ICBFbmFibGUgYXRoMTJrIHRyYWNpbmcgaW5mcmFzdHJ1Y3R1cmUuXFxuICA0OTpcXHRcXG4gIDUwOlxcdFxcdCAgSWYgdW5zdXJlLCBzYXkgWSB0byBtYWtlIGl0IGVhc2llciB0byBkZWJ1ZyBwcm9ibGVtcy4gQnV0IGlmXFxuICA1MTpcXHRcXHQgIHlvdSB3YW50IG9wdGltYWwgcGVyZm9ybWFuY2UgY2hvb3NlIE4uXFxuICA1MjpcXHRcXG4gIDUzOlxcdGNvbmZpZyBBVEgxMktfQ09SRURVTVBcXG4gIDU0OlxcdFxcdGJvb2wgXFxcImF0aDEyayBjb3JlZHVtcFxcXCJcXG4gIDU1OlxcdFxcdGRlcGVuZHMgb24gQVRIMTJLXFxuICA1NjpcXHRcXHRzZWxlY3QgV0FOVF9ERVZfQ09SRURVTVBcXG4gIDU3OlxcdFxcdGhlbHBcXG4gIDU4OlxcdFxcdCAgRW5hYmxlIGF0aDEyayBjb3JlZHVtcCBjb2xsZWN0aW9uXFxuICA1OTpcXHRcXG4gIDYwOlxcdFxcdCAgSWYgdW5zdXJlLCBzYXkgWSB0byBtYWtlIGl0IGVhc2llciB0byBkZWJ1ZyBwcm9ibGVtcy4gQnV0IGlmXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI4VDAxOjQ5OjQ4LjE2NzYyODM1NVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjU3MTEzNzE3MTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgYXRoMTJrIERyaXZlciBmb3IgRnV6emluZyBTdWl0YWJpbGl0eSoqXG5cbk9rYXksIGxldCdzIGRpdmUgaW50byB0aGlzIGBhdGgxMmtgIHNpdHVhdGlvbi4gRmlyc3QsIEkgbmVlZCB0byByZW1pbmQgbXlzZWxmOiBpdCdzIGEgUXVhbGNvbW0gV2ktRmkgNyBQQ0kvQUhCIGRyaXZlci4gUmlnaHQsIGl0J3MgdGllZCB0byBzcGVjaWZpYyBRdWFsY29tbSBoYXJkd2FyZeKAlHRoaW5ncyBsaWtlIFdDTjc4NTAsIFFDTjkyNzQsIG9yIElQUTUzMzIuIEl0IGFsc28gYXBwZWFycyB0byByZWx5IG9uIE1ISSBvciBRQ09NIFFNSSBmaXJtd2FyZSBsb2FkaW5nLlxuXG5Ob3csIGhvbGQgb24uIEJlZm9yZSBJIGp1bXAgdG8gY29uY2x1c2lvbnMsIEkgbmVlZCB0byBjb25zaWRlciB3aGV0aGVyIHRoZXJlJ3MgYW55IGtpbmQgb2YgdmlydHVhbCBvciBlbXVsYXRlZCBpbnRlcmZhY2UsIHBlcmhhcHMgYSBVU0IgZ2FkZ2V0IG9yIGFueXRoaW5nIGVsc2UgdGhhdCBtaWdodCBjcmVhdGUgYSB1c2FibGUgZW52aXJvbm1lbnQgZm9yIHRoaXMuIExldCBtZSBjaGVjayB3aGF0IG9wdGlvbnMgZXhpc3QgZm9yIGVtdWxhdGluZyBvciBpZiBhdGgxMmsgaXMgc3RyaWN0bHkgdGllZCB0byBwaHlzaWNhbCBQQ0kvQUhCIGhhcmR3YXJlLlxuXG5XYWl0LCB0aGUgaW5zdHJ1Y3Rpb25zLiBMZXQncyBtYWtlIHN1cmUgSSdtIG9uIHRoZSByaWdodCB0cmFjazogUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggaW52b2x2ZXMgY29kZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLCBldmVuIHdpdGggc29mdHdhcmUgZW11bGF0ZWQgaGFyZHdhcmUgKGxpa2UgdXNiIGdhZGdldCBvciBtYWM4MDIxMV9od3NpbSksIGFuZCBhbHNvIGlmIHRoZSBjb2RlIGlzIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChtbHhzdywgcGRzX2NvcmUsIHFlZCwgaW9uaWMsIGFtZGdwdSkgcmVxdWlyaW5nIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG5cbkFoYSEgTm93IEknbSBnZXR0aW5nIGEgY2xlYXJlciBwaWN0dXJlLiBJcyBgYXRoMTJrYCAqb25seSogcGh5c2ljYWwgaGFyZHdhcmU/IFRoYXQncyB0aGUgY3JpdGljYWwgcXVlc3Rpb24gaGVyZS5cblxuT2theSwgdGltZSB0byBnZXQgc3BlY2lmaWMuIEknbGwgbmVlZCB0byBkcmlsbCBkb3duIGludG8gdGhlIGNvZGUgaXRzZWxmLCBzdGFydGluZyB3aXRoIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmNgLiBJIHdhbnQgdG8gc2VlIGV4YWN0bHkgd2hlcmUgYGF0aDEya193aWZpN19od19wYXJhbXNgIGlzIHVzZWQsIGFuZCBob3cuIFRoYXQgd2lsbCBsaWtlbHkgcmV2ZWFsIGlmIHRoaXMgZHJpdmVyIGhhcyBhbnkgY2hhbmNlIG9mIGJlaW5nIHRlc3RlZCBvdXRzaWRlIG9mIGEgdmVyeSBzcGVjaWZpYyBoYXJkd2FyZSBjb25maWd1cmF0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDA1NywiT3V0cHV0VG9rZW5zIjo0MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMxOCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI4VDAxOjQ5OjUzLjg3OTAwMjg5MloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2Nzc2OTM1OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJhdGgxMmtfd2lmaTdfaHdfcGFyYW1zXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmtcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9ody5jPTM1Mj1zdGF0aWMgY29uc3Qgc3RydWN0IGNlX3JlbWFwIGF0aDEya193aWZpN19jZV9yZW1hcF9pcHE1NDI0ID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9ody5jLTM1Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmM6MzU4OnN0YXRpYyBjb25zdCBzdHJ1Y3QgYXRoMTJrX2h3X3BhcmFtcyBhdGgxMmtfd2lmaTdfaHdfcGFyYW1zW10gPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9ody5jLTM1OS1cXHR7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmM9MTIyMj1pbnQgYXRoMTJrX3dpZmk3X2h3X2luaXQoc3RydWN0IGF0aDEya19iYXNlICphYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvaHcuYy0xMjI2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvaHcuYzoxMjI3OlxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBBUlJBWV9TSVpFKGF0aDEya193aWZpN19od19wYXJhbXMpOyBpKyspIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmM6MTIyODpcXHRcXHRod19wYXJhbXMgPSBcXHUwMDI2YXRoMTJrX3dpZmk3X2h3X3BhcmFtc1tpXTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmMtMTIyOS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvaHcuYy0xMjMzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvaHcuYzoxMjM0OlxcdGlmIChpID09IEFSUkFZX1NJWkUoYXRoMTJrX3dpZmk3X2h3X3BhcmFtcykpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmMtMTIzNS1cXHRcXHRhdGgxMmtfZXJyKGFiLCBcXFwiVW5zdXBwb3J0ZWQgV2ktRmkgNyBoYXJkd2FyZSB2ZXJzaW9uOiAweCV4XFxcXG5cXFwiLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yOFQwMTo0OTo1My45NDY3NzgyMVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjEyODQ2ODIzNzgzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKlRyYWNpbmcgdGhlIGBhdGgxMmtfd2lmaTdfaHdfaW5pdGAgQ2FsbCBDaGFpbioqXG5cbkFscmlnaHQsIGxldCdzIGRpdmUgaW4uIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBpbml0aWFsaXphdGlvbiBzZXF1ZW5jZSBmb3IgdGhpcyBgYXRoMTJrX3dpZmk3X2h3X2luaXRgIGZ1bmN0aW9uLiBHaXZlbiB0aGUgbmFtaW5nIGNvbnZlbnRpb24sIGl0J3MgcHJldHR5IGNsZWFyIGl0J3MgdGllZCB0byB0aGUgaGFyZHdhcmUgYnJpbmctdXAgcHJvY2VzcyBvZiBhbiBBdGhlcm9zIChsaWtlbHkgUXVhbGNvbW0pIFdpRmkgNyBjaGlwc2V0LCBwcmVzdW1hYmx5IHdpdGhpbiB0aGUgYGF0aDEya2AgZHJpdmVyLiBTbywgbXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdG8gdHJhY2Ugd2hlcmUgdGhpcyBmdW5jdGlvbiBpcyBhY3R1YWxseSBjYWxsZWQgZnJvbSB3aXRoaW4gdGhlIGRyaXZlcidzIGNvZGViYXNlLiBJJ2xsIG5lZWQgdG8gdXNlIG15IHVzdWFsIG1ldGhvZHMsIGxpa2VseSBhIGNvbWJpbmF0aW9uIG9mIHN0YXRpYyBhbmFseXNpcyAoZ3JlcHBpbmcgdGhlIHNvdXJjZSkgYW5kIHBlcmhhcHMgZXZlbiBzb21lIGR5bmFtaWMgdHJhY2luZyAoaWYgSSdtIGZlZWxpbmcgYW1iaXRpb3VzIGxhdGVyKS4gS25vd2luZyB0aGUgY2FsbCBzaXRlIHdpbGwgaW1tZWRpYXRlbHkgcHJvdmlkZSBjcnVjaWFsIGNvbnRleHQ6IHdoYXQgYXJlIHRoZSBjb25kaXRpb25zLCB0aGUgZGF0YSBzdHJ1Y3R1cmVzLCBhbmQgdGhlIG92ZXJhbGwgZHJpdmVyIHN0YXRlIGF0IHRoYXQgcG9pbnQ/IFRoYXQgY29udGV4dCBpcyBrZXkgdG8gdW5kZXJzdGFuZGluZyB0aGUgaW50ZW5kZWQgcm9sZSBvZiB0aGUgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24uIFRpbWUgdG8gc3RhcnQgZGlnZ2luZyB0aHJvdWdoIHRoZSBzb3VyY2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxMzQzLCJPdXRwdXRUb2tlbnMiOjQzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjhUMDE6NTA6MDYuNzkzNjA0MTIzWiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTM0NjU4OTUxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImF0aDEya193aWZpN19od19pbml0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmtcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9haGIuYz05Mj1zdGF0aWMgaW50IGF0aDEya193aWZpN19haGJfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvYWhiLmMtMTEyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvYWhiLmM6MTEzOlxcdHJldCA9IGF0aDEya193aWZpN19od19pbml0KGFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2FoYi5jLTExNC1cXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmM9MTE2ND1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgYXRoMTJrX29wc193aWZpNyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvaHcuYy0xMjIxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvaHcuYzoxMjIyOmludCBhdGgxMmtfd2lmaTdfaHdfaW5pdChzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvaHcuYy0xMjIzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvaHcuaD0xMD1zdHJ1Y3QgYXRoMTJrX2Jhc2U7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9ody5oOjExOmludCBhdGgxMmtfd2lmaTdfaHdfaW5pdChzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmgtMTItXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L3BjaS5jPTkxPXN0YXRpYyBpbnQgYXRoMTJrX3dpZmk3X3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvcGNpLmMtMTczLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvcGNpLmM6MTc0OlxcdHJldCA9IGF0aDEya193aWZpN19od19pbml0KGFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L3BjaS5jLTE3NS1cXHRpZiAocmV0KSB7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI4VDAxOjUwOjA3LjkyODI3MDMzNFoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoxOTIyNDc4ODI4MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBhdGgxMmsgRHJpdmVyIGFuZCBpdHMgRW52aXJvbm1lbnQqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIE15IGluaXRpYWwgdW5kZXJzdGFuZGluZyBpcyB0aGF0IGBhdGgxMmtfd2lmaTdfYWhiX3Byb2JlYCBhbmQgYGF0aDEya193aWZpN19wY2lfcHJvYmVgIGFyZSB0aGUga2V5IGVudHJ5IHBvaW50cyBmb3IgdGhlIGF0aDEyayBkcml2ZXIsIHNwZWNpZmljYWxseSBmb3IgUXVhbGNvbW0ncyBXaS1GaSA3IGhhcmR3YXJlLiBSaWdodCwgaXQncyBhIGhhcmR3YXJlIGRyaXZlciwgYW5kIGl0IG5lZWRzIHBoeXNpY2FsIFBDSSBvciBBSEIgY2FyZHMgKG9yIGEgUXVhbGNvbW0gU29DIEFIQiBkZXZpY2UsIHNwZWNpZmljYWxseSkgdG8gZnVuY3Rpb24uIFNvLCBpbW1lZGlhdGVseSwgSSdtIHRoaW5raW5nLCB0aGlzIGlzIGdvaW5nIHRvIGJlIGEgcHJvYmxlbSBpbiBhbnkgc3RhbmRhcmQgdmlydHVhbCBlbnZpcm9ubWVudCBsaWtlIFFFTVUgb3IgR0NFLiBObyBoYXJkd2FyZSwgbm8gZHJpdmVyLiBJdCB3b24ndCB3b3JrLlxuXG5NeSBleHBlcmllbmNlIHRlbGxzIG1lIHRoZSB0eXBpY2FsIHdvcmthcm91bmQgZm9yIHZpcnR1YWxpemVkIHdpcmVsZXNzIHRlc3RpbmcgaXMgYG1hYzgwMjExX2h3c2ltYC4gVGhhdCdzIHRoZSBnby10bywgYXMgaXQgaXMgYSBjb21wbGV0ZWx5IHNlcGFyYXRlIHZpcnR1YWwgZHJpdmVyIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL21hYzgwMjExX2h3c2ltLmNgLiBUaGUgdGhpbmcgdGhhdCdzIGFsc28gZnJlc2ggaW4gbXkgbWluZCBpcyB0aGF0IFVTQiB3aXJlbGVzcyBjYXJkcyBhcmUgYSBwb3RlbnRpYWwgYXZlbnVlIGZvciBmdXp6aW5nLCBzcGVjaWZpY2FsbHkgd2l0aCB0b29scyBsaWtlIFJhdyBHYWRnZXQgb3Igc3l6a2FsbGVyLiBEcml2ZXJzIGxpa2UgYGF0aDlrX2h0Y2AsIGBtdDc2YCwgYW5kIGBydDI4MDB1c2JgIGNvbWUgdG8gbWluZC4gSG93ZXZlciwgYW5kIHRoaXMgaXMgY3J1Y2lhbCwgYXRoMTJrIGlzICpub3QqIGEgVVNCIGRyaXZlci4gSXQgaXMgcHVyZWx5IFBDSSBhbmQgQUhCIGJhc2VkLCBhbmQgaXQgd29ya3Mgd2l0aCBhIFF1YWxjb21tIHJlbW90ZXByb2MuXG5cbkhvbGQgb24sIEkgbmVlZCB0byB2ZXJpZnkgdGhhdCBzdGF0ZW1lbnQuIEl0J3MgYWx3YXlzIHdpc2UgdG8gZG91YmxlLWNoZWNrIHRoZXNlIGFzc3VtcHRpb25zLiBJIHNob3VsZCBzY291ciB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmtgIGRpcmVjdG9yeSBpdHNlbGYgdG8gc2VlIGlmIHRoZXJlIGFyZSBhbnkgKmhpZGRlbiogVVNCIG9yIHZpcnR1YWwgY29tcG9uZW50cy4gSSBuZWVkIHRvIGJlIGFic29sdXRlbHkgc3VyZSB0aGF0IEkgYW0gbm90IG1pc3NpbmcgYW55dGhpbmcuIEkgd2lsbCBzZWFyY2ggZm9yIFVTQiBvciB2aXJ0aW8gcmVsYXRlZCBjb2RlIHRvIGNvbmZpcm0gdGhpcy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjIyMDgsIk91dHB1dFRva2VucyI6MzYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNzgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjhUMDE6NTA6MjcuMTUzMDYwOTc0WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjMwNzkyMTcsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInVzYnx2aXJ0aW9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEya1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjhUMDE6NTA6MjcuMjc2MTQ1NzAyWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjQ3MzU0MDkxMDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgUGF0Y2gqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIEZpcnN0LCBJJ20gY2hlY2tpbmcgYWdhaW5zdCB0aGUgZGVmaW5lZCBydWxlcyBmb3Igc2tpcHBpbmcgZnV6emluZy4gVGhlIGtleSBoZXJlIGlzIHRoZSBtb2RpZmljYXRpb24gdG8gYGF0aDEya193aWZpN19od19wYXJhbXNgIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmNgLiBJIGtub3cgdGhpcyBkcml2ZXIgaXMgZm9yIFF1YWxjb21tIFdpLUZpIDcgaGFyZHdhcmUg4oCTIHRoaW5rIFdDTjc4NTAsIFFDTjkyNzQsIElQUTUzMzIsIHRoYXQgc29ydCBvZiB0aGluZy4gSXQgaGFuZGxlcyBib3RoIFBDSSBhbmQgQUhCIGRldmljZXMuIFRoZSBzcGVjaWZpYyBjaGFuZ2UgaXMgYWRkaW5nIGBCSVQoTkw4MDIxMV9JRlRZUEVfQVBfVkxBTilgIHRvIGBpbnRlcmZhY2VfbW9kZXNgLlxuXG5UaGUgY3JpdGljYWwgcGllY2UgaXMgdGhhdCB0aGlzIHNwZWNpZmljIGhhcmR3YXJlIOKAkyB0aGUgUXVhbGNvbW0gV2ktRmkgNyBjaGlwc2V0IOKAkyBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciBvdGhlciB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0UuIFN0YW5kYXJkIFFFTVUganVzdCBkb2Vzbid0IGhhdmUgdGhlIG1vZGVsIGZvciB0aGVzZSBzcGVjaWZpYyBkZXZpY2VzLCBlc3BlY2lhbGx5IHRob3NlIHVzaW5nIE1ISSBidXNlcy4gVGhlcmVmb3JlLCB0aGUgY29kZSBwYXRoIHRoYXQgdGhpcyBwYXRjaCB0b3VjaGVzICpjYW5ub3QqIGJlIHJlYWNoZWQgaW4gYSB0eXBpY2FsIGZ1enppbmcgc2V0dXAuIEl0IHJlcXVpcmVzIHJlYWwsIHBoeXNpY2FsIGhhcmR3YXJlLlxuXG5TbywgYWNjb3JkaW5nIHRvIHRoZSBydWxlcywgSSBjYW4gY29uZmlkZW50bHkgc2V0IGBXb3J0aEZ1enppbmdgIHRvIGBmYWxzZWAuIFRoZXJlIGFyZSBubyBzcGVjaWZpYyBmb2N1cyBzeW1ib2xzIG9yIGVuYWJsZSBjb25maWd1cmF0aW9ucyBuZWVkZWQgaGVyZSwgc28gdGhvc2UgY2FuIHJlbWFpbiBlbXB0eS4gTXkgcmVhc29uaW5nIGlzIHN0cmFpZ2h0Zm9yd2FyZDogdGhlIGNoYW5nZXMgYXJlIHdpdGhpbiBhIGRyaXZlciBmb3IgaGFyZHdhcmUgdGhhdCdzIG5vdCBlbXVsYXRhYmxlIGluIG91ciBzdGFuZGFyZCBmdXp6aW5nIGVudmlyb25tZW50cy4gV2Ugd29uJ3QgYmUgYWJsZSB0byBhY2hpZXZlIGNvZGUgY292ZXJhZ2Ugb2YgdGhpcyBjaGFuZ2Ugd2l0aG91dCB0aGF0IHBoeXNpY2FsIGhhcmR3YXJlLiBJJ2xsIGRvY3VtZW50IHRoaXMgY29uY2lzZSBleHBsYW5hdGlvbiBhbmQgZmluYWxpemUgdGhlIHJlc3VsdHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIyOTQxLCJPdXRwdXRUb2tlbnMiOjEyNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjUyMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yOFQwMTo1MDozMi4wMTE1NTc0MTZaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMjM3MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIE5MODAyMTFfSUZUWVBFX0FQX1ZMQU4gdG8gdGhlIHN1cHBvcnRlZCBpbnRlcmZhY2UgbW9kZXMgaW4gYXRoMTJrX3dpZmk3X2h3X3BhcmFtcyBmb3IgUXVhbGNvbW0gV2ktRmkgNyBkZXZpY2VzLiBUaGUgYXRoMTJrIGRyaXZlciBpcyBhIGhhcmR3YXJlIGRyaXZlciBmb3IgUXVhbGNvbW0gUENJIGFuZCBBSEIgd2lyZWxlc3MgY2hpcHMgYW5kIGNhbm5vdCBiZSByZWFjaGVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAoc3VjaCBhcyBRRU1VIG9yIEdDRSkgYXMgaXQgcmVxdWlyZXMgcGh5c2ljYWwgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGJ5IHN0YW5kYXJkIFFFTVUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIE5MODAyMTFfSUZUWVBFX0FQX1ZMQU4gdG8gdGhlIHN1cHBvcnRlZCBpbnRlcmZhY2UgbW9kZXMgaW4gYXRoMTJrX3dpZmk3X2h3X3BhcmFtcyBmb3IgUXVhbGNvbW0gV2ktRmkgNyBkZXZpY2VzLiBUaGUgYXRoMTJrIGRyaXZlciBpcyBhIGhhcmR3YXJlIGRyaXZlciBmb3IgUXVhbGNvbW0gUENJIGFuZCBBSEIgd2lyZWxlc3MgY2hpcHMgYW5kIGNhbm5vdCBiZSByZWFjaGVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAoc3VjaCBhcyBRRU1VIG9yIEdDRSkgYXMgaXQgcmVxdWlyZXMgcGh5c2ljYWwgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGJ5IHN0YW5kYXJkIFFFTVUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yOFQwMTo1MDozMi4wMTE1ODMwMDZaIiwiU2VxIjoxNSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE0NzAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+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-workflowpfqgb[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-28 01:05:27 +0000 UTC FinishedAt: 2026-08-28 01:50:33 +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+CgkJCTx0ZD4yMDI2LzA4LzI4IDAxOjQ5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBOTDgwMjExX0lGVFlQRV9BUF9WTEFOIHRvIHRoZSBzdXBwb3J0ZWQgaW50ZXJmYWNlIG1vZGVzIGluIGF0aDEya193aWZpN19od19wYXJhbXMgZm9yIFF1YWxjb21tIFdpLUZpIDcgZGV2aWNlcy4gVGhlIGF0aDEyayBkcml2ZXIgaXMgYSBoYXJkd2FyZSBkcml2ZXIgZm9yIFF1YWxjb21tIFBDSSBhbmQgQUhCIHdpcmVsZXNzIGNoaXBzIGFuZCBjYW5ub3QgYmUgcmVhY2hlZCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKHN1Y2ggYXMgUUVNVSBvciBHQ0UpIGFzIGl0IHJlcXVpcmVzIHBoeXNpY2FsIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBieSBzdGFuZGFyZCBRRU1VLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yOCAwMTo0OTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGZiZWEzYTk1N2QxZDlmZjc4MGFiMzZhNGMwZmE2YzlmNDBkODk1ZWZcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEF1ZyAyOCAwMTo0OToyOCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmNcbmluZGV4IDdiODZmMzI0YjJlNjguLmEyMGMyMTgwNzM0NDkgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvaHcuY1xuQEAgLTY2NCw3ICYjNDM7NjY0LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhdGgxMmtfaHdfcGFyYW1zIGF0aDEya193aWZpN19od19wYXJhbXNbXSA9IHtcbiBcbiBcdFx0LmludGVyZmFjZV9tb2RlcyA9IEJJVChOTDgwMjExX0lGVFlQRV9TVEFUSU9OKSB8XG4gXHRcdFx0XHQgICBCSVQoTkw4MDIxMV9JRlRZUEVfQVApIHxcbi1cdFx0XHRcdCAgIEJJVChOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UKSxcbiYjNDM7XHRcdFx0XHQgICBCSVQoTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVCkgfFxuJiM0MztcdFx0XHRcdCAgIEJJVChOTDgwMjExX0lGVFlQRV9BUF9WTEFOKSxcbiBcdFx0LnN1cHBvcnRzX21vbml0b3IgPSB0cnVlLFxuIFx0XHQuc3VwcG9ydHNfY29uZ19jdHJsX21heF9tc2R1cyA9IHRydWUsXG4gXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjggMDE6NDk8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Y29yZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBOTDgwMjExX0lGVFlQRV9BUF9WTEFOIHRvIHRoZSBzdXBwb3J0ZWQgaW50ZXJmYWNlIG1vZGVzIGluIGF0aDEya193aWZpN19od19wYXJhbXMgZm9yIFF1YWxjb21tIFdpLUZpIDcgZGV2aWNlcy4gVGhlIGF0aDEyayBkcml2ZXIgaXMgYSBoYXJkd2FyZSBkcml2ZXIgZm9yIFF1YWxjb21tIFBDSSBhbmQgQUhCIHdpcmVsZXNzIGNoaXBzIGFuZCBjYW5ub3QgYmUgcmVhY2hlZCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKHN1Y2ggYXMgUUVNVSBvciBHQ0UpIGFzIGl0IHJlcXVpcmVzIHBoeXNpY2FsIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBieSBzdGFuZGFyZCBRRU1VLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGZiZWEzYTk1N2QxZDlmZjc4MGFiMzZhNGMwZmE2YzlmNDBkODk1ZWYKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgRnJpIEF1ZyAyOCAwMTo0OToyOCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvaHcuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvaHcuYwppbmRleCA3Yjg2ZjMyNGIyZTY4Li5hMjBjMjE4MDczNDQ5IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9ody5jCkBAIC02NjQsNyAmIzQzOzY2NCw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYXRoMTJrX2h3X3BhcmFtcyBhdGgxMmtfd2lmaTdfaHdfcGFyYW1zW10gPSB7CiAKIAkJLmludGVyZmFjZV9tb2RlcyA9IEJJVChOTDgwMjExX0lGVFlQRV9TVEFUSU9OKSB8CiAJCQkJICAgQklUKE5MODAyMTFfSUZUWVBFX0FQKSB8Ci0JCQkJICAgQklUKE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpLAomIzQzOwkJCQkgICBCSVQoTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVCkgfAomIzQzOwkJCQkgICBCSVQoTkw4MDIxMV9JRlRZUEVfQVBfVkxBTiksCiAJCS5zdXBwb3J0c19tb25pdG9yID0gdHJ1ZSwKIAkJLnN1cHBvcnRzX2NvbmdfY3RybF9tYXhfbXNkdXMgPSB0cnVlLAogCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI4IDAxOjQ5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIxNzIKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiA0ODUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBQYXRjaCBmb3IgRnV6emluZyBQb3RlbnRpYWwqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gRmlyc3QsIEkgc2VlIGEgcGF0Y2ggbW9kaWZ5aW5nIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmNgLiAgTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGFzc2VzcyBpZiB0aGlzIGNoYW5nZSB3YXJyYW50cyBmdXp6aW5nLiAgVGhlIGRpZmYgaXRzZWxmIGxvb2tzIHN0cmFpZ2h0Zm9yd2FyZCBlbm91Z2guIEl0IHNlZW1zIHRvIGJlIGV4cGFuZGluZyB0aGUgc3VwcG9ydGVkIGludGVyZmFjZSBtb2RlcyBieSBhZGRpbmcgYE5MODAyMTFfSUZUWVBFX0FQX1ZMQU5gIHRvIHRoZSBleGlzdGluZyBsaXN0OiBgTkw4MDIxMV9JRlRZUEVfU1RBVElPTmAsIGBOTDgwMjExX0lGVFlQRV9BUGAsIGFuZCBgTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVGAuCgpOb3csIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjb250ZXh0LiBXaGF0IGlzIGBhdGgxMmtgPyBBaCwgcmlnaHQsIFF1YWxjb21tJiMzOTtzIElFRUUgODAyLjExYmUgKFdpLUZpIDcpIHdpcmVsZXNzIGRyaXZlci4gVGhhdCBjbGFyaWZpZXMgdGhpbmdzLiBUaGUgZm9jdXMgaGVyZSBpcyBvbiBhIGN1dHRpbmctZWRnZSB3aXJlbGVzcyBkcml2ZXIuIFRoaXMgaXMgaW50ZXJlc3RpbmcsIGJ1dCBJIG5lZWQgdG8gcXVpY2tseSBhc3Nlc3MgdGhlIGZlYXNpYmlsaXR5IG9mIGZ1enppbmcgdGhpcy4gVGhlIGNyaXRpY2FsIHF1ZXN0aW9uIGlzIHdoZXRoZXIgSSBjYW4gcnVuIHRoaXMgd2l0aGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgbGlrZSBRRU1VIG9yIGV2ZW4gd2l0aCBgbWFjODAyMTFfaHdzaW1gLiBJZiBpdCByZXF1aXJlcyBwaHlzaWNhbCBoYXJkd2FyZSAoUENJZSwgQUhCLCBldGMuKSwgdGhhdCYjMzk7cyBhIHNpZ25pZmljYW50IGh1cmRsZS4KClRoZXJlZm9yZSwgSSBuZWVkIHRvIGNoZWNrIHRoZSBicm9hZGVyIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2AgZGlyZWN0b3J5LiBJJiMzOTtsbCBwcm9iYWJseSB1c2UgYHJlYWQtZmlsZWAgb3IgYGdyZXBwZXJgIHRvIHF1aWNrbHkgaW5zcGVjdCB0aGUgc291cmNlIGFuZCBsb29rIGZvciBjbHVlcyBhYm91dCB2aXJ0dWFsaXphdGlvbiBzdXBwb3J0IG9yIGhhcmR3YXJlIGRlcGVuZGVuY2llcy4gSG9wZWZ1bGx5LCB0aGVyZSBpcyBkb2N1bWVudGF0aW9uIG9yIHNvbWUgZm9ybSBvZiB2aXJ0dWFsIGludGVyZmFjZSB0byBhbGxvdyBmdXp6aW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI4IDAxOjQ5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O0FUSDEySyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDEzNDk1IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzoyOmNvbmZpZyBBVEgxMktcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7UXVhbGNvbW0gV2ktRmkgNyBzdXBwb3J0IChhdGgxMmspXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjE3OmNvbmZpZyBBVEgxMktfQUhCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMTgtXHRib29sIFwmIzM0O1F1YWxjb21tIGF0aDEyayBBSEIgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjE5Olx0ZGVwZW5kcyBvbiBBVEgxMksgXHUwMDI2XHUwMDI2IFJFTU9URVBST0NcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0yMC1cdHNlbGVjdCBRQ09NX01EVF9MT0FERVJcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMjQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6MjU6Y29uZmlnIEFUSDEyS19ERUJVR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTI2LVx0Ym9vbCBcJiMzNDthdGgxMmsgZGVidWdnaW5nXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6Mjc6XHRkZXBlbmRzIG9uIEFUSDEyS1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTI4LVx0aGVscFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0zNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzozNTpjb25maWcgQVRIMTJLX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0zNi1cdGJvb2wgXCYjMzQ7UXVhbGNvbW0gYXRoMTJrIGRlYnVnZnMgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjM3Olx0ZGVwZW5kcyBvbiBBVEgxMksgXHUwMDI2XHUwMDI2IE1BQzgwMjExX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0zOC1cdGhlbHBcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6NDQ6Y29uZmlnIEFUSDEyS19UUkFDSU5HXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNDUtXHRib29sIFwmIzM0O2F0aDEyayB0cmFjaW5nIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzo0NjpcdGRlcGVuZHMgb24gQVRIMTJLIFx1MDAyNlx1MDAyNiBFVkVOVF9UUkFDSU5HXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNDctXHRoZWxwXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTUyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjUzOmNvbmZpZyBBVEgxMktfQ09SRURVTVBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy01NC1cdGJvb2wgXCYjMzQ7YXRoMTJrIGNvcmVkdW1wXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6NTU6XHRkZXBlbmRzIG9uIEFUSDEyS1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTU2LVx0c2VsZWN0IFdBTlRfREVWX0NPUkVEVU1QXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZS0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZToyOm9iai0kKENPTkZJR19BVEgxMkspICYjNDM7PSBhdGgxMmsub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZS0zLWF0aDEyay15ICYjNDM7PSBjb3JlLm8gXFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlLTI0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZToyNTphdGgxMmstJChDT05GSUdfQVRIMTJLX0FIQikgJiM0Mzs9IGFoYi5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlLTI2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZToyNzpvYmotJChDT05GSUdfQVRIMTJLKSAmIzQzOz0gd2lmaTcvXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlLTI4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZToyOTphdGgxMmstJChDT05GSUdfQVRIMTJLX0RFQlVHRlMpICYjNDM7PSBkZWJ1Z2ZzLm8gZGVidWdmc19odHRfc3RhdHMubyBkZWJ1Z2ZzX3N0YS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlLTMwLWF0aDEyay0kKENPTkZJR19BQ1BJKSAmIzQzOz0gYWNwaS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlOjMxOmF0aDEyay0kKENPTkZJR19BVEgxMktfVFJBQ0lORykgJiM0Mzs9IHRyYWNlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGUtMzItYXRoMTJrLSQoQ09ORklHX1BNKSAmIzQzOz0gd293Lm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGU6MzM6YXRoMTJrLSQoQ09ORklHX0FUSDEyS19DT1JFRFVNUCkgJiM0Mzs9IGNvcmVkdW1wLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGUtMzQtYXRoMTJrLSQoQ09ORklHX05MODAyMTFfVEVTVE1PREUpICYjNDM7PSB0ZXN0bW9kZS5vXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM9MTE9c3RhdGljIGludCBhdGgxMmtfYWNwaV9kc21fZ2V0X2RhdGEoc3RydWN0IGF0aDEya19iYXNlICphYiwgaW50IGZ1bmMpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTgtXHRpZiAoIXJvb3RfaGFuZGxlKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoxOTpcdFx0YXRoMTJrX2RiZyhhYiwgQVRIMTJLX0RCR19CT09ULCBcJiMzNDtpbnZhbGlkIGFjcGkgaGFuZGxlclxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yMC1cdFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI2LVx0aWYgKCFvYmopIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjI3Olx0XHRhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX0JPT1QsIFwmIzM0O2FjcGlfZXZhbHVhdGVfZHNtKCkgZmFpbGVkXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI4LVx0XHRyZXR1cm4gLUVOT0VOVDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zMi1cdFx0c3dpdGNoIChmdW5jKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzozMzpcdFx0Y2FzZSBBVEgxMktfQUNQSV9EU01fRlVOQ19TVVBQT1JUX0ZVTkNTOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzQtXHRcdFx0YWItXHUwMDNlYWNwaS5mdW5jX2JpdCA9IG9iai1cdTAwM2VpbnRlZ2VyLnZhbHVlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzUtXHRcdFx0YnJlYWs7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzozNjpcdFx0Y2FzZSBBVEgxMktfQUNQSV9EU01fRlVOQ19ESVNBQkxFX0ZMQUc6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zNy1cdFx0XHRhYi1cdTAwM2VhY3BpLmJpdF9mbGFnID0gb2JqLVx1MDAzZWludGVnZXIudmFsdWU7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDEtXHRcdHN3aXRjaCAoZnVuYykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDI6XHRcdGNhc2UgQVRIMTJLX0FDUElfRFNNX0ZVTkNfQkRGX0VYVDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQzOlx0XHRcdGlmIChvYmotXHUwMDNlc3RyaW5nLmxlbmd0aCBcdTAwM2M9IEFUSDEyS19BQ1BJX0JERl9BTkNIT1JfU1RSSU5HX0xFTiB8fFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDQ6XHRcdFx0ICAgIG9iai1cdTAwM2VzdHJpbmcubGVuZ3RoIFx1MDAzZSBBVEgxMktfQUNQSV9CREZfTUFYX0xFTiB8fFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDU6XHRcdFx0ICAgIG1lbWNtcChvYmotXHUwMDNlc3RyaW5nLnBvaW50ZXIsIEFUSDEyS19BQ1BJX0JERl9BTkNIT1JfU1RSSU5HLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDY6XHRcdFx0XHQgICBBVEgxMktfQUNQSV9CREZfQU5DSE9SX1NUUklOR19MRU4pKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00Ny1cdFx0XHRcdGF0aDEya193YXJuKGFiLCBcJiMzNDtpbnZhbGlkIEFDUEkgRFNNIEJERiBzaXplOiAlZFxcblwmIzM0Oyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy01OS1cdFx0c3dpdGNoIChmdW5jKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo2MDpcdFx0Y2FzZSBBVEgxMktfQUNQSV9EU01fRlVOQ19TVVBQT1JUX0ZVTkNTOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NjE6XHRcdFx0aWYgKG9iai1cdTAwM2VidWZmZXIubGVuZ3RoIFx1MDAzYyBBVEgxMktfQUNQSV9EU01fRlVOQ19NSU5fQklUTUFQX1NJWkUgfHxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjYyOlx0XHRcdCAgICBvYmotXHUwMDNlYnVmZmVyLmxlbmd0aCBcdTAwM2UgQVRIMTJLX0FDUElfRFNNX0ZVTkNfTUFYX0JJVE1BUF9TSVpFKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy02My1cdFx0XHRcdGF0aDEya193YXJuKGFiLCBcJiMzNDtpbnZhbGlkIEFDUEkgRFNNIGZ1bmMgc2l6ZTogJWRcXG5cJiMzNDssXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNzMtXHRcdFx0YnJlYWs7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo3NDpcdFx0Y2FzZSBBVEgxMktfQUNQSV9EU01fRlVOQ19UQVNfQ0ZHOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NzU6XHRcdFx0aWYgKG9iai1cdTAwM2VidWZmZXIubGVuZ3RoICE9IEFUSDEyS19BQ1BJX0RTTV9UQVNfQ0ZHX1NJWkUpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTc2LVx0XHRcdFx0YXRoMTJrX3dhcm4oYWIsIFwmIzM0O2ludmFsaWQgQUNQSSBEU00gVEFTIGNvbmZpZyBzaXplOiAlZFxcblwmIzM0Oyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy04NS1cdFx0XHRicmVhaztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjg2Olx0XHRjYXNlIEFUSDEyS19BQ1BJX0RTTV9GVU5DX1RBU19EQVRBOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6ODc6XHRcdFx0aWYgKG9iai1cdTAwM2VidWZmZXIubGVuZ3RoICE9IEFUSDEyS19BQ1BJX0RTTV9UQVNfREFUQV9TSVpFKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy04OC1cdFx0XHRcdGF0aDEya193YXJuKGFiLCBcJiMzNDtpbnZhbGlkIEFDUEkgRFNNIFRBUyBkYXRhIHNpemU6ICVkXFxuXCYjMzQ7LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTk3LVx0XHRcdGJyZWFrO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6OTg6XHRcdGNhc2UgQVRIMTJLX0FDUElfRFNNX0ZVTkNfQklPU19TQVI6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo5OTpcdFx0XHRpZiAob2JqLVx1MDAzZWJ1ZmZlci5sZW5ndGggIT0gQVRIMTJLX0FDUElfRFNNX0JJT1NfU0FSX0RBVEFfU0laRSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTAwLVx0XHRcdFx0YXRoMTJrX3dhcm4oYWIsIFwmIzM0O2ludmFsaWQgQUNQSSBCSU9TIFNBUiBkYXRhIHNpemU6ICVkXFxuXCYjMzQ7LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTEwOS1cdFx0XHRicmVhaztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjExMDpcdFx0Y2FzZSBBVEgxMktfQUNQSV9EU01fRlVOQ19HRU9fT0ZGU0VUOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MTExOlx0XHRcdGlmIChvYmotXHUwMDNlYnVmZmVyLmxlbmd0aCAhPSBBVEgxMktfQUNQSV9EU01fR0VPX09GRlNFVF9EQVRBX1NJWkUpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTExMi1cdFx0XHRcdGF0aDEya193YXJuKGFiLCBcJiMzNDtpbnZhbGlkIEFDUEkgR0VPIE9GRlNFVCBkYXRhIHNpemU6ICVkXFxuXCYjMzQ7LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTEyMS1cdFx0XHRicmVhaztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjEyMjpcdFx0Y2FzZSBBVEgxMktfQUNQSV9EU01fRlVOQ19JTkRFWF9DQ0E6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoxMjM6XHRcdFx0aWYgKG9iai1cdTAwM2VidWZmZXIubGVuZ3RoICE9IEFUSDEyS19BQ1BJX0RTTV9DQ0FfREFUQV9TSVpFKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xMjQtXHRcdFx0XHRhdGgxMmtfd2FybihhYiwgXCYjMzQ7aW52YWxpZCBBQ1BJIERTTSBDQ0EgZGF0YSBzaXplOiAlZFxcblwmIzM0Oyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xMzMtXHRcdFx0YnJlYWs7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoxMzQ6XHRcdGNhc2UgQVRIMTJLX0FDUElfRFNNX0ZVTkNfSU5ERVhfQkFORF9FREdFOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MTM1Olx0XHRcdGlmIChvYmotXHUwMDNlYnVmZmVyLmxlbmd0aCAhPSBBVEgxMktfQUNQSV9EU01fQkFORF9FREdFX0RBVEFfU0laRSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTM2LVx0XHRcdFx0YXRoMTJrX3dhcm4oYWIsIFwmIzM0O2ludmFsaWQgQUNQSSBEU00gYmFuZCBlZGdlIGRhdGEgc2l6ZTogJWRcXG5cJiMzNDssXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM9MTYxPXN0YXRpYyBpbnQgYXRoMTJrX2FjcGlfc2V0X3Bvd2VyX2xpbWl0KHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTY1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MTY2Olx0aWYgKHRhc19zYXJfcG93ZXJfdGFibGVbMF0gIT0gQVRIMTJLX0FDUElfVEFTX0RBVEFfVkVSU0lPTiB8fFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MTY3Olx0ICAgIHRhc19zYXJfcG93ZXJfdGFibGVbMV0gIT0gQVRIMTJLX0FDUElfVEFTX0RBVEFfRU5BQkxFKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xNjgtXHRcdGF0aDEya193YXJuKGFiLCBcJiMzNDtsYXRlc3QgQUNQSSBUQVMgZGF0YSBpcyBpbnZhbGlkXFxuXCYjMzQ7KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xNzMtXHRcdFx0XHQgICAgICB0YXNfc2FyX3Bvd2VyX3RhYmxlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MTc0Olx0XHRcdFx0ICAgICAgQVRIMTJLX0FDUElfRFNNX1RBU19EQVRBX1NJWkUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTc1LVx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jPTE4Mz1zdGF0aWMgaW50IGF0aDEya19hY3BpX3NldF9iaW9zX3Nhcl9wb3dlcihzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTE4Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjE4NzpcdGlmIChhYi1cdTAwM2VhY3BpLmJpb3Nfc2FyX2RhdGFbMF0gIT0gQVRIMTJLX0FDUElfUE9XRVJfTElNSVRfVkVSU0lPTiB8fFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MTg4Olx0ICAgIGFiLVx1MDAzZWFjcGkuYmlvc19zYXJfZGF0YVsxXSAhPSBBVEgxMktfQUNQSV9QT1dFUl9MSU1JVF9FTkFCTEVfRkxBRykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTg5LVx0XHRhdGgxMmtfd2FybihhYiwgXCYjMzQ7aW52YWxpZCBsYXRlc3QgQUNQSSBCSU9TIFNBUiBkYXRhXFxuXCYjMzQ7KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYz0yMDI9c3RhdGljIHZvaWQgYXRoMTJrX2FjcGlfZHNtX25vdGlmeShhY3BpX2hhbmRsZSBoYW5kbGUsIHUzMiBldmVudCwgdm9pZCAqZGF0YSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yMDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoyMDc6XHRpZiAoZXZlbnQgPT0gQVRIMTJLX0FDUElfTk9USUZZX0VWRU5UKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yMDgtXHRcdGF0aDEya193YXJuKGFiLCBcJiMzNDt1bmtub3duIGFjcGkgbm90aWZ5ICV1XFxuXCYjMzQ7LCBldmVudCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjEyLVx0aWYgKCFhYi1cdTAwM2VhY3BpLmFjcGlfdGFzX2VuYWJsZSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MjEzOlx0XHRhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX0JPT1QsIFwmIzM0O2FjcGlfdGFzX2VuYWJsZSBpcyBmYWxzZVxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yMTQtXHRcdHJldHVybjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yMTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoyMTc6XHRyZXQgPSBhdGgxMmtfYWNwaV9kc21fZ2V0X2RhdGEoYWIsIEFUSDEyS19BQ1BJX0RTTV9GVU5DX1RBU19EQVRBKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTIxOC1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yMzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoyMzI6XHRyZXQgPSBhdGgxMmtfYWNwaV9kc21fZ2V0X2RhdGEoYWIsIEFUSDEyS19BQ1BJX0RTTV9GVU5DX0JJT1NfU0FSKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTIzMy1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYz0yNjQ9c3RhdGljIGludCBhdGgxMmtfYWNwaV9zZXRfdGFzX3BhcmFtcyhzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI2OS1cdFx0XHRcdCAgICAgIGFiLVx1MDAzZWFjcGkudGFzX2NmZyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjI3MDpcdFx0XHRcdCAgICAgIEFUSDEyS19BQ1BJX0RTTV9UQVNfQ0ZHX1NJWkUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjcxLVx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI3OC1cdFx0XHRcdCAgICAgIGFiLVx1MDAzZWFjcGkudGFzX3Nhcl9wb3dlcl90YWJsZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjI3OTpcdFx0XHRcdCAgICAgIEFUSDEyS19BQ1BJX0RTTV9UQVNfREFUQV9TSVpFKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI4MC1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYz0yOTk9dm9pZCBhdGgxMmtfYWNwaV9zZXRfZHNtX2Z1bmMoc3RydWN0IGF0aDEya19iYXNlICphYilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zMjQtXHRpZiAoYWItXHUwMDNlYWNwaS5hY3BpX2NjYV9lbmFibGUpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjMyNTpcdFx0YnVmID0gYWItXHUwMDNlYWNwaS5jY2FfZGF0YSAmIzQzOyBBVEgxMktfQUNQSV9DQ0FfVEhSX09GRlNFVF9EQVRBX09GRlNFVDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTMyNi1cdFx0cmV0ID0gYXRoMTJrX3dtaV9zZXRfYmlvc19jbWQoYWIsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzI4LVx0XHRcdFx0XHQgICAgICBidWYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzozMjk6XHRcdFx0XHRcdCAgICAgIEFUSDEyS19BQ1BJX0NDQV9USFJfT0ZGU0VUX0xFTik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zMzAtXHRcdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYz0zNTE9aW50IGF0aDEya19hY3BpX3N0YXJ0KHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzY4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MzY5Olx0cmV0ID0gYXRoMTJrX2FjcGlfZHNtX2dldF9kYXRhKGFiLCBBVEgxMktfQUNQSV9EU01fRlVOQ19TVVBQT1JUX0ZVTkNTKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTM3MC1cdGlmIChyZXQpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjM3MTpcdFx0YXRoMTJrX2RiZyhhYiwgQVRIMTJLX0RCR19CT09ULCBcJiMzNDtmYWlsZWQgdG8gZ2V0IEFDUEkgRFNNIGRhdGE6ICVkXFxuXCYjMzQ7LCByZXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzcyLVx0XHRyZXR1cm4gcmV0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTM3NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjM3NTpcdGlmIChBVEgxMktfQUNQSV9GVU5DX0JJVF9WQUxJRChhYi1cdTAwM2VhY3BpLCBBVEgxMktfQUNQSV9GVU5DX0JJVF9ESVNBQkxFX0ZMQUcpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzozNzY6XHRcdHJldCA9IGF0aDEya19hY3BpX2RzbV9nZXRfZGF0YShhYiwgQVRIMTJLX0FDUElfRFNNX0ZVTkNfRElTQUJMRV9GTEFHKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTM3Ny1cdFx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTM4MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjM4MjpcdFx0aWYgKEFUSDEyS19BQ1BJX0NIRUtfQklUX1ZBTElEKGFiLVx1MDAzZWFjcGksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzozODM6XHRcdFx0XHRcdCAgICAgICBBVEgxMktfQUNQSV9EU01fRElTQUJMRV8xMUJFX0JJVCkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zODQtXHRcdFx0YWItXHUwMDNlYWNwaS5hY3BpX2Rpc2FibGVfMTFiZSA9IHRydWU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zODUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzozODY6XHRcdGlmICghQVRIMTJLX0FDUElfQ0hFS19CSVRfVkFMSUQoYWItXHUwMDNlYWNwaSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjM4NzpcdFx0XHRcdFx0XHRBVEgxMktfQUNQSV9EU01fRElTQUJMRV9SRktJTExfQklUKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTM4OC1cdFx0XHRhYi1cdTAwM2VhY3BpLmFjcGlfZGlzYWJsZV9yZmtpbGwgPSB0cnVlO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTM5MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjM5MTpcdGlmIChBVEgxMktfQUNQSV9GVU5DX0JJVF9WQUxJRChhYi1cdTAwM2VhY3BpLCBBVEgxMktfQUNQSV9GVU5DX0JJVF9CREZfRVhUKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MzkyOlx0XHRyZXQgPSBhdGgxMmtfYWNwaV9kc21fZ2V0X2RhdGEoYWIsIEFUSDEyS19BQ1BJX0RTTV9GVU5DX0JERl9FWFQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzkzLVx0XHRpZiAocmV0IHx8IGFiLVx1MDAzZWFjcGkuYmRmX3N0cmluZ1swXSA9PSAmIzM5O1xcMCYjMzk7KSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDAwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDAxOlx0aWYgKEFUSDEyS19BQ1BJX0ZVTkNfQklUX1ZBTElEKGFiLVx1MDAzZWFjcGksIEFUSDEyS19BQ1BJX0ZVTkNfQklUX1RBU19DRkcpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0MDI6XHRcdHJldCA9IGF0aDEya19hY3BpX2RzbV9nZXRfZGF0YShhYiwgQVRIMTJLX0FDUElfRFNNX0ZVTkNfVEFTX0NGRyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00MDMtXHRcdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00MDgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0MDk6XHRpZiAoQVRIMTJLX0FDUElfRlVOQ19CSVRfVkFMSUQoYWItXHUwMDNlYWNwaSwgQVRIMTJLX0FDUElfRlVOQ19CSVRfVEFTX0RBVEEpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0MTA6XHRcdHJldCA9IGF0aDEya19hY3BpX2RzbV9nZXRfZGF0YShhYiwgQVRIMTJLX0FDUElfRFNNX0ZVTkNfVEFTX0RBVEEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDExLVx0XHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDE1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDE2Olx0XHRpZiAoQVRIMTJLX0FDUElfRlVOQ19CSVRfVkFMSUQoYWItXHUwMDNlYWNwaSwgQVRIMTJLX0FDUElfRlVOQ19CSVRfVEFTX0NGRykgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0MTc6XHRcdCAgICBhYi1cdTAwM2VhY3BpLnRhc19zYXJfcG93ZXJfdGFibGVbMF0gPT0gQVRIMTJLX0FDUElfVEFTX0RBVEFfVkVSU0lPTiBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQxODpcdFx0ICAgIGFiLVx1MDAzZWFjcGkudGFzX3Nhcl9wb3dlcl90YWJsZVsxXSA9PSBBVEgxMktfQUNQSV9UQVNfREFUQV9FTkFCTEUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00MTktXHRcdFx0YWItXHUwMDNlYWNwaS5hY3BpX3Rhc19lbmFibGUgPSB0cnVlO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQyMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQyMjpcdGlmIChBVEgxMktfQUNQSV9GVU5DX0JJVF9WQUxJRChhYi1cdTAwM2VhY3BpLCBBVEgxMktfQUNQSV9GVU5DX0JJVF9CSU9TX1NBUikpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQyMzpcdFx0cmV0ID0gYXRoMTJrX2FjcGlfZHNtX2dldF9kYXRhKGFiLCBBVEgxMktfQUNQSV9EU01fRlVOQ19CSU9TX1NBUik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00MjQtXHRcdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00MjktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0MzA6XHRpZiAoQVRIMTJLX0FDUElfRlVOQ19CSVRfVkFMSUQoYWItXHUwMDNlYWNwaSwgQVRIMTJLX0FDUElfRlVOQ19CSVRfR0VPX09GRlNFVCkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQzMTpcdFx0cmV0ID0gYXRoMTJrX2FjcGlfZHNtX2dldF9kYXRhKGFiLCBBVEgxMktfQUNQSV9EU01fRlVOQ19HRU9fT0ZGU0VUKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQzMi1cdFx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQzNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQzNzpcdFx0aWYgKEFUSDEyS19BQ1BJX0ZVTkNfQklUX1ZBTElEKGFiLVx1MDAzZWFjcGksIEFUSDEyS19BQ1BJX0ZVTkNfQklUX0JJT1NfU0FSKSBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQzODpcdFx0ICAgIGFiLVx1MDAzZWFjcGkuYmlvc19zYXJfZGF0YVswXSA9PSBBVEgxMktfQUNQSV9QT1dFUl9MSU1JVF9WRVJTSU9OIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDM5Olx0XHQgICAgYWItXHUwMDNlYWNwaS5iaW9zX3Nhcl9kYXRhWzFdID09IEFUSDEyS19BQ1BJX1BPV0VSX0xJTUlUX0VOQUJMRV9GTEFHIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDQwLVx0XHQgICAgIWFiLVx1MDAzZWFjcGkuYWNwaV90YXNfZW5hYmxlKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQ0My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQ0NDpcdGlmIChBVEgxMktfQUNQSV9GVU5DX0JJVF9WQUxJRChhYi1cdTAwM2VhY3BpLCBBVEgxMktfQUNQSV9GVU5DX0JJVF9DQ0EpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0NDU6XHRcdHJldCA9IGF0aDEya19hY3BpX2RzbV9nZXRfZGF0YShhYiwgQVRIMTJLX0FDUElfRFNNX0ZVTkNfSU5ERVhfQ0NBKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQ0Ni1cdFx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQ1MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQ1MjpcdFx0aWYgKGFiLVx1MDAzZWFjcGkuY2NhX2RhdGFbMF0gPT0gQVRIMTJLX0FDUElfQ0NBX1RIUl9WRVJTSU9OIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDUzOlx0XHQgICAgYWItXHUwMDNlYWNwaS5jY2FfZGF0YVtBVEgxMktfQUNQSV9DQ0FfVEhSX09GRlNFVF9EQVRBX09GRlNFVF0gPT1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQ1NDpcdFx0ICAgIEFUSDEyS19BQ1BJX0NDQV9USFJfRU5BQkxFX0ZMQUcpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00NTUtXHRcdFx0YWItXHUwMDNlYWNwaS5hY3BpX2NjYV9lbmFibGUgPSB0cnVlO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQ1Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQ1ODpcdGlmIChBVEgxMktfQUNQSV9GVU5DX0JJVF9WQUxJRChhYi1cdTAwM2VhY3BpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDU5Olx0XHRcdFx0ICAgICAgIEFUSDEyS19BQ1BJX0ZVTkNfQklUX0JBTkRfRURHRV9DSEFOX1BPV0VSKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDYwOlx0XHRyZXQgPSBhdGgxMmtfYWNwaV9kc21fZ2V0X2RhdGEoYWIsIEFUSDEyS19BQ1BJX0RTTV9GVU5DX0lOREVYX0JBTkRfRURHRSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00NjEtXHRcdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00NjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0Njc6XHRcdGlmIChhYi1cdTAwM2VhY3BpLmJhbmRfZWRnZV9wb3dlclswXSA9PSBBVEgxMktfQUNQSV9CQU5EX0VER0VfVkVSU0lPTiBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQ2ODpcdFx0ICAgIGFiLVx1MDAzZWFjcGkuYmFuZF9lZGdlX3Bvd2VyWzFdID09IEFUSDEyS19BQ1BJX0JBTkRfRURHRV9FTkFCTEVfRkxBRylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQ2OS1cdFx0XHRhYi1cdTAwM2VhY3BpLmFjcGlfYmFuZF9lZGdlX2VuYWJsZSA9IHRydWU7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM9NDg1PWludCBhdGgxMmtfYWNwaV9jaGVja19iZGZfdmFyaWFudF9uYW1lKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDkyLVx0aWYgKHN0cnNjcHkoYWItXHUwMDNlcW1pLnRhcmdldC5iZGZfZXh0LCBhYi1cdTAwM2VhY3BpLmJkZl9zdHJpbmcgJiM0MzsgNCwgbWF4X2xlbikgXHUwMDNjIDApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0OTM6XHRcdGF0aDEya19kYmcoYWIsIEFUSDEyS19EQkdfQk9PVCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQ5NC1cdFx0XHQgICBcJiMzNDthY3BpIGJkZiB2YXJpYW50IGxvbmdlciB0aGFuIHRoZSBidWZmZXIgKHZhcmlhbnQ6ICVzKVxcblwmIzM0Oyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaC01LSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6NjojaWZuZGVmIEFUSDEyS19BQ1BJX0hcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjc6I2RlZmluZSBBVEgxMktfQUNQSV9IXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaC04LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oLTEwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6MTE6I2RlZmluZSBBVEgxMktfQUNQSV9EU01fRlVOQ19TVVBQT1JUX0ZVTkNTXHQwXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDoxMjojZGVmaW5lIEFUSDEyS19BQ1BJX0RTTV9GVU5DX0RJU0FCTEVfRkxBR1x0MlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6MTM6I2RlZmluZSBBVEgxMktfQUNQSV9EU01fRlVOQ19CREZfRVhUXHRcdDNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjE0OiNkZWZpbmUgQVRIMTJLX0FDUElfRFNNX0ZVTkNfQklPU19TQVJcdFx0NFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6MTU6I2RlZmluZSBBVEgxMktfQUNQSV9EU01fRlVOQ19HRU9fT0ZGU0VUXHRcdDVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjE2OiNkZWZpbmUgQVRIMTJLX0FDUElfRFNNX0ZVTkNfSU5ERVhfQ0NBXHRcdDZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjE3OiNkZWZpbmUgQVRIMTJLX0FDUElfRFNNX0ZVTkNfVEFTX0NGR1x0XHQ4XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDoxODojZGVmaW5lIEFUSDEyS19BQ1BJX0RTTV9GVU5DX1RBU19EQVRBXHRcdDlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjE5OiNkZWZpbmUgQVRIMTJLX0FDUElfRFNNX0ZVTkNfSU5ERVhfQkFORF9FREdFXHRcdDEwXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaC0yMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjIxOiNkZWZpbmUgQVRIMTJLX0FDUElfRlVOQ19CSVRfRElTQUJMRV9GTEFHXHRcdEJJVCgxKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6MjI6I2RlZmluZSBBVEgxMktfQUNQSV9GVU5DX0JJVF9CREZfRVhUXHRcdFx0QklUKDIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDoyMzojZGVmaW5lIEFUSDEyS19BQ1BJX0ZVTkNfQklUX0JJT1NfU0FSXHRcdFx0QklUKDMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDoyNDojZGVmaW5lIEFUSDEyS19BQ1BJX0ZVTkNfQklUX0dFT19PRkZTRVRcdFx0XHRCSVQoNClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjI1OiNkZWZpbmUgQVRIMTJLX0FDUElfRlVOQ19CSVRfQ0NBXHRcdFx0QklUKDUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDoyNjojZGVmaW5lIEFUSDEyS19BQ1BJX0ZVTkNfQklUX1RBU19DRkdcdFx0XHRCSVQoNylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjI3OiNkZWZpbmUgQVRIMTJLX0FDUElfRlVOQ19CSVRfVEFTX0RBVEFcdFx0XHRCSVQoOClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjI4OiNkZWZpbmUgQVRIMTJLX0FDUElfRlVOQ19CSVRfQkFORF9FREdFX0NIQU5fUE9XRVJcdEJJVCg5KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmgtMjktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDozMDojZGVmaW5lIEFUSDEyS19BQ1BJX05PVElGWV9FVkVOVFx0XHRcdDB4ODZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjMxOiNkZWZpbmUgQVRIMTJLX0FDUElfRlVOQ19CSVRfVkFMSUQoX2FjZGF0YSwgX2Z1bmMpXHQoKChfYWNkYXRhKS5mdW5jX2JpdCkgXHUwMDI2IChfZnVuYykpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDozMjojZGVmaW5lIEFUSDEyS19BQ1BJX0NIRUtfQklUX1ZBTElEKF9hY2RhdGEsIF9mdW5jKVx0KCgoX2FjZGF0YSkuYml0X2ZsYWcpIFx1MDAyNiAoX2Z1bmMpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmgtMzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDozNDojZGVmaW5lIEFUSDEyS19BQ1BJX1RBU19EQVRBX1ZFUlNJT05cdFx0MHgxXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDozNTojZGVmaW5lIEFUSDEyS19BQ1BJX1RBU19EQVRBX0VOQUJMRVx0XHQweDFcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjM2OiNkZWZpbmUgQVRIMTJLX0FDUElfUE9XRVJfTElNSVRfVkVSU0lPTlx0XHQweDFcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjM3OiNkZWZpbmUgQVRIMTJLX0FDUElfUE9XRVJfTElNSVRfRU5BQkxFX0ZMQUdcdDB4MVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6Mzg6I2RlZmluZSBBVEgxMktfQUNQSV9DQ0FfVEhSX1ZFUlNJT05cdFx0MHgxXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDozOTojZGVmaW5lIEFUSDEyS19BQ1BJX0NDQV9USFJfRU5BQkxFX0ZMQUdcdFx0MHgxXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDo0MDojZGVmaW5lIEFUSDEyS19BQ1BJX0JBTkRfRURHRV9WRVJTSU9OXHRcdDB4MVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6NDE6I2RlZmluZSBBVEgxMktfQUNQSV9CQU5EX0VER0VfRU5BQkxFX0ZMQUdcdDB4MVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmgtNDItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDo0MzojZGVmaW5lIEFUSDEyS19BQ1BJX0dFT19PRkZTRVRfREFUQV9PRkZTRVRcdDFcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjQ0OiNkZWZpbmUgQVRIMTJLX0FDUElfREJTX0JBQ0tPRkZfREFUQV9PRkZTRVRcdDJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjQ1OiNkZWZpbmUgQVRIMTJLX0FDUElfQ0NBX1RIUl9PRkZTRVRfREFUQV9PRkZTRVRcdDVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjQ2OiNkZWZpbmUgQVRIMTJLX0FDUElfQklPU19TQVJfREJTX0JBQ0tPRkZfTEVOXHQxMFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6NDc6I2RlZmluZSBBVEgxMktfQUNQSV9QT1dFUl9MSU1JVF9EQVRBX09GRlNFVFx0MTJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjQ4OiNkZWZpbmUgQVRIMTJLX0FDUElfQklPU19TQVJfR0VPX09GRlNFVF9MRU5cdDE4XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDo0OTojZGVmaW5lIEFUSDEyS19BQ1BJX0JJT1NfU0FSX1RBQkxFX0xFTlx0XHQyMlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6NTA6I2RlZmluZSBBVEgxMktfQUNQSV9DQ0FfVEhSX09GRlNFVF9MRU5cdFx0MzZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oLTUxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6NTI6I2RlZmluZSBBVEgxMktfQUNQSV9EU01fVEFTX0RBVEFfU0laRVx0XHRcdDY5XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDo1MzojZGVmaW5lIEFUSDEyS19BQ1BJX0RTTV9CQU5EX0VER0VfREFUQV9TSVpFXHRcdDEwMFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6NTQ6I2RlZmluZSBBVEgxMktfQUNQSV9EU01fVEFTX0NGR19TSVpFXHRcdFx0MTA4XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaC01NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjU2OiNkZWZpbmUgQVRIMTJLX0FDUElfRFNNX0ZVTkNfTUlOX0JJVE1BUF9TSVpFXHQxXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDo1NzojZGVmaW5lIEFUSDEyS19BQ1BJX0RTTV9GVU5DX01BWF9CSVRNQVBfU0laRVx0NFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmgtNTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDo1OTojZGVmaW5lIEFUSDEyS19BQ1BJX0RTTV9ESVNBQkxFXzExQkVfQklUXHRCSVQoMClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjYwOiNkZWZpbmUgQVRIMTJLX0FDUElfRFNNX0RJU0FCTEVfUkZLSUxMX0JJVFx0QklUKDIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaC02MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjYyOiNkZWZpbmUgQVRIMTJLX0FDUElfQkRGX0FOQ0hPUl9TVFJJTkdfTEVOXHQzXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDo2MzojZGVmaW5lIEFUSDEyS19BQ1BJX0JERl9BTkNIT1JfU1RSSU5HXHRcdFwmIzM0O0JERlwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6NjQ6I2RlZmluZSBBVEgxMktfQUNQSV9CREZfTUFYX0xFTlx0XHRcdDEwMFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmgtNjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDo2NjojZGVmaW5lIEFUSDEyS19BQ1BJX0RTTV9HRU9fT0ZGU0VUX0RBVEFfU0laRSAoQVRIMTJLX0FDUElfR0VPX09GRlNFVF9EQVRBX09GRlNFVCAmIzQzOyBcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6Njc6XHRcdFx0XHRcdCAgICAgIEFUSDEyS19BQ1BJX0JJT1NfU0FSX0dFT19PRkZTRVRfTEVOKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6Njg6I2RlZmluZSBBVEgxMktfQUNQSV9EU01fQklPU19TQVJfREFUQV9TSVpFIChBVEgxMktfQUNQSV9QT1dFUl9MSU1JVF9EQVRBX09GRlNFVCAmIzQzOyBcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6Njk6XHRcdFx0XHRcdCAgICBBVEgxMktfQUNQSV9CSU9TX1NBUl9UQUJMRV9MRU4pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDo3MDojZGVmaW5lIEFUSDEyS19BQ1BJX0RTTV9DQ0FfREFUQV9TSVpFIChBVEgxMktfQUNQSV9DQ0FfVEhSX09GRlNFVF9EQVRBX09GRlNFVCAmIzQzOyBcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6NzE6XHRcdFx0XHQgICAgICAgQVRIMTJLX0FDUElfQ0NBX1RIUl9PRkZTRVRfTEVOKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmgtNzItXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg9MTA3PXN0YXRpYyBpbmxpbmUgaW50IGF0aDEya19hY3BpX2NoZWNrX2JkZl92YXJpYW50X25hbWUoc3RydWN0IGF0aDEya19iYXNlICphYilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaC0xMTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDoxMTQ6I2VuZGlmIC8qIEFUSDEyS19BQ1BJX0ggKi9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTE5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzoyMDojZGVmaW5lIEFUSDEyS19JUlFfQ0UwX09GRlNFVCA0XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjIxOiNkZWZpbmUgQVRIMTJLX1VQRF9JUlFfV1JEX0xFTiAgMThcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjIzOnN0YXRpYyBzdHJ1Y3QgYXRoMTJrX2FoYl9kcml2ZXIgKmF0aDEya19haGJfZmFtaWx5X2RyaXZlcnNbQVRIMTJLX0RFVklDRV9GQU1JTFlfTUFYXTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjQtc3RhdGljIGNvbnN0IGNoYXIgYXRoMTJrX3VzZXJwZF9pcnFbXVs5XSA9IHtcJiMzNDtzcGF3blwmIzM0Oyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jPTQyPXN0YXRpYyBERUZJTkVfTVVURVgoYXRoMTJrX3Jwcm9jX2luZm9fbG9jayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTQzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzo0NDpzdGF0aWMgY29uc3QgY2hhciAqaXJxX25hbWVbQVRIMTJLX0lSUV9OVU1fTUFYXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNDUtXHRcJiMzNDttaXNjLXB1bHNlMVwmIzM0Oyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jPTE3OD1zdGF0aWMgdm9pZCBfX2F0aDEya19haGJfZXh0X2lycV9kaXNhYmxlKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0xODEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjE4MjpcdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFUSDEyS19FWFRfSVJRX0dSUF9OVU1fTUFYOyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0xODMtXHRcdHN0cnVjdCBhdGgxMmtfZXh0X2lycV9ncnAgKmlycV9ncnAgPSBcdTAwMjZhYi1cdTAwM2VleHRfaXJxX2dycFtpXTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jPTI2MD1zdGF0aWMgdm9pZCBhdGgxMmtfYWhiX3N5bmNfY2VfaXJxcyhzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjY4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzoyNjk6XHRcdGlycV9pZHggPSBBVEgxMktfSVJRX0NFMF9PRkZTRVQgJiM0MzsgaTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjcwLVx0XHRzeW5jaHJvbml6ZV9pcnEoYWItXHUwMDNlaXJxX251bVtpcnFfaWR4XSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYz0yNzQ9c3RhdGljIHZvaWQgYXRoMTJrX2FoYl9zeW5jX2V4dF9pcnFzKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0yNzgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjI3OTpcdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFUSDEyS19FWFRfSVJRX0dSUF9OVU1fTUFYOyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0yODAtXHRcdHN0cnVjdCBhdGgxMmtfZXh0X2lycV9ncnAgKmlycV9ncnAgPSBcdTAwMjZhYi1cdTAwM2VleHRfaXJxX2dycFtpXTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jPTMxOT1zdGF0aWMgdm9pZCBhdGgxMmtfYWhiX2V4dF9pcnFfZW5hYmxlKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0zMjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjMyNDpcdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFUSDEyS19FWFRfSVJRX0dSUF9OVU1fTUFYOyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0zMjUtXHRcdGlycV9ncnAgPSBcdTAwMjZhYi1cdTAwM2VleHRfaXJxX2dycFtpXTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jPTM0MD1zdGF0aWMgdm9pZCBhdGgxMmtfYWhiX3N0b3Aoc3RydWN0IGF0aDEya19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMzQxLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MzQyOlx0aWYgKCF0ZXN0X2JpdChBVEgxMktfRkxBR19DUkFTSF9GTFVTSCwgXHUwMDI2YWItXHUwMDNlZGV2X2ZsYWdzKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMzQzLVx0XHRhdGgxMmtfYWhiX2NlX2lycXNfZGlzYWJsZShhYik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYz0zNTA9c3RhdGljIGludCBhdGgxMmtfYWhiX3Bvd2VyX3VwKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0zNTItXHRzdHJ1Y3QgYXRoMTJrX2FoYiAqYWJfYWhiID0gYXRoMTJrX2FiX3RvX2FoYihhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjM1MzpcdGNoYXIgZndfbmFtZVtBVEgxMktfVVNFUlBEX0ZXX05BTUVfTEVOXTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MzU0Olx0Y2hhciBmdzJfbmFtZVtBVEgxMktfVVNFUlBEX0ZXX05BTUVfTEVOXTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMzU1LVx0c3RydWN0IGRldmljZSAqZGV2ID0gYWItXHUwMDNlZGV2O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMzc4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzozNzk6XHRzbnByaW50Zihmd19uYW1lLCBzaXplb2YoZndfbmFtZSksIFwmIzM0OyVzLyVzLyVzJWQlc1wmIzM0OywgQVRIMTJLX0ZXX0RJUixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MzgwOlx0XHQgYWItXHUwMDNlaHdfcGFyYW1zLVx1MDAzZWZ3LmRpciwgQVRIMTJLX0FIQl9GV19QUkVGSVgsIGFiX2FoYi1cdTAwM2V1c2VycGRfaWQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjM4MTpcdFx0IEFUSDEyS19BSEJfRldfU1VGRklYKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMzgyLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMzg4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzozODk6XHRhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX0FIQiwgXCYjMzQ7Qm9vdGluZyBmdyBpbWFnZSAlcywgc2l6ZSAlemRcXG5cJiMzNDssIGZ3X25hbWUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTM5MC1cdFx0ICAgZnctXHUwMDNlc2l6ZSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0zOTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjM5ODpcdHBhc2lkID0gKHUzMl9lbmNvZGVfYml0cyhhYl9haGItXHUwMDNldXNlcnBkX2lkLCBBVEgxMktfVVNFUlBEX0lEX01BU0spKSB8XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjM5OTpcdFx0QVRIMTJLX0FIQl9VUERfU1dJRDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNDAwLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNDEyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzo0MTM6XHRzbnByaW50ZihmdzJfbmFtZSwgc2l6ZW9mKGZ3Ml9uYW1lKSwgXCYjMzQ7JXMvJXMvJXNcJiMzNDssIEFUSDEyS19GV19ESVIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjQxNDpcdFx0IGFiLVx1MDAzZWh3X3BhcmFtcy1cdTAwM2Vmdy5kaXIsIEFUSDEyS19BSEJfRlcyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNDE1LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNDIxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzo0MjI6XHRhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX0FIQiwgXCYjMzQ7Qm9vdGluZyBmdyBpbWFnZSAlcywgc2l6ZSAlemRcXG5cJiMzNDssIGZ3Ml9uYW1lLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy00MjMtXHRcdCAgIGZ3Mi1cdTAwM2VzaXplKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTQ1NS1cdHRpbWVfbGVmdCA9IHdhaXRfZm9yX2NvbXBsZXRpb25fdGltZW91dChcdTAwMjZhYl9haGItXHUwMDNldXNlcnBkX3NwYXduZWQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjQ1NjpcdFx0XHRcdFx0XHRBVEgxMktfVVNFUlBEX1NQQVdOX1RJTUVPVVQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy00NTctXHRpZiAoIXRpbWVfbGVmdCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNDYzLVx0dGltZV9sZWZ0ID0gd2FpdF9mb3JfY29tcGxldGlvbl90aW1lb3V0KFx1MDAyNmFiX2FoYi1cdTAwM2V1c2VycGRfcmVhZHksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjQ2NDpcdFx0XHRcdFx0XHRBVEgxMktfVVNFUlBEX1JFQURZX1RJTUVPVVQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy00NjUtXHRpZiAoIXRpbWVfbGVmdCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNDcyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzo0NzM6XHRhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX0FIQiwgXCYjMzQ7VXNlclBEJWQgaXMgbm93IFVQXFxuXCYjMzQ7LCBhYl9haGItXHUwMDNldXNlcnBkX2lkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNDc0LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM9NDgyPXN0YXRpYyB2b2lkIGF0aDEya19haGJfcG93ZXJfZG93bihzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiLCBib29sIGlzX3N1c3BlbmQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy00OTItXHR0aW1lX2xlZnQgPSB3YWl0X2Zvcl9jb21wbGV0aW9uX3RpbWVvdXQoXHUwMDI2YWJfYWhiLVx1MDAzZXVzZXJwZF9zdG9wcGVkLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzo0OTM6XHRcdFx0XHRcdFx0QVRIMTJLX1VTRVJQRF9TVE9QX1RJTUVPVVQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy00OTQtXHRpZiAoIXRpbWVfbGVmdCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNTAxLVx0aWYgKGFiX2FoYi1cdTAwM2VzY21fYXV0aF9lbmFibGVkKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjUwMjpcdFx0cGFzaWQgPSAodTMyX2VuY29kZV9iaXRzKGFiX2FoYi1cdTAwM2V1c2VycGRfaWQsIEFUSDEyS19VU0VSUERfSURfTUFTSykpIHxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6NTAzOlx0XHRcdCBBVEgxMktfQUhCX1VQRF9TV0lEO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy01MDQtXHRcdC8qIFJlbGVhc2UgdGhlIGZpcm13YXJlICovXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYz01ODE9c3RhdGljIGludCBhdGgxMmtfYWhiX2NvbmZpZ19leHRfaXJxKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy01ODgtXHRyaW5nX21hc2sgPSBhYi1cdTAwM2Vod19wYXJhbXMtXHUwMDNlcmluZ19tYXNrO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzo1ODk6XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBVEgxMktfRVhUX0lSUV9HUlBfTlVNX01BWDsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNTkwLVx0XHRpcnFfZ3JwID0gXHUwMDI2YWItXHUwMDNlZXh0X2lycV9ncnBbaV07XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy02MDUtXHRcdFx0ICAgIEJJVChhYi1cdTAwM2VoYWwudGNsX3RvX3dibV9yYm1fbWFwW2pdLndibV9yaW5nX251bSkgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjYwNjpcdFx0XHQgICAgbnVtX2lycSBcdTAwM2MgQVRIMTJLX0VYVF9JUlFfTlVNX01BWCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy02MDctXHRcdFx0XHRpcnFfZ3JwLVx1MDAzZWlycXNbbnVtX2lycSYjNDM7JiM0MztdID1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTYxMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6NjEyOlx0XHRmb3IgKGogPSAwOyBqIFx1MDAzYyBBVEgxMktfRVhUX0lSUV9OVU1fTUFYOyBqJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy02MTMtXHRcdFx0aWYgKHJpbmdfbWFzay1cdTAwM2VyeFtpXSBcdTAwMjYgQklUKGopIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzo2MTQ6XHRcdFx0ICAgIG51bV9pcnEgXHUwMDNjIEFUSDEyS19FWFRfSVJRX05VTV9NQVgpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNjE1LVx0XHRcdFx0aXJxX2dycC1cdTAwM2VpcnFzW251bV9pcnEmIzQzOyYjNDM7XSA9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy02MTktXHRcdFx0aWYgKHJpbmdfbWFzay1cdTAwM2VyeF9lcnJbaV0gXHUwMDI2IEJJVChqKSBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6NjIwOlx0XHRcdCAgICBudW1faXJxIFx1MDAzYyBBVEgxMktfRVhUX0lSUV9OVU1fTUFYKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy02MjEtXHRcdFx0XHRpcnFfZ3JwLVx1MDAzZWlycXNbbnVtX2lycSYjNDM7JiM0MztdID0gcmVvMmhvc3RfZXhjZXB0aW9uO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNjIzLVx0XHRcdGlmIChyaW5nX21hc2stXHUwMDNlcnhfd2JtX3JlbFtpXSBcdTAwMjYgQklUKGopIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzo2MjQ6XHRcdFx0ICAgIG51bV9pcnEgXHUwMDNjIEFUSDEyS19FWFRfSVJRX05VTV9NQVgpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTYyNS1cdFx0XHRcdGlycV9ncnAtXHUwMDNlaXJxc1tudW1faXJxJiM0MzsmIzQzO10gPSB3Ym0yaG9zdF9yeF9yZWxlYXNlO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNjI3LVx0XHRcdGlmIChyaW5nX21hc2stXHUwMDNlcmVvX3N0YXR1c1tpXSBcdTAwMjYgQklUKGopIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzo2Mjg6XHRcdFx0ICAgIG51bV9pcnEgXHUwMDNjIEFUSDEyS19FWFRfSVJRX05VTV9NQVgpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTYyOS1cdFx0XHRcdGlycV9ncnAtXHUwMDNlaXJxc1tudW1faXJxJiM0MzsmIzQzO10gPSByZW8yaG9zdF9zdGF0dXM7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy02MzEtXHRcdFx0aWYgKHJpbmdfbWFzay1cdTAwM2VyeF9tb25fZGVzdFtpXSBcdTAwMjYgQklUKGopIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzo2MzI6XHRcdFx0ICAgIG51bV9pcnEgXHUwMDNjIEFUSDEyS19FWFRfSVJRX05VTV9NQVgpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTYzMy1cdFx0XHRcdGlycV9ncnAtXHUwMDNlaXJxc1tudW1faXJxJiM0MzsmIzQzO10gPVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM9NjU4PXN0YXRpYyBpbnQgYXRoMTJrX2FoYl9jb25maWdfaXJxKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy02NjktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjY3MDpcdFx0aXJxX2lkeCA9IEFUSDEyS19JUlFfQ0UwX09GRlNFVCAmIzQzOyBpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy02NzEtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYz03MzY9c3RhdGljIGlycXJldHVybl90IGF0aDEya191c2VycGRfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqZGF0YSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTc0MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6NzQxOlx0aWYgKGlycSA9PSBhYl9haGItXHUwMDNldXNlcnBkX2lycV9udW1bQVRIMTJLX1VTRVJQRF9TUEFXTl9JUlFdKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTc0Mi1cdFx0Y29tcGxldGUoXHUwMDI2YWJfYWhiLVx1MDAzZXVzZXJwZF9zcGF3bmVkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6NzQzOlx0fSBlbHNlIGlmIChpcnEgPT0gYWJfYWhiLVx1MDAzZXVzZXJwZF9pcnFfbnVtW0FUSDEyS19VU0VSUERfUkVBRFlfSVJRXSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy03NDQtXHRcdGNvbXBsZXRlKFx1MDAyNmFiX2FoYi1cdTAwM2V1c2VycGRfcmVhZHkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzo3NDU6XHR9IGVsc2UgaWYgKGlycSA9PSBhYl9haGItXHUwMDNldXNlcnBkX2lycV9udW1bQVRIMTJLX1VTRVJQRF9TVE9QX0FDS19JUlFdKVx0e1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy03NDYtXHRcdGNvbXBsZXRlKFx1MDAyNmFiX2FoYi1cdTAwM2V1c2VycGRfc3RvcHBlZCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYz03NTU9c3RhdGljIGludCBhdGgxMmtfYWhiX2NvbmZpZ19ycHJvY19pcnEoc3RydWN0IGF0aDEya19iYXNlICphYilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTc2MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6NzYxOlx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVRIMTJLX1VTRVJQRF9NQVhfSVJROyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy03NjItXHRcdGFiX2FoYi1cdTAwM2V1c2VycGRfaXJxX251bVtpXSA9IHBsYXRmb3JtX2dldF9pcnFfYnluYW1lKGFiLVx1MDAzZXBkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy03NjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjc2NzpcdFx0dXBkX2lycV9uYW1lID0gZGV2bV9remFsbG9jKFx1MDAyNmFiLVx1MDAzZXBkZXYtXHUwMDNlZGV2LCBBVEgxMktfVVBEX0lSUV9XUkRfTEVOLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy03NjgtXHRcdFx0XHRcdCAgICBHRlBfS0VSTkVMKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTc3MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6NzcyOlx0XHRzY25wcmludGYodXBkX2lycV9uYW1lLCBBVEgxMktfVVBEX0lSUV9XUkRfTEVOLCBcJiMzNDtVc2VyUEQldS0lc1wmIzM0OyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNzczLVx0XHRcdCAgYWJfYWhiLVx1MDAzZXVzZXJwZF9pZCwgYXRoMTJrX3VzZXJwZF9pcnFbaV0pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM9ODAyPXN0YXRpYyBpbnQgYXRoMTJrX2FoYl9yb290X3BkX3N0YXRlX25vdGlmaWVyKHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy04MDctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjgwODpcdGlmIChldmVudCA9PSBBVEgxMktfUlBST0NfQUZURVJfUE9XRVJVUCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzo4MDk6XHRcdGF0aDEya19nZW5lcmljX2RiZyhBVEgxMktfREJHX0FIQiwgXCYjMzQ7Um9vdCBQRCBpcyBVUFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTgxMC1cdFx0Y29tcGxldGUoXHUwMDI2cnByb2NfaW5mby1cdTAwM2Vyb290cGRfcmVhZHkpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM9ODg2PXN0YXRpYyBpbnQgYXRoMTJrX2FoYl9nZXRfcnByb2Moc3RydWN0IGF0aDEya19iYXNlICphYilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTg5NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6ODk2Olx0aWYgKGFiX2FoYi1cdTAwM2V1c2VycGRfaWQgXHUwMDNlIEFUSDEyS19NQVhfREVWSUNFUylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtODk3LVx0XHRyZXR1cm4gLUVOT1NQQztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTg5OS1cdGlmIChnX3Jwcm9jX2luZm8pIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6OTAwOlx0XHRpZiAoZ19ycHJvY19pbmZvLVx1MDAzZW51bV91c2VycGQgXHUwMDNlPSBBVEgxMktfTUFYX0RFVklDRVMpIHtcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI4IDAxOjQ5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE4OTY3CgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogMzMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0czoKCioqSW52ZXN0aWdhdGluZyBhdGgxMmsgQnVzIFN1cHBvcnQqKgoKT2theSwgc28gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hhdCBidXNlcyB0aGUgYXRoMTJrIGRyaXZlciBhY3R1YWxseSBzdXBwb3J0cy4gVGhhdCYjMzk7cyB0aGUgbG9naWNhbCBzdGFydGluZyBwb2ludCwgcmlnaHQ/IFRvIGdldCBhIGhhbmRsZSBvbiB0aGUgb3ZlcmFsbCBhcmNoaXRlY3R1cmUgYW5kIGhvdyBpdCYjMzk7cyBpbnRlcmZhY2luZyB3aXRoIGRpZmZlcmVudCBoYXJkd2FyZSwgSSBuZWVkIHRvIGtub3cgd2hlcmUgaXQgY2FuIHBsdWcgaW4uIExldCYjMzk7cyBkaXZlIHN0cmFpZ2h0IGludG8gdGhlIGNvZGUuIFRoZSBvYnZpb3VzIHBsYWNlIHRvIGJlZ2luIGlzIHRoZSBgS2NvbmZpZ2AgZmlsZSB3aXRoaW4gdGhlIGF0aDEyayBkaXJlY3Rvcnkg4oCTIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWdgLiBUaGF0JiMzOTtzIHdoZXJlIGFsbCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSBkZWNsYXJlZCwgYW5kIHRoYXQgc2hvdWxkIGRlZmluaXRlbHkgaW5jbHVkZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc3VwcG9ydGVkIGJ1cyB0eXBlcy4gSSYjMzk7bGwgZ2V0IHRoYXQgZmlsZSBvcGVuIGFuZCBzdGFydCBsb29raW5nIGZvciB0aGUgcGVydGluZW50IGNvbmZpZ3VyYXRpb25zLiBUaW1lIHRvIGRpZyBpbiBhbmQgc2VlIHdoYXQgYEtjb25maWdgIHJldmVhbHMhCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjggMDE6NDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDYwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcbiAgIDI6XHRjb25maWcgQVRIMTJLXG4gICAzOlx0XHR0cmlzdGF0ZSBcJiMzNDtRdWFsY29tbSBXaS1GaSA3IHN1cHBvcnQgKGF0aDEyaylcJiMzNDtcbiAgIDQ6XHRcdGRlcGVuZHMgb24gTUFDODAyMTEgXHUwMDI2XHUwMDI2IEhBU19ETUEgXHUwMDI2XHUwMDI2IFBDSVxuICAgNTpcdFx0c2VsZWN0IFFDT01fUU1JX0hFTFBFUlNcbiAgIDY6XHRcdHNlbGVjdCBNSElfQlVTXG4gICA3Olx0XHRzZWxlY3QgUVJUUlxuICAgODpcdFx0c2VsZWN0IFFSVFJfTUhJXG4gICA5Olx0XHRzZWxlY3QgUENJX1BXUkNUUkxfUFdSU0VRIGlmIEhBVkVfUFdSQ1RSTFxuICAxMDpcdFx0aGVscFxuICAxMTpcdFx0ICBFbmFibGUgc3VwcG9ydCBmb3IgUXVhbGNvbW0gVGVjaG5vbG9naWVzIFdpLUZpIDcgKElFRUVcbiAgMTI6XHRcdCAgODAyLjExYmUpIGZhbWlseSBvZiBjaGlwc2V0cywgZm9yIGV4YW1wbGUgV0NONzg1MCBhbmRcbiAgMTM6XHRcdCAgUUNOOTI3NC5cbiAgMTQ6XHRcbiAgMTU6XHRcdCAgSWYgeW91IGNob29zZSB0byBidWlsZCBhIG1vZHVsZSwgaXQmIzM5O2xsIGJlIGNhbGxlZCBhdGgxMmsuXG4gIDE2Olx0XG4gIDE3Olx0Y29uZmlnIEFUSDEyS19BSEJcbiAgMTg6XHRcdGJvb2wgXCYjMzQ7UXVhbGNvbW0gYXRoMTJrIEFIQiBzdXBwb3J0XCYjMzQ7XG4gIDE5Olx0XHRkZXBlbmRzIG9uIEFUSDEySyBcdTAwMjZcdTAwMjYgUkVNT1RFUFJPQ1xuICAyMDpcdFx0c2VsZWN0IFFDT01fTURUX0xPQURFUlxuICAyMTpcdFx0c2VsZWN0IFFDT01fUEFTXG4gIDIyOlx0XHRoZWxwXG4gIDIzOlx0XHQgIEVuYWJsZSBzdXBwb3J0IGZvciBBdGgxMmsgQUhCIGJ1cyBjaGlwc2V0cywgZXhhbXBsZSBJUFE1MzMyLlxuICAyNDpcdFxuICAyNTpcdGNvbmZpZyBBVEgxMktfREVCVUdcbiAgMjY6XHRcdGJvb2wgXCYjMzQ7YXRoMTJrIGRlYnVnZ2luZ1wmIzM0O1xuICAyNzpcdFx0ZGVwZW5kcyBvbiBBVEgxMktcbiAgMjg6XHRcdGhlbHBcbiAgMjk6XHRcdCAgRW5hYmxlIGRlYnVnIHN1cHBvcnQsIGZvciBleGFtcGxlIGRlYnVnIG1lc3NhZ2VzIHdoaWNoIG11c3RcbiAgMzA6XHRcdCAgYmUgZW5hYmxlZCBzZXBhcmF0ZWx5IHVzaW5nIHRoZSBkZWJ1Z19tYXNrIG1vZHVsZSBwYXJhbWV0ZXIuXG4gIDMxOlx0XG4gIDMyOlx0XHQgIElmIHVuc3VyZSwgc2F5IFkgdG8gbWFrZSBpdCBlYXNpZXIgdG8gZGVidWcgcHJvYmxlbXMuIEJ1dCBpZlxuICAzMzpcdFx0ICB5b3Ugd2FudCBvcHRpbWFsIHBlcmZvcm1hbmNlIGNob29zZSBOLlxuICAzNDpcdFxuICAzNTpcdGNvbmZpZyBBVEgxMktfREVCVUdGU1xuICAzNjpcdFx0Ym9vbCBcJiMzNDtRdWFsY29tbSBhdGgxMmsgZGVidWdmcyBzdXBwb3J0XCYjMzQ7XG4gIDM3Olx0XHRkZXBlbmRzIG9uIEFUSDEySyBcdTAwMjZcdTAwMjYgTUFDODAyMTFfREVCVUdGU1xuICAzODpcdFx0aGVscFxuICAzOTpcdFx0ICBFbmFibGUgYXRoMTJrIGRlYnVnZnMgc3VwcG9ydFxuICA0MDpcdFxuICA0MTpcdFx0ICBJZiB1bnN1cmUsIHNheSBZIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGRlYnVnIHByb2JsZW1zLiBCdXQgaWZcbiAgNDI6XHRcdCAgeW91IHdhbnQgb3B0aW1hbCBwZXJmb3JtYW5jZSBjaG9vc2UgTi5cbiAgNDM6XHRcbiAgNDQ6XHRjb25maWcgQVRIMTJLX1RSQUNJTkdcbiAgNDU6XHRcdGJvb2wgXCYjMzQ7YXRoMTJrIHRyYWNpbmcgc3VwcG9ydFwmIzM0O1xuICA0NjpcdFx0ZGVwZW5kcyBvbiBBVEgxMksgXHUwMDI2XHUwMDI2IEVWRU5UX1RSQUNJTkdcbiAgNDc6XHRcdGhlbHBcbiAgNDg6XHRcdCAgRW5hYmxlIGF0aDEyayB0cmFjaW5nIGluZnJhc3RydWN0dXJlLlxuICA0OTpcdFxuICA1MDpcdFx0ICBJZiB1bnN1cmUsIHNheSBZIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGRlYnVnIHByb2JsZW1zLiBCdXQgaWZcbiAgNTE6XHRcdCAgeW91IHdhbnQgb3B0aW1hbCBwZXJmb3JtYW5jZSBjaG9vc2UgTi5cbiAgNTI6XHRcbiAgNTM6XHRjb25maWcgQVRIMTJLX0NPUkVEVU1QXG4gIDU0Olx0XHRib29sIFwmIzM0O2F0aDEyayBjb3JlZHVtcFwmIzM0O1xuICA1NTpcdFx0ZGVwZW5kcyBvbiBBVEgxMktcbiAgNTY6XHRcdHNlbGVjdCBXQU5UX0RFVl9DT1JFRFVNUFxuICA1NzpcdFx0aGVscFxuICA1ODpcdFx0ICBFbmFibGUgYXRoMTJrIGNvcmVkdW1wIGNvbGxlY3Rpb25cbiAgNTk6XHRcbiAgNjA6XHRcdCAgSWYgdW5zdXJlLCBzYXkgWSB0byBtYWtlIGl0IGVhc2llciB0byBkZWJ1ZyBwcm9ibGVtcy4gQnV0IGlmXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjggMDE6NDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjAwNTcKCQkJCQkJCW91dHB1dDogNDMKCQkJCQkJCXRob3VnaHRzOiAzMTgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgYXRoMTJrIERyaXZlciBmb3IgRnV6emluZyBTdWl0YWJpbGl0eSoqCgpPa2F5LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMgYGF0aDEya2Agc2l0dWF0aW9uLiBGaXJzdCwgSSBuZWVkIHRvIHJlbWluZCBteXNlbGY6IGl0JiMzOTtzIGEgUXVhbGNvbW0gV2ktRmkgNyBQQ0kvQUhCIGRyaXZlci4gUmlnaHQsIGl0JiMzOTtzIHRpZWQgdG8gc3BlY2lmaWMgUXVhbGNvbW0gaGFyZHdhcmXigJR0aGluZ3MgbGlrZSBXQ043ODUwLCBRQ045Mjc0LCBvciBJUFE1MzMyLiBJdCBhbHNvIGFwcGVhcnMgdG8gcmVseSBvbiBNSEkgb3IgUUNPTSBRTUkgZmlybXdhcmUgbG9hZGluZy4KCk5vdywgaG9sZCBvbi4gQmVmb3JlIEkganVtcCB0byBjb25jbHVzaW9ucywgSSBuZWVkIHRvIGNvbnNpZGVyIHdoZXRoZXIgdGhlcmUmIzM5O3MgYW55IGtpbmQgb2YgdmlydHVhbCBvciBlbXVsYXRlZCBpbnRlcmZhY2UsIHBlcmhhcHMgYSBVU0IgZ2FkZ2V0IG9yIGFueXRoaW5nIGVsc2UgdGhhdCBtaWdodCBjcmVhdGUgYSB1c2FibGUgZW52aXJvbm1lbnQgZm9yIHRoaXMuIExldCBtZSBjaGVjayB3aGF0IG9wdGlvbnMgZXhpc3QgZm9yIGVtdWxhdGluZyBvciBpZiBhdGgxMmsgaXMgc3RyaWN0bHkgdGllZCB0byBwaHlzaWNhbCBQQ0kvQUhCIGhhcmR3YXJlLgoKV2FpdCwgdGhlIGluc3RydWN0aW9ucy4gTGV0JiMzOTtzIG1ha2Ugc3VyZSBJJiMzOTttIG9uIHRoZSByaWdodCB0cmFjazogUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggaW52b2x2ZXMgY29kZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLCBldmVuIHdpdGggc29mdHdhcmUgZW11bGF0ZWQgaGFyZHdhcmUgKGxpa2UgdXNiIGdhZGdldCBvciBtYWM4MDIxMV9od3NpbSksIGFuZCBhbHNvIGlmIHRoZSBjb2RlIGlzIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChtbHhzdywgcGRzX2NvcmUsIHFlZCwgaW9uaWMsIGFtZGdwdSkgcmVxdWlyaW5nIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCgpBaGEhIE5vdyBJJiMzOTttIGdldHRpbmcgYSBjbGVhcmVyIHBpY3R1cmUuIElzIGBhdGgxMmtgICpvbmx5KiBwaHlzaWNhbCBoYXJkd2FyZT8gVGhhdCYjMzk7cyB0aGUgY3JpdGljYWwgcXVlc3Rpb24gaGVyZS4KCk9rYXksIHRpbWUgdG8gZ2V0IHNwZWNpZmljLiBJJiMzOTtsbCBuZWVkIHRvIGRyaWxsIGRvd24gaW50byB0aGUgY29kZSBpdHNlbGYsIHN0YXJ0aW5nIHdpdGggYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvaHcuY2AuIEkgd2FudCB0byBzZWUgZXhhY3RseSB3aGVyZSBgYXRoMTJrX3dpZmk3X2h3X3BhcmFtc2AgaXMgdXNlZCwgYW5kIGhvdy4gVGhhdCB3aWxsIGxpa2VseSByZXZlYWwgaWYgdGhpcyBkcml2ZXIgaGFzIGFueSBjaGFuY2Ugb2YgYmVpbmcgdGVzdGVkIG91dHNpZGUgb2YgYSB2ZXJ5IHNwZWNpZmljIGhhcmR3YXJlIGNvbmZpZ3VyYXRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjggMDE6NDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7YXRoMTJrX3dpZmk3X2h3X3BhcmFtcyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9ody5jPTM1Mj1zdGF0aWMgY29uc3Qgc3RydWN0IGNlX3JlbWFwIGF0aDEya193aWZpN19jZV9yZW1hcF9pcHE1NDI0ID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvaHcuYy0zNTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmM6MzU4OnN0YXRpYyBjb25zdCBzdHJ1Y3QgYXRoMTJrX2h3X3BhcmFtcyBhdGgxMmtfd2lmaTdfaHdfcGFyYW1zW10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmMtMzU5LVx0e1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvaHcuYz0xMjIyPWludCBhdGgxMmtfd2lmaTdfaHdfaW5pdChzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvaHcuYy0xMjI2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9ody5jOjEyMjc6XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBUlJBWV9TSVpFKGF0aDEya193aWZpN19od19wYXJhbXMpOyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9ody5jOjEyMjg6XHRcdGh3X3BhcmFtcyA9IFx1MDAyNmF0aDEya193aWZpN19od19wYXJhbXNbaV07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmMtMTIyOS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmMtMTIzMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvaHcuYzoxMjM0Olx0aWYgKGkgPT0gQVJSQVlfU0laRShhdGgxMmtfd2lmaTdfaHdfcGFyYW1zKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9ody5jLTEyMzUtXHRcdGF0aDEya19lcnIoYWIsIFwmIzM0O1Vuc3VwcG9ydGVkIFdpLUZpIDcgaGFyZHdhcmUgdmVyc2lvbjogMHgleFxcblwmIzM0OyxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yOCAwMTo0OTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTM0MwoJCQkJCQkJb3V0cHV0OiA0MwoJCQkJCQkJdGhvdWdodHM6IDIxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqVHJhY2luZyB0aGUgYGF0aDEya193aWZpN19od19pbml0YCBDYWxsIENoYWluKioKCkFscmlnaHQsIGxldCYjMzk7cyBkaXZlIGluLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UgZm9yIHRoaXMgYGF0aDEya193aWZpN19od19pbml0YCBmdW5jdGlvbi4gR2l2ZW4gdGhlIG5hbWluZyBjb252ZW50aW9uLCBpdCYjMzk7cyBwcmV0dHkgY2xlYXIgaXQmIzM5O3MgdGllZCB0byB0aGUgaGFyZHdhcmUgYnJpbmctdXAgcHJvY2VzcyBvZiBhbiBBdGhlcm9zIChsaWtlbHkgUXVhbGNvbW0pIFdpRmkgNyBjaGlwc2V0LCBwcmVzdW1hYmx5IHdpdGhpbiB0aGUgYGF0aDEya2AgZHJpdmVyLiBTbywgbXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdG8gdHJhY2Ugd2hlcmUgdGhpcyBmdW5jdGlvbiBpcyBhY3R1YWxseSBjYWxsZWQgZnJvbSB3aXRoaW4gdGhlIGRyaXZlciYjMzk7cyBjb2RlYmFzZS4gSSYjMzk7bGwgbmVlZCB0byB1c2UgbXkgdXN1YWwgbWV0aG9kcywgbGlrZWx5IGEgY29tYmluYXRpb24gb2Ygc3RhdGljIGFuYWx5c2lzIChncmVwcGluZyB0aGUgc291cmNlKSBhbmQgcGVyaGFwcyBldmVuIHNvbWUgZHluYW1pYyB0cmFjaW5nIChpZiBJJiMzOTttIGZlZWxpbmcgYW1iaXRpb3VzIGxhdGVyKS4gS25vd2luZyB0aGUgY2FsbCBzaXRlIHdpbGwgaW1tZWRpYXRlbHkgcHJvdmlkZSBjcnVjaWFsIGNvbnRleHQ6IHdoYXQgYXJlIHRoZSBjb25kaXRpb25zLCB0aGUgZGF0YSBzdHJ1Y3R1cmVzLCBhbmQgdGhlIG92ZXJhbGwgZHJpdmVyIHN0YXRlIGF0IHRoYXQgcG9pbnQ/IFRoYXQgY29udGV4dCBpcyBrZXkgdG8gdW5kZXJzdGFuZGluZyB0aGUgaW50ZW5kZWQgcm9sZSBvZiB0aGUgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24uIFRpbWUgdG8gc3RhcnQgZGlnZ2luZyB0aHJvdWdoIHRoZSBzb3VyY2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI4IDAxOjUwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2F0aDEya193aWZpN19od19pbml0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyayYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2FoYi5jPTkyPXN0YXRpYyBpbnQgYXRoMTJrX3dpZmk3X2FoYl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvYWhiLmMtMTEyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9haGIuYzoxMTM6XHRyZXQgPSBhdGgxMmtfd2lmaTdfaHdfaW5pdChhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2FoYi5jLTExNC1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmM9MTE2ND1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgYXRoMTJrX29wc193aWZpNyA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmMtMTIyMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvaHcuYzoxMjIyOmludCBhdGgxMmtfd2lmaTdfaHdfaW5pdChzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9ody5jLTEyMjMte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvaHcuaD0xMD1zdHJ1Y3QgYXRoMTJrX2Jhc2U7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3Lmg6MTE6aW50IGF0aDEya193aWZpN19od19pbml0KHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9ody5oLTEyLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvcGNpLmM9OTE9c3RhdGljIGludCBhdGgxMmtfd2lmaTdfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvcGNpLmMtMTczLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9wY2kuYzoxNzQ6XHRyZXQgPSBhdGgxMmtfd2lmaTdfaHdfaW5pdChhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L3BjaS5jLTE3NS1cdGlmIChyZXQpIHtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjggMDE6NTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjIyMDgKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiAyNzgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgYXRoMTJrIERyaXZlciBhbmQgaXRzIEVudmlyb25tZW50KioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIE15IGluaXRpYWwgdW5kZXJzdGFuZGluZyBpcyB0aGF0IGBhdGgxMmtfd2lmaTdfYWhiX3Byb2JlYCBhbmQgYGF0aDEya193aWZpN19wY2lfcHJvYmVgIGFyZSB0aGUga2V5IGVudHJ5IHBvaW50cyBmb3IgdGhlIGF0aDEyayBkcml2ZXIsIHNwZWNpZmljYWxseSBmb3IgUXVhbGNvbW0mIzM5O3MgV2ktRmkgNyBoYXJkd2FyZS4gUmlnaHQsIGl0JiMzOTtzIGEgaGFyZHdhcmUgZHJpdmVyLCBhbmQgaXQgbmVlZHMgcGh5c2ljYWwgUENJIG9yIEFIQiBjYXJkcyAob3IgYSBRdWFsY29tbSBTb0MgQUhCIGRldmljZSwgc3BlY2lmaWNhbGx5KSB0byBmdW5jdGlvbi4gU28sIGltbWVkaWF0ZWx5LCBJJiMzOTttIHRoaW5raW5nLCB0aGlzIGlzIGdvaW5nIHRvIGJlIGEgcHJvYmxlbSBpbiBhbnkgc3RhbmRhcmQgdmlydHVhbCBlbnZpcm9ubWVudCBsaWtlIFFFTVUgb3IgR0NFLiBObyBoYXJkd2FyZSwgbm8gZHJpdmVyLiBJdCB3b24mIzM5O3Qgd29yay4KCk15IGV4cGVyaWVuY2UgdGVsbHMgbWUgdGhlIHR5cGljYWwgd29ya2Fyb3VuZCBmb3IgdmlydHVhbGl6ZWQgd2lyZWxlc3MgdGVzdGluZyBpcyBgbWFjODAyMTFfaHdzaW1gLiBUaGF0JiMzOTtzIHRoZSBnby10bywgYXMgaXQgaXMgYSBjb21wbGV0ZWx5IHNlcGFyYXRlIHZpcnR1YWwgZHJpdmVyIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL21hYzgwMjExX2h3c2ltLmNgLiBUaGUgdGhpbmcgdGhhdCYjMzk7cyBhbHNvIGZyZXNoIGluIG15IG1pbmQgaXMgdGhhdCBVU0Igd2lyZWxlc3MgY2FyZHMgYXJlIGEgcG90ZW50aWFsIGF2ZW51ZSBmb3IgZnV6emluZywgc3BlY2lmaWNhbGx5IHdpdGggdG9vbHMgbGlrZSBSYXcgR2FkZ2V0IG9yIHN5emthbGxlci4gRHJpdmVycyBsaWtlIGBhdGg5a19odGNgLCBgbXQ3NmAsIGFuZCBgcnQyODAwdXNiYCBjb21lIHRvIG1pbmQuIEhvd2V2ZXIsIGFuZCB0aGlzIGlzIGNydWNpYWwsIGF0aDEyayBpcyAqbm90KiBhIFVTQiBkcml2ZXIuIEl0IGlzIHB1cmVseSBQQ0kgYW5kIEFIQiBiYXNlZCwgYW5kIGl0IHdvcmtzIHdpdGggYSBRdWFsY29tbSByZW1vdGVwcm9jLgoKSG9sZCBvbiwgSSBuZWVkIHRvIHZlcmlmeSB0aGF0IHN0YXRlbWVudC4gSXQmIzM5O3MgYWx3YXlzIHdpc2UgdG8gZG91YmxlLWNoZWNrIHRoZXNlIGFzc3VtcHRpb25zLiBJIHNob3VsZCBzY291ciB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmtgIGRpcmVjdG9yeSBpdHNlbGYgdG8gc2VlIGlmIHRoZXJlIGFyZSBhbnkgKmhpZGRlbiogVVNCIG9yIHZpcnR1YWwgY29tcG9uZW50cy4gSSBuZWVkIHRvIGJlIGFic29sdXRlbHkgc3VyZSB0aGF0IEkgYW0gbm90IG1pc3NpbmcgYW55dGhpbmcuIEkgd2lsbCBzZWFyY2ggZm9yIFVTQiBvciB2aXJ0aW8gcmVsYXRlZCBjb2RlIHRvIGNvbmZpcm0gdGhpcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjggMDE6NTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt1c2J8dmlydGlvJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyayYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI4IDAxOjUwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIyOTQxCgkJCQkJCQlvdXRwdXQ6IDEyNAoJCQkJCQkJdGhvdWdodHM6IDUyMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBQYXRjaCoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBGaXJzdCwgSSYjMzk7bSBjaGVja2luZyBhZ2FpbnN0IHRoZSBkZWZpbmVkIHJ1bGVzIGZvciBza2lwcGluZyBmdXp6aW5nLiBUaGUga2V5IGhlcmUgaXMgdGhlIG1vZGlmaWNhdGlvbiB0byBgYXRoMTJrX3dpZmk3X2h3X3BhcmFtc2AgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvaHcuY2AuIEkga25vdyB0aGlzIGRyaXZlciBpcyBmb3IgUXVhbGNvbW0gV2ktRmkgNyBoYXJkd2FyZSDigJMgdGhpbmsgV0NONzg1MCwgUUNOOTI3NCwgSVBRNTMzMiwgdGhhdCBzb3J0IG9mIHRoaW5nLiBJdCBoYW5kbGVzIGJvdGggUENJIGFuZCBBSEIgZGV2aWNlcy4gVGhlIHNwZWNpZmljIGNoYW5nZSBpcyBhZGRpbmcgYEJJVChOTDgwMjExX0lGVFlQRV9BUF9WTEFOKWAgdG8gYGludGVyZmFjZV9tb2Rlc2AuCgpUaGUgY3JpdGljYWwgcGllY2UgaXMgdGhhdCB0aGlzIHNwZWNpZmljIGhhcmR3YXJlIOKAkyB0aGUgUXVhbGNvbW0gV2ktRmkgNyBjaGlwc2V0IOKAkyBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciBvdGhlciB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0UuIFN0YW5kYXJkIFFFTVUganVzdCBkb2VzbiYjMzk7dCBoYXZlIHRoZSBtb2RlbCBmb3IgdGhlc2Ugc3BlY2lmaWMgZGV2aWNlcywgZXNwZWNpYWxseSB0aG9zZSB1c2luZyBNSEkgYnVzZXMuIFRoZXJlZm9yZSwgdGhlIGNvZGUgcGF0aCB0aGF0IHRoaXMgcGF0Y2ggdG91Y2hlcyAqY2Fubm90KiBiZSByZWFjaGVkIGluIGEgdHlwaWNhbCBmdXp6aW5nIHNldHVwLiBJdCByZXF1aXJlcyByZWFsLCBwaHlzaWNhbCBoYXJkd2FyZS4KClNvLCBhY2NvcmRpbmcgdG8gdGhlIHJ1bGVzLCBJIGNhbiBjb25maWRlbnRseSBzZXQgYFdvcnRoRnV6emluZ2AgdG8gYGZhbHNlYC4gVGhlcmUgYXJlIG5vIHNwZWNpZmljIGZvY3VzIHN5bWJvbHMgb3IgZW5hYmxlIGNvbmZpZ3VyYXRpb25zIG5lZWRlZCBoZXJlLCBzbyB0aG9zZSBjYW4gcmVtYWluIGVtcHR5LiBNeSByZWFzb25pbmcgaXMgc3RyYWlnaHRmb3J3YXJkOiB0aGUgY2hhbmdlcyBhcmUgd2l0aGluIGEgZHJpdmVyIGZvciBoYXJkd2FyZSB0aGF0JiMzOTtzIG5vdCBlbXVsYXRhYmxlIGluIG91ciBzdGFuZGFyZCBmdXp6aW5nIGVudmlyb25tZW50cy4gV2Ugd29uJiMzOTt0IGJlIGFibGUgdG8gYWNoaWV2ZSBjb2RlIGNvdmVyYWdlIG9mIHRoaXMgY2hhbmdlIHdpdGhvdXQgdGhhdCBwaHlzaWNhbCBoYXJkd2FyZS4gSSYjMzk7bGwgZG9jdW1lbnQgdGhpcyBjb25jaXNlIGV4cGxhbmF0aW9uIGFuZCBmaW5hbGl6ZSB0aGUgcmVzdWx0cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjggMDE6NTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIE5MODAyMTFfSUZUWVBFX0FQX1ZMQU4gdG8gdGhlIHN1cHBvcnRlZCBpbnRlcmZhY2UgbW9kZXMgaW4gYXRoMTJrX3dpZmk3X2h3X3BhcmFtcyBmb3IgUXVhbGNvbW0gV2ktRmkgNyBkZXZpY2VzLiBUaGUgYXRoMTJrIGRyaXZlciBpcyBhIGhhcmR3YXJlIGRyaXZlciBmb3IgUXVhbGNvbW0gUENJIGFuZCBBSEIgd2lyZWxlc3MgY2hpcHMgYW5kIGNhbm5vdCBiZSByZWFjaGVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAoc3VjaCBhcyBRRU1VIG9yIEdDRSkgYXMgaXQgcmVxdWlyZXMgcGh5c2ljYWwgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGJ5IHN0YW5kYXJkIFFFTVUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIE5MODAyMTFfSUZUWVBFX0FQX1ZMQU4gdG8gdGhlIHN1cHBvcnRlZCBpbnRlcmZhY2UgbW9kZXMgaW4gYXRoMTJrX3dpZmk3X2h3X3BhcmFtcyBmb3IgUXVhbGNvbW0gV2ktRmkgNyBkZXZpY2VzLiBUaGUgYXRoMTJrIGRyaXZlciBpcyBhIGhhcmR3YXJlIGRyaXZlciBmb3IgUXVhbGNvbW0gUENJIGFuZCBBSEIgd2lyZWxlc3MgY2hpcHMgYW5kIGNhbm5vdCBiZSByZWFjaGVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAoc3VjaCBhcyBRRU1VIG9yIEdDRSkgYXMgaXQgcmVxdWlyZXMgcGh5c2ljYWwgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGJ5IHN0YW5kYXJkIFFFTVUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yOCAwMTo1MDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+SWY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMjhUMDE6NDk6MzAuMDQxOTY1MjVaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MTk2OTYyNzI0NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2UsXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgTkw4MDIxMV9JRlRZUEVfQVBfVkxBTiB0byB0aGUgc3VwcG9ydGVkIGludGVyZmFjZSBtb2RlcyBpbiBhdGgxMmtfd2lmaTdfaHdfcGFyYW1zIGZvciBRdWFsY29tbSBXaS1GaSA3IGRldmljZXMuIFRoZSBhdGgxMmsgZHJpdmVyIGlzIGEgaGFyZHdhcmUgZHJpdmVyIGZvciBRdWFsY29tbSBQQ0kgYW5kIEFIQiB3aXJlbGVzcyBjaGlwcyBhbmQgY2Fubm90IGJlIHJlYWNoZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChzdWNoIGFzIFFFTVUgb3IgR0NFKSBhcyBpdCByZXF1aXJlcyBwaHlzaWNhbCBoYXJkd2FyZSBub3QgZW11bGF0ZWQgYnkgc3RhbmRhcmQgUUVNVS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI4VDAxOjQ5OjMwLjA0MTk3MDU5WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDM1Nzk0MzA1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgZmJlYTNhOTU3ZDFkOWZmNzgwYWIzNmE0YzBmYTZjOWY0MGQ4OTVlZlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgRnJpIEF1ZyAyOCAwMTo0OToyOCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmNcXG5pbmRleCA3Yjg2ZjMyNGIyZTY4Li5hMjBjMjE4MDczNDQ5IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvaHcuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvaHcuY1xcbkBAIC02NjQsNyArNjY0LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhdGgxMmtfaHdfcGFyYW1zIGF0aDEya193aWZpN19od19wYXJhbXNbXSA9IHtcXG4gXFxuIFxcdFxcdC5pbnRlcmZhY2VfbW9kZXMgPSBCSVQoTkw4MDIxMV9JRlRZUEVfU1RBVElPTikgfFxcbiBcXHRcXHRcXHRcXHQgICBCSVQoTkw4MDIxMV9JRlRZUEVfQVApIHxcXG4tXFx0XFx0XFx0XFx0ICAgQklUKE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpLFxcbitcXHRcXHRcXHRcXHQgICBCSVQoTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVCkgfFxcbitcXHRcXHRcXHRcXHQgICBCSVQoTkw4MDIxMV9JRlRZUEVfQVBfVkxBTiksXFxuIFxcdFxcdC5zdXBwb3J0c19tb25pdG9yID0gdHJ1ZSxcXG4gXFx0XFx0LnN1cHBvcnRzX2NvbmdfY3RybF9tYXhfbXNkdXMgPSB0cnVlLFxcbiBcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjhUMDE6NDk6MzEuNDc4NDI4MzU1WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiY29yZSIsIkR1cmF0aW9uIjo2MDUzMzE1MjUzMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBOTDgwMjExX0lGVFlQRV9BUF9WTEFOIHRvIHRoZSBzdXBwb3J0ZWQgaW50ZXJmYWNlIG1vZGVzIGluIGF0aDEya193aWZpN19od19wYXJhbXMgZm9yIFF1YWxjb21tIFdpLUZpIDcgZGV2aWNlcy4gVGhlIGF0aDEyayBkcml2ZXIgaXMgYSBoYXJkd2FyZSBkcml2ZXIgZm9yIFF1YWxjb21tIFBDSSBhbmQgQUhCIHdpcmVsZXNzIGNoaXBzIGFuZCBjYW5ub3QgYmUgcmVhY2hlZCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKHN1Y2ggYXMgUUVNVSBvciBHQ0UpIGFzIGl0IHJlcXVpcmVzIHBoeXNpY2FsIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBieSBzdGFuZGFyZCBRRU1VLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgZmJlYTNhOTU3ZDFkOWZmNzgwYWIzNmE0YzBmYTZjOWY0MGQ4OTVlZlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgQXVnIDI4IDAxOjQ5OjI4IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9ody5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9ody5jXG5pbmRleCA3Yjg2ZjMyNGIyZTY4Li5hMjBjMjE4MDczNDQ5IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9ody5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmNcbkBAIC02NjQsNyArNjY0LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhdGgxMmtfaHdfcGFyYW1zIGF0aDEya193aWZpN19od19wYXJhbXNbXSA9IHtcbiBcbiBcdFx0LmludGVyZmFjZV9tb2RlcyA9IEJJVChOTDgwMjExX0lGVFlQRV9TVEFUSU9OKSB8XG4gXHRcdFx0XHQgICBCSVQoTkw4MDIxMV9JRlRZUEVfQVApIHxcbi1cdFx0XHRcdCAgIEJJVChOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UKSxcbitcdFx0XHRcdCAgIEJJVChOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UKSB8XG4rXHRcdFx0XHQgICBCSVQoTkw4MDIxMV9JRlRZUEVfQVBfVkxBTiksXG4gXHRcdC5zdXBwb3J0c19tb25pdG9yID0gdHJ1ZSxcbiBcdFx0LnN1cHBvcnRzX2NvbmdfY3RybF9tYXhfbXNkdXMgPSB0cnVlLFxuIFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjhUMDE6NDk6MzEuNDc4NDI5NTg1WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6NTQ0Nzk0MDc5NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFBhdGNoIGZvciBGdXp6aW5nIFBvdGVudGlhbCoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gRmlyc3QsIEkgc2VlIGEgcGF0Y2ggbW9kaWZ5aW5nIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmNgLiAgTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGFzc2VzcyBpZiB0aGlzIGNoYW5nZSB3YXJyYW50cyBmdXp6aW5nLiAgVGhlIGRpZmYgaXRzZWxmIGxvb2tzIHN0cmFpZ2h0Zm9yd2FyZCBlbm91Z2guIEl0IHNlZW1zIHRvIGJlIGV4cGFuZGluZyB0aGUgc3VwcG9ydGVkIGludGVyZmFjZSBtb2RlcyBieSBhZGRpbmcgYE5MODAyMTFfSUZUWVBFX0FQX1ZMQU5gIHRvIHRoZSBleGlzdGluZyBsaXN0OiBgTkw4MDIxMV9JRlRZUEVfU1RBVElPTmAsIGBOTDgwMjExX0lGVFlQRV9BUGAsIGFuZCBgTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVGAuXG5cbk5vdywgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNvbnRleHQuIFdoYXQgaXMgYGF0aDEya2A/IEFoLCByaWdodCwgUXVhbGNvbW0ncyBJRUVFIDgwMi4xMWJlIChXaS1GaSA3KSB3aXJlbGVzcyBkcml2ZXIuIFRoYXQgY2xhcmlmaWVzIHRoaW5ncy4gVGhlIGZvY3VzIGhlcmUgaXMgb24gYSBjdXR0aW5nLWVkZ2Ugd2lyZWxlc3MgZHJpdmVyLiBUaGlzIGlzIGludGVyZXN0aW5nLCBidXQgSSBuZWVkIHRvIHF1aWNrbHkgYXNzZXNzIHRoZSBmZWFzaWJpbGl0eSBvZiBmdXp6aW5nIHRoaXMuIFRoZSBjcml0aWNhbCBxdWVzdGlvbiBpcyB3aGV0aGVyIEkgY2FuIHJ1biB0aGlzIHdpdGhpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IGxpa2UgUUVNVSBvciBldmVuIHdpdGggYG1hYzgwMjExX2h3c2ltYC4gSWYgaXQgcmVxdWlyZXMgcGh5c2ljYWwgaGFyZHdhcmUgKFBDSWUsIEFIQiwgZXRjLiksIHRoYXQncyBhIHNpZ25pZmljYW50IGh1cmRsZS5cblxuVGhlcmVmb3JlLCBJIG5lZWQgdG8gY2hlY2sgdGhlIGJyb2FkZXIgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYCBkaXJlY3RvcnkuIEknbGwgcHJvYmFibHkgdXNlIGByZWFkLWZpbGVgIG9yIGBncmVwcGVyYCB0byBxdWlja2x5IGluc3BlY3QgdGhlIHNvdXJjZSBhbmQgbG9vayBmb3IgY2x1ZXMgYWJvdXQgdmlydHVhbGl6YXRpb24gc3VwcG9ydCBvciBoYXJkd2FyZSBkZXBlbmRlbmNpZXMuIEhvcGVmdWxseSwgdGhlcmUgaXMgZG9jdW1lbnRhdGlvbiBvciBzb21lIGZvcm0gb2YgdmlydHVhbCBpbnRlcmZhY2UgdG8gYWxsb3cgZnV6emluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjE3MiwiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ4NSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI4VDAxOjQ5OjM2LjkyNjM3MjQ1MVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDQwODIxODgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiQVRIMTJLXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmtcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxMzQ5NSBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjI6Y29uZmlnIEFUSDEyS1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJRdWFsY29tbSBXaS1GaSA3IHN1cHBvcnQgKGF0aDEyaylcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjE3OmNvbmZpZyBBVEgxMktfQUhCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTE4LVxcdGJvb2wgXFxcIlF1YWxjb21tIGF0aDEyayBBSEIgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6MTk6XFx0ZGVwZW5kcyBvbiBBVEgxMksgXFx1MDAyNlxcdTAwMjYgUkVNT1RFUFJPQ1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0yMC1cXHRzZWxlY3QgUUNPTV9NRFRfTE9BREVSXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMjQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjI1OmNvbmZpZyBBVEgxMktfREVCVUdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMjYtXFx0Ym9vbCBcXFwiYXRoMTJrIGRlYnVnZ2luZ1xcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6Mjc6XFx0ZGVwZW5kcyBvbiBBVEgxMktcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMjgtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTM0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzozNTpjb25maWcgQVRIMTJLX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMzYtXFx0Ym9vbCBcXFwiUXVhbGNvbW0gYXRoMTJrIGRlYnVnZnMgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6Mzc6XFx0ZGVwZW5kcyBvbiBBVEgxMksgXFx1MDAyNlxcdTAwMjYgTUFDODAyMTFfREVCVUdGU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0zOC1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjQ0OmNvbmZpZyBBVEgxMktfVFJBQ0lOR1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy00NS1cXHRib29sIFxcXCJhdGgxMmsgdHJhY2luZyBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzo0NjpcXHRkZXBlbmRzIG9uIEFUSDEySyBcXHUwMDI2XFx1MDAyNiBFVkVOVF9UUkFDSU5HXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTQ3LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy01Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6NTM6Y29uZmlnIEFUSDEyS19DT1JFRFVNUFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy01NC1cXHRib29sIFxcXCJhdGgxMmsgY29yZWR1bXBcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjU1OlxcdGRlcGVuZHMgb24gQVRIMTJLXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTU2LVxcdHNlbGVjdCBXQU5UX0RFVl9DT1JFRFVNUFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZS0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGU6MjpvYmotJChDT05GSUdfQVRIMTJLKSArPSBhdGgxMmsub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGUtMy1hdGgxMmsteSArPSBjb3JlLm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZS0yNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlOjI1OmF0aDEyay0kKENPTkZJR19BVEgxMktfQUhCKSArPSBhaGIub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGUtMjYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZToyNzpvYmotJChDT05GSUdfQVRIMTJLKSArPSB3aWZpNy9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlLTI4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGU6Mjk6YXRoMTJrLSQoQ09ORklHX0FUSDEyS19ERUJVR0ZTKSArPSBkZWJ1Z2ZzLm8gZGVidWdmc19odHRfc3RhdHMubyBkZWJ1Z2ZzX3N0YS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZS0zMC1hdGgxMmstJChDT05GSUdfQUNQSSkgKz0gYWNwaS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZTozMTphdGgxMmstJChDT05GSUdfQVRIMTJLX1RSQUNJTkcpICs9IHRyYWNlLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlLTMyLWF0aDEyay0kKENPTkZJR19QTSkgKz0gd293Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlOjMzOmF0aDEyay0kKENPTkZJR19BVEgxMktfQ09SRURVTVApICs9IGNvcmVkdW1wLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlLTM0LWF0aDEyay0kKENPTkZJR19OTDgwMjExX1RFU1RNT0RFKSArPSB0ZXN0bW9kZS5vXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYz0xMT1zdGF0aWMgaW50IGF0aDEya19hY3BpX2RzbV9nZXRfZGF0YShzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiLCBpbnQgZnVuYylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTE4LVxcdGlmICghcm9vdF9oYW5kbGUpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoxOTpcXHRcXHRhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX0JPT1QsIFxcXCJpbnZhbGlkIGFjcGkgaGFuZGxlclxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjAtXFx0XFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjYtXFx0aWYgKCFvYmopIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoyNzpcXHRcXHRhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX0JPT1QsIFxcXCJhY3BpX2V2YWx1YXRlX2RzbSgpIGZhaWxlZFxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjgtXFx0XFx0cmV0dXJuIC1FTk9FTlQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zMi1cXHRcXHRzd2l0Y2ggKGZ1bmMpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzozMzpcXHRcXHRjYXNlIEFUSDEyS19BQ1BJX0RTTV9GVU5DX1NVUFBPUlRfRlVOQ1M6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzQtXFx0XFx0XFx0YWItXFx1MDAzZWFjcGkuZnVuY19iaXQgPSBvYmotXFx1MDAzZWludGVnZXIudmFsdWU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzUtXFx0XFx0XFx0YnJlYWs7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MzY6XFx0XFx0Y2FzZSBBVEgxMktfQUNQSV9EU01fRlVOQ19ESVNBQkxFX0ZMQUc6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzctXFx0XFx0XFx0YWItXFx1MDAzZWFjcGkuYml0X2ZsYWcgPSBvYmotXFx1MDAzZWludGVnZXIudmFsdWU7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00MS1cXHRcXHRzd2l0Y2ggKGZ1bmMpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0MjpcXHRcXHRjYXNlIEFUSDEyS19BQ1BJX0RTTV9GVU5DX0JERl9FWFQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDM6XFx0XFx0XFx0aWYgKG9iai1cXHUwMDNlc3RyaW5nLmxlbmd0aCBcXHUwMDNjPSBBVEgxMktfQUNQSV9CREZfQU5DSE9SX1NUUklOR19MRU4gfHxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0NDpcXHRcXHRcXHQgICAgb2JqLVxcdTAwM2VzdHJpbmcubGVuZ3RoIFxcdTAwM2UgQVRIMTJLX0FDUElfQkRGX01BWF9MRU4gfHxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0NTpcXHRcXHRcXHQgICAgbWVtY21wKG9iai1cXHUwMDNlc3RyaW5nLnBvaW50ZXIsIEFUSDEyS19BQ1BJX0JERl9BTkNIT1JfU1RSSU5HLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQ2OlxcdFxcdFxcdFxcdCAgIEFUSDEyS19BQ1BJX0JERl9BTkNIT1JfU1RSSU5HX0xFTikpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00Ny1cXHRcXHRcXHRcXHRhdGgxMmtfd2FybihhYiwgXFxcImludmFsaWQgQUNQSSBEU00gQkRGIHNpemU6ICVkXFxcXG5cXFwiLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNTktXFx0XFx0c3dpdGNoIChmdW5jKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NjA6XFx0XFx0Y2FzZSBBVEgxMktfQUNQSV9EU01fRlVOQ19TVVBQT1JUX0ZVTkNTOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjYxOlxcdFxcdFxcdGlmIChvYmotXFx1MDAzZWJ1ZmZlci5sZW5ndGggXFx1MDAzYyBBVEgxMktfQUNQSV9EU01fRlVOQ19NSU5fQklUTUFQX1NJWkUgfHxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo2MjpcXHRcXHRcXHQgICAgb2JqLVxcdTAwM2VidWZmZXIubGVuZ3RoIFxcdTAwM2UgQVRIMTJLX0FDUElfRFNNX0ZVTkNfTUFYX0JJVE1BUF9TSVpFKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNjMtXFx0XFx0XFx0XFx0YXRoMTJrX3dhcm4oYWIsIFxcXCJpbnZhbGlkIEFDUEkgRFNNIGZ1bmMgc2l6ZTogJWRcXFxcblxcXCIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy03My1cXHRcXHRcXHRicmVhaztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo3NDpcXHRcXHRjYXNlIEFUSDEyS19BQ1BJX0RTTV9GVU5DX1RBU19DRkc6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NzU6XFx0XFx0XFx0aWYgKG9iai1cXHUwMDNlYnVmZmVyLmxlbmd0aCAhPSBBVEgxMktfQUNQSV9EU01fVEFTX0NGR19TSVpFKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNzYtXFx0XFx0XFx0XFx0YXRoMTJrX3dhcm4oYWIsIFxcXCJpbnZhbGlkIEFDUEkgRFNNIFRBUyBjb25maWcgc2l6ZTogJWRcXFxcblxcXCIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy04NS1cXHRcXHRcXHRicmVhaztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo4NjpcXHRcXHRjYXNlIEFUSDEyS19BQ1BJX0RTTV9GVU5DX1RBU19EQVRBOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjg3OlxcdFxcdFxcdGlmIChvYmotXFx1MDAzZWJ1ZmZlci5sZW5ndGggIT0gQVRIMTJLX0FDUElfRFNNX1RBU19EQVRBX1NJWkUpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy04OC1cXHRcXHRcXHRcXHRhdGgxMmtfd2FybihhYiwgXFxcImludmFsaWQgQUNQSSBEU00gVEFTIGRhdGEgc2l6ZTogJWRcXFxcblxcXCIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy05Ny1cXHRcXHRcXHRicmVhaztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo5ODpcXHRcXHRjYXNlIEFUSDEyS19BQ1BJX0RTTV9GVU5DX0JJT1NfU0FSOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjk5OlxcdFxcdFxcdGlmIChvYmotXFx1MDAzZWJ1ZmZlci5sZW5ndGggIT0gQVRIMTJLX0FDUElfRFNNX0JJT1NfU0FSX0RBVEFfU0laRSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTEwMC1cXHRcXHRcXHRcXHRhdGgxMmtfd2FybihhYiwgXFxcImludmFsaWQgQUNQSSBCSU9TIFNBUiBkYXRhIHNpemU6ICVkXFxcXG5cXFwiLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTA5LVxcdFxcdFxcdGJyZWFrO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjExMDpcXHRcXHRjYXNlIEFUSDEyS19BQ1BJX0RTTV9GVU5DX0dFT19PRkZTRVQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MTExOlxcdFxcdFxcdGlmIChvYmotXFx1MDAzZWJ1ZmZlci5sZW5ndGggIT0gQVRIMTJLX0FDUElfRFNNX0dFT19PRkZTRVRfREFUQV9TSVpFKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTEyLVxcdFxcdFxcdFxcdGF0aDEya193YXJuKGFiLCBcXFwiaW52YWxpZCBBQ1BJIEdFTyBPRkZTRVQgZGF0YSBzaXplOiAlZFxcXFxuXFxcIixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTEyMS1cXHRcXHRcXHRicmVhaztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoxMjI6XFx0XFx0Y2FzZSBBVEgxMktfQUNQSV9EU01fRlVOQ19JTkRFWF9DQ0E6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MTIzOlxcdFxcdFxcdGlmIChvYmotXFx1MDAzZWJ1ZmZlci5sZW5ndGggIT0gQVRIMTJLX0FDUElfRFNNX0NDQV9EQVRBX1NJWkUpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xMjQtXFx0XFx0XFx0XFx0YXRoMTJrX3dhcm4oYWIsIFxcXCJpbnZhbGlkIEFDUEkgRFNNIENDQSBkYXRhIHNpemU6ICVkXFxcXG5cXFwiLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTMzLVxcdFxcdFxcdGJyZWFrO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjEzNDpcXHRcXHRjYXNlIEFUSDEyS19BQ1BJX0RTTV9GVU5DX0lOREVYX0JBTkRfRURHRTpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoxMzU6XFx0XFx0XFx0aWYgKG9iai1cXHUwMDNlYnVmZmVyLmxlbmd0aCAhPSBBVEgxMktfQUNQSV9EU01fQkFORF9FREdFX0RBVEFfU0laRSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTEzNi1cXHRcXHRcXHRcXHRhdGgxMmtfd2FybihhYiwgXFxcImludmFsaWQgQUNQSSBEU00gYmFuZCBlZGdlIGRhdGEgc2l6ZTogJWRcXFxcblxcXCIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYz0xNjE9c3RhdGljIGludCBhdGgxMmtfYWNwaV9zZXRfcG93ZXJfbGltaXQoc3RydWN0IGF0aDEya19iYXNlICphYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTE2NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoxNjY6XFx0aWYgKHRhc19zYXJfcG93ZXJfdGFibGVbMF0gIT0gQVRIMTJLX0FDUElfVEFTX0RBVEFfVkVSU0lPTiB8fFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjE2NzpcXHQgICAgdGFzX3Nhcl9wb3dlcl90YWJsZVsxXSAhPSBBVEgxMktfQUNQSV9UQVNfREFUQV9FTkFCTEUpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xNjgtXFx0XFx0YXRoMTJrX3dhcm4oYWIsIFxcXCJsYXRlc3QgQUNQSSBUQVMgZGF0YSBpcyBpbnZhbGlkXFxcXG5cXFwiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTE3My1cXHRcXHRcXHRcXHQgICAgICB0YXNfc2FyX3Bvd2VyX3RhYmxlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjE3NDpcXHRcXHRcXHRcXHQgICAgICBBVEgxMktfQUNQSV9EU01fVEFTX0RBVEFfU0laRSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTc1LVxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jPTE4Mz1zdGF0aWMgaW50IGF0aDEya19hY3BpX3NldF9iaW9zX3Nhcl9wb3dlcihzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTg2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjE4NzpcXHRpZiAoYWItXFx1MDAzZWFjcGkuYmlvc19zYXJfZGF0YVswXSAhPSBBVEgxMktfQUNQSV9QT1dFUl9MSU1JVF9WRVJTSU9OIHx8XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MTg4OlxcdCAgICBhYi1cXHUwMDNlYWNwaS5iaW9zX3Nhcl9kYXRhWzFdICE9IEFUSDEyS19BQ1BJX1BPV0VSX0xJTUlUX0VOQUJMRV9GTEFHKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTg5LVxcdFxcdGF0aDEya193YXJuKGFiLCBcXFwiaW52YWxpZCBsYXRlc3QgQUNQSSBCSU9TIFNBUiBkYXRhXFxcXG5cXFwiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jPTIwMj1zdGF0aWMgdm9pZCBhdGgxMmtfYWNwaV9kc21fbm90aWZ5KGFjcGlfaGFuZGxlIGhhbmRsZSwgdTMyIGV2ZW50LCB2b2lkICpkYXRhKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjA2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjIwNzpcXHRpZiAoZXZlbnQgPT0gQVRIMTJLX0FDUElfTk9USUZZX0VWRU5UKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjA4LVxcdFxcdGF0aDEya193YXJuKGFiLCBcXFwidW5rbm93biBhY3BpIG5vdGlmeSAldVxcXFxuXFxcIiwgZXZlbnQpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjEyLVxcdGlmICghYWItXFx1MDAzZWFjcGkuYWNwaV90YXNfZW5hYmxlKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MjEzOlxcdFxcdGF0aDEya19kYmcoYWIsIEFUSDEyS19EQkdfQk9PVCwgXFxcImFjcGlfdGFzX2VuYWJsZSBpcyBmYWxzZVxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjE0LVxcdFxcdHJldHVybjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTIxNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoyMTc6XFx0cmV0ID0gYXRoMTJrX2FjcGlfZHNtX2dldF9kYXRhKGFiLCBBVEgxMktfQUNQSV9EU01fRlVOQ19UQVNfREFUQSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjE4LVxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTIzMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoyMzI6XFx0cmV0ID0gYXRoMTJrX2FjcGlfZHNtX2dldF9kYXRhKGFiLCBBVEgxMktfQUNQSV9EU01fRlVOQ19CSU9TX1NBUik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjMzLVxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jPTI2ND1zdGF0aWMgaW50IGF0aDEya19hY3BpX3NldF90YXNfcGFyYW1zKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yNjktXFx0XFx0XFx0XFx0ICAgICAgYWItXFx1MDAzZWFjcGkudGFzX2NmZyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoyNzA6XFx0XFx0XFx0XFx0ICAgICAgQVRIMTJLX0FDUElfRFNNX1RBU19DRkdfU0laRSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjcxLVxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI3OC1cXHRcXHRcXHRcXHQgICAgICBhYi1cXHUwMDNlYWNwaS50YXNfc2FyX3Bvd2VyX3RhYmxlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjI3OTpcXHRcXHRcXHRcXHQgICAgICBBVEgxMktfQUNQSV9EU01fVEFTX0RBVEFfU0laRSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjgwLVxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jPTI5OT12b2lkIGF0aDEya19hY3BpX3NldF9kc21fZnVuYyhzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzI0LVxcdGlmIChhYi1cXHUwMDNlYWNwaS5hY3BpX2NjYV9lbmFibGUpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzozMjU6XFx0XFx0YnVmID0gYWItXFx1MDAzZWFjcGkuY2NhX2RhdGEgKyBBVEgxMktfQUNQSV9DQ0FfVEhSX09GRlNFVF9EQVRBX09GRlNFVDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zMjYtXFx0XFx0cmV0ID0gYXRoMTJrX3dtaV9zZXRfYmlvc19jbWQoYWIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zMjgtXFx0XFx0XFx0XFx0XFx0ICAgICAgYnVmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjMyOTpcXHRcXHRcXHRcXHRcXHQgICAgICBBVEgxMktfQUNQSV9DQ0FfVEhSX09GRlNFVF9MRU4pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTMzMC1cXHRcXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYz0zNTE9aW50IGF0aDEya19hY3BpX3N0YXJ0KHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zNjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MzY5OlxcdHJldCA9IGF0aDEya19hY3BpX2RzbV9nZXRfZGF0YShhYiwgQVRIMTJLX0FDUElfRFNNX0ZVTkNfU1VQUE9SVF9GVU5DUyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzcwLVxcdGlmIChyZXQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzozNzE6XFx0XFx0YXRoMTJrX2RiZyhhYiwgQVRIMTJLX0RCR19CT09ULCBcXFwiZmFpbGVkIHRvIGdldCBBQ1BJIERTTSBkYXRhOiAlZFxcXFxuXFxcIiwgcmV0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zNzItXFx0XFx0cmV0dXJuIHJldDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTM3NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzozNzU6XFx0aWYgKEFUSDEyS19BQ1BJX0ZVTkNfQklUX1ZBTElEKGFiLVxcdTAwM2VhY3BpLCBBVEgxMktfQUNQSV9GVU5DX0JJVF9ESVNBQkxFX0ZMQUcpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6Mzc2OlxcdFxcdHJldCA9IGF0aDEya19hY3BpX2RzbV9nZXRfZGF0YShhYiwgQVRIMTJLX0FDUElfRFNNX0ZVTkNfRElTQUJMRV9GTEFHKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zNzctXFx0XFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzgxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjM4MjpcXHRcXHRpZiAoQVRIMTJLX0FDUElfQ0hFS19CSVRfVkFMSUQoYWItXFx1MDAzZWFjcGksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MzgzOlxcdFxcdFxcdFxcdFxcdCAgICAgICBBVEgxMktfQUNQSV9EU01fRElTQUJMRV8xMUJFX0JJVCkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzg0LVxcdFxcdFxcdGFiLVxcdTAwM2VhY3BpLmFjcGlfZGlzYWJsZV8xMWJlID0gdHJ1ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zODUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6Mzg2OlxcdFxcdGlmICghQVRIMTJLX0FDUElfQ0hFS19CSVRfVkFMSUQoYWItXFx1MDAzZWFjcGksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6Mzg3OlxcdFxcdFxcdFxcdFxcdFxcdEFUSDEyS19BQ1BJX0RTTV9ESVNBQkxFX1JGS0lMTF9CSVQpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTM4OC1cXHRcXHRcXHRhYi1cXHUwMDNlYWNwaS5hY3BpX2Rpc2FibGVfcmZraWxsID0gdHJ1ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTM5MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzozOTE6XFx0aWYgKEFUSDEyS19BQ1BJX0ZVTkNfQklUX1ZBTElEKGFiLVxcdTAwM2VhY3BpLCBBVEgxMktfQUNQSV9GVU5DX0JJVF9CREZfRVhUKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjM5MjpcXHRcXHRyZXQgPSBhdGgxMmtfYWNwaV9kc21fZ2V0X2RhdGEoYWIsIEFUSDEyS19BQ1BJX0RTTV9GVU5DX0JERl9FWFQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTM5My1cXHRcXHRpZiAocmV0IHx8IGFiLVxcdTAwM2VhY3BpLmJkZl9zdHJpbmdbMF0gPT0gJ1xcXFwwJykge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDAwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQwMTpcXHRpZiAoQVRIMTJLX0FDUElfRlVOQ19CSVRfVkFMSUQoYWItXFx1MDAzZWFjcGksIEFUSDEyS19BQ1BJX0ZVTkNfQklUX1RBU19DRkcpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDAyOlxcdFxcdHJldCA9IGF0aDEya19hY3BpX2RzbV9nZXRfZGF0YShhYiwgQVRIMTJLX0FDUElfRFNNX0ZVTkNfVEFTX0NGRyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDAzLVxcdFxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQwOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0MDk6XFx0aWYgKEFUSDEyS19BQ1BJX0ZVTkNfQklUX1ZBTElEKGFiLVxcdTAwM2VhY3BpLCBBVEgxMktfQUNQSV9GVU5DX0JJVF9UQVNfREFUQSkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0MTA6XFx0XFx0cmV0ID0gYXRoMTJrX2FjcGlfZHNtX2dldF9kYXRhKGFiLCBBVEgxMktfQUNQSV9EU01fRlVOQ19UQVNfREFUQSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDExLVxcdFxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQxNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0MTY6XFx0XFx0aWYgKEFUSDEyS19BQ1BJX0ZVTkNfQklUX1ZBTElEKGFiLVxcdTAwM2VhY3BpLCBBVEgxMktfQUNQSV9GVU5DX0JJVF9UQVNfQ0ZHKSBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQxNzpcXHRcXHQgICAgYWItXFx1MDAzZWFjcGkudGFzX3Nhcl9wb3dlcl90YWJsZVswXSA9PSBBVEgxMktfQUNQSV9UQVNfREFUQV9WRVJTSU9OIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDE4OlxcdFxcdCAgICBhYi1cXHUwMDNlYWNwaS50YXNfc2FyX3Bvd2VyX3RhYmxlWzFdID09IEFUSDEyS19BQ1BJX1RBU19EQVRBX0VOQUJMRSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00MTktXFx0XFx0XFx0YWItXFx1MDAzZWFjcGkuYWNwaV90YXNfZW5hYmxlID0gdHJ1ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQyMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0MjI6XFx0aWYgKEFUSDEyS19BQ1BJX0ZVTkNfQklUX1ZBTElEKGFiLVxcdTAwM2VhY3BpLCBBVEgxMktfQUNQSV9GVU5DX0JJVF9CSU9TX1NBUikpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0MjM6XFx0XFx0cmV0ID0gYXRoMTJrX2FjcGlfZHNtX2dldF9kYXRhKGFiLCBBVEgxMktfQUNQSV9EU01fRlVOQ19CSU9TX1NBUik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDI0LVxcdFxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQyOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0MzA6XFx0aWYgKEFUSDEyS19BQ1BJX0ZVTkNfQklUX1ZBTElEKGFiLVxcdTAwM2VhY3BpLCBBVEgxMktfQUNQSV9GVU5DX0JJVF9HRU9fT0ZGU0VUKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQzMTpcXHRcXHRyZXQgPSBhdGgxMmtfYWNwaV9kc21fZ2V0X2RhdGEoYWIsIEFUSDEyS19BQ1BJX0RTTV9GVU5DX0dFT19PRkZTRVQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQzMi1cXHRcXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00MzYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDM3OlxcdFxcdGlmIChBVEgxMktfQUNQSV9GVU5DX0JJVF9WQUxJRChhYi1cXHUwMDNlYWNwaSwgQVRIMTJLX0FDUElfRlVOQ19CSVRfQklPU19TQVIpIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDM4OlxcdFxcdCAgICBhYi1cXHUwMDNlYWNwaS5iaW9zX3Nhcl9kYXRhWzBdID09IEFUSDEyS19BQ1BJX1BPV0VSX0xJTUlUX1ZFUlNJT04gXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0Mzk6XFx0XFx0ICAgIGFiLVxcdTAwM2VhY3BpLmJpb3Nfc2FyX2RhdGFbMV0gPT0gQVRIMTJLX0FDUElfUE9XRVJfTElNSVRfRU5BQkxFX0ZMQUcgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00NDAtXFx0XFx0ICAgICFhYi1cXHUwMDNlYWNwaS5hY3BpX3Rhc19lbmFibGUpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00NDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDQ0OlxcdGlmIChBVEgxMktfQUNQSV9GVU5DX0JJVF9WQUxJRChhYi1cXHUwMDNlYWNwaSwgQVRIMTJLX0FDUElfRlVOQ19CSVRfQ0NBKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQ0NTpcXHRcXHRyZXQgPSBhdGgxMmtfYWNwaV9kc21fZ2V0X2RhdGEoYWIsIEFUSDEyS19BQ1BJX0RTTV9GVU5DX0lOREVYX0NDQSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDQ2LVxcdFxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQ1MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0NTI6XFx0XFx0aWYgKGFiLVxcdTAwM2VhY3BpLmNjYV9kYXRhWzBdID09IEFUSDEyS19BQ1BJX0NDQV9USFJfVkVSU0lPTiBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQ1MzpcXHRcXHQgICAgYWItXFx1MDAzZWFjcGkuY2NhX2RhdGFbQVRIMTJLX0FDUElfQ0NBX1RIUl9PRkZTRVRfREFUQV9PRkZTRVRdID09XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDU0OlxcdFxcdCAgICBBVEgxMktfQUNQSV9DQ0FfVEhSX0VOQUJMRV9GTEFHKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQ1NS1cXHRcXHRcXHRhYi1cXHUwMDNlYWNwaS5hY3BpX2NjYV9lbmFibGUgPSB0cnVlO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDU3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQ1ODpcXHRpZiAoQVRIMTJLX0FDUElfRlVOQ19CSVRfVkFMSUQoYWItXFx1MDAzZWFjcGksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDU5OlxcdFxcdFxcdFxcdCAgICAgICBBVEgxMktfQUNQSV9GVU5DX0JJVF9CQU5EX0VER0VfQ0hBTl9QT1dFUikpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0NjA6XFx0XFx0cmV0ID0gYXRoMTJrX2FjcGlfZHNtX2dldF9kYXRhKGFiLCBBVEgxMktfQUNQSV9EU01fRlVOQ19JTkRFWF9CQU5EX0VER0UpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQ2MS1cXHRcXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00NjYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDY3OlxcdFxcdGlmIChhYi1cXHUwMDNlYWNwaS5iYW5kX2VkZ2VfcG93ZXJbMF0gPT0gQVRIMTJLX0FDUElfQkFORF9FREdFX1ZFUlNJT04gXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0Njg6XFx0XFx0ICAgIGFiLVxcdTAwM2VhY3BpLmJhbmRfZWRnZV9wb3dlclsxXSA9PSBBVEgxMktfQUNQSV9CQU5EX0VER0VfRU5BQkxFX0ZMQUcpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDY5LVxcdFxcdFxcdGFiLVxcdTAwM2VhY3BpLmFjcGlfYmFuZF9lZGdlX2VuYWJsZSA9IHRydWU7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYz00ODU9aW50IGF0aDEya19hY3BpX2NoZWNrX2JkZl92YXJpYW50X25hbWUoc3RydWN0IGF0aDEya19iYXNlICphYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQ5Mi1cXHRpZiAoc3Ryc2NweShhYi1cXHUwMDNlcW1pLnRhcmdldC5iZGZfZXh0LCBhYi1cXHUwMDNlYWNwaS5iZGZfc3RyaW5nICsgNCwgbWF4X2xlbikgXFx1MDAzYyAwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQ5MzpcXHRcXHRhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX0JPT1QsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDk0LVxcdFxcdFxcdCAgIFxcXCJhY3BpIGJkZiB2YXJpYW50IGxvbmdlciB0aGFuIHRoZSBidWZmZXIgKHZhcmlhbnQ6ICVzKVxcXFxuXFxcIixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oLTUtICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6NjojaWZuZGVmIEFUSDEyS19BQ1BJX0hcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDo3OiNkZWZpbmUgQVRIMTJLX0FDUElfSFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oLTgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaC0xMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDoxMTojZGVmaW5lIEFUSDEyS19BQ1BJX0RTTV9GVU5DX1NVUFBPUlRfRlVOQ1NcXHQwXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6MTI6I2RlZmluZSBBVEgxMktfQUNQSV9EU01fRlVOQ19ESVNBQkxFX0ZMQUdcXHQyXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6MTM6I2RlZmluZSBBVEgxMktfQUNQSV9EU01fRlVOQ19CREZfRVhUXFx0XFx0M1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjE0OiNkZWZpbmUgQVRIMTJLX0FDUElfRFNNX0ZVTkNfQklPU19TQVJcXHRcXHQ0XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6MTU6I2RlZmluZSBBVEgxMktfQUNQSV9EU01fRlVOQ19HRU9fT0ZGU0VUXFx0XFx0NVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjE2OiNkZWZpbmUgQVRIMTJLX0FDUElfRFNNX0ZVTkNfSU5ERVhfQ0NBXFx0XFx0NlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjE3OiNkZWZpbmUgQVRIMTJLX0FDUElfRFNNX0ZVTkNfVEFTX0NGR1xcdFxcdDhcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDoxODojZGVmaW5lIEFUSDEyS19BQ1BJX0RTTV9GVU5DX1RBU19EQVRBXFx0XFx0OVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjE5OiNkZWZpbmUgQVRIMTJLX0FDUElfRFNNX0ZVTkNfSU5ERVhfQkFORF9FREdFXFx0XFx0MTBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaC0yMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDoyMTojZGVmaW5lIEFUSDEyS19BQ1BJX0ZVTkNfQklUX0RJU0FCTEVfRkxBR1xcdFxcdEJJVCgxKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjIyOiNkZWZpbmUgQVRIMTJLX0FDUElfRlVOQ19CSVRfQkRGX0VYVFxcdFxcdFxcdEJJVCgyKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjIzOiNkZWZpbmUgQVRIMTJLX0FDUElfRlVOQ19CSVRfQklPU19TQVJcXHRcXHRcXHRCSVQoMylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDoyNDojZGVmaW5lIEFUSDEyS19BQ1BJX0ZVTkNfQklUX0dFT19PRkZTRVRcXHRcXHRcXHRCSVQoNClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDoyNTojZGVmaW5lIEFUSDEyS19BQ1BJX0ZVTkNfQklUX0NDQVxcdFxcdFxcdEJJVCg1KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjI2OiNkZWZpbmUgQVRIMTJLX0FDUElfRlVOQ19CSVRfVEFTX0NGR1xcdFxcdFxcdEJJVCg3KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjI3OiNkZWZpbmUgQVRIMTJLX0FDUElfRlVOQ19CSVRfVEFTX0RBVEFcXHRcXHRcXHRCSVQoOClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDoyODojZGVmaW5lIEFUSDEyS19BQ1BJX0ZVTkNfQklUX0JBTkRfRURHRV9DSEFOX1BPV0VSXFx0QklUKDkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmgtMjktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6MzA6I2RlZmluZSBBVEgxMktfQUNQSV9OT1RJRllfRVZFTlRcXHRcXHRcXHQweDg2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6MzE6I2RlZmluZSBBVEgxMktfQUNQSV9GVU5DX0JJVF9WQUxJRChfYWNkYXRhLCBfZnVuYylcXHQoKChfYWNkYXRhKS5mdW5jX2JpdCkgXFx1MDAyNiAoX2Z1bmMpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjMyOiNkZWZpbmUgQVRIMTJLX0FDUElfQ0hFS19CSVRfVkFMSUQoX2FjZGF0YSwgX2Z1bmMpXFx0KCgoX2FjZGF0YSkuYml0X2ZsYWcpIFxcdTAwMjYgKF9mdW5jKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaC0zMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDozNDojZGVmaW5lIEFUSDEyS19BQ1BJX1RBU19EQVRBX1ZFUlNJT05cXHRcXHQweDFcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDozNTojZGVmaW5lIEFUSDEyS19BQ1BJX1RBU19EQVRBX0VOQUJMRVxcdFxcdDB4MVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjM2OiNkZWZpbmUgQVRIMTJLX0FDUElfUE9XRVJfTElNSVRfVkVSU0lPTlxcdFxcdDB4MVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjM3OiNkZWZpbmUgQVRIMTJLX0FDUElfUE9XRVJfTElNSVRfRU5BQkxFX0ZMQUdcXHQweDFcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDozODojZGVmaW5lIEFUSDEyS19BQ1BJX0NDQV9USFJfVkVSU0lPTlxcdFxcdDB4MVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjM5OiNkZWZpbmUgQVRIMTJLX0FDUElfQ0NBX1RIUl9FTkFCTEVfRkxBR1xcdFxcdDB4MVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjQwOiNkZWZpbmUgQVRIMTJLX0FDUElfQkFORF9FREdFX1ZFUlNJT05cXHRcXHQweDFcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDo0MTojZGVmaW5lIEFUSDEyS19BQ1BJX0JBTkRfRURHRV9FTkFCTEVfRkxBR1xcdDB4MVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oLTQyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjQzOiNkZWZpbmUgQVRIMTJLX0FDUElfR0VPX09GRlNFVF9EQVRBX09GRlNFVFxcdDFcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDo0NDojZGVmaW5lIEFUSDEyS19BQ1BJX0RCU19CQUNLT0ZGX0RBVEFfT0ZGU0VUXFx0MlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjQ1OiNkZWZpbmUgQVRIMTJLX0FDUElfQ0NBX1RIUl9PRkZTRVRfREFUQV9PRkZTRVRcXHQ1XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6NDY6I2RlZmluZSBBVEgxMktfQUNQSV9CSU9TX1NBUl9EQlNfQkFDS09GRl9MRU5cXHQxMFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjQ3OiNkZWZpbmUgQVRIMTJLX0FDUElfUE9XRVJfTElNSVRfREFUQV9PRkZTRVRcXHQxMlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjQ4OiNkZWZpbmUgQVRIMTJLX0FDUElfQklPU19TQVJfR0VPX09GRlNFVF9MRU5cXHQxOFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjQ5OiNkZWZpbmUgQVRIMTJLX0FDUElfQklPU19TQVJfVEFCTEVfTEVOXFx0XFx0MjJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDo1MDojZGVmaW5lIEFUSDEyS19BQ1BJX0NDQV9USFJfT0ZGU0VUX0xFTlxcdFxcdDM2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmgtNTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6NTI6I2RlZmluZSBBVEgxMktfQUNQSV9EU01fVEFTX0RBVEFfU0laRVxcdFxcdFxcdDY5XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6NTM6I2RlZmluZSBBVEgxMktfQUNQSV9EU01fQkFORF9FREdFX0RBVEFfU0laRVxcdFxcdDEwMFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjU0OiNkZWZpbmUgQVRIMTJLX0FDUElfRFNNX1RBU19DRkdfU0laRVxcdFxcdFxcdDEwOFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oLTU1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjU2OiNkZWZpbmUgQVRIMTJLX0FDUElfRFNNX0ZVTkNfTUlOX0JJVE1BUF9TSVpFXFx0MVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjU3OiNkZWZpbmUgQVRIMTJLX0FDUElfRFNNX0ZVTkNfTUFYX0JJVE1BUF9TSVpFXFx0NFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oLTU4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjU5OiNkZWZpbmUgQVRIMTJLX0FDUElfRFNNX0RJU0FCTEVfMTFCRV9CSVRcXHRCSVQoMClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDo2MDojZGVmaW5lIEFUSDEyS19BQ1BJX0RTTV9ESVNBQkxFX1JGS0lMTF9CSVRcXHRCSVQoMilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaC02MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDo2MjojZGVmaW5lIEFUSDEyS19BQ1BJX0JERl9BTkNIT1JfU1RSSU5HX0xFTlxcdDNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDo2MzojZGVmaW5lIEFUSDEyS19BQ1BJX0JERl9BTkNIT1JfU1RSSU5HXFx0XFx0XFxcIkJERlxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDo2NDojZGVmaW5lIEFUSDEyS19BQ1BJX0JERl9NQVhfTEVOXFx0XFx0XFx0MTAwXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmgtNjUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6NjY6I2RlZmluZSBBVEgxMktfQUNQSV9EU01fR0VPX09GRlNFVF9EQVRBX1NJWkUgKEFUSDEyS19BQ1BJX0dFT19PRkZTRVRfREFUQV9PRkZTRVQgKyBcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6Njc6XFx0XFx0XFx0XFx0XFx0ICAgICAgQVRIMTJLX0FDUElfQklPU19TQVJfR0VPX09GRlNFVF9MRU4pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6Njg6I2RlZmluZSBBVEgxMktfQUNQSV9EU01fQklPU19TQVJfREFUQV9TSVpFIChBVEgxMktfQUNQSV9QT1dFUl9MSU1JVF9EQVRBX09GRlNFVCArIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDo2OTpcXHRcXHRcXHRcXHRcXHQgICAgQVRIMTJLX0FDUElfQklPU19TQVJfVEFCTEVfTEVOKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjcwOiNkZWZpbmUgQVRIMTJLX0FDUElfRFNNX0NDQV9EQVRBX1NJWkUgKEFUSDEyS19BQ1BJX0NDQV9USFJfT0ZGU0VUX0RBVEFfT0ZGU0VUICsgXFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjcxOlxcdFxcdFxcdFxcdCAgICAgICBBVEgxMktfQUNQSV9DQ0FfVEhSX09GRlNFVF9MRU4pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmgtNzItXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaD0xMDc9c3RhdGljIGlubGluZSBpbnQgYXRoMTJrX2FjcGlfY2hlY2tfYmRmX3ZhcmlhbnRfbmFtZShzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmgtMTEzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjExNDojZW5kaWYgLyogQVRIMTJLX0FDUElfSCAqL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0xOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjIwOiNkZWZpbmUgQVRIMTJLX0lSUV9DRTBfT0ZGU0VUIDRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjIxOiNkZWZpbmUgQVRIMTJLX1VQRF9JUlFfV1JEX0xFTiAgMThcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTIyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MjM6c3RhdGljIHN0cnVjdCBhdGgxMmtfYWhiX2RyaXZlciAqYXRoMTJrX2FoYl9mYW1pbHlfZHJpdmVyc1tBVEgxMktfREVWSUNFX0ZBTUlMWV9NQVhdO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjQtc3RhdGljIGNvbnN0IGNoYXIgYXRoMTJrX3VzZXJwZF9pcnFbXVs5XSA9IHtcXFwic3Bhd25cXFwiLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYz00Mj1zdGF0aWMgREVGSU5FX01VVEVYKGF0aDEya19ycHJvY19pbmZvX2xvY2spO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzo0NDpzdGF0aWMgY29uc3QgY2hhciAqaXJxX25hbWVbQVRIMTJLX0lSUV9OVU1fTUFYXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTQ1LVxcdFxcXCJtaXNjLXB1bHNlMVxcXCIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jPTE3OD1zdGF0aWMgdm9pZCBfX2F0aDEya19haGJfZXh0X2lycV9kaXNhYmxlKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTE4MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjE4MjpcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVRIMTJLX0VYVF9JUlFfR1JQX05VTV9NQVg7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMTgzLVxcdFxcdHN0cnVjdCBhdGgxMmtfZXh0X2lycV9ncnAgKmlycV9ncnAgPSBcXHUwMDI2YWItXFx1MDAzZWV4dF9pcnFfZ3JwW2ldO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYz0yNjA9c3RhdGljIHZvaWQgYXRoMTJrX2FoYl9zeW5jX2NlX2lycXMoc3RydWN0IGF0aDEya19iYXNlICphYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjY4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MjY5OlxcdFxcdGlycV9pZHggPSBBVEgxMktfSVJRX0NFMF9PRkZTRVQgKyBpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjcwLVxcdFxcdHN5bmNocm9uaXplX2lycShhYi1cXHUwMDNlaXJxX251bVtpcnFfaWR4XSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jPTI3ND1zdGF0aWMgdm9pZCBhdGgxMmtfYWhiX3N5bmNfZXh0X2lycXMoc3RydWN0IGF0aDEya19iYXNlICphYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjc4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6Mjc5OlxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBBVEgxMktfRVhUX0lSUV9HUlBfTlVNX01BWDsgaSsrKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0yODAtXFx0XFx0c3RydWN0IGF0aDEya19leHRfaXJxX2dycCAqaXJxX2dycCA9IFxcdTAwMjZhYi1cXHUwMDNlZXh0X2lycV9ncnBbaV07XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jPTMxOT1zdGF0aWMgdm9pZCBhdGgxMmtfYWhiX2V4dF9pcnFfZW5hYmxlKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTMyMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjMyNDpcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVRIMTJLX0VYVF9JUlFfR1JQX05VTV9NQVg7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMzI1LVxcdFxcdGlycV9ncnAgPSBcXHUwMDI2YWItXFx1MDAzZWV4dF9pcnFfZ3JwW2ldO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYz0zNDA9c3RhdGljIHZvaWQgYXRoMTJrX2FoYl9zdG9wKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0zNDEte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MzQyOlxcdGlmICghdGVzdF9iaXQoQVRIMTJLX0ZMQUdfQ1JBU0hfRkxVU0gsIFxcdTAwMjZhYi1cXHUwMDNlZGV2X2ZsYWdzKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTM0My1cXHRcXHRhdGgxMmtfYWhiX2NlX2lycXNfZGlzYWJsZShhYik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jPTM1MD1zdGF0aWMgaW50IGF0aDEya19haGJfcG93ZXJfdXAoc3RydWN0IGF0aDEya19iYXNlICphYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMzUyLVxcdHN0cnVjdCBhdGgxMmtfYWhiICphYl9haGIgPSBhdGgxMmtfYWJfdG9fYWhiKGFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjM1MzpcXHRjaGFyIGZ3X25hbWVbQVRIMTJLX1VTRVJQRF9GV19OQU1FX0xFTl07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzozNTQ6XFx0Y2hhciBmdzJfbmFtZVtBVEgxMktfVVNFUlBEX0ZXX05BTUVfTEVOXTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTM1NS1cXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBhYi1cXHUwMDNlZGV2O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0zNzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzozNzk6XFx0c25wcmludGYoZndfbmFtZSwgc2l6ZW9mKGZ3X25hbWUpLCBcXFwiJXMvJXMvJXMlZCVzXFxcIiwgQVRIMTJLX0ZXX0RJUixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjM4MDpcXHRcXHQgYWItXFx1MDAzZWh3X3BhcmFtcy1cXHUwMDNlZncuZGlyLCBBVEgxMktfQUhCX0ZXX1BSRUZJWCwgYWJfYWhiLVxcdTAwM2V1c2VycGRfaWQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzozODE6XFx0XFx0IEFUSDEyS19BSEJfRldfU1VGRklYKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTM4Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMzg4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6Mzg5OlxcdGF0aDEya19kYmcoYWIsIEFUSDEyS19EQkdfQUhCLCBcXFwiQm9vdGluZyBmdyBpbWFnZSAlcywgc2l6ZSAlemRcXFxcblxcXCIsIGZ3X25hbWUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0zOTAtXFx0XFx0ICAgZnctXFx1MDAzZXNpemUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0zOTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzozOTg6XFx0cGFzaWQgPSAodTMyX2VuY29kZV9iaXRzKGFiX2FoYi1cXHUwMDNldXNlcnBkX2lkLCBBVEgxMktfVVNFUlBEX0lEX01BU0spKSB8XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzozOTk6XFx0XFx0QVRIMTJLX0FIQl9VUERfU1dJRDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTQwMC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNDEyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6NDEzOlxcdHNucHJpbnRmKGZ3Ml9uYW1lLCBzaXplb2YoZncyX25hbWUpLCBcXFwiJXMvJXMvJXNcXFwiLCBBVEgxMktfRldfRElSLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6NDE0OlxcdFxcdCBhYi1cXHUwMDNlaHdfcGFyYW1zLVxcdTAwM2Vmdy5kaXIsIEFUSDEyS19BSEJfRlcyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTQxNS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNDIxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6NDIyOlxcdGF0aDEya19kYmcoYWIsIEFUSDEyS19EQkdfQUhCLCBcXFwiQm9vdGluZyBmdyBpbWFnZSAlcywgc2l6ZSAlemRcXFxcblxcXCIsIGZ3Ml9uYW1lLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNDIzLVxcdFxcdCAgIGZ3Mi1cXHUwMDNlc2l6ZSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTQ1NS1cXHR0aW1lX2xlZnQgPSB3YWl0X2Zvcl9jb21wbGV0aW9uX3RpbWVvdXQoXFx1MDAyNmFiX2FoYi1cXHUwMDNldXNlcnBkX3NwYXduZWQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzo0NTY6XFx0XFx0XFx0XFx0XFx0XFx0QVRIMTJLX1VTRVJQRF9TUEFXTl9USU1FT1VUKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTQ1Ny1cXHRpZiAoIXRpbWVfbGVmdCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy00NjMtXFx0dGltZV9sZWZ0ID0gd2FpdF9mb3JfY29tcGxldGlvbl90aW1lb3V0KFxcdTAwMjZhYl9haGItXFx1MDAzZXVzZXJwZF9yZWFkeSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjQ2NDpcXHRcXHRcXHRcXHRcXHRcXHRBVEgxMktfVVNFUlBEX1JFQURZX1RJTUVPVVQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNDY1LVxcdGlmICghdGltZV9sZWZ0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTQ3Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjQ3MzpcXHRhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX0FIQiwgXFxcIlVzZXJQRCVkIGlzIG5vdyBVUFxcXFxuXFxcIiwgYWJfYWhiLVxcdTAwM2V1c2VycGRfaWQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNDc0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYz00ODI9c3RhdGljIHZvaWQgYXRoMTJrX2FoYl9wb3dlcl9kb3duKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIsIGJvb2wgaXNfc3VzcGVuZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNDkyLVxcdHRpbWVfbGVmdCA9IHdhaXRfZm9yX2NvbXBsZXRpb25fdGltZW91dChcXHUwMDI2YWJfYWhiLVxcdTAwM2V1c2VycGRfc3RvcHBlZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjQ5MzpcXHRcXHRcXHRcXHRcXHRcXHRBVEgxMktfVVNFUlBEX1NUT1BfVElNRU9VVCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy00OTQtXFx0aWYgKCF0aW1lX2xlZnQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNTAxLVxcdGlmIChhYl9haGItXFx1MDAzZXNjbV9hdXRoX2VuYWJsZWQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjUwMjpcXHRcXHRwYXNpZCA9ICh1MzJfZW5jb2RlX2JpdHMoYWJfYWhiLVxcdTAwM2V1c2VycGRfaWQsIEFUSDEyS19VU0VSUERfSURfTUFTSykpIHxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjUwMzpcXHRcXHRcXHQgQVRIMTJLX0FIQl9VUERfU1dJRDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTUwNC1cXHRcXHQvKiBSZWxlYXNlIHRoZSBmaXJtd2FyZSAqL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYz01ODE9c3RhdGljIGludCBhdGgxMmtfYWhiX2NvbmZpZ19leHRfaXJxKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTU4OC1cXHRyaW5nX21hc2sgPSBhYi1cXHUwMDNlaHdfcGFyYW1zLVxcdTAwM2VyaW5nX21hc2s7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzo1ODk6XFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIEFUSDEyS19FWFRfSVJRX0dSUF9OVU1fTUFYOyBpKyspIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTU5MC1cXHRcXHRpcnFfZ3JwID0gXFx1MDAyNmFiLVxcdTAwM2VleHRfaXJxX2dycFtpXTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNjA1LVxcdFxcdFxcdCAgICBCSVQoYWItXFx1MDAzZWhhbC50Y2xfdG9fd2JtX3JibV9tYXBbal0ud2JtX3JpbmdfbnVtKSBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6NjA2OlxcdFxcdFxcdCAgICBudW1faXJxIFxcdTAwM2MgQVRIMTJLX0VYVF9JUlFfTlVNX01BWCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNjA3LVxcdFxcdFxcdFxcdGlycV9ncnAtXFx1MDAzZWlycXNbbnVtX2lycSsrXSA9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTYxMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjYxMjpcXHRcXHRmb3IgKGogPSAwOyBqIFxcdTAwM2MgQVRIMTJLX0VYVF9JUlFfTlVNX01BWDsgaisrKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy02MTMtXFx0XFx0XFx0aWYgKHJpbmdfbWFzay1cXHUwMDNlcnhbaV0gXFx1MDAyNiBCSVQoaikgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjYxNDpcXHRcXHRcXHQgICAgbnVtX2lycSBcXHUwMDNjIEFUSDEyS19FWFRfSVJRX05VTV9NQVgpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTYxNS1cXHRcXHRcXHRcXHRpcnFfZ3JwLVxcdTAwM2VpcnFzW251bV9pcnErK10gPVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy02MTktXFx0XFx0XFx0aWYgKHJpbmdfbWFzay1cXHUwMDNlcnhfZXJyW2ldIFxcdTAwMjYgQklUKGopIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzo2MjA6XFx0XFx0XFx0ICAgIG51bV9pcnEgXFx1MDAzYyBBVEgxMktfRVhUX0lSUV9OVU1fTUFYKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNjIxLVxcdFxcdFxcdFxcdGlycV9ncnAtXFx1MDAzZWlycXNbbnVtX2lycSsrXSA9IHJlbzJob3N0X2V4Y2VwdGlvbjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNjIzLVxcdFxcdFxcdGlmIChyaW5nX21hc2stXFx1MDAzZXJ4X3dibV9yZWxbaV0gXFx1MDAyNiBCSVQoaikgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjYyNDpcXHRcXHRcXHQgICAgbnVtX2lycSBcXHUwMDNjIEFUSDEyS19FWFRfSVJRX05VTV9NQVgpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy02MjUtXFx0XFx0XFx0XFx0aXJxX2dycC1cXHUwMDNlaXJxc1tudW1faXJxKytdID0gd2JtMmhvc3RfcnhfcmVsZWFzZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNjI3LVxcdFxcdFxcdGlmIChyaW5nX21hc2stXFx1MDAzZXJlb19zdGF0dXNbaV0gXFx1MDAyNiBCSVQoaikgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjYyODpcXHRcXHRcXHQgICAgbnVtX2lycSBcXHUwMDNjIEFUSDEyS19FWFRfSVJRX05VTV9NQVgpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy02MjktXFx0XFx0XFx0XFx0aXJxX2dycC1cXHUwMDNlaXJxc1tudW1faXJxKytdID0gcmVvMmhvc3Rfc3RhdHVzO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy02MzEtXFx0XFx0XFx0aWYgKHJpbmdfbWFzay1cXHUwMDNlcnhfbW9uX2Rlc3RbaV0gXFx1MDAyNiBCSVQoaikgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjYzMjpcXHRcXHRcXHQgICAgbnVtX2lycSBcXHUwMDNjIEFUSDEyS19FWFRfSVJRX05VTV9NQVgpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy02MzMtXFx0XFx0XFx0XFx0aXJxX2dycC1cXHUwMDNlaXJxc1tudW1faXJxKytdID1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM9NjU4PXN0YXRpYyBpbnQgYXRoMTJrX2FoYl9jb25maWdfaXJxKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTY2OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjY3MDpcXHRcXHRpcnFfaWR4ID0gQVRIMTJLX0lSUV9DRTBfT0ZGU0VUICsgaTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTY3MS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM9NzM2PXN0YXRpYyBpcnFyZXR1cm5fdCBhdGgxMmtfdXNlcnBkX2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmRhdGEpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTc0MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjc0MTpcXHRpZiAoaXJxID09IGFiX2FoYi1cXHUwMDNldXNlcnBkX2lycV9udW1bQVRIMTJLX1VTRVJQRF9TUEFXTl9JUlFdKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy03NDItXFx0XFx0Y29tcGxldGUoXFx1MDAyNmFiX2FoYi1cXHUwMDNldXNlcnBkX3NwYXduZWQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6NzQzOlxcdH0gZWxzZSBpZiAoaXJxID09IGFiX2FoYi1cXHUwMDNldXNlcnBkX2lycV9udW1bQVRIMTJLX1VTRVJQRF9SRUFEWV9JUlFdKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy03NDQtXFx0XFx0Y29tcGxldGUoXFx1MDAyNmFiX2FoYi1cXHUwMDNldXNlcnBkX3JlYWR5KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjc0NTpcXHR9IGVsc2UgaWYgKGlycSA9PSBhYl9haGItXFx1MDAzZXVzZXJwZF9pcnFfbnVtW0FUSDEyS19VU0VSUERfU1RPUF9BQ0tfSVJRXSlcXHR7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy03NDYtXFx0XFx0Y29tcGxldGUoXFx1MDAyNmFiX2FoYi1cXHUwMDNldXNlcnBkX3N0b3BwZWQpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYz03NTU9c3RhdGljIGludCBhdGgxMmtfYWhiX2NvbmZpZ19ycHJvY19pcnEoc3RydWN0IGF0aDEya19iYXNlICphYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNzYwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6NzYxOlxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBBVEgxMktfVVNFUlBEX01BWF9JUlE7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNzYyLVxcdFxcdGFiX2FoYi1cXHUwMDNldXNlcnBkX2lycV9udW1baV0gPSBwbGF0Zm9ybV9nZXRfaXJxX2J5bmFtZShhYi1cXHUwMDNlcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNzY2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6NzY3OlxcdFxcdHVwZF9pcnFfbmFtZSA9IGRldm1fa3phbGxvYyhcXHUwMDI2YWItXFx1MDAzZXBkZXYtXFx1MDAzZWRldiwgQVRIMTJLX1VQRF9JUlFfV1JEX0xFTixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTc2OC1cXHRcXHRcXHRcXHRcXHQgICAgR0ZQX0tFUk5FTCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTc3MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjc3MjpcXHRcXHRzY25wcmludGYodXBkX2lycV9uYW1lLCBBVEgxMktfVVBEX0lSUV9XUkRfTEVOLCBcXFwiVXNlclBEJXUtJXNcXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtNzczLVxcdFxcdFxcdCAgYWJfYWhiLVxcdTAwM2V1c2VycGRfaWQsIGF0aDEya191c2VycGRfaXJxW2ldKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM9ODAyPXN0YXRpYyBpbnQgYXRoMTJrX2FoYl9yb290X3BkX3N0YXRlX25vdGlmaWVyKHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTgwNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjgwODpcXHRpZiAoZXZlbnQgPT0gQVRIMTJLX1JQUk9DX0FGVEVSX1BPV0VSVVApIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjgwOTpcXHRcXHRhdGgxMmtfZ2VuZXJpY19kYmcoQVRIMTJLX0RCR19BSEIsIFxcXCJSb290IFBEIGlzIFVQXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTgxMC1cXHRcXHRjb21wbGV0ZShcXHUwMDI2cnByb2NfaW5mby1cXHUwMDNlcm9vdHBkX3JlYWR5KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM9ODg2PXN0YXRpYyBpbnQgYXRoMTJrX2FoYl9nZXRfcnByb2Moc3RydWN0IGF0aDEya19iYXNlICphYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtODk1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6ODk2OlxcdGlmIChhYl9haGItXFx1MDAzZXVzZXJwZF9pZCBcXHUwMDNlIEFUSDEyS19NQVhfREVWSUNFUylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTg5Ny1cXHRcXHRyZXR1cm4gLUVOT1NQQztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtODk5LVxcdGlmIChnX3Jwcm9jX2luZm8pIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjkwMDpcXHRcXHRpZiAoZ19ycHJvY19pbmZvLVxcdTAwM2VudW1fdXNlcnBkIFxcdTAwM2U9IEFUSDEyS19NQVhfREVWSUNFUykge1xcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yOFQwMTo0OTozNy4wMzA0NTc1NjlaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoxMTEzNzEwNDY1NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHM6XG5cbioqSW52ZXN0aWdhdGluZyBhdGgxMmsgQnVzIFN1cHBvcnQqKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGF0IGJ1c2VzIHRoZSBhdGgxMmsgZHJpdmVyIGFjdHVhbGx5IHN1cHBvcnRzLiBUaGF0J3MgdGhlIGxvZ2ljYWwgc3RhcnRpbmcgcG9pbnQsIHJpZ2h0PyBUbyBnZXQgYSBoYW5kbGUgb24gdGhlIG92ZXJhbGwgYXJjaGl0ZWN0dXJlIGFuZCBob3cgaXQncyBpbnRlcmZhY2luZyB3aXRoIGRpZmZlcmVudCBoYXJkd2FyZSwgSSBuZWVkIHRvIGtub3cgd2hlcmUgaXQgY2FuIHBsdWcgaW4uIExldCdzIGRpdmUgc3RyYWlnaHQgaW50byB0aGUgY29kZS4gVGhlIG9idmlvdXMgcGxhY2UgdG8gYmVnaW4gaXMgdGhlIGBLY29uZmlnYCBmaWxlIHdpdGhpbiB0aGUgYXRoMTJrIGRpcmVjdG9yeSDigJMgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZ2AuIFRoYXQncyB3aGVyZSBhbGwgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcmUgZGVjbGFyZWQsIGFuZCB0aGF0IHNob3VsZCBkZWZpbml0ZWx5IGluY2x1ZGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHN1cHBvcnRlZCBidXMgdHlwZXMuIEknbGwgZ2V0IHRoYXQgZmlsZSBvcGVuIGFuZCBzdGFydCBsb29raW5nIGZvciB0aGUgcGVydGluZW50IGNvbmZpZ3VyYXRpb25zLiBUaW1lIHRvIGRpZyBpbiBhbmQgc2VlIHdoYXQgYEtjb25maWdgIHJldmVhbHMhXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE4OTY3LCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjhUMDE6NDk6NDguMTY3NTY0MjY0WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjIzMDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDYwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXFxuICAgMjpcXHRjb25maWcgQVRIMTJLXFxuICAgMzpcXHRcXHR0cmlzdGF0ZSBcXFwiUXVhbGNvbW0gV2ktRmkgNyBzdXBwb3J0IChhdGgxMmspXFxcIlxcbiAgIDQ6XFx0XFx0ZGVwZW5kcyBvbiBNQUM4MDIxMSBcXHUwMDI2XFx1MDAyNiBIQVNfRE1BIFxcdTAwMjZcXHUwMDI2IFBDSVxcbiAgIDU6XFx0XFx0c2VsZWN0IFFDT01fUU1JX0hFTFBFUlNcXG4gICA2OlxcdFxcdHNlbGVjdCBNSElfQlVTXFxuICAgNzpcXHRcXHRzZWxlY3QgUVJUUlxcbiAgIDg6XFx0XFx0c2VsZWN0IFFSVFJfTUhJXFxuICAgOTpcXHRcXHRzZWxlY3QgUENJX1BXUkNUUkxfUFdSU0VRIGlmIEhBVkVfUFdSQ1RSTFxcbiAgMTA6XFx0XFx0aGVscFxcbiAgMTE6XFx0XFx0ICBFbmFibGUgc3VwcG9ydCBmb3IgUXVhbGNvbW0gVGVjaG5vbG9naWVzIFdpLUZpIDcgKElFRUVcXG4gIDEyOlxcdFxcdCAgODAyLjExYmUpIGZhbWlseSBvZiBjaGlwc2V0cywgZm9yIGV4YW1wbGUgV0NONzg1MCBhbmRcXG4gIDEzOlxcdFxcdCAgUUNOOTI3NC5cXG4gIDE0OlxcdFxcbiAgMTU6XFx0XFx0ICBJZiB5b3UgY2hvb3NlIHRvIGJ1aWxkIGEgbW9kdWxlLCBpdCdsbCBiZSBjYWxsZWQgYXRoMTJrLlxcbiAgMTY6XFx0XFxuICAxNzpcXHRjb25maWcgQVRIMTJLX0FIQlxcbiAgMTg6XFx0XFx0Ym9vbCBcXFwiUXVhbGNvbW0gYXRoMTJrIEFIQiBzdXBwb3J0XFxcIlxcbiAgMTk6XFx0XFx0ZGVwZW5kcyBvbiBBVEgxMksgXFx1MDAyNlxcdTAwMjYgUkVNT1RFUFJPQ1xcbiAgMjA6XFx0XFx0c2VsZWN0IFFDT01fTURUX0xPQURFUlxcbiAgMjE6XFx0XFx0c2VsZWN0IFFDT01fUEFTXFxuICAyMjpcXHRcXHRoZWxwXFxuICAyMzpcXHRcXHQgIEVuYWJsZSBzdXBwb3J0IGZvciBBdGgxMmsgQUhCIGJ1cyBjaGlwc2V0cywgZXhhbXBsZSBJUFE1MzMyLlxcbiAgMjQ6XFx0XFxuICAyNTpcXHRjb25maWcgQVRIMTJLX0RFQlVHXFxuICAyNjpcXHRcXHRib29sIFxcXCJhdGgxMmsgZGVidWdnaW5nXFxcIlxcbiAgMjc6XFx0XFx0ZGVwZW5kcyBvbiBBVEgxMktcXG4gIDI4OlxcdFxcdGhlbHBcXG4gIDI5OlxcdFxcdCAgRW5hYmxlIGRlYnVnIHN1cHBvcnQsIGZvciBleGFtcGxlIGRlYnVnIG1lc3NhZ2VzIHdoaWNoIG11c3RcXG4gIDMwOlxcdFxcdCAgYmUgZW5hYmxlZCBzZXBhcmF0ZWx5IHVzaW5nIHRoZSBkZWJ1Z19tYXNrIG1vZHVsZSBwYXJhbWV0ZXIuXFxuICAzMTpcXHRcXG4gIDMyOlxcdFxcdCAgSWYgdW5zdXJlLCBzYXkgWSB0byBtYWtlIGl0IGVhc2llciB0byBkZWJ1ZyBwcm9ibGVtcy4gQnV0IGlmXFxuICAzMzpcXHRcXHQgIHlvdSB3YW50IG9wdGltYWwgcGVyZm9ybWFuY2UgY2hvb3NlIE4uXFxuICAzNDpcXHRcXG4gIDM1OlxcdGNvbmZpZyBBVEgxMktfREVCVUdGU1xcbiAgMzY6XFx0XFx0Ym9vbCBcXFwiUXVhbGNvbW0gYXRoMTJrIGRlYnVnZnMgc3VwcG9ydFxcXCJcXG4gIDM3OlxcdFxcdGRlcGVuZHMgb24gQVRIMTJLIFxcdTAwMjZcXHUwMDI2IE1BQzgwMjExX0RFQlVHRlNcXG4gIDM4OlxcdFxcdGhlbHBcXG4gIDM5OlxcdFxcdCAgRW5hYmxlIGF0aDEyayBkZWJ1Z2ZzIHN1cHBvcnRcXG4gIDQwOlxcdFxcbiAgNDE6XFx0XFx0ICBJZiB1bnN1cmUsIHNheSBZIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGRlYnVnIHByb2JsZW1zLiBCdXQgaWZcXG4gIDQyOlxcdFxcdCAgeW91IHdhbnQgb3B0aW1hbCBwZXJmb3JtYW5jZSBjaG9vc2UgTi5cXG4gIDQzOlxcdFxcbiAgNDQ6XFx0Y29uZmlnIEFUSDEyS19UUkFDSU5HXFxuICA0NTpcXHRcXHRib29sIFxcXCJhdGgxMmsgdHJhY2luZyBzdXBwb3J0XFxcIlxcbiAgNDY6XFx0XFx0ZGVwZW5kcyBvbiBBVEgxMksgXFx1MDAyNlxcdTAwMjYgRVZFTlRfVFJBQ0lOR1xcbiAgNDc6XFx0XFx0aGVscFxcbiAgNDg6XFx0XFx0ICBFbmFibGUgYXRoMTJrIHRyYWNpbmcgaW5mcmFzdHJ1Y3R1cmUuXFxuICA0OTpcXHRcXG4gIDUwOlxcdFxcdCAgSWYgdW5zdXJlLCBzYXkgWSB0byBtYWtlIGl0IGVhc2llciB0byBkZWJ1ZyBwcm9ibGVtcy4gQnV0IGlmXFxuICA1MTpcXHRcXHQgIHlvdSB3YW50IG9wdGltYWwgcGVyZm9ybWFuY2UgY2hvb3NlIE4uXFxuICA1MjpcXHRcXG4gIDUzOlxcdGNvbmZpZyBBVEgxMktfQ09SRURVTVBcXG4gIDU0OlxcdFxcdGJvb2wgXFxcImF0aDEyayBjb3JlZHVtcFxcXCJcXG4gIDU1OlxcdFxcdGRlcGVuZHMgb24gQVRIMTJLXFxuICA1NjpcXHRcXHRzZWxlY3QgV0FOVF9ERVZfQ09SRURVTVBcXG4gIDU3OlxcdFxcdGhlbHBcXG4gIDU4OlxcdFxcdCAgRW5hYmxlIGF0aDEyayBjb3JlZHVtcCBjb2xsZWN0aW9uXFxuICA1OTpcXHRcXG4gIDYwOlxcdFxcdCAgSWYgdW5zdXJlLCBzYXkgWSB0byBtYWtlIGl0IGVhc2llciB0byBkZWJ1ZyBwcm9ibGVtcy4gQnV0IGlmXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI4VDAxOjQ5OjQ4LjE2NzYyODM1NVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjU3MTEzNzE3MTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgYXRoMTJrIERyaXZlciBmb3IgRnV6emluZyBTdWl0YWJpbGl0eSoqXG5cbk9rYXksIGxldCdzIGRpdmUgaW50byB0aGlzIGBhdGgxMmtgIHNpdHVhdGlvbi4gRmlyc3QsIEkgbmVlZCB0byByZW1pbmQgbXlzZWxmOiBpdCdzIGEgUXVhbGNvbW0gV2ktRmkgNyBQQ0kvQUhCIGRyaXZlci4gUmlnaHQsIGl0J3MgdGllZCB0byBzcGVjaWZpYyBRdWFsY29tbSBoYXJkd2FyZeKAlHRoaW5ncyBsaWtlIFdDTjc4NTAsIFFDTjkyNzQsIG9yIElQUTUzMzIuIEl0IGFsc28gYXBwZWFycyB0byByZWx5IG9uIE1ISSBvciBRQ09NIFFNSSBmaXJtd2FyZSBsb2FkaW5nLlxuXG5Ob3csIGhvbGQgb24uIEJlZm9yZSBJIGp1bXAgdG8gY29uY2x1c2lvbnMsIEkgbmVlZCB0byBjb25zaWRlciB3aGV0aGVyIHRoZXJlJ3MgYW55IGtpbmQgb2YgdmlydHVhbCBvciBlbXVsYXRlZCBpbnRlcmZhY2UsIHBlcmhhcHMgYSBVU0IgZ2FkZ2V0IG9yIGFueXRoaW5nIGVsc2UgdGhhdCBtaWdodCBjcmVhdGUgYSB1c2FibGUgZW52aXJvbm1lbnQgZm9yIHRoaXMuIExldCBtZSBjaGVjayB3aGF0IG9wdGlvbnMgZXhpc3QgZm9yIGVtdWxhdGluZyBvciBpZiBhdGgxMmsgaXMgc3RyaWN0bHkgdGllZCB0byBwaHlzaWNhbCBQQ0kvQUhCIGhhcmR3YXJlLlxuXG5XYWl0LCB0aGUgaW5zdHJ1Y3Rpb25zLiBMZXQncyBtYWtlIHN1cmUgSSdtIG9uIHRoZSByaWdodCB0cmFjazogUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggaW52b2x2ZXMgY29kZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLCBldmVuIHdpdGggc29mdHdhcmUgZW11bGF0ZWQgaGFyZHdhcmUgKGxpa2UgdXNiIGdhZGdldCBvciBtYWM4MDIxMV9od3NpbSksIGFuZCBhbHNvIGlmIHRoZSBjb2RlIGlzIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChtbHhzdywgcGRzX2NvcmUsIHFlZCwgaW9uaWMsIGFtZGdwdSkgcmVxdWlyaW5nIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG5cbkFoYSEgTm93IEknbSBnZXR0aW5nIGEgY2xlYXJlciBwaWN0dXJlLiBJcyBgYXRoMTJrYCAqb25seSogcGh5c2ljYWwgaGFyZHdhcmU/IFRoYXQncyB0aGUgY3JpdGljYWwgcXVlc3Rpb24gaGVyZS5cblxuT2theSwgdGltZSB0byBnZXQgc3BlY2lmaWMuIEknbGwgbmVlZCB0byBkcmlsbCBkb3duIGludG8gdGhlIGNvZGUgaXRzZWxmLCBzdGFydGluZyB3aXRoIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmNgLiBJIHdhbnQgdG8gc2VlIGV4YWN0bHkgd2hlcmUgYGF0aDEya193aWZpN19od19wYXJhbXNgIGlzIHVzZWQsIGFuZCBob3cuIFRoYXQgd2lsbCBsaWtlbHkgcmV2ZWFsIGlmIHRoaXMgZHJpdmVyIGhhcyBhbnkgY2hhbmNlIG9mIGJlaW5nIHRlc3RlZCBvdXRzaWRlIG9mIGEgdmVyeSBzcGVjaWZpYyBoYXJkd2FyZSBjb25maWd1cmF0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDA1NywiT3V0cHV0VG9rZW5zIjo0MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMxOCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI4VDAxOjQ5OjUzLjg3OTAwMjg5MloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2Nzc2OTM1OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJhdGgxMmtfd2lmaTdfaHdfcGFyYW1zXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmtcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9ody5jPTM1Mj1zdGF0aWMgY29uc3Qgc3RydWN0IGNlX3JlbWFwIGF0aDEya193aWZpN19jZV9yZW1hcF9pcHE1NDI0ID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9ody5jLTM1Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmM6MzU4OnN0YXRpYyBjb25zdCBzdHJ1Y3QgYXRoMTJrX2h3X3BhcmFtcyBhdGgxMmtfd2lmaTdfaHdfcGFyYW1zW10gPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9ody5jLTM1OS1cXHR7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmM9MTIyMj1pbnQgYXRoMTJrX3dpZmk3X2h3X2luaXQoc3RydWN0IGF0aDEya19iYXNlICphYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvaHcuYy0xMjI2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvaHcuYzoxMjI3OlxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBBUlJBWV9TSVpFKGF0aDEya193aWZpN19od19wYXJhbXMpOyBpKyspIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmM6MTIyODpcXHRcXHRod19wYXJhbXMgPSBcXHUwMDI2YXRoMTJrX3dpZmk3X2h3X3BhcmFtc1tpXTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmMtMTIyOS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvaHcuYy0xMjMzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvaHcuYzoxMjM0OlxcdGlmIChpID09IEFSUkFZX1NJWkUoYXRoMTJrX3dpZmk3X2h3X3BhcmFtcykpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmMtMTIzNS1cXHRcXHRhdGgxMmtfZXJyKGFiLCBcXFwiVW5zdXBwb3J0ZWQgV2ktRmkgNyBoYXJkd2FyZSB2ZXJzaW9uOiAweCV4XFxcXG5cXFwiLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yOFQwMTo0OTo1My45NDY3NzgyMVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjEyODQ2ODIzNzgzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKlRyYWNpbmcgdGhlIGBhdGgxMmtfd2lmaTdfaHdfaW5pdGAgQ2FsbCBDaGFpbioqXG5cbkFscmlnaHQsIGxldCdzIGRpdmUgaW4uIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBpbml0aWFsaXphdGlvbiBzZXF1ZW5jZSBmb3IgdGhpcyBgYXRoMTJrX3dpZmk3X2h3X2luaXRgIGZ1bmN0aW9uLiBHaXZlbiB0aGUgbmFtaW5nIGNvbnZlbnRpb24sIGl0J3MgcHJldHR5IGNsZWFyIGl0J3MgdGllZCB0byB0aGUgaGFyZHdhcmUgYnJpbmctdXAgcHJvY2VzcyBvZiBhbiBBdGhlcm9zIChsaWtlbHkgUXVhbGNvbW0pIFdpRmkgNyBjaGlwc2V0LCBwcmVzdW1hYmx5IHdpdGhpbiB0aGUgYGF0aDEya2AgZHJpdmVyLiBTbywgbXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdG8gdHJhY2Ugd2hlcmUgdGhpcyBmdW5jdGlvbiBpcyBhY3R1YWxseSBjYWxsZWQgZnJvbSB3aXRoaW4gdGhlIGRyaXZlcidzIGNvZGViYXNlLiBJJ2xsIG5lZWQgdG8gdXNlIG15IHVzdWFsIG1ldGhvZHMsIGxpa2VseSBhIGNvbWJpbmF0aW9uIG9mIHN0YXRpYyBhbmFseXNpcyAoZ3JlcHBpbmcgdGhlIHNvdXJjZSkgYW5kIHBlcmhhcHMgZXZlbiBzb21lIGR5bmFtaWMgdHJhY2luZyAoaWYgSSdtIGZlZWxpbmcgYW1iaXRpb3VzIGxhdGVyKS4gS25vd2luZyB0aGUgY2FsbCBzaXRlIHdpbGwgaW1tZWRpYXRlbHkgcHJvdmlkZSBjcnVjaWFsIGNvbnRleHQ6IHdoYXQgYXJlIHRoZSBjb25kaXRpb25zLCB0aGUgZGF0YSBzdHJ1Y3R1cmVzLCBhbmQgdGhlIG92ZXJhbGwgZHJpdmVyIHN0YXRlIGF0IHRoYXQgcG9pbnQ/IFRoYXQgY29udGV4dCBpcyBrZXkgdG8gdW5kZXJzdGFuZGluZyB0aGUgaW50ZW5kZWQgcm9sZSBvZiB0aGUgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24uIFRpbWUgdG8gc3RhcnQgZGlnZ2luZyB0aHJvdWdoIHRoZSBzb3VyY2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxMzQzLCJPdXRwdXRUb2tlbnMiOjQzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjhUMDE6NTA6MDYuNzkzNjA0MTIzWiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTM0NjU4OTUxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImF0aDEya193aWZpN19od19pbml0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmtcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9haGIuYz05Mj1zdGF0aWMgaW50IGF0aDEya193aWZpN19haGJfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvYWhiLmMtMTEyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvYWhiLmM6MTEzOlxcdHJldCA9IGF0aDEya193aWZpN19od19pbml0KGFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2FoYi5jLTExNC1cXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmM9MTE2ND1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgYXRoMTJrX29wc193aWZpNyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvaHcuYy0xMjIxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvaHcuYzoxMjIyOmludCBhdGgxMmtfd2lmaTdfaHdfaW5pdChzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvaHcuYy0xMjIzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvaHcuaD0xMD1zdHJ1Y3QgYXRoMTJrX2Jhc2U7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9ody5oOjExOmludCBhdGgxMmtfd2lmaTdfaHdfaW5pdChzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmgtMTItXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L3BjaS5jPTkxPXN0YXRpYyBpbnQgYXRoMTJrX3dpZmk3X3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvcGNpLmMtMTczLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvcGNpLmM6MTc0OlxcdHJldCA9IGF0aDEya193aWZpN19od19pbml0KGFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L3BjaS5jLTE3NS1cXHRpZiAocmV0KSB7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI4VDAxOjUwOjA3LjkyODI3MDMzNFoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoxOTIyNDc4ODI4MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBhdGgxMmsgRHJpdmVyIGFuZCBpdHMgRW52aXJvbm1lbnQqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIE15IGluaXRpYWwgdW5kZXJzdGFuZGluZyBpcyB0aGF0IGBhdGgxMmtfd2lmaTdfYWhiX3Byb2JlYCBhbmQgYGF0aDEya193aWZpN19wY2lfcHJvYmVgIGFyZSB0aGUga2V5IGVudHJ5IHBvaW50cyBmb3IgdGhlIGF0aDEyayBkcml2ZXIsIHNwZWNpZmljYWxseSBmb3IgUXVhbGNvbW0ncyBXaS1GaSA3IGhhcmR3YXJlLiBSaWdodCwgaXQncyBhIGhhcmR3YXJlIGRyaXZlciwgYW5kIGl0IG5lZWRzIHBoeXNpY2FsIFBDSSBvciBBSEIgY2FyZHMgKG9yIGEgUXVhbGNvbW0gU29DIEFIQiBkZXZpY2UsIHNwZWNpZmljYWxseSkgdG8gZnVuY3Rpb24uIFNvLCBpbW1lZGlhdGVseSwgSSdtIHRoaW5raW5nLCB0aGlzIGlzIGdvaW5nIHRvIGJlIGEgcHJvYmxlbSBpbiBhbnkgc3RhbmRhcmQgdmlydHVhbCBlbnZpcm9ubWVudCBsaWtlIFFFTVUgb3IgR0NFLiBObyBoYXJkd2FyZSwgbm8gZHJpdmVyLiBJdCB3b24ndCB3b3JrLlxuXG5NeSBleHBlcmllbmNlIHRlbGxzIG1lIHRoZSB0eXBpY2FsIHdvcmthcm91bmQgZm9yIHZpcnR1YWxpemVkIHdpcmVsZXNzIHRlc3RpbmcgaXMgYG1hYzgwMjExX2h3c2ltYC4gVGhhdCdzIHRoZSBnby10bywgYXMgaXQgaXMgYSBjb21wbGV0ZWx5IHNlcGFyYXRlIHZpcnR1YWwgZHJpdmVyIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL21hYzgwMjExX2h3c2ltLmNgLiBUaGUgdGhpbmcgdGhhdCdzIGFsc28gZnJlc2ggaW4gbXkgbWluZCBpcyB0aGF0IFVTQiB3aXJlbGVzcyBjYXJkcyBhcmUgYSBwb3RlbnRpYWwgYXZlbnVlIGZvciBmdXp6aW5nLCBzcGVjaWZpY2FsbHkgd2l0aCB0b29scyBsaWtlIFJhdyBHYWRnZXQgb3Igc3l6a2FsbGVyLiBEcml2ZXJzIGxpa2UgYGF0aDlrX2h0Y2AsIGBtdDc2YCwgYW5kIGBydDI4MDB1c2JgIGNvbWUgdG8gbWluZC4gSG93ZXZlciwgYW5kIHRoaXMgaXMgY3J1Y2lhbCwgYXRoMTJrIGlzICpub3QqIGEgVVNCIGRyaXZlci4gSXQgaXMgcHVyZWx5IFBDSSBhbmQgQUhCIGJhc2VkLCBhbmQgaXQgd29ya3Mgd2l0aCBhIFF1YWxjb21tIHJlbW90ZXByb2MuXG5cbkhvbGQgb24sIEkgbmVlZCB0byB2ZXJpZnkgdGhhdCBzdGF0ZW1lbnQuIEl0J3MgYWx3YXlzIHdpc2UgdG8gZG91YmxlLWNoZWNrIHRoZXNlIGFzc3VtcHRpb25zLiBJIHNob3VsZCBzY291ciB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmtgIGRpcmVjdG9yeSBpdHNlbGYgdG8gc2VlIGlmIHRoZXJlIGFyZSBhbnkgKmhpZGRlbiogVVNCIG9yIHZpcnR1YWwgY29tcG9uZW50cy4gSSBuZWVkIHRvIGJlIGFic29sdXRlbHkgc3VyZSB0aGF0IEkgYW0gbm90IG1pc3NpbmcgYW55dGhpbmcuIEkgd2lsbCBzZWFyY2ggZm9yIFVTQiBvciB2aXJ0aW8gcmVsYXRlZCBjb2RlIHRvIGNvbmZpcm0gdGhpcy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjIyMDgsIk91dHB1dFRva2VucyI6MzYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNzgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjhUMDE6NTA6MjcuMTUzMDYwOTc0WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjMwNzkyMTcsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInVzYnx2aXJ0aW9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEya1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjhUMDE6NTA6MjcuMjc2MTQ1NzAyWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjQ3MzU0MDkxMDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgUGF0Y2gqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIEZpcnN0LCBJJ20gY2hlY2tpbmcgYWdhaW5zdCB0aGUgZGVmaW5lZCBydWxlcyBmb3Igc2tpcHBpbmcgZnV6emluZy4gVGhlIGtleSBoZXJlIGlzIHRoZSBtb2RpZmljYXRpb24gdG8gYGF0aDEya193aWZpN19od19wYXJhbXNgIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2h3LmNgLiBJIGtub3cgdGhpcyBkcml2ZXIgaXMgZm9yIFF1YWxjb21tIFdpLUZpIDcgaGFyZHdhcmUg4oCTIHRoaW5rIFdDTjc4NTAsIFFDTjkyNzQsIElQUTUzMzIsIHRoYXQgc29ydCBvZiB0aGluZy4gSXQgaGFuZGxlcyBib3RoIFBDSSBhbmQgQUhCIGRldmljZXMuIFRoZSBzcGVjaWZpYyBjaGFuZ2UgaXMgYWRkaW5nIGBCSVQoTkw4MDIxMV9JRlRZUEVfQVBfVkxBTilgIHRvIGBpbnRlcmZhY2VfbW9kZXNgLlxuXG5UaGUgY3JpdGljYWwgcGllY2UgaXMgdGhhdCB0aGlzIHNwZWNpZmljIGhhcmR3YXJlIOKAkyB0aGUgUXVhbGNvbW0gV2ktRmkgNyBjaGlwc2V0IOKAkyBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciBvdGhlciB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0UuIFN0YW5kYXJkIFFFTVUganVzdCBkb2Vzbid0IGhhdmUgdGhlIG1vZGVsIGZvciB0aGVzZSBzcGVjaWZpYyBkZXZpY2VzLCBlc3BlY2lhbGx5IHRob3NlIHVzaW5nIE1ISSBidXNlcy4gVGhlcmVmb3JlLCB0aGUgY29kZSBwYXRoIHRoYXQgdGhpcyBwYXRjaCB0b3VjaGVzICpjYW5ub3QqIGJlIHJlYWNoZWQgaW4gYSB0eXBpY2FsIGZ1enppbmcgc2V0dXAuIEl0IHJlcXVpcmVzIHJlYWwsIHBoeXNpY2FsIGhhcmR3YXJlLlxuXG5TbywgYWNjb3JkaW5nIHRvIHRoZSBydWxlcywgSSBjYW4gY29uZmlkZW50bHkgc2V0IGBXb3J0aEZ1enppbmdgIHRvIGBmYWxzZWAuIFRoZXJlIGFyZSBubyBzcGVjaWZpYyBmb2N1cyBzeW1ib2xzIG9yIGVuYWJsZSBjb25maWd1cmF0aW9ucyBuZWVkZWQgaGVyZSwgc28gdGhvc2UgY2FuIHJlbWFpbiBlbXB0eS4gTXkgcmVhc29uaW5nIGlzIHN0cmFpZ2h0Zm9yd2FyZDogdGhlIGNoYW5nZXMgYXJlIHdpdGhpbiBhIGRyaXZlciBmb3IgaGFyZHdhcmUgdGhhdCdzIG5vdCBlbXVsYXRhYmxlIGluIG91ciBzdGFuZGFyZCBmdXp6aW5nIGVudmlyb25tZW50cy4gV2Ugd29uJ3QgYmUgYWJsZSB0byBhY2hpZXZlIGNvZGUgY292ZXJhZ2Ugb2YgdGhpcyBjaGFuZ2Ugd2l0aG91dCB0aGF0IHBoeXNpY2FsIGhhcmR3YXJlLiBJJ2xsIGRvY3VtZW50IHRoaXMgY29uY2lzZSBleHBsYW5hdGlvbiBhbmQgZmluYWxpemUgdGhlIHJlc3VsdHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIyOTQxLCJPdXRwdXRUb2tlbnMiOjEyNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjUyMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yOFQwMTo1MDozMi4wMTE1NTc0MTZaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMjM3MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIE5MODAyMTFfSUZUWVBFX0FQX1ZMQU4gdG8gdGhlIHN1cHBvcnRlZCBpbnRlcmZhY2UgbW9kZXMgaW4gYXRoMTJrX3dpZmk3X2h3X3BhcmFtcyBmb3IgUXVhbGNvbW0gV2ktRmkgNyBkZXZpY2VzLiBUaGUgYXRoMTJrIGRyaXZlciBpcyBhIGhhcmR3YXJlIGRyaXZlciBmb3IgUXVhbGNvbW0gUENJIGFuZCBBSEIgd2lyZWxlc3MgY2hpcHMgYW5kIGNhbm5vdCBiZSByZWFjaGVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAoc3VjaCBhcyBRRU1VIG9yIEdDRSkgYXMgaXQgcmVxdWlyZXMgcGh5c2ljYWwgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGJ5IHN0YW5kYXJkIFFFTVUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIE5MODAyMTFfSUZUWVBFX0FQX1ZMQU4gdG8gdGhlIHN1cHBvcnRlZCBpbnRlcmZhY2UgbW9kZXMgaW4gYXRoMTJrX3dpZmk3X2h3X3BhcmFtcyBmb3IgUXVhbGNvbW0gV2ktRmkgNyBkZXZpY2VzLiBUaGUgYXRoMTJrIGRyaXZlciBpcyBhIGhhcmR3YXJlIGRyaXZlciBmb3IgUXVhbGNvbW0gUENJIGFuZCBBSEIgd2lyZWxlc3MgY2hpcHMgYW5kIGNhbm5vdCBiZSByZWFjaGVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAoc3VjaCBhcyBRRU1VIG9yIEdDRSkgYXMgaXQgcmVxdWlyZXMgcGh5c2ljYWwgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGJ5IHN0YW5kYXJkIFFFTVUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yOFQwMTo1MDozMi4wMTE1ODMwMDZaIiwiU2VxIjoxNSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE0NzAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+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-workflowpfqgb[1] Phase: Running StartedAt: 2026-08-28 01:50:43 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpfqgb[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-28 01:50:43 +0000 UTC FinishedAt: 2026-08-28 01:50:47 +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,}