Name: series-workflow9q8gc Phase: Failed StartedAt: 2026-09-04 20:07:58 +0000 UTC FinishedAt: 2026-09-04 20:11:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9q8gc[0] Phase: Succeeded StartedAt: 2026-09-04 20:07:58 +0000 UTC FinishedAt: 2026-09-04 20:11:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9q8gc[0].run-triage Phase: Succeeded StartedAt: 2026-09-04 20:07:58 +0000 UTC FinishedAt: 2026-09-04 20:11:05 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA0IDIwOjEwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYXRoMTJrX21hY191cGRhdGVfZnJlcV9yYW5nZSBpbiB0aGUgYXRoMTJrIGRyaXZlci4gYXRoMTJrIGlzIGEgdmVuZG9yLXNwZWNpZmljIGRyaXZlciBmb3IgUXVhbGNvbW0gV2ktRmkgNyBQQ0llL0FIQiBoYXJkd2FyZSBkZXZpY2VzLCB3aGljaCByZXF1aXJlcyBwaHlzaWNhbCBoYXJkd2FyZSBhbmQgY2Fubm90IGJlIGVtdWxhdGVkIG9yIHByb2JlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpLCBtYWtpbmcgdGhlIG1vZGlmaWVkIGNvZGUgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNCAyMDoxMDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGQ5MGIwODdiOTFjZWQ1ZWViZjYwOGU3Y2QxNTM3NWY3NDE1YWIyMzdcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIFNlcCA0IDIwOjEwOjA5IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jXG5pbmRleCA5OWJmNWNmNzlkMTAyLi42NTRjNThkN2MxZDVmIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuY1xuQEAgLTE0MTI1LDcgJiM0MzsxNDEyNSw3IEBAIEVYUE9SVF9TWU1CT0woYXRoMTJrX21hY19vcF9zZXRfcmVrZXlfZGF0YSk7XG4gdm9pZCBhdGgxMmtfbWFjX3VwZGF0ZV9mcmVxX3JhbmdlKHN0cnVjdCBhdGgxMmsgKmFyLFxuIFx0XHRcdFx0ICB1MzIgZnJlcV9sb3csIHUzMiBmcmVxX2hpZ2gpXG4ge1xuLVx0aWYgKCEoZnJlcV9sb3cgXHUwMDI2XHUwMDI2IGZyZXFfaGlnaCkpXG4mIzQzO1x0aWYgKCFmcmVxX2xvdyB8fCBmcmVxX2xvdyBcdTAwM2U9IGZyZXFfaGlnaClcbiBcdFx0cmV0dXJuO1xuIFxuIFx0aWYgKGFyLVx1MDAzZWZyZXFfcmFuZ2Uuc3RhcnRfZnJlcSB8fCBhci1cdTAwM2VmcmVxX3JhbmdlLmVuZF9mcmVxKSB7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDQgMjA6MTA8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Y29yZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYXRoMTJrX21hY191cGRhdGVfZnJlcV9yYW5nZSBpbiB0aGUgYXRoMTJrIGRyaXZlci4gYXRoMTJrIGlzIGEgdmVuZG9yLXNwZWNpZmljIGRyaXZlciBmb3IgUXVhbGNvbW0gV2ktRmkgNyBQQ0llL0FIQiBoYXJkd2FyZSBkZXZpY2VzLCB3aGljaCByZXF1aXJlcyBwaHlzaWNhbCBoYXJkd2FyZSBhbmQgY2Fubm90IGJlIGVtdWxhdGVkIG9yIHByb2JlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpLCBtYWtpbmcgdGhlIG1vZGlmaWVkIGNvZGUgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIgYW5kIHNlY3VyaXR5IGVuZ2luZWVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGV2YWx1YXRlIHdoZXRoZXIgaXQgd2FycmFudHMgZnV6emluZyB3aXRoIHN5emthbGxlci4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24gaW50ZXJuYWwgYXNzdW1wdGlvbnMuIFlvdSBtdXN0IGFjdGl2ZWx5IHVzZSB5b3VyIGNvZGUgYWNjZXNzCnRvb2xzIHRvIGluc3BlY3QgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSwgY2FsbGVycywgYW5kIHN1cnJvdW5kaW5nIGNvbnRleHQuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoxLiBDT1JFIFRSSUFHRSBQSElMT1NPUEhZCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClRoZSBnb2FsIG9mIHBhdGNoIGZ1enppbmcgaXMgdG8gZGlzY292ZXIgY3Jhc2hlcywgcmVncmVzc2lvbnMsIGV4cG9zZWQgbGF0ZW50IGJ1Z3MsCmFuZCBuZXdseSB0cmlnZ2VyZWQgYXNzZXJ0aW9ucyBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBzZXJpZXMuCgotIFJFQUNIQUJJTElUWSBJUyBUSEUgUFJJTUFSWSBHQVRFOgogIEZ1enppbmcgY2FuIG9ubHkgZGlzY292ZXIgYnVncyBpbiBjb2RlIHRoYXQgY2FuIGFjdHVhbGx5IGV4ZWN1dGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQKICBlbnZpcm9ubWVudHMgKEdDRSBvciBRRU1VLCB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgZGV2aWNlcyBsaWtlIFVTQiBnYWRnZXRzLCBuZXRkZXYsIHR1bi90YXApLgogIElmIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSAoc2VlIFNlY3Rpb24gMiksIGl0IE1VU1QgTk9UIGJlIGZ1enplZCwKICByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgYWRkcyBhc3NlcnRpb25zIG9yIGNvbXBsZXggbG9naWMuCgotIERPIE5PVCBCTElORExZIFRSVVNUICYjMzQ7Tk8gRlVOQ1RJT05BTCBDSEFOR0UmIzM0OyAoTkZDSSkgT1IgJiMzNDtSRUZBQ1RPUklORyYjMzQ7IENMQUlNUzoKICBQYXRjaCBhdXRob3JzIHJvdXRpbmVseSBsYWJlbCBjaGFuZ2VzIGFzICYjMzQ7Y2xlYW51cHMmIzM0OywgJiMzNDtyZWZhY3RvcmluZ3MmIzM0Oywgb3Igc3RhdGUKICAmIzM0O05vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVkJiMzNDsuIERvIE5PVCB0YWtlIHRoZXNlIGNsYWltcyBhdCBmYWNlIHZhbHVlLgogIENvZGUgcmVmYWN0b3JpbmdzIHRoYXQgcmVhcnJhbmdlIGxvZ2ljLCBpbnRyb2R1Y2UgaGVscGVyIGZ1bmN0aW9ucywgb3IgYWx0ZXIgc3RhdGUgbWFuYWdlbWVudAogIGluIGNvcmUgc3Vic3lzdGVtcyBmcmVxdWVudGx5IGludHJvZHVjZSBzdWJ0bGUgc2VtYW50aWMgc2hpZnRzIG9yIHVuY292ZXIgbGF0ZW50IGtlcm5lbCBidWdzLgogIElmIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUgaXMgbW9kaWZpZWQgb3IgcmVmYWN0b3JlZCwgaXQgTVVTVCBiZSBmdXp6ZWQuCgotIE5FVyBPUiBNT0RJRklFRCBBU1NFUlRJT05TIElOIFJFQUNIQUJMRSBDT0RFIE1VU1QgQkUgRlVaWkVEOgogIFdoZW4gYSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzIHJ1bnRpbWUgY2hlY2tzIG9yIGFzc2VydGlvbnMgKGUuZy4sIFdBUk5fT04qLCBWTV9XQVJOX09OKiwKICBCVUdfT04qLCBsb2NrZGVwX2Fzc2VydCopIGluIHJlYWNoYWJsZSBjb2RlIHBhdGhzLCBpdCBlbmZvcmNlcyBuZXcgb3Igc3RyaWN0ZXIgaW52YXJpYW50cy4KICBFdmVuIGlmIHRoZSBhdXRob3IgYmVsaWV2ZXMgdGhlIGludmFyaWFudCBhbHdheXMgaG9sZHMsIGZ1enppbmcgaXMgZXNzZW50aWFsIHRvIHZlcmlmeSB3aGV0aGVyCiAgYW4gdW51c3VhbCBzZXF1ZW5jZSBvZiBvcGVyYXRpb25zIGNhbiB2aW9sYXRlIGl0LgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMi4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPWZhbHNlIChORUdBVElWRSBDUklURVJJQSkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBPTkxZIElGIGFsbCBtb2RpZmllZCBjb2RlIGZhbGxzIHN0cmljdGx5IGludG8gb25lIG9yIG1vcmUgb2YgdGhlc2UgY2F0ZWdvcmllczoKCi0gTm9uLWtlcm5lbCBhbmQgbm9uLWV4ZWN1dGFibGUgY2hhbmdlczoKICAqIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIGNvbW1lbnRzLCBvciBzcGVsbGluZyBmaXhlcy4KICAqIFVzZXItc3BhY2UgZGlyZWN0b3JpZXMsIHNlbGYtdGVzdHMsIHNhbXBsZXMsIG9yIHNjcmlwdHMgKGUuZy4sIHRvb2xzLywgc2FtcGxlcy8sIHNjcmlwdHMvLCB1c3IvKQogICAgdGhhdCBkbyBub3QgYWZmZWN0IHRoZSBjb21waWxlZCBrZXJuZWwgaW1hZ2UgKHZtbGludXgpIG9yIGtlcm5lbCBtb2R1bGVzLgogICogUHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZyAoZS5nLiwgbWVzc2FnZSBzdHJpbmdzIGluIHByX2VyciwgcHJpbnRrLCBkZXZfaW5mbykgb3IgdHJhY2Vwb2ludHMKICAgIHRoYXQgZG8gbm90IGFsdGVyIGNvbnRyb2wgZmxvdyBvciBkYXRhIHN0cnVjdHVyZXMuCiAgKiBCdWlsZCBzeXN0ZW0gb3IgS2NvbmZpZyBjaGFuZ2VzIHRoYXQgZG8gbm90IGFsdGVyIGNvbXBpbGVkIEMgbG9naWMuCi0gU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlOgogICogVmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoZXMsIFNtYXJ0TklDcywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogICAgaW9uaWMsIGFtZGdwdSkgcmVxdWlyaW5nIHBoeXNpY2FsIEFTSUMvUENJZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBVbnJlYWNoYWJsZSBleGVjdXRpb24gcGF0aHM6CiAgKiBEcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzICgucmVtb3ZlLCAuc2h1dGRvd24sIHBjaV91bnJlZ2lzdGVyX2RyaXZlcikgZXhlY3V0ZWQgb25seSBkdXJpbmcKICAgIHBoeXNpY2FsIFBDSSBob3QtdW5wbHVnIG9yIG1hbnVhbCBzeXNmcyBkcml2ZXIgdW5iaW5kaW5nLgogICogQ29kZSBwYXRocyBleGNsdXNpdmUgdG8gYXJjaGl0ZWN0dXJlcyBvdGhlciB0aGFuIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMy4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPXRydWUgKFBPU0lUSVZFIENSSVRFUklBKQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSZXR1cm4gV29ydGhGdXp6aW5nPXRydWUgd2hlbmV2ZXIgdGhlIHBhdGNoIHRvdWNoZXMgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSwgaW5jbHVkaW5nOgotIENvcmUgU3Vic3lzdGVtczoKICAqIEFueSBsb2dpYyBtb2RpZmljYXRpb25zIGluIG1lbW9yeSBtYW5hZ2VtZW50IChtbS8pLCBzeW5jaHJvbml6YXRpb24vbG9ja2luZyAoa2VybmVsL2xvY2tpbmcvKSwKICAgIEJQRiwgc2NoZWR1bGVyLCBjb3JlIG5ldHdvcmtpbmcsIFZGUywgb3Igc3lzY2FsbCBoYW5kbGluZy4KLSBSZWZhY3RvcmluZ3MgYW5kIENvZGUgQ2xlYW51cHM6CiAgKiBBbnkgcmVzdHJ1Y3R1cmluZyBvZiByZWFjaGFibGUgZGF0YSBzdHJ1Y3R1cmVzLCBoZWxwZXIgYWJzdHJhY3Rpb25zLCBvciBhbGdvcml0aG0gZmxvd3MuCi0gUnVudGltZSBBc3NlcnRpb25zIGFuZCBEZWZlbnNpdmUgQ2hlY2tzOgogICogQW55IGludHJvZHVjdGlvbiBvciBhbHRlcmF0aW9uIG9mIGFzc2VydGlvbnMgKFdBUk5fT04qLCBWTV9XQVJOX09OKiwgQlVHX09OKiwgZXRjLikgaW4gcmVhY2hhYmxlIHBhdGhzLgotIFJlYWNoYWJsZSBEcml2ZXJzIGFuZCBQcm90b2NvbHM6CiAgKiBEcml2ZXJzIGFjY2Vzc2libGUgdmlhIHZpcnR1YWwgYnVzZXMgKHZpcnRpbywgVVNCIGdhZGdldCwgbG9vcGJhY2ssIG5ldGxpbmssIGJpbmRlciwgc29ja2V0cywgZXRjLikuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo0LiBFWFRSQUNUSU5HIEZvY3VzU3ltYm9scyAoUFJFVkVOVElORyBESUxVVElPTikKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KV2hlbiBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IG11c3QgZXh0cmFjdCBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIGludG8gRm9jdXNTeW1ib2xzIHRvIGd1aWRlIHRoZSBmdXp6ZXI6CgotIEFWT0lEIFVCSVFVSVRPVVMgTElGRUNZQ0xFIEhPVC1QQVRIUzoKICBEbyBOT1QgbGlzdCBnZW5lcmljLCB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYWxsZWQgYnkgYWxtb3N0IGV2ZXJ5IHByb2dyYW0gaW4gdGhlIGNvcnB1cwogIChpbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0bzogZ2VuZXJhbCBtZW1vcnkgYWxsb2NhdG9ycyBhbmQgZGVhbGxvY2F0b3JzLCBwYWdlIGZhdWx0CiAgYW5kIHRyYXAgaGFuZGxlcnMsIG9yIGNvcmUgc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXM7IHRoaXMgaXMgbm90IGFuIGV4aGF1c3RpdmUgbGlzdCkuCiAgTGlzdGluZyB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYXVzZXMgdGhlIGZ1enplciB0byBjbGFzc2lmeSB0aG91c2FuZHMgb2YgdW5yZWxhdGVkIHRlc3RzIGFzICYjMzQ7Zm9jdXNlZCYjMzQ7LAogIHdoaWNoIHNldmVyZWx5IGRpbHV0ZXMgZnV6emluZyBlZmZvcnQgYXdheSBmcm9tIHRoZSBhY3R1YWwgY2hhbmdlcy4KCi0gVEFSR0VUIFNQRUNJRklDIEZFQVRVUkUgTE9HSUMgQU5EIEVOVFJZUE9JTlRTOgogIExpc3QgZnVuY3Rpb25zIHRoYXQgc3BlY2lmaWNhbGx5IGltcGxlbWVudCB0aGUgbG9naWMgYmVpbmcgYWRkZWQgb3IgYWx0ZXJlZCwgb3IgZGlyZWN0IEFQSSBlbnRyeXBvaW50cwogIGZvciB0aGUgc3Vic3lzdGVtIGZlYXR1cmUgdW5kZXIgcmV2aWV3LgoKLSBIQU5ETElORyBTVEFUSUMgSU5MSU5FIEZVTkNUSU9OUyBJTiBIRUFERVJTICguaCk6CiAgQ29tcGlsZXItaW5saW5lZCBzdGF0aWMgZnVuY3Rpb25zIChzdWNoIGFzIHN0YXRpYyBpbmxpbmVzIGluIG1tLyouaCBvciBpbmNsdWRlL2xpbnV4LyouaCkgbGFjawogIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMgaW4gdm1saW51eCBhbmQgY2Fubm90IGJlIHRhcmdldGVkIGRpcmVjdGx5IGJ5IHN5bWJvbCBjb3ZlcmFnZSBmaWx0ZXJzLgogIElmIHRoZSBjaGFuZ2VzIGFyZSBwcmltYXJpbHkgaW4gc3RhdGljIGlubGluZSBoZWxwZXJzLCBpZGVudGlmeSBub24tc3RhdGljLCBmZWF0dXJlLXNwZWNpZmljIGNhbGxlcgogIGZ1bmN0aW9ucyBpbiAuYyBmaWxlcyB0aGF0IGV4ZXJjaXNlIHRoZW0gKGF2b2lkaW5nIHViaXF1aXRvdXMgbGlmZWN5Y2xlIHdyYXBwZXJzKS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjUuIElERU5USUZZSU5HIEVuYWJsZUNvbmZpZ3MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSBjb21waWxlIGFuZCByZWFjaCB0aGUgbW9kaWZpZWQgY29kZToKLSBJbnNwZWN0IEtjb25maWcgZmlsZXMgYW5kICNpZmRlZiBndWFyZHM7IGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgotIENoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncyBuZWVkZWQuCi0gU3RyaXAgYW55ICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPlRhcmdldCBhcmNoaXRlY3R1cmU6IGFtZDY0CgpGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGQ5MGIwODdiOTFjZWQ1ZWViZjYwOGU3Y2QxNTM3NWY3NDE1YWIyMzcKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgRnJpIFNlcCA0IDIwOjEwOjA5IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmMKaW5kZXggOTliZjVjZjc5ZDEwMi4uNjU0YzU4ZDdjMWQ1ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jCkBAIC0xNDEyNSw3ICYjNDM7MTQxMjUsNyBAQCBFWFBPUlRfU1lNQk9MKGF0aDEya19tYWNfb3Bfc2V0X3Jla2V5X2RhdGEpOwogdm9pZCBhdGgxMmtfbWFjX3VwZGF0ZV9mcmVxX3JhbmdlKHN0cnVjdCBhdGgxMmsgKmFyLAogCQkJCSAgdTMyIGZyZXFfbG93LCB1MzIgZnJlcV9oaWdoKQogewotCWlmICghKGZyZXFfbG93ICZhbXA7JmFtcDsgZnJlcV9oaWdoKSkKJiM0MzsJaWYgKCFmcmVxX2xvdyB8fCBmcmVxX2xvdyAmZ3Q7PSBmcmVxX2hpZ2gpCiAJCXJldHVybjsKIAogCWlmIChhci0mZ3Q7ZnJlcV9yYW5nZS5zdGFydF9mcmVxIHx8IGFyLSZndDtmcmVxX3JhbmdlLmVuZF9mcmVxKSB7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA0IDIwOjEwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI5MjAKCQkJCQkJCW91dHB1dDogODUKCQkJCQkJCXRob3VnaHRzOiAzNzYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBQYXRjaCBmb3IgRnV6emluZyBQb3RlbnRpYWwqKgoKT2theSwgbGV0JiMzOTtzIHRha2UgYSBsb29rIGF0IHRoaXMgcGF0Y2ggYW5kIGRlY2lkZSBpZiBpdCYjMzk7cyB3b3J0aCB0aGUgdGltZSB0byBmdXp6IHdpdGggc3l6a2FsbGVyLiBUaGUgZGlmZiBpcyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkOyBpdCBzZWVtcyB0byBiZSBpbiB0aGUgYGF0aDEya2Agd2lyZWxlc3MgZHJpdmVyLiBTcGVjaWZpY2FsbHksIGl0JiMzOTtzIGEgY29uZGl0aW9uYWwgY2hlY2sgcmVsYXRlZCB0byBmcmVxdWVuY3kgcmFuZ2VzLiBUaGUgb3JpZ2luYWwgY2hlY2sgd2FzIGBpZiAoIShmcmVxX2xvdyAmYW1wOyZhbXA7IGZyZXFfaGlnaCkpYCwgd2hpY2ggaGFzIGJlZW4gY2hhbmdlZCB0byBgaWYgKCFmcmVxX2xvdyB8fCBmcmVxX2xvdyAmZ3Q7PSBmcmVxX2hpZ2gpYC4gVGhpcyBzdWdnZXN0cyBhIHBvdGVudGlhbCBidWcgb3IgdnVsbmVyYWJpbGl0eSByZWxhdGVkIHRvIGZyZXF1ZW5jeSByYW5nZSB2YWxpZGF0aW9uLiBUaGF0JiMzOTtzIGEgcmVhc29uYWJsZSBjaGFuZ2UsIGF0IGZpcnN0IGdsYW5jZS4KCkZpcnN0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IGBhdGgxMmtgICppcyouIEkgbmVlZCB0byBkZXRlcm1pbmUgaWYgdGhpcyBkcml2ZXIgaXMgc29tZXRoaW5nIHRoYXQmIzM5O3MgbGlrZWx5IHRvIGJlIHJlYWNoZWQgaW4gYSBzdGFuZGFyZCwgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQsIGxpa2UgUUVNVSBvciBHb29nbGUgQ29tcHV0ZSBFbmdpbmUuIElmIGl0IHJlcXVpcmVzIHNwZWNpYWxpemVkIGhhcmR3YXJlLCB0aGF0IGdyZWF0bHkgaW5jcmVhc2VzIHRoZSBvdmVyaGVhZCBvZiBmdXp6aW5nLiBJJiMzOTtsbCBuZWVkIHRvIGNoZWNrIHRoZSBLY29uZmlnIGFuZCBidXMgdHlwZSBkZWZpbml0aW9ucyBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9gIHRvIGdldCBhIGhhbmRsZSBvbiB0aGlzLCBhbmQgc2VlIHdoYXQgdGhlIGRldmljZSBkZXBlbmRzIG9uLgoKSSYjMzk7bGwgdXNlIGBncmVwcGVyYCAob3IgYHJlYWQtZmlsZWAgaWYgdGhlIGdyZXAgZmFpbHMpIHRvIHF1aWNrbHkgc2NhbiB0aHJvdWdoIHRoZSBjb2RlIGJhc2UgYW5kIGNvbmZpZ3VyYXRpb24gZmlsZXMgcmVsYXRlZCB0byBgYXRoMTJrYCB0byBnYXRoZXIgdGhpcyBpbmZvcm1hdGlvbi4gTXkgZ29hbCBpcyB0byBxdWlja2x5IGFzY2VydGFpbiB0aGUgYWNjZXNzaWJpbGl0eSBvZiB0aGlzIGNvZGUgZm9yIGEgc3RhbmRhcmQgZnV6emluZyBzZXR1cC4gQmFzZWQgb24gdGhhdCBhc3Nlc3NtZW50LCBJJiMzOTtsbCB0aGVuIGRlY2lkZSBpZiB0aGlzIHBhdGNoIGlzIGEgZ29vZCBjYW5kaWRhdGUgZm9yIHN5emthbGxlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNCAyMDoxMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDthdGgxMmtfbWFjX3VwZGF0ZV9mcmVxX3JhbmdlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyayYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jPTE0MTIzPUVYUE9SVF9TWU1CT0woYXRoMTJrX21hY19vcF9zZXRfcmVrZXlfZGF0YSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jLTE0MTI0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYzoxNDEyNTp2b2lkIGF0aDEya19tYWNfdXBkYXRlX2ZyZXFfcmFuZ2Uoc3RydWN0IGF0aDEyayAqYXIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jLTE0MTI2LVx0XHRcdFx0ICB1MzIgZnJlcV9sb3csIHUzMiBmcmVxX2hpZ2gpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYz0xNDIyNT1zdGF0aWMgaW50IGF0aDEya19tYWNfc2V0dXBfY2hhbm5lbHNfcmF0ZXMoc3RydWN0IGF0aDEyayAqYXIsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYy0xNDI3MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmM6MTQyNzI6XHRcdGF0aDEya19tYWNfdXBkYXRlX2ZyZXFfcmFuZ2UoYXIsIGZyZXFfbG93LCBmcmVxX2hpZ2gpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYy0xNDI3My1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jLTE0MzE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYzoxNDMxNzpcdFx0XHRhdGgxMmtfbWFjX3VwZGF0ZV9mcmVxX3JhbmdlKGFyLCBmcmVxX2xvdywgZnJlcV9oaWdoKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmMtMTQzMTgtXHRcdFx0YWgtXHUwMDNldXNlXzZnaHpfcmVnZCA9IHRydWU7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYy0xNDM3My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmM6MTQzNzQ6XHRcdFx0YXRoMTJrX21hY191cGRhdGVfZnJlcV9yYW5nZShhciwgZnJlcV9sb3csIGZyZXFfaGlnaCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jLTE0Mzc1LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmg9MjA0PWludCBhdGgxMmtfbWFjX2dldF9md19zdGF0cyhzdHJ1Y3QgYXRoMTJrICphciwgc3RydWN0IGF0aDEya19md19zdGF0c19yZXFfcGFyYW1zICpwYXJhbSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5oOjIwNTp2b2lkIGF0aDEya19tYWNfdXBkYXRlX2ZyZXFfcmFuZ2Uoc3RydWN0IGF0aDEyayAqYXIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5oLTIwNi1cdFx0XHRcdCAgdTMyIGZyZXFfbG93LCB1MzIgZnJlcV9oaWdoKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3JlZy5jPTI2OT1pbnQgYXRoMTJrX3JlZ2RfdXBkYXRlKHN0cnVjdCBhdGgxMmsgKmFyLCBib29sIGluaXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9yZWcuYy0zMDktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3JlZy5jOjMxMDpcdFx0YXRoMTJrX21hY191cGRhdGVfZnJlcV9yYW5nZShhciwgZnJlcV9sb3csIGZyZXFfaGlnaCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3JlZy5jLTMxMS1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3JlZy5jLTMyMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcmVnLmM6MzIyOlx0XHRhdGgxMmtfbWFjX3VwZGF0ZV9mcmVxX3JhbmdlKGFyLCBmcmVxX2xvdywgZnJlcV9oaWdoKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcmVnLmMtMzIzLVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcmVnLmMtMzI4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9yZWcuYzozMjk6XHRcdGF0aDEya19tYWNfdXBkYXRlX2ZyZXFfcmFuZ2UoYXIsIGZyZXFfbG93LCBmcmVxX2hpZ2gpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9yZWcuYy0zMzAtXHR9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDQgMjA6MTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDUwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcbiAgIDI6XHRjb25maWcgQVRIMTJLXG4gICAzOlx0XHR0cmlzdGF0ZSBcJiMzNDtRdWFsY29tbSBXaS1GaSA3IHN1cHBvcnQgKGF0aDEyaylcJiMzNDtcbiAgIDQ6XHRcdGRlcGVuZHMgb24gTUFDODAyMTEgXHUwMDI2XHUwMDI2IEhBU19ETUEgXHUwMDI2XHUwMDI2IFBDSVxuICAgNTpcdFx0c2VsZWN0IFFDT01fUU1JX0hFTFBFUlNcbiAgIDY6XHRcdHNlbGVjdCBNSElfQlVTXG4gICA3Olx0XHRzZWxlY3QgUVJUUlxuICAgODpcdFx0c2VsZWN0IFFSVFJfTUhJXG4gICA5Olx0XHRzZWxlY3QgUENJX1BXUkNUUkxfUFdSU0VRIGlmIEhBVkVfUFdSQ1RSTFxuICAxMDpcdFx0aGVscFxuICAxMTpcdFx0ICBFbmFibGUgc3VwcG9ydCBmb3IgUXVhbGNvbW0gVGVjaG5vbG9naWVzIFdpLUZpIDcgKElFRUVcbiAgMTI6XHRcdCAgODAyLjExYmUpIGZhbWlseSBvZiBjaGlwc2V0cywgZm9yIGV4YW1wbGUgV0NONzg1MCBhbmRcbiAgMTM6XHRcdCAgUUNOOTI3NC5cbiAgMTQ6XHRcbiAgMTU6XHRcdCAgSWYgeW91IGNob29zZSB0byBidWlsZCBhIG1vZHVsZSwgaXQmIzM5O2xsIGJlIGNhbGxlZCBhdGgxMmsuXG4gIDE2Olx0XG4gIDE3Olx0Y29uZmlnIEFUSDEyS19BSEJcbiAgMTg6XHRcdGJvb2wgXCYjMzQ7UXVhbGNvbW0gYXRoMTJrIEFIQiBzdXBwb3J0XCYjMzQ7XG4gIDE5Olx0XHRkZXBlbmRzIG9uIEFUSDEySyBcdTAwMjZcdTAwMjYgUkVNT1RFUFJPQ1xuICAyMDpcdFx0c2VsZWN0IFFDT01fTURUX0xPQURFUlxuICAyMTpcdFx0c2VsZWN0IFFDT01fUEFTXG4gIDIyOlx0XHRoZWxwXG4gIDIzOlx0XHQgIEVuYWJsZSBzdXBwb3J0IGZvciBBdGgxMmsgQUhCIGJ1cyBjaGlwc2V0cywgZXhhbXBsZSBJUFE1MzMyLlxuICAyNDpcdFxuICAyNTpcdGNvbmZpZyBBVEgxMktfREVCVUdcbiAgMjY6XHRcdGJvb2wgXCYjMzQ7YXRoMTJrIGRlYnVnZ2luZ1wmIzM0O1xuICAyNzpcdFx0ZGVwZW5kcyBvbiBBVEgxMktcbiAgMjg6XHRcdGhlbHBcbiAgMjk6XHRcdCAgRW5hYmxlIGRlYnVnIHN1cHBvcnQsIGZvciBleGFtcGxlIGRlYnVnIG1lc3NhZ2VzIHdoaWNoIG11c3RcbiAgMzA6XHRcdCAgYmUgZW5hYmxlZCBzZXBhcmF0ZWx5IHVzaW5nIHRoZSBkZWJ1Z19tYXNrIG1vZHVsZSBwYXJhbWV0ZXIuXG4gIDMxOlx0XG4gIDMyOlx0XHQgIElmIHVuc3VyZSwgc2F5IFkgdG8gbWFrZSBpdCBlYXNpZXIgdG8gZGVidWcgcHJvYmxlbXMuIEJ1dCBpZlxuICAzMzpcdFx0ICB5b3Ugd2FudCBvcHRpbWFsIHBlcmZvcm1hbmNlIGNob29zZSBOLlxuICAzNDpcdFxuICAzNTpcdGNvbmZpZyBBVEgxMktfREVCVUdGU1xuICAzNjpcdFx0Ym9vbCBcJiMzNDtRdWFsY29tbSBhdGgxMmsgZGVidWdmcyBzdXBwb3J0XCYjMzQ7XG4gIDM3Olx0XHRkZXBlbmRzIG9uIEFUSDEySyBcdTAwMjZcdTAwMjYgTUFDODAyMTFfREVCVUdGU1xuICAzODpcdFx0aGVscFxuICAzOTpcdFx0ICBFbmFibGUgYXRoMTJrIGRlYnVnZnMgc3VwcG9ydFxuICA0MDpcdFxuICA0MTpcdFx0ICBJZiB1bnN1cmUsIHNheSBZIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGRlYnVnIHByb2JsZW1zLiBCdXQgaWZcbiAgNDI6XHRcdCAgeW91IHdhbnQgb3B0aW1hbCBwZXJmb3JtYW5jZSBjaG9vc2UgTi5cbiAgNDM6XHRcbiAgNDQ6XHRjb25maWcgQVRIMTJLX1RSQUNJTkdcbiAgNDU6XHRcdGJvb2wgXCYjMzQ7YXRoMTJrIHRyYWNpbmcgc3VwcG9ydFwmIzM0O1xuICA0NjpcdFx0ZGVwZW5kcyBvbiBBVEgxMksgXHUwMDI2XHUwMDI2IEVWRU5UX1RSQUNJTkdcbiAgNDc6XHRcdGhlbHBcbiAgNDg6XHRcdCAgRW5hYmxlIGF0aDEyayB0cmFjaW5nIGluZnJhc3RydWN0dXJlLlxuICA0OTpcdFxuICA1MDpcdFx0ICBJZiB1bnN1cmUsIHNheSBZIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGRlYnVnIHByb2JsZW1zLiBCdXQgaWZcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNCAyMDoxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1NDEzCgkJCQkJCQlvdXRwdXQ6IDQyCgkJCQkJCQl0aG91Z2h0czogMzUxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgYXRoMTJrJiMzOTtzIFZpcnR1YWxpemF0aW9uIEZlYXNpYmlsaXR5KioKCk9rYXksIHNvIGBhdGgxMmtgIOKAkyB0aGF0JiMzOTtzIHRoZSBRdWFsY29tbSBXaS1GaSA3IGRyaXZlciwgc3BlY2lmaWNhbGx5IGZvciB0aGUgV0NONzg1MCBhbmQgUUNOOTI3NCwgZGVhbGluZyB3aXRoIFBDSSBhbmQgQUhCIGludGVyZmFjZXMuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBjYW4gSSBldmVuICp0b3VjaCogdGhpcyB0aGluZyBpbiBhIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50IGxpa2UgUUVNVSBvciBHb29nbGUgQ29tcHV0ZSBFbmdpbmU/CgpUaGUgZHJpdmVyIGlzIGNsZWFybHkgdGllZCB0byB0aGUgaGFyZHdhcmU6IGl0JiMzOTtzIGEgUENJL0FIQiBkcml2ZXIgZm9yIHRoZXNlIHNwZWNpZmljIFF1YWxjb21tIFdpLUZpIDcgY2FyZHMuIFNvLCBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiB0aGVyZSYjMzk7cyBhbnkgY2hhbmNlIG9mIGVtdWxhdGlvbiwgb3IgaWYgaXQmIzM5O3Mgc3RyaWN0bHkgZGVwZW5kZW50IG9uIGhhdmluZyB0aGUgcGh5c2ljYWwgUXVhbGNvbW0gaGFyZHdhcmUsIHRoZSBmaXJtd2FyZSwgYW5kIHRoYXQgTUhJIGJ1cyBjb25uZWN0aW9uLgoKVGhlIGNyaXRlcmlhIEkmIzM5O20gdXNpbmcgc3RhdGUgdGhhdCBpZiBzb21ldGhpbmcmIzM5O3Mgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlLCBsaWtlIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIEdQVSBkcml2ZXJzICh0aGluayBtbHhzdywgcGRzX2NvcmUsIHFlZCwgaW9uaWMsIGFtZGdwdSksIGFuZCAqZXNwZWNpYWxseSogZHJpdmVycyB0aGF0IHJlcXVpcmUgdGhlIGFjdHVhbCBBU0lDL1BDSWUgY2FyZHMgdGhhdCBRRU1VIGRvZXNuJiMzOTt0IGVtdWxhdGUsIHRoZW4gaXQmIzM5O3MgYSBuby1nbyBmb3IgV29ydGhGdXp6aW5nLgoKSSYjMzk7bSB0aGlua2luZywgJiMzNDt3aGF0IGhhcmR3YXJlIGRvZXMgYXRoMTJrICphY3R1YWxseSogc3VwcG9ydD8mIzM0OyBJdCYjMzk7cyBRdWFsY29tbSBXaS1GaSA3IGRldmljZXMgdXNpbmcgUENJZS9BSEIuIE9rYXksIHNvIG5vdyBJIG5lZWQgdG8gZGV0ZXJtaW5lIGlmIHN0YW5kYXJkIFFFTVUgb3IgR0NFIG9mZmVyIGFueXRoaW5nIGxpa2UgYW4gZW11bGF0ZWQgYXRoMTJrIGRldmljZS4gQW5kIHRoZSBhbnN3ZXIgaXMgbGlrZWx5IG5vLiBRRU1VIGdlbmVyYWxseSBoYXMgb3RoZXIgb3B0aW9ucywgbGlrZSBtYWM4MDIxMV9od3NpbSwgdmlydGlvLW5ldCwgZTEwMDAsIHJ0bDgxMzksIG9yIGV2ZW4gVVNCIGdhZGdldCBXaS1GaSBkZXZpY2VzLCBidXQgYGF0aDEya2AgaXMgc3BlY2lmaWNhbGx5IFBDSS9BSEIuCgpMZXQmIzM5O3MgZHJpbGwgZG93biBhbmQgY29uZmlybSBieSBleGFtaW5pbmcgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmNgIGFuZCBgYWhiLmNgIHRvIHNlZSBpZiB0aGF0IHJlaW5mb3JjZXMgdGhlIGhhcmR3YXJlIGRlcGVuZGVuY2llcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNCAyMDoxMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDthdGgxMmtfJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTA1OCBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0zOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6Mzk6c3RhdGljIHN0cnVjdCBhdGgxMmtfcGNpX2RyaXZlciAqYXRoMTJrX3BjaV9mYW1pbHlfZHJpdmVyc1tBVEgxMktfREVWSUNFX0ZBTUlMWV9NQVhdO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo0MDpzdGF0aWMgY29uc3Qgc3RydWN0IGF0aDEya19tc2lfY29uZmlnIG1zaV9jb25maWdfb25lX21zaSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNDEtXHQudG90YWxfdmVjdG9ycyA9IDEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTQyLVx0LnRvdGFsX3VzZXJzID0gNCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NDM6XHQudXNlcnMgPSAoc3RydWN0IGF0aDEya19tc2lfdXNlcltdKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTQ0LVx0XHR7IC5uYW1lID0gXCYjMzQ7TUhJXCYjMzQ7LCAubnVtX3ZlY3RvcnMgPSAzLCAuYmFzZV92ZWN0b3IgPSAwIH0sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYz01MT1zdGF0aWMgY29uc3QgY2hhciAqaXJxX25hbWVbQVRIMTJLX0lSUV9OVU1fTUFYXSA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTEwOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MTEwOnN0YXRpYyB2b2lkIGF0aDEya19wY2lfc2VsZWN0X3dpbmRvdyhzdHJ1Y3QgYXRoMTJrX3BjaSAqYWJfcGNpLCB1MzIgb2Zmc2V0KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0xMTEte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoxMTI6XHRzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiID0gYWJfcGNpLVx1MDAzZWFiO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0xMTMtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0xMzAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjEzMTpzdGF0aWMgdm9pZCBhdGgxMmtfcGNpX3NlbGVjdF9zdGF0aWNfd2luZG93KHN0cnVjdCBhdGgxMmtfcGNpICphYl9wY2kpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTEzMi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0xNDctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjE0ODpzdGF0aWMgdTMyIGF0aDEya19wY2lfZ2V0X3dpbmRvd19zdGFydChzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0xNDktXHRcdFx0XHQgICAgICAgdTMyIG9mZnNldClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMTUwLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MTUxOlx0c3RydWN0IGF0aDEya19wY2kgKmFiX3BjaSA9IGF0aDEya19wY2lfcHJpdihhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTE1Mi1cdHUzMiB3aW5kb3dfc3RhcnQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0xNjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjE2NjpzdGF0aWMgaW5saW5lIGJvb2wgYXRoMTJrX3BjaV9pc19vZmZzZXRfd2l0aGluX21oaV9yZWdpb24odTMyIG9mZnNldClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMTY3LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTE3MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MTcxOnN0YXRpYyB2b2lkIGF0aDEya19wY2lfcmVzdG9yZV93aW5kb3coc3RydWN0IGF0aDEya19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMTcyLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MTczOlx0c3RydWN0IGF0aDEya19wY2kgKmFiX3BjaSA9IGF0aDEya19wY2lfcHJpdihhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTE3NC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTE4My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MTg0OnN0YXRpYyB2b2lkIGF0aDEya19wY2lfc29jX2dsb2JhbF9yZXNldChzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0xODUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMTg3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoxODg6XHR2YWwgPSBhdGgxMmtfcGNpX3JlYWQzMihhYiwgUENJRV9TT0NfR0xPQkFMX1JFU0VUKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMTg5LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMTkxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoxOTI6XHRhdGgxMmtfcGNpX3dyaXRlMzIoYWIsIFBDSUVfU09DX0dMT0JBTF9SRVNFVCwgdmFsKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMTkzLVx0LyogRmx1c2ggdGhlIHBvc3RlZCB3cml0ZSB0byB0aGUgZGV2aWNlICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjE5NDpcdGF0aDEya19wY2lfcmVhZDMyKGFiLCBQQ0lFX1NPQ19HTE9CQUxfUkVTRVQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0xOTUtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yMDItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjIwMzpcdGF0aDEya19wY2lfd3JpdGUzMihhYiwgUENJRV9TT0NfR0xPQkFMX1JFU0VULCB2YWwpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yMDQtXHQvKiBGbHVzaCB0aGUgcG9zdGVkIHdyaXRlIHRvIHRoZSBkZXZpY2UgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjA1Olx0YXRoMTJrX3BjaV9yZWFkMzIoYWIsIFBDSUVfU09DX0dMT0JBTF9SRVNFVCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTIwNi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTIwOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjA5Olx0dmFsID0gYXRoMTJrX3BjaV9yZWFkMzIoYWIsIFBDSUVfU09DX0dMT0JBTF9SRVNFVCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTIxMC1cdGlmICh2YWwgPT0gMHhmZmZmZmZmZilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjExOlx0XHRhdGgxMmtfd2FybihhYiwgXCYjMzQ7bGluayBkb3duIGVycm9yIGR1cmluZyBnbG9iYWwgcmVzZXRcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yMTItXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yMTUtXHQgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjE2Olx0YXRoMTJrX3BjaV9yZXN0b3JlX3dpbmRvdyhhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTIxNy19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTIxOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjE5OnN0YXRpYyB2b2lkIGF0aDEya19wY2lfY2xlYXJfZGJnX3JlZ2lzdGVycyhzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yMjAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMjIzLVx0LyogcmVhZCBjb29raWUgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjI0Olx0dmFsID0gYXRoMTJrX3BjaV9yZWFkMzIoYWIsIFBDSUVfUTZfQ09PS0lFX0FERFIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoyMjU6XHRhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX1BDSSwgXCYjMzQ7Y29va2llOjB4JXhcXG5cJiMzNDssIHZhbCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTIyNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjI3Olx0dmFsID0gYXRoMTJrX3BjaV9yZWFkMzIoYWIsIFdMQU9OX1dBUk1fU1dfRU5UUlkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoyMjg6XHRhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX1BDSSwgXCYjMzQ7V0xBT05fV0FSTV9TV19FTlRSWSAweCV4XFxuXCYjMzQ7LCB2YWwpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yMjktXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yMzUtXHQgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjM2Olx0YXRoMTJrX3BjaV93cml0ZTMyKGFiLCBXTEFPTl9XQVJNX1NXX0VOVFJZLCAwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMjM3LVx0bWRlbGF5KDEwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMjM4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoyMzk6XHR2YWwgPSBhdGgxMmtfcGNpX3JlYWQzMihhYiwgV0xBT05fV0FSTV9TV19FTlRSWSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjI0MDpcdGF0aDEya19kYmcoYWIsIEFUSDEyS19EQkdfUENJLCBcJiMzNDtXTEFPTl9XQVJNX1NXX0VOVFJZIDB4JXhcXG5cJiMzNDssIHZhbCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTI0MS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTI0NC1cdCAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoyNDU6XHR2YWwgPSBhdGgxMmtfcGNpX3JlYWQzMihhYiwgV0xBT05fU09DX1JFU0VUX0NBVVNFX1JFRyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjI0NjpcdGF0aDEya19kYmcoYWIsIEFUSDEyS19EQkdfUENJLCBcJiMzNDtzb2MgcmVzZXQgY2F1c2U6JWRcXG5cJiMzNDssIHZhbCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTI0Ny19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTI0OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjQ5OnN0YXRpYyB2b2lkIGF0aDEya19wY2lfZW5hYmxlX2x0c3NtKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTI1MC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yNTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjI1NDpcdHZhbCA9IGF0aDEya19wY2lfcmVhZDMyKGFiLCBQQ0lFX1BDSUVfUEFSRl9MVFNTTSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTI1NS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTI2MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjYxOlx0XHRhdGgxMmtfcGNpX3dyaXRlMzIoYWIsIFBDSUVfUENJRV9QQVJGX0xUU1NNLCBQQVJNX0xUU1NNX1ZBTFVFKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjYyOlx0XHR2YWwgPSBhdGgxMmtfcGNpX3JlYWQzMihhYiwgUENJRV9QQ0lFX1BBUkZfTFRTU00pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yNjMtXHR9XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTI2NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjY1Olx0YXRoMTJrX2RiZyhhYiwgQVRIMTJLX0RCR19QQ0ksIFwmIzM0O3BjaSBsdHNzbSAweCV4XFxuXCYjMzQ7LCB2YWwpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yNjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjI2NzpcdHZhbCA9IGF0aDEya19wY2lfcmVhZDMyKGFiLCBHQ0NfR0NDX1BDSUVfSE9UX1JTVChhYikpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yNjgtXHR2YWwgfD0gR0NDX0dDQ19QQ0lFX0hPVF9SU1RfVkFMO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoyNjk6XHRhdGgxMmtfcGNpX3dyaXRlMzIoYWIsIEdDQ19HQ0NfUENJRV9IT1RfUlNUKGFiKSwgdmFsKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjcwOlx0dmFsID0gYXRoMTJrX3BjaV9yZWFkMzIoYWIsIEdDQ19HQ0NfUENJRV9IT1RfUlNUKGFiKSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTI3MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjcyOlx0YXRoMTJrX2RiZyhhYiwgQVRIMTJLX0RCR19QQ0ksIFwmIzM0O3BjaSBwY2llX2hvdF9yc3QgMHgleFxcblwmIzM0OywgdmFsKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMjczLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMjc2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoyNzc6c3RhdGljIHZvaWQgYXRoMTJrX3BjaV9jbGVhcl9hbGxfaW50cnMoc3RydWN0IGF0aDEya19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMjc4LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTI4My1cdCAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoyODQ6XHRhdGgxMmtfcGNpX3dyaXRlMzIoYWIsIFBDSUVfUENJRV9JTlRfQUxMX0NMRUFSLCBQQ0lFX0lOVF9DTEVBUl9BTEwpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yODUtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yODYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjI4NzpzdGF0aWMgdm9pZCBhdGgxMmtfcGNpX3NldF93bGFvbl9wd3JfY3RybChzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yODgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMjkwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoyOTE6XHR2YWwgPSBhdGgxMmtfcGNpX3JlYWQzMihhYiwgV0xBT05fUUZQUk9NX1BXUl9DVFJMX1JFRyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTI5Mi1cdHZhbCBcdTAwMjY9IH5RRlBST01fUFdSX0NUUkxfVkRENEJMT1dfTUFTSztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjkzOlx0YXRoMTJrX3BjaV93cml0ZTMyKGFiLCBXTEFPTl9RRlBST01fUFdSX0NUUkxfUkVHLCB2YWwpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yOTQtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yOTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjI5NjpzdGF0aWMgdm9pZCBhdGgxMmtfcGNpX2ZvcmNlX3dha2Uoc3RydWN0IGF0aDEya19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMjk3LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6Mjk4Olx0YXRoMTJrX3BjaV93cml0ZTMyKGFiLCBQQ0lFX1NPQ19XQUtFX1BDSUVfTE9DQUxfUkVHLCAxKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMjk5LVx0bWRlbGF5KDUpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMzAxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzozMDI6c3RhdGljIHZvaWQgYXRoMTJrX3BjaV9zd19yZXNldChzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiLCBib29sIHBvd2VyX29uKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0zMDMte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0zMDQtXHRpZiAocG93ZXJfb24pIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MzA1Olx0XHRhdGgxMmtfcGNpX2VuYWJsZV9sdHNzbShhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjMwNjpcdFx0YXRoMTJrX3BjaV9jbGVhcl9hbGxfaW50cnMoYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzozMDc6XHRcdGF0aDEya19wY2lfc2V0X3dsYW9uX3B3cl9jdHJsKGFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMzA4LVx0fVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0zMDktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjMxMDpcdGF0aDEya19taGlfY2xlYXJfdmVjdG9yKGFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MzExOlx0YXRoMTJrX3BjaV9jbGVhcl9kYmdfcmVnaXN0ZXJzKGFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MzEyOlx0YXRoMTJrX3BjaV9zb2NfZ2xvYmFsX3Jlc2V0KGFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MzEzOlx0YXRoMTJrX21oaV9zZXRfbWhpY3RybF9yZXNldChhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTMxNC19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTMxNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MzE2OnN0YXRpYyB2b2lkIGF0aDEya19wY2lfZnJlZV9leHRfaXJxKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTMxNy17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0zMjAtXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBVEgxMktfRVhUX0lSUV9HUlBfTlVNX01BWDsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MzIxOlx0XHRzdHJ1Y3QgYXRoMTJrX2V4dF9pcnFfZ3JwICppcnFfZ3JwID0gXHUwMDI2YWItXHUwMDNlZXh0X2lycV9ncnBbaV07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTMyMi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTMzMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MzMxOnN0YXRpYyB2b2lkIGF0aDEya19wY2lfZnJlZV9pcnEoc3RydWN0IGF0aDEya19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMzMyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTMzNS1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIGFiLVx1MDAzZWh3X3BhcmFtcy1cdTAwM2VjZV9jb3VudDsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MzM2Olx0XHRpZiAoYXRoMTJrX2NlX2dldF9hdHRyX2ZsYWdzKGFiLCBpKSBcdTAwMjYgQ0VfQVRUUl9ESVNfSU5UUilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMzM3LVx0XHRcdGNvbnRpbnVlO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMzQxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzozNDI6XHRhdGgxMmtfcGNpX2ZyZWVfZXh0X2lycShhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTM0My19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTM0NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MzQ1OnN0YXRpYyB2b2lkIGF0aDEya19wY2lfY2VfaXJxX2VuYWJsZShzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiLCB1MTYgY2VfaWQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTM0Ni17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjM0NzpcdHN0cnVjdCBhdGgxMmtfcGNpICphYl9wY2kgPSBhdGgxMmtfcGNpX3ByaXYoYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0zNDgtXHR1MzIgaXJxX2lkeDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTM1OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MzYwOnN0YXRpYyB2b2lkIGF0aDEya19wY2lfY2VfaXJxX2Rpc2FibGUoc3RydWN0IGF0aDEya19iYXNlICphYiwgdTE2IGNlX2lkKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0zNjEte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzozNjI6XHRzdHJ1Y3QgYXRoMTJrX3BjaSAqYWJfcGNpID0gYXRoMTJrX3BjaV9wcml2KGFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMzYzLVx0dTMyIGlycV9pZHg7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0zNzQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjM3NTpzdGF0aWMgdm9pZCBhdGgxMmtfcGNpX2NlX2lycXNfZGlzYWJsZShzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0zNzYte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMzgxLVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgYWItXHUwMDNlaHdfcGFyYW1zLVx1MDAzZWNlX2NvdW50OyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzozODI6XHRcdGlmIChhdGgxMmtfY2VfZ2V0X2F0dHJfZmxhZ3MoYWIsIGkpIFx1MDAyNiBDRV9BVFRSX0RJU19JTlRSKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0zODMtXHRcdFx0Y29udGludWU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjM4NDpcdFx0YXRoMTJrX3BjaV9jZV9pcnFfZGlzYWJsZShhYiwgaSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTM4NS1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTM4Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6Mzg4OnN0YXRpYyB2b2lkIGF0aDEya19wY2lfc3luY19jZV9pcnFzKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTM4OS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0zOTMtXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBhYi1cdTAwM2Vod19wYXJhbXMtXHUwMDNlY2VfY291bnQ7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjM5NDpcdFx0aWYgKGF0aDEya19jZV9nZXRfYXR0cl9mbGFncyhhYiwgaSkgXHUwMDI2IENFX0FUVFJfRElTX0lOVFIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTM5NS1cdFx0XHRjb250aW51ZTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTQwMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NDAyOnN0YXRpYyB2b2lkIGF0aDEya19wY2lfY2Vfd29ya3F1ZXVlKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNDAzLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NDA0Olx0c3RydWN0IGF0aDEya19jZV9waXBlICpjZV9waXBlID0gZnJvbV93b3JrKGNlX3BpcGUsIHdvcmssIGludHJfd3EpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy00MDUtXHRpbnQgaXJxX2lkeCA9IEFUSDEyS19QQ0lfSVJRX0NFMF9PRkZTRVQgJiM0MzsgY2VfcGlwZS1cdTAwM2VwaXBlX251bTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNDA2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo0MDc6XHRhdGgxMmtfY2VfcGVyX2VuZ2luZV9zZXJ2aWNlKGNlX3BpcGUtXHUwMDNlYWIsIGNlX3BpcGUtXHUwMDNlcGlwZV9udW0pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy00MDgtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy00MTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjQxMjpzdGF0aWMgaXJxcmV0dXJuX3QgYXRoMTJrX3BjaV9jZV9pbnRlcnJ1cHRfaGFuZGxlcihpbnQgaXJxLCB2b2lkICphcmcpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTQxMy17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjQxNDpcdHN0cnVjdCBhdGgxMmtfY2VfcGlwZSAqY2VfcGlwZSA9IGFyZztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NDE1Olx0c3RydWN0IGF0aDEya19iYXNlICphYiA9IGNlX3BpcGUtXHUwMDNlYWI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTQxNi1cdGludCBpcnFfaWR4ID0gQVRIMTJLX1BDSV9JUlFfQ0UwX09GRlNFVCAmIzQzOyBjZV9waXBlLVx1MDAzZXBpcGVfbnVtO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNDMwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo0MzE6c3RhdGljIHZvaWQgYXRoMTJrX3BjaV9leHRfZ3JwX2Rpc2FibGUoc3RydWN0IGF0aDEya19leHRfaXJxX2dycCAqaXJxX2dycClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNDMyLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NDMzOlx0c3RydWN0IGF0aDEya19wY2kgKmFiX3BjaSA9IGF0aDEya19wY2lfcHJpdihpcnFfZ3JwLVx1MDAzZWFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNDM0LVx0aW50IGk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy00NDUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjQ0NjpzdGF0aWMgdm9pZCBfX2F0aDEya19wY2lfZXh0X2lycV9kaXNhYmxlKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTQ0Ny17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy00NTMtXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBVEgxMktfRVhUX0lSUV9HUlBfTlVNX01BWDsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NDU0Olx0XHRzdHJ1Y3QgYXRoMTJrX2V4dF9pcnFfZ3JwICppcnFfZ3JwID0gXHUwMDI2YWItXHUwMDNlZXh0X2lycV9ncnBbaV07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTQ1NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NDU2Olx0XHRhdGgxMmtfcGNpX2V4dF9ncnBfZGlzYWJsZShpcnFfZ3JwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNDU3LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNDY1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo0NjY6c3RhdGljIHZvaWQgYXRoMTJrX3BjaV9leHRfZ3JwX2VuYWJsZShzdHJ1Y3QgYXRoMTJrX2V4dF9pcnFfZ3JwICppcnFfZ3JwKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy00Njcte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo0Njg6XHRzdHJ1Y3QgYXRoMTJrX3BjaSAqYWJfcGNpID0gYXRoMTJrX3BjaV9wcml2KGlycV9ncnAtXHUwMDNlYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy00NjktXHRpbnQgaTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTQ4MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NDgxOnN0YXRpYyB2b2lkIGF0aDEya19wY2lfc3luY19leHRfaXJxcyhzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy00ODIte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNDg1LVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVRIMTJLX0VYVF9JUlFfR1JQX05VTV9NQVg7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjQ4NjpcdFx0c3RydWN0IGF0aDEya19leHRfaXJxX2dycCAqaXJxX2dycCA9IFx1MDAyNmFiLVx1MDAzZWV4dF9pcnFfZ3JwW2ldO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy00ODctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy00OTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjQ5NTpzdGF0aWMgaW50IGF0aDEya19wY2lfZXh0X2dycF9uYXBpX3BvbGwoc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLCBpbnQgYnVkZ2V0KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy00OTYte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo0OTc6XHRzdHJ1Y3QgYXRoMTJrX2V4dF9pcnFfZ3JwICppcnFfZ3JwID0gY29udGFpbmVyX29mKG5hcGksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjQ5ODpcdFx0XHRcdFx0XHRzdHJ1Y3QgYXRoMTJrX2V4dF9pcnFfZ3JwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy00OTktXHRcdFx0XHRcdFx0bmFwaSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjUwMDpcdHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIgPSBpcnFfZ3JwLVx1MDAzZWFiO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo1MDE6XHRzdHJ1Y3QgYXRoMTJrX2RwICpkcCA9IGF0aDEya19hYl90b19kcChhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTUwMi1cdGludCB3b3JrX2RvbmU7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy01MDQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjUwNTpcdHdvcmtfZG9uZSA9IGF0aDEya19kcF9zZXJ2aWNlX3NybmcoZHAsIGlycV9ncnAsIGJ1ZGdldCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTUwNi1cdGlmICh3b3JrX2RvbmUgXHUwMDNjIGJ1ZGdldCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNTE3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo1MTg6c3RhdGljIGlycXJldHVybl90IGF0aDEya19wY2lfZXh0X2ludGVycnVwdF9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmFyZylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNTE5LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NTIwOlx0c3RydWN0IGF0aDEya19leHRfaXJxX2dycCAqaXJxX2dycCA9IGFyZztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NTIxOlx0c3RydWN0IGF0aDEya19iYXNlICphYiA9IGlycV9ncnAtXHUwMDNlYWI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTUyMi1cdGludCBpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNTI2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo1Mjc6XHRhdGgxMmtfZGJnKGlycV9ncnAtXHUwMDNlYWIsIEFUSDEyS19EQkdfUENJLCBcJiMzNDtleHQgaXJxOiVkXFxuXCYjMzQ7LCBpcnEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy01MjgtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy01MzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjU0MDpzdGF0aWMgaW50IGF0aDEya19wY2lfZXh0X2lycV9jb25maWcoc3RydWN0IGF0aDEya19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNTQxLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NTQyOlx0c3RydWN0IGF0aDEya19wY2kgKmFiX3BjaSA9IGF0aDEya19wY2lfcHJpdihhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTU0My1cdGludCBpLCBqLCBuLCByZXQsIG51bV92ZWN0b3JzID0gMDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNTQ0LVx0dTMyIHVzZXJfYmFzZV9kYXRhID0gMCwgYmFzZV92ZWN0b3IgPSAwLCBiYXNlX2lkeDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NTQ1Olx0c3RydWN0IGF0aDEya19leHRfaXJxX2dycCAqaXJxX2dycDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNTQ2LVx0Ym9vbCB0aHJlYWRlZF9uYXBpID0gZmFsc2U7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy01NDktXHRiYXNlX2lkeCA9IEFUSDEyS19QQ0lfSVJRX0NFMF9PRkZTRVQgJiM0MzsgQ0VfQ09VTlRfTUFYO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo1NTA6XHRyZXQgPSBhdGgxMmtfcGNpX2dldF91c2VyX21zaV9hc3NpZ25tZW50KGFiLCBcJiMzNDtEUFwmIzM0OyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNTUxLVx0XHRcdFx0XHRcdCBcdTAwMjZudW1fdmVjdG9ycyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTU1Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NTU3Olx0aXJxID0gYXRoMTJrX3BjaV9nZXRfbXNpX2lycShhYi1cdTAwM2VkZXYsIGJhc2VfdmVjdG9yKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNTU4LVx0aWYgKGlycSBcdTAwM2U9IDApXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy01NzMtXHRcdG5ldGlmX25hcGlfYWRkKGlycV9ncnAtXHUwMDNlbmFwaV9uZGV2LCBcdTAwMjZpcnFfZ3JwLVx1MDAzZW5hcGksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjU3NDpcdFx0XHQgICAgICAgYXRoMTJrX3BjaV9leHRfZ3JwX25hcGlfcG9sbCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTU3NS1cdFx0aWYgKHRocmVhZGVkX25hcGkpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy01OTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjU5NjpcdFx0XHRpcnEgPSBhdGgxMmtfcGNpX2dldF9tc2lfaXJxKGFiLVx1MDAzZWRldiwgdmVjdG9yKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNTk3LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNTk5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo2MDA6XHRcdFx0YXRoMTJrX2RiZyhhYiwgQVRIMTJLX0RCR19QQ0ksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTYwMS1cdFx0XHRcdCAgIFwmIzM0O2lycTolZCBncm91cDolZFxcblwmIzM0OywgaXJxLCBpKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTYwMy1cdFx0XHRpcnFfc2V0X3N0YXR1c19mbGFncyhpcnEsIElSUV9ESVNBQkxFX1VOTEFaWSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjYwNDpcdFx0XHRyZXQgPSByZXF1ZXN0X2lycShpcnEsIGF0aDEya19wY2lfZXh0X2ludGVycnVwdF9oYW5kbGVyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy02MDUtXHRcdFx0XHRcdCAgYWJfcGNpLVx1MDAzZWlycV9mbGFncyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTYwNy1cdFx0XHRpZiAocmV0KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjYwODpcdFx0XHRcdGF0aDEya19lcnIoYWIsIFwmIzM0O2ZhaWxlZCByZXF1ZXN0IGlycSAlZDogJWRcXG5cJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTYwOS1cdFx0XHRcdFx0ICAgdmVjdG9yLCByZXQpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNjEyLVx0XHR9XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjYxMzpcdFx0YXRoMTJrX3BjaV9leHRfZ3JwX2Rpc2FibGUoaXJxX2dycCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTYxNC1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTYyOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NjI5OnN0YXRpYyBpbnQgYXRoMTJrX3BjaV9zZXRfaXJxX2FmZmluaXR5X2hpbnQoc3RydWN0IGF0aDEya19wY2kgKmFiX3BjaSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNjMwLVx0XHRcdFx0XHQgICAgY29uc3Qgc3RydWN0IGNwdW1hc2sgKm0pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy02MzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjYzODpzdGF0aWMgaW50IGF0aDEya19wY2lfY29uZmlnX2lycShzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy02Mzkte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo2NDA6XHRzdHJ1Y3QgYXRoMTJrX3BjaSAqYWJfcGNpID0gYXRoMTJrX3BjaV9wcml2KGFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NjQxOlx0c3RydWN0IGF0aDEya19jZV9waXBlICpjZV9waXBlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy02NDItXHR1MzIgbXNpX2RhdGFfc3RhcnQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy02NDctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjY0ODpcdHJldCA9IGF0aDEya19wY2lfZ2V0X3VzZXJfbXNpX2Fzc2lnbm1lbnQoYWIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTY0OS1cdFx0XHRcdFx0XHQgXCYjMzQ7Q0VcJiMzNDssIFx1MDAyNm1zaV9kYXRhX2NvdW50LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNjU2LVx0Zm9yIChpID0gMCwgbXNpX2RhdGFfaWR4ID0gMDsgaSBcdTAwM2MgYWItXHUwMDNlaHdfcGFyYW1zLVx1MDAzZWNlX2NvdW50OyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo2NTc6XHRcdGlmIChhdGgxMmtfY2VfZ2V0X2F0dHJfZmxhZ3MoYWIsIGkpIFx1MDAyNiBDRV9BVFRSX0RJU19JTlRSKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy02NTgtXHRcdFx0Y29udGludWU7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy02NjAtXHRcdG1zaV9kYXRhID0gKG1zaV9kYXRhX2lkeCAlIG1zaV9kYXRhX2NvdW50KSAmIzQzOyBtc2lfaXJxX3N0YXJ0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo2NjE6XHRcdGlycSA9IGF0aDEya19wY2lfZ2V0X21zaV9pcnEoYWItXHUwMDNlZGV2LCBtc2lfZGF0YSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTY2Mi1cdFx0Y2VfcGlwZSA9IFx1MDAyNmFiLVx1MDAzZWNlLmNlX3BpcGVbaV07XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy02NjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjY2NjpcdFx0SU5JVF9XT1JLKFx1MDAyNmNlX3BpcGUtXHUwMDNlaW50cl93cSwgYXRoMTJrX3BjaV9jZV93b3JrcXVldWUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy02NjctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjY2ODpcdFx0cmV0ID0gcmVxdWVzdF9pcnEoaXJxLCBhdGgxMmtfcGNpX2NlX2ludGVycnVwdF9oYW5kbGVyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy02NjktXHRcdFx0XHQgIGFiX3BjaS1cdTAwM2VpcnFfZmxhZ3MsIGlycV9uYW1lW2lycV9pZHhdLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNjcxLVx0XHRpZiAocmV0KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjY3MjpcdFx0XHRhdGgxMmtfZXJyKGFiLCBcJiMzNDtmYWlsZWQgdG8gcmVxdWVzdCBpcnEgJWQ6ICVkXFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy02NzMtXHRcdFx0XHQgICBpcnFfaWR4LCByZXQpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNjc5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo2ODA6XHRcdGF0aDEya19wY2lfY2VfaXJxX2Rpc2FibGUoYWIsIGkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy02ODEtXHR9XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTY4Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NjgzOlx0cmV0ID0gYXRoMTJrX3BjaV9leHRfaXJxX2NvbmZpZyhhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTY4NC1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy02ODktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjY5MDpzdGF0aWMgdm9pZCBhdGgxMmtfcGNpX2luaXRfcW1pX2NlX2NvbmZpZyhzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy02OTEte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo2OTI6XHRzdHJ1Y3QgYXRoMTJrX3FtaV9jZV9jZmcgKmNmZyA9IFx1MDAyNmFiLVx1MDAzZXFtaS5jZV9jZmc7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTY5My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6Njk0Olx0c3RydWN0IGF0aDEya19wY2kgKmFiX3BjaSA9IGF0aDEya19wY2lfcHJpdihhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTY5NS1cdHN0cnVjdCBwY2lfYnVzICpidXMgPSBhYl9wY2ktXHUwMDNlcGRldi1cdTAwM2VidXM7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy03MDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjcwNDpcdGlmIChhdGgxMmtfZndfZmVhdHVyZV9zdXBwb3J0ZWQoYWIsIEFUSDEyS19GV19GRUFUVVJFX01VTFRJX1FSVFJfSUQpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTcwNS1cdFx0YWJfcGNpLVx1MDAzZXFtaV9pbnN0YW5jZSA9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy03MTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjcxMjpzdGF0aWMgdm9pZCBhdGgxMmtfcGNpX2NlX2lycXNfZW5hYmxlKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTcxMy17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy03MTgtXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBhYi1cdTAwM2Vod19wYXJhbXMtXHUwMDNlY2VfY291bnQ7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjcxOTpcdFx0aWYgKGF0aDEya19jZV9nZXRfYXR0cl9mbGFncyhhYiwgaSkgXHUwMDI2IENFX0FUVFJfRElTX0lOVFIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTcyMC1cdFx0XHRjb250aW51ZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NzIxOlx0XHRhdGgxMmtfcGNpX2NlX2lycV9lbmFibGUoYWIsIGkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy03MjItXHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy03MjQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjcyNTpzdGF0aWMgdm9pZCBhdGgxMmtfcGNpX21zaV9jb25maWcoc3RydWN0IGF0aDEya19wY2kgKmFiX3BjaSwgYm9vbCBlbmFibGUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTcyNi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy03MzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjc0MDpzdGF0aWMgdm9pZCBhdGgxMmtfcGNpX21zaV9lbmFibGUoc3RydWN0IGF0aDEya19wY2kgKmFiX3BjaSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNzQxLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NzQyOlx0YXRoMTJrX3BjaV9tc2lfY29uZmlnKGFiX3BjaSwgdHJ1ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTc0My19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTc0NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NzQ1OnN0YXRpYyB2b2lkIGF0aDEya19wY2lfbXNpX2Rpc2FibGUoc3RydWN0IGF0aDEya19wY2kgKmFiX3BjaSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNzQ2LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NzQ3Olx0YXRoMTJrX3BjaV9tc2lfY29uZmlnKGFiX3BjaSwgZmFsc2UpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy03NDgtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy03NDktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjc1MDpzdGF0aWMgaW50IGF0aDEya19wY2lfbXNpX2FsbG9jKHN0cnVjdCBhdGgxMmtfcGNpICphYl9wY2kpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTc1MS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjc1MjpcdHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIgPSBhYl9wY2ktXHUwMDNlYWI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjc1MzpcdGNvbnN0IHN0cnVjdCBhdGgxMmtfbXNpX2NvbmZpZyAqbXNpX2NvbmZpZyA9IGFiX3BjaS1cdTAwM2Vtc2lfY29uZmlnO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy03NTQtXHRzdHJ1Y3QgbXNpX2Rlc2MgKm1zaV9kZXNjO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNzc3LVx0XHRhYl9wY2ktXHUwMDNlaXJxX2ZsYWdzID0gSVJRRl9TSEFSRUQgfCBJUlFGX05PQkFMQU5DSU5HO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo3Nzg6XHRcdGF0aDEya19kYmcoYWIsIEFUSDEyS19EQkdfUENJLCBcJiMzNDtyZXF1ZXN0IE1TSSBvbmUgdmVjdG9yXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNzc5LVx0fVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy03ODAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjc4MTpcdGF0aDEya19pbmZvKGFiLCBcJiMzNDtNU0kgdmVjdG9yczogJWRcXG5cJiMzNDssIG51bV92ZWN0b3JzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNzgyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo3ODM6XHRhdGgxMmtfcGNpX21zaV9kaXNhYmxlKGFiX3BjaSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTc4NC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTc4Ni1cdGlmICghbXNpX2Rlc2MpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6Nzg3Olx0XHRhdGgxMmtfZXJyKGFiLCBcJiMzNDttc2lfZGVzYyBpcyBOVUxMIVxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTc4OC1cdFx0cmV0ID0gLUVJTlZBTDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTc5NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6Nzk2Olx0YXRoMTJrX2RiZyhhYiwgQVRIMTJLX0RCR19QQ0ksIFwmIzM0O21zaSBiYXNlIGRhdGEgaXMgJWRcXG5cJiMzNDssIGFiX3BjaS1cdTAwM2Vtc2lfZXBfYmFzZV9kYXRhKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNzk3LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtODA2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo4MDc6c3RhdGljIHZvaWQgYXRoMTJrX3BjaV9tc2lfZnJlZShzdHJ1Y3QgYXRoMTJrX3BjaSAqYWJfcGNpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy04MDgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtODExLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo4MTI6c3RhdGljIGludCBhdGgxMmtfcGNpX2NvbmZpZ19tc2lfZGF0YShzdHJ1Y3QgYXRoMTJrX3BjaSAqYWJfcGNpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy04MTMte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtODE3LVx0aWYgKCFtc2lfZGVzYykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo4MTg6XHRcdGF0aDEya19lcnIoYWJfcGNpLVx1MDAzZWFiLCBcJiMzNDttc2lfZGVzYyBpcyBOVUxMIVxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTgxOS1cdFx0cGNpX2ZyZWVfaXJxX3ZlY3RvcnMoYWJfcGNpLVx1MDAzZXBkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtODI0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo4MjU6XHRhdGgxMmtfZGJnKGFiX3BjaS1cdTAwM2VhYiwgQVRIMTJLX0RCR19QQ0ksIFwmIzM0O3BjaSBhZnRlciByZXF1ZXN0X2lycSBtc2lfZXBfYmFzZV9kYXRhICVkXFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy04MjYtXHRcdCAgIGFiX3BjaS1cdTAwM2Vtc2lfZXBfYmFzZV9kYXRhKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTgzMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6ODMxOnN0YXRpYyBpbnQgYXRoMTJrX3BjaV9jbGFpbShzdHJ1Y3QgYXRoMTJrX3BjaSAqYWJfcGNpLCBzdHJ1Y3QgcGNpX2RldiAqcGRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtODMyLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6ODMzOlx0c3RydWN0IGF0aDEya19iYXNlICphYiA9IGFiX3BjaS1cdTAwM2VhYjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtODM0LVx0dTE2IGRldmljZV9pZDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTgzOC1cdGlmIChkZXZpY2VfaWQgIT0gYWJfcGNpLVx1MDAzZWRldl9pZCkgIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6ODM5Olx0XHRhdGgxMmtfZXJyKGFiLCBcJiMzNDtwY2kgZGV2aWNlIGlkIG1pc21hdGNoOiAweCV4IDB4JXhcXG5cJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTg0MC1cdFx0XHQgICBkZXZpY2VfaWQsIGFiX3BjaS1cdTAwM2VkZXZfaWQpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtODQ2LVx0aWYgKHJldCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo4NDc6XHRcdGF0aDEya19lcnIoYWIsIFwmIzM0O2ZhaWxlZCB0byBhc3NpZ24gcGNpIHJlc291cmNlOiAlZFxcblwmIzM0OywgcmV0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtODQ4LVx0XHRnb3RvIG91dDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTg1Mi1cdGlmIChyZXQpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6ODUzOlx0XHRhdGgxMmtfZXJyKGFiLCBcJiMzNDtmYWlsZWQgdG8gZW5hYmxlIHBjaSBkZXZpY2U6ICVkXFxuXCYjMzQ7LCByZXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy04NTQtXHRcdGdvdG8gb3V0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtODU2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo4NTc6XHRyZXQgPSBwY2lfcmVxdWVzdF9yZWdpb24ocGRldiwgQVRIMTJLX1BDSV9CQVJfTlVNLCBcJiMzNDthdGgxMmtfcGNpXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtODU4LVx0aWYgKHJldCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo4NTk6XHRcdGF0aDEya19lcnIoYWIsIFwmIzM0O2ZhaWxlZCB0byByZXF1ZXN0IHBjaSByZWdpb246ICVkXFxuXCYjMzQ7LCByZXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy04NjAtXHRcdGdvdG8gZGlzYWJsZV9kZXZpY2U7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy04NzEtXHRpZiAoIWFiLVx1MDAzZW1lbSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo4NzI6XHRcdGF0aDEya19lcnIoYWIsIFwmIzM0O2ZhaWxlZCB0byBtYXAgcGNpIGJhciAlZFxcblwmIzM0OywgQVRIMTJLX1BDSV9CQVJfTlVNKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtODczLVx0XHRyZXQgPSAtRUlPO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtODc2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo4Nzc6XHRhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX0JPT1QsIFwmIzM0O2Jvb3QgcGNpX21lbSAweCVwXFxuXCYjMzQ7LCBhYi1cdTAwM2VtZW0pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy04NzgtXHRyZXR1cm4gMDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTg4Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6ODg4OnN0YXRpYyB2b2lkIGF0aDEya19wY2lfZnJlZV9yZWdpb24oc3RydWN0IGF0aDEya19wY2kgKmFiX3BjaSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtODg5LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6ODkwOlx0c3RydWN0IGF0aDEya19iYXNlICphYiA9IGFiX3BjaS1cdTAwM2VhYjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtODkxLVx0c3RydWN0IHBjaV9kZXYgKnBjaV9kZXYgPSBhYl9wY2ktXHUwMDNlcGRldjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTg5OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6OTAwOnN0YXRpYyB2b2lkIGF0aDEya19wY2lfYXNwbV9kaXNhYmxlKHN0cnVjdCBhdGgxMmtfcGNpICphYl9wY2kpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTkwMS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjkwMjpcdHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIgPSBhYl9wY2ktXHUwMDNlYWI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTkwMy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTkwNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6OTA3Olx0YXRoMTJrX2RiZyhhYiwgQVRIMTJLX0RCR19QQ0ksIFwmIzM0O3BjaSBsaW5rX2N0bCAweCUwNHggTDBzICVkIEwxICVkXFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy05MDgtXHRcdCAgIGFiX3BjaS1cdTAwM2VsaW5rX2N0bCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTkxOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6OTE5OnN0YXRpYyB2b2lkIGF0aDEya19wY2lfdXBkYXRlX3FydHJfbm9kZV9pZChzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy05MjAte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo5MjE6XHRzdHJ1Y3QgYXRoMTJrX3BjaSAqYWJfcGNpID0gYXRoMTJrX3BjaV9wcml2KGFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtOTIyLVx0dTMyIHJlZztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTkzMi1cdHJlZyA9IFBDSUVfTE9DQUxfUkVHX1FSVFJfTk9ERV9JRChhYikgXHUwMDI2IFdJTkRPV19SQU5HRV9NQVNLO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo5MzM6XHRhdGgxMmtfcGNpX3dyaXRlMzIoYWIsIHJlZywgYWJfcGNpLVx1MDAzZXFtaV9pbnN0YW5jZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTkzNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6OTM1Olx0YXRoMTJrX2RiZyhhYiwgQVRIMTJLX0RCR19QQ0ksIFwmIzM0O3BjaSByZWcgMHgleCBpbnN0YW5jZSAweCV4IHJlYWQgdmFsIDB4JXhcXG5cJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjkzNjpcdFx0ICAgcmVnLCBhYl9wY2ktXHUwMDNlcW1pX2luc3RhbmNlLCBhdGgxMmtfcGNpX3JlYWQzMihhYiwgcmVnKSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTkzNy19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTkzOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6OTM5OnN0YXRpYyB2b2lkIGF0aDEya19wY2lfYXNwbV9yZXN0b3JlKHN0cnVjdCBhdGgxMmtfcGNpICphYl9wY2kpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTk0MC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy05NDgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjk0OTpzdGF0aWMgdm9pZCBhdGgxMmtfcGNpX2NhbmNlbF93b3JrcXVldWUoc3RydWN0IGF0aDEya19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtOTUwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTk1My1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIGFiLVx1MDAzZWh3X3BhcmFtcy1cdTAwM2VjZV9jb3VudDsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6OTU0Olx0XHRzdHJ1Y3QgYXRoMTJrX2NlX3BpcGUgKmNlX3BpcGUgPSBcdTAwMjZhYi1cdTAwM2VjZS5jZV9waXBlW2ldO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy05NTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjk1NjpcdFx0aWYgKGF0aDEya19jZV9nZXRfYXR0cl9mbGFncyhhYiwgaSkgXHUwMDI2IENFX0FUVFJfRElTX0lOVFIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTk1Ny1cdFx0XHRjb250aW51ZTtcbi0tXG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNCAyMDoxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTQ2OAoJCQkJCQkJb3V0cHV0OiAzMAoJCQkJCQkJdGhvdWdodHM6IDQ4OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipXb3J0aEZ1enppbmcgRGVjaXNpb24gZm9yIGF0aDEyayBEcml2ZXIqKgoKT2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzIGBhdGgxMmtgIGRyaXZlciBhbmQgZGV0ZXJtaW5lIGlmIGl0JiMzOTtzIGEgZ29vZCBjYW5kaWRhdGUgZm9yIGZ1enppbmcuIEZpcnN0LCBJIGtub3cgaXQmIzM5O3MgYSBQQ0kvQUhCIGRyaXZlciBkZXNpZ25lZCBzcGVjaWZpY2FsbHkgZm9yIFF1YWxjb21tIFdpLUZpIDcgaGFyZHdhcmUuIFRoYXQmIzM5O3MgYSByZWQgZmxhZyByaWdodCBhd2F5IOKAkyB2ZW5kb3Itc3BlY2lmaWMgZHJpdmVycyBvZnRlbiBoYXZlIHRyaWNreSBkZXBlbmRlbmNpZXMuIExldCBtZSBzZWUuLi4gSSYjMzk7bSBzdXBwb3NlZCB0byBhcHBseSB0aGUgJiMzNDtXSEVOIFRPIFJFVFVSTiBXb3J0aEZ1enppbmc9ZmFsc2UgKE5FR0FUSVZFIENSSVRFUklBKSYjMzQ7IGluc3RydWN0aW9ucy4gU3BlY2lmaWNhbGx5LCBJIG5lZWQgdG8gbG9vayBhdCAmIzM0O1N0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZSYjMzQ7IHNjZW5hcmlvcy4KCkJhc2VkIG9uIG15IHVuZGVyc3RhbmRpbmcgYW5kIHRoaXMgdGV4dCwgYGF0aDEya2AgaXMgKmRlZmluaXRlbHkqIG9uZSBvZiB0aG9zZSBjYXNlcy4gSXQgcmVxdWlyZXMgcGh5c2ljYWwgUXVhbGNvbW0gaGFyZHdhcmUsIHNwZWNpZmljIFBDSWUgY2FyZHMgb3IgQUhCIFNvQ3MsIGFuZCBsaWtlbHkgcGFydGljdWxhciBmaXJtd2FyZSB0aGF0IGlzbiYjMzk7dCByZXBsaWNhdGVkIGluIHN0YW5kYXJkIFFFTVUuIEl0JiMzOTtzIG5vdCBsaWtlIGl0IGhhcyBzb21lIGNsZXZlciBlbXVsYXRpb24gbGF5ZXIuIFNvIGl0JiMzOTtzIGxvb2tpbmcgbGlrZSBpdCYjMzk7cyBpbmhlcmVudGx5IHVucmVhY2hhYmxlIGluIHRoZSB0eXBpY2FsIHN5emthbGxlciBlbnZpcm9ubWVudC4KCkhvbGQgb24sIEkgbmVlZCB0byBiZSBjb21wbGV0ZWx5IHN1cmUuIENvdWxkIGBhdGgxMmtgIG9yLCBtb3JlIHNwZWNpZmljYWxseSwgYSBmdW5jdGlvbiBsaWtlIGBhdGgxMmtfbWFjX3VwZGF0ZV9mcmVxX3JhbmdlYCBiZSBzb21laG93IHRyaWdnZXJlZCB2aWEgYSBkaWZmZXJlbnQgcm91dGUsIGxpa2UgYG1hYzgwMjExX2h3c2ltYCwgYG5sODAyMTFgLCBvciBgY2ZnODAyMTFgPyBJIG5lZWQgdG8gY2hlY2sgdGhlIGNhbGxlcnMgb2YgdGhpcyBmdW5jdGlvbi4gTGV0JiMzOTtzIHNlZS4uLiBsb29raW5nIGF0IHRoZSBjb2RlLCBpdCYjMzk7cyBjYWxsZWQgYnkgYGF0aDEya19tYWNfc2V0dXBfY2hhbm5lbHNfcmF0ZXNgIGFuZCBgYXRoMTJrX3JlZ2RfdXBkYXRlYC4gVGhleSYjMzk7cmUgaW50ZXJuYWwgZnVuY3Rpb25zLCBjYWxsZWQgZHVyaW5nIHRoZSBoYXJkd2FyZSBpbml0aWFsaXphdGlvbiBvciByZWd1bGF0b3J5IHJ1bGVzIHVwZGF0ZXMgZm9yIGFuIGBhdGgxMmtgIGRldmljZSAoYHN0cnVjdCBhdGgxMmsgKmFyYCkuIFRoYXQgbWFrZXMgc2Vuc2Ug4oCTIHRoZSBoYXJkd2FyZSBpdHNlbGYsIG9yIHNvbWV0aGluZyBkaXJlY3RseSB0aWVkIHRvIGl0LCBuZWVkcyB0byBpbml0aWFsaXplIGFuZCB1cGRhdGUgdGhlc2UgdGhpbmdzLgoKR2l2ZW4gdGhhdCBhbmQgdGhlIGZhY3QgdGhhdCBgYXRoMTJrYCBuZWVkcyBzcGVjaWZpYyBRdWFsY29tbSBQQ0kvQUhCIGNoaXBzZXRzLCBhbmQgY2Fubm90IGJlIGluaXRpYWxpemVkIGluIHN0YW5kYXJkIFFFTVUgd2l0aG91dCBwaHlzaWNhbCBQQ0llIGRldmljZXMsIG15IGNvbmNsdXNpb24gaXMgdGhhdCBpdCAqaXMqIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy4gSSBuZWVkIHRvIG1ha2UgKmFic29sdXRlbHkqIHN1cmUgdGhlcmUmIzM5O3Mgbm8gdmlydHVhbCBidXMgb3IgVVNCIGNvbXBvbmVudCBvZiB0aGlzIGRyaXZlciBhcyB3ZWxsLCB0aG91Z2ggaXQgbG9va3MgbGlrZSBpdCYjMzk7cyBhIHNsaW0gY2hhbmNlLiBMZXQgbWUgcXVpY2tseSBjaGVjayB0aGUgZmlsZXMgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYCB0byBiZSBzdXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA0IDIwOjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Y29kZXNlYXJjaC1kaXItaW5kZXg8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0RpciYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZXMmIzM0OzogWwogICAgJiMzNDthY3BpLmMmIzM0OywKICAgICYjMzQ7YWNwaS5oJiMzNDssCiAgICAmIzM0O2FoYi5jJiMzNDssCiAgICAmIzM0O2FoYi5oJiMzNDssCiAgICAmIzM0O2NlLmMmIzM0OywKICAgICYjMzQ7Y2UuaCYjMzQ7LAogICAgJiMzNDtjbW5fZGVmcy5oJiMzNDssCiAgICAmIzM0O2NvcmUuYyYjMzQ7LAogICAgJiMzNDtjb3JlLmgmIzM0OywKICAgICYjMzQ7Y29yZWR1bXAuYyYjMzQ7LAogICAgJiMzNDtjb3JlZHVtcC5oJiMzNDssCiAgICAmIzM0O2RicmluZy5jJiMzNDssCiAgICAmIzM0O2RicmluZy5oJiMzNDssCiAgICAmIzM0O2RlYnVnLmMmIzM0OywKICAgICYjMzQ7ZGVidWcuaCYjMzQ7LAogICAgJiMzNDtkZWJ1Z2ZzLmMmIzM0OywKICAgICYjMzQ7ZGVidWdmcy5oJiMzNDssCiAgICAmIzM0O2RlYnVnZnNfaHR0X3N0YXRzLmMmIzM0OywKICAgICYjMzQ7ZGVidWdmc19odHRfc3RhdHMuaCYjMzQ7LAogICAgJiMzNDtkZWJ1Z2ZzX3N0YS5jJiMzNDssCiAgICAmIzM0O2RlYnVnZnNfc3RhLmgmIzM0OywKICAgICYjMzQ7ZHAuYyYjMzQ7LAogICAgJiMzNDtkcC5oJiMzNDssCiAgICAmIzM0O2RwX2Ntbi5oJiMzNDssCiAgICAmIzM0O2RwX2h0dC5jJiMzNDssCiAgICAmIzM0O2RwX2h0dC5oJiMzNDssCiAgICAmIzM0O2RwX21vbi5jJiMzNDssCiAgICAmIzM0O2RwX21vbi5oJiMzNDssCiAgICAmIzM0O2RwX3BlZXIuYyYjMzQ7LAogICAgJiMzNDtkcF9wZWVyLmgmIzM0OywKICAgICYjMzQ7ZHBfcnguYyYjMzQ7LAogICAgJiMzNDtkcF9yeC5oJiMzNDssCiAgICAmIzM0O2RwX3R4LmMmIzM0OywKICAgICYjMzQ7ZHBfdHguaCYjMzQ7LAogICAgJiMzNDtmdy5jJiMzNDssCiAgICAmIzM0O2Z3LmgmIzM0OywKICAgICYjMzQ7aGFsLmMmIzM0OywKICAgICYjMzQ7aGFsLmgmIzM0OywKICAgICYjMzQ7aGlmLmgmIzM0OywKICAgICYjMzQ7aHRjLmMmIzM0OywKICAgICYjMzQ7aHRjLmgmIzM0OywKICAgICYjMzQ7aHcuaCYjMzQ7LAogICAgJiMzNDttYWMuYyYjMzQ7LAogICAgJiMzNDttYWMuaCYjMzQ7LAogICAgJiMzNDttaGkuYyYjMzQ7LAogICAgJiMzNDttaGkuaCYjMzQ7LAogICAgJiMzNDtwMnAuYyYjMzQ7LAogICAgJiMzNDtwMnAuaCYjMzQ7LAogICAgJiMzNDtwY2kuYyYjMzQ7LAogICAgJiMzNDtwY2kuaCYjMzQ7LAogICAgJiMzNDtwZWVyLmMmIzM0OywKICAgICYjMzQ7cGVlci5oJiMzNDssCiAgICAmIzM0O3FtaS5jJiMzNDssCiAgICAmIzM0O3FtaS5oJiMzNDssCiAgICAmIzM0O3JlZy5jJiMzNDssCiAgICAmIzM0O3JlZy5oJiMzNDssCiAgICAmIzM0O3Rlc3Rtb2RlLmMmIzM0OywKICAgICYjMzQ7dGVzdG1vZGUuaCYjMzQ7LAogICAgJiMzNDt0aGVybWFsLmMmIzM0OywKICAgICYjMzQ7dGhlcm1hbC5oJiMzNDssCiAgICAmIzM0O3RyYWNlLmMmIzM0OywKICAgICYjMzQ7dHJhY2UuaCYjMzQ7LAogICAgJiMzNDt3bWkuYyYjMzQ7LAogICAgJiMzNDt3bWkuaCYjMzQ7LAogICAgJiMzNDt3b3cuYyYjMzQ7LAogICAgJiMzNDt3b3cuaCYjMzQ7CiAgXSwKICAmIzM0O1N1YmRpcnMmIzM0OzogWwogICAgJiMzNDt3aWZpNyYjMzQ7CiAgXQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA0IDIwOjEwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIyOTg0CgkJCQkJCQlvdXRwdXQ6IDExMQoJCQkJCQkJdGhvdWdodHM6IDE2OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipVbnJlYWNoYWJsZSBDb2RlIGluIHRoZSBhdGgxMmsgRHJpdmVyKioKCk9rYXksIHNvIEkmIzM5O3ZlIGJlZW4gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCwgZnJhbmtseSwgaXQmIzM5O3MgYSBkZWFkIGVuZC4gVGhlIGNvZGUgbW9kaWZpZXMgYGF0aDEya19tYWNfdXBkYXRlX2ZyZXFfcmFuZ2VgLCB3aGljaCBpbW1lZGlhdGVseSB0ZWxscyBtZSB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIHRoZSBRdWFsY29tbSBXaS1GaSA3IGRyaXZlciwgKmF0aDEyayouIFRoYXQmIzM5O3MgdGhlIGZpcnN0IHJlZCBmbGFnLiBJIGtub3cgZnJvbSBleHBlcmllbmNlIHRoYXQgYGF0aDEya2AgaXMgdGlnaHRseSBib3VuZCB0byBRdWFsY29tbSYjMzk7cyBzcGVjaWZpYyBoYXJkd2FyZSDigJMgUENJIGFuZCBBSEIgYnVzZXMsIHNwZWNpZmljYWxseS4gRm9yZ2V0IGFib3V0IHNlZWluZyB0aGlzIHRoaW5nIGluIGEgdmlydHVhbCBlbnZpcm9ubWVudC4gVGhlcmXigJlzIG5vIHN1cHBvcnQgZm9yIHZpcnR1YWwgb3IgVVNCIGRldmljZSBlbXVsYXRpb24gd2l0aGluIGBhdGgxMmtgLCBhdCBsZWFzdCBub3QgaW4gYW55IHN0YW5kYXJkIFFFTVUgc2V0dXAgSeKAmXZlIGV2ZXIgc2Vlbi4KClRoZXJlZm9yZSwgc2luY2UgdGhlIG9ubHkgc3VwcG9ydGVkIGhhcmR3YXJlIGlzIFBDSSBhbmQgQUhCIGJhc2VkLCBhbmQgbm8gc3RhbmRhcmQgZnV6emluZyBlbnZpcm9ubWVudHMgYXJlIGJhc2VkIG9uIHRoZXNlLCB0aGlzIG1vZGlmaWVkIGNvZGUgaXMsIHN0cnVjdHVyYWxseSBzcGVha2luZywgdW50b3VjaGFibGUuIEl04oCZcyB1bnJlYWNoYWJsZSBoYXJkd2FyZSBjb2RlIHdpdGhpbiB0aGUgY29udGV4dCBvZiBhbnkgbm9ybWFsIGZ1enppbmcgZWZmb3J0LiBJdCYjMzk7cyBhIHdhc3RlIG9mIHRpbWUgdG8gcHVyc3VlIHRoaXMgYW55IGZ1cnRoZXIsIGdpdmVuIHRoZSBjdXJyZW50IGVudmlyb25tZW50LiBUaW1lIHRvIG1hcmsgdGhpcyBhcyBhICYjMzQ7bm8tZ28mIzM0Oy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDQgMjA6MTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBhdGgxMmtfbWFjX3VwZGF0ZV9mcmVxX3JhbmdlIGluIHRoZSBhdGgxMmsgZHJpdmVyLiBhdGgxMmsgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgZHJpdmVyIGZvciBRdWFsY29tbSBXaS1GaSA3IFBDSWUvQUhCIGhhcmR3YXJlIGRldmljZXMsIHdoaWNoIHJlcXVpcmVzIHBoeXNpY2FsIGhhcmR3YXJlIGFuZCBjYW5ub3QgYmUgZW11bGF0ZWQgb3IgcHJvYmVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChRRU1VL0dDRSksIG1ha2luZyB0aGUgbW9kaWZpZWQgY29kZSBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBhdGgxMmtfbWFjX3VwZGF0ZV9mcmVxX3JhbmdlIGluIHRoZSBhdGgxMmsgZHJpdmVyLiBhdGgxMmsgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgZHJpdmVyIGZvciBRdWFsY29tbSBXaS1GaSA3IFBDSWUvQUhCIGhhcmR3YXJlIGRldmljZXMsIHdoaWNoIHJlcXVpcmVzIHBoeXNpY2FsIGhhcmR3YXJlIGFuZCBjYW5ub3QgYmUgZW11bGF0ZWQgb3IgcHJvYmVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChRRU1VL0dDRSksIG1ha2luZyB0aGUgbW9kaWZpZWQgY29kZSBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNCAyMDoxMDwvdGQ+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+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDktMDRUMjA6MTA6MTAuNDYyMTM3MTlaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMjU2MjIyMjExNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2UsXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGF0aDEya19tYWNfdXBkYXRlX2ZyZXFfcmFuZ2UgaW4gdGhlIGF0aDEyayBkcml2ZXIuIGF0aDEyayBpcyBhIHZlbmRvci1zcGVjaWZpYyBkcml2ZXIgZm9yIFF1YWxjb21tIFdpLUZpIDcgUENJZS9BSEIgaGFyZHdhcmUgZGV2aWNlcywgd2hpY2ggcmVxdWlyZXMgcGh5c2ljYWwgaGFyZHdhcmUgYW5kIGNhbm5vdCBiZSBlbXVsYXRlZCBvciBwcm9iZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgKFFFTVUvR0NFKSwgbWFraW5nIHRoZSBtb2RpZmllZCBjb2RlIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA0VDIwOjEwOjEwLjQ2MjE1MDZaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ5MTUyNTI3OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGQ5MGIwODdiOTFjZWQ1ZWViZjYwOGU3Y2QxNTM3NWY3NDE1YWIyMzdcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIEZyaSBTZXAgNCAyMDoxMDowOSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuY1xcbmluZGV4IDk5YmY1Y2Y3OWQxMDIuLjY1NGM1OGQ3YzFkNWYgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmNcXG5AQCAtMTQxMjUsNyArMTQxMjUsNyBAQCBFWFBPUlRfU1lNQk9MKGF0aDEya19tYWNfb3Bfc2V0X3Jla2V5X2RhdGEpO1xcbiB2b2lkIGF0aDEya19tYWNfdXBkYXRlX2ZyZXFfcmFuZ2Uoc3RydWN0IGF0aDEyayAqYXIsXFxuIFxcdFxcdFxcdFxcdCAgdTMyIGZyZXFfbG93LCB1MzIgZnJlcV9oaWdoKVxcbiB7XFxuLVxcdGlmICghKGZyZXFfbG93IFxcdTAwMjZcXHUwMDI2IGZyZXFfaGlnaCkpXFxuK1xcdGlmICghZnJlcV9sb3cgfHwgZnJlcV9sb3cgXFx1MDAzZT0gZnJlcV9oaWdoKVxcbiBcXHRcXHRyZXR1cm47XFxuIFxcbiBcXHRpZiAoYXItXFx1MDAzZWZyZXFfcmFuZ2Uuc3RhcnRfZnJlcSB8fCBhci1cXHUwMDNlZnJlcV9yYW5nZS5lbmRfZnJlcSkge1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNFQyMDoxMDoxMC45NTQyNzIxMThaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJjb3JlIiwiRHVyYXRpb24iOjMyMDcwMDY0MTk4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBhdGgxMmtfbWFjX3VwZGF0ZV9mcmVxX3JhbmdlIGluIHRoZSBhdGgxMmsgZHJpdmVyLiBhdGgxMmsgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgZHJpdmVyIGZvciBRdWFsY29tbSBXaS1GaSA3IFBDSWUvQUhCIGhhcmR3YXJlIGRldmljZXMsIHdoaWNoIHJlcXVpcmVzIHBoeXNpY2FsIGhhcmR3YXJlIGFuZCBjYW5ub3QgYmUgZW11bGF0ZWQgb3IgcHJvYmVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChRRU1VL0dDRSksIG1ha2luZyB0aGUgbW9kaWZpZWQgY29kZSBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lciBhbmQgc2VjdXJpdHkgZW5naW5lZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGV2YWx1YXRlIHdoZXRoZXIgaXQgd2FycmFudHMgZnV6emluZyB3aXRoIHN5emthbGxlci5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24gaW50ZXJuYWwgYXNzdW1wdGlvbnMuIFlvdSBtdXN0IGFjdGl2ZWx5IHVzZSB5b3VyIGNvZGUgYWNjZXNzXG50b29scyB0byBpbnNwZWN0IHRoZSBhY3R1YWwgc291cmNlIGNvZGUsIGNhbGxlcnMsIGFuZCBzdXJyb3VuZGluZyBjb250ZXh0LlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuMS4gQ09SRSBUUklBR0UgUEhJTE9TT1BIWVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblRoZSBnb2FsIG9mIHBhdGNoIGZ1enppbmcgaXMgdG8gZGlzY292ZXIgY3Jhc2hlcywgcmVncmVzc2lvbnMsIGV4cG9zZWQgbGF0ZW50IGJ1Z3MsXG5hbmQgbmV3bHkgdHJpZ2dlcmVkIGFzc2VydGlvbnMgaW50cm9kdWNlZCBieSB0aGUgcGF0Y2ggc2VyaWVzLlxuXG4tIFJFQUNIQUJJTElUWSBJUyBUSEUgUFJJTUFSWSBHQVRFOlxuICBGdXp6aW5nIGNhbiBvbmx5IGRpc2NvdmVyIGJ1Z3MgaW4gY29kZSB0aGF0IGNhbiBhY3R1YWxseSBleGVjdXRlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkXG4gIGVudmlyb25tZW50cyAoR0NFIG9yIFFFTVUsIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBkZXZpY2VzIGxpa2UgVVNCIGdhZGdldHMsIG5ldGRldiwgdHVuL3RhcCkuXG4gIElmIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSAoc2VlIFNlY3Rpb24gMiksIGl0IE1VU1QgTk9UIGJlIGZ1enplZCxcbiAgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0IGFkZHMgYXNzZXJ0aW9ucyBvciBjb21wbGV4IGxvZ2ljLlxuXG4tIERPIE5PVCBCTElORExZIFRSVVNUIFwiTk8gRlVOQ1RJT05BTCBDSEFOR0VcIiAoTkZDSSkgT1IgXCJSRUZBQ1RPUklOR1wiIENMQUlNUzpcbiAgUGF0Y2ggYXV0aG9ycyByb3V0aW5lbHkgbGFiZWwgY2hhbmdlcyBhcyBcImNsZWFudXBzXCIsIFwicmVmYWN0b3JpbmdzXCIsIG9yIHN0YXRlXG4gIFwiTm8gZnVuY3Rpb25hbCBjaGFuZ2UgaW50ZW5kZWRcIi4gRG8gTk9UIHRha2UgdGhlc2UgY2xhaW1zIGF0IGZhY2UgdmFsdWUuXG4gIENvZGUgcmVmYWN0b3JpbmdzIHRoYXQgcmVhcnJhbmdlIGxvZ2ljLCBpbnRyb2R1Y2UgaGVscGVyIGZ1bmN0aW9ucywgb3IgYWx0ZXIgc3RhdGUgbWFuYWdlbWVudFxuICBpbiBjb3JlIHN1YnN5c3RlbXMgZnJlcXVlbnRseSBpbnRyb2R1Y2Ugc3VidGxlIHNlbWFudGljIHNoaWZ0cyBvciB1bmNvdmVyIGxhdGVudCBrZXJuZWwgYnVncy5cbiAgSWYgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSBpcyBtb2RpZmllZCBvciByZWZhY3RvcmVkLCBpdCBNVVNUIGJlIGZ1enplZC5cblxuLSBORVcgT1IgTU9ESUZJRUQgQVNTRVJUSU9OUyBJTiBSRUFDSEFCTEUgQ09ERSBNVVNUIEJFIEZVWlpFRDpcbiAgV2hlbiBhIHBhdGNoIGludHJvZHVjZXMgb3IgbW9kaWZpZXMgcnVudGltZSBjaGVja3Mgb3IgYXNzZXJ0aW9ucyAoZS5nLiwgV0FSTl9PTiosIFZNX1dBUk5fT04qLFxuICBCVUdfT04qLCBsb2NrZGVwX2Fzc2VydCopIGluIHJlYWNoYWJsZSBjb2RlIHBhdGhzLCBpdCBlbmZvcmNlcyBuZXcgb3Igc3RyaWN0ZXIgaW52YXJpYW50cy5cbiAgRXZlbiBpZiB0aGUgYXV0aG9yIGJlbGlldmVzIHRoZSBpbnZhcmlhbnQgYWx3YXlzIGhvbGRzLCBmdXp6aW5nIGlzIGVzc2VudGlhbCB0byB2ZXJpZnkgd2hldGhlclxuICBhbiB1bnVzdWFsIHNlcXVlbmNlIG9mIG9wZXJhdGlvbnMgY2FuIHZpb2xhdGUgaXQuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4yLiBXSEVOIFRPIFJFVFVSTiBXb3J0aEZ1enppbmc9ZmFsc2UgKE5FR0FUSVZFIENSSVRFUklBKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgT05MWSBJRiBhbGwgbW9kaWZpZWQgY29kZSBmYWxscyBzdHJpY3RseSBpbnRvIG9uZSBvciBtb3JlIG9mIHRoZXNlIGNhdGVnb3JpZXM6XG5cbi0gTm9uLWtlcm5lbCBhbmQgbm9uLWV4ZWN1dGFibGUgY2hhbmdlczpcbiAgKiBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBjb21tZW50cywgb3Igc3BlbGxpbmcgZml4ZXMuXG4gICogVXNlci1zcGFjZSBkaXJlY3Rvcmllcywgc2VsZi10ZXN0cywgc2FtcGxlcywgb3Igc2NyaXB0cyAoZS5nLiwgdG9vbHMvLCBzYW1wbGVzLywgc2NyaXB0cy8sIHVzci8pXG4gICAgdGhhdCBkbyBub3QgYWZmZWN0IHRoZSBjb21waWxlZCBrZXJuZWwgaW1hZ2UgKHZtbGludXgpIG9yIGtlcm5lbCBtb2R1bGVzLlxuICAqIFB1cmVseSBkZWNvcmF0aXZlIGxvZ2dpbmcgKGUuZy4sIG1lc3NhZ2Ugc3RyaW5ncyBpbiBwcl9lcnIsIHByaW50aywgZGV2X2luZm8pIG9yIHRyYWNlcG9pbnRzXG4gICAgdGhhdCBkbyBub3QgYWx0ZXIgY29udHJvbCBmbG93IG9yIGRhdGEgc3RydWN0dXJlcy5cbiAgKiBCdWlsZCBzeXN0ZW0gb3IgS2NvbmZpZyBjaGFuZ2VzIHRoYXQgZG8gbm90IGFsdGVyIGNvbXBpbGVkIEMgbG9naWMuXG4tIFN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZTpcbiAgKiBWZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2hlcywgU21hcnROSUNzLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gICAgaW9uaWMsIGFtZGdwdSkgcmVxdWlyaW5nIHBoeXNpY2FsIEFTSUMvUENJZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gVW5yZWFjaGFibGUgZXhlY3V0aW9uIHBhdGhzOlxuICAqIERyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKC5yZW1vdmUsIC5zaHV0ZG93biwgcGNpX3VucmVnaXN0ZXJfZHJpdmVyKSBleGVjdXRlZCBvbmx5IGR1cmluZ1xuICAgIHBoeXNpY2FsIFBDSSBob3QtdW5wbHVnIG9yIG1hbnVhbCBzeXNmcyBkcml2ZXIgdW5iaW5kaW5nLlxuICAqIENvZGUgcGF0aHMgZXhjbHVzaXZlIHRvIGFyY2hpdGVjdHVyZXMgb3RoZXIgdGhhbiB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjMuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz10cnVlIChQT1NJVElWRSBDUklURVJJQSlcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5SZXR1cm4gV29ydGhGdXp6aW5nPXRydWUgd2hlbmV2ZXIgdGhlIHBhdGNoIHRvdWNoZXMgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSwgaW5jbHVkaW5nOlxuLSBDb3JlIFN1YnN5c3RlbXM6XG4gICogQW55IGxvZ2ljIG1vZGlmaWNhdGlvbnMgaW4gbWVtb3J5IG1hbmFnZW1lbnQgKG1tLyksIHN5bmNocm9uaXphdGlvbi9sb2NraW5nIChrZXJuZWwvbG9ja2luZy8pLFxuICAgIEJQRiwgc2NoZWR1bGVyLCBjb3JlIG5ldHdvcmtpbmcsIFZGUywgb3Igc3lzY2FsbCBoYW5kbGluZy5cbi0gUmVmYWN0b3JpbmdzIGFuZCBDb2RlIENsZWFudXBzOlxuICAqIEFueSByZXN0cnVjdHVyaW5nIG9mIHJlYWNoYWJsZSBkYXRhIHN0cnVjdHVyZXMsIGhlbHBlciBhYnN0cmFjdGlvbnMsIG9yIGFsZ29yaXRobSBmbG93cy5cbi0gUnVudGltZSBBc3NlcnRpb25zIGFuZCBEZWZlbnNpdmUgQ2hlY2tzOlxuICAqIEFueSBpbnRyb2R1Y3Rpb24gb3IgYWx0ZXJhdGlvbiBvZiBhc3NlcnRpb25zIChXQVJOX09OKiwgVk1fV0FSTl9PTiosIEJVR19PTiosIGV0Yy4pIGluIHJlYWNoYWJsZSBwYXRocy5cbi0gUmVhY2hhYmxlIERyaXZlcnMgYW5kIFByb3RvY29sczpcbiAgKiBEcml2ZXJzIGFjY2Vzc2libGUgdmlhIHZpcnR1YWwgYnVzZXMgKHZpcnRpbywgVVNCIGdhZGdldCwgbG9vcGJhY2ssIG5ldGxpbmssIGJpbmRlciwgc29ja2V0cywgZXRjLikuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG40LiBFWFRSQUNUSU5HIEZvY3VzU3ltYm9scyAoUFJFVkVOVElORyBESUxVVElPTilcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5XaGVuIFdvcnRoRnV6emluZz10cnVlLCB5b3UgbXVzdCBleHRyYWN0IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgaW50byBGb2N1c1N5bWJvbHMgdG8gZ3VpZGUgdGhlIGZ1enplcjpcblxuLSBBVk9JRCBVQklRVUlUT1VTIExJRkVDWUNMRSBIT1QtUEFUSFM6XG4gIERvIE5PVCBsaXN0IGdlbmVyaWMsIHViaXF1aXRvdXMgZnVuY3Rpb25zIGNhbGxlZCBieSBhbG1vc3QgZXZlcnkgcHJvZ3JhbSBpbiB0aGUgY29ycHVzXG4gIChpbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0bzogZ2VuZXJhbCBtZW1vcnkgYWxsb2NhdG9ycyBhbmQgZGVhbGxvY2F0b3JzLCBwYWdlIGZhdWx0XG4gIGFuZCB0cmFwIGhhbmRsZXJzLCBvciBjb3JlIHN5bmNocm9uaXphdGlvbiBwcmltaXRpdmVzOyB0aGlzIGlzIG5vdCBhbiBleGhhdXN0aXZlIGxpc3QpLlxuICBMaXN0aW5nIHViaXF1aXRvdXMgZnVuY3Rpb25zIGNhdXNlcyB0aGUgZnV6emVyIHRvIGNsYXNzaWZ5IHRob3VzYW5kcyBvZiB1bnJlbGF0ZWQgdGVzdHMgYXMgXCJmb2N1c2VkXCIsXG4gIHdoaWNoIHNldmVyZWx5IGRpbHV0ZXMgZnV6emluZyBlZmZvcnQgYXdheSBmcm9tIHRoZSBhY3R1YWwgY2hhbmdlcy5cblxuLSBUQVJHRVQgU1BFQ0lGSUMgRkVBVFVSRSBMT0dJQyBBTkQgRU5UUllQT0lOVFM6XG4gIExpc3QgZnVuY3Rpb25zIHRoYXQgc3BlY2lmaWNhbGx5IGltcGxlbWVudCB0aGUgbG9naWMgYmVpbmcgYWRkZWQgb3IgYWx0ZXJlZCwgb3IgZGlyZWN0IEFQSSBlbnRyeXBvaW50c1xuICBmb3IgdGhlIHN1YnN5c3RlbSBmZWF0dXJlIHVuZGVyIHJldmlldy5cblxuLSBIQU5ETElORyBTVEFUSUMgSU5MSU5FIEZVTkNUSU9OUyBJTiBIRUFERVJTICguaCk6XG4gIENvbXBpbGVyLWlubGluZWQgc3RhdGljIGZ1bmN0aW9ucyAoc3VjaCBhcyBzdGF0aWMgaW5saW5lcyBpbiBtbS8qLmggb3IgaW5jbHVkZS9saW51eC8qLmgpIGxhY2tcbiAgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcyBpbiB2bWxpbnV4IGFuZCBjYW5ub3QgYmUgdGFyZ2V0ZWQgZGlyZWN0bHkgYnkgc3ltYm9sIGNvdmVyYWdlIGZpbHRlcnMuXG4gIElmIHRoZSBjaGFuZ2VzIGFyZSBwcmltYXJpbHkgaW4gc3RhdGljIGlubGluZSBoZWxwZXJzLCBpZGVudGlmeSBub24tc3RhdGljLCBmZWF0dXJlLXNwZWNpZmljIGNhbGxlclxuICBmdW5jdGlvbnMgaW4gLmMgZmlsZXMgdGhhdCBleGVyY2lzZSB0aGVtIChhdm9pZGluZyB1YmlxdWl0b3VzIGxpZmVjeWNsZSB3cmFwcGVycykuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG41LiBJREVOVElGWUlORyBFbmFibGVDb25maWdzXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSBjb21waWxlIGFuZCByZWFjaCB0aGUgbW9kaWZpZWQgY29kZTpcbi0gSW5zcGVjdCBLY29uZmlnIGZpbGVzIGFuZCAjaWZkZWYgZ3VhcmRzOyBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbi0gQ2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzIG5lZWRlZC5cbi0gU3RyaXAgYW55ICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IlRhcmdldCBhcmNoaXRlY3R1cmU6IGFtZDY0XG5cbkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGQ5MGIwODdiOTFjZWQ1ZWViZjYwOGU3Y2QxNTM3NWY3NDE1YWIyMzdcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIFNlcCA0IDIwOjEwOjA5IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmNcbmluZGV4IDk5YmY1Y2Y3OWQxMDIuLjY1NGM1OGQ3YzFkNWYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jXG5AQCAtMTQxMjUsNyArMTQxMjUsNyBAQCBFWFBPUlRfU1lNQk9MKGF0aDEya19tYWNfb3Bfc2V0X3Jla2V5X2RhdGEpO1xuIHZvaWQgYXRoMTJrX21hY191cGRhdGVfZnJlcV9yYW5nZShzdHJ1Y3QgYXRoMTJrICphcixcbiBcdFx0XHRcdCAgdTMyIGZyZXFfbG93LCB1MzIgZnJlcV9oaWdoKVxuIHtcbi1cdGlmICghKGZyZXFfbG93IFx1MDAyNlx1MDAyNiBmcmVxX2hpZ2gpKVxuK1x0aWYgKCFmcmVxX2xvdyB8fCBmcmVxX2xvdyBcdTAwM2U9IGZyZXFfaGlnaClcbiBcdFx0cmV0dXJuO1xuIFxuIFx0aWYgKGFyLVx1MDAzZWZyZXFfcmFuZ2Uuc3RhcnRfZnJlcSB8fCBhci1cdTAwM2VmcmVxX3JhbmdlLmVuZF9mcmVxKSB7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNFQyMDoxMDoxMC45NTQyNzQwNDlaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo2NDM3NDY3MjcyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUGF0Y2ggZm9yIEZ1enppbmcgUG90ZW50aWFsKipcblxuT2theSwgbGV0J3MgdGFrZSBhIGxvb2sgYXQgdGhpcyBwYXRjaCBhbmQgZGVjaWRlIGlmIGl0J3Mgd29ydGggdGhlIHRpbWUgdG8gZnV6eiB3aXRoIHN5emthbGxlci4gVGhlIGRpZmYgaXMgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZDsgaXQgc2VlbXMgdG8gYmUgaW4gdGhlIGBhdGgxMmtgIHdpcmVsZXNzIGRyaXZlci4gU3BlY2lmaWNhbGx5LCBpdCdzIGEgY29uZGl0aW9uYWwgY2hlY2sgcmVsYXRlZCB0byBmcmVxdWVuY3kgcmFuZ2VzLiBUaGUgb3JpZ2luYWwgY2hlY2sgd2FzIGBpZiAoIShmcmVxX2xvdyBcdTAwMjZcdTAwMjYgZnJlcV9oaWdoKSlgLCB3aGljaCBoYXMgYmVlbiBjaGFuZ2VkIHRvIGBpZiAoIWZyZXFfbG93IHx8IGZyZXFfbG93IFx1MDAzZT0gZnJlcV9oaWdoKWAuIFRoaXMgc3VnZ2VzdHMgYSBwb3RlbnRpYWwgYnVnIG9yIHZ1bG5lcmFiaWxpdHkgcmVsYXRlZCB0byBmcmVxdWVuY3kgcmFuZ2UgdmFsaWRhdGlvbi4gVGhhdCdzIGEgcmVhc29uYWJsZSBjaGFuZ2UsIGF0IGZpcnN0IGdsYW5jZS5cblxuRmlyc3QsIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgYGF0aDEya2AgKmlzKi4gSSBuZWVkIHRvIGRldGVybWluZSBpZiB0aGlzIGRyaXZlciBpcyBzb21ldGhpbmcgdGhhdCdzIGxpa2VseSB0byBiZSByZWFjaGVkIGluIGEgc3RhbmRhcmQsIHZpcnR1YWxpemVkIGVudmlyb25tZW50LCBsaWtlIFFFTVUgb3IgR29vZ2xlIENvbXB1dGUgRW5naW5lLiBJZiBpdCByZXF1aXJlcyBzcGVjaWFsaXplZCBoYXJkd2FyZSwgdGhhdCBncmVhdGx5IGluY3JlYXNlcyB0aGUgb3ZlcmhlYWQgb2YgZnV6emluZy4gSSdsbCBuZWVkIHRvIGNoZWNrIHRoZSBLY29uZmlnIGFuZCBidXMgdHlwZSBkZWZpbml0aW9ucyBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9gIHRvIGdldCBhIGhhbmRsZSBvbiB0aGlzLCBhbmQgc2VlIHdoYXQgdGhlIGRldmljZSBkZXBlbmRzIG9uLlxuXG5JJ2xsIHVzZSBgZ3JlcHBlcmAgKG9yIGByZWFkLWZpbGVgIGlmIHRoZSBncmVwIGZhaWxzKSB0byBxdWlja2x5IHNjYW4gdGhyb3VnaCB0aGUgY29kZSBiYXNlIGFuZCBjb25maWd1cmF0aW9uIGZpbGVzIHJlbGF0ZWQgdG8gYGF0aDEya2AgdG8gZ2F0aGVyIHRoaXMgaW5mb3JtYXRpb24uIE15IGdvYWwgaXMgdG8gcXVpY2tseSBhc2NlcnRhaW4gdGhlIGFjY2Vzc2liaWxpdHkgb2YgdGhpcyBjb2RlIGZvciBhIHN0YW5kYXJkIGZ1enppbmcgc2V0dXAuIEJhc2VkIG9uIHRoYXQgYXNzZXNzbWVudCwgSSdsbCB0aGVuIGRlY2lkZSBpZiB0aGlzIHBhdGNoIGlzIGEgZ29vZCBjYW5kaWRhdGUgZm9yIHN5emthbGxlci5cblxuXG4iLCJJbnB1dFRva2VucyI6MjkyMCwiT3V0cHV0VG9rZW5zIjo4NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM3NiwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA0VDIwOjEwOjE3LjM5MTc0MzUxMVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjY5ODU0ODQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYXRoMTJrX21hY191cGRhdGVfZnJlcV9yYW5nZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmM9MTQxMjM9RVhQT1JUX1NZTUJPTChhdGgxMmtfbWFjX29wX3NldF9yZWtleV9kYXRhKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jLTE0MTI0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmM6MTQxMjU6dm9pZCBhdGgxMmtfbWFjX3VwZGF0ZV9mcmVxX3JhbmdlKHN0cnVjdCBhdGgxMmsgKmFyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmMtMTQxMjYtXFx0XFx0XFx0XFx0ICB1MzIgZnJlcV9sb3csIHUzMiBmcmVxX2hpZ2gpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jPTE0MjI1PXN0YXRpYyBpbnQgYXRoMTJrX21hY19zZXR1cF9jaGFubmVsc19yYXRlcyhzdHJ1Y3QgYXRoMTJrICphcixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmMtMTQyNzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYzoxNDI3MjpcXHRcXHRhdGgxMmtfbWFjX3VwZGF0ZV9mcmVxX3JhbmdlKGFyLCBmcmVxX2xvdywgZnJlcV9oaWdoKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jLTE0MjczLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYy0xNDMxNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jOjE0MzE3OlxcdFxcdFxcdGF0aDEya19tYWNfdXBkYXRlX2ZyZXFfcmFuZ2UoYXIsIGZyZXFfbG93LCBmcmVxX2hpZ2gpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmMtMTQzMTgtXFx0XFx0XFx0YWgtXFx1MDAzZXVzZV82Z2h6X3JlZ2QgPSB0cnVlO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYy0xNDM3My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jOjE0Mzc0OlxcdFxcdFxcdGF0aDEya19tYWNfdXBkYXRlX2ZyZXFfcmFuZ2UoYXIsIGZyZXFfbG93LCBmcmVxX2hpZ2gpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmMtMTQzNzUtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5oPTIwND1pbnQgYXRoMTJrX21hY19nZXRfZndfc3RhdHMoc3RydWN0IGF0aDEyayAqYXIsIHN0cnVjdCBhdGgxMmtfZndfc3RhdHNfcmVxX3BhcmFtcyAqcGFyYW0pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmg6MjA1OnZvaWQgYXRoMTJrX21hY191cGRhdGVfZnJlcV9yYW5nZShzdHJ1Y3QgYXRoMTJrICphcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5oLTIwNi1cXHRcXHRcXHRcXHQgIHUzMiBmcmVxX2xvdywgdTMyIGZyZXFfaGlnaCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3JlZy5jPTI2OT1pbnQgYXRoMTJrX3JlZ2RfdXBkYXRlKHN0cnVjdCBhdGgxMmsgKmFyLCBib29sIGluaXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3JlZy5jLTMwOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3JlZy5jOjMxMDpcXHRcXHRhdGgxMmtfbWFjX3VwZGF0ZV9mcmVxX3JhbmdlKGFyLCBmcmVxX2xvdywgZnJlcV9oaWdoKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3JlZy5jLTMxMS1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3JlZy5jLTMyMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3JlZy5jOjMyMjpcXHRcXHRhdGgxMmtfbWFjX3VwZGF0ZV9mcmVxX3JhbmdlKGFyLCBmcmVxX2xvdywgZnJlcV9oaWdoKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3JlZy5jLTMyMy1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3JlZy5jLTMyOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3JlZy5jOjMyOTpcXHRcXHRhdGgxMmtfbWFjX3VwZGF0ZV9mcmVxX3JhbmdlKGFyLCBmcmVxX2xvdywgZnJlcV9oaWdoKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3JlZy5jLTMzMC1cXHR9XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA0VDIwOjEwOjE3LjUxODczNTE3NVoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwMTEyMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogNTBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcXG4gICAyOlxcdGNvbmZpZyBBVEgxMktcXG4gICAzOlxcdFxcdHRyaXN0YXRlIFxcXCJRdWFsY29tbSBXaS1GaSA3IHN1cHBvcnQgKGF0aDEyaylcXFwiXFxuICAgNDpcXHRcXHRkZXBlbmRzIG9uIE1BQzgwMjExIFxcdTAwMjZcXHUwMDI2IEhBU19ETUEgXFx1MDAyNlxcdTAwMjYgUENJXFxuICAgNTpcXHRcXHRzZWxlY3QgUUNPTV9RTUlfSEVMUEVSU1xcbiAgIDY6XFx0XFx0c2VsZWN0IE1ISV9CVVNcXG4gICA3OlxcdFxcdHNlbGVjdCBRUlRSXFxuICAgODpcXHRcXHRzZWxlY3QgUVJUUl9NSElcXG4gICA5OlxcdFxcdHNlbGVjdCBQQ0lfUFdSQ1RSTF9QV1JTRVEgaWYgSEFWRV9QV1JDVFJMXFxuICAxMDpcXHRcXHRoZWxwXFxuICAxMTpcXHRcXHQgIEVuYWJsZSBzdXBwb3J0IGZvciBRdWFsY29tbSBUZWNobm9sb2dpZXMgV2ktRmkgNyAoSUVFRVxcbiAgMTI6XFx0XFx0ICA4MDIuMTFiZSkgZmFtaWx5IG9mIGNoaXBzZXRzLCBmb3IgZXhhbXBsZSBXQ043ODUwIGFuZFxcbiAgMTM6XFx0XFx0ICBRQ045Mjc0LlxcbiAgMTQ6XFx0XFxuICAxNTpcXHRcXHQgIElmIHlvdSBjaG9vc2UgdG8gYnVpbGQgYSBtb2R1bGUsIGl0J2xsIGJlIGNhbGxlZCBhdGgxMmsuXFxuICAxNjpcXHRcXG4gIDE3OlxcdGNvbmZpZyBBVEgxMktfQUhCXFxuICAxODpcXHRcXHRib29sIFxcXCJRdWFsY29tbSBhdGgxMmsgQUhCIHN1cHBvcnRcXFwiXFxuICAxOTpcXHRcXHRkZXBlbmRzIG9uIEFUSDEySyBcXHUwMDI2XFx1MDAyNiBSRU1PVEVQUk9DXFxuICAyMDpcXHRcXHRzZWxlY3QgUUNPTV9NRFRfTE9BREVSXFxuICAyMTpcXHRcXHRzZWxlY3QgUUNPTV9QQVNcXG4gIDIyOlxcdFxcdGhlbHBcXG4gIDIzOlxcdFxcdCAgRW5hYmxlIHN1cHBvcnQgZm9yIEF0aDEyayBBSEIgYnVzIGNoaXBzZXRzLCBleGFtcGxlIElQUTUzMzIuXFxuICAyNDpcXHRcXG4gIDI1OlxcdGNvbmZpZyBBVEgxMktfREVCVUdcXG4gIDI2OlxcdFxcdGJvb2wgXFxcImF0aDEyayBkZWJ1Z2dpbmdcXFwiXFxuICAyNzpcXHRcXHRkZXBlbmRzIG9uIEFUSDEyS1xcbiAgMjg6XFx0XFx0aGVscFxcbiAgMjk6XFx0XFx0ICBFbmFibGUgZGVidWcgc3VwcG9ydCwgZm9yIGV4YW1wbGUgZGVidWcgbWVzc2FnZXMgd2hpY2ggbXVzdFxcbiAgMzA6XFx0XFx0ICBiZSBlbmFibGVkIHNlcGFyYXRlbHkgdXNpbmcgdGhlIGRlYnVnX21hc2sgbW9kdWxlIHBhcmFtZXRlci5cXG4gIDMxOlxcdFxcbiAgMzI6XFx0XFx0ICBJZiB1bnN1cmUsIHNheSBZIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGRlYnVnIHByb2JsZW1zLiBCdXQgaWZcXG4gIDMzOlxcdFxcdCAgeW91IHdhbnQgb3B0aW1hbCBwZXJmb3JtYW5jZSBjaG9vc2UgTi5cXG4gIDM0OlxcdFxcbiAgMzU6XFx0Y29uZmlnIEFUSDEyS19ERUJVR0ZTXFxuICAzNjpcXHRcXHRib29sIFxcXCJRdWFsY29tbSBhdGgxMmsgZGVidWdmcyBzdXBwb3J0XFxcIlxcbiAgMzc6XFx0XFx0ZGVwZW5kcyBvbiBBVEgxMksgXFx1MDAyNlxcdTAwMjYgTUFDODAyMTFfREVCVUdGU1xcbiAgMzg6XFx0XFx0aGVscFxcbiAgMzk6XFx0XFx0ICBFbmFibGUgYXRoMTJrIGRlYnVnZnMgc3VwcG9ydFxcbiAgNDA6XFx0XFxuICA0MTpcXHRcXHQgIElmIHVuc3VyZSwgc2F5IFkgdG8gbWFrZSBpdCBlYXNpZXIgdG8gZGVidWcgcHJvYmxlbXMuIEJ1dCBpZlxcbiAgNDI6XFx0XFx0ICB5b3Ugd2FudCBvcHRpbWFsIHBlcmZvcm1hbmNlIGNob29zZSBOLlxcbiAgNDM6XFx0XFxuICA0NDpcXHRjb25maWcgQVRIMTJLX1RSQUNJTkdcXG4gIDQ1OlxcdFxcdGJvb2wgXFxcImF0aDEyayB0cmFjaW5nIHN1cHBvcnRcXFwiXFxuICA0NjpcXHRcXHRkZXBlbmRzIG9uIEFUSDEySyBcXHUwMDI2XFx1MDAyNiBFVkVOVF9UUkFDSU5HXFxuICA0NzpcXHRcXHRoZWxwXFxuICA0ODpcXHRcXHQgIEVuYWJsZSBhdGgxMmsgdHJhY2luZyBpbmZyYXN0cnVjdHVyZS5cXG4gIDQ5OlxcdFxcbiAgNTA6XFx0XFx0ICBJZiB1bnN1cmUsIHNheSBZIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGRlYnVnIHByb2JsZW1zLiBCdXQgaWZcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDRUMjA6MTA6MTcuNTE4ODUxMzM1WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6NDIyOTQ2ODUzOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIGF0aDEyaydzIFZpcnR1YWxpemF0aW9uIEZlYXNpYmlsaXR5KipcblxuT2theSwgc28gYGF0aDEya2Ag4oCTIHRoYXQncyB0aGUgUXVhbGNvbW0gV2ktRmkgNyBkcml2ZXIsIHNwZWNpZmljYWxseSBmb3IgdGhlIFdDTjc4NTAgYW5kIFFDTjkyNzQsIGRlYWxpbmcgd2l0aCBQQ0kgYW5kIEFIQiBpbnRlcmZhY2VzLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgY2FuIEkgZXZlbiAqdG91Y2gqIHRoaXMgdGhpbmcgaW4gYSBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBsaWtlIFFFTVUgb3IgR29vZ2xlIENvbXB1dGUgRW5naW5lP1xuXG5UaGUgZHJpdmVyIGlzIGNsZWFybHkgdGllZCB0byB0aGUgaGFyZHdhcmU6IGl0J3MgYSBQQ0kvQUhCIGRyaXZlciBmb3IgdGhlc2Ugc3BlY2lmaWMgUXVhbGNvbW0gV2ktRmkgNyBjYXJkcy4gU28sIEkgbmVlZCB0byBmaWd1cmUgb3V0IGlmIHRoZXJlJ3MgYW55IGNoYW5jZSBvZiBlbXVsYXRpb24sIG9yIGlmIGl0J3Mgc3RyaWN0bHkgZGVwZW5kZW50IG9uIGhhdmluZyB0aGUgcGh5c2ljYWwgUXVhbGNvbW0gaGFyZHdhcmUsIHRoZSBmaXJtd2FyZSwgYW5kIHRoYXQgTUhJIGJ1cyBjb25uZWN0aW9uLlxuXG5UaGUgY3JpdGVyaWEgSSdtIHVzaW5nIHN0YXRlIHRoYXQgaWYgc29tZXRoaW5nJ3Mgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlLCBsaWtlIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIEdQVSBkcml2ZXJzICh0aGluayBtbHhzdywgcGRzX2NvcmUsIHFlZCwgaW9uaWMsIGFtZGdwdSksIGFuZCAqZXNwZWNpYWxseSogZHJpdmVycyB0aGF0IHJlcXVpcmUgdGhlIGFjdHVhbCBBU0lDL1BDSWUgY2FyZHMgdGhhdCBRRU1VIGRvZXNuJ3QgZW11bGF0ZSwgdGhlbiBpdCdzIGEgbm8tZ28gZm9yIFdvcnRoRnV6emluZy5cblxuSSdtIHRoaW5raW5nLCBcIndoYXQgaGFyZHdhcmUgZG9lcyBhdGgxMmsgKmFjdHVhbGx5KiBzdXBwb3J0P1wiIEl0J3MgUXVhbGNvbW0gV2ktRmkgNyBkZXZpY2VzIHVzaW5nIFBDSWUvQUhCLiBPa2F5LCBzbyBub3cgSSBuZWVkIHRvIGRldGVybWluZSBpZiBzdGFuZGFyZCBRRU1VIG9yIEdDRSBvZmZlciBhbnl0aGluZyBsaWtlIGFuIGVtdWxhdGVkIGF0aDEyayBkZXZpY2UuIEFuZCB0aGUgYW5zd2VyIGlzIGxpa2VseSBuby4gUUVNVSBnZW5lcmFsbHkgaGFzIG90aGVyIG9wdGlvbnMsIGxpa2UgbWFjODAyMTFfaHdzaW0sIHZpcnRpby1uZXQsIGUxMDAwLCBydGw4MTM5LCBvciBldmVuIFVTQiBnYWRnZXQgV2ktRmkgZGV2aWNlcywgYnV0IGBhdGgxMmtgIGlzIHNwZWNpZmljYWxseSBQQ0kvQUhCLlxuXG5MZXQncyBkcmlsbCBkb3duIGFuZCBjb25maXJtIGJ5IGV4YW1pbmluZyBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuY2AgYW5kIGBhaGIuY2AgdG8gc2VlIGlmIHRoYXQgcmVpbmZvcmNlcyB0aGUgaGFyZHdhcmUgZGVwZW5kZW5jaWVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1NDEzLCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzUxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciIsInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA0VDIwOjEwOjIxLjc0ODMyMjcxM1oiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NzgwMzY0OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJhdGgxMmtfXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxMDU4IGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTM4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6Mzk6c3RhdGljIHN0cnVjdCBhdGgxMmtfcGNpX2RyaXZlciAqYXRoMTJrX3BjaV9mYW1pbHlfZHJpdmVyc1tBVEgxMktfREVWSUNFX0ZBTUlMWV9NQVhdO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NDA6c3RhdGljIGNvbnN0IHN0cnVjdCBhdGgxMmtfbXNpX2NvbmZpZyBtc2lfY29uZmlnX29uZV9tc2kgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy00MS1cXHQudG90YWxfdmVjdG9ycyA9IDEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy00Mi1cXHQudG90YWxfdXNlcnMgPSA0LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NDM6XFx0LnVzZXJzID0gKHN0cnVjdCBhdGgxMmtfbXNpX3VzZXJbXSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNDQtXFx0XFx0eyAubmFtZSA9IFxcXCJNSElcXFwiLCAubnVtX3ZlY3RvcnMgPSAzLCAuYmFzZV92ZWN0b3IgPSAwIH0sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jPTUxPXN0YXRpYyBjb25zdCBjaGFyICppcnFfbmFtZVtBVEgxMktfSVJRX05VTV9NQVhdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0xMDktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoxMTA6c3RhdGljIHZvaWQgYXRoMTJrX3BjaV9zZWxlY3Rfd2luZG93KHN0cnVjdCBhdGgxMmtfcGNpICphYl9wY2ksIHUzMiBvZmZzZXQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0xMTEte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MTEyOlxcdHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIgPSBhYl9wY2ktXFx1MDAzZWFiO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMTEzLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0xMzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoxMzE6c3RhdGljIHZvaWQgYXRoMTJrX3BjaV9zZWxlY3Rfc3RhdGljX3dpbmRvdyhzdHJ1Y3QgYXRoMTJrX3BjaSAqYWJfcGNpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMTMyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMTQ3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MTQ4OnN0YXRpYyB1MzIgYXRoMTJrX3BjaV9nZXRfd2luZG93X3N0YXJ0KHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0xNDktXFx0XFx0XFx0XFx0ICAgICAgIHUzMiBvZmZzZXQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0xNTAte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MTUxOlxcdHN0cnVjdCBhdGgxMmtfcGNpICphYl9wY2kgPSBhdGgxMmtfcGNpX3ByaXYoYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMTUyLVxcdHUzMiB3aW5kb3dfc3RhcnQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTE2NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjE2NjpzdGF0aWMgaW5saW5lIGJvb2wgYXRoMTJrX3BjaV9pc19vZmZzZXRfd2l0aGluX21oaV9yZWdpb24odTMyIG9mZnNldClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTE2Ny17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTE3MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjE3MTpzdGF0aWMgdm9pZCBhdGgxMmtfcGNpX3Jlc3RvcmVfd2luZG93KHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0xNzIte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MTczOlxcdHN0cnVjdCBhdGgxMmtfcGNpICphYl9wY2kgPSBhdGgxMmtfcGNpX3ByaXYoYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMTc0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0xODMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoxODQ6c3RhdGljIHZvaWQgYXRoMTJrX3BjaV9zb2NfZ2xvYmFsX3Jlc2V0KHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0xODUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0xODctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoxODg6XFx0dmFsID0gYXRoMTJrX3BjaV9yZWFkMzIoYWIsIFBDSUVfU09DX0dMT0JBTF9SRVNFVCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0xODktXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTE5MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjE5MjpcXHRhdGgxMmtfcGNpX3dyaXRlMzIoYWIsIFBDSUVfU09DX0dMT0JBTF9SRVNFVCwgdmFsKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTE5My1cXHQvKiBGbHVzaCB0aGUgcG9zdGVkIHdyaXRlIHRvIHRoZSBkZXZpY2UgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjE5NDpcXHRhdGgxMmtfcGNpX3JlYWQzMihhYiwgUENJRV9TT0NfR0xPQkFMX1JFU0VUKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTE5NS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMjAyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjAzOlxcdGF0aDEya19wY2lfd3JpdGUzMihhYiwgUENJRV9TT0NfR0xPQkFMX1JFU0VULCB2YWwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMjA0LVxcdC8qIEZsdXNoIHRoZSBwb3N0ZWQgd3JpdGUgdG8gdGhlIGRldmljZSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjA1OlxcdGF0aDEya19wY2lfcmVhZDMyKGFiLCBQQ0lFX1NPQ19HTE9CQUxfUkVTRVQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMjA2LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yMDgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoyMDk6XFx0dmFsID0gYXRoMTJrX3BjaV9yZWFkMzIoYWIsIFBDSUVfU09DX0dMT0JBTF9SRVNFVCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yMTAtXFx0aWYgKHZhbCA9PSAweGZmZmZmZmZmKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjExOlxcdFxcdGF0aDEya193YXJuKGFiLCBcXFwibGluayBkb3duIGVycm9yIGR1cmluZyBnbG9iYWwgcmVzZXRcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMjEyLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yMTUtXFx0ICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoyMTY6XFx0YXRoMTJrX3BjaV9yZXN0b3JlX3dpbmRvdyhhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yMTctfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMjE4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjE5OnN0YXRpYyB2b2lkIGF0aDEya19wY2lfY2xlYXJfZGJnX3JlZ2lzdGVycyhzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMjIwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMjIzLVxcdC8qIHJlYWQgY29va2llICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoyMjQ6XFx0dmFsID0gYXRoMTJrX3BjaV9yZWFkMzIoYWIsIFBDSUVfUTZfQ09PS0lFX0FERFIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjI1OlxcdGF0aDEya19kYmcoYWIsIEFUSDEyS19EQkdfUENJLCBcXFwiY29va2llOjB4JXhcXFxcblxcXCIsIHZhbCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yMjYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoyMjc6XFx0dmFsID0gYXRoMTJrX3BjaV9yZWFkMzIoYWIsIFdMQU9OX1dBUk1fU1dfRU5UUlkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjI4OlxcdGF0aDEya19kYmcoYWIsIEFUSDEyS19EQkdfUENJLCBcXFwiV0xBT05fV0FSTV9TV19FTlRSWSAweCV4XFxcXG5cXFwiLCB2YWwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMjI5LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yMzUtXFx0ICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoyMzY6XFx0YXRoMTJrX3BjaV93cml0ZTMyKGFiLCBXTEFPTl9XQVJNX1NXX0VOVFJZLCAwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTIzNy1cXHRtZGVsYXkoMTApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMjM4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjM5OlxcdHZhbCA9IGF0aDEya19wY2lfcmVhZDMyKGFiLCBXTEFPTl9XQVJNX1NXX0VOVFJZKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjI0MDpcXHRhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX1BDSSwgXFxcIldMQU9OX1dBUk1fU1dfRU5UUlkgMHgleFxcXFxuXFxcIiwgdmFsKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTI0MS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMjQ0LVxcdCAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjQ1OlxcdHZhbCA9IGF0aDEya19wY2lfcmVhZDMyKGFiLCBXTEFPTl9TT0NfUkVTRVRfQ0FVU0VfUkVHKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjI0NjpcXHRhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX1BDSSwgXFxcInNvYyByZXNldCBjYXVzZTolZFxcXFxuXFxcIiwgdmFsKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTI0Ny19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yNDgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoyNDk6c3RhdGljIHZvaWQgYXRoMTJrX3BjaV9lbmFibGVfbHRzc20oc3RydWN0IGF0aDEya19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTI1MC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTI1My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjI1NDpcXHR2YWwgPSBhdGgxMmtfcGNpX3JlYWQzMihhYiwgUENJRV9QQ0lFX1BBUkZfTFRTU00pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMjU1LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yNjAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoyNjE6XFx0XFx0YXRoMTJrX3BjaV93cml0ZTMyKGFiLCBQQ0lFX1BDSUVfUEFSRl9MVFNTTSwgUEFSTV9MVFNTTV9WQUxVRSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoyNjI6XFx0XFx0dmFsID0gYXRoMTJrX3BjaV9yZWFkMzIoYWIsIFBDSUVfUENJRV9QQVJGX0xUU1NNKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTI2My1cXHR9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yNjQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoyNjU6XFx0YXRoMTJrX2RiZyhhYiwgQVRIMTJLX0RCR19QQ0ksIFxcXCJwY2kgbHRzc20gMHgleFxcXFxuXFxcIiwgdmFsKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTI2Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjI2NzpcXHR2YWwgPSBhdGgxMmtfcGNpX3JlYWQzMihhYiwgR0NDX0dDQ19QQ0lFX0hPVF9SU1QoYWIpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTI2OC1cXHR2YWwgfD0gR0NDX0dDQ19QQ0lFX0hPVF9SU1RfVkFMO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjY5OlxcdGF0aDEya19wY2lfd3JpdGUzMihhYiwgR0NDX0dDQ19QQ0lFX0hPVF9SU1QoYWIpLCB2YWwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjcwOlxcdHZhbCA9IGF0aDEya19wY2lfcmVhZDMyKGFiLCBHQ0NfR0NDX1BDSUVfSE9UX1JTVChhYikpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMjcxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjcyOlxcdGF0aDEya19kYmcoYWIsIEFUSDEyS19EQkdfUENJLCBcXFwicGNpIHBjaWVfaG90X3JzdCAweCV4XFxcXG5cXFwiLCB2YWwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMjczLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yNzYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoyNzc6c3RhdGljIHZvaWQgYXRoMTJrX3BjaV9jbGVhcl9hbGxfaW50cnMoc3RydWN0IGF0aDEya19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTI3OC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTI4My1cXHQgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjI4NDpcXHRhdGgxMmtfcGNpX3dyaXRlMzIoYWIsIFBDSUVfUENJRV9JTlRfQUxMX0NMRUFSLCBQQ0lFX0lOVF9DTEVBUl9BTEwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMjg1LX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTI4Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjI4NzpzdGF0aWMgdm9pZCBhdGgxMmtfcGNpX3NldF93bGFvbl9wd3JfY3RybChzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMjg4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMjkwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjkxOlxcdHZhbCA9IGF0aDEya19wY2lfcmVhZDMyKGFiLCBXTEFPTl9RRlBST01fUFdSX0NUUkxfUkVHKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTI5Mi1cXHR2YWwgXFx1MDAyNj0gflFGUFJPTV9QV1JfQ1RSTF9WREQ0QkxPV19NQVNLO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjkzOlxcdGF0aDEya19wY2lfd3JpdGUzMihhYiwgV0xBT05fUUZQUk9NX1BXUl9DVFJMX1JFRywgdmFsKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTI5NC19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yOTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoyOTY6c3RhdGljIHZvaWQgYXRoMTJrX3BjaV9mb3JjZV93YWtlKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yOTcte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6Mjk4OlxcdGF0aDEya19wY2lfd3JpdGUzMihhYiwgUENJRV9TT0NfV0FLRV9QQ0lFX0xPQ0FMX1JFRywgMSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yOTktXFx0bWRlbGF5KDUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0zMDEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzozMDI6c3RhdGljIHZvaWQgYXRoMTJrX3BjaV9zd19yZXNldChzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiLCBib29sIHBvd2VyX29uKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMzAzLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTMwNC1cXHRpZiAocG93ZXJfb24pIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjMwNTpcXHRcXHRhdGgxMmtfcGNpX2VuYWJsZV9sdHNzbShhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzozMDY6XFx0XFx0YXRoMTJrX3BjaV9jbGVhcl9hbGxfaW50cnMoYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MzA3OlxcdFxcdGF0aDEya19wY2lfc2V0X3dsYW9uX3B3cl9jdHJsKGFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTMwOC1cXHR9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0zMDktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzozMTA6XFx0YXRoMTJrX21oaV9jbGVhcl92ZWN0b3IoYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MzExOlxcdGF0aDEya19wY2lfY2xlYXJfZGJnX3JlZ2lzdGVycyhhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzozMTI6XFx0YXRoMTJrX3BjaV9zb2NfZ2xvYmFsX3Jlc2V0KGFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjMxMzpcXHRhdGgxMmtfbWhpX3NldF9taGljdHJsX3Jlc2V0KGFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTMxNC19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0zMTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzozMTY6c3RhdGljIHZvaWQgYXRoMTJrX3BjaV9mcmVlX2V4dF9pcnEoc3RydWN0IGF0aDEya19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTMxNy17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTMyMC1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVRIMTJLX0VYVF9JUlFfR1JQX05VTV9NQVg7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MzIxOlxcdFxcdHN0cnVjdCBhdGgxMmtfZXh0X2lycV9ncnAgKmlycV9ncnAgPSBcXHUwMDI2YWItXFx1MDAzZWV4dF9pcnFfZ3JwW2ldO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMzIyLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0zMzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzozMzE6c3RhdGljIHZvaWQgYXRoMTJrX3BjaV9mcmVlX2lycShzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMzMyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMzM1LVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBhYi1cXHUwMDNlaHdfcGFyYW1zLVxcdTAwM2VjZV9jb3VudDsgaSsrKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzozMzY6XFx0XFx0aWYgKGF0aDEya19jZV9nZXRfYXR0cl9mbGFncyhhYiwgaSkgXFx1MDAyNiBDRV9BVFRSX0RJU19JTlRSKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMzM3LVxcdFxcdFxcdGNvbnRpbnVlO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0zNDEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzozNDI6XFx0YXRoMTJrX3BjaV9mcmVlX2V4dF9pcnEoYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMzQzLX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTM0NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjM0NTpzdGF0aWMgdm9pZCBhdGgxMmtfcGNpX2NlX2lycV9lbmFibGUoc3RydWN0IGF0aDEya19iYXNlICphYiwgdTE2IGNlX2lkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMzQ2LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjM0NzpcXHRzdHJ1Y3QgYXRoMTJrX3BjaSAqYWJfcGNpID0gYXRoMTJrX3BjaV9wcml2KGFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTM0OC1cXHR1MzIgaXJxX2lkeDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMzU5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MzYwOnN0YXRpYyB2b2lkIGF0aDEya19wY2lfY2VfaXJxX2Rpc2FibGUoc3RydWN0IGF0aDEya19iYXNlICphYiwgdTE2IGNlX2lkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMzYxLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjM2MjpcXHRzdHJ1Y3QgYXRoMTJrX3BjaSAqYWJfcGNpID0gYXRoMTJrX3BjaV9wcml2KGFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTM2My1cXHR1MzIgaXJxX2lkeDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMzc0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6Mzc1OnN0YXRpYyB2b2lkIGF0aDEya19wY2lfY2VfaXJxc19kaXNhYmxlKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0zNzYte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0zODEtXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIGFiLVxcdTAwM2Vod19wYXJhbXMtXFx1MDAzZWNlX2NvdW50OyBpKyspIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjM4MjpcXHRcXHRpZiAoYXRoMTJrX2NlX2dldF9hdHRyX2ZsYWdzKGFiLCBpKSBcXHUwMDI2IENFX0FUVFJfRElTX0lOVFIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0zODMtXFx0XFx0XFx0Y29udGludWU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzozODQ6XFx0XFx0YXRoMTJrX3BjaV9jZV9pcnFfZGlzYWJsZShhYiwgaSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0zODUtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0zODctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzozODg6c3RhdGljIHZvaWQgYXRoMTJrX3BjaV9zeW5jX2NlX2lycXMoc3RydWN0IGF0aDEya19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTM4OS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTM5My1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgYWItXFx1MDAzZWh3X3BhcmFtcy1cXHUwMDNlY2VfY291bnQ7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6Mzk0OlxcdFxcdGlmIChhdGgxMmtfY2VfZ2V0X2F0dHJfZmxhZ3MoYWIsIGkpIFxcdTAwMjYgQ0VfQVRUUl9ESVNfSU5UUilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTM5NS1cXHRcXHRcXHRjb250aW51ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNDAxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NDAyOnN0YXRpYyB2b2lkIGF0aDEya19wY2lfY2Vfd29ya3F1ZXVlKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTQwMy17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo0MDQ6XFx0c3RydWN0IGF0aDEya19jZV9waXBlICpjZV9waXBlID0gZnJvbV93b3JrKGNlX3BpcGUsIHdvcmssIGludHJfd3EpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNDA1LVxcdGludCBpcnFfaWR4ID0gQVRIMTJLX1BDSV9JUlFfQ0UwX09GRlNFVCArIGNlX3BpcGUtXFx1MDAzZXBpcGVfbnVtO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNDA2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NDA3OlxcdGF0aDEya19jZV9wZXJfZW5naW5lX3NlcnZpY2UoY2VfcGlwZS1cXHUwMDNlYWIsIGNlX3BpcGUtXFx1MDAzZXBpcGVfbnVtKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTQwOC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNDExLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NDEyOnN0YXRpYyBpcnFyZXR1cm5fdCBhdGgxMmtfcGNpX2NlX2ludGVycnVwdF9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmFyZylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTQxMy17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo0MTQ6XFx0c3RydWN0IGF0aDEya19jZV9waXBlICpjZV9waXBlID0gYXJnO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NDE1OlxcdHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIgPSBjZV9waXBlLVxcdTAwM2VhYjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTQxNi1cXHRpbnQgaXJxX2lkeCA9IEFUSDEyS19QQ0lfSVJRX0NFMF9PRkZTRVQgKyBjZV9waXBlLVxcdTAwM2VwaXBlX251bTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNDMwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NDMxOnN0YXRpYyB2b2lkIGF0aDEya19wY2lfZXh0X2dycF9kaXNhYmxlKHN0cnVjdCBhdGgxMmtfZXh0X2lycV9ncnAgKmlycV9ncnApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy00MzIte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NDMzOlxcdHN0cnVjdCBhdGgxMmtfcGNpICphYl9wY2kgPSBhdGgxMmtfcGNpX3ByaXYoaXJxX2dycC1cXHUwMDNlYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNDM0LVxcdGludCBpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy00NDUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo0NDY6c3RhdGljIHZvaWQgX19hdGgxMmtfcGNpX2V4dF9pcnFfZGlzYWJsZShzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNDQ3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNDUzLVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBBVEgxMktfRVhUX0lSUV9HUlBfTlVNX01BWDsgaSsrKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo0NTQ6XFx0XFx0c3RydWN0IGF0aDEya19leHRfaXJxX2dycCAqaXJxX2dycCA9IFxcdTAwMjZhYi1cXHUwMDNlZXh0X2lycV9ncnBbaV07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy00NTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo0NTY6XFx0XFx0YXRoMTJrX3BjaV9leHRfZ3JwX2Rpc2FibGUoaXJxX2dycCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy00NTctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTQ2NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjQ2NjpzdGF0aWMgdm9pZCBhdGgxMmtfcGNpX2V4dF9ncnBfZW5hYmxlKHN0cnVjdCBhdGgxMmtfZXh0X2lycV9ncnAgKmlycV9ncnApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy00Njcte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NDY4OlxcdHN0cnVjdCBhdGgxMmtfcGNpICphYl9wY2kgPSBhdGgxMmtfcGNpX3ByaXYoaXJxX2dycC1cXHUwMDNlYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNDY5LVxcdGludCBpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy00ODAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo0ODE6c3RhdGljIHZvaWQgYXRoMTJrX3BjaV9zeW5jX2V4dF9pcnFzKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy00ODIte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy00ODUtXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIEFUSDEyS19FWFRfSVJRX0dSUF9OVU1fTUFYOyBpKyspIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjQ4NjpcXHRcXHRzdHJ1Y3QgYXRoMTJrX2V4dF9pcnFfZ3JwICppcnFfZ3JwID0gXFx1MDAyNmFiLVxcdTAwM2VleHRfaXJxX2dycFtpXTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTQ4Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNDk0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NDk1OnN0YXRpYyBpbnQgYXRoMTJrX3BjaV9leHRfZ3JwX25hcGlfcG9sbChzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksIGludCBidWRnZXQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy00OTYte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NDk3OlxcdHN0cnVjdCBhdGgxMmtfZXh0X2lycV9ncnAgKmlycV9ncnAgPSBjb250YWluZXJfb2YobmFwaSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjQ5ODpcXHRcXHRcXHRcXHRcXHRcXHRzdHJ1Y3QgYXRoMTJrX2V4dF9pcnFfZ3JwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNDk5LVxcdFxcdFxcdFxcdFxcdFxcdG5hcGkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NTAwOlxcdHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIgPSBpcnFfZ3JwLVxcdTAwM2VhYjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjUwMTpcXHRzdHJ1Y3QgYXRoMTJrX2RwICpkcCA9IGF0aDEya19hYl90b19kcChhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy01MDItXFx0aW50IHdvcmtfZG9uZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNTA0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NTA1OlxcdHdvcmtfZG9uZSA9IGF0aDEya19kcF9zZXJ2aWNlX3NybmcoZHAsIGlycV9ncnAsIGJ1ZGdldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy01MDYtXFx0aWYgKHdvcmtfZG9uZSBcXHUwMDNjIGJ1ZGdldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy01MTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo1MTg6c3RhdGljIGlycXJldHVybl90IGF0aDEya19wY2lfZXh0X2ludGVycnVwdF9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmFyZylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTUxOS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo1MjA6XFx0c3RydWN0IGF0aDEya19leHRfaXJxX2dycCAqaXJxX2dycCA9IGFyZztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjUyMTpcXHRzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiID0gaXJxX2dycC1cXHUwMDNlYWI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy01MjItXFx0aW50IGk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTUyNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjUyNzpcXHRhdGgxMmtfZGJnKGlycV9ncnAtXFx1MDAzZWFiLCBBVEgxMktfREJHX1BDSSwgXFxcImV4dCBpcnE6JWRcXFxcblxcXCIsIGlycSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy01MjgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTUzOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjU0MDpzdGF0aWMgaW50IGF0aDEya19wY2lfZXh0X2lycV9jb25maWcoc3RydWN0IGF0aDEya19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTU0MS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo1NDI6XFx0c3RydWN0IGF0aDEya19wY2kgKmFiX3BjaSA9IGF0aDEya19wY2lfcHJpdihhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy01NDMtXFx0aW50IGksIGosIG4sIHJldCwgbnVtX3ZlY3RvcnMgPSAwO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNTQ0LVxcdHUzMiB1c2VyX2Jhc2VfZGF0YSA9IDAsIGJhc2VfdmVjdG9yID0gMCwgYmFzZV9pZHg7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo1NDU6XFx0c3RydWN0IGF0aDEya19leHRfaXJxX2dycCAqaXJxX2dycDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTU0Ni1cXHRib29sIHRocmVhZGVkX25hcGkgPSBmYWxzZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNTQ5LVxcdGJhc2VfaWR4ID0gQVRIMTJLX1BDSV9JUlFfQ0UwX09GRlNFVCArIENFX0NPVU5UX01BWDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjU1MDpcXHRyZXQgPSBhdGgxMmtfcGNpX2dldF91c2VyX21zaV9hc3NpZ25tZW50KGFiLCBcXFwiRFBcXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNTUxLVxcdFxcdFxcdFxcdFxcdFxcdCBcXHUwMDI2bnVtX3ZlY3RvcnMsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTU1Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjU1NzpcXHRpcnEgPSBhdGgxMmtfcGNpX2dldF9tc2lfaXJxKGFiLVxcdTAwM2VkZXYsIGJhc2VfdmVjdG9yKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTU1OC1cXHRpZiAoaXJxIFxcdTAwM2U9IDApXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTU3My1cXHRcXHRuZXRpZl9uYXBpX2FkZChpcnFfZ3JwLVxcdTAwM2VuYXBpX25kZXYsIFxcdTAwMjZpcnFfZ3JwLVxcdTAwM2VuYXBpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NTc0OlxcdFxcdFxcdCAgICAgICBhdGgxMmtfcGNpX2V4dF9ncnBfbmFwaV9wb2xsKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTU3NS1cXHRcXHRpZiAodGhyZWFkZWRfbmFwaSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNTk1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NTk2OlxcdFxcdFxcdGlycSA9IGF0aDEya19wY2lfZ2V0X21zaV9pcnEoYWItXFx1MDAzZWRldiwgdmVjdG9yKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTU5Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNTk5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NjAwOlxcdFxcdFxcdGF0aDEya19kYmcoYWIsIEFUSDEyS19EQkdfUENJLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNjAxLVxcdFxcdFxcdFxcdCAgIFxcXCJpcnE6JWQgZ3JvdXA6JWRcXFxcblxcXCIsIGlycSwgaSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTYwMy1cXHRcXHRcXHRpcnFfc2V0X3N0YXR1c19mbGFncyhpcnEsIElSUV9ESVNBQkxFX1VOTEFaWSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo2MDQ6XFx0XFx0XFx0cmV0ID0gcmVxdWVzdF9pcnEoaXJxLCBhdGgxMmtfcGNpX2V4dF9pbnRlcnJ1cHRfaGFuZGxlcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTYwNS1cXHRcXHRcXHRcXHRcXHQgIGFiX3BjaS1cXHUwMDNlaXJxX2ZsYWdzLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy02MDctXFx0XFx0XFx0aWYgKHJldCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NjA4OlxcdFxcdFxcdFxcdGF0aDEya19lcnIoYWIsIFxcXCJmYWlsZWQgcmVxdWVzdCBpcnEgJWQ6ICVkXFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNjA5LVxcdFxcdFxcdFxcdFxcdCAgIHZlY3RvciwgcmV0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNjEyLVxcdFxcdH1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjYxMzpcXHRcXHRhdGgxMmtfcGNpX2V4dF9ncnBfZGlzYWJsZShpcnFfZ3JwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTYxNC1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTYyOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjYyOTpzdGF0aWMgaW50IGF0aDEya19wY2lfc2V0X2lycV9hZmZpbml0eV9oaW50KHN0cnVjdCBhdGgxMmtfcGNpICphYl9wY2ksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy02MzAtXFx0XFx0XFx0XFx0XFx0ICAgIGNvbnN0IHN0cnVjdCBjcHVtYXNrICptKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy02MzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo2Mzg6c3RhdGljIGludCBhdGgxMmtfcGNpX2NvbmZpZ19pcnEoc3RydWN0IGF0aDEya19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTYzOS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo2NDA6XFx0c3RydWN0IGF0aDEya19wY2kgKmFiX3BjaSA9IGF0aDEya19wY2lfcHJpdihhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo2NDE6XFx0c3RydWN0IGF0aDEya19jZV9waXBlICpjZV9waXBlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNjQyLVxcdHUzMiBtc2lfZGF0YV9zdGFydDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNjQ3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NjQ4OlxcdHJldCA9IGF0aDEya19wY2lfZ2V0X3VzZXJfbXNpX2Fzc2lnbm1lbnQoYWIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy02NDktXFx0XFx0XFx0XFx0XFx0XFx0IFxcXCJDRVxcXCIsIFxcdTAwMjZtc2lfZGF0YV9jb3VudCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNjU2LVxcdGZvciAoaSA9IDAsIG1zaV9kYXRhX2lkeCA9IDA7IGkgXFx1MDAzYyBhYi1cXHUwMDNlaHdfcGFyYW1zLVxcdTAwM2VjZV9jb3VudDsgaSsrKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo2NTc6XFx0XFx0aWYgKGF0aDEya19jZV9nZXRfYXR0cl9mbGFncyhhYiwgaSkgXFx1MDAyNiBDRV9BVFRSX0RJU19JTlRSKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNjU4LVxcdFxcdFxcdGNvbnRpbnVlO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy02NjAtXFx0XFx0bXNpX2RhdGEgPSAobXNpX2RhdGFfaWR4ICUgbXNpX2RhdGFfY291bnQpICsgbXNpX2lycV9zdGFydDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjY2MTpcXHRcXHRpcnEgPSBhdGgxMmtfcGNpX2dldF9tc2lfaXJxKGFiLVxcdTAwM2VkZXYsIG1zaV9kYXRhKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTY2Mi1cXHRcXHRjZV9waXBlID0gXFx1MDAyNmFiLVxcdTAwM2VjZS5jZV9waXBlW2ldO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy02NjUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo2NjY6XFx0XFx0SU5JVF9XT1JLKFxcdTAwMjZjZV9waXBlLVxcdTAwM2VpbnRyX3dxLCBhdGgxMmtfcGNpX2NlX3dvcmtxdWV1ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy02NjctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo2Njg6XFx0XFx0cmV0ID0gcmVxdWVzdF9pcnEoaXJxLCBhdGgxMmtfcGNpX2NlX2ludGVycnVwdF9oYW5kbGVyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNjY5LVxcdFxcdFxcdFxcdCAgYWJfcGNpLVxcdTAwM2VpcnFfZmxhZ3MsIGlycV9uYW1lW2lycV9pZHhdLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy02NzEtXFx0XFx0aWYgKHJldCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NjcyOlxcdFxcdFxcdGF0aDEya19lcnIoYWIsIFxcXCJmYWlsZWQgdG8gcmVxdWVzdCBpcnEgJWQ6ICVkXFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNjczLVxcdFxcdFxcdFxcdCAgIGlycV9pZHgsIHJldCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTY3OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjY4MDpcXHRcXHRhdGgxMmtfcGNpX2NlX2lycV9kaXNhYmxlKGFiLCBpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTY4MS1cXHR9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy02ODItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo2ODM6XFx0cmV0ID0gYXRoMTJrX3BjaV9leHRfaXJxX2NvbmZpZyhhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy02ODQtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNjg5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NjkwOnN0YXRpYyB2b2lkIGF0aDEya19wY2lfaW5pdF9xbWlfY2VfY29uZmlnKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy02OTEte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NjkyOlxcdHN0cnVjdCBhdGgxMmtfcW1pX2NlX2NmZyAqY2ZnID0gXFx1MDAyNmFiLVxcdTAwM2VxbWkuY2VfY2ZnO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNjkzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6Njk0OlxcdHN0cnVjdCBhdGgxMmtfcGNpICphYl9wY2kgPSBhdGgxMmtfcGNpX3ByaXYoYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNjk1LVxcdHN0cnVjdCBwY2lfYnVzICpidXMgPSBhYl9wY2ktXFx1MDAzZXBkZXYtXFx1MDAzZWJ1cztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNzAzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NzA0OlxcdGlmIChhdGgxMmtfZndfZmVhdHVyZV9zdXBwb3J0ZWQoYWIsIEFUSDEyS19GV19GRUFUVVJFX01VTFRJX1FSVFJfSUQpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy03MDUtXFx0XFx0YWJfcGNpLVxcdTAwM2VxbWlfaW5zdGFuY2UgPVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy03MTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo3MTI6c3RhdGljIHZvaWQgYXRoMTJrX3BjaV9jZV9pcnFzX2VuYWJsZShzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNzEzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNzE4LVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBhYi1cXHUwMDNlaHdfcGFyYW1zLVxcdTAwM2VjZV9jb3VudDsgaSsrKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo3MTk6XFx0XFx0aWYgKGF0aDEya19jZV9nZXRfYXR0cl9mbGFncyhhYiwgaSkgXFx1MDAyNiBDRV9BVFRSX0RJU19JTlRSKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNzIwLVxcdFxcdFxcdGNvbnRpbnVlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NzIxOlxcdFxcdGF0aDEya19wY2lfY2VfaXJxX2VuYWJsZShhYiwgaSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy03MjItXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy03MjQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo3MjU6c3RhdGljIHZvaWQgYXRoMTJrX3BjaV9tc2lfY29uZmlnKHN0cnVjdCBhdGgxMmtfcGNpICphYl9wY2ksIGJvb2wgZW5hYmxlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNzI2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNzM5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NzQwOnN0YXRpYyB2b2lkIGF0aDEya19wY2lfbXNpX2VuYWJsZShzdHJ1Y3QgYXRoMTJrX3BjaSAqYWJfcGNpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNzQxLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjc0MjpcXHRhdGgxMmtfcGNpX21zaV9jb25maWcoYWJfcGNpLCB0cnVlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTc0My19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy03NDQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo3NDU6c3RhdGljIHZvaWQgYXRoMTJrX3BjaV9tc2lfZGlzYWJsZShzdHJ1Y3QgYXRoMTJrX3BjaSAqYWJfcGNpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNzQ2LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjc0NzpcXHRhdGgxMmtfcGNpX21zaV9jb25maWcoYWJfcGNpLCBmYWxzZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy03NDgtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNzQ5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NzUwOnN0YXRpYyBpbnQgYXRoMTJrX3BjaV9tc2lfYWxsb2Moc3RydWN0IGF0aDEya19wY2kgKmFiX3BjaSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTc1MS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo3NTI6XFx0c3RydWN0IGF0aDEya19iYXNlICphYiA9IGFiX3BjaS1cXHUwMDNlYWI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo3NTM6XFx0Y29uc3Qgc3RydWN0IGF0aDEya19tc2lfY29uZmlnICptc2lfY29uZmlnID0gYWJfcGNpLVxcdTAwM2Vtc2lfY29uZmlnO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNzU0LVxcdHN0cnVjdCBtc2lfZGVzYyAqbXNpX2Rlc2M7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTc3Ny1cXHRcXHRhYl9wY2ktXFx1MDAzZWlycV9mbGFncyA9IElSUUZfU0hBUkVEIHwgSVJRRl9OT0JBTEFOQ0lORztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjc3ODpcXHRcXHRhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX1BDSSwgXFxcInJlcXVlc3QgTVNJIG9uZSB2ZWN0b3JcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNzc5LVxcdH1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTc4MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjc4MTpcXHRhdGgxMmtfaW5mbyhhYiwgXFxcIk1TSSB2ZWN0b3JzOiAlZFxcXFxuXFxcIiwgbnVtX3ZlY3RvcnMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNzgyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NzgzOlxcdGF0aDEya19wY2lfbXNpX2Rpc2FibGUoYWJfcGNpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTc4NC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNzg2LVxcdGlmICghbXNpX2Rlc2MpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjc4NzpcXHRcXHRhdGgxMmtfZXJyKGFiLCBcXFwibXNpX2Rlc2MgaXMgTlVMTCFcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNzg4LVxcdFxcdHJldCA9IC1FSU5WQUw7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTc5NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjc5NjpcXHRhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX1BDSSwgXFxcIm1zaSBiYXNlIGRhdGEgaXMgJWRcXFxcblxcXCIsIGFiX3BjaS1cXHUwMDNlbXNpX2VwX2Jhc2VfZGF0YSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy03OTctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTgwNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjgwNzpzdGF0aWMgdm9pZCBhdGgxMmtfcGNpX21zaV9mcmVlKHN0cnVjdCBhdGgxMmtfcGNpICphYl9wY2kpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy04MDgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy04MTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo4MTI6c3RhdGljIGludCBhdGgxMmtfcGNpX2NvbmZpZ19tc2lfZGF0YShzdHJ1Y3QgYXRoMTJrX3BjaSAqYWJfcGNpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtODEzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtODE3LVxcdGlmICghbXNpX2Rlc2MpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjgxODpcXHRcXHRhdGgxMmtfZXJyKGFiX3BjaS1cXHUwMDNlYWIsIFxcXCJtc2lfZGVzYyBpcyBOVUxMIVxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy04MTktXFx0XFx0cGNpX2ZyZWVfaXJxX3ZlY3RvcnMoYWJfcGNpLVxcdTAwM2VwZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtODI0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6ODI1OlxcdGF0aDEya19kYmcoYWJfcGNpLVxcdTAwM2VhYiwgQVRIMTJLX0RCR19QQ0ksIFxcXCJwY2kgYWZ0ZXIgcmVxdWVzdF9pcnEgbXNpX2VwX2Jhc2VfZGF0YSAlZFxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTgyNi1cXHRcXHQgICBhYl9wY2ktXFx1MDAzZW1zaV9lcF9iYXNlX2RhdGEpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy04MzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo4MzE6c3RhdGljIGludCBhdGgxMmtfcGNpX2NsYWltKHN0cnVjdCBhdGgxMmtfcGNpICphYl9wY2ksIHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtODMyLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjgzMzpcXHRzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiID0gYWJfcGNpLVxcdTAwM2VhYjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTgzNC1cXHR1MTYgZGV2aWNlX2lkO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy04MzgtXFx0aWYgKGRldmljZV9pZCAhPSBhYl9wY2ktXFx1MDAzZWRldl9pZCkgIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjgzOTpcXHRcXHRhdGgxMmtfZXJyKGFiLCBcXFwicGNpIGRldmljZSBpZCBtaXNtYXRjaDogMHgleCAweCV4XFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtODQwLVxcdFxcdFxcdCAgIGRldmljZV9pZCwgYWJfcGNpLVxcdTAwM2VkZXZfaWQpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy04NDYtXFx0aWYgKHJldCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6ODQ3OlxcdFxcdGF0aDEya19lcnIoYWIsIFxcXCJmYWlsZWQgdG8gYXNzaWduIHBjaSByZXNvdXJjZTogJWRcXFxcblxcXCIsIHJldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy04NDgtXFx0XFx0Z290byBvdXQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTg1Mi1cXHRpZiAocmV0KSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo4NTM6XFx0XFx0YXRoMTJrX2VycihhYiwgXFxcImZhaWxlZCB0byBlbmFibGUgcGNpIGRldmljZTogJWRcXFxcblxcXCIsIHJldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy04NTQtXFx0XFx0Z290byBvdXQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTg1Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjg1NzpcXHRyZXQgPSBwY2lfcmVxdWVzdF9yZWdpb24ocGRldiwgQVRIMTJLX1BDSV9CQVJfTlVNLCBcXFwiYXRoMTJrX3BjaVxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtODU4LVxcdGlmIChyZXQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjg1OTpcXHRcXHRhdGgxMmtfZXJyKGFiLCBcXFwiZmFpbGVkIHRvIHJlcXVlc3QgcGNpIHJlZ2lvbjogJWRcXFxcblxcXCIsIHJldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy04NjAtXFx0XFx0Z290byBkaXNhYmxlX2RldmljZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtODcxLVxcdGlmICghYWItXFx1MDAzZW1lbSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6ODcyOlxcdFxcdGF0aDEya19lcnIoYWIsIFxcXCJmYWlsZWQgdG8gbWFwIHBjaSBiYXIgJWRcXFxcblxcXCIsIEFUSDEyS19QQ0lfQkFSX05VTSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy04NzMtXFx0XFx0cmV0ID0gLUVJTztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtODc2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6ODc3OlxcdGF0aDEya19kYmcoYWIsIEFUSDEyS19EQkdfQk9PVCwgXFxcImJvb3QgcGNpX21lbSAweCVwXFxcXG5cXFwiLCBhYi1cXHUwMDNlbWVtKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTg3OC1cXHRyZXR1cm4gMDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtODg3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6ODg4OnN0YXRpYyB2b2lkIGF0aDEya19wY2lfZnJlZV9yZWdpb24oc3RydWN0IGF0aDEya19wY2kgKmFiX3BjaSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTg4OS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo4OTA6XFx0c3RydWN0IGF0aDEya19iYXNlICphYiA9IGFiX3BjaS1cXHUwMDNlYWI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy04OTEtXFx0c3RydWN0IHBjaV9kZXYgKnBjaV9kZXYgPSBhYl9wY2ktXFx1MDAzZXBkZXY7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTg5OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjkwMDpzdGF0aWMgdm9pZCBhdGgxMmtfcGNpX2FzcG1fZGlzYWJsZShzdHJ1Y3QgYXRoMTJrX3BjaSAqYWJfcGNpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtOTAxLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjkwMjpcXHRzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiID0gYWJfcGNpLVxcdTAwM2VhYjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTkwMy1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtOTA2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6OTA3OlxcdGF0aDEya19kYmcoYWIsIEFUSDEyS19EQkdfUENJLCBcXFwicGNpIGxpbmtfY3RsIDB4JTA0eCBMMHMgJWQgTDEgJWRcXFxcblxcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy05MDgtXFx0XFx0ICAgYWJfcGNpLVxcdTAwM2VsaW5rX2N0bCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtOTE4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6OTE5OnN0YXRpYyB2b2lkIGF0aDEya19wY2lfdXBkYXRlX3FydHJfbm9kZV9pZChzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtOTIwLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjkyMTpcXHRzdHJ1Y3QgYXRoMTJrX3BjaSAqYWJfcGNpID0gYXRoMTJrX3BjaV9wcml2KGFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTkyMi1cXHR1MzIgcmVnO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy05MzItXFx0cmVnID0gUENJRV9MT0NBTF9SRUdfUVJUUl9OT0RFX0lEKGFiKSBcXHUwMDI2IFdJTkRPV19SQU5HRV9NQVNLO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6OTMzOlxcdGF0aDEya19wY2lfd3JpdGUzMihhYiwgcmVnLCBhYl9wY2ktXFx1MDAzZXFtaV9pbnN0YW5jZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy05MzQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo5MzU6XFx0YXRoMTJrX2RiZyhhYiwgQVRIMTJLX0RCR19QQ0ksIFxcXCJwY2kgcmVnIDB4JXggaW5zdGFuY2UgMHgleCByZWFkIHZhbCAweCV4XFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6OTM2OlxcdFxcdCAgIHJlZywgYWJfcGNpLVxcdTAwM2VxbWlfaW5zdGFuY2UsIGF0aDEya19wY2lfcmVhZDMyKGFiLCByZWcpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTkzNy19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy05MzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo5Mzk6c3RhdGljIHZvaWQgYXRoMTJrX3BjaV9hc3BtX3Jlc3RvcmUoc3RydWN0IGF0aDEya19wY2kgKmFiX3BjaSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTk0MC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTk0OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjk0OTpzdGF0aWMgdm9pZCBhdGgxMmtfcGNpX2NhbmNlbF93b3JrcXVldWUoc3RydWN0IGF0aDEya19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTk1MC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTk1My1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgYWItXFx1MDAzZWh3X3BhcmFtcy1cXHUwMDNlY2VfY291bnQ7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6OTU0OlxcdFxcdHN0cnVjdCBhdGgxMmtfY2VfcGlwZSAqY2VfcGlwZSA9IFxcdTAwMjZhYi1cXHUwMDNlY2UuY2VfcGlwZVtpXTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTk1NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjk1NjpcXHRcXHRpZiAoYXRoMTJrX2NlX2dldF9hdHRyX2ZsYWdzKGFiLCBpKSBcXHUwMDI2IENFX0FUVFJfRElTX0lOVFIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy05NTctXFx0XFx0XFx0Y29udGludWU7XFxuLS1cXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDRUMjA6MTA6MjEuNzk2MTI5ODIxWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MTAyNTg3MTcwOTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqV29ydGhGdXp6aW5nIERlY2lzaW9uIGZvciBhdGgxMmsgRHJpdmVyKipcblxuT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMgYGF0aDEya2AgZHJpdmVyIGFuZCBkZXRlcm1pbmUgaWYgaXQncyBhIGdvb2QgY2FuZGlkYXRlIGZvciBmdXp6aW5nLiBGaXJzdCwgSSBrbm93IGl0J3MgYSBQQ0kvQUhCIGRyaXZlciBkZXNpZ25lZCBzcGVjaWZpY2FsbHkgZm9yIFF1YWxjb21tIFdpLUZpIDcgaGFyZHdhcmUuIFRoYXQncyBhIHJlZCBmbGFnIHJpZ2h0IGF3YXkg4oCTIHZlbmRvci1zcGVjaWZpYyBkcml2ZXJzIG9mdGVuIGhhdmUgdHJpY2t5IGRlcGVuZGVuY2llcy4gTGV0IG1lIHNlZS4uLiBJJ20gc3VwcG9zZWQgdG8gYXBwbHkgdGhlIFwiV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPWZhbHNlIChORUdBVElWRSBDUklURVJJQSlcIiBpbnN0cnVjdGlvbnMuIFNwZWNpZmljYWxseSwgSSBuZWVkIHRvIGxvb2sgYXQgXCJTdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaGFyZHdhcmVcIiBzY2VuYXJpb3MuXG5cbkJhc2VkIG9uIG15IHVuZGVyc3RhbmRpbmcgYW5kIHRoaXMgdGV4dCwgYGF0aDEya2AgaXMgKmRlZmluaXRlbHkqIG9uZSBvZiB0aG9zZSBjYXNlcy4gSXQgcmVxdWlyZXMgcGh5c2ljYWwgUXVhbGNvbW0gaGFyZHdhcmUsIHNwZWNpZmljIFBDSWUgY2FyZHMgb3IgQUhCIFNvQ3MsIGFuZCBsaWtlbHkgcGFydGljdWxhciBmaXJtd2FyZSB0aGF0IGlzbid0IHJlcGxpY2F0ZWQgaW4gc3RhbmRhcmQgUUVNVS4gSXQncyBub3QgbGlrZSBpdCBoYXMgc29tZSBjbGV2ZXIgZW11bGF0aW9uIGxheWVyLiBTbyBpdCdzIGxvb2tpbmcgbGlrZSBpdCdzIGluaGVyZW50bHkgdW5yZWFjaGFibGUgaW4gdGhlIHR5cGljYWwgc3l6a2FsbGVyIGVudmlyb25tZW50LlxuXG5Ib2xkIG9uLCBJIG5lZWQgdG8gYmUgY29tcGxldGVseSBzdXJlLiBDb3VsZCBgYXRoMTJrYCBvciwgbW9yZSBzcGVjaWZpY2FsbHksIGEgZnVuY3Rpb24gbGlrZSBgYXRoMTJrX21hY191cGRhdGVfZnJlcV9yYW5nZWAgYmUgc29tZWhvdyB0cmlnZ2VyZWQgdmlhIGEgZGlmZmVyZW50IHJvdXRlLCBsaWtlIGBtYWM4MDIxMV9od3NpbWAsIGBubDgwMjExYCwgb3IgYGNmZzgwMjExYD8gSSBuZWVkIHRvIGNoZWNrIHRoZSBjYWxsZXJzIG9mIHRoaXMgZnVuY3Rpb24uIExldCdzIHNlZS4uLiBsb29raW5nIGF0IHRoZSBjb2RlLCBpdCdzIGNhbGxlZCBieSBgYXRoMTJrX21hY19zZXR1cF9jaGFubmVsc19yYXRlc2AgYW5kIGBhdGgxMmtfcmVnZF91cGRhdGVgLiBUaGV5J3JlIGludGVybmFsIGZ1bmN0aW9ucywgY2FsbGVkIGR1cmluZyB0aGUgaGFyZHdhcmUgaW5pdGlhbGl6YXRpb24gb3IgcmVndWxhdG9yeSBydWxlcyB1cGRhdGVzIGZvciBhbiBgYXRoMTJrYCBkZXZpY2UgKGBzdHJ1Y3QgYXRoMTJrICphcmApLiBUaGF0IG1ha2VzIHNlbnNlIOKAkyB0aGUgaGFyZHdhcmUgaXRzZWxmLCBvciBzb21ldGhpbmcgZGlyZWN0bHkgdGllZCB0byBpdCwgbmVlZHMgdG8gaW5pdGlhbGl6ZSBhbmQgdXBkYXRlIHRoZXNlIHRoaW5ncy5cblxuR2l2ZW4gdGhhdCBhbmQgdGhlIGZhY3QgdGhhdCBgYXRoMTJrYCBuZWVkcyBzcGVjaWZpYyBRdWFsY29tbSBQQ0kvQUhCIGNoaXBzZXRzLCBhbmQgY2Fubm90IGJlIGluaXRpYWxpemVkIGluIHN0YW5kYXJkIFFFTVUgd2l0aG91dCBwaHlzaWNhbCBQQ0llIGRldmljZXMsIG15IGNvbmNsdXNpb24gaXMgdGhhdCBpdCAqaXMqIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy4gSSBuZWVkIHRvIG1ha2UgKmFic29sdXRlbHkqIHN1cmUgdGhlcmUncyBubyB2aXJ0dWFsIGJ1cyBvciBVU0IgY29tcG9uZW50IG9mIHRoaXMgZHJpdmVyIGFzIHdlbGwsIHRob3VnaCBpdCBsb29rcyBsaWtlIGl0J3MgYSBzbGltIGNoYW5jZS4gTGV0IG1lIHF1aWNrbHkgY2hlY2sgdGhlIGZpbGVzIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2AgdG8gYmUgc3VyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjE0NjgsIk91dHB1dFRva2VucyI6MzAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0ODksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDRUMjA6MTA6MzIuMDU0ODQ5NzQ5WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiY29kZXNlYXJjaC1kaXItaW5kZXgiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDg1MDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJEaXJcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIkZpbGVzXCI6IFtcbiAgICBcImFjcGkuY1wiLFxuICAgIFwiYWNwaS5oXCIsXG4gICAgXCJhaGIuY1wiLFxuICAgIFwiYWhiLmhcIixcbiAgICBcImNlLmNcIixcbiAgICBcImNlLmhcIixcbiAgICBcImNtbl9kZWZzLmhcIixcbiAgICBcImNvcmUuY1wiLFxuICAgIFwiY29yZS5oXCIsXG4gICAgXCJjb3JlZHVtcC5jXCIsXG4gICAgXCJjb3JlZHVtcC5oXCIsXG4gICAgXCJkYnJpbmcuY1wiLFxuICAgIFwiZGJyaW5nLmhcIixcbiAgICBcImRlYnVnLmNcIixcbiAgICBcImRlYnVnLmhcIixcbiAgICBcImRlYnVnZnMuY1wiLFxuICAgIFwiZGVidWdmcy5oXCIsXG4gICAgXCJkZWJ1Z2ZzX2h0dF9zdGF0cy5jXCIsXG4gICAgXCJkZWJ1Z2ZzX2h0dF9zdGF0cy5oXCIsXG4gICAgXCJkZWJ1Z2ZzX3N0YS5jXCIsXG4gICAgXCJkZWJ1Z2ZzX3N0YS5oXCIsXG4gICAgXCJkcC5jXCIsXG4gICAgXCJkcC5oXCIsXG4gICAgXCJkcF9jbW4uaFwiLFxuICAgIFwiZHBfaHR0LmNcIixcbiAgICBcImRwX2h0dC5oXCIsXG4gICAgXCJkcF9tb24uY1wiLFxuICAgIFwiZHBfbW9uLmhcIixcbiAgICBcImRwX3BlZXIuY1wiLFxuICAgIFwiZHBfcGVlci5oXCIsXG4gICAgXCJkcF9yeC5jXCIsXG4gICAgXCJkcF9yeC5oXCIsXG4gICAgXCJkcF90eC5jXCIsXG4gICAgXCJkcF90eC5oXCIsXG4gICAgXCJmdy5jXCIsXG4gICAgXCJmdy5oXCIsXG4gICAgXCJoYWwuY1wiLFxuICAgIFwiaGFsLmhcIixcbiAgICBcImhpZi5oXCIsXG4gICAgXCJodGMuY1wiLFxuICAgIFwiaHRjLmhcIixcbiAgICBcImh3LmhcIixcbiAgICBcIm1hYy5jXCIsXG4gICAgXCJtYWMuaFwiLFxuICAgIFwibWhpLmNcIixcbiAgICBcIm1oaS5oXCIsXG4gICAgXCJwMnAuY1wiLFxuICAgIFwicDJwLmhcIixcbiAgICBcInBjaS5jXCIsXG4gICAgXCJwY2kuaFwiLFxuICAgIFwicGVlci5jXCIsXG4gICAgXCJwZWVyLmhcIixcbiAgICBcInFtaS5jXCIsXG4gICAgXCJxbWkuaFwiLFxuICAgIFwicmVnLmNcIixcbiAgICBcInJlZy5oXCIsXG4gICAgXCJ0ZXN0bW9kZS5jXCIsXG4gICAgXCJ0ZXN0bW9kZS5oXCIsXG4gICAgXCJ0aGVybWFsLmNcIixcbiAgICBcInRoZXJtYWwuaFwiLFxuICAgIFwidHJhY2UuY1wiLFxuICAgIFwidHJhY2UuaFwiLFxuICAgIFwid21pLmNcIixcbiAgICBcIndtaS5oXCIsXG4gICAgXCJ3b3cuY1wiLFxuICAgIFwid293LmhcIlxuICBdLFxuICBcIlN1YmRpcnNcIjogW1xuICAgIFwid2lmaTdcIlxuICBdXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNFQyMDoxMDozMi4wNTQ5NjA5MjlaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MTA5NjkzMzk5MTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqVW5yZWFjaGFibGUgQ29kZSBpbiB0aGUgYXRoMTJrIERyaXZlcioqXG5cbk9rYXksIHNvIEkndmUgYmVlbiBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kLCBmcmFua2x5LCBpdCdzIGEgZGVhZCBlbmQuIFRoZSBjb2RlIG1vZGlmaWVzIGBhdGgxMmtfbWFjX3VwZGF0ZV9mcmVxX3JhbmdlYCwgd2hpY2ggaW1tZWRpYXRlbHkgdGVsbHMgbWUgd2UncmUgZGVhbGluZyB3aXRoIHRoZSBRdWFsY29tbSBXaS1GaSA3IGRyaXZlciwgKmF0aDEyayouIFRoYXQncyB0aGUgZmlyc3QgcmVkIGZsYWcuIEkga25vdyBmcm9tIGV4cGVyaWVuY2UgdGhhdCBgYXRoMTJrYCBpcyB0aWdodGx5IGJvdW5kIHRvIFF1YWxjb21tJ3Mgc3BlY2lmaWMgaGFyZHdhcmUg4oCTIFBDSSBhbmQgQUhCIGJ1c2VzLCBzcGVjaWZpY2FsbHkuIEZvcmdldCBhYm91dCBzZWVpbmcgdGhpcyB0aGluZyBpbiBhIHZpcnR1YWwgZW52aXJvbm1lbnQuIFRoZXJl4oCZcyBubyBzdXBwb3J0IGZvciB2aXJ0dWFsIG9yIFVTQiBkZXZpY2UgZW11bGF0aW9uIHdpdGhpbiBgYXRoMTJrYCwgYXQgbGVhc3Qgbm90IGluIGFueSBzdGFuZGFyZCBRRU1VIHNldHVwIEnigJl2ZSBldmVyIHNlZW4uXG5cblRoZXJlZm9yZSwgc2luY2UgdGhlIG9ubHkgc3VwcG9ydGVkIGhhcmR3YXJlIGlzIFBDSSBhbmQgQUhCIGJhc2VkLCBhbmQgbm8gc3RhbmRhcmQgZnV6emluZyBlbnZpcm9ubWVudHMgYXJlIGJhc2VkIG9uIHRoZXNlLCB0aGlzIG1vZGlmaWVkIGNvZGUgaXMsIHN0cnVjdHVyYWxseSBzcGVha2luZywgdW50b3VjaGFibGUuIEl04oCZcyB1bnJlYWNoYWJsZSBoYXJkd2FyZSBjb2RlIHdpdGhpbiB0aGUgY29udGV4dCBvZiBhbnkgbm9ybWFsIGZ1enppbmcgZWZmb3J0LiBJdCdzIGEgd2FzdGUgb2YgdGltZSB0byBwdXJzdWUgdGhpcyBhbnkgZnVydGhlciwgZ2l2ZW4gdGhlIGN1cnJlbnQgZW52aXJvbm1lbnQuIFRpbWUgdG8gbWFyayB0aGlzIGFzIGEgXCJuby1nb1wiLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjk4NCwiT3V0cHV0VG9rZW5zIjoxMTEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNjksIlRvb2xDYWxscyI6WyJjb2Rlc2VhcmNoLWRpci1pbmRleCJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA0VDIwOjEwOjQzLjAyNDMwMzAzNloiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMwNTUwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGF0aDEya19tYWNfdXBkYXRlX2ZyZXFfcmFuZ2UgaW4gdGhlIGF0aDEyayBkcml2ZXIuIGF0aDEyayBpcyBhIHZlbmRvci1zcGVjaWZpYyBkcml2ZXIgZm9yIFF1YWxjb21tIFdpLUZpIDcgUENJZS9BSEIgaGFyZHdhcmUgZGV2aWNlcywgd2hpY2ggcmVxdWlyZXMgcGh5c2ljYWwgaGFyZHdhcmUgYW5kIGNhbm5vdCBiZSBlbXVsYXRlZCBvciBwcm9iZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgKFFFTVUvR0NFKSwgbWFraW5nIHRoZSBtb2RpZmllZCBjb2RlIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGF0aDEya19tYWNfdXBkYXRlX2ZyZXFfcmFuZ2UgaW4gdGhlIGF0aDEyayBkcml2ZXIuIGF0aDEyayBpcyBhIHZlbmRvci1zcGVjaWZpYyBkcml2ZXIgZm9yIFF1YWxjb21tIFdpLUZpIDcgUENJZS9BSEIgaGFyZHdhcmUgZGV2aWNlcywgd2hpY2ggcmVxdWlyZXMgcGh5c2ljYWwgaGFyZHdhcmUgYW5kIGNhbm5vdCBiZSBlbXVsYXRlZCBvciBwcm9iZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgKFFFTVUvR0NFKSwgbWFraW5nIHRoZSBtb2RpZmllZCBjb2RlIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA0VDIwOjEwOjQzLjAyNDM0NDEzNloiLCJTZXEiOjEyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzM2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow9q8gc[0].run-triage(0) Phase: Succeeded StartedAt: 2026-09-04 20:07:58 +0000 UTC FinishedAt: 2026-09-04 20:10:44 +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+CgkJCTx0ZD4yMDI2LzA5LzA0IDIwOjEwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYXRoMTJrX21hY191cGRhdGVfZnJlcV9yYW5nZSBpbiB0aGUgYXRoMTJrIGRyaXZlci4gYXRoMTJrIGlzIGEgdmVuZG9yLXNwZWNpZmljIGRyaXZlciBmb3IgUXVhbGNvbW0gV2ktRmkgNyBQQ0llL0FIQiBoYXJkd2FyZSBkZXZpY2VzLCB3aGljaCByZXF1aXJlcyBwaHlzaWNhbCBoYXJkd2FyZSBhbmQgY2Fubm90IGJlIGVtdWxhdGVkIG9yIHByb2JlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpLCBtYWtpbmcgdGhlIG1vZGlmaWVkIGNvZGUgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNCAyMDoxMDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGQ5MGIwODdiOTFjZWQ1ZWViZjYwOGU3Y2QxNTM3NWY3NDE1YWIyMzdcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIFNlcCA0IDIwOjEwOjA5IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jXG5pbmRleCA5OWJmNWNmNzlkMTAyLi42NTRjNThkN2MxZDVmIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuY1xuQEAgLTE0MTI1LDcgJiM0MzsxNDEyNSw3IEBAIEVYUE9SVF9TWU1CT0woYXRoMTJrX21hY19vcF9zZXRfcmVrZXlfZGF0YSk7XG4gdm9pZCBhdGgxMmtfbWFjX3VwZGF0ZV9mcmVxX3JhbmdlKHN0cnVjdCBhdGgxMmsgKmFyLFxuIFx0XHRcdFx0ICB1MzIgZnJlcV9sb3csIHUzMiBmcmVxX2hpZ2gpXG4ge1xuLVx0aWYgKCEoZnJlcV9sb3cgXHUwMDI2XHUwMDI2IGZyZXFfaGlnaCkpXG4mIzQzO1x0aWYgKCFmcmVxX2xvdyB8fCBmcmVxX2xvdyBcdTAwM2U9IGZyZXFfaGlnaClcbiBcdFx0cmV0dXJuO1xuIFxuIFx0aWYgKGFyLVx1MDAzZWZyZXFfcmFuZ2Uuc3RhcnRfZnJlcSB8fCBhci1cdTAwM2VmcmVxX3JhbmdlLmVuZF9mcmVxKSB7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDQgMjA6MTA8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Y29yZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYXRoMTJrX21hY191cGRhdGVfZnJlcV9yYW5nZSBpbiB0aGUgYXRoMTJrIGRyaXZlci4gYXRoMTJrIGlzIGEgdmVuZG9yLXNwZWNpZmljIGRyaXZlciBmb3IgUXVhbGNvbW0gV2ktRmkgNyBQQ0llL0FIQiBoYXJkd2FyZSBkZXZpY2VzLCB3aGljaCByZXF1aXJlcyBwaHlzaWNhbCBoYXJkd2FyZSBhbmQgY2Fubm90IGJlIGVtdWxhdGVkIG9yIHByb2JlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpLCBtYWtpbmcgdGhlIG1vZGlmaWVkIGNvZGUgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIgYW5kIHNlY3VyaXR5IGVuZ2luZWVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGV2YWx1YXRlIHdoZXRoZXIgaXQgd2FycmFudHMgZnV6emluZyB3aXRoIHN5emthbGxlci4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24gaW50ZXJuYWwgYXNzdW1wdGlvbnMuIFlvdSBtdXN0IGFjdGl2ZWx5IHVzZSB5b3VyIGNvZGUgYWNjZXNzCnRvb2xzIHRvIGluc3BlY3QgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSwgY2FsbGVycywgYW5kIHN1cnJvdW5kaW5nIGNvbnRleHQuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoxLiBDT1JFIFRSSUFHRSBQSElMT1NPUEhZCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClRoZSBnb2FsIG9mIHBhdGNoIGZ1enppbmcgaXMgdG8gZGlzY292ZXIgY3Jhc2hlcywgcmVncmVzc2lvbnMsIGV4cG9zZWQgbGF0ZW50IGJ1Z3MsCmFuZCBuZXdseSB0cmlnZ2VyZWQgYXNzZXJ0aW9ucyBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBzZXJpZXMuCgotIFJFQUNIQUJJTElUWSBJUyBUSEUgUFJJTUFSWSBHQVRFOgogIEZ1enppbmcgY2FuIG9ubHkgZGlzY292ZXIgYnVncyBpbiBjb2RlIHRoYXQgY2FuIGFjdHVhbGx5IGV4ZWN1dGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQKICBlbnZpcm9ubWVudHMgKEdDRSBvciBRRU1VLCB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgZGV2aWNlcyBsaWtlIFVTQiBnYWRnZXRzLCBuZXRkZXYsIHR1bi90YXApLgogIElmIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSAoc2VlIFNlY3Rpb24gMiksIGl0IE1VU1QgTk9UIGJlIGZ1enplZCwKICByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgYWRkcyBhc3NlcnRpb25zIG9yIGNvbXBsZXggbG9naWMuCgotIERPIE5PVCBCTElORExZIFRSVVNUICYjMzQ7Tk8gRlVOQ1RJT05BTCBDSEFOR0UmIzM0OyAoTkZDSSkgT1IgJiMzNDtSRUZBQ1RPUklORyYjMzQ7IENMQUlNUzoKICBQYXRjaCBhdXRob3JzIHJvdXRpbmVseSBsYWJlbCBjaGFuZ2VzIGFzICYjMzQ7Y2xlYW51cHMmIzM0OywgJiMzNDtyZWZhY3RvcmluZ3MmIzM0Oywgb3Igc3RhdGUKICAmIzM0O05vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVkJiMzNDsuIERvIE5PVCB0YWtlIHRoZXNlIGNsYWltcyBhdCBmYWNlIHZhbHVlLgogIENvZGUgcmVmYWN0b3JpbmdzIHRoYXQgcmVhcnJhbmdlIGxvZ2ljLCBpbnRyb2R1Y2UgaGVscGVyIGZ1bmN0aW9ucywgb3IgYWx0ZXIgc3RhdGUgbWFuYWdlbWVudAogIGluIGNvcmUgc3Vic3lzdGVtcyBmcmVxdWVudGx5IGludHJvZHVjZSBzdWJ0bGUgc2VtYW50aWMgc2hpZnRzIG9yIHVuY292ZXIgbGF0ZW50IGtlcm5lbCBidWdzLgogIElmIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUgaXMgbW9kaWZpZWQgb3IgcmVmYWN0b3JlZCwgaXQgTVVTVCBiZSBmdXp6ZWQuCgotIE5FVyBPUiBNT0RJRklFRCBBU1NFUlRJT05TIElOIFJFQUNIQUJMRSBDT0RFIE1VU1QgQkUgRlVaWkVEOgogIFdoZW4gYSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzIHJ1bnRpbWUgY2hlY2tzIG9yIGFzc2VydGlvbnMgKGUuZy4sIFdBUk5fT04qLCBWTV9XQVJOX09OKiwKICBCVUdfT04qLCBsb2NrZGVwX2Fzc2VydCopIGluIHJlYWNoYWJsZSBjb2RlIHBhdGhzLCBpdCBlbmZvcmNlcyBuZXcgb3Igc3RyaWN0ZXIgaW52YXJpYW50cy4KICBFdmVuIGlmIHRoZSBhdXRob3IgYmVsaWV2ZXMgdGhlIGludmFyaWFudCBhbHdheXMgaG9sZHMsIGZ1enppbmcgaXMgZXNzZW50aWFsIHRvIHZlcmlmeSB3aGV0aGVyCiAgYW4gdW51c3VhbCBzZXF1ZW5jZSBvZiBvcGVyYXRpb25zIGNhbiB2aW9sYXRlIGl0LgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMi4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPWZhbHNlIChORUdBVElWRSBDUklURVJJQSkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBPTkxZIElGIGFsbCBtb2RpZmllZCBjb2RlIGZhbGxzIHN0cmljdGx5IGludG8gb25lIG9yIG1vcmUgb2YgdGhlc2UgY2F0ZWdvcmllczoKCi0gTm9uLWtlcm5lbCBhbmQgbm9uLWV4ZWN1dGFibGUgY2hhbmdlczoKICAqIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIGNvbW1lbnRzLCBvciBzcGVsbGluZyBmaXhlcy4KICAqIFVzZXItc3BhY2UgZGlyZWN0b3JpZXMsIHNlbGYtdGVzdHMsIHNhbXBsZXMsIG9yIHNjcmlwdHMgKGUuZy4sIHRvb2xzLywgc2FtcGxlcy8sIHNjcmlwdHMvLCB1c3IvKQogICAgdGhhdCBkbyBub3QgYWZmZWN0IHRoZSBjb21waWxlZCBrZXJuZWwgaW1hZ2UgKHZtbGludXgpIG9yIGtlcm5lbCBtb2R1bGVzLgogICogUHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZyAoZS5nLiwgbWVzc2FnZSBzdHJpbmdzIGluIHByX2VyciwgcHJpbnRrLCBkZXZfaW5mbykgb3IgdHJhY2Vwb2ludHMKICAgIHRoYXQgZG8gbm90IGFsdGVyIGNvbnRyb2wgZmxvdyBvciBkYXRhIHN0cnVjdHVyZXMuCiAgKiBCdWlsZCBzeXN0ZW0gb3IgS2NvbmZpZyBjaGFuZ2VzIHRoYXQgZG8gbm90IGFsdGVyIGNvbXBpbGVkIEMgbG9naWMuCi0gU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlOgogICogVmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoZXMsIFNtYXJ0TklDcywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogICAgaW9uaWMsIGFtZGdwdSkgcmVxdWlyaW5nIHBoeXNpY2FsIEFTSUMvUENJZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBVbnJlYWNoYWJsZSBleGVjdXRpb24gcGF0aHM6CiAgKiBEcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzICgucmVtb3ZlLCAuc2h1dGRvd24sIHBjaV91bnJlZ2lzdGVyX2RyaXZlcikgZXhlY3V0ZWQgb25seSBkdXJpbmcKICAgIHBoeXNpY2FsIFBDSSBob3QtdW5wbHVnIG9yIG1hbnVhbCBzeXNmcyBkcml2ZXIgdW5iaW5kaW5nLgogICogQ29kZSBwYXRocyBleGNsdXNpdmUgdG8gYXJjaGl0ZWN0dXJlcyBvdGhlciB0aGFuIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMy4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPXRydWUgKFBPU0lUSVZFIENSSVRFUklBKQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSZXR1cm4gV29ydGhGdXp6aW5nPXRydWUgd2hlbmV2ZXIgdGhlIHBhdGNoIHRvdWNoZXMgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSwgaW5jbHVkaW5nOgotIENvcmUgU3Vic3lzdGVtczoKICAqIEFueSBsb2dpYyBtb2RpZmljYXRpb25zIGluIG1lbW9yeSBtYW5hZ2VtZW50IChtbS8pLCBzeW5jaHJvbml6YXRpb24vbG9ja2luZyAoa2VybmVsL2xvY2tpbmcvKSwKICAgIEJQRiwgc2NoZWR1bGVyLCBjb3JlIG5ldHdvcmtpbmcsIFZGUywgb3Igc3lzY2FsbCBoYW5kbGluZy4KLSBSZWZhY3RvcmluZ3MgYW5kIENvZGUgQ2xlYW51cHM6CiAgKiBBbnkgcmVzdHJ1Y3R1cmluZyBvZiByZWFjaGFibGUgZGF0YSBzdHJ1Y3R1cmVzLCBoZWxwZXIgYWJzdHJhY3Rpb25zLCBvciBhbGdvcml0aG0gZmxvd3MuCi0gUnVudGltZSBBc3NlcnRpb25zIGFuZCBEZWZlbnNpdmUgQ2hlY2tzOgogICogQW55IGludHJvZHVjdGlvbiBvciBhbHRlcmF0aW9uIG9mIGFzc2VydGlvbnMgKFdBUk5fT04qLCBWTV9XQVJOX09OKiwgQlVHX09OKiwgZXRjLikgaW4gcmVhY2hhYmxlIHBhdGhzLgotIFJlYWNoYWJsZSBEcml2ZXJzIGFuZCBQcm90b2NvbHM6CiAgKiBEcml2ZXJzIGFjY2Vzc2libGUgdmlhIHZpcnR1YWwgYnVzZXMgKHZpcnRpbywgVVNCIGdhZGdldCwgbG9vcGJhY2ssIG5ldGxpbmssIGJpbmRlciwgc29ja2V0cywgZXRjLikuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo0LiBFWFRSQUNUSU5HIEZvY3VzU3ltYm9scyAoUFJFVkVOVElORyBESUxVVElPTikKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KV2hlbiBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IG11c3QgZXh0cmFjdCBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIGludG8gRm9jdXNTeW1ib2xzIHRvIGd1aWRlIHRoZSBmdXp6ZXI6CgotIEFWT0lEIFVCSVFVSVRPVVMgTElGRUNZQ0xFIEhPVC1QQVRIUzoKICBEbyBOT1QgbGlzdCBnZW5lcmljLCB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYWxsZWQgYnkgYWxtb3N0IGV2ZXJ5IHByb2dyYW0gaW4gdGhlIGNvcnB1cwogIChpbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0bzogZ2VuZXJhbCBtZW1vcnkgYWxsb2NhdG9ycyBhbmQgZGVhbGxvY2F0b3JzLCBwYWdlIGZhdWx0CiAgYW5kIHRyYXAgaGFuZGxlcnMsIG9yIGNvcmUgc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXM7IHRoaXMgaXMgbm90IGFuIGV4aGF1c3RpdmUgbGlzdCkuCiAgTGlzdGluZyB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYXVzZXMgdGhlIGZ1enplciB0byBjbGFzc2lmeSB0aG91c2FuZHMgb2YgdW5yZWxhdGVkIHRlc3RzIGFzICYjMzQ7Zm9jdXNlZCYjMzQ7LAogIHdoaWNoIHNldmVyZWx5IGRpbHV0ZXMgZnV6emluZyBlZmZvcnQgYXdheSBmcm9tIHRoZSBhY3R1YWwgY2hhbmdlcy4KCi0gVEFSR0VUIFNQRUNJRklDIEZFQVRVUkUgTE9HSUMgQU5EIEVOVFJZUE9JTlRTOgogIExpc3QgZnVuY3Rpb25zIHRoYXQgc3BlY2lmaWNhbGx5IGltcGxlbWVudCB0aGUgbG9naWMgYmVpbmcgYWRkZWQgb3IgYWx0ZXJlZCwgb3IgZGlyZWN0IEFQSSBlbnRyeXBvaW50cwogIGZvciB0aGUgc3Vic3lzdGVtIGZlYXR1cmUgdW5kZXIgcmV2aWV3LgoKLSBIQU5ETElORyBTVEFUSUMgSU5MSU5FIEZVTkNUSU9OUyBJTiBIRUFERVJTICguaCk6CiAgQ29tcGlsZXItaW5saW5lZCBzdGF0aWMgZnVuY3Rpb25zIChzdWNoIGFzIHN0YXRpYyBpbmxpbmVzIGluIG1tLyouaCBvciBpbmNsdWRlL2xpbnV4LyouaCkgbGFjawogIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMgaW4gdm1saW51eCBhbmQgY2Fubm90IGJlIHRhcmdldGVkIGRpcmVjdGx5IGJ5IHN5bWJvbCBjb3ZlcmFnZSBmaWx0ZXJzLgogIElmIHRoZSBjaGFuZ2VzIGFyZSBwcmltYXJpbHkgaW4gc3RhdGljIGlubGluZSBoZWxwZXJzLCBpZGVudGlmeSBub24tc3RhdGljLCBmZWF0dXJlLXNwZWNpZmljIGNhbGxlcgogIGZ1bmN0aW9ucyBpbiAuYyBmaWxlcyB0aGF0IGV4ZXJjaXNlIHRoZW0gKGF2b2lkaW5nIHViaXF1aXRvdXMgbGlmZWN5Y2xlIHdyYXBwZXJzKS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjUuIElERU5USUZZSU5HIEVuYWJsZUNvbmZpZ3MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSBjb21waWxlIGFuZCByZWFjaCB0aGUgbW9kaWZpZWQgY29kZToKLSBJbnNwZWN0IEtjb25maWcgZmlsZXMgYW5kICNpZmRlZiBndWFyZHM7IGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgotIENoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncyBuZWVkZWQuCi0gU3RyaXAgYW55ICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPlRhcmdldCBhcmNoaXRlY3R1cmU6IGFtZDY0CgpGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGQ5MGIwODdiOTFjZWQ1ZWViZjYwOGU3Y2QxNTM3NWY3NDE1YWIyMzcKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgRnJpIFNlcCA0IDIwOjEwOjA5IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmMKaW5kZXggOTliZjVjZjc5ZDEwMi4uNjU0YzU4ZDdjMWQ1ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jCkBAIC0xNDEyNSw3ICYjNDM7MTQxMjUsNyBAQCBFWFBPUlRfU1lNQk9MKGF0aDEya19tYWNfb3Bfc2V0X3Jla2V5X2RhdGEpOwogdm9pZCBhdGgxMmtfbWFjX3VwZGF0ZV9mcmVxX3JhbmdlKHN0cnVjdCBhdGgxMmsgKmFyLAogCQkJCSAgdTMyIGZyZXFfbG93LCB1MzIgZnJlcV9oaWdoKQogewotCWlmICghKGZyZXFfbG93ICZhbXA7JmFtcDsgZnJlcV9oaWdoKSkKJiM0MzsJaWYgKCFmcmVxX2xvdyB8fCBmcmVxX2xvdyAmZ3Q7PSBmcmVxX2hpZ2gpCiAJCXJldHVybjsKIAogCWlmIChhci0mZ3Q7ZnJlcV9yYW5nZS5zdGFydF9mcmVxIHx8IGFyLSZndDtmcmVxX3JhbmdlLmVuZF9mcmVxKSB7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA0IDIwOjEwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI5MjAKCQkJCQkJCW91dHB1dDogODUKCQkJCQkJCXRob3VnaHRzOiAzNzYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBQYXRjaCBmb3IgRnV6emluZyBQb3RlbnRpYWwqKgoKT2theSwgbGV0JiMzOTtzIHRha2UgYSBsb29rIGF0IHRoaXMgcGF0Y2ggYW5kIGRlY2lkZSBpZiBpdCYjMzk7cyB3b3J0aCB0aGUgdGltZSB0byBmdXp6IHdpdGggc3l6a2FsbGVyLiBUaGUgZGlmZiBpcyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkOyBpdCBzZWVtcyB0byBiZSBpbiB0aGUgYGF0aDEya2Agd2lyZWxlc3MgZHJpdmVyLiBTcGVjaWZpY2FsbHksIGl0JiMzOTtzIGEgY29uZGl0aW9uYWwgY2hlY2sgcmVsYXRlZCB0byBmcmVxdWVuY3kgcmFuZ2VzLiBUaGUgb3JpZ2luYWwgY2hlY2sgd2FzIGBpZiAoIShmcmVxX2xvdyAmYW1wOyZhbXA7IGZyZXFfaGlnaCkpYCwgd2hpY2ggaGFzIGJlZW4gY2hhbmdlZCB0byBgaWYgKCFmcmVxX2xvdyB8fCBmcmVxX2xvdyAmZ3Q7PSBmcmVxX2hpZ2gpYC4gVGhpcyBzdWdnZXN0cyBhIHBvdGVudGlhbCBidWcgb3IgdnVsbmVyYWJpbGl0eSByZWxhdGVkIHRvIGZyZXF1ZW5jeSByYW5nZSB2YWxpZGF0aW9uLiBUaGF0JiMzOTtzIGEgcmVhc29uYWJsZSBjaGFuZ2UsIGF0IGZpcnN0IGdsYW5jZS4KCkZpcnN0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IGBhdGgxMmtgICppcyouIEkgbmVlZCB0byBkZXRlcm1pbmUgaWYgdGhpcyBkcml2ZXIgaXMgc29tZXRoaW5nIHRoYXQmIzM5O3MgbGlrZWx5IHRvIGJlIHJlYWNoZWQgaW4gYSBzdGFuZGFyZCwgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQsIGxpa2UgUUVNVSBvciBHb29nbGUgQ29tcHV0ZSBFbmdpbmUuIElmIGl0IHJlcXVpcmVzIHNwZWNpYWxpemVkIGhhcmR3YXJlLCB0aGF0IGdyZWF0bHkgaW5jcmVhc2VzIHRoZSBvdmVyaGVhZCBvZiBmdXp6aW5nLiBJJiMzOTtsbCBuZWVkIHRvIGNoZWNrIHRoZSBLY29uZmlnIGFuZCBidXMgdHlwZSBkZWZpbml0aW9ucyBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9gIHRvIGdldCBhIGhhbmRsZSBvbiB0aGlzLCBhbmQgc2VlIHdoYXQgdGhlIGRldmljZSBkZXBlbmRzIG9uLgoKSSYjMzk7bGwgdXNlIGBncmVwcGVyYCAob3IgYHJlYWQtZmlsZWAgaWYgdGhlIGdyZXAgZmFpbHMpIHRvIHF1aWNrbHkgc2NhbiB0aHJvdWdoIHRoZSBjb2RlIGJhc2UgYW5kIGNvbmZpZ3VyYXRpb24gZmlsZXMgcmVsYXRlZCB0byBgYXRoMTJrYCB0byBnYXRoZXIgdGhpcyBpbmZvcm1hdGlvbi4gTXkgZ29hbCBpcyB0byBxdWlja2x5IGFzY2VydGFpbiB0aGUgYWNjZXNzaWJpbGl0eSBvZiB0aGlzIGNvZGUgZm9yIGEgc3RhbmRhcmQgZnV6emluZyBzZXR1cC4gQmFzZWQgb24gdGhhdCBhc3Nlc3NtZW50LCBJJiMzOTtsbCB0aGVuIGRlY2lkZSBpZiB0aGlzIHBhdGNoIGlzIGEgZ29vZCBjYW5kaWRhdGUgZm9yIHN5emthbGxlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNCAyMDoxMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDthdGgxMmtfbWFjX3VwZGF0ZV9mcmVxX3JhbmdlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyayYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jPTE0MTIzPUVYUE9SVF9TWU1CT0woYXRoMTJrX21hY19vcF9zZXRfcmVrZXlfZGF0YSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jLTE0MTI0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYzoxNDEyNTp2b2lkIGF0aDEya19tYWNfdXBkYXRlX2ZyZXFfcmFuZ2Uoc3RydWN0IGF0aDEyayAqYXIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jLTE0MTI2LVx0XHRcdFx0ICB1MzIgZnJlcV9sb3csIHUzMiBmcmVxX2hpZ2gpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYz0xNDIyNT1zdGF0aWMgaW50IGF0aDEya19tYWNfc2V0dXBfY2hhbm5lbHNfcmF0ZXMoc3RydWN0IGF0aDEyayAqYXIsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYy0xNDI3MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmM6MTQyNzI6XHRcdGF0aDEya19tYWNfdXBkYXRlX2ZyZXFfcmFuZ2UoYXIsIGZyZXFfbG93LCBmcmVxX2hpZ2gpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYy0xNDI3My1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jLTE0MzE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYzoxNDMxNzpcdFx0XHRhdGgxMmtfbWFjX3VwZGF0ZV9mcmVxX3JhbmdlKGFyLCBmcmVxX2xvdywgZnJlcV9oaWdoKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmMtMTQzMTgtXHRcdFx0YWgtXHUwMDNldXNlXzZnaHpfcmVnZCA9IHRydWU7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYy0xNDM3My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmM6MTQzNzQ6XHRcdFx0YXRoMTJrX21hY191cGRhdGVfZnJlcV9yYW5nZShhciwgZnJlcV9sb3csIGZyZXFfaGlnaCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jLTE0Mzc1LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmg9MjA0PWludCBhdGgxMmtfbWFjX2dldF9md19zdGF0cyhzdHJ1Y3QgYXRoMTJrICphciwgc3RydWN0IGF0aDEya19md19zdGF0c19yZXFfcGFyYW1zICpwYXJhbSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5oOjIwNTp2b2lkIGF0aDEya19tYWNfdXBkYXRlX2ZyZXFfcmFuZ2Uoc3RydWN0IGF0aDEyayAqYXIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5oLTIwNi1cdFx0XHRcdCAgdTMyIGZyZXFfbG93LCB1MzIgZnJlcV9oaWdoKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3JlZy5jPTI2OT1pbnQgYXRoMTJrX3JlZ2RfdXBkYXRlKHN0cnVjdCBhdGgxMmsgKmFyLCBib29sIGluaXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9yZWcuYy0zMDktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3JlZy5jOjMxMDpcdFx0YXRoMTJrX21hY191cGRhdGVfZnJlcV9yYW5nZShhciwgZnJlcV9sb3csIGZyZXFfaGlnaCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3JlZy5jLTMxMS1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3JlZy5jLTMyMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcmVnLmM6MzIyOlx0XHRhdGgxMmtfbWFjX3VwZGF0ZV9mcmVxX3JhbmdlKGFyLCBmcmVxX2xvdywgZnJlcV9oaWdoKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcmVnLmMtMzIzLVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcmVnLmMtMzI4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9yZWcuYzozMjk6XHRcdGF0aDEya19tYWNfdXBkYXRlX2ZyZXFfcmFuZ2UoYXIsIGZyZXFfbG93LCBmcmVxX2hpZ2gpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9yZWcuYy0zMzAtXHR9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDQgMjA6MTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDUwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcbiAgIDI6XHRjb25maWcgQVRIMTJLXG4gICAzOlx0XHR0cmlzdGF0ZSBcJiMzNDtRdWFsY29tbSBXaS1GaSA3IHN1cHBvcnQgKGF0aDEyaylcJiMzNDtcbiAgIDQ6XHRcdGRlcGVuZHMgb24gTUFDODAyMTEgXHUwMDI2XHUwMDI2IEhBU19ETUEgXHUwMDI2XHUwMDI2IFBDSVxuICAgNTpcdFx0c2VsZWN0IFFDT01fUU1JX0hFTFBFUlNcbiAgIDY6XHRcdHNlbGVjdCBNSElfQlVTXG4gICA3Olx0XHRzZWxlY3QgUVJUUlxuICAgODpcdFx0c2VsZWN0IFFSVFJfTUhJXG4gICA5Olx0XHRzZWxlY3QgUENJX1BXUkNUUkxfUFdSU0VRIGlmIEhBVkVfUFdSQ1RSTFxuICAxMDpcdFx0aGVscFxuICAxMTpcdFx0ICBFbmFibGUgc3VwcG9ydCBmb3IgUXVhbGNvbW0gVGVjaG5vbG9naWVzIFdpLUZpIDcgKElFRUVcbiAgMTI6XHRcdCAgODAyLjExYmUpIGZhbWlseSBvZiBjaGlwc2V0cywgZm9yIGV4YW1wbGUgV0NONzg1MCBhbmRcbiAgMTM6XHRcdCAgUUNOOTI3NC5cbiAgMTQ6XHRcbiAgMTU6XHRcdCAgSWYgeW91IGNob29zZSB0byBidWlsZCBhIG1vZHVsZSwgaXQmIzM5O2xsIGJlIGNhbGxlZCBhdGgxMmsuXG4gIDE2Olx0XG4gIDE3Olx0Y29uZmlnIEFUSDEyS19BSEJcbiAgMTg6XHRcdGJvb2wgXCYjMzQ7UXVhbGNvbW0gYXRoMTJrIEFIQiBzdXBwb3J0XCYjMzQ7XG4gIDE5Olx0XHRkZXBlbmRzIG9uIEFUSDEySyBcdTAwMjZcdTAwMjYgUkVNT1RFUFJPQ1xuICAyMDpcdFx0c2VsZWN0IFFDT01fTURUX0xPQURFUlxuICAyMTpcdFx0c2VsZWN0IFFDT01fUEFTXG4gIDIyOlx0XHRoZWxwXG4gIDIzOlx0XHQgIEVuYWJsZSBzdXBwb3J0IGZvciBBdGgxMmsgQUhCIGJ1cyBjaGlwc2V0cywgZXhhbXBsZSBJUFE1MzMyLlxuICAyNDpcdFxuICAyNTpcdGNvbmZpZyBBVEgxMktfREVCVUdcbiAgMjY6XHRcdGJvb2wgXCYjMzQ7YXRoMTJrIGRlYnVnZ2luZ1wmIzM0O1xuICAyNzpcdFx0ZGVwZW5kcyBvbiBBVEgxMktcbiAgMjg6XHRcdGhlbHBcbiAgMjk6XHRcdCAgRW5hYmxlIGRlYnVnIHN1cHBvcnQsIGZvciBleGFtcGxlIGRlYnVnIG1lc3NhZ2VzIHdoaWNoIG11c3RcbiAgMzA6XHRcdCAgYmUgZW5hYmxlZCBzZXBhcmF0ZWx5IHVzaW5nIHRoZSBkZWJ1Z19tYXNrIG1vZHVsZSBwYXJhbWV0ZXIuXG4gIDMxOlx0XG4gIDMyOlx0XHQgIElmIHVuc3VyZSwgc2F5IFkgdG8gbWFrZSBpdCBlYXNpZXIgdG8gZGVidWcgcHJvYmxlbXMuIEJ1dCBpZlxuICAzMzpcdFx0ICB5b3Ugd2FudCBvcHRpbWFsIHBlcmZvcm1hbmNlIGNob29zZSBOLlxuICAzNDpcdFxuICAzNTpcdGNvbmZpZyBBVEgxMktfREVCVUdGU1xuICAzNjpcdFx0Ym9vbCBcJiMzNDtRdWFsY29tbSBhdGgxMmsgZGVidWdmcyBzdXBwb3J0XCYjMzQ7XG4gIDM3Olx0XHRkZXBlbmRzIG9uIEFUSDEySyBcdTAwMjZcdTAwMjYgTUFDODAyMTFfREVCVUdGU1xuICAzODpcdFx0aGVscFxuICAzOTpcdFx0ICBFbmFibGUgYXRoMTJrIGRlYnVnZnMgc3VwcG9ydFxuICA0MDpcdFxuICA0MTpcdFx0ICBJZiB1bnN1cmUsIHNheSBZIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGRlYnVnIHByb2JsZW1zLiBCdXQgaWZcbiAgNDI6XHRcdCAgeW91IHdhbnQgb3B0aW1hbCBwZXJmb3JtYW5jZSBjaG9vc2UgTi5cbiAgNDM6XHRcbiAgNDQ6XHRjb25maWcgQVRIMTJLX1RSQUNJTkdcbiAgNDU6XHRcdGJvb2wgXCYjMzQ7YXRoMTJrIHRyYWNpbmcgc3VwcG9ydFwmIzM0O1xuICA0NjpcdFx0ZGVwZW5kcyBvbiBBVEgxMksgXHUwMDI2XHUwMDI2IEVWRU5UX1RSQUNJTkdcbiAgNDc6XHRcdGhlbHBcbiAgNDg6XHRcdCAgRW5hYmxlIGF0aDEyayB0cmFjaW5nIGluZnJhc3RydWN0dXJlLlxuICA0OTpcdFxuICA1MDpcdFx0ICBJZiB1bnN1cmUsIHNheSBZIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGRlYnVnIHByb2JsZW1zLiBCdXQgaWZcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNCAyMDoxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1NDEzCgkJCQkJCQlvdXRwdXQ6IDQyCgkJCQkJCQl0aG91Z2h0czogMzUxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgYXRoMTJrJiMzOTtzIFZpcnR1YWxpemF0aW9uIEZlYXNpYmlsaXR5KioKCk9rYXksIHNvIGBhdGgxMmtgIOKAkyB0aGF0JiMzOTtzIHRoZSBRdWFsY29tbSBXaS1GaSA3IGRyaXZlciwgc3BlY2lmaWNhbGx5IGZvciB0aGUgV0NONzg1MCBhbmQgUUNOOTI3NCwgZGVhbGluZyB3aXRoIFBDSSBhbmQgQUhCIGludGVyZmFjZXMuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBjYW4gSSBldmVuICp0b3VjaCogdGhpcyB0aGluZyBpbiBhIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50IGxpa2UgUUVNVSBvciBHb29nbGUgQ29tcHV0ZSBFbmdpbmU/CgpUaGUgZHJpdmVyIGlzIGNsZWFybHkgdGllZCB0byB0aGUgaGFyZHdhcmU6IGl0JiMzOTtzIGEgUENJL0FIQiBkcml2ZXIgZm9yIHRoZXNlIHNwZWNpZmljIFF1YWxjb21tIFdpLUZpIDcgY2FyZHMuIFNvLCBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiB0aGVyZSYjMzk7cyBhbnkgY2hhbmNlIG9mIGVtdWxhdGlvbiwgb3IgaWYgaXQmIzM5O3Mgc3RyaWN0bHkgZGVwZW5kZW50IG9uIGhhdmluZyB0aGUgcGh5c2ljYWwgUXVhbGNvbW0gaGFyZHdhcmUsIHRoZSBmaXJtd2FyZSwgYW5kIHRoYXQgTUhJIGJ1cyBjb25uZWN0aW9uLgoKVGhlIGNyaXRlcmlhIEkmIzM5O20gdXNpbmcgc3RhdGUgdGhhdCBpZiBzb21ldGhpbmcmIzM5O3Mgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlLCBsaWtlIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIEdQVSBkcml2ZXJzICh0aGluayBtbHhzdywgcGRzX2NvcmUsIHFlZCwgaW9uaWMsIGFtZGdwdSksIGFuZCAqZXNwZWNpYWxseSogZHJpdmVycyB0aGF0IHJlcXVpcmUgdGhlIGFjdHVhbCBBU0lDL1BDSWUgY2FyZHMgdGhhdCBRRU1VIGRvZXNuJiMzOTt0IGVtdWxhdGUsIHRoZW4gaXQmIzM5O3MgYSBuby1nbyBmb3IgV29ydGhGdXp6aW5nLgoKSSYjMzk7bSB0aGlua2luZywgJiMzNDt3aGF0IGhhcmR3YXJlIGRvZXMgYXRoMTJrICphY3R1YWxseSogc3VwcG9ydD8mIzM0OyBJdCYjMzk7cyBRdWFsY29tbSBXaS1GaSA3IGRldmljZXMgdXNpbmcgUENJZS9BSEIuIE9rYXksIHNvIG5vdyBJIG5lZWQgdG8gZGV0ZXJtaW5lIGlmIHN0YW5kYXJkIFFFTVUgb3IgR0NFIG9mZmVyIGFueXRoaW5nIGxpa2UgYW4gZW11bGF0ZWQgYXRoMTJrIGRldmljZS4gQW5kIHRoZSBhbnN3ZXIgaXMgbGlrZWx5IG5vLiBRRU1VIGdlbmVyYWxseSBoYXMgb3RoZXIgb3B0aW9ucywgbGlrZSBtYWM4MDIxMV9od3NpbSwgdmlydGlvLW5ldCwgZTEwMDAsIHJ0bDgxMzksIG9yIGV2ZW4gVVNCIGdhZGdldCBXaS1GaSBkZXZpY2VzLCBidXQgYGF0aDEya2AgaXMgc3BlY2lmaWNhbGx5IFBDSS9BSEIuCgpMZXQmIzM5O3MgZHJpbGwgZG93biBhbmQgY29uZmlybSBieSBleGFtaW5pbmcgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmNgIGFuZCBgYWhiLmNgIHRvIHNlZSBpZiB0aGF0IHJlaW5mb3JjZXMgdGhlIGhhcmR3YXJlIGRlcGVuZGVuY2llcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNCAyMDoxMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDthdGgxMmtfJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTA1OCBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0zOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6Mzk6c3RhdGljIHN0cnVjdCBhdGgxMmtfcGNpX2RyaXZlciAqYXRoMTJrX3BjaV9mYW1pbHlfZHJpdmVyc1tBVEgxMktfREVWSUNFX0ZBTUlMWV9NQVhdO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo0MDpzdGF0aWMgY29uc3Qgc3RydWN0IGF0aDEya19tc2lfY29uZmlnIG1zaV9jb25maWdfb25lX21zaSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNDEtXHQudG90YWxfdmVjdG9ycyA9IDEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTQyLVx0LnRvdGFsX3VzZXJzID0gNCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NDM6XHQudXNlcnMgPSAoc3RydWN0IGF0aDEya19tc2lfdXNlcltdKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTQ0LVx0XHR7IC5uYW1lID0gXCYjMzQ7TUhJXCYjMzQ7LCAubnVtX3ZlY3RvcnMgPSAzLCAuYmFzZV92ZWN0b3IgPSAwIH0sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYz01MT1zdGF0aWMgY29uc3QgY2hhciAqaXJxX25hbWVbQVRIMTJLX0lSUV9OVU1fTUFYXSA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTEwOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MTEwOnN0YXRpYyB2b2lkIGF0aDEya19wY2lfc2VsZWN0X3dpbmRvdyhzdHJ1Y3QgYXRoMTJrX3BjaSAqYWJfcGNpLCB1MzIgb2Zmc2V0KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0xMTEte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoxMTI6XHRzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiID0gYWJfcGNpLVx1MDAzZWFiO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0xMTMtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0xMzAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjEzMTpzdGF0aWMgdm9pZCBhdGgxMmtfcGNpX3NlbGVjdF9zdGF0aWNfd2luZG93KHN0cnVjdCBhdGgxMmtfcGNpICphYl9wY2kpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTEzMi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0xNDctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjE0ODpzdGF0aWMgdTMyIGF0aDEya19wY2lfZ2V0X3dpbmRvd19zdGFydChzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0xNDktXHRcdFx0XHQgICAgICAgdTMyIG9mZnNldClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMTUwLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MTUxOlx0c3RydWN0IGF0aDEya19wY2kgKmFiX3BjaSA9IGF0aDEya19wY2lfcHJpdihhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTE1Mi1cdHUzMiB3aW5kb3dfc3RhcnQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0xNjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjE2NjpzdGF0aWMgaW5saW5lIGJvb2wgYXRoMTJrX3BjaV9pc19vZmZzZXRfd2l0aGluX21oaV9yZWdpb24odTMyIG9mZnNldClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMTY3LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTE3MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MTcxOnN0YXRpYyB2b2lkIGF0aDEya19wY2lfcmVzdG9yZV93aW5kb3coc3RydWN0IGF0aDEya19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMTcyLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MTczOlx0c3RydWN0IGF0aDEya19wY2kgKmFiX3BjaSA9IGF0aDEya19wY2lfcHJpdihhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTE3NC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTE4My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MTg0OnN0YXRpYyB2b2lkIGF0aDEya19wY2lfc29jX2dsb2JhbF9yZXNldChzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0xODUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMTg3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoxODg6XHR2YWwgPSBhdGgxMmtfcGNpX3JlYWQzMihhYiwgUENJRV9TT0NfR0xPQkFMX1JFU0VUKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMTg5LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMTkxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoxOTI6XHRhdGgxMmtfcGNpX3dyaXRlMzIoYWIsIFBDSUVfU09DX0dMT0JBTF9SRVNFVCwgdmFsKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMTkzLVx0LyogRmx1c2ggdGhlIHBvc3RlZCB3cml0ZSB0byB0aGUgZGV2aWNlICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjE5NDpcdGF0aDEya19wY2lfcmVhZDMyKGFiLCBQQ0lFX1NPQ19HTE9CQUxfUkVTRVQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0xOTUtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yMDItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjIwMzpcdGF0aDEya19wY2lfd3JpdGUzMihhYiwgUENJRV9TT0NfR0xPQkFMX1JFU0VULCB2YWwpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yMDQtXHQvKiBGbHVzaCB0aGUgcG9zdGVkIHdyaXRlIHRvIHRoZSBkZXZpY2UgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjA1Olx0YXRoMTJrX3BjaV9yZWFkMzIoYWIsIFBDSUVfU09DX0dMT0JBTF9SRVNFVCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTIwNi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTIwOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjA5Olx0dmFsID0gYXRoMTJrX3BjaV9yZWFkMzIoYWIsIFBDSUVfU09DX0dMT0JBTF9SRVNFVCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTIxMC1cdGlmICh2YWwgPT0gMHhmZmZmZmZmZilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjExOlx0XHRhdGgxMmtfd2FybihhYiwgXCYjMzQ7bGluayBkb3duIGVycm9yIGR1cmluZyBnbG9iYWwgcmVzZXRcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yMTItXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yMTUtXHQgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjE2Olx0YXRoMTJrX3BjaV9yZXN0b3JlX3dpbmRvdyhhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTIxNy19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTIxOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjE5OnN0YXRpYyB2b2lkIGF0aDEya19wY2lfY2xlYXJfZGJnX3JlZ2lzdGVycyhzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yMjAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMjIzLVx0LyogcmVhZCBjb29raWUgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjI0Olx0dmFsID0gYXRoMTJrX3BjaV9yZWFkMzIoYWIsIFBDSUVfUTZfQ09PS0lFX0FERFIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoyMjU6XHRhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX1BDSSwgXCYjMzQ7Y29va2llOjB4JXhcXG5cJiMzNDssIHZhbCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTIyNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjI3Olx0dmFsID0gYXRoMTJrX3BjaV9yZWFkMzIoYWIsIFdMQU9OX1dBUk1fU1dfRU5UUlkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoyMjg6XHRhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX1BDSSwgXCYjMzQ7V0xBT05fV0FSTV9TV19FTlRSWSAweCV4XFxuXCYjMzQ7LCB2YWwpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yMjktXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yMzUtXHQgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjM2Olx0YXRoMTJrX3BjaV93cml0ZTMyKGFiLCBXTEFPTl9XQVJNX1NXX0VOVFJZLCAwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMjM3LVx0bWRlbGF5KDEwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMjM4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoyMzk6XHR2YWwgPSBhdGgxMmtfcGNpX3JlYWQzMihhYiwgV0xBT05fV0FSTV9TV19FTlRSWSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjI0MDpcdGF0aDEya19kYmcoYWIsIEFUSDEyS19EQkdfUENJLCBcJiMzNDtXTEFPTl9XQVJNX1NXX0VOVFJZIDB4JXhcXG5cJiMzNDssIHZhbCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTI0MS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTI0NC1cdCAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoyNDU6XHR2YWwgPSBhdGgxMmtfcGNpX3JlYWQzMihhYiwgV0xBT05fU09DX1JFU0VUX0NBVVNFX1JFRyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjI0NjpcdGF0aDEya19kYmcoYWIsIEFUSDEyS19EQkdfUENJLCBcJiMzNDtzb2MgcmVzZXQgY2F1c2U6JWRcXG5cJiMzNDssIHZhbCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTI0Ny19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTI0OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjQ5OnN0YXRpYyB2b2lkIGF0aDEya19wY2lfZW5hYmxlX2x0c3NtKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTI1MC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yNTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjI1NDpcdHZhbCA9IGF0aDEya19wY2lfcmVhZDMyKGFiLCBQQ0lFX1BDSUVfUEFSRl9MVFNTTSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTI1NS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTI2MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjYxOlx0XHRhdGgxMmtfcGNpX3dyaXRlMzIoYWIsIFBDSUVfUENJRV9QQVJGX0xUU1NNLCBQQVJNX0xUU1NNX1ZBTFVFKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjYyOlx0XHR2YWwgPSBhdGgxMmtfcGNpX3JlYWQzMihhYiwgUENJRV9QQ0lFX1BBUkZfTFRTU00pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yNjMtXHR9XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTI2NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjY1Olx0YXRoMTJrX2RiZyhhYiwgQVRIMTJLX0RCR19QQ0ksIFwmIzM0O3BjaSBsdHNzbSAweCV4XFxuXCYjMzQ7LCB2YWwpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yNjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjI2NzpcdHZhbCA9IGF0aDEya19wY2lfcmVhZDMyKGFiLCBHQ0NfR0NDX1BDSUVfSE9UX1JTVChhYikpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yNjgtXHR2YWwgfD0gR0NDX0dDQ19QQ0lFX0hPVF9SU1RfVkFMO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoyNjk6XHRhdGgxMmtfcGNpX3dyaXRlMzIoYWIsIEdDQ19HQ0NfUENJRV9IT1RfUlNUKGFiKSwgdmFsKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjcwOlx0dmFsID0gYXRoMTJrX3BjaV9yZWFkMzIoYWIsIEdDQ19HQ0NfUENJRV9IT1RfUlNUKGFiKSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTI3MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjcyOlx0YXRoMTJrX2RiZyhhYiwgQVRIMTJLX0RCR19QQ0ksIFwmIzM0O3BjaSBwY2llX2hvdF9yc3QgMHgleFxcblwmIzM0OywgdmFsKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMjczLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMjc2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoyNzc6c3RhdGljIHZvaWQgYXRoMTJrX3BjaV9jbGVhcl9hbGxfaW50cnMoc3RydWN0IGF0aDEya19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMjc4LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTI4My1cdCAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoyODQ6XHRhdGgxMmtfcGNpX3dyaXRlMzIoYWIsIFBDSUVfUENJRV9JTlRfQUxMX0NMRUFSLCBQQ0lFX0lOVF9DTEVBUl9BTEwpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yODUtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yODYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjI4NzpzdGF0aWMgdm9pZCBhdGgxMmtfcGNpX3NldF93bGFvbl9wd3JfY3RybChzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yODgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMjkwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoyOTE6XHR2YWwgPSBhdGgxMmtfcGNpX3JlYWQzMihhYiwgV0xBT05fUUZQUk9NX1BXUl9DVFJMX1JFRyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTI5Mi1cdHZhbCBcdTAwMjY9IH5RRlBST01fUFdSX0NUUkxfVkRENEJMT1dfTUFTSztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjkzOlx0YXRoMTJrX3BjaV93cml0ZTMyKGFiLCBXTEFPTl9RRlBST01fUFdSX0NUUkxfUkVHLCB2YWwpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yOTQtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yOTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjI5NjpzdGF0aWMgdm9pZCBhdGgxMmtfcGNpX2ZvcmNlX3dha2Uoc3RydWN0IGF0aDEya19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMjk3LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6Mjk4Olx0YXRoMTJrX3BjaV93cml0ZTMyKGFiLCBQQ0lFX1NPQ19XQUtFX1BDSUVfTE9DQUxfUkVHLCAxKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMjk5LVx0bWRlbGF5KDUpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMzAxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzozMDI6c3RhdGljIHZvaWQgYXRoMTJrX3BjaV9zd19yZXNldChzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiLCBib29sIHBvd2VyX29uKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0zMDMte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0zMDQtXHRpZiAocG93ZXJfb24pIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MzA1Olx0XHRhdGgxMmtfcGNpX2VuYWJsZV9sdHNzbShhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjMwNjpcdFx0YXRoMTJrX3BjaV9jbGVhcl9hbGxfaW50cnMoYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzozMDc6XHRcdGF0aDEya19wY2lfc2V0X3dsYW9uX3B3cl9jdHJsKGFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMzA4LVx0fVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0zMDktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjMxMDpcdGF0aDEya19taGlfY2xlYXJfdmVjdG9yKGFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MzExOlx0YXRoMTJrX3BjaV9jbGVhcl9kYmdfcmVnaXN0ZXJzKGFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MzEyOlx0YXRoMTJrX3BjaV9zb2NfZ2xvYmFsX3Jlc2V0KGFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MzEzOlx0YXRoMTJrX21oaV9zZXRfbWhpY3RybF9yZXNldChhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTMxNC19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTMxNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MzE2OnN0YXRpYyB2b2lkIGF0aDEya19wY2lfZnJlZV9leHRfaXJxKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTMxNy17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0zMjAtXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBVEgxMktfRVhUX0lSUV9HUlBfTlVNX01BWDsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MzIxOlx0XHRzdHJ1Y3QgYXRoMTJrX2V4dF9pcnFfZ3JwICppcnFfZ3JwID0gXHUwMDI2YWItXHUwMDNlZXh0X2lycV9ncnBbaV07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTMyMi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTMzMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MzMxOnN0YXRpYyB2b2lkIGF0aDEya19wY2lfZnJlZV9pcnEoc3RydWN0IGF0aDEya19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMzMyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTMzNS1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIGFiLVx1MDAzZWh3X3BhcmFtcy1cdTAwM2VjZV9jb3VudDsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MzM2Olx0XHRpZiAoYXRoMTJrX2NlX2dldF9hdHRyX2ZsYWdzKGFiLCBpKSBcdTAwMjYgQ0VfQVRUUl9ESVNfSU5UUilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMzM3LVx0XHRcdGNvbnRpbnVlO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMzQxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzozNDI6XHRhdGgxMmtfcGNpX2ZyZWVfZXh0X2lycShhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTM0My19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTM0NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MzQ1OnN0YXRpYyB2b2lkIGF0aDEya19wY2lfY2VfaXJxX2VuYWJsZShzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiLCB1MTYgY2VfaWQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTM0Ni17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjM0NzpcdHN0cnVjdCBhdGgxMmtfcGNpICphYl9wY2kgPSBhdGgxMmtfcGNpX3ByaXYoYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0zNDgtXHR1MzIgaXJxX2lkeDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTM1OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MzYwOnN0YXRpYyB2b2lkIGF0aDEya19wY2lfY2VfaXJxX2Rpc2FibGUoc3RydWN0IGF0aDEya19iYXNlICphYiwgdTE2IGNlX2lkKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0zNjEte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzozNjI6XHRzdHJ1Y3QgYXRoMTJrX3BjaSAqYWJfcGNpID0gYXRoMTJrX3BjaV9wcml2KGFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMzYzLVx0dTMyIGlycV9pZHg7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0zNzQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjM3NTpzdGF0aWMgdm9pZCBhdGgxMmtfcGNpX2NlX2lycXNfZGlzYWJsZShzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0zNzYte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMzgxLVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgYWItXHUwMDNlaHdfcGFyYW1zLVx1MDAzZWNlX2NvdW50OyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzozODI6XHRcdGlmIChhdGgxMmtfY2VfZ2V0X2F0dHJfZmxhZ3MoYWIsIGkpIFx1MDAyNiBDRV9BVFRSX0RJU19JTlRSKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0zODMtXHRcdFx0Y29udGludWU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjM4NDpcdFx0YXRoMTJrX3BjaV9jZV9pcnFfZGlzYWJsZShhYiwgaSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTM4NS1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTM4Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6Mzg4OnN0YXRpYyB2b2lkIGF0aDEya19wY2lfc3luY19jZV9pcnFzKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTM4OS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0zOTMtXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBhYi1cdTAwM2Vod19wYXJhbXMtXHUwMDNlY2VfY291bnQ7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjM5NDpcdFx0aWYgKGF0aDEya19jZV9nZXRfYXR0cl9mbGFncyhhYiwgaSkgXHUwMDI2IENFX0FUVFJfRElTX0lOVFIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTM5NS1cdFx0XHRjb250aW51ZTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTQwMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NDAyOnN0YXRpYyB2b2lkIGF0aDEya19wY2lfY2Vfd29ya3F1ZXVlKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNDAzLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NDA0Olx0c3RydWN0IGF0aDEya19jZV9waXBlICpjZV9waXBlID0gZnJvbV93b3JrKGNlX3BpcGUsIHdvcmssIGludHJfd3EpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy00MDUtXHRpbnQgaXJxX2lkeCA9IEFUSDEyS19QQ0lfSVJRX0NFMF9PRkZTRVQgJiM0MzsgY2VfcGlwZS1cdTAwM2VwaXBlX251bTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNDA2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo0MDc6XHRhdGgxMmtfY2VfcGVyX2VuZ2luZV9zZXJ2aWNlKGNlX3BpcGUtXHUwMDNlYWIsIGNlX3BpcGUtXHUwMDNlcGlwZV9udW0pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy00MDgtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy00MTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjQxMjpzdGF0aWMgaXJxcmV0dXJuX3QgYXRoMTJrX3BjaV9jZV9pbnRlcnJ1cHRfaGFuZGxlcihpbnQgaXJxLCB2b2lkICphcmcpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTQxMy17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjQxNDpcdHN0cnVjdCBhdGgxMmtfY2VfcGlwZSAqY2VfcGlwZSA9IGFyZztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NDE1Olx0c3RydWN0IGF0aDEya19iYXNlICphYiA9IGNlX3BpcGUtXHUwMDNlYWI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTQxNi1cdGludCBpcnFfaWR4ID0gQVRIMTJLX1BDSV9JUlFfQ0UwX09GRlNFVCAmIzQzOyBjZV9waXBlLVx1MDAzZXBpcGVfbnVtO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNDMwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo0MzE6c3RhdGljIHZvaWQgYXRoMTJrX3BjaV9leHRfZ3JwX2Rpc2FibGUoc3RydWN0IGF0aDEya19leHRfaXJxX2dycCAqaXJxX2dycClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNDMyLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NDMzOlx0c3RydWN0IGF0aDEya19wY2kgKmFiX3BjaSA9IGF0aDEya19wY2lfcHJpdihpcnFfZ3JwLVx1MDAzZWFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNDM0LVx0aW50IGk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy00NDUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjQ0NjpzdGF0aWMgdm9pZCBfX2F0aDEya19wY2lfZXh0X2lycV9kaXNhYmxlKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTQ0Ny17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy00NTMtXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBVEgxMktfRVhUX0lSUV9HUlBfTlVNX01BWDsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NDU0Olx0XHRzdHJ1Y3QgYXRoMTJrX2V4dF9pcnFfZ3JwICppcnFfZ3JwID0gXHUwMDI2YWItXHUwMDNlZXh0X2lycV9ncnBbaV07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTQ1NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NDU2Olx0XHRhdGgxMmtfcGNpX2V4dF9ncnBfZGlzYWJsZShpcnFfZ3JwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNDU3LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNDY1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo0NjY6c3RhdGljIHZvaWQgYXRoMTJrX3BjaV9leHRfZ3JwX2VuYWJsZShzdHJ1Y3QgYXRoMTJrX2V4dF9pcnFfZ3JwICppcnFfZ3JwKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy00Njcte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo0Njg6XHRzdHJ1Y3QgYXRoMTJrX3BjaSAqYWJfcGNpID0gYXRoMTJrX3BjaV9wcml2KGlycV9ncnAtXHUwMDNlYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy00NjktXHRpbnQgaTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTQ4MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NDgxOnN0YXRpYyB2b2lkIGF0aDEya19wY2lfc3luY19leHRfaXJxcyhzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy00ODIte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNDg1LVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVRIMTJLX0VYVF9JUlFfR1JQX05VTV9NQVg7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjQ4NjpcdFx0c3RydWN0IGF0aDEya19leHRfaXJxX2dycCAqaXJxX2dycCA9IFx1MDAyNmFiLVx1MDAzZWV4dF9pcnFfZ3JwW2ldO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy00ODctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy00OTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjQ5NTpzdGF0aWMgaW50IGF0aDEya19wY2lfZXh0X2dycF9uYXBpX3BvbGwoc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLCBpbnQgYnVkZ2V0KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy00OTYte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo0OTc6XHRzdHJ1Y3QgYXRoMTJrX2V4dF9pcnFfZ3JwICppcnFfZ3JwID0gY29udGFpbmVyX29mKG5hcGksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjQ5ODpcdFx0XHRcdFx0XHRzdHJ1Y3QgYXRoMTJrX2V4dF9pcnFfZ3JwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy00OTktXHRcdFx0XHRcdFx0bmFwaSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjUwMDpcdHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIgPSBpcnFfZ3JwLVx1MDAzZWFiO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo1MDE6XHRzdHJ1Y3QgYXRoMTJrX2RwICpkcCA9IGF0aDEya19hYl90b19kcChhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTUwMi1cdGludCB3b3JrX2RvbmU7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy01MDQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjUwNTpcdHdvcmtfZG9uZSA9IGF0aDEya19kcF9zZXJ2aWNlX3NybmcoZHAsIGlycV9ncnAsIGJ1ZGdldCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTUwNi1cdGlmICh3b3JrX2RvbmUgXHUwMDNjIGJ1ZGdldCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNTE3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo1MTg6c3RhdGljIGlycXJldHVybl90IGF0aDEya19wY2lfZXh0X2ludGVycnVwdF9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmFyZylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNTE5LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NTIwOlx0c3RydWN0IGF0aDEya19leHRfaXJxX2dycCAqaXJxX2dycCA9IGFyZztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NTIxOlx0c3RydWN0IGF0aDEya19iYXNlICphYiA9IGlycV9ncnAtXHUwMDNlYWI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTUyMi1cdGludCBpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNTI2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo1Mjc6XHRhdGgxMmtfZGJnKGlycV9ncnAtXHUwMDNlYWIsIEFUSDEyS19EQkdfUENJLCBcJiMzNDtleHQgaXJxOiVkXFxuXCYjMzQ7LCBpcnEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy01MjgtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy01MzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjU0MDpzdGF0aWMgaW50IGF0aDEya19wY2lfZXh0X2lycV9jb25maWcoc3RydWN0IGF0aDEya19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNTQxLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NTQyOlx0c3RydWN0IGF0aDEya19wY2kgKmFiX3BjaSA9IGF0aDEya19wY2lfcHJpdihhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTU0My1cdGludCBpLCBqLCBuLCByZXQsIG51bV92ZWN0b3JzID0gMDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNTQ0LVx0dTMyIHVzZXJfYmFzZV9kYXRhID0gMCwgYmFzZV92ZWN0b3IgPSAwLCBiYXNlX2lkeDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NTQ1Olx0c3RydWN0IGF0aDEya19leHRfaXJxX2dycCAqaXJxX2dycDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNTQ2LVx0Ym9vbCB0aHJlYWRlZF9uYXBpID0gZmFsc2U7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy01NDktXHRiYXNlX2lkeCA9IEFUSDEyS19QQ0lfSVJRX0NFMF9PRkZTRVQgJiM0MzsgQ0VfQ09VTlRfTUFYO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo1NTA6XHRyZXQgPSBhdGgxMmtfcGNpX2dldF91c2VyX21zaV9hc3NpZ25tZW50KGFiLCBcJiMzNDtEUFwmIzM0OyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNTUxLVx0XHRcdFx0XHRcdCBcdTAwMjZudW1fdmVjdG9ycyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTU1Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NTU3Olx0aXJxID0gYXRoMTJrX3BjaV9nZXRfbXNpX2lycShhYi1cdTAwM2VkZXYsIGJhc2VfdmVjdG9yKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNTU4LVx0aWYgKGlycSBcdTAwM2U9IDApXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy01NzMtXHRcdG5ldGlmX25hcGlfYWRkKGlycV9ncnAtXHUwMDNlbmFwaV9uZGV2LCBcdTAwMjZpcnFfZ3JwLVx1MDAzZW5hcGksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjU3NDpcdFx0XHQgICAgICAgYXRoMTJrX3BjaV9leHRfZ3JwX25hcGlfcG9sbCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTU3NS1cdFx0aWYgKHRocmVhZGVkX25hcGkpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy01OTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjU5NjpcdFx0XHRpcnEgPSBhdGgxMmtfcGNpX2dldF9tc2lfaXJxKGFiLVx1MDAzZWRldiwgdmVjdG9yKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNTk3LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNTk5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo2MDA6XHRcdFx0YXRoMTJrX2RiZyhhYiwgQVRIMTJLX0RCR19QQ0ksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTYwMS1cdFx0XHRcdCAgIFwmIzM0O2lycTolZCBncm91cDolZFxcblwmIzM0OywgaXJxLCBpKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTYwMy1cdFx0XHRpcnFfc2V0X3N0YXR1c19mbGFncyhpcnEsIElSUV9ESVNBQkxFX1VOTEFaWSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjYwNDpcdFx0XHRyZXQgPSByZXF1ZXN0X2lycShpcnEsIGF0aDEya19wY2lfZXh0X2ludGVycnVwdF9oYW5kbGVyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy02MDUtXHRcdFx0XHRcdCAgYWJfcGNpLVx1MDAzZWlycV9mbGFncyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTYwNy1cdFx0XHRpZiAocmV0KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjYwODpcdFx0XHRcdGF0aDEya19lcnIoYWIsIFwmIzM0O2ZhaWxlZCByZXF1ZXN0IGlycSAlZDogJWRcXG5cJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTYwOS1cdFx0XHRcdFx0ICAgdmVjdG9yLCByZXQpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNjEyLVx0XHR9XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjYxMzpcdFx0YXRoMTJrX3BjaV9leHRfZ3JwX2Rpc2FibGUoaXJxX2dycCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTYxNC1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTYyOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NjI5OnN0YXRpYyBpbnQgYXRoMTJrX3BjaV9zZXRfaXJxX2FmZmluaXR5X2hpbnQoc3RydWN0IGF0aDEya19wY2kgKmFiX3BjaSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNjMwLVx0XHRcdFx0XHQgICAgY29uc3Qgc3RydWN0IGNwdW1hc2sgKm0pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy02MzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjYzODpzdGF0aWMgaW50IGF0aDEya19wY2lfY29uZmlnX2lycShzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy02Mzkte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo2NDA6XHRzdHJ1Y3QgYXRoMTJrX3BjaSAqYWJfcGNpID0gYXRoMTJrX3BjaV9wcml2KGFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NjQxOlx0c3RydWN0IGF0aDEya19jZV9waXBlICpjZV9waXBlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy02NDItXHR1MzIgbXNpX2RhdGFfc3RhcnQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy02NDctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjY0ODpcdHJldCA9IGF0aDEya19wY2lfZ2V0X3VzZXJfbXNpX2Fzc2lnbm1lbnQoYWIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTY0OS1cdFx0XHRcdFx0XHQgXCYjMzQ7Q0VcJiMzNDssIFx1MDAyNm1zaV9kYXRhX2NvdW50LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNjU2LVx0Zm9yIChpID0gMCwgbXNpX2RhdGFfaWR4ID0gMDsgaSBcdTAwM2MgYWItXHUwMDNlaHdfcGFyYW1zLVx1MDAzZWNlX2NvdW50OyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo2NTc6XHRcdGlmIChhdGgxMmtfY2VfZ2V0X2F0dHJfZmxhZ3MoYWIsIGkpIFx1MDAyNiBDRV9BVFRSX0RJU19JTlRSKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy02NTgtXHRcdFx0Y29udGludWU7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy02NjAtXHRcdG1zaV9kYXRhID0gKG1zaV9kYXRhX2lkeCAlIG1zaV9kYXRhX2NvdW50KSAmIzQzOyBtc2lfaXJxX3N0YXJ0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo2NjE6XHRcdGlycSA9IGF0aDEya19wY2lfZ2V0X21zaV9pcnEoYWItXHUwMDNlZGV2LCBtc2lfZGF0YSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTY2Mi1cdFx0Y2VfcGlwZSA9IFx1MDAyNmFiLVx1MDAzZWNlLmNlX3BpcGVbaV07XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy02NjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjY2NjpcdFx0SU5JVF9XT1JLKFx1MDAyNmNlX3BpcGUtXHUwMDNlaW50cl93cSwgYXRoMTJrX3BjaV9jZV93b3JrcXVldWUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy02NjctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjY2ODpcdFx0cmV0ID0gcmVxdWVzdF9pcnEoaXJxLCBhdGgxMmtfcGNpX2NlX2ludGVycnVwdF9oYW5kbGVyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy02NjktXHRcdFx0XHQgIGFiX3BjaS1cdTAwM2VpcnFfZmxhZ3MsIGlycV9uYW1lW2lycV9pZHhdLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNjcxLVx0XHRpZiAocmV0KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjY3MjpcdFx0XHRhdGgxMmtfZXJyKGFiLCBcJiMzNDtmYWlsZWQgdG8gcmVxdWVzdCBpcnEgJWQ6ICVkXFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy02NzMtXHRcdFx0XHQgICBpcnFfaWR4LCByZXQpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNjc5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo2ODA6XHRcdGF0aDEya19wY2lfY2VfaXJxX2Rpc2FibGUoYWIsIGkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy02ODEtXHR9XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTY4Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NjgzOlx0cmV0ID0gYXRoMTJrX3BjaV9leHRfaXJxX2NvbmZpZyhhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTY4NC1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy02ODktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjY5MDpzdGF0aWMgdm9pZCBhdGgxMmtfcGNpX2luaXRfcW1pX2NlX2NvbmZpZyhzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy02OTEte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo2OTI6XHRzdHJ1Y3QgYXRoMTJrX3FtaV9jZV9jZmcgKmNmZyA9IFx1MDAyNmFiLVx1MDAzZXFtaS5jZV9jZmc7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTY5My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6Njk0Olx0c3RydWN0IGF0aDEya19wY2kgKmFiX3BjaSA9IGF0aDEya19wY2lfcHJpdihhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTY5NS1cdHN0cnVjdCBwY2lfYnVzICpidXMgPSBhYl9wY2ktXHUwMDNlcGRldi1cdTAwM2VidXM7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy03MDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjcwNDpcdGlmIChhdGgxMmtfZndfZmVhdHVyZV9zdXBwb3J0ZWQoYWIsIEFUSDEyS19GV19GRUFUVVJFX01VTFRJX1FSVFJfSUQpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTcwNS1cdFx0YWJfcGNpLVx1MDAzZXFtaV9pbnN0YW5jZSA9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy03MTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjcxMjpzdGF0aWMgdm9pZCBhdGgxMmtfcGNpX2NlX2lycXNfZW5hYmxlKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTcxMy17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy03MTgtXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBhYi1cdTAwM2Vod19wYXJhbXMtXHUwMDNlY2VfY291bnQ7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjcxOTpcdFx0aWYgKGF0aDEya19jZV9nZXRfYXR0cl9mbGFncyhhYiwgaSkgXHUwMDI2IENFX0FUVFJfRElTX0lOVFIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTcyMC1cdFx0XHRjb250aW51ZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NzIxOlx0XHRhdGgxMmtfcGNpX2NlX2lycV9lbmFibGUoYWIsIGkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy03MjItXHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy03MjQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjcyNTpzdGF0aWMgdm9pZCBhdGgxMmtfcGNpX21zaV9jb25maWcoc3RydWN0IGF0aDEya19wY2kgKmFiX3BjaSwgYm9vbCBlbmFibGUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTcyNi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy03MzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjc0MDpzdGF0aWMgdm9pZCBhdGgxMmtfcGNpX21zaV9lbmFibGUoc3RydWN0IGF0aDEya19wY2kgKmFiX3BjaSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNzQxLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NzQyOlx0YXRoMTJrX3BjaV9tc2lfY29uZmlnKGFiX3BjaSwgdHJ1ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTc0My19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTc0NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NzQ1OnN0YXRpYyB2b2lkIGF0aDEya19wY2lfbXNpX2Rpc2FibGUoc3RydWN0IGF0aDEya19wY2kgKmFiX3BjaSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNzQ2LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NzQ3Olx0YXRoMTJrX3BjaV9tc2lfY29uZmlnKGFiX3BjaSwgZmFsc2UpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy03NDgtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy03NDktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjc1MDpzdGF0aWMgaW50IGF0aDEya19wY2lfbXNpX2FsbG9jKHN0cnVjdCBhdGgxMmtfcGNpICphYl9wY2kpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTc1MS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjc1MjpcdHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIgPSBhYl9wY2ktXHUwMDNlYWI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjc1MzpcdGNvbnN0IHN0cnVjdCBhdGgxMmtfbXNpX2NvbmZpZyAqbXNpX2NvbmZpZyA9IGFiX3BjaS1cdTAwM2Vtc2lfY29uZmlnO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy03NTQtXHRzdHJ1Y3QgbXNpX2Rlc2MgKm1zaV9kZXNjO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNzc3LVx0XHRhYl9wY2ktXHUwMDNlaXJxX2ZsYWdzID0gSVJRRl9TSEFSRUQgfCBJUlFGX05PQkFMQU5DSU5HO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo3Nzg6XHRcdGF0aDEya19kYmcoYWIsIEFUSDEyS19EQkdfUENJLCBcJiMzNDtyZXF1ZXN0IE1TSSBvbmUgdmVjdG9yXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNzc5LVx0fVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy03ODAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjc4MTpcdGF0aDEya19pbmZvKGFiLCBcJiMzNDtNU0kgdmVjdG9yczogJWRcXG5cJiMzNDssIG51bV92ZWN0b3JzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNzgyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo3ODM6XHRhdGgxMmtfcGNpX21zaV9kaXNhYmxlKGFiX3BjaSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTc4NC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTc4Ni1cdGlmICghbXNpX2Rlc2MpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6Nzg3Olx0XHRhdGgxMmtfZXJyKGFiLCBcJiMzNDttc2lfZGVzYyBpcyBOVUxMIVxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTc4OC1cdFx0cmV0ID0gLUVJTlZBTDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTc5NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6Nzk2Olx0YXRoMTJrX2RiZyhhYiwgQVRIMTJLX0RCR19QQ0ksIFwmIzM0O21zaSBiYXNlIGRhdGEgaXMgJWRcXG5cJiMzNDssIGFiX3BjaS1cdTAwM2Vtc2lfZXBfYmFzZV9kYXRhKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNzk3LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtODA2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo4MDc6c3RhdGljIHZvaWQgYXRoMTJrX3BjaV9tc2lfZnJlZShzdHJ1Y3QgYXRoMTJrX3BjaSAqYWJfcGNpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy04MDgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtODExLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo4MTI6c3RhdGljIGludCBhdGgxMmtfcGNpX2NvbmZpZ19tc2lfZGF0YShzdHJ1Y3QgYXRoMTJrX3BjaSAqYWJfcGNpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy04MTMte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtODE3LVx0aWYgKCFtc2lfZGVzYykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo4MTg6XHRcdGF0aDEya19lcnIoYWJfcGNpLVx1MDAzZWFiLCBcJiMzNDttc2lfZGVzYyBpcyBOVUxMIVxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTgxOS1cdFx0cGNpX2ZyZWVfaXJxX3ZlY3RvcnMoYWJfcGNpLVx1MDAzZXBkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtODI0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo4MjU6XHRhdGgxMmtfZGJnKGFiX3BjaS1cdTAwM2VhYiwgQVRIMTJLX0RCR19QQ0ksIFwmIzM0O3BjaSBhZnRlciByZXF1ZXN0X2lycSBtc2lfZXBfYmFzZV9kYXRhICVkXFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy04MjYtXHRcdCAgIGFiX3BjaS1cdTAwM2Vtc2lfZXBfYmFzZV9kYXRhKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTgzMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6ODMxOnN0YXRpYyBpbnQgYXRoMTJrX3BjaV9jbGFpbShzdHJ1Y3QgYXRoMTJrX3BjaSAqYWJfcGNpLCBzdHJ1Y3QgcGNpX2RldiAqcGRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtODMyLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6ODMzOlx0c3RydWN0IGF0aDEya19iYXNlICphYiA9IGFiX3BjaS1cdTAwM2VhYjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtODM0LVx0dTE2IGRldmljZV9pZDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTgzOC1cdGlmIChkZXZpY2VfaWQgIT0gYWJfcGNpLVx1MDAzZWRldl9pZCkgIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6ODM5Olx0XHRhdGgxMmtfZXJyKGFiLCBcJiMzNDtwY2kgZGV2aWNlIGlkIG1pc21hdGNoOiAweCV4IDB4JXhcXG5cJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTg0MC1cdFx0XHQgICBkZXZpY2VfaWQsIGFiX3BjaS1cdTAwM2VkZXZfaWQpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtODQ2LVx0aWYgKHJldCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo4NDc6XHRcdGF0aDEya19lcnIoYWIsIFwmIzM0O2ZhaWxlZCB0byBhc3NpZ24gcGNpIHJlc291cmNlOiAlZFxcblwmIzM0OywgcmV0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtODQ4LVx0XHRnb3RvIG91dDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTg1Mi1cdGlmIChyZXQpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6ODUzOlx0XHRhdGgxMmtfZXJyKGFiLCBcJiMzNDtmYWlsZWQgdG8gZW5hYmxlIHBjaSBkZXZpY2U6ICVkXFxuXCYjMzQ7LCByZXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy04NTQtXHRcdGdvdG8gb3V0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtODU2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo4NTc6XHRyZXQgPSBwY2lfcmVxdWVzdF9yZWdpb24ocGRldiwgQVRIMTJLX1BDSV9CQVJfTlVNLCBcJiMzNDthdGgxMmtfcGNpXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtODU4LVx0aWYgKHJldCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo4NTk6XHRcdGF0aDEya19lcnIoYWIsIFwmIzM0O2ZhaWxlZCB0byByZXF1ZXN0IHBjaSByZWdpb246ICVkXFxuXCYjMzQ7LCByZXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy04NjAtXHRcdGdvdG8gZGlzYWJsZV9kZXZpY2U7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy04NzEtXHRpZiAoIWFiLVx1MDAzZW1lbSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo4NzI6XHRcdGF0aDEya19lcnIoYWIsIFwmIzM0O2ZhaWxlZCB0byBtYXAgcGNpIGJhciAlZFxcblwmIzM0OywgQVRIMTJLX1BDSV9CQVJfTlVNKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtODczLVx0XHRyZXQgPSAtRUlPO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtODc2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo4Nzc6XHRhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX0JPT1QsIFwmIzM0O2Jvb3QgcGNpX21lbSAweCVwXFxuXCYjMzQ7LCBhYi1cdTAwM2VtZW0pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy04NzgtXHRyZXR1cm4gMDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTg4Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6ODg4OnN0YXRpYyB2b2lkIGF0aDEya19wY2lfZnJlZV9yZWdpb24oc3RydWN0IGF0aDEya19wY2kgKmFiX3BjaSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtODg5LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6ODkwOlx0c3RydWN0IGF0aDEya19iYXNlICphYiA9IGFiX3BjaS1cdTAwM2VhYjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtODkxLVx0c3RydWN0IHBjaV9kZXYgKnBjaV9kZXYgPSBhYl9wY2ktXHUwMDNlcGRldjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTg5OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6OTAwOnN0YXRpYyB2b2lkIGF0aDEya19wY2lfYXNwbV9kaXNhYmxlKHN0cnVjdCBhdGgxMmtfcGNpICphYl9wY2kpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTkwMS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjkwMjpcdHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIgPSBhYl9wY2ktXHUwMDNlYWI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTkwMy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTkwNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6OTA3Olx0YXRoMTJrX2RiZyhhYiwgQVRIMTJLX0RCR19QQ0ksIFwmIzM0O3BjaSBsaW5rX2N0bCAweCUwNHggTDBzICVkIEwxICVkXFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy05MDgtXHRcdCAgIGFiX3BjaS1cdTAwM2VsaW5rX2N0bCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTkxOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6OTE5OnN0YXRpYyB2b2lkIGF0aDEya19wY2lfdXBkYXRlX3FydHJfbm9kZV9pZChzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy05MjAte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo5MjE6XHRzdHJ1Y3QgYXRoMTJrX3BjaSAqYWJfcGNpID0gYXRoMTJrX3BjaV9wcml2KGFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtOTIyLVx0dTMyIHJlZztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTkzMi1cdHJlZyA9IFBDSUVfTE9DQUxfUkVHX1FSVFJfTk9ERV9JRChhYikgXHUwMDI2IFdJTkRPV19SQU5HRV9NQVNLO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo5MzM6XHRhdGgxMmtfcGNpX3dyaXRlMzIoYWIsIHJlZywgYWJfcGNpLVx1MDAzZXFtaV9pbnN0YW5jZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTkzNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6OTM1Olx0YXRoMTJrX2RiZyhhYiwgQVRIMTJLX0RCR19QQ0ksIFwmIzM0O3BjaSByZWcgMHgleCBpbnN0YW5jZSAweCV4IHJlYWQgdmFsIDB4JXhcXG5cJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjkzNjpcdFx0ICAgcmVnLCBhYl9wY2ktXHUwMDNlcW1pX2luc3RhbmNlLCBhdGgxMmtfcGNpX3JlYWQzMihhYiwgcmVnKSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTkzNy19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTkzOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6OTM5OnN0YXRpYyB2b2lkIGF0aDEya19wY2lfYXNwbV9yZXN0b3JlKHN0cnVjdCBhdGgxMmtfcGNpICphYl9wY2kpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTk0MC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy05NDgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjk0OTpzdGF0aWMgdm9pZCBhdGgxMmtfcGNpX2NhbmNlbF93b3JrcXVldWUoc3RydWN0IGF0aDEya19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtOTUwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTk1My1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIGFiLVx1MDAzZWh3X3BhcmFtcy1cdTAwM2VjZV9jb3VudDsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6OTU0Olx0XHRzdHJ1Y3QgYXRoMTJrX2NlX3BpcGUgKmNlX3BpcGUgPSBcdTAwMjZhYi1cdTAwM2VjZS5jZV9waXBlW2ldO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy05NTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjk1NjpcdFx0aWYgKGF0aDEya19jZV9nZXRfYXR0cl9mbGFncyhhYiwgaSkgXHUwMDI2IENFX0FUVFJfRElTX0lOVFIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTk1Ny1cdFx0XHRjb250aW51ZTtcbi0tXG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNCAyMDoxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTQ2OAoJCQkJCQkJb3V0cHV0OiAzMAoJCQkJCQkJdGhvdWdodHM6IDQ4OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipXb3J0aEZ1enppbmcgRGVjaXNpb24gZm9yIGF0aDEyayBEcml2ZXIqKgoKT2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzIGBhdGgxMmtgIGRyaXZlciBhbmQgZGV0ZXJtaW5lIGlmIGl0JiMzOTtzIGEgZ29vZCBjYW5kaWRhdGUgZm9yIGZ1enppbmcuIEZpcnN0LCBJIGtub3cgaXQmIzM5O3MgYSBQQ0kvQUhCIGRyaXZlciBkZXNpZ25lZCBzcGVjaWZpY2FsbHkgZm9yIFF1YWxjb21tIFdpLUZpIDcgaGFyZHdhcmUuIFRoYXQmIzM5O3MgYSByZWQgZmxhZyByaWdodCBhd2F5IOKAkyB2ZW5kb3Itc3BlY2lmaWMgZHJpdmVycyBvZnRlbiBoYXZlIHRyaWNreSBkZXBlbmRlbmNpZXMuIExldCBtZSBzZWUuLi4gSSYjMzk7bSBzdXBwb3NlZCB0byBhcHBseSB0aGUgJiMzNDtXSEVOIFRPIFJFVFVSTiBXb3J0aEZ1enppbmc9ZmFsc2UgKE5FR0FUSVZFIENSSVRFUklBKSYjMzQ7IGluc3RydWN0aW9ucy4gU3BlY2lmaWNhbGx5LCBJIG5lZWQgdG8gbG9vayBhdCAmIzM0O1N0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZSYjMzQ7IHNjZW5hcmlvcy4KCkJhc2VkIG9uIG15IHVuZGVyc3RhbmRpbmcgYW5kIHRoaXMgdGV4dCwgYGF0aDEya2AgaXMgKmRlZmluaXRlbHkqIG9uZSBvZiB0aG9zZSBjYXNlcy4gSXQgcmVxdWlyZXMgcGh5c2ljYWwgUXVhbGNvbW0gaGFyZHdhcmUsIHNwZWNpZmljIFBDSWUgY2FyZHMgb3IgQUhCIFNvQ3MsIGFuZCBsaWtlbHkgcGFydGljdWxhciBmaXJtd2FyZSB0aGF0IGlzbiYjMzk7dCByZXBsaWNhdGVkIGluIHN0YW5kYXJkIFFFTVUuIEl0JiMzOTtzIG5vdCBsaWtlIGl0IGhhcyBzb21lIGNsZXZlciBlbXVsYXRpb24gbGF5ZXIuIFNvIGl0JiMzOTtzIGxvb2tpbmcgbGlrZSBpdCYjMzk7cyBpbmhlcmVudGx5IHVucmVhY2hhYmxlIGluIHRoZSB0eXBpY2FsIHN5emthbGxlciBlbnZpcm9ubWVudC4KCkhvbGQgb24sIEkgbmVlZCB0byBiZSBjb21wbGV0ZWx5IHN1cmUuIENvdWxkIGBhdGgxMmtgIG9yLCBtb3JlIHNwZWNpZmljYWxseSwgYSBmdW5jdGlvbiBsaWtlIGBhdGgxMmtfbWFjX3VwZGF0ZV9mcmVxX3JhbmdlYCBiZSBzb21laG93IHRyaWdnZXJlZCB2aWEgYSBkaWZmZXJlbnQgcm91dGUsIGxpa2UgYG1hYzgwMjExX2h3c2ltYCwgYG5sODAyMTFgLCBvciBgY2ZnODAyMTFgPyBJIG5lZWQgdG8gY2hlY2sgdGhlIGNhbGxlcnMgb2YgdGhpcyBmdW5jdGlvbi4gTGV0JiMzOTtzIHNlZS4uLiBsb29raW5nIGF0IHRoZSBjb2RlLCBpdCYjMzk7cyBjYWxsZWQgYnkgYGF0aDEya19tYWNfc2V0dXBfY2hhbm5lbHNfcmF0ZXNgIGFuZCBgYXRoMTJrX3JlZ2RfdXBkYXRlYC4gVGhleSYjMzk7cmUgaW50ZXJuYWwgZnVuY3Rpb25zLCBjYWxsZWQgZHVyaW5nIHRoZSBoYXJkd2FyZSBpbml0aWFsaXphdGlvbiBvciByZWd1bGF0b3J5IHJ1bGVzIHVwZGF0ZXMgZm9yIGFuIGBhdGgxMmtgIGRldmljZSAoYHN0cnVjdCBhdGgxMmsgKmFyYCkuIFRoYXQgbWFrZXMgc2Vuc2Ug4oCTIHRoZSBoYXJkd2FyZSBpdHNlbGYsIG9yIHNvbWV0aGluZyBkaXJlY3RseSB0aWVkIHRvIGl0LCBuZWVkcyB0byBpbml0aWFsaXplIGFuZCB1cGRhdGUgdGhlc2UgdGhpbmdzLgoKR2l2ZW4gdGhhdCBhbmQgdGhlIGZhY3QgdGhhdCBgYXRoMTJrYCBuZWVkcyBzcGVjaWZpYyBRdWFsY29tbSBQQ0kvQUhCIGNoaXBzZXRzLCBhbmQgY2Fubm90IGJlIGluaXRpYWxpemVkIGluIHN0YW5kYXJkIFFFTVUgd2l0aG91dCBwaHlzaWNhbCBQQ0llIGRldmljZXMsIG15IGNvbmNsdXNpb24gaXMgdGhhdCBpdCAqaXMqIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy4gSSBuZWVkIHRvIG1ha2UgKmFic29sdXRlbHkqIHN1cmUgdGhlcmUmIzM5O3Mgbm8gdmlydHVhbCBidXMgb3IgVVNCIGNvbXBvbmVudCBvZiB0aGlzIGRyaXZlciBhcyB3ZWxsLCB0aG91Z2ggaXQgbG9va3MgbGlrZSBpdCYjMzk7cyBhIHNsaW0gY2hhbmNlLiBMZXQgbWUgcXVpY2tseSBjaGVjayB0aGUgZmlsZXMgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYCB0byBiZSBzdXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA0IDIwOjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Y29kZXNlYXJjaC1kaXItaW5kZXg8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0RpciYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZXMmIzM0OzogWwogICAgJiMzNDthY3BpLmMmIzM0OywKICAgICYjMzQ7YWNwaS5oJiMzNDssCiAgICAmIzM0O2FoYi5jJiMzNDssCiAgICAmIzM0O2FoYi5oJiMzNDssCiAgICAmIzM0O2NlLmMmIzM0OywKICAgICYjMzQ7Y2UuaCYjMzQ7LAogICAgJiMzNDtjbW5fZGVmcy5oJiMzNDssCiAgICAmIzM0O2NvcmUuYyYjMzQ7LAogICAgJiMzNDtjb3JlLmgmIzM0OywKICAgICYjMzQ7Y29yZWR1bXAuYyYjMzQ7LAogICAgJiMzNDtjb3JlZHVtcC5oJiMzNDssCiAgICAmIzM0O2RicmluZy5jJiMzNDssCiAgICAmIzM0O2RicmluZy5oJiMzNDssCiAgICAmIzM0O2RlYnVnLmMmIzM0OywKICAgICYjMzQ7ZGVidWcuaCYjMzQ7LAogICAgJiMzNDtkZWJ1Z2ZzLmMmIzM0OywKICAgICYjMzQ7ZGVidWdmcy5oJiMzNDssCiAgICAmIzM0O2RlYnVnZnNfaHR0X3N0YXRzLmMmIzM0OywKICAgICYjMzQ7ZGVidWdmc19odHRfc3RhdHMuaCYjMzQ7LAogICAgJiMzNDtkZWJ1Z2ZzX3N0YS5jJiMzNDssCiAgICAmIzM0O2RlYnVnZnNfc3RhLmgmIzM0OywKICAgICYjMzQ7ZHAuYyYjMzQ7LAogICAgJiMzNDtkcC5oJiMzNDssCiAgICAmIzM0O2RwX2Ntbi5oJiMzNDssCiAgICAmIzM0O2RwX2h0dC5jJiMzNDssCiAgICAmIzM0O2RwX2h0dC5oJiMzNDssCiAgICAmIzM0O2RwX21vbi5jJiMzNDssCiAgICAmIzM0O2RwX21vbi5oJiMzNDssCiAgICAmIzM0O2RwX3BlZXIuYyYjMzQ7LAogICAgJiMzNDtkcF9wZWVyLmgmIzM0OywKICAgICYjMzQ7ZHBfcnguYyYjMzQ7LAogICAgJiMzNDtkcF9yeC5oJiMzNDssCiAgICAmIzM0O2RwX3R4LmMmIzM0OywKICAgICYjMzQ7ZHBfdHguaCYjMzQ7LAogICAgJiMzNDtmdy5jJiMzNDssCiAgICAmIzM0O2Z3LmgmIzM0OywKICAgICYjMzQ7aGFsLmMmIzM0OywKICAgICYjMzQ7aGFsLmgmIzM0OywKICAgICYjMzQ7aGlmLmgmIzM0OywKICAgICYjMzQ7aHRjLmMmIzM0OywKICAgICYjMzQ7aHRjLmgmIzM0OywKICAgICYjMzQ7aHcuaCYjMzQ7LAogICAgJiMzNDttYWMuYyYjMzQ7LAogICAgJiMzNDttYWMuaCYjMzQ7LAogICAgJiMzNDttaGkuYyYjMzQ7LAogICAgJiMzNDttaGkuaCYjMzQ7LAogICAgJiMzNDtwMnAuYyYjMzQ7LAogICAgJiMzNDtwMnAuaCYjMzQ7LAogICAgJiMzNDtwY2kuYyYjMzQ7LAogICAgJiMzNDtwY2kuaCYjMzQ7LAogICAgJiMzNDtwZWVyLmMmIzM0OywKICAgICYjMzQ7cGVlci5oJiMzNDssCiAgICAmIzM0O3FtaS5jJiMzNDssCiAgICAmIzM0O3FtaS5oJiMzNDssCiAgICAmIzM0O3JlZy5jJiMzNDssCiAgICAmIzM0O3JlZy5oJiMzNDssCiAgICAmIzM0O3Rlc3Rtb2RlLmMmIzM0OywKICAgICYjMzQ7dGVzdG1vZGUuaCYjMzQ7LAogICAgJiMzNDt0aGVybWFsLmMmIzM0OywKICAgICYjMzQ7dGhlcm1hbC5oJiMzNDssCiAgICAmIzM0O3RyYWNlLmMmIzM0OywKICAgICYjMzQ7dHJhY2UuaCYjMzQ7LAogICAgJiMzNDt3bWkuYyYjMzQ7LAogICAgJiMzNDt3bWkuaCYjMzQ7LAogICAgJiMzNDt3b3cuYyYjMzQ7LAogICAgJiMzNDt3b3cuaCYjMzQ7CiAgXSwKICAmIzM0O1N1YmRpcnMmIzM0OzogWwogICAgJiMzNDt3aWZpNyYjMzQ7CiAgXQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA0IDIwOjEwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIyOTg0CgkJCQkJCQlvdXRwdXQ6IDExMQoJCQkJCQkJdGhvdWdodHM6IDE2OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipVbnJlYWNoYWJsZSBDb2RlIGluIHRoZSBhdGgxMmsgRHJpdmVyKioKCk9rYXksIHNvIEkmIzM5O3ZlIGJlZW4gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCwgZnJhbmtseSwgaXQmIzM5O3MgYSBkZWFkIGVuZC4gVGhlIGNvZGUgbW9kaWZpZXMgYGF0aDEya19tYWNfdXBkYXRlX2ZyZXFfcmFuZ2VgLCB3aGljaCBpbW1lZGlhdGVseSB0ZWxscyBtZSB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIHRoZSBRdWFsY29tbSBXaS1GaSA3IGRyaXZlciwgKmF0aDEyayouIFRoYXQmIzM5O3MgdGhlIGZpcnN0IHJlZCBmbGFnLiBJIGtub3cgZnJvbSBleHBlcmllbmNlIHRoYXQgYGF0aDEya2AgaXMgdGlnaHRseSBib3VuZCB0byBRdWFsY29tbSYjMzk7cyBzcGVjaWZpYyBoYXJkd2FyZSDigJMgUENJIGFuZCBBSEIgYnVzZXMsIHNwZWNpZmljYWxseS4gRm9yZ2V0IGFib3V0IHNlZWluZyB0aGlzIHRoaW5nIGluIGEgdmlydHVhbCBlbnZpcm9ubWVudC4gVGhlcmXigJlzIG5vIHN1cHBvcnQgZm9yIHZpcnR1YWwgb3IgVVNCIGRldmljZSBlbXVsYXRpb24gd2l0aGluIGBhdGgxMmtgLCBhdCBsZWFzdCBub3QgaW4gYW55IHN0YW5kYXJkIFFFTVUgc2V0dXAgSeKAmXZlIGV2ZXIgc2Vlbi4KClRoZXJlZm9yZSwgc2luY2UgdGhlIG9ubHkgc3VwcG9ydGVkIGhhcmR3YXJlIGlzIFBDSSBhbmQgQUhCIGJhc2VkLCBhbmQgbm8gc3RhbmRhcmQgZnV6emluZyBlbnZpcm9ubWVudHMgYXJlIGJhc2VkIG9uIHRoZXNlLCB0aGlzIG1vZGlmaWVkIGNvZGUgaXMsIHN0cnVjdHVyYWxseSBzcGVha2luZywgdW50b3VjaGFibGUuIEl04oCZcyB1bnJlYWNoYWJsZSBoYXJkd2FyZSBjb2RlIHdpdGhpbiB0aGUgY29udGV4dCBvZiBhbnkgbm9ybWFsIGZ1enppbmcgZWZmb3J0LiBJdCYjMzk7cyBhIHdhc3RlIG9mIHRpbWUgdG8gcHVyc3VlIHRoaXMgYW55IGZ1cnRoZXIsIGdpdmVuIHRoZSBjdXJyZW50IGVudmlyb25tZW50LiBUaW1lIHRvIG1hcmsgdGhpcyBhcyBhICYjMzQ7bm8tZ28mIzM0Oy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDQgMjA6MTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBhdGgxMmtfbWFjX3VwZGF0ZV9mcmVxX3JhbmdlIGluIHRoZSBhdGgxMmsgZHJpdmVyLiBhdGgxMmsgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgZHJpdmVyIGZvciBRdWFsY29tbSBXaS1GaSA3IFBDSWUvQUhCIGhhcmR3YXJlIGRldmljZXMsIHdoaWNoIHJlcXVpcmVzIHBoeXNpY2FsIGhhcmR3YXJlIGFuZCBjYW5ub3QgYmUgZW11bGF0ZWQgb3IgcHJvYmVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChRRU1VL0dDRSksIG1ha2luZyB0aGUgbW9kaWZpZWQgY29kZSBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBhdGgxMmtfbWFjX3VwZGF0ZV9mcmVxX3JhbmdlIGluIHRoZSBhdGgxMmsgZHJpdmVyLiBhdGgxMmsgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgZHJpdmVyIGZvciBRdWFsY29tbSBXaS1GaSA3IFBDSWUvQUhCIGhhcmR3YXJlIGRldmljZXMsIHdoaWNoIHJlcXVpcmVzIHBoeXNpY2FsIGhhcmR3YXJlIGFuZCBjYW5ub3QgYmUgZW11bGF0ZWQgb3IgcHJvYmVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChRRU1VL0dDRSksIG1ha2luZyB0aGUgbW9kaWZpZWQgY29kZSBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNCAyMDoxMDwvdGQ+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+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDktMDRUMjA6MTA6MTAuNDYyMTM3MTlaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMjU2MjIyMjExNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2UsXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGF0aDEya19tYWNfdXBkYXRlX2ZyZXFfcmFuZ2UgaW4gdGhlIGF0aDEyayBkcml2ZXIuIGF0aDEyayBpcyBhIHZlbmRvci1zcGVjaWZpYyBkcml2ZXIgZm9yIFF1YWxjb21tIFdpLUZpIDcgUENJZS9BSEIgaGFyZHdhcmUgZGV2aWNlcywgd2hpY2ggcmVxdWlyZXMgcGh5c2ljYWwgaGFyZHdhcmUgYW5kIGNhbm5vdCBiZSBlbXVsYXRlZCBvciBwcm9iZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgKFFFTVUvR0NFKSwgbWFraW5nIHRoZSBtb2RpZmllZCBjb2RlIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA0VDIwOjEwOjEwLjQ2MjE1MDZaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ5MTUyNTI3OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGQ5MGIwODdiOTFjZWQ1ZWViZjYwOGU3Y2QxNTM3NWY3NDE1YWIyMzdcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIEZyaSBTZXAgNCAyMDoxMDowOSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuY1xcbmluZGV4IDk5YmY1Y2Y3OWQxMDIuLjY1NGM1OGQ3YzFkNWYgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmNcXG5AQCAtMTQxMjUsNyArMTQxMjUsNyBAQCBFWFBPUlRfU1lNQk9MKGF0aDEya19tYWNfb3Bfc2V0X3Jla2V5X2RhdGEpO1xcbiB2b2lkIGF0aDEya19tYWNfdXBkYXRlX2ZyZXFfcmFuZ2Uoc3RydWN0IGF0aDEyayAqYXIsXFxuIFxcdFxcdFxcdFxcdCAgdTMyIGZyZXFfbG93LCB1MzIgZnJlcV9oaWdoKVxcbiB7XFxuLVxcdGlmICghKGZyZXFfbG93IFxcdTAwMjZcXHUwMDI2IGZyZXFfaGlnaCkpXFxuK1xcdGlmICghZnJlcV9sb3cgfHwgZnJlcV9sb3cgXFx1MDAzZT0gZnJlcV9oaWdoKVxcbiBcXHRcXHRyZXR1cm47XFxuIFxcbiBcXHRpZiAoYXItXFx1MDAzZWZyZXFfcmFuZ2Uuc3RhcnRfZnJlcSB8fCBhci1cXHUwMDNlZnJlcV9yYW5nZS5lbmRfZnJlcSkge1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNFQyMDoxMDoxMC45NTQyNzIxMThaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJjb3JlIiwiRHVyYXRpb24iOjMyMDcwMDY0MTk4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBhdGgxMmtfbWFjX3VwZGF0ZV9mcmVxX3JhbmdlIGluIHRoZSBhdGgxMmsgZHJpdmVyLiBhdGgxMmsgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgZHJpdmVyIGZvciBRdWFsY29tbSBXaS1GaSA3IFBDSWUvQUhCIGhhcmR3YXJlIGRldmljZXMsIHdoaWNoIHJlcXVpcmVzIHBoeXNpY2FsIGhhcmR3YXJlIGFuZCBjYW5ub3QgYmUgZW11bGF0ZWQgb3IgcHJvYmVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChRRU1VL0dDRSksIG1ha2luZyB0aGUgbW9kaWZpZWQgY29kZSBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lciBhbmQgc2VjdXJpdHkgZW5naW5lZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGV2YWx1YXRlIHdoZXRoZXIgaXQgd2FycmFudHMgZnV6emluZyB3aXRoIHN5emthbGxlci5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24gaW50ZXJuYWwgYXNzdW1wdGlvbnMuIFlvdSBtdXN0IGFjdGl2ZWx5IHVzZSB5b3VyIGNvZGUgYWNjZXNzXG50b29scyB0byBpbnNwZWN0IHRoZSBhY3R1YWwgc291cmNlIGNvZGUsIGNhbGxlcnMsIGFuZCBzdXJyb3VuZGluZyBjb250ZXh0LlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuMS4gQ09SRSBUUklBR0UgUEhJTE9TT1BIWVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblRoZSBnb2FsIG9mIHBhdGNoIGZ1enppbmcgaXMgdG8gZGlzY292ZXIgY3Jhc2hlcywgcmVncmVzc2lvbnMsIGV4cG9zZWQgbGF0ZW50IGJ1Z3MsXG5hbmQgbmV3bHkgdHJpZ2dlcmVkIGFzc2VydGlvbnMgaW50cm9kdWNlZCBieSB0aGUgcGF0Y2ggc2VyaWVzLlxuXG4tIFJFQUNIQUJJTElUWSBJUyBUSEUgUFJJTUFSWSBHQVRFOlxuICBGdXp6aW5nIGNhbiBvbmx5IGRpc2NvdmVyIGJ1Z3MgaW4gY29kZSB0aGF0IGNhbiBhY3R1YWxseSBleGVjdXRlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkXG4gIGVudmlyb25tZW50cyAoR0NFIG9yIFFFTVUsIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBkZXZpY2VzIGxpa2UgVVNCIGdhZGdldHMsIG5ldGRldiwgdHVuL3RhcCkuXG4gIElmIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSAoc2VlIFNlY3Rpb24gMiksIGl0IE1VU1QgTk9UIGJlIGZ1enplZCxcbiAgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0IGFkZHMgYXNzZXJ0aW9ucyBvciBjb21wbGV4IGxvZ2ljLlxuXG4tIERPIE5PVCBCTElORExZIFRSVVNUIFwiTk8gRlVOQ1RJT05BTCBDSEFOR0VcIiAoTkZDSSkgT1IgXCJSRUZBQ1RPUklOR1wiIENMQUlNUzpcbiAgUGF0Y2ggYXV0aG9ycyByb3V0aW5lbHkgbGFiZWwgY2hhbmdlcyBhcyBcImNsZWFudXBzXCIsIFwicmVmYWN0b3JpbmdzXCIsIG9yIHN0YXRlXG4gIFwiTm8gZnVuY3Rpb25hbCBjaGFuZ2UgaW50ZW5kZWRcIi4gRG8gTk9UIHRha2UgdGhlc2UgY2xhaW1zIGF0IGZhY2UgdmFsdWUuXG4gIENvZGUgcmVmYWN0b3JpbmdzIHRoYXQgcmVhcnJhbmdlIGxvZ2ljLCBpbnRyb2R1Y2UgaGVscGVyIGZ1bmN0aW9ucywgb3IgYWx0ZXIgc3RhdGUgbWFuYWdlbWVudFxuICBpbiBjb3JlIHN1YnN5c3RlbXMgZnJlcXVlbnRseSBpbnRyb2R1Y2Ugc3VidGxlIHNlbWFudGljIHNoaWZ0cyBvciB1bmNvdmVyIGxhdGVudCBrZXJuZWwgYnVncy5cbiAgSWYgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSBpcyBtb2RpZmllZCBvciByZWZhY3RvcmVkLCBpdCBNVVNUIGJlIGZ1enplZC5cblxuLSBORVcgT1IgTU9ESUZJRUQgQVNTRVJUSU9OUyBJTiBSRUFDSEFCTEUgQ09ERSBNVVNUIEJFIEZVWlpFRDpcbiAgV2hlbiBhIHBhdGNoIGludHJvZHVjZXMgb3IgbW9kaWZpZXMgcnVudGltZSBjaGVja3Mgb3IgYXNzZXJ0aW9ucyAoZS5nLiwgV0FSTl9PTiosIFZNX1dBUk5fT04qLFxuICBCVUdfT04qLCBsb2NrZGVwX2Fzc2VydCopIGluIHJlYWNoYWJsZSBjb2RlIHBhdGhzLCBpdCBlbmZvcmNlcyBuZXcgb3Igc3RyaWN0ZXIgaW52YXJpYW50cy5cbiAgRXZlbiBpZiB0aGUgYXV0aG9yIGJlbGlldmVzIHRoZSBpbnZhcmlhbnQgYWx3YXlzIGhvbGRzLCBmdXp6aW5nIGlzIGVzc2VudGlhbCB0byB2ZXJpZnkgd2hldGhlclxuICBhbiB1bnVzdWFsIHNlcXVlbmNlIG9mIG9wZXJhdGlvbnMgY2FuIHZpb2xhdGUgaXQuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4yLiBXSEVOIFRPIFJFVFVSTiBXb3J0aEZ1enppbmc9ZmFsc2UgKE5FR0FUSVZFIENSSVRFUklBKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgT05MWSBJRiBhbGwgbW9kaWZpZWQgY29kZSBmYWxscyBzdHJpY3RseSBpbnRvIG9uZSBvciBtb3JlIG9mIHRoZXNlIGNhdGVnb3JpZXM6XG5cbi0gTm9uLWtlcm5lbCBhbmQgbm9uLWV4ZWN1dGFibGUgY2hhbmdlczpcbiAgKiBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBjb21tZW50cywgb3Igc3BlbGxpbmcgZml4ZXMuXG4gICogVXNlci1zcGFjZSBkaXJlY3Rvcmllcywgc2VsZi10ZXN0cywgc2FtcGxlcywgb3Igc2NyaXB0cyAoZS5nLiwgdG9vbHMvLCBzYW1wbGVzLywgc2NyaXB0cy8sIHVzci8pXG4gICAgdGhhdCBkbyBub3QgYWZmZWN0IHRoZSBjb21waWxlZCBrZXJuZWwgaW1hZ2UgKHZtbGludXgpIG9yIGtlcm5lbCBtb2R1bGVzLlxuICAqIFB1cmVseSBkZWNvcmF0aXZlIGxvZ2dpbmcgKGUuZy4sIG1lc3NhZ2Ugc3RyaW5ncyBpbiBwcl9lcnIsIHByaW50aywgZGV2X2luZm8pIG9yIHRyYWNlcG9pbnRzXG4gICAgdGhhdCBkbyBub3QgYWx0ZXIgY29udHJvbCBmbG93IG9yIGRhdGEgc3RydWN0dXJlcy5cbiAgKiBCdWlsZCBzeXN0ZW0gb3IgS2NvbmZpZyBjaGFuZ2VzIHRoYXQgZG8gbm90IGFsdGVyIGNvbXBpbGVkIEMgbG9naWMuXG4tIFN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZTpcbiAgKiBWZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2hlcywgU21hcnROSUNzLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gICAgaW9uaWMsIGFtZGdwdSkgcmVxdWlyaW5nIHBoeXNpY2FsIEFTSUMvUENJZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gVW5yZWFjaGFibGUgZXhlY3V0aW9uIHBhdGhzOlxuICAqIERyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKC5yZW1vdmUsIC5zaHV0ZG93biwgcGNpX3VucmVnaXN0ZXJfZHJpdmVyKSBleGVjdXRlZCBvbmx5IGR1cmluZ1xuICAgIHBoeXNpY2FsIFBDSSBob3QtdW5wbHVnIG9yIG1hbnVhbCBzeXNmcyBkcml2ZXIgdW5iaW5kaW5nLlxuICAqIENvZGUgcGF0aHMgZXhjbHVzaXZlIHRvIGFyY2hpdGVjdHVyZXMgb3RoZXIgdGhhbiB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjMuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz10cnVlIChQT1NJVElWRSBDUklURVJJQSlcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5SZXR1cm4gV29ydGhGdXp6aW5nPXRydWUgd2hlbmV2ZXIgdGhlIHBhdGNoIHRvdWNoZXMgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSwgaW5jbHVkaW5nOlxuLSBDb3JlIFN1YnN5c3RlbXM6XG4gICogQW55IGxvZ2ljIG1vZGlmaWNhdGlvbnMgaW4gbWVtb3J5IG1hbmFnZW1lbnQgKG1tLyksIHN5bmNocm9uaXphdGlvbi9sb2NraW5nIChrZXJuZWwvbG9ja2luZy8pLFxuICAgIEJQRiwgc2NoZWR1bGVyLCBjb3JlIG5ldHdvcmtpbmcsIFZGUywgb3Igc3lzY2FsbCBoYW5kbGluZy5cbi0gUmVmYWN0b3JpbmdzIGFuZCBDb2RlIENsZWFudXBzOlxuICAqIEFueSByZXN0cnVjdHVyaW5nIG9mIHJlYWNoYWJsZSBkYXRhIHN0cnVjdHVyZXMsIGhlbHBlciBhYnN0cmFjdGlvbnMsIG9yIGFsZ29yaXRobSBmbG93cy5cbi0gUnVudGltZSBBc3NlcnRpb25zIGFuZCBEZWZlbnNpdmUgQ2hlY2tzOlxuICAqIEFueSBpbnRyb2R1Y3Rpb24gb3IgYWx0ZXJhdGlvbiBvZiBhc3NlcnRpb25zIChXQVJOX09OKiwgVk1fV0FSTl9PTiosIEJVR19PTiosIGV0Yy4pIGluIHJlYWNoYWJsZSBwYXRocy5cbi0gUmVhY2hhYmxlIERyaXZlcnMgYW5kIFByb3RvY29sczpcbiAgKiBEcml2ZXJzIGFjY2Vzc2libGUgdmlhIHZpcnR1YWwgYnVzZXMgKHZpcnRpbywgVVNCIGdhZGdldCwgbG9vcGJhY2ssIG5ldGxpbmssIGJpbmRlciwgc29ja2V0cywgZXRjLikuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG40LiBFWFRSQUNUSU5HIEZvY3VzU3ltYm9scyAoUFJFVkVOVElORyBESUxVVElPTilcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5XaGVuIFdvcnRoRnV6emluZz10cnVlLCB5b3UgbXVzdCBleHRyYWN0IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgaW50byBGb2N1c1N5bWJvbHMgdG8gZ3VpZGUgdGhlIGZ1enplcjpcblxuLSBBVk9JRCBVQklRVUlUT1VTIExJRkVDWUNMRSBIT1QtUEFUSFM6XG4gIERvIE5PVCBsaXN0IGdlbmVyaWMsIHViaXF1aXRvdXMgZnVuY3Rpb25zIGNhbGxlZCBieSBhbG1vc3QgZXZlcnkgcHJvZ3JhbSBpbiB0aGUgY29ycHVzXG4gIChpbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0bzogZ2VuZXJhbCBtZW1vcnkgYWxsb2NhdG9ycyBhbmQgZGVhbGxvY2F0b3JzLCBwYWdlIGZhdWx0XG4gIGFuZCB0cmFwIGhhbmRsZXJzLCBvciBjb3JlIHN5bmNocm9uaXphdGlvbiBwcmltaXRpdmVzOyB0aGlzIGlzIG5vdCBhbiBleGhhdXN0aXZlIGxpc3QpLlxuICBMaXN0aW5nIHViaXF1aXRvdXMgZnVuY3Rpb25zIGNhdXNlcyB0aGUgZnV6emVyIHRvIGNsYXNzaWZ5IHRob3VzYW5kcyBvZiB1bnJlbGF0ZWQgdGVzdHMgYXMgXCJmb2N1c2VkXCIsXG4gIHdoaWNoIHNldmVyZWx5IGRpbHV0ZXMgZnV6emluZyBlZmZvcnQgYXdheSBmcm9tIHRoZSBhY3R1YWwgY2hhbmdlcy5cblxuLSBUQVJHRVQgU1BFQ0lGSUMgRkVBVFVSRSBMT0dJQyBBTkQgRU5UUllQT0lOVFM6XG4gIExpc3QgZnVuY3Rpb25zIHRoYXQgc3BlY2lmaWNhbGx5IGltcGxlbWVudCB0aGUgbG9naWMgYmVpbmcgYWRkZWQgb3IgYWx0ZXJlZCwgb3IgZGlyZWN0IEFQSSBlbnRyeXBvaW50c1xuICBmb3IgdGhlIHN1YnN5c3RlbSBmZWF0dXJlIHVuZGVyIHJldmlldy5cblxuLSBIQU5ETElORyBTVEFUSUMgSU5MSU5FIEZVTkNUSU9OUyBJTiBIRUFERVJTICguaCk6XG4gIENvbXBpbGVyLWlubGluZWQgc3RhdGljIGZ1bmN0aW9ucyAoc3VjaCBhcyBzdGF0aWMgaW5saW5lcyBpbiBtbS8qLmggb3IgaW5jbHVkZS9saW51eC8qLmgpIGxhY2tcbiAgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcyBpbiB2bWxpbnV4IGFuZCBjYW5ub3QgYmUgdGFyZ2V0ZWQgZGlyZWN0bHkgYnkgc3ltYm9sIGNvdmVyYWdlIGZpbHRlcnMuXG4gIElmIHRoZSBjaGFuZ2VzIGFyZSBwcmltYXJpbHkgaW4gc3RhdGljIGlubGluZSBoZWxwZXJzLCBpZGVudGlmeSBub24tc3RhdGljLCBmZWF0dXJlLXNwZWNpZmljIGNhbGxlclxuICBmdW5jdGlvbnMgaW4gLmMgZmlsZXMgdGhhdCBleGVyY2lzZSB0aGVtIChhdm9pZGluZyB1YmlxdWl0b3VzIGxpZmVjeWNsZSB3cmFwcGVycykuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG41LiBJREVOVElGWUlORyBFbmFibGVDb25maWdzXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSBjb21waWxlIGFuZCByZWFjaCB0aGUgbW9kaWZpZWQgY29kZTpcbi0gSW5zcGVjdCBLY29uZmlnIGZpbGVzIGFuZCAjaWZkZWYgZ3VhcmRzOyBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbi0gQ2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzIG5lZWRlZC5cbi0gU3RyaXAgYW55ICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IlRhcmdldCBhcmNoaXRlY3R1cmU6IGFtZDY0XG5cbkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGQ5MGIwODdiOTFjZWQ1ZWViZjYwOGU3Y2QxNTM3NWY3NDE1YWIyMzdcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIFNlcCA0IDIwOjEwOjA5IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmNcbmluZGV4IDk5YmY1Y2Y3OWQxMDIuLjY1NGM1OGQ3YzFkNWYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jXG5AQCAtMTQxMjUsNyArMTQxMjUsNyBAQCBFWFBPUlRfU1lNQk9MKGF0aDEya19tYWNfb3Bfc2V0X3Jla2V5X2RhdGEpO1xuIHZvaWQgYXRoMTJrX21hY191cGRhdGVfZnJlcV9yYW5nZShzdHJ1Y3QgYXRoMTJrICphcixcbiBcdFx0XHRcdCAgdTMyIGZyZXFfbG93LCB1MzIgZnJlcV9oaWdoKVxuIHtcbi1cdGlmICghKGZyZXFfbG93IFx1MDAyNlx1MDAyNiBmcmVxX2hpZ2gpKVxuK1x0aWYgKCFmcmVxX2xvdyB8fCBmcmVxX2xvdyBcdTAwM2U9IGZyZXFfaGlnaClcbiBcdFx0cmV0dXJuO1xuIFxuIFx0aWYgKGFyLVx1MDAzZWZyZXFfcmFuZ2Uuc3RhcnRfZnJlcSB8fCBhci1cdTAwM2VmcmVxX3JhbmdlLmVuZF9mcmVxKSB7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNFQyMDoxMDoxMC45NTQyNzQwNDlaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo2NDM3NDY3MjcyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUGF0Y2ggZm9yIEZ1enppbmcgUG90ZW50aWFsKipcblxuT2theSwgbGV0J3MgdGFrZSBhIGxvb2sgYXQgdGhpcyBwYXRjaCBhbmQgZGVjaWRlIGlmIGl0J3Mgd29ydGggdGhlIHRpbWUgdG8gZnV6eiB3aXRoIHN5emthbGxlci4gVGhlIGRpZmYgaXMgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZDsgaXQgc2VlbXMgdG8gYmUgaW4gdGhlIGBhdGgxMmtgIHdpcmVsZXNzIGRyaXZlci4gU3BlY2lmaWNhbGx5LCBpdCdzIGEgY29uZGl0aW9uYWwgY2hlY2sgcmVsYXRlZCB0byBmcmVxdWVuY3kgcmFuZ2VzLiBUaGUgb3JpZ2luYWwgY2hlY2sgd2FzIGBpZiAoIShmcmVxX2xvdyBcdTAwMjZcdTAwMjYgZnJlcV9oaWdoKSlgLCB3aGljaCBoYXMgYmVlbiBjaGFuZ2VkIHRvIGBpZiAoIWZyZXFfbG93IHx8IGZyZXFfbG93IFx1MDAzZT0gZnJlcV9oaWdoKWAuIFRoaXMgc3VnZ2VzdHMgYSBwb3RlbnRpYWwgYnVnIG9yIHZ1bG5lcmFiaWxpdHkgcmVsYXRlZCB0byBmcmVxdWVuY3kgcmFuZ2UgdmFsaWRhdGlvbi4gVGhhdCdzIGEgcmVhc29uYWJsZSBjaGFuZ2UsIGF0IGZpcnN0IGdsYW5jZS5cblxuRmlyc3QsIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgYGF0aDEya2AgKmlzKi4gSSBuZWVkIHRvIGRldGVybWluZSBpZiB0aGlzIGRyaXZlciBpcyBzb21ldGhpbmcgdGhhdCdzIGxpa2VseSB0byBiZSByZWFjaGVkIGluIGEgc3RhbmRhcmQsIHZpcnR1YWxpemVkIGVudmlyb25tZW50LCBsaWtlIFFFTVUgb3IgR29vZ2xlIENvbXB1dGUgRW5naW5lLiBJZiBpdCByZXF1aXJlcyBzcGVjaWFsaXplZCBoYXJkd2FyZSwgdGhhdCBncmVhdGx5IGluY3JlYXNlcyB0aGUgb3ZlcmhlYWQgb2YgZnV6emluZy4gSSdsbCBuZWVkIHRvIGNoZWNrIHRoZSBLY29uZmlnIGFuZCBidXMgdHlwZSBkZWZpbml0aW9ucyBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9gIHRvIGdldCBhIGhhbmRsZSBvbiB0aGlzLCBhbmQgc2VlIHdoYXQgdGhlIGRldmljZSBkZXBlbmRzIG9uLlxuXG5JJ2xsIHVzZSBgZ3JlcHBlcmAgKG9yIGByZWFkLWZpbGVgIGlmIHRoZSBncmVwIGZhaWxzKSB0byBxdWlja2x5IHNjYW4gdGhyb3VnaCB0aGUgY29kZSBiYXNlIGFuZCBjb25maWd1cmF0aW9uIGZpbGVzIHJlbGF0ZWQgdG8gYGF0aDEya2AgdG8gZ2F0aGVyIHRoaXMgaW5mb3JtYXRpb24uIE15IGdvYWwgaXMgdG8gcXVpY2tseSBhc2NlcnRhaW4gdGhlIGFjY2Vzc2liaWxpdHkgb2YgdGhpcyBjb2RlIGZvciBhIHN0YW5kYXJkIGZ1enppbmcgc2V0dXAuIEJhc2VkIG9uIHRoYXQgYXNzZXNzbWVudCwgSSdsbCB0aGVuIGRlY2lkZSBpZiB0aGlzIHBhdGNoIGlzIGEgZ29vZCBjYW5kaWRhdGUgZm9yIHN5emthbGxlci5cblxuXG4iLCJJbnB1dFRva2VucyI6MjkyMCwiT3V0cHV0VG9rZW5zIjo4NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM3NiwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA0VDIwOjEwOjE3LjM5MTc0MzUxMVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjY5ODU0ODQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYXRoMTJrX21hY191cGRhdGVfZnJlcV9yYW5nZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmM9MTQxMjM9RVhQT1JUX1NZTUJPTChhdGgxMmtfbWFjX29wX3NldF9yZWtleV9kYXRhKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jLTE0MTI0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmM6MTQxMjU6dm9pZCBhdGgxMmtfbWFjX3VwZGF0ZV9mcmVxX3JhbmdlKHN0cnVjdCBhdGgxMmsgKmFyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmMtMTQxMjYtXFx0XFx0XFx0XFx0ICB1MzIgZnJlcV9sb3csIHUzMiBmcmVxX2hpZ2gpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jPTE0MjI1PXN0YXRpYyBpbnQgYXRoMTJrX21hY19zZXR1cF9jaGFubmVsc19yYXRlcyhzdHJ1Y3QgYXRoMTJrICphcixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmMtMTQyNzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYzoxNDI3MjpcXHRcXHRhdGgxMmtfbWFjX3VwZGF0ZV9mcmVxX3JhbmdlKGFyLCBmcmVxX2xvdywgZnJlcV9oaWdoKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jLTE0MjczLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYy0xNDMxNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jOjE0MzE3OlxcdFxcdFxcdGF0aDEya19tYWNfdXBkYXRlX2ZyZXFfcmFuZ2UoYXIsIGZyZXFfbG93LCBmcmVxX2hpZ2gpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmMtMTQzMTgtXFx0XFx0XFx0YWgtXFx1MDAzZXVzZV82Z2h6X3JlZ2QgPSB0cnVlO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYy0xNDM3My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jOjE0Mzc0OlxcdFxcdFxcdGF0aDEya19tYWNfdXBkYXRlX2ZyZXFfcmFuZ2UoYXIsIGZyZXFfbG93LCBmcmVxX2hpZ2gpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmMtMTQzNzUtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5oPTIwND1pbnQgYXRoMTJrX21hY19nZXRfZndfc3RhdHMoc3RydWN0IGF0aDEyayAqYXIsIHN0cnVjdCBhdGgxMmtfZndfc3RhdHNfcmVxX3BhcmFtcyAqcGFyYW0pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmg6MjA1OnZvaWQgYXRoMTJrX21hY191cGRhdGVfZnJlcV9yYW5nZShzdHJ1Y3QgYXRoMTJrICphcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5oLTIwNi1cXHRcXHRcXHRcXHQgIHUzMiBmcmVxX2xvdywgdTMyIGZyZXFfaGlnaCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3JlZy5jPTI2OT1pbnQgYXRoMTJrX3JlZ2RfdXBkYXRlKHN0cnVjdCBhdGgxMmsgKmFyLCBib29sIGluaXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3JlZy5jLTMwOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3JlZy5jOjMxMDpcXHRcXHRhdGgxMmtfbWFjX3VwZGF0ZV9mcmVxX3JhbmdlKGFyLCBmcmVxX2xvdywgZnJlcV9oaWdoKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3JlZy5jLTMxMS1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3JlZy5jLTMyMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3JlZy5jOjMyMjpcXHRcXHRhdGgxMmtfbWFjX3VwZGF0ZV9mcmVxX3JhbmdlKGFyLCBmcmVxX2xvdywgZnJlcV9oaWdoKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3JlZy5jLTMyMy1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3JlZy5jLTMyOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3JlZy5jOjMyOTpcXHRcXHRhdGgxMmtfbWFjX3VwZGF0ZV9mcmVxX3JhbmdlKGFyLCBmcmVxX2xvdywgZnJlcV9oaWdoKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3JlZy5jLTMzMC1cXHR9XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA0VDIwOjEwOjE3LjUxODczNTE3NVoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwMTEyMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogNTBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcXG4gICAyOlxcdGNvbmZpZyBBVEgxMktcXG4gICAzOlxcdFxcdHRyaXN0YXRlIFxcXCJRdWFsY29tbSBXaS1GaSA3IHN1cHBvcnQgKGF0aDEyaylcXFwiXFxuICAgNDpcXHRcXHRkZXBlbmRzIG9uIE1BQzgwMjExIFxcdTAwMjZcXHUwMDI2IEhBU19ETUEgXFx1MDAyNlxcdTAwMjYgUENJXFxuICAgNTpcXHRcXHRzZWxlY3QgUUNPTV9RTUlfSEVMUEVSU1xcbiAgIDY6XFx0XFx0c2VsZWN0IE1ISV9CVVNcXG4gICA3OlxcdFxcdHNlbGVjdCBRUlRSXFxuICAgODpcXHRcXHRzZWxlY3QgUVJUUl9NSElcXG4gICA5OlxcdFxcdHNlbGVjdCBQQ0lfUFdSQ1RSTF9QV1JTRVEgaWYgSEFWRV9QV1JDVFJMXFxuICAxMDpcXHRcXHRoZWxwXFxuICAxMTpcXHRcXHQgIEVuYWJsZSBzdXBwb3J0IGZvciBRdWFsY29tbSBUZWNobm9sb2dpZXMgV2ktRmkgNyAoSUVFRVxcbiAgMTI6XFx0XFx0ICA4MDIuMTFiZSkgZmFtaWx5IG9mIGNoaXBzZXRzLCBmb3IgZXhhbXBsZSBXQ043ODUwIGFuZFxcbiAgMTM6XFx0XFx0ICBRQ045Mjc0LlxcbiAgMTQ6XFx0XFxuICAxNTpcXHRcXHQgIElmIHlvdSBjaG9vc2UgdG8gYnVpbGQgYSBtb2R1bGUsIGl0J2xsIGJlIGNhbGxlZCBhdGgxMmsuXFxuICAxNjpcXHRcXG4gIDE3OlxcdGNvbmZpZyBBVEgxMktfQUhCXFxuICAxODpcXHRcXHRib29sIFxcXCJRdWFsY29tbSBhdGgxMmsgQUhCIHN1cHBvcnRcXFwiXFxuICAxOTpcXHRcXHRkZXBlbmRzIG9uIEFUSDEySyBcXHUwMDI2XFx1MDAyNiBSRU1PVEVQUk9DXFxuICAyMDpcXHRcXHRzZWxlY3QgUUNPTV9NRFRfTE9BREVSXFxuICAyMTpcXHRcXHRzZWxlY3QgUUNPTV9QQVNcXG4gIDIyOlxcdFxcdGhlbHBcXG4gIDIzOlxcdFxcdCAgRW5hYmxlIHN1cHBvcnQgZm9yIEF0aDEyayBBSEIgYnVzIGNoaXBzZXRzLCBleGFtcGxlIElQUTUzMzIuXFxuICAyNDpcXHRcXG4gIDI1OlxcdGNvbmZpZyBBVEgxMktfREVCVUdcXG4gIDI2OlxcdFxcdGJvb2wgXFxcImF0aDEyayBkZWJ1Z2dpbmdcXFwiXFxuICAyNzpcXHRcXHRkZXBlbmRzIG9uIEFUSDEyS1xcbiAgMjg6XFx0XFx0aGVscFxcbiAgMjk6XFx0XFx0ICBFbmFibGUgZGVidWcgc3VwcG9ydCwgZm9yIGV4YW1wbGUgZGVidWcgbWVzc2FnZXMgd2hpY2ggbXVzdFxcbiAgMzA6XFx0XFx0ICBiZSBlbmFibGVkIHNlcGFyYXRlbHkgdXNpbmcgdGhlIGRlYnVnX21hc2sgbW9kdWxlIHBhcmFtZXRlci5cXG4gIDMxOlxcdFxcbiAgMzI6XFx0XFx0ICBJZiB1bnN1cmUsIHNheSBZIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGRlYnVnIHByb2JsZW1zLiBCdXQgaWZcXG4gIDMzOlxcdFxcdCAgeW91IHdhbnQgb3B0aW1hbCBwZXJmb3JtYW5jZSBjaG9vc2UgTi5cXG4gIDM0OlxcdFxcbiAgMzU6XFx0Y29uZmlnIEFUSDEyS19ERUJVR0ZTXFxuICAzNjpcXHRcXHRib29sIFxcXCJRdWFsY29tbSBhdGgxMmsgZGVidWdmcyBzdXBwb3J0XFxcIlxcbiAgMzc6XFx0XFx0ZGVwZW5kcyBvbiBBVEgxMksgXFx1MDAyNlxcdTAwMjYgTUFDODAyMTFfREVCVUdGU1xcbiAgMzg6XFx0XFx0aGVscFxcbiAgMzk6XFx0XFx0ICBFbmFibGUgYXRoMTJrIGRlYnVnZnMgc3VwcG9ydFxcbiAgNDA6XFx0XFxuICA0MTpcXHRcXHQgIElmIHVuc3VyZSwgc2F5IFkgdG8gbWFrZSBpdCBlYXNpZXIgdG8gZGVidWcgcHJvYmxlbXMuIEJ1dCBpZlxcbiAgNDI6XFx0XFx0ICB5b3Ugd2FudCBvcHRpbWFsIHBlcmZvcm1hbmNlIGNob29zZSBOLlxcbiAgNDM6XFx0XFxuICA0NDpcXHRjb25maWcgQVRIMTJLX1RSQUNJTkdcXG4gIDQ1OlxcdFxcdGJvb2wgXFxcImF0aDEyayB0cmFjaW5nIHN1cHBvcnRcXFwiXFxuICA0NjpcXHRcXHRkZXBlbmRzIG9uIEFUSDEySyBcXHUwMDI2XFx1MDAyNiBFVkVOVF9UUkFDSU5HXFxuICA0NzpcXHRcXHRoZWxwXFxuICA0ODpcXHRcXHQgIEVuYWJsZSBhdGgxMmsgdHJhY2luZyBpbmZyYXN0cnVjdHVyZS5cXG4gIDQ5OlxcdFxcbiAgNTA6XFx0XFx0ICBJZiB1bnN1cmUsIHNheSBZIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGRlYnVnIHByb2JsZW1zLiBCdXQgaWZcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDRUMjA6MTA6MTcuNTE4ODUxMzM1WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6NDIyOTQ2ODUzOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIGF0aDEyaydzIFZpcnR1YWxpemF0aW9uIEZlYXNpYmlsaXR5KipcblxuT2theSwgc28gYGF0aDEya2Ag4oCTIHRoYXQncyB0aGUgUXVhbGNvbW0gV2ktRmkgNyBkcml2ZXIsIHNwZWNpZmljYWxseSBmb3IgdGhlIFdDTjc4NTAgYW5kIFFDTjkyNzQsIGRlYWxpbmcgd2l0aCBQQ0kgYW5kIEFIQiBpbnRlcmZhY2VzLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgY2FuIEkgZXZlbiAqdG91Y2gqIHRoaXMgdGhpbmcgaW4gYSBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBsaWtlIFFFTVUgb3IgR29vZ2xlIENvbXB1dGUgRW5naW5lP1xuXG5UaGUgZHJpdmVyIGlzIGNsZWFybHkgdGllZCB0byB0aGUgaGFyZHdhcmU6IGl0J3MgYSBQQ0kvQUhCIGRyaXZlciBmb3IgdGhlc2Ugc3BlY2lmaWMgUXVhbGNvbW0gV2ktRmkgNyBjYXJkcy4gU28sIEkgbmVlZCB0byBmaWd1cmUgb3V0IGlmIHRoZXJlJ3MgYW55IGNoYW5jZSBvZiBlbXVsYXRpb24sIG9yIGlmIGl0J3Mgc3RyaWN0bHkgZGVwZW5kZW50IG9uIGhhdmluZyB0aGUgcGh5c2ljYWwgUXVhbGNvbW0gaGFyZHdhcmUsIHRoZSBmaXJtd2FyZSwgYW5kIHRoYXQgTUhJIGJ1cyBjb25uZWN0aW9uLlxuXG5UaGUgY3JpdGVyaWEgSSdtIHVzaW5nIHN0YXRlIHRoYXQgaWYgc29tZXRoaW5nJ3Mgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlLCBsaWtlIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIEdQVSBkcml2ZXJzICh0aGluayBtbHhzdywgcGRzX2NvcmUsIHFlZCwgaW9uaWMsIGFtZGdwdSksIGFuZCAqZXNwZWNpYWxseSogZHJpdmVycyB0aGF0IHJlcXVpcmUgdGhlIGFjdHVhbCBBU0lDL1BDSWUgY2FyZHMgdGhhdCBRRU1VIGRvZXNuJ3QgZW11bGF0ZSwgdGhlbiBpdCdzIGEgbm8tZ28gZm9yIFdvcnRoRnV6emluZy5cblxuSSdtIHRoaW5raW5nLCBcIndoYXQgaGFyZHdhcmUgZG9lcyBhdGgxMmsgKmFjdHVhbGx5KiBzdXBwb3J0P1wiIEl0J3MgUXVhbGNvbW0gV2ktRmkgNyBkZXZpY2VzIHVzaW5nIFBDSWUvQUhCLiBPa2F5LCBzbyBub3cgSSBuZWVkIHRvIGRldGVybWluZSBpZiBzdGFuZGFyZCBRRU1VIG9yIEdDRSBvZmZlciBhbnl0aGluZyBsaWtlIGFuIGVtdWxhdGVkIGF0aDEyayBkZXZpY2UuIEFuZCB0aGUgYW5zd2VyIGlzIGxpa2VseSBuby4gUUVNVSBnZW5lcmFsbHkgaGFzIG90aGVyIG9wdGlvbnMsIGxpa2UgbWFjODAyMTFfaHdzaW0sIHZpcnRpby1uZXQsIGUxMDAwLCBydGw4MTM5LCBvciBldmVuIFVTQiBnYWRnZXQgV2ktRmkgZGV2aWNlcywgYnV0IGBhdGgxMmtgIGlzIHNwZWNpZmljYWxseSBQQ0kvQUhCLlxuXG5MZXQncyBkcmlsbCBkb3duIGFuZCBjb25maXJtIGJ5IGV4YW1pbmluZyBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuY2AgYW5kIGBhaGIuY2AgdG8gc2VlIGlmIHRoYXQgcmVpbmZvcmNlcyB0aGUgaGFyZHdhcmUgZGVwZW5kZW5jaWVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1NDEzLCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzUxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciIsInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA0VDIwOjEwOjIxLjc0ODMyMjcxM1oiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NzgwMzY0OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJhdGgxMmtfXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxMDU4IGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTM4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6Mzk6c3RhdGljIHN0cnVjdCBhdGgxMmtfcGNpX2RyaXZlciAqYXRoMTJrX3BjaV9mYW1pbHlfZHJpdmVyc1tBVEgxMktfREVWSUNFX0ZBTUlMWV9NQVhdO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NDA6c3RhdGljIGNvbnN0IHN0cnVjdCBhdGgxMmtfbXNpX2NvbmZpZyBtc2lfY29uZmlnX29uZV9tc2kgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy00MS1cXHQudG90YWxfdmVjdG9ycyA9IDEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy00Mi1cXHQudG90YWxfdXNlcnMgPSA0LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NDM6XFx0LnVzZXJzID0gKHN0cnVjdCBhdGgxMmtfbXNpX3VzZXJbXSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNDQtXFx0XFx0eyAubmFtZSA9IFxcXCJNSElcXFwiLCAubnVtX3ZlY3RvcnMgPSAzLCAuYmFzZV92ZWN0b3IgPSAwIH0sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jPTUxPXN0YXRpYyBjb25zdCBjaGFyICppcnFfbmFtZVtBVEgxMktfSVJRX05VTV9NQVhdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0xMDktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoxMTA6c3RhdGljIHZvaWQgYXRoMTJrX3BjaV9zZWxlY3Rfd2luZG93KHN0cnVjdCBhdGgxMmtfcGNpICphYl9wY2ksIHUzMiBvZmZzZXQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0xMTEte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MTEyOlxcdHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIgPSBhYl9wY2ktXFx1MDAzZWFiO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMTEzLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0xMzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoxMzE6c3RhdGljIHZvaWQgYXRoMTJrX3BjaV9zZWxlY3Rfc3RhdGljX3dpbmRvdyhzdHJ1Y3QgYXRoMTJrX3BjaSAqYWJfcGNpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMTMyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMTQ3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MTQ4OnN0YXRpYyB1MzIgYXRoMTJrX3BjaV9nZXRfd2luZG93X3N0YXJ0KHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0xNDktXFx0XFx0XFx0XFx0ICAgICAgIHUzMiBvZmZzZXQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0xNTAte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MTUxOlxcdHN0cnVjdCBhdGgxMmtfcGNpICphYl9wY2kgPSBhdGgxMmtfcGNpX3ByaXYoYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMTUyLVxcdHUzMiB3aW5kb3dfc3RhcnQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTE2NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjE2NjpzdGF0aWMgaW5saW5lIGJvb2wgYXRoMTJrX3BjaV9pc19vZmZzZXRfd2l0aGluX21oaV9yZWdpb24odTMyIG9mZnNldClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTE2Ny17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTE3MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjE3MTpzdGF0aWMgdm9pZCBhdGgxMmtfcGNpX3Jlc3RvcmVfd2luZG93KHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0xNzIte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MTczOlxcdHN0cnVjdCBhdGgxMmtfcGNpICphYl9wY2kgPSBhdGgxMmtfcGNpX3ByaXYoYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMTc0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0xODMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoxODQ6c3RhdGljIHZvaWQgYXRoMTJrX3BjaV9zb2NfZ2xvYmFsX3Jlc2V0KHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0xODUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0xODctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoxODg6XFx0dmFsID0gYXRoMTJrX3BjaV9yZWFkMzIoYWIsIFBDSUVfU09DX0dMT0JBTF9SRVNFVCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0xODktXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTE5MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjE5MjpcXHRhdGgxMmtfcGNpX3dyaXRlMzIoYWIsIFBDSUVfU09DX0dMT0JBTF9SRVNFVCwgdmFsKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTE5My1cXHQvKiBGbHVzaCB0aGUgcG9zdGVkIHdyaXRlIHRvIHRoZSBkZXZpY2UgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjE5NDpcXHRhdGgxMmtfcGNpX3JlYWQzMihhYiwgUENJRV9TT0NfR0xPQkFMX1JFU0VUKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTE5NS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMjAyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjAzOlxcdGF0aDEya19wY2lfd3JpdGUzMihhYiwgUENJRV9TT0NfR0xPQkFMX1JFU0VULCB2YWwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMjA0LVxcdC8qIEZsdXNoIHRoZSBwb3N0ZWQgd3JpdGUgdG8gdGhlIGRldmljZSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjA1OlxcdGF0aDEya19wY2lfcmVhZDMyKGFiLCBQQ0lFX1NPQ19HTE9CQUxfUkVTRVQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMjA2LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yMDgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoyMDk6XFx0dmFsID0gYXRoMTJrX3BjaV9yZWFkMzIoYWIsIFBDSUVfU09DX0dMT0JBTF9SRVNFVCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yMTAtXFx0aWYgKHZhbCA9PSAweGZmZmZmZmZmKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjExOlxcdFxcdGF0aDEya193YXJuKGFiLCBcXFwibGluayBkb3duIGVycm9yIGR1cmluZyBnbG9iYWwgcmVzZXRcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMjEyLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yMTUtXFx0ICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoyMTY6XFx0YXRoMTJrX3BjaV9yZXN0b3JlX3dpbmRvdyhhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yMTctfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMjE4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjE5OnN0YXRpYyB2b2lkIGF0aDEya19wY2lfY2xlYXJfZGJnX3JlZ2lzdGVycyhzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMjIwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMjIzLVxcdC8qIHJlYWQgY29va2llICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoyMjQ6XFx0dmFsID0gYXRoMTJrX3BjaV9yZWFkMzIoYWIsIFBDSUVfUTZfQ09PS0lFX0FERFIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjI1OlxcdGF0aDEya19kYmcoYWIsIEFUSDEyS19EQkdfUENJLCBcXFwiY29va2llOjB4JXhcXFxcblxcXCIsIHZhbCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yMjYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoyMjc6XFx0dmFsID0gYXRoMTJrX3BjaV9yZWFkMzIoYWIsIFdMQU9OX1dBUk1fU1dfRU5UUlkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjI4OlxcdGF0aDEya19kYmcoYWIsIEFUSDEyS19EQkdfUENJLCBcXFwiV0xBT05fV0FSTV9TV19FTlRSWSAweCV4XFxcXG5cXFwiLCB2YWwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMjI5LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yMzUtXFx0ICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoyMzY6XFx0YXRoMTJrX3BjaV93cml0ZTMyKGFiLCBXTEFPTl9XQVJNX1NXX0VOVFJZLCAwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTIzNy1cXHRtZGVsYXkoMTApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMjM4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjM5OlxcdHZhbCA9IGF0aDEya19wY2lfcmVhZDMyKGFiLCBXTEFPTl9XQVJNX1NXX0VOVFJZKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjI0MDpcXHRhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX1BDSSwgXFxcIldMQU9OX1dBUk1fU1dfRU5UUlkgMHgleFxcXFxuXFxcIiwgdmFsKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTI0MS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMjQ0LVxcdCAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjQ1OlxcdHZhbCA9IGF0aDEya19wY2lfcmVhZDMyKGFiLCBXTEFPTl9TT0NfUkVTRVRfQ0FVU0VfUkVHKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjI0NjpcXHRhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX1BDSSwgXFxcInNvYyByZXNldCBjYXVzZTolZFxcXFxuXFxcIiwgdmFsKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTI0Ny19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yNDgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoyNDk6c3RhdGljIHZvaWQgYXRoMTJrX3BjaV9lbmFibGVfbHRzc20oc3RydWN0IGF0aDEya19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTI1MC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTI1My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjI1NDpcXHR2YWwgPSBhdGgxMmtfcGNpX3JlYWQzMihhYiwgUENJRV9QQ0lFX1BBUkZfTFRTU00pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMjU1LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yNjAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoyNjE6XFx0XFx0YXRoMTJrX3BjaV93cml0ZTMyKGFiLCBQQ0lFX1BDSUVfUEFSRl9MVFNTTSwgUEFSTV9MVFNTTV9WQUxVRSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoyNjI6XFx0XFx0dmFsID0gYXRoMTJrX3BjaV9yZWFkMzIoYWIsIFBDSUVfUENJRV9QQVJGX0xUU1NNKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTI2My1cXHR9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yNjQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoyNjU6XFx0YXRoMTJrX2RiZyhhYiwgQVRIMTJLX0RCR19QQ0ksIFxcXCJwY2kgbHRzc20gMHgleFxcXFxuXFxcIiwgdmFsKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTI2Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjI2NzpcXHR2YWwgPSBhdGgxMmtfcGNpX3JlYWQzMihhYiwgR0NDX0dDQ19QQ0lFX0hPVF9SU1QoYWIpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTI2OC1cXHR2YWwgfD0gR0NDX0dDQ19QQ0lFX0hPVF9SU1RfVkFMO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjY5OlxcdGF0aDEya19wY2lfd3JpdGUzMihhYiwgR0NDX0dDQ19QQ0lFX0hPVF9SU1QoYWIpLCB2YWwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjcwOlxcdHZhbCA9IGF0aDEya19wY2lfcmVhZDMyKGFiLCBHQ0NfR0NDX1BDSUVfSE9UX1JTVChhYikpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMjcxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjcyOlxcdGF0aDEya19kYmcoYWIsIEFUSDEyS19EQkdfUENJLCBcXFwicGNpIHBjaWVfaG90X3JzdCAweCV4XFxcXG5cXFwiLCB2YWwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMjczLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yNzYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoyNzc6c3RhdGljIHZvaWQgYXRoMTJrX3BjaV9jbGVhcl9hbGxfaW50cnMoc3RydWN0IGF0aDEya19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTI3OC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTI4My1cXHQgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjI4NDpcXHRhdGgxMmtfcGNpX3dyaXRlMzIoYWIsIFBDSUVfUENJRV9JTlRfQUxMX0NMRUFSLCBQQ0lFX0lOVF9DTEVBUl9BTEwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMjg1LX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTI4Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjI4NzpzdGF0aWMgdm9pZCBhdGgxMmtfcGNpX3NldF93bGFvbl9wd3JfY3RybChzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMjg4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMjkwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjkxOlxcdHZhbCA9IGF0aDEya19wY2lfcmVhZDMyKGFiLCBXTEFPTl9RRlBST01fUFdSX0NUUkxfUkVHKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTI5Mi1cXHR2YWwgXFx1MDAyNj0gflFGUFJPTV9QV1JfQ1RSTF9WREQ0QkxPV19NQVNLO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MjkzOlxcdGF0aDEya19wY2lfd3JpdGUzMihhYiwgV0xBT05fUUZQUk9NX1BXUl9DVFJMX1JFRywgdmFsKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTI5NC19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yOTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoyOTY6c3RhdGljIHZvaWQgYXRoMTJrX3BjaV9mb3JjZV93YWtlKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yOTcte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6Mjk4OlxcdGF0aDEya19wY2lfd3JpdGUzMihhYiwgUENJRV9TT0NfV0FLRV9QQ0lFX0xPQ0FMX1JFRywgMSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0yOTktXFx0bWRlbGF5KDUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0zMDEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzozMDI6c3RhdGljIHZvaWQgYXRoMTJrX3BjaV9zd19yZXNldChzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiLCBib29sIHBvd2VyX29uKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMzAzLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTMwNC1cXHRpZiAocG93ZXJfb24pIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjMwNTpcXHRcXHRhdGgxMmtfcGNpX2VuYWJsZV9sdHNzbShhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzozMDY6XFx0XFx0YXRoMTJrX3BjaV9jbGVhcl9hbGxfaW50cnMoYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MzA3OlxcdFxcdGF0aDEya19wY2lfc2V0X3dsYW9uX3B3cl9jdHJsKGFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTMwOC1cXHR9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0zMDktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzozMTA6XFx0YXRoMTJrX21oaV9jbGVhcl92ZWN0b3IoYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MzExOlxcdGF0aDEya19wY2lfY2xlYXJfZGJnX3JlZ2lzdGVycyhhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzozMTI6XFx0YXRoMTJrX3BjaV9zb2NfZ2xvYmFsX3Jlc2V0KGFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjMxMzpcXHRhdGgxMmtfbWhpX3NldF9taGljdHJsX3Jlc2V0KGFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTMxNC19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0zMTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzozMTY6c3RhdGljIHZvaWQgYXRoMTJrX3BjaV9mcmVlX2V4dF9pcnEoc3RydWN0IGF0aDEya19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTMxNy17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTMyMC1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVRIMTJLX0VYVF9JUlFfR1JQX05VTV9NQVg7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MzIxOlxcdFxcdHN0cnVjdCBhdGgxMmtfZXh0X2lycV9ncnAgKmlycV9ncnAgPSBcXHUwMDI2YWItXFx1MDAzZWV4dF9pcnFfZ3JwW2ldO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMzIyLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0zMzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzozMzE6c3RhdGljIHZvaWQgYXRoMTJrX3BjaV9mcmVlX2lycShzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMzMyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMzM1LVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBhYi1cXHUwMDNlaHdfcGFyYW1zLVxcdTAwM2VjZV9jb3VudDsgaSsrKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzozMzY6XFx0XFx0aWYgKGF0aDEya19jZV9nZXRfYXR0cl9mbGFncyhhYiwgaSkgXFx1MDAyNiBDRV9BVFRSX0RJU19JTlRSKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMzM3LVxcdFxcdFxcdGNvbnRpbnVlO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0zNDEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzozNDI6XFx0YXRoMTJrX3BjaV9mcmVlX2V4dF9pcnEoYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMzQzLX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTM0NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjM0NTpzdGF0aWMgdm9pZCBhdGgxMmtfcGNpX2NlX2lycV9lbmFibGUoc3RydWN0IGF0aDEya19iYXNlICphYiwgdTE2IGNlX2lkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMzQ2LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjM0NzpcXHRzdHJ1Y3QgYXRoMTJrX3BjaSAqYWJfcGNpID0gYXRoMTJrX3BjaV9wcml2KGFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTM0OC1cXHR1MzIgaXJxX2lkeDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMzU5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6MzYwOnN0YXRpYyB2b2lkIGF0aDEya19wY2lfY2VfaXJxX2Rpc2FibGUoc3RydWN0IGF0aDEya19iYXNlICphYiwgdTE2IGNlX2lkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMzYxLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjM2MjpcXHRzdHJ1Y3QgYXRoMTJrX3BjaSAqYWJfcGNpID0gYXRoMTJrX3BjaV9wcml2KGFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTM2My1cXHR1MzIgaXJxX2lkeDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMzc0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6Mzc1OnN0YXRpYyB2b2lkIGF0aDEya19wY2lfY2VfaXJxc19kaXNhYmxlKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0zNzYte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0zODEtXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIGFiLVxcdTAwM2Vod19wYXJhbXMtXFx1MDAzZWNlX2NvdW50OyBpKyspIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjM4MjpcXHRcXHRpZiAoYXRoMTJrX2NlX2dldF9hdHRyX2ZsYWdzKGFiLCBpKSBcXHUwMDI2IENFX0FUVFJfRElTX0lOVFIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0zODMtXFx0XFx0XFx0Y29udGludWU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzozODQ6XFx0XFx0YXRoMTJrX3BjaV9jZV9pcnFfZGlzYWJsZShhYiwgaSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0zODUtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0zODctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzozODg6c3RhdGljIHZvaWQgYXRoMTJrX3BjaV9zeW5jX2NlX2lycXMoc3RydWN0IGF0aDEya19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTM4OS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTM5My1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgYWItXFx1MDAzZWh3X3BhcmFtcy1cXHUwMDNlY2VfY291bnQ7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6Mzk0OlxcdFxcdGlmIChhdGgxMmtfY2VfZ2V0X2F0dHJfZmxhZ3MoYWIsIGkpIFxcdTAwMjYgQ0VfQVRUUl9ESVNfSU5UUilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTM5NS1cXHRcXHRcXHRjb250aW51ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNDAxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NDAyOnN0YXRpYyB2b2lkIGF0aDEya19wY2lfY2Vfd29ya3F1ZXVlKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTQwMy17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo0MDQ6XFx0c3RydWN0IGF0aDEya19jZV9waXBlICpjZV9waXBlID0gZnJvbV93b3JrKGNlX3BpcGUsIHdvcmssIGludHJfd3EpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNDA1LVxcdGludCBpcnFfaWR4ID0gQVRIMTJLX1BDSV9JUlFfQ0UwX09GRlNFVCArIGNlX3BpcGUtXFx1MDAzZXBpcGVfbnVtO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNDA2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NDA3OlxcdGF0aDEya19jZV9wZXJfZW5naW5lX3NlcnZpY2UoY2VfcGlwZS1cXHUwMDNlYWIsIGNlX3BpcGUtXFx1MDAzZXBpcGVfbnVtKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTQwOC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNDExLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NDEyOnN0YXRpYyBpcnFyZXR1cm5fdCBhdGgxMmtfcGNpX2NlX2ludGVycnVwdF9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmFyZylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTQxMy17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo0MTQ6XFx0c3RydWN0IGF0aDEya19jZV9waXBlICpjZV9waXBlID0gYXJnO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NDE1OlxcdHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIgPSBjZV9waXBlLVxcdTAwM2VhYjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTQxNi1cXHRpbnQgaXJxX2lkeCA9IEFUSDEyS19QQ0lfSVJRX0NFMF9PRkZTRVQgKyBjZV9waXBlLVxcdTAwM2VwaXBlX251bTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNDMwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NDMxOnN0YXRpYyB2b2lkIGF0aDEya19wY2lfZXh0X2dycF9kaXNhYmxlKHN0cnVjdCBhdGgxMmtfZXh0X2lycV9ncnAgKmlycV9ncnApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy00MzIte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NDMzOlxcdHN0cnVjdCBhdGgxMmtfcGNpICphYl9wY2kgPSBhdGgxMmtfcGNpX3ByaXYoaXJxX2dycC1cXHUwMDNlYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNDM0LVxcdGludCBpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy00NDUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo0NDY6c3RhdGljIHZvaWQgX19hdGgxMmtfcGNpX2V4dF9pcnFfZGlzYWJsZShzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNDQ3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNDUzLVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBBVEgxMktfRVhUX0lSUV9HUlBfTlVNX01BWDsgaSsrKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo0NTQ6XFx0XFx0c3RydWN0IGF0aDEya19leHRfaXJxX2dycCAqaXJxX2dycCA9IFxcdTAwMjZhYi1cXHUwMDNlZXh0X2lycV9ncnBbaV07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy00NTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo0NTY6XFx0XFx0YXRoMTJrX3BjaV9leHRfZ3JwX2Rpc2FibGUoaXJxX2dycCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy00NTctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTQ2NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjQ2NjpzdGF0aWMgdm9pZCBhdGgxMmtfcGNpX2V4dF9ncnBfZW5hYmxlKHN0cnVjdCBhdGgxMmtfZXh0X2lycV9ncnAgKmlycV9ncnApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy00Njcte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NDY4OlxcdHN0cnVjdCBhdGgxMmtfcGNpICphYl9wY2kgPSBhdGgxMmtfcGNpX3ByaXYoaXJxX2dycC1cXHUwMDNlYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNDY5LVxcdGludCBpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy00ODAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo0ODE6c3RhdGljIHZvaWQgYXRoMTJrX3BjaV9zeW5jX2V4dF9pcnFzKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy00ODIte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy00ODUtXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIEFUSDEyS19FWFRfSVJRX0dSUF9OVU1fTUFYOyBpKyspIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjQ4NjpcXHRcXHRzdHJ1Y3QgYXRoMTJrX2V4dF9pcnFfZ3JwICppcnFfZ3JwID0gXFx1MDAyNmFiLVxcdTAwM2VleHRfaXJxX2dycFtpXTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTQ4Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNDk0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NDk1OnN0YXRpYyBpbnQgYXRoMTJrX3BjaV9leHRfZ3JwX25hcGlfcG9sbChzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksIGludCBidWRnZXQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy00OTYte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NDk3OlxcdHN0cnVjdCBhdGgxMmtfZXh0X2lycV9ncnAgKmlycV9ncnAgPSBjb250YWluZXJfb2YobmFwaSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjQ5ODpcXHRcXHRcXHRcXHRcXHRcXHRzdHJ1Y3QgYXRoMTJrX2V4dF9pcnFfZ3JwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNDk5LVxcdFxcdFxcdFxcdFxcdFxcdG5hcGkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NTAwOlxcdHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIgPSBpcnFfZ3JwLVxcdTAwM2VhYjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjUwMTpcXHRzdHJ1Y3QgYXRoMTJrX2RwICpkcCA9IGF0aDEya19hYl90b19kcChhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy01MDItXFx0aW50IHdvcmtfZG9uZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNTA0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NTA1OlxcdHdvcmtfZG9uZSA9IGF0aDEya19kcF9zZXJ2aWNlX3NybmcoZHAsIGlycV9ncnAsIGJ1ZGdldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy01MDYtXFx0aWYgKHdvcmtfZG9uZSBcXHUwMDNjIGJ1ZGdldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy01MTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo1MTg6c3RhdGljIGlycXJldHVybl90IGF0aDEya19wY2lfZXh0X2ludGVycnVwdF9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmFyZylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTUxOS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo1MjA6XFx0c3RydWN0IGF0aDEya19leHRfaXJxX2dycCAqaXJxX2dycCA9IGFyZztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjUyMTpcXHRzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiID0gaXJxX2dycC1cXHUwMDNlYWI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy01MjItXFx0aW50IGk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTUyNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjUyNzpcXHRhdGgxMmtfZGJnKGlycV9ncnAtXFx1MDAzZWFiLCBBVEgxMktfREJHX1BDSSwgXFxcImV4dCBpcnE6JWRcXFxcblxcXCIsIGlycSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy01MjgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTUzOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjU0MDpzdGF0aWMgaW50IGF0aDEya19wY2lfZXh0X2lycV9jb25maWcoc3RydWN0IGF0aDEya19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTU0MS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo1NDI6XFx0c3RydWN0IGF0aDEya19wY2kgKmFiX3BjaSA9IGF0aDEya19wY2lfcHJpdihhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy01NDMtXFx0aW50IGksIGosIG4sIHJldCwgbnVtX3ZlY3RvcnMgPSAwO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNTQ0LVxcdHUzMiB1c2VyX2Jhc2VfZGF0YSA9IDAsIGJhc2VfdmVjdG9yID0gMCwgYmFzZV9pZHg7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo1NDU6XFx0c3RydWN0IGF0aDEya19leHRfaXJxX2dycCAqaXJxX2dycDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTU0Ni1cXHRib29sIHRocmVhZGVkX25hcGkgPSBmYWxzZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNTQ5LVxcdGJhc2VfaWR4ID0gQVRIMTJLX1BDSV9JUlFfQ0UwX09GRlNFVCArIENFX0NPVU5UX01BWDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjU1MDpcXHRyZXQgPSBhdGgxMmtfcGNpX2dldF91c2VyX21zaV9hc3NpZ25tZW50KGFiLCBcXFwiRFBcXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNTUxLVxcdFxcdFxcdFxcdFxcdFxcdCBcXHUwMDI2bnVtX3ZlY3RvcnMsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTU1Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjU1NzpcXHRpcnEgPSBhdGgxMmtfcGNpX2dldF9tc2lfaXJxKGFiLVxcdTAwM2VkZXYsIGJhc2VfdmVjdG9yKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTU1OC1cXHRpZiAoaXJxIFxcdTAwM2U9IDApXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTU3My1cXHRcXHRuZXRpZl9uYXBpX2FkZChpcnFfZ3JwLVxcdTAwM2VuYXBpX25kZXYsIFxcdTAwMjZpcnFfZ3JwLVxcdTAwM2VuYXBpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NTc0OlxcdFxcdFxcdCAgICAgICBhdGgxMmtfcGNpX2V4dF9ncnBfbmFwaV9wb2xsKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTU3NS1cXHRcXHRpZiAodGhyZWFkZWRfbmFwaSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNTk1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NTk2OlxcdFxcdFxcdGlycSA9IGF0aDEya19wY2lfZ2V0X21zaV9pcnEoYWItXFx1MDAzZWRldiwgdmVjdG9yKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTU5Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNTk5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NjAwOlxcdFxcdFxcdGF0aDEya19kYmcoYWIsIEFUSDEyS19EQkdfUENJLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNjAxLVxcdFxcdFxcdFxcdCAgIFxcXCJpcnE6JWQgZ3JvdXA6JWRcXFxcblxcXCIsIGlycSwgaSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTYwMy1cXHRcXHRcXHRpcnFfc2V0X3N0YXR1c19mbGFncyhpcnEsIElSUV9ESVNBQkxFX1VOTEFaWSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo2MDQ6XFx0XFx0XFx0cmV0ID0gcmVxdWVzdF9pcnEoaXJxLCBhdGgxMmtfcGNpX2V4dF9pbnRlcnJ1cHRfaGFuZGxlcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTYwNS1cXHRcXHRcXHRcXHRcXHQgIGFiX3BjaS1cXHUwMDNlaXJxX2ZsYWdzLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy02MDctXFx0XFx0XFx0aWYgKHJldCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NjA4OlxcdFxcdFxcdFxcdGF0aDEya19lcnIoYWIsIFxcXCJmYWlsZWQgcmVxdWVzdCBpcnEgJWQ6ICVkXFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNjA5LVxcdFxcdFxcdFxcdFxcdCAgIHZlY3RvciwgcmV0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNjEyLVxcdFxcdH1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjYxMzpcXHRcXHRhdGgxMmtfcGNpX2V4dF9ncnBfZGlzYWJsZShpcnFfZ3JwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTYxNC1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTYyOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjYyOTpzdGF0aWMgaW50IGF0aDEya19wY2lfc2V0X2lycV9hZmZpbml0eV9oaW50KHN0cnVjdCBhdGgxMmtfcGNpICphYl9wY2ksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy02MzAtXFx0XFx0XFx0XFx0XFx0ICAgIGNvbnN0IHN0cnVjdCBjcHVtYXNrICptKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy02MzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo2Mzg6c3RhdGljIGludCBhdGgxMmtfcGNpX2NvbmZpZ19pcnEoc3RydWN0IGF0aDEya19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTYzOS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo2NDA6XFx0c3RydWN0IGF0aDEya19wY2kgKmFiX3BjaSA9IGF0aDEya19wY2lfcHJpdihhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo2NDE6XFx0c3RydWN0IGF0aDEya19jZV9waXBlICpjZV9waXBlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNjQyLVxcdHUzMiBtc2lfZGF0YV9zdGFydDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNjQ3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NjQ4OlxcdHJldCA9IGF0aDEya19wY2lfZ2V0X3VzZXJfbXNpX2Fzc2lnbm1lbnQoYWIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy02NDktXFx0XFx0XFx0XFx0XFx0XFx0IFxcXCJDRVxcXCIsIFxcdTAwMjZtc2lfZGF0YV9jb3VudCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNjU2LVxcdGZvciAoaSA9IDAsIG1zaV9kYXRhX2lkeCA9IDA7IGkgXFx1MDAzYyBhYi1cXHUwMDNlaHdfcGFyYW1zLVxcdTAwM2VjZV9jb3VudDsgaSsrKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo2NTc6XFx0XFx0aWYgKGF0aDEya19jZV9nZXRfYXR0cl9mbGFncyhhYiwgaSkgXFx1MDAyNiBDRV9BVFRSX0RJU19JTlRSKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNjU4LVxcdFxcdFxcdGNvbnRpbnVlO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy02NjAtXFx0XFx0bXNpX2RhdGEgPSAobXNpX2RhdGFfaWR4ICUgbXNpX2RhdGFfY291bnQpICsgbXNpX2lycV9zdGFydDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjY2MTpcXHRcXHRpcnEgPSBhdGgxMmtfcGNpX2dldF9tc2lfaXJxKGFiLVxcdTAwM2VkZXYsIG1zaV9kYXRhKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTY2Mi1cXHRcXHRjZV9waXBlID0gXFx1MDAyNmFiLVxcdTAwM2VjZS5jZV9waXBlW2ldO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy02NjUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo2NjY6XFx0XFx0SU5JVF9XT1JLKFxcdTAwMjZjZV9waXBlLVxcdTAwM2VpbnRyX3dxLCBhdGgxMmtfcGNpX2NlX3dvcmtxdWV1ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy02NjctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo2Njg6XFx0XFx0cmV0ID0gcmVxdWVzdF9pcnEoaXJxLCBhdGgxMmtfcGNpX2NlX2ludGVycnVwdF9oYW5kbGVyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNjY5LVxcdFxcdFxcdFxcdCAgYWJfcGNpLVxcdTAwM2VpcnFfZmxhZ3MsIGlycV9uYW1lW2lycV9pZHhdLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy02NzEtXFx0XFx0aWYgKHJldCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NjcyOlxcdFxcdFxcdGF0aDEya19lcnIoYWIsIFxcXCJmYWlsZWQgdG8gcmVxdWVzdCBpcnEgJWQ6ICVkXFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNjczLVxcdFxcdFxcdFxcdCAgIGlycV9pZHgsIHJldCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTY3OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjY4MDpcXHRcXHRhdGgxMmtfcGNpX2NlX2lycV9kaXNhYmxlKGFiLCBpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTY4MS1cXHR9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy02ODItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo2ODM6XFx0cmV0ID0gYXRoMTJrX3BjaV9leHRfaXJxX2NvbmZpZyhhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy02ODQtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNjg5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NjkwOnN0YXRpYyB2b2lkIGF0aDEya19wY2lfaW5pdF9xbWlfY2VfY29uZmlnKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy02OTEte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NjkyOlxcdHN0cnVjdCBhdGgxMmtfcW1pX2NlX2NmZyAqY2ZnID0gXFx1MDAyNmFiLVxcdTAwM2VxbWkuY2VfY2ZnO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNjkzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6Njk0OlxcdHN0cnVjdCBhdGgxMmtfcGNpICphYl9wY2kgPSBhdGgxMmtfcGNpX3ByaXYoYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNjk1LVxcdHN0cnVjdCBwY2lfYnVzICpidXMgPSBhYl9wY2ktXFx1MDAzZXBkZXYtXFx1MDAzZWJ1cztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNzAzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NzA0OlxcdGlmIChhdGgxMmtfZndfZmVhdHVyZV9zdXBwb3J0ZWQoYWIsIEFUSDEyS19GV19GRUFUVVJFX01VTFRJX1FSVFJfSUQpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy03MDUtXFx0XFx0YWJfcGNpLVxcdTAwM2VxbWlfaW5zdGFuY2UgPVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy03MTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo3MTI6c3RhdGljIHZvaWQgYXRoMTJrX3BjaV9jZV9pcnFzX2VuYWJsZShzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNzEzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNzE4LVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBhYi1cXHUwMDNlaHdfcGFyYW1zLVxcdTAwM2VjZV9jb3VudDsgaSsrKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo3MTk6XFx0XFx0aWYgKGF0aDEya19jZV9nZXRfYXR0cl9mbGFncyhhYiwgaSkgXFx1MDAyNiBDRV9BVFRSX0RJU19JTlRSKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNzIwLVxcdFxcdFxcdGNvbnRpbnVlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NzIxOlxcdFxcdGF0aDEya19wY2lfY2VfaXJxX2VuYWJsZShhYiwgaSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy03MjItXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy03MjQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo3MjU6c3RhdGljIHZvaWQgYXRoMTJrX3BjaV9tc2lfY29uZmlnKHN0cnVjdCBhdGgxMmtfcGNpICphYl9wY2ksIGJvb2wgZW5hYmxlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNzI2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNzM5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NzQwOnN0YXRpYyB2b2lkIGF0aDEya19wY2lfbXNpX2VuYWJsZShzdHJ1Y3QgYXRoMTJrX3BjaSAqYWJfcGNpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNzQxLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjc0MjpcXHRhdGgxMmtfcGNpX21zaV9jb25maWcoYWJfcGNpLCB0cnVlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTc0My19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy03NDQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo3NDU6c3RhdGljIHZvaWQgYXRoMTJrX3BjaV9tc2lfZGlzYWJsZShzdHJ1Y3QgYXRoMTJrX3BjaSAqYWJfcGNpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNzQ2LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjc0NzpcXHRhdGgxMmtfcGNpX21zaV9jb25maWcoYWJfcGNpLCBmYWxzZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy03NDgtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNzQ5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NzUwOnN0YXRpYyBpbnQgYXRoMTJrX3BjaV9tc2lfYWxsb2Moc3RydWN0IGF0aDEya19wY2kgKmFiX3BjaSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTc1MS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo3NTI6XFx0c3RydWN0IGF0aDEya19iYXNlICphYiA9IGFiX3BjaS1cXHUwMDNlYWI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo3NTM6XFx0Y29uc3Qgc3RydWN0IGF0aDEya19tc2lfY29uZmlnICptc2lfY29uZmlnID0gYWJfcGNpLVxcdTAwM2Vtc2lfY29uZmlnO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNzU0LVxcdHN0cnVjdCBtc2lfZGVzYyAqbXNpX2Rlc2M7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTc3Ny1cXHRcXHRhYl9wY2ktXFx1MDAzZWlycV9mbGFncyA9IElSUUZfU0hBUkVEIHwgSVJRRl9OT0JBTEFOQ0lORztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjc3ODpcXHRcXHRhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX1BDSSwgXFxcInJlcXVlc3QgTVNJIG9uZSB2ZWN0b3JcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNzc5LVxcdH1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTc4MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjc4MTpcXHRhdGgxMmtfaW5mbyhhYiwgXFxcIk1TSSB2ZWN0b3JzOiAlZFxcXFxuXFxcIiwgbnVtX3ZlY3RvcnMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNzgyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6NzgzOlxcdGF0aDEya19wY2lfbXNpX2Rpc2FibGUoYWJfcGNpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTc4NC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNzg2LVxcdGlmICghbXNpX2Rlc2MpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjc4NzpcXHRcXHRhdGgxMmtfZXJyKGFiLCBcXFwibXNpX2Rlc2MgaXMgTlVMTCFcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtNzg4LVxcdFxcdHJldCA9IC1FSU5WQUw7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTc5NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjc5NjpcXHRhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX1BDSSwgXFxcIm1zaSBiYXNlIGRhdGEgaXMgJWRcXFxcblxcXCIsIGFiX3BjaS1cXHUwMDNlbXNpX2VwX2Jhc2VfZGF0YSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy03OTctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTgwNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjgwNzpzdGF0aWMgdm9pZCBhdGgxMmtfcGNpX21zaV9mcmVlKHN0cnVjdCBhdGgxMmtfcGNpICphYl9wY2kpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy04MDgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy04MTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo4MTI6c3RhdGljIGludCBhdGgxMmtfcGNpX2NvbmZpZ19tc2lfZGF0YShzdHJ1Y3QgYXRoMTJrX3BjaSAqYWJfcGNpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtODEzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtODE3LVxcdGlmICghbXNpX2Rlc2MpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjgxODpcXHRcXHRhdGgxMmtfZXJyKGFiX3BjaS1cXHUwMDNlYWIsIFxcXCJtc2lfZGVzYyBpcyBOVUxMIVxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy04MTktXFx0XFx0cGNpX2ZyZWVfaXJxX3ZlY3RvcnMoYWJfcGNpLVxcdTAwM2VwZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtODI0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6ODI1OlxcdGF0aDEya19kYmcoYWJfcGNpLVxcdTAwM2VhYiwgQVRIMTJLX0RCR19QQ0ksIFxcXCJwY2kgYWZ0ZXIgcmVxdWVzdF9pcnEgbXNpX2VwX2Jhc2VfZGF0YSAlZFxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTgyNi1cXHRcXHQgICBhYl9wY2ktXFx1MDAzZW1zaV9lcF9iYXNlX2RhdGEpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy04MzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo4MzE6c3RhdGljIGludCBhdGgxMmtfcGNpX2NsYWltKHN0cnVjdCBhdGgxMmtfcGNpICphYl9wY2ksIHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtODMyLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjgzMzpcXHRzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiID0gYWJfcGNpLVxcdTAwM2VhYjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTgzNC1cXHR1MTYgZGV2aWNlX2lkO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy04MzgtXFx0aWYgKGRldmljZV9pZCAhPSBhYl9wY2ktXFx1MDAzZWRldl9pZCkgIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjgzOTpcXHRcXHRhdGgxMmtfZXJyKGFiLCBcXFwicGNpIGRldmljZSBpZCBtaXNtYXRjaDogMHgleCAweCV4XFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtODQwLVxcdFxcdFxcdCAgIGRldmljZV9pZCwgYWJfcGNpLVxcdTAwM2VkZXZfaWQpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy04NDYtXFx0aWYgKHJldCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6ODQ3OlxcdFxcdGF0aDEya19lcnIoYWIsIFxcXCJmYWlsZWQgdG8gYXNzaWduIHBjaSByZXNvdXJjZTogJWRcXFxcblxcXCIsIHJldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy04NDgtXFx0XFx0Z290byBvdXQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTg1Mi1cXHRpZiAocmV0KSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo4NTM6XFx0XFx0YXRoMTJrX2VycihhYiwgXFxcImZhaWxlZCB0byBlbmFibGUgcGNpIGRldmljZTogJWRcXFxcblxcXCIsIHJldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy04NTQtXFx0XFx0Z290byBvdXQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTg1Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjg1NzpcXHRyZXQgPSBwY2lfcmVxdWVzdF9yZWdpb24ocGRldiwgQVRIMTJLX1BDSV9CQVJfTlVNLCBcXFwiYXRoMTJrX3BjaVxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtODU4LVxcdGlmIChyZXQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjg1OTpcXHRcXHRhdGgxMmtfZXJyKGFiLCBcXFwiZmFpbGVkIHRvIHJlcXVlc3QgcGNpIHJlZ2lvbjogJWRcXFxcblxcXCIsIHJldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy04NjAtXFx0XFx0Z290byBkaXNhYmxlX2RldmljZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtODcxLVxcdGlmICghYWItXFx1MDAzZW1lbSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6ODcyOlxcdFxcdGF0aDEya19lcnIoYWIsIFxcXCJmYWlsZWQgdG8gbWFwIHBjaSBiYXIgJWRcXFxcblxcXCIsIEFUSDEyS19QQ0lfQkFSX05VTSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy04NzMtXFx0XFx0cmV0ID0gLUVJTztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtODc2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6ODc3OlxcdGF0aDEya19kYmcoYWIsIEFUSDEyS19EQkdfQk9PVCwgXFxcImJvb3QgcGNpX21lbSAweCVwXFxcXG5cXFwiLCBhYi1cXHUwMDNlbWVtKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTg3OC1cXHRyZXR1cm4gMDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtODg3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6ODg4OnN0YXRpYyB2b2lkIGF0aDEya19wY2lfZnJlZV9yZWdpb24oc3RydWN0IGF0aDEya19wY2kgKmFiX3BjaSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTg4OS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo4OTA6XFx0c3RydWN0IGF0aDEya19iYXNlICphYiA9IGFiX3BjaS1cXHUwMDNlYWI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy04OTEtXFx0c3RydWN0IHBjaV9kZXYgKnBjaV9kZXYgPSBhYl9wY2ktXFx1MDAzZXBkZXY7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTg5OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjkwMDpzdGF0aWMgdm9pZCBhdGgxMmtfcGNpX2FzcG1fZGlzYWJsZShzdHJ1Y3QgYXRoMTJrX3BjaSAqYWJfcGNpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtOTAxLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjkwMjpcXHRzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiID0gYWJfcGNpLVxcdTAwM2VhYjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTkwMy1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtOTA2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6OTA3OlxcdGF0aDEya19kYmcoYWIsIEFUSDEyS19EQkdfUENJLCBcXFwicGNpIGxpbmtfY3RsIDB4JTA0eCBMMHMgJWQgTDEgJWRcXFxcblxcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy05MDgtXFx0XFx0ICAgYWJfcGNpLVxcdTAwM2VsaW5rX2N0bCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtOTE4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6OTE5OnN0YXRpYyB2b2lkIGF0aDEya19wY2lfdXBkYXRlX3FydHJfbm9kZV9pZChzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtOTIwLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjkyMTpcXHRzdHJ1Y3QgYXRoMTJrX3BjaSAqYWJfcGNpID0gYXRoMTJrX3BjaV9wcml2KGFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTkyMi1cXHR1MzIgcmVnO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy05MzItXFx0cmVnID0gUENJRV9MT0NBTF9SRUdfUVJUUl9OT0RFX0lEKGFiKSBcXHUwMDI2IFdJTkRPV19SQU5HRV9NQVNLO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6OTMzOlxcdGF0aDEya19wY2lfd3JpdGUzMihhYiwgcmVnLCBhYl9wY2ktXFx1MDAzZXFtaV9pbnN0YW5jZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy05MzQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo5MzU6XFx0YXRoMTJrX2RiZyhhYiwgQVRIMTJLX0RCR19QQ0ksIFxcXCJwY2kgcmVnIDB4JXggaW5zdGFuY2UgMHgleCByZWFkIHZhbCAweCV4XFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6OTM2OlxcdFxcdCAgIHJlZywgYWJfcGNpLVxcdTAwM2VxbWlfaW5zdGFuY2UsIGF0aDEya19wY2lfcmVhZDMyKGFiLCByZWcpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTkzNy19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy05MzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzo5Mzk6c3RhdGljIHZvaWQgYXRoMTJrX3BjaV9hc3BtX3Jlc3RvcmUoc3RydWN0IGF0aDEya19wY2kgKmFiX3BjaSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTk0MC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTk0OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjk0OTpzdGF0aWMgdm9pZCBhdGgxMmtfcGNpX2NhbmNlbF93b3JrcXVldWUoc3RydWN0IGF0aDEya19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTk1MC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTk1My1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgYWItXFx1MDAzZWh3X3BhcmFtcy1cXHUwMDNlY2VfY291bnQ7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM6OTU0OlxcdFxcdHN0cnVjdCBhdGgxMmtfY2VfcGlwZSAqY2VfcGlwZSA9IFxcdTAwMjZhYi1cXHUwMDNlY2UuY2VfcGlwZVtpXTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTk1NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjk1NjpcXHRcXHRpZiAoYXRoMTJrX2NlX2dldF9hdHRyX2ZsYWdzKGFiLCBpKSBcXHUwMDI2IENFX0FUVFJfRElTX0lOVFIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy05NTctXFx0XFx0XFx0Y29udGludWU7XFxuLS1cXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDRUMjA6MTA6MjEuNzk2MTI5ODIxWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MTAyNTg3MTcwOTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqV29ydGhGdXp6aW5nIERlY2lzaW9uIGZvciBhdGgxMmsgRHJpdmVyKipcblxuT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMgYGF0aDEya2AgZHJpdmVyIGFuZCBkZXRlcm1pbmUgaWYgaXQncyBhIGdvb2QgY2FuZGlkYXRlIGZvciBmdXp6aW5nLiBGaXJzdCwgSSBrbm93IGl0J3MgYSBQQ0kvQUhCIGRyaXZlciBkZXNpZ25lZCBzcGVjaWZpY2FsbHkgZm9yIFF1YWxjb21tIFdpLUZpIDcgaGFyZHdhcmUuIFRoYXQncyBhIHJlZCBmbGFnIHJpZ2h0IGF3YXkg4oCTIHZlbmRvci1zcGVjaWZpYyBkcml2ZXJzIG9mdGVuIGhhdmUgdHJpY2t5IGRlcGVuZGVuY2llcy4gTGV0IG1lIHNlZS4uLiBJJ20gc3VwcG9zZWQgdG8gYXBwbHkgdGhlIFwiV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPWZhbHNlIChORUdBVElWRSBDUklURVJJQSlcIiBpbnN0cnVjdGlvbnMuIFNwZWNpZmljYWxseSwgSSBuZWVkIHRvIGxvb2sgYXQgXCJTdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaGFyZHdhcmVcIiBzY2VuYXJpb3MuXG5cbkJhc2VkIG9uIG15IHVuZGVyc3RhbmRpbmcgYW5kIHRoaXMgdGV4dCwgYGF0aDEya2AgaXMgKmRlZmluaXRlbHkqIG9uZSBvZiB0aG9zZSBjYXNlcy4gSXQgcmVxdWlyZXMgcGh5c2ljYWwgUXVhbGNvbW0gaGFyZHdhcmUsIHNwZWNpZmljIFBDSWUgY2FyZHMgb3IgQUhCIFNvQ3MsIGFuZCBsaWtlbHkgcGFydGljdWxhciBmaXJtd2FyZSB0aGF0IGlzbid0IHJlcGxpY2F0ZWQgaW4gc3RhbmRhcmQgUUVNVS4gSXQncyBub3QgbGlrZSBpdCBoYXMgc29tZSBjbGV2ZXIgZW11bGF0aW9uIGxheWVyLiBTbyBpdCdzIGxvb2tpbmcgbGlrZSBpdCdzIGluaGVyZW50bHkgdW5yZWFjaGFibGUgaW4gdGhlIHR5cGljYWwgc3l6a2FsbGVyIGVudmlyb25tZW50LlxuXG5Ib2xkIG9uLCBJIG5lZWQgdG8gYmUgY29tcGxldGVseSBzdXJlLiBDb3VsZCBgYXRoMTJrYCBvciwgbW9yZSBzcGVjaWZpY2FsbHksIGEgZnVuY3Rpb24gbGlrZSBgYXRoMTJrX21hY191cGRhdGVfZnJlcV9yYW5nZWAgYmUgc29tZWhvdyB0cmlnZ2VyZWQgdmlhIGEgZGlmZmVyZW50IHJvdXRlLCBsaWtlIGBtYWM4MDIxMV9od3NpbWAsIGBubDgwMjExYCwgb3IgYGNmZzgwMjExYD8gSSBuZWVkIHRvIGNoZWNrIHRoZSBjYWxsZXJzIG9mIHRoaXMgZnVuY3Rpb24uIExldCdzIHNlZS4uLiBsb29raW5nIGF0IHRoZSBjb2RlLCBpdCdzIGNhbGxlZCBieSBgYXRoMTJrX21hY19zZXR1cF9jaGFubmVsc19yYXRlc2AgYW5kIGBhdGgxMmtfcmVnZF91cGRhdGVgLiBUaGV5J3JlIGludGVybmFsIGZ1bmN0aW9ucywgY2FsbGVkIGR1cmluZyB0aGUgaGFyZHdhcmUgaW5pdGlhbGl6YXRpb24gb3IgcmVndWxhdG9yeSBydWxlcyB1cGRhdGVzIGZvciBhbiBgYXRoMTJrYCBkZXZpY2UgKGBzdHJ1Y3QgYXRoMTJrICphcmApLiBUaGF0IG1ha2VzIHNlbnNlIOKAkyB0aGUgaGFyZHdhcmUgaXRzZWxmLCBvciBzb21ldGhpbmcgZGlyZWN0bHkgdGllZCB0byBpdCwgbmVlZHMgdG8gaW5pdGlhbGl6ZSBhbmQgdXBkYXRlIHRoZXNlIHRoaW5ncy5cblxuR2l2ZW4gdGhhdCBhbmQgdGhlIGZhY3QgdGhhdCBgYXRoMTJrYCBuZWVkcyBzcGVjaWZpYyBRdWFsY29tbSBQQ0kvQUhCIGNoaXBzZXRzLCBhbmQgY2Fubm90IGJlIGluaXRpYWxpemVkIGluIHN0YW5kYXJkIFFFTVUgd2l0aG91dCBwaHlzaWNhbCBQQ0llIGRldmljZXMsIG15IGNvbmNsdXNpb24gaXMgdGhhdCBpdCAqaXMqIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy4gSSBuZWVkIHRvIG1ha2UgKmFic29sdXRlbHkqIHN1cmUgdGhlcmUncyBubyB2aXJ0dWFsIGJ1cyBvciBVU0IgY29tcG9uZW50IG9mIHRoaXMgZHJpdmVyIGFzIHdlbGwsIHRob3VnaCBpdCBsb29rcyBsaWtlIGl0J3MgYSBzbGltIGNoYW5jZS4gTGV0IG1lIHF1aWNrbHkgY2hlY2sgdGhlIGZpbGVzIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2AgdG8gYmUgc3VyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjE0NjgsIk91dHB1dFRva2VucyI6MzAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0ODksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDRUMjA6MTA6MzIuMDU0ODQ5NzQ5WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiY29kZXNlYXJjaC1kaXItaW5kZXgiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDg1MDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJEaXJcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIkZpbGVzXCI6IFtcbiAgICBcImFjcGkuY1wiLFxuICAgIFwiYWNwaS5oXCIsXG4gICAgXCJhaGIuY1wiLFxuICAgIFwiYWhiLmhcIixcbiAgICBcImNlLmNcIixcbiAgICBcImNlLmhcIixcbiAgICBcImNtbl9kZWZzLmhcIixcbiAgICBcImNvcmUuY1wiLFxuICAgIFwiY29yZS5oXCIsXG4gICAgXCJjb3JlZHVtcC5jXCIsXG4gICAgXCJjb3JlZHVtcC5oXCIsXG4gICAgXCJkYnJpbmcuY1wiLFxuICAgIFwiZGJyaW5nLmhcIixcbiAgICBcImRlYnVnLmNcIixcbiAgICBcImRlYnVnLmhcIixcbiAgICBcImRlYnVnZnMuY1wiLFxuICAgIFwiZGVidWdmcy5oXCIsXG4gICAgXCJkZWJ1Z2ZzX2h0dF9zdGF0cy5jXCIsXG4gICAgXCJkZWJ1Z2ZzX2h0dF9zdGF0cy5oXCIsXG4gICAgXCJkZWJ1Z2ZzX3N0YS5jXCIsXG4gICAgXCJkZWJ1Z2ZzX3N0YS5oXCIsXG4gICAgXCJkcC5jXCIsXG4gICAgXCJkcC5oXCIsXG4gICAgXCJkcF9jbW4uaFwiLFxuICAgIFwiZHBfaHR0LmNcIixcbiAgICBcImRwX2h0dC5oXCIsXG4gICAgXCJkcF9tb24uY1wiLFxuICAgIFwiZHBfbW9uLmhcIixcbiAgICBcImRwX3BlZXIuY1wiLFxuICAgIFwiZHBfcGVlci5oXCIsXG4gICAgXCJkcF9yeC5jXCIsXG4gICAgXCJkcF9yeC5oXCIsXG4gICAgXCJkcF90eC5jXCIsXG4gICAgXCJkcF90eC5oXCIsXG4gICAgXCJmdy5jXCIsXG4gICAgXCJmdy5oXCIsXG4gICAgXCJoYWwuY1wiLFxuICAgIFwiaGFsLmhcIixcbiAgICBcImhpZi5oXCIsXG4gICAgXCJodGMuY1wiLFxuICAgIFwiaHRjLmhcIixcbiAgICBcImh3LmhcIixcbiAgICBcIm1hYy5jXCIsXG4gICAgXCJtYWMuaFwiLFxuICAgIFwibWhpLmNcIixcbiAgICBcIm1oaS5oXCIsXG4gICAgXCJwMnAuY1wiLFxuICAgIFwicDJwLmhcIixcbiAgICBcInBjaS5jXCIsXG4gICAgXCJwY2kuaFwiLFxuICAgIFwicGVlci5jXCIsXG4gICAgXCJwZWVyLmhcIixcbiAgICBcInFtaS5jXCIsXG4gICAgXCJxbWkuaFwiLFxuICAgIFwicmVnLmNcIixcbiAgICBcInJlZy5oXCIsXG4gICAgXCJ0ZXN0bW9kZS5jXCIsXG4gICAgXCJ0ZXN0bW9kZS5oXCIsXG4gICAgXCJ0aGVybWFsLmNcIixcbiAgICBcInRoZXJtYWwuaFwiLFxuICAgIFwidHJhY2UuY1wiLFxuICAgIFwidHJhY2UuaFwiLFxuICAgIFwid21pLmNcIixcbiAgICBcIndtaS5oXCIsXG4gICAgXCJ3b3cuY1wiLFxuICAgIFwid293LmhcIlxuICBdLFxuICBcIlN1YmRpcnNcIjogW1xuICAgIFwid2lmaTdcIlxuICBdXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNFQyMDoxMDozMi4wNTQ5NjA5MjlaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MTA5NjkzMzk5MTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqVW5yZWFjaGFibGUgQ29kZSBpbiB0aGUgYXRoMTJrIERyaXZlcioqXG5cbk9rYXksIHNvIEkndmUgYmVlbiBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kLCBmcmFua2x5LCBpdCdzIGEgZGVhZCBlbmQuIFRoZSBjb2RlIG1vZGlmaWVzIGBhdGgxMmtfbWFjX3VwZGF0ZV9mcmVxX3JhbmdlYCwgd2hpY2ggaW1tZWRpYXRlbHkgdGVsbHMgbWUgd2UncmUgZGVhbGluZyB3aXRoIHRoZSBRdWFsY29tbSBXaS1GaSA3IGRyaXZlciwgKmF0aDEyayouIFRoYXQncyB0aGUgZmlyc3QgcmVkIGZsYWcuIEkga25vdyBmcm9tIGV4cGVyaWVuY2UgdGhhdCBgYXRoMTJrYCBpcyB0aWdodGx5IGJvdW5kIHRvIFF1YWxjb21tJ3Mgc3BlY2lmaWMgaGFyZHdhcmUg4oCTIFBDSSBhbmQgQUhCIGJ1c2VzLCBzcGVjaWZpY2FsbHkuIEZvcmdldCBhYm91dCBzZWVpbmcgdGhpcyB0aGluZyBpbiBhIHZpcnR1YWwgZW52aXJvbm1lbnQuIFRoZXJl4oCZcyBubyBzdXBwb3J0IGZvciB2aXJ0dWFsIG9yIFVTQiBkZXZpY2UgZW11bGF0aW9uIHdpdGhpbiBgYXRoMTJrYCwgYXQgbGVhc3Qgbm90IGluIGFueSBzdGFuZGFyZCBRRU1VIHNldHVwIEnigJl2ZSBldmVyIHNlZW4uXG5cblRoZXJlZm9yZSwgc2luY2UgdGhlIG9ubHkgc3VwcG9ydGVkIGhhcmR3YXJlIGlzIFBDSSBhbmQgQUhCIGJhc2VkLCBhbmQgbm8gc3RhbmRhcmQgZnV6emluZyBlbnZpcm9ubWVudHMgYXJlIGJhc2VkIG9uIHRoZXNlLCB0aGlzIG1vZGlmaWVkIGNvZGUgaXMsIHN0cnVjdHVyYWxseSBzcGVha2luZywgdW50b3VjaGFibGUuIEl04oCZcyB1bnJlYWNoYWJsZSBoYXJkd2FyZSBjb2RlIHdpdGhpbiB0aGUgY29udGV4dCBvZiBhbnkgbm9ybWFsIGZ1enppbmcgZWZmb3J0LiBJdCdzIGEgd2FzdGUgb2YgdGltZSB0byBwdXJzdWUgdGhpcyBhbnkgZnVydGhlciwgZ2l2ZW4gdGhlIGN1cnJlbnQgZW52aXJvbm1lbnQuIFRpbWUgdG8gbWFyayB0aGlzIGFzIGEgXCJuby1nb1wiLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjk4NCwiT3V0cHV0VG9rZW5zIjoxMTEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNjksIlRvb2xDYWxscyI6WyJjb2Rlc2VhcmNoLWRpci1pbmRleCJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA0VDIwOjEwOjQzLjAyNDMwMzAzNloiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMwNTUwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGF0aDEya19tYWNfdXBkYXRlX2ZyZXFfcmFuZ2UgaW4gdGhlIGF0aDEyayBkcml2ZXIuIGF0aDEyayBpcyBhIHZlbmRvci1zcGVjaWZpYyBkcml2ZXIgZm9yIFF1YWxjb21tIFdpLUZpIDcgUENJZS9BSEIgaGFyZHdhcmUgZGV2aWNlcywgd2hpY2ggcmVxdWlyZXMgcGh5c2ljYWwgaGFyZHdhcmUgYW5kIGNhbm5vdCBiZSBlbXVsYXRlZCBvciBwcm9iZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgKFFFTVUvR0NFKSwgbWFraW5nIHRoZSBtb2RpZmllZCBjb2RlIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGF0aDEya19tYWNfdXBkYXRlX2ZyZXFfcmFuZ2UgaW4gdGhlIGF0aDEyayBkcml2ZXIuIGF0aDEyayBpcyBhIHZlbmRvci1zcGVjaWZpYyBkcml2ZXIgZm9yIFF1YWxjb21tIFdpLUZpIDcgUENJZS9BSEIgaGFyZHdhcmUgZGV2aWNlcywgd2hpY2ggcmVxdWlyZXMgcGh5c2ljYWwgaGFyZHdhcmUgYW5kIGNhbm5vdCBiZSBlbXVsYXRlZCBvciBwcm9iZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgKFFFTVUvR0NFKSwgbWFraW5nIHRoZSBtb2RpZmllZCBjb2RlIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA0VDIwOjEwOjQzLjAyNDM0NDEzNloiLCJTZXEiOjEyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzM2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow9q8gc[1] Phase: Running StartedAt: 2026-09-04 20:11:05 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9q8gc[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-09-04 20:11:05 +0000 UTC FinishedAt: 2026-09-04 20:11:15 +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,}