Name: series-workflowwcjxh Phase: Failed StartedAt: 2026-08-31 22:08:56 +0000 UTC FinishedAt: 2026-08-31 22:11:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwcjxh[0] Phase: Succeeded StartedAt: 2026-08-31 22:08:56 +0000 UTC FinishedAt: 2026-08-31 22:11:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwcjxh[0].run-triage Phase: Succeeded StartedAt: 2026-08-31 22:08:56 +0000 UTC FinishedAt: 2026-08-31 22: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+CgkJCTx0ZD4yMDI2LzA4LzMxIDIyOjEwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFF1YWxjb21tIFdpLUZpIDcgZHJpdmVyIChhdGgxMmspLCBzcGVjaWZpY2FsbHkgUkVPIGNhY2hlIGZsdXNoIGxvZ2ljIGZvciBSWCBkZXNjcmlwdG9ycy4gYXRoMTJrIHJlcXVpcmVzIHBoeXNpY2FsIFF1YWxjb21tIFdpLUZpIDcgaGFyZHdhcmUgKGUuZy4sIFdDTjc4NTAsIFFDTjkyNzQpIG92ZXIgUENJZSBvciBBSEIgYnVzIGFuZCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgKFFFTVUvR0NFKS4gVGhlcmVmb3JlLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBhcmUgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzMxIDIyOjEwPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgMjIxNjAyYzlmZDcyNTc1NzA5ZDcxNGU5YjBiM2U0NGRiYjE5ODYwYVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gQXVnIDMxIDIyOjEwOjMzIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvZHBfcnguYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvZHBfcnguY1xuaW5kZXggOTVkODdkZDY3ODcyZi4uNTFjMGUwODA3M2VkZCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvZHBfcnguY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9kcF9yeC5jXG5AQCAtMjI1LDIyICYjNDM7MjI1LDQzIEBAIGludCBhdGgxMmtfd2lmaTdfZHBfcmVvX2NhY2hlX2ZsdXNoKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIsXG4gXHRcdFx0XHQgICAgc3RydWN0IGF0aDEya19kcF9yeF90aWRfcnhxICpyeF90aWQpXG4ge1xuIFx0c3RydWN0IGF0aDEya19oYWxfcmVvX2NtZCBjbWQgPSB7fTtcbiYjNDM7XHRkbWFfYWRkcl90IHBhZGRyID0gcnhfdGlkLVx1MDAzZXFidWYucGFkZHJfYWxpZ25lZDtcbiYjNDM7XHR1MzIgb2ZmID0gcnhfdGlkLVx1MDAzZXFidWYuc2l6ZTtcbiBcdGludCByZXQ7XG4gXG4tXHRjbWQuYWRkcl9sbyA9IGxvd2VyXzMyX2JpdHMocnhfdGlkLVx1MDAzZXFidWYucGFkZHJfYWxpZ25lZCk7XG4tXHRjbWQuYWRkcl9oaSA9IHVwcGVyXzMyX2JpdHMocnhfdGlkLVx1MDAzZXFidWYucGFkZHJfYWxpZ25lZCk7XG4mIzQzO1x0LyogVGhlIFJFTyBjYWNoZSBjb250cm9sbGVyIGNhY2hlcyB0aGUgcXVldWUgZGVzY3JpcHRvciBhbmQgZWFjaFxuJiM0MztcdCAqIDEyOC1ieXRlIGV4dGVuc2lvbiBkZXNjcmlwdG9yIGFzIHNlcGFyYXRlIG9iamVjdHMsIGFuZCBhXG4mIzQzO1x0ICogRkxVU0hfQ0FDSEUgY29tbWFuZCBvbmx5IGFkZHJlc3NlcyBvbmUgb2YgdGhlbS4gRkxVU0hfUVVFVUVfMUtfREVTQ1xuJiM0MztcdCAqIGV4dGVuZHMgdGhlIGJhc2UgZmx1c2ggdG8gdGhlIDFLLXdpbmRvdyBkZXNjcmlwdG9yIGJ1dCBkb2VzIG5vdFxuJiM0MztcdCAqIGNvdmVyIHRoZSBleHRlbnNpb24gZGVzY3JpcHRvcnMsIHNvIGZsdXNoIHRob3NlIGV4cGxpY2l0bHkgZmlyc3QuXG4mIzQzO1x0ICogVGhlIGNvbW1hbmQgcmluZyBleGVjdXRlcyBpbiBvcmRlciwgaGVuY2UgdGhlIGZpbmFsIGJhc2UgZmx1c2hcbiYjNDM7XHQgKiBzdGF0dXMgYWxzbyBjb25maXJtcyB0aGUgZXh0ZW5zaW9uIGZsdXNoZXMgaGF2ZSBjb21wbGV0ZWQuXG4mIzQzO1x0ICovXG4mIzQzO1x0d2hpbGUgKG9mZiBcdTAwM2UgSEFMX0xJTktfREVTQ19BTElHTikge1xuJiM0MztcdFx0b2ZmIC09IEhBTF9MSU5LX0RFU0NfQUxJR047XG4mIzQzO1x0XHRtZW1zZXQoXHUwMDI2Y21kLCAwLCBzaXplb2YoY21kKSk7XG4mIzQzO1x0XHRjbWQuYWRkcl9sbyA9IGxvd2VyXzMyX2JpdHMocGFkZHIgJiM0Mzsgb2ZmKTtcbiYjNDM7XHRcdGNtZC5hZGRyX2hpID0gdXBwZXJfMzJfYml0cyhwYWRkciAmIzQzOyBvZmYpO1xuJiM0MztcdFx0cmV0ID0gYXRoMTJrX3dpZmk3X2RwX3Jlb19jbWRfc2VuZChhYiwgcnhfdGlkLFxuJiM0MztcdFx0XHRcdFx0XHQgICBIQUxfUkVPX0NNRF9GTFVTSF9DQUNIRSxcbiYjNDM7XHRcdFx0XHRcdFx0ICAgXHUwMDI2Y21kLCBOVUxMKTtcbiYjNDM7XHRcdGlmIChyZXQpIHtcbiYjNDM7XHRcdFx0YXRoMTJrX3dhcm4oYWIsXG4mIzQzO1x0XHRcdFx0ICAgIFwmIzM0O2ZhaWxlZCB0byBzZW5kIEZMVVNIX0NBQ0hFIGZvciB0aWQgJWQgb2Zmc2V0IDB4JXg6ICVkXFxuXCYjMzQ7LFxuJiM0MztcdFx0XHRcdCAgICByeF90aWQtXHUwMDNldGlkLCBvZmYsIHJldCk7XG4mIzQzO1x0XHRcdHJldHVybiByZXQ7XG4mIzQzO1x0XHR9XG4mIzQzO1x0fVxuJiM0MztcbiYjNDM7XHRtZW1zZXQoXHUwMDI2Y21kLCAwLCBzaXplb2YoY21kKSk7XG4mIzQzO1x0Y21kLmFkZHJfbG8gPSBsb3dlcl8zMl9iaXRzKHBhZGRyKTtcbiYjNDM7XHRjbWQuYWRkcl9oaSA9IHVwcGVyXzMyX2JpdHMocGFkZHIpO1xuIFx0LyogSEFMX1JFT19DTURfRkxHX0ZMVVNIX0ZXRF9BTExfTVBEVVMgLSBhbGwgcGVuZGluZyBNUERVc1xuLVx0ICppbiB0aGUgYml0bWFwIHdpbGwgYmUgZm9yd2FyZGVkL2ZsdXNoZWQgdG8gUkVPIG91dHB1dCByaW5nc1xuJiM0MztcdCAqIGluIHRoZSBiaXRtYXAgd2lsbCBiZSBmb3J3YXJkZWQvZmx1c2hlZCB0byBSRU8gb3V0cHV0IHJpbmdzXG4gXHQgKi9cbiBcdGNtZC5mbGFnID0gSEFMX1JFT19DTURfRkxHX05FRURfU1RBVFVTIHxcbiBcdFx0ICAgSEFMX1JFT19DTURfRkxHX0ZMVVNIX0ZXRF9BTExfTVBEVVM7XG4gXG4tXHQvKiBGb3IgYWxsIFFvUyBUSURzIChleGNlcHQgTk9OX1FPUyksIHRoZSBkcml2ZXIgYWxsb2NhdGVzIGEgbWF4aW11bVxuLVx0ICogd2luZG93IHNpemUgb2YgMTAyNC4gSW4gc3VjaCBjYXNlcywgdGhlIGRyaXZlciBjYW4gaXNzdWUgYSBzaW5nbGVcbi1cdCAqIDFLQiBkZXNjcmlwdG9yIGZsdXNoIGNvbW1hbmQgaW5zdGVhZCBvZiBzZW5kaW5nIG11bHRpcGxlIDEyOC1ieXRlXG4tXHQgKiBmbHVzaCBjb21tYW5kcyBmb3IgZWFjaCBRb1MgVElELCBpbXByb3ZpbmcgZWZmaWNpZW5jeS5cbi1cdCAqL1xuLVxuIFx0aWYgKHJ4X3RpZC1cdTAwM2V0aWQgIT0gSEFMX0RFU0NfUkVPX05PTl9RT1NfVElEKVxuIFx0XHRjbWQuZmxhZyB8PSBIQUxfUkVPX0NNRF9GTEdfRkxVU0hfUVVFVUVfMUtfREVTQztcbiBcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMSAyMjoxMDwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5jb3JlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgUXVhbGNvbW0gV2ktRmkgNyBkcml2ZXIgKGF0aDEyayksIHNwZWNpZmljYWxseSBSRU8gY2FjaGUgZmx1c2ggbG9naWMgZm9yIFJYIGRlc2NyaXB0b3JzLiBhdGgxMmsgcmVxdWlyZXMgcGh5c2ljYWwgUXVhbGNvbW0gV2ktRmkgNyBoYXJkd2FyZSAoZS5nLiwgV0NONzg1MCwgUUNOOTI3NCkgb3ZlciBQQ0llIG9yIEFIQiBidXMgYW5kIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAyMjE2MDJjOWZkNzI1NzU3MDlkNzE0ZTliMGIzZTQ0ZGJiMTk4NjBhCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIE1vbiBBdWcgMzEgMjI6MTA6MzMgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2RwX3J4LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2RwX3J4LmMKaW5kZXggOTVkODdkZDY3ODcyZi4uNTFjMGUwODA3M2VkZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9kcF9yeC5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvZHBfcnguYwpAQCAtMjI1LDIyICYjNDM7MjI1LDQzIEBAIGludCBhdGgxMmtfd2lmaTdfZHBfcmVvX2NhY2hlX2ZsdXNoKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIsCiAJCQkJICAgIHN0cnVjdCBhdGgxMmtfZHBfcnhfdGlkX3J4cSAqcnhfdGlkKQogewogCXN0cnVjdCBhdGgxMmtfaGFsX3Jlb19jbWQgY21kID0ge307CiYjNDM7CWRtYV9hZGRyX3QgcGFkZHIgPSByeF90aWQtJmd0O3FidWYucGFkZHJfYWxpZ25lZDsKJiM0MzsJdTMyIG9mZiA9IHJ4X3RpZC0mZ3Q7cWJ1Zi5zaXplOwogCWludCByZXQ7CiAKLQljbWQuYWRkcl9sbyA9IGxvd2VyXzMyX2JpdHMocnhfdGlkLSZndDtxYnVmLnBhZGRyX2FsaWduZWQpOwotCWNtZC5hZGRyX2hpID0gdXBwZXJfMzJfYml0cyhyeF90aWQtJmd0O3FidWYucGFkZHJfYWxpZ25lZCk7CiYjNDM7CS8qIFRoZSBSRU8gY2FjaGUgY29udHJvbGxlciBjYWNoZXMgdGhlIHF1ZXVlIGRlc2NyaXB0b3IgYW5kIGVhY2gKJiM0MzsJICogMTI4LWJ5dGUgZXh0ZW5zaW9uIGRlc2NyaXB0b3IgYXMgc2VwYXJhdGUgb2JqZWN0cywgYW5kIGEKJiM0MzsJICogRkxVU0hfQ0FDSEUgY29tbWFuZCBvbmx5IGFkZHJlc3NlcyBvbmUgb2YgdGhlbS4gRkxVU0hfUVVFVUVfMUtfREVTQwomIzQzOwkgKiBleHRlbmRzIHRoZSBiYXNlIGZsdXNoIHRvIHRoZSAxSy13aW5kb3cgZGVzY3JpcHRvciBidXQgZG9lcyBub3QKJiM0MzsJICogY292ZXIgdGhlIGV4dGVuc2lvbiBkZXNjcmlwdG9ycywgc28gZmx1c2ggdGhvc2UgZXhwbGljaXRseSBmaXJzdC4KJiM0MzsJICogVGhlIGNvbW1hbmQgcmluZyBleGVjdXRlcyBpbiBvcmRlciwgaGVuY2UgdGhlIGZpbmFsIGJhc2UgZmx1c2gKJiM0MzsJICogc3RhdHVzIGFsc28gY29uZmlybXMgdGhlIGV4dGVuc2lvbiBmbHVzaGVzIGhhdmUgY29tcGxldGVkLgomIzQzOwkgKi8KJiM0MzsJd2hpbGUgKG9mZiAmZ3Q7IEhBTF9MSU5LX0RFU0NfQUxJR04pIHsKJiM0MzsJCW9mZiAtPSBIQUxfTElOS19ERVNDX0FMSUdOOwomIzQzOwkJbWVtc2V0KCZhbXA7Y21kLCAwLCBzaXplb2YoY21kKSk7CiYjNDM7CQljbWQuYWRkcl9sbyA9IGxvd2VyXzMyX2JpdHMocGFkZHIgJiM0Mzsgb2ZmKTsKJiM0MzsJCWNtZC5hZGRyX2hpID0gdXBwZXJfMzJfYml0cyhwYWRkciAmIzQzOyBvZmYpOwomIzQzOwkJcmV0ID0gYXRoMTJrX3dpZmk3X2RwX3Jlb19jbWRfc2VuZChhYiwgcnhfdGlkLAomIzQzOwkJCQkJCSAgIEhBTF9SRU9fQ01EX0ZMVVNIX0NBQ0hFLAomIzQzOwkJCQkJCSAgICZhbXA7Y21kLCBOVUxMKTsKJiM0MzsJCWlmIChyZXQpIHsKJiM0MzsJCQlhdGgxMmtfd2FybihhYiwKJiM0MzsJCQkJICAgICYjMzQ7ZmFpbGVkIHRvIHNlbmQgRkxVU0hfQ0FDSEUgZm9yIHRpZCAlZCBvZmZzZXQgMHgleDogJWRcbiYjMzQ7LAomIzQzOwkJCQkgICAgcnhfdGlkLSZndDt0aWQsIG9mZiwgcmV0KTsKJiM0MzsJCQlyZXR1cm4gcmV0OwomIzQzOwkJfQomIzQzOwl9CiYjNDM7CiYjNDM7CW1lbXNldCgmYW1wO2NtZCwgMCwgc2l6ZW9mKGNtZCkpOwomIzQzOwljbWQuYWRkcl9sbyA9IGxvd2VyXzMyX2JpdHMocGFkZHIpOwomIzQzOwljbWQuYWRkcl9oaSA9IHVwcGVyXzMyX2JpdHMocGFkZHIpOwogCS8qIEhBTF9SRU9fQ01EX0ZMR19GTFVTSF9GV0RfQUxMX01QRFVTIC0gYWxsIHBlbmRpbmcgTVBEVXMKLQkgKmluIHRoZSBiaXRtYXAgd2lsbCBiZSBmb3J3YXJkZWQvZmx1c2hlZCB0byBSRU8gb3V0cHV0IHJpbmdzCiYjNDM7CSAqIGluIHRoZSBiaXRtYXAgd2lsbCBiZSBmb3J3YXJkZWQvZmx1c2hlZCB0byBSRU8gb3V0cHV0IHJpbmdzCiAJICovCiAJY21kLmZsYWcgPSBIQUxfUkVPX0NNRF9GTEdfTkVFRF9TVEFUVVMgfAogCQkgICBIQUxfUkVPX0NNRF9GTEdfRkxVU0hfRldEX0FMTF9NUERVUzsKIAotCS8qIEZvciBhbGwgUW9TIFRJRHMgKGV4Y2VwdCBOT05fUU9TKSwgdGhlIGRyaXZlciBhbGxvY2F0ZXMgYSBtYXhpbXVtCi0JICogd2luZG93IHNpemUgb2YgMTAyNC4gSW4gc3VjaCBjYXNlcywgdGhlIGRyaXZlciBjYW4gaXNzdWUgYSBzaW5nbGUKLQkgKiAxS0IgZGVzY3JpcHRvciBmbHVzaCBjb21tYW5kIGluc3RlYWQgb2Ygc2VuZGluZyBtdWx0aXBsZSAxMjgtYnl0ZQotCSAqIGZsdXNoIGNvbW1hbmRzIGZvciBlYWNoIFFvUyBUSUQsIGltcHJvdmluZyBlZmZpY2llbmN5LgotCSAqLwotCiAJaWYgKHJ4X3RpZC0mZ3Q7dGlkICE9IEhBTF9ERVNDX1JFT19OT05fUU9TX1RJRCkKIAkJY21kLmZsYWcgfD0gSEFMX1JFT19DTURfRkxHX0ZMVVNIX1FVRVVFXzFLX0RFU0M7CiAKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzEgMjI6MTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjg0OAoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDEyMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipJbml0aWFsIEFzc2Vzc21lbnQgb2YgdGhlIENvZGUgQ2hhbmdlKioKCk9rYXksIHNvIHRoZSBwYXRjaCBpcyBoaXR0aW5nIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2RwX3J4LmNgLCBzcGVjaWZpY2FsbHkgdGhlIGZ1bmN0aW9uIGBhdGgxMmtfd2lmaTdfZHBfcmVvX2NhY2hlX2ZsdXNoYC4gVGhpcyBpbW1lZGlhdGVseSB0ZWxscyBtZSB3ZSYjMzk7cmUgbG9va2luZyBhdCBhIFF1YWxjb21tIFdpLUZpIDcgZHJpdmVyLCBgYXRoMTJrYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGZpZ3VyZSBvdXQgaWYgdGhpcyBpcyBzb21ldGhpbmcgdGhhdCYjMzk7cyB0aWVkIHRvIHBoeXNpY2FsIGhhcmR3YXJlLCBvciBpZiBpdCYjMzk7cyByZW1vdGVseSB0ZXN0YWJsZS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGF0dGFjayBzdXJmYWNlLiBJdCBsb29rcyBsaWtlIGl0IGhhbmRsZXMgUENJIG9yIEFIQiwgd2hpY2ggbWFrZXMgbWUgdGhpbmsgaXTigJlzIGxpa2VseSBoYXJkd2FyZSBkZXBlbmRlbnQsIGJ1dCBJIG5lZWQgdG8gY29uZmlybS4gTGV0JiMzOTtzIGNoZWNrIHRoZSBLY29uZmlnIHRvIHNlZSB3aGF0IGtpbmQgb2YgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSBhdmFpbGFibGUgZm9yIEFUSDEySy4gSSBuZWVkIHRvIGFzY2VydGFpbiB0aGUgcG9zc2liaWxpdHkgb2YgcmVhY2hpbmcgdGhpcyBjb2RlIGluIGEgc3RhbmRhcmQgZnV6emluZyBlbnZpcm9ubWVudCBsaWtlIFFFTVUgb3IgR0NFLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzMxIDIyOjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBBVEgxMksmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjI6Y29uZmlnIEFUSDEyS1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTMtXHR0cmlzdGF0ZSBcJiMzNDtRdWFsY29tbSBXaS1GaSA3IHN1cHBvcnQgKGF0aDEyaylcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6MTc6Y29uZmlnIEFUSDEyS19BSEJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0xOC1cdGJvb2wgXCYjMzQ7UXVhbGNvbW0gYXRoMTJrIEFIQiBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTI0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjI1OmNvbmZpZyBBVEgxMktfREVCVUdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0yNi1cdGJvb2wgXCYjMzQ7YXRoMTJrIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0zNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzozNTpjb25maWcgQVRIMTJLX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0zNi1cdGJvb2wgXCYjMzQ7UXVhbGNvbW0gYXRoMTJrIGRlYnVnZnMgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy00My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzo0NDpjb25maWcgQVRIMTJLX1RSQUNJTkdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy00NS1cdGJvb2wgXCYjMzQ7YXRoMTJrIHRyYWNpbmcgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy01Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzo1Mzpjb25maWcgQVRIMTJLX0NPUkVEVU1QXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNTQtXHRib29sIFwmIzM0O2F0aDEyayBjb3JlZHVtcFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzMxIDIyOjEwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM3MDkKCQkJCQkJCW91dHB1dDogNDEKCQkJCQkJCXRob3VnaHRzOiAyNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzOgoKKipFeGFtaW5pbmcgdGhlIEF0aGVyb3MgV2lyZWxlc3MgRHJpdmVyIENvbmZpZ3VyYXRpb24qKgoKT2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGUgYEtjb25maWdgIGZpbGUgZm9yIHRoZSBBdGhlcm9zIGF0aDEyayB3aXJlbGVzcyBkcml2ZXIuIFNwZWNpZmljYWxseSwgSSYjMzk7bSBnb2luZyB0byBsb29rIGF0IHRoZSBgcmVhZC1maWxlYCBkaXJlY3RpdmUgd2l0aGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWdgLiBJJiMzOTttIGd1ZXNzaW5nIEkmIzM5O2xsIGZpbmQgc29tZSB1c2VmdWwgaW5mb3JtYXRpb24gYWJvdXQgaG93IHRoaXMgZHJpdmVyIGlzIGNvbmZpZ3VyZWQsIHBlcmhhcHMgZGVwZW5kZW5jaWVzIG9uIG90aGVyIG1vZHVsZXMsIGRlZmF1bHQgc2V0dGluZ3MsIG9yIG1heWJlIGV2ZW4gY29uZGl0aW9uYWwgY29tcGlsYXRpb24gbG9naWMgYmFzZWQgb24gdGhlIHRhcmdldCBoYXJkd2FyZS4gVGhpcyBtaWdodCBiZSBjcnVjaWFsIGlmIEkmIzM5O20gdHJ5aW5nIHRvIGRlYnVnIGEgd2lyZWxlc3MgY29ubmVjdGl2aXR5IGlzc3VlLCBvcHRpbWl6ZSB0aGUgZHJpdmVyJiMzOTtzIHBlcmZvcm1hbmNlLCBvciBqdXN0IHVuZGVyc3RhbmQgaXRzIGJ1aWxkIHByb2Nlc3MgbW9yZSBkZWVwbHkuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgS2NvbmZpZyBpbmZyYXN0cnVjdHVyZSBpcyBsZXZlcmFnZWQgd2l0aGluIHRoaXMgZHJpdmVyIHNvIHRoYXQgSSBjYW4gcHJvdmlkZSBhbiBhY2N1cmF0ZSBhc3Nlc3NtZW50LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzMxIDIyOjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA2MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXG4gICAyOlx0Y29uZmlnIEFUSDEyS1xuICAgMzpcdFx0dHJpc3RhdGUgXCYjMzQ7UXVhbGNvbW0gV2ktRmkgNyBzdXBwb3J0IChhdGgxMmspXCYjMzQ7XG4gICA0Olx0XHRkZXBlbmRzIG9uIE1BQzgwMjExIFx1MDAyNlx1MDAyNiBIQVNfRE1BIFx1MDAyNlx1MDAyNiBQQ0lcbiAgIDU6XHRcdHNlbGVjdCBRQ09NX1FNSV9IRUxQRVJTXG4gICA2Olx0XHRzZWxlY3QgTUhJX0JVU1xuICAgNzpcdFx0c2VsZWN0IFFSVFJcbiAgIDg6XHRcdHNlbGVjdCBRUlRSX01ISVxuICAgOTpcdFx0c2VsZWN0IFBDSV9QV1JDVFJMX1BXUlNFUSBpZiBIQVZFX1BXUkNUUkxcbiAgMTA6XHRcdGhlbHBcbiAgMTE6XHRcdCAgRW5hYmxlIHN1cHBvcnQgZm9yIFF1YWxjb21tIFRlY2hub2xvZ2llcyBXaS1GaSA3IChJRUVFXG4gIDEyOlx0XHQgIDgwMi4xMWJlKSBmYW1pbHkgb2YgY2hpcHNldHMsIGZvciBleGFtcGxlIFdDTjc4NTAgYW5kXG4gIDEzOlx0XHQgIFFDTjkyNzQuXG4gIDE0Olx0XG4gIDE1Olx0XHQgIElmIHlvdSBjaG9vc2UgdG8gYnVpbGQgYSBtb2R1bGUsIGl0JiMzOTtsbCBiZSBjYWxsZWQgYXRoMTJrLlxuICAxNjpcdFxuICAxNzpcdGNvbmZpZyBBVEgxMktfQUhCXG4gIDE4Olx0XHRib29sIFwmIzM0O1F1YWxjb21tIGF0aDEyayBBSEIgc3VwcG9ydFwmIzM0O1xuICAxOTpcdFx0ZGVwZW5kcyBvbiBBVEgxMksgXHUwMDI2XHUwMDI2IFJFTU9URVBST0NcbiAgMjA6XHRcdHNlbGVjdCBRQ09NX01EVF9MT0FERVJcbiAgMjE6XHRcdHNlbGVjdCBRQ09NX1BBU1xuICAyMjpcdFx0aGVscFxuICAyMzpcdFx0ICBFbmFibGUgc3VwcG9ydCBmb3IgQXRoMTJrIEFIQiBidXMgY2hpcHNldHMsIGV4YW1wbGUgSVBRNTMzMi5cbiAgMjQ6XHRcbiAgMjU6XHRjb25maWcgQVRIMTJLX0RFQlVHXG4gIDI2Olx0XHRib29sIFwmIzM0O2F0aDEyayBkZWJ1Z2dpbmdcJiMzNDtcbiAgMjc6XHRcdGRlcGVuZHMgb24gQVRIMTJLXG4gIDI4Olx0XHRoZWxwXG4gIDI5Olx0XHQgIEVuYWJsZSBkZWJ1ZyBzdXBwb3J0LCBmb3IgZXhhbXBsZSBkZWJ1ZyBtZXNzYWdlcyB3aGljaCBtdXN0XG4gIDMwOlx0XHQgIGJlIGVuYWJsZWQgc2VwYXJhdGVseSB1c2luZyB0aGUgZGVidWdfbWFzayBtb2R1bGUgcGFyYW1ldGVyLlxuICAzMTpcdFxuICAzMjpcdFx0ICBJZiB1bnN1cmUsIHNheSBZIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGRlYnVnIHByb2JsZW1zLiBCdXQgaWZcbiAgMzM6XHRcdCAgeW91IHdhbnQgb3B0aW1hbCBwZXJmb3JtYW5jZSBjaG9vc2UgTi5cbiAgMzQ6XHRcbiAgMzU6XHRjb25maWcgQVRIMTJLX0RFQlVHRlNcbiAgMzY6XHRcdGJvb2wgXCYjMzQ7UXVhbGNvbW0gYXRoMTJrIGRlYnVnZnMgc3VwcG9ydFwmIzM0O1xuICAzNzpcdFx0ZGVwZW5kcyBvbiBBVEgxMksgXHUwMDI2XHUwMDI2IE1BQzgwMjExX0RFQlVHRlNcbiAgMzg6XHRcdGhlbHBcbiAgMzk6XHRcdCAgRW5hYmxlIGF0aDEyayBkZWJ1Z2ZzIHN1cHBvcnRcbiAgNDA6XHRcbiAgNDE6XHRcdCAgSWYgdW5zdXJlLCBzYXkgWSB0byBtYWtlIGl0IGVhc2llciB0byBkZWJ1ZyBwcm9ibGVtcy4gQnV0IGlmXG4gIDQyOlx0XHQgIHlvdSB3YW50IG9wdGltYWwgcGVyZm9ybWFuY2UgY2hvb3NlIE4uXG4gIDQzOlx0XG4gIDQ0Olx0Y29uZmlnIEFUSDEyS19UUkFDSU5HXG4gIDQ1Olx0XHRib29sIFwmIzM0O2F0aDEyayB0cmFjaW5nIHN1cHBvcnRcJiMzNDtcbiAgNDY6XHRcdGRlcGVuZHMgb24gQVRIMTJLIFx1MDAyNlx1MDAyNiBFVkVOVF9UUkFDSU5HXG4gIDQ3Olx0XHRoZWxwXG4gIDQ4Olx0XHQgIEVuYWJsZSBhdGgxMmsgdHJhY2luZyBpbmZyYXN0cnVjdHVyZS5cbiAgNDk6XHRcbiAgNTA6XHRcdCAgSWYgdW5zdXJlLCBzYXkgWSB0byBtYWtlIGl0IGVhc2llciB0byBkZWJ1ZyBwcm9ibGVtcy4gQnV0IGlmXG4gIDUxOlx0XHQgIHlvdSB3YW50IG9wdGltYWwgcGVyZm9ybWFuY2UgY2hvb3NlIE4uXG4gIDUyOlx0XG4gIDUzOlx0Y29uZmlnIEFUSDEyS19DT1JFRFVNUFxuICA1NDpcdFx0Ym9vbCBcJiMzNDthdGgxMmsgY29yZWR1bXBcJiMzNDtcbiAgNTU6XHRcdGRlcGVuZHMgb24gQVRIMTJLXG4gIDU2Olx0XHRzZWxlY3QgV0FOVF9ERVZfQ09SRURVTVBcbiAgNTc6XHRcdGhlbHBcbiAgNTg6XHRcdCAgRW5hYmxlIGF0aDEyayBjb3JlZHVtcCBjb2xsZWN0aW9uXG4gIDU5Olx0XG4gIDYwOlx0XHQgIElmIHVuc3VyZSwgc2F5IFkgdG8gbWFrZSBpdCBlYXNpZXIgdG8gZGVidWcgcHJvYmxlbXMuIEJ1dCBpZlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzMxIDIyOjEwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ3OTEKCQkJCQkJCW91dHB1dDogMTI4CgkJCQkJCQl0aG91Z2h0czogODQyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgRnV6emluZyBQb3RlbnRpYWwgb2YgVGhpcyBQYXRjaCoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBGaXJzdCwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCAmIzM0O2F0aDEyayYjMzQ7IGFjdHVhbGx5ICppcyouIFJpZ2h0LCBpdCYjMzk7cyBhIHdpcmVsZXNzIGRyaXZlciBzcGVjaWZpY2FsbHkgZm9yIFF1YWxjb21tIFdpLUZpIDcgY2hpcHNldHMg4oCTIHRoaW5rIFdDTjc4NTAsIFFDTjkyNzQsIHRoYXQga2luZCBvZiB0aGluZy4gVGhlIHF1ZXN0aW9uLCB0aGVuLCBpcyB3aGV0aGVyIHN0YW5kYXJkIFFFTVUgb3IgR29vZ2xlIENvbXB1dGUgRW5naW5lIChHQ0UpIGVtdWxhdGVzICp0aGF0KiBoYXJkd2FyZS4gVGhlIGFuc3dlciwgYXMgSSBhbHJlYWR5IGtuZXcsIGlzIGEgcmVzb3VuZGluZyBuby4gV2lyZWxlc3MsIGVzcGVjaWFsbHkgdGhlc2UgbmV3ZXIgV2ktRmkgNyBjaGlwc2V0cywgbmVlZHMgdGhlIHJlYWwgZGVhbDogcGh5c2ljYWwgUENJZSBvciBBSEIgUXVhbGNvbW0gV2ktRmkgY2hpcHMsIGNvbXBsZXRlIHdpdGggZmlybXdhcmUsIE1ISSBidXMsIFFNSSwgUVJUUiwgdGhlIHdob2xlIHNoZWJhbmcuCgpOb3csIGxldCYjMzk7cyByZS1yZWFkIHRoZSBwcm9tcHQmIzM5O3MgcnVsZXMuIFdlJiMzOTtyZSBsb29raW5nIGZvciB3aGV0aGVyIGl04oCZcyAmIzM0O1dvcnRoRnV6emluZyYjMzQ7LiBDZXJ0YWluIG1vZGlmaWNhdGlvbnMgYXJlIGF1dG9tYXRpY2FsbHkgZXhjbHVkZWQ6IGRvY3VtZW50YXRpb24sIEtjb25maWcgY2hhbmdlcywgY29tbWVudHMsIGRlY29yYXRpdmUgbG9nZ2luZyAobGlrZSBwcmludGsvcHJfZXJyKSwgaGFybWxlc3MgbnVtZXJpYyBjaGFuZ2VzLCB1bnJlYWNoYWJsZSBjb2RlIHBhdGhzIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cywgYW5kIHZlbmRvci1zcGVjaWZpYyBkcml2ZXJzIHJlcXVpcmluZyBwaHlzaWNhbCBoYXJkd2FyZS4KCkxldCYjMzk7cyBjaGVjayBpZiB0aGVyZSBhcmUgYW55IHZpcnR1YWwgZGV2aWNlcy4gSG1tLCBkb2VzIGBtYWM4MDIxMV9od3NpbWAgY29tZSBpbnRvIHBsYXk/IEl04oCZcyBpdHMgb3duIGRyaXZlciwgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvbWFjODAyMTFfaHdzaW0uY2AsIGJ1dCBpdCBkb2VzbiYjMzk7dCAqdXNlKiBhdGgxMmsuIEFnYWluLCBhdGgxMmsgaXMgZmlybWx5IGluIHRoZSByZWFsbSBvZiByZWFsLXdvcmxkIFF1YWxjb21tIFdpLUZpIDcgaGFyZHdhcmUuIFRoZSBkZXZpY2UgcHJvYmUgd2lsbCAqbmV2ZXIqIHN1Y2NlZWQgd2l0aG91dCBwaHlzaWNhbCBoYXJkd2FyZS4gUUVNVSBhbmQgR0NFIGFyZW4mIzM5O3QgZ29pbmcgdG8gaGVscCBoZXJlLgoKU28sIGZyb20gYSBmdXp6aW5nIHBlcnNwZWN0aXZlLCB0aGlzIGNvZGUgaXMgZGVhZCBpbiB0aGUgd2F0ZXIgaW4gc3RhbmRhcmQgc2V0dXBzLiBJdOKAmXMgYSBkcml2ZXIgZm9yIHBoeXNpY2FsIGhhcmR3YXJlIHRoYXQmIzM5O3Mgbm90IGVtdWxhdGVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gSXQmIzM5O3Mgc2ltcGx5IHVucmVhY2hhYmxlIGFuZCB1bmZ1enphYmxlIHdpdGhvdXQgYSBzcGVjaWZpYyBwaHlzaWNhbCBzZXR1cC4KCk5vdywgbGV0JiMzOTtzIG1ha2Ugc3VyZSBub3RoaW5nIGVsc2Ugd2FzIG1vZGlmaWVkLgoKT2theSwgb25seSBgZHBfcnguY2AgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvYCB3YXMgdG91Y2hlZC4KCkluIGNvbmNsdXNpb24sIEkgY2FuIGNvbmZpZGVudGx5IHNheToKCiogICAqKldvcnRoRnV6emluZzogZmFsc2UqKgoqICAgKipGb2N1c1N5bWJvbHM6IFxbIF0qKiAoZW1wdHkpCiogICAqKkVuYWJsZUNvbmZpZ3M6IFxbIF0qKiAoZW1wdHkpCiogICAqKlJlYXNvbmluZzoqKiBUaGUgY29kZSBpcyBpbiBhIGRyaXZlciBmb3IgUXVhbGNvbW0gV2ktRmkgNyBoYXJkd2FyZSAoV0NONzg1MC9RQ045Mjc0KSBhbmQgcmVxdWlyZXMgcGh5c2ljYWwgUENJZSBvciBBSEIgaGFyZHdhcmUuIFRoaXMgaXMgbm90IGVtdWxhdGVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIGNhbm5vdCBiZSByZWFjaGVkIGFuZCBmdXp6ZWQuCgpOb3csIGxldCYjMzk7cyBjYWxsIGBzZXQtcmVzdWx0c2AuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzEgMjI6MTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgUXVhbGNvbW0gV2ktRmkgNyBkcml2ZXIgKGF0aDEyayksIHNwZWNpZmljYWxseSBSRU8gY2FjaGUgZmx1c2ggbG9naWMgZm9yIFJYIGRlc2NyaXB0b3JzLiBhdGgxMmsgcmVxdWlyZXMgcGh5c2ljYWwgUXVhbGNvbW0gV2ktRmkgNyBoYXJkd2FyZSAoZS5nLiwgV0NONzg1MCwgUUNOOTI3NCkgb3ZlciBQQ0llIG9yIEFIQiBidXMgYW5kIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBRdWFsY29tbSBXaS1GaSA3IGRyaXZlciAoYXRoMTJrKSwgc3BlY2lmaWNhbGx5IFJFTyBjYWNoZSBmbHVzaCBsb2dpYyBmb3IgUlggZGVzY3JpcHRvcnMuIGF0aDEyayByZXF1aXJlcyBwaHlzaWNhbCBRdWFsY29tbSBXaS1GaSA3IGhhcmR3YXJlIChlLmcuLCBXQ043ODUwLCBRQ045Mjc0KSBvdmVyIFBDSWUgb3IgQUhCIGJ1cyBhbmQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChRRU1VL0dDRSkuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMSAyMjoxMDwvdGQ+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+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMzFUMjI6MTA6MzMuODc0ODI1Njk3WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjAyNDQ5MDEwMjQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJcIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgUXVhbGNvbW0gV2ktRmkgNyBkcml2ZXIgKGF0aDEyayksIHNwZWNpZmljYWxseSBSRU8gY2FjaGUgZmx1c2ggbG9naWMgZm9yIFJYIGRlc2NyaXB0b3JzLiBhdGgxMmsgcmVxdWlyZXMgcGh5c2ljYWwgUXVhbGNvbW0gV2ktRmkgNyBoYXJkd2FyZSAoZS5nLiwgV0NONzg1MCwgUUNOOTI3NCkgb3ZlciBQQ0llIG9yIEFIQiBidXMgYW5kIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMxVDIyOjEwOjMzLjg3NDgzMjk0N1oiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTM5MzY3Mjg3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgMjIxNjAyYzlmZDcyNTc1NzA5ZDcxNGU5YjBiM2U0NGRiYjE5ODYwYVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgTW9uIEF1ZyAzMSAyMjoxMDozMyAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2RwX3J4LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2RwX3J4LmNcXG5pbmRleCA5NWQ4N2RkNjc4NzJmLi41MWMwZTA4MDczZWRkIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvZHBfcnguY1xcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvZHBfcnguY1xcbkBAIC0yMjUsMjIgKzIyNSw0MyBAQCBpbnQgYXRoMTJrX3dpZmk3X2RwX3Jlb19jYWNoZV9mbHVzaChzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiLFxcbiBcXHRcXHRcXHRcXHQgICAgc3RydWN0IGF0aDEya19kcF9yeF90aWRfcnhxICpyeF90aWQpXFxuIHtcXG4gXFx0c3RydWN0IGF0aDEya19oYWxfcmVvX2NtZCBjbWQgPSB7fTtcXG4rXFx0ZG1hX2FkZHJfdCBwYWRkciA9IHJ4X3RpZC1cXHUwMDNlcWJ1Zi5wYWRkcl9hbGlnbmVkO1xcbitcXHR1MzIgb2ZmID0gcnhfdGlkLVxcdTAwM2VxYnVmLnNpemU7XFxuIFxcdGludCByZXQ7XFxuIFxcbi1cXHRjbWQuYWRkcl9sbyA9IGxvd2VyXzMyX2JpdHMocnhfdGlkLVxcdTAwM2VxYnVmLnBhZGRyX2FsaWduZWQpO1xcbi1cXHRjbWQuYWRkcl9oaSA9IHVwcGVyXzMyX2JpdHMocnhfdGlkLVxcdTAwM2VxYnVmLnBhZGRyX2FsaWduZWQpO1xcbitcXHQvKiBUaGUgUkVPIGNhY2hlIGNvbnRyb2xsZXIgY2FjaGVzIHRoZSBxdWV1ZSBkZXNjcmlwdG9yIGFuZCBlYWNoXFxuK1xcdCAqIDEyOC1ieXRlIGV4dGVuc2lvbiBkZXNjcmlwdG9yIGFzIHNlcGFyYXRlIG9iamVjdHMsIGFuZCBhXFxuK1xcdCAqIEZMVVNIX0NBQ0hFIGNvbW1hbmQgb25seSBhZGRyZXNzZXMgb25lIG9mIHRoZW0uIEZMVVNIX1FVRVVFXzFLX0RFU0NcXG4rXFx0ICogZXh0ZW5kcyB0aGUgYmFzZSBmbHVzaCB0byB0aGUgMUstd2luZG93IGRlc2NyaXB0b3IgYnV0IGRvZXMgbm90XFxuK1xcdCAqIGNvdmVyIHRoZSBleHRlbnNpb24gZGVzY3JpcHRvcnMsIHNvIGZsdXNoIHRob3NlIGV4cGxpY2l0bHkgZmlyc3QuXFxuK1xcdCAqIFRoZSBjb21tYW5kIHJpbmcgZXhlY3V0ZXMgaW4gb3JkZXIsIGhlbmNlIHRoZSBmaW5hbCBiYXNlIGZsdXNoXFxuK1xcdCAqIHN0YXR1cyBhbHNvIGNvbmZpcm1zIHRoZSBleHRlbnNpb24gZmx1c2hlcyBoYXZlIGNvbXBsZXRlZC5cXG4rXFx0ICovXFxuK1xcdHdoaWxlIChvZmYgXFx1MDAzZSBIQUxfTElOS19ERVNDX0FMSUdOKSB7XFxuK1xcdFxcdG9mZiAtPSBIQUxfTElOS19ERVNDX0FMSUdOO1xcbitcXHRcXHRtZW1zZXQoXFx1MDAyNmNtZCwgMCwgc2l6ZW9mKGNtZCkpO1xcbitcXHRcXHRjbWQuYWRkcl9sbyA9IGxvd2VyXzMyX2JpdHMocGFkZHIgKyBvZmYpO1xcbitcXHRcXHRjbWQuYWRkcl9oaSA9IHVwcGVyXzMyX2JpdHMocGFkZHIgKyBvZmYpO1xcbitcXHRcXHRyZXQgPSBhdGgxMmtfd2lmaTdfZHBfcmVvX2NtZF9zZW5kKGFiLCByeF90aWQsXFxuK1xcdFxcdFxcdFxcdFxcdFxcdCAgIEhBTF9SRU9fQ01EX0ZMVVNIX0NBQ0hFLFxcbitcXHRcXHRcXHRcXHRcXHRcXHQgICBcXHUwMDI2Y21kLCBOVUxMKTtcXG4rXFx0XFx0aWYgKHJldCkge1xcbitcXHRcXHRcXHRhdGgxMmtfd2FybihhYixcXG4rXFx0XFx0XFx0XFx0ICAgIFxcXCJmYWlsZWQgdG8gc2VuZCBGTFVTSF9DQUNIRSBmb3IgdGlkICVkIG9mZnNldCAweCV4OiAlZFxcXFxuXFxcIixcXG4rXFx0XFx0XFx0XFx0ICAgIHJ4X3RpZC1cXHUwMDNldGlkLCBvZmYsIHJldCk7XFxuK1xcdFxcdFxcdHJldHVybiByZXQ7XFxuK1xcdFxcdH1cXG4rXFx0fVxcbitcXG4rXFx0bWVtc2V0KFxcdTAwMjZjbWQsIDAsIHNpemVvZihjbWQpKTtcXG4rXFx0Y21kLmFkZHJfbG8gPSBsb3dlcl8zMl9iaXRzKHBhZGRyKTtcXG4rXFx0Y21kLmFkZHJfaGkgPSB1cHBlcl8zMl9iaXRzKHBhZGRyKTtcXG4gXFx0LyogSEFMX1JFT19DTURfRkxHX0ZMVVNIX0ZXRF9BTExfTVBEVVMgLSBhbGwgcGVuZGluZyBNUERVc1xcbi1cXHQgKmluIHRoZSBiaXRtYXAgd2lsbCBiZSBmb3J3YXJkZWQvZmx1c2hlZCB0byBSRU8gb3V0cHV0IHJpbmdzXFxuK1xcdCAqIGluIHRoZSBiaXRtYXAgd2lsbCBiZSBmb3J3YXJkZWQvZmx1c2hlZCB0byBSRU8gb3V0cHV0IHJpbmdzXFxuIFxcdCAqL1xcbiBcXHRjbWQuZmxhZyA9IEhBTF9SRU9fQ01EX0ZMR19ORUVEX1NUQVRVUyB8XFxuIFxcdFxcdCAgIEhBTF9SRU9fQ01EX0ZMR19GTFVTSF9GV0RfQUxMX01QRFVTO1xcbiBcXG4tXFx0LyogRm9yIGFsbCBRb1MgVElEcyAoZXhjZXB0IE5PTl9RT1MpLCB0aGUgZHJpdmVyIGFsbG9jYXRlcyBhIG1heGltdW1cXG4tXFx0ICogd2luZG93IHNpemUgb2YgMTAyNC4gSW4gc3VjaCBjYXNlcywgdGhlIGRyaXZlciBjYW4gaXNzdWUgYSBzaW5nbGVcXG4tXFx0ICogMUtCIGRlc2NyaXB0b3IgZmx1c2ggY29tbWFuZCBpbnN0ZWFkIG9mIHNlbmRpbmcgbXVsdGlwbGUgMTI4LWJ5dGVcXG4tXFx0ICogZmx1c2ggY29tbWFuZHMgZm9yIGVhY2ggUW9TIFRJRCwgaW1wcm92aW5nIGVmZmljaWVuY3kuXFxuLVxcdCAqL1xcbi1cXG4gXFx0aWYgKHJ4X3RpZC1cXHUwMDNldGlkICE9IEhBTF9ERVNDX1JFT19OT05fUU9TX1RJRClcXG4gXFx0XFx0Y21kLmZsYWcgfD0gSEFMX1JFT19DTURfRkxHX0ZMVVNIX1FVRVVFXzFLX0RFU0M7XFxuIFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0zMVQyMjoxMDozNC40MTQ4NTc2MjRaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJjb3JlIiwiRHVyYXRpb24iOjE5NzA0ODU2NzU4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgUXVhbGNvbW0gV2ktRmkgNyBkcml2ZXIgKGF0aDEyayksIHNwZWNpZmljYWxseSBSRU8gY2FjaGUgZmx1c2ggbG9naWMgZm9yIFJYIGRlc2NyaXB0b3JzLiBhdGgxMmsgcmVxdWlyZXMgcGh5c2ljYWwgUXVhbGNvbW0gV2ktRmkgNyBoYXJkd2FyZSAoZS5nLiwgV0NONzg1MCwgUUNOOTI3NCkgb3ZlciBQQ0llIG9yIEFIQiBidXMgYW5kIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDIyMTYwMmM5ZmQ3MjU3NTcwOWQ3MTRlOWIwYjNlNDRkYmIxOTg2MGFcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEF1ZyAzMSAyMjoxMDozMyAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvZHBfcnguYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvZHBfcnguY1xuaW5kZXggOTVkODdkZDY3ODcyZi4uNTFjMGUwODA3M2VkZCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvZHBfcnguY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9kcF9yeC5jXG5AQCAtMjI1LDIyICsyMjUsNDMgQEAgaW50IGF0aDEya193aWZpN19kcF9yZW9fY2FjaGVfZmx1c2goc3RydWN0IGF0aDEya19iYXNlICphYixcbiBcdFx0XHRcdCAgICBzdHJ1Y3QgYXRoMTJrX2RwX3J4X3RpZF9yeHEgKnJ4X3RpZClcbiB7XG4gXHRzdHJ1Y3QgYXRoMTJrX2hhbF9yZW9fY21kIGNtZCA9IHt9O1xuK1x0ZG1hX2FkZHJfdCBwYWRkciA9IHJ4X3RpZC1cdTAwM2VxYnVmLnBhZGRyX2FsaWduZWQ7XG4rXHR1MzIgb2ZmID0gcnhfdGlkLVx1MDAzZXFidWYuc2l6ZTtcbiBcdGludCByZXQ7XG4gXG4tXHRjbWQuYWRkcl9sbyA9IGxvd2VyXzMyX2JpdHMocnhfdGlkLVx1MDAzZXFidWYucGFkZHJfYWxpZ25lZCk7XG4tXHRjbWQuYWRkcl9oaSA9IHVwcGVyXzMyX2JpdHMocnhfdGlkLVx1MDAzZXFidWYucGFkZHJfYWxpZ25lZCk7XG4rXHQvKiBUaGUgUkVPIGNhY2hlIGNvbnRyb2xsZXIgY2FjaGVzIHRoZSBxdWV1ZSBkZXNjcmlwdG9yIGFuZCBlYWNoXG4rXHQgKiAxMjgtYnl0ZSBleHRlbnNpb24gZGVzY3JpcHRvciBhcyBzZXBhcmF0ZSBvYmplY3RzLCBhbmQgYVxuK1x0ICogRkxVU0hfQ0FDSEUgY29tbWFuZCBvbmx5IGFkZHJlc3NlcyBvbmUgb2YgdGhlbS4gRkxVU0hfUVVFVUVfMUtfREVTQ1xuK1x0ICogZXh0ZW5kcyB0aGUgYmFzZSBmbHVzaCB0byB0aGUgMUstd2luZG93IGRlc2NyaXB0b3IgYnV0IGRvZXMgbm90XG4rXHQgKiBjb3ZlciB0aGUgZXh0ZW5zaW9uIGRlc2NyaXB0b3JzLCBzbyBmbHVzaCB0aG9zZSBleHBsaWNpdGx5IGZpcnN0LlxuK1x0ICogVGhlIGNvbW1hbmQgcmluZyBleGVjdXRlcyBpbiBvcmRlciwgaGVuY2UgdGhlIGZpbmFsIGJhc2UgZmx1c2hcbitcdCAqIHN0YXR1cyBhbHNvIGNvbmZpcm1zIHRoZSBleHRlbnNpb24gZmx1c2hlcyBoYXZlIGNvbXBsZXRlZC5cbitcdCAqL1xuK1x0d2hpbGUgKG9mZiBcdTAwM2UgSEFMX0xJTktfREVTQ19BTElHTikge1xuK1x0XHRvZmYgLT0gSEFMX0xJTktfREVTQ19BTElHTjtcbitcdFx0bWVtc2V0KFx1MDAyNmNtZCwgMCwgc2l6ZW9mKGNtZCkpO1xuK1x0XHRjbWQuYWRkcl9sbyA9IGxvd2VyXzMyX2JpdHMocGFkZHIgKyBvZmYpO1xuK1x0XHRjbWQuYWRkcl9oaSA9IHVwcGVyXzMyX2JpdHMocGFkZHIgKyBvZmYpO1xuK1x0XHRyZXQgPSBhdGgxMmtfd2lmaTdfZHBfcmVvX2NtZF9zZW5kKGFiLCByeF90aWQsXG4rXHRcdFx0XHRcdFx0ICAgSEFMX1JFT19DTURfRkxVU0hfQ0FDSEUsXG4rXHRcdFx0XHRcdFx0ICAgXHUwMDI2Y21kLCBOVUxMKTtcbitcdFx0aWYgKHJldCkge1xuK1x0XHRcdGF0aDEya193YXJuKGFiLFxuK1x0XHRcdFx0ICAgIFwiZmFpbGVkIHRvIHNlbmQgRkxVU0hfQ0FDSEUgZm9yIHRpZCAlZCBvZmZzZXQgMHgleDogJWRcXG5cIixcbitcdFx0XHRcdCAgICByeF90aWQtXHUwMDNldGlkLCBvZmYsIHJldCk7XG4rXHRcdFx0cmV0dXJuIHJldDtcbitcdFx0fVxuK1x0fVxuK1xuK1x0bWVtc2V0KFx1MDAyNmNtZCwgMCwgc2l6ZW9mKGNtZCkpO1xuK1x0Y21kLmFkZHJfbG8gPSBsb3dlcl8zMl9iaXRzKHBhZGRyKTtcbitcdGNtZC5hZGRyX2hpID0gdXBwZXJfMzJfYml0cyhwYWRkcik7XG4gXHQvKiBIQUxfUkVPX0NNRF9GTEdfRkxVU0hfRldEX0FMTF9NUERVUyAtIGFsbCBwZW5kaW5nIE1QRFVzXG4tXHQgKmluIHRoZSBiaXRtYXAgd2lsbCBiZSBmb3J3YXJkZWQvZmx1c2hlZCB0byBSRU8gb3V0cHV0IHJpbmdzXG4rXHQgKiBpbiB0aGUgYml0bWFwIHdpbGwgYmUgZm9yd2FyZGVkL2ZsdXNoZWQgdG8gUkVPIG91dHB1dCByaW5nc1xuIFx0ICovXG4gXHRjbWQuZmxhZyA9IEhBTF9SRU9fQ01EX0ZMR19ORUVEX1NUQVRVUyB8XG4gXHRcdCAgIEhBTF9SRU9fQ01EX0ZMR19GTFVTSF9GV0RfQUxMX01QRFVTO1xuIFxuLVx0LyogRm9yIGFsbCBRb1MgVElEcyAoZXhjZXB0IE5PTl9RT1MpLCB0aGUgZHJpdmVyIGFsbG9jYXRlcyBhIG1heGltdW1cbi1cdCAqIHdpbmRvdyBzaXplIG9mIDEwMjQuIEluIHN1Y2ggY2FzZXMsIHRoZSBkcml2ZXIgY2FuIGlzc3VlIGEgc2luZ2xlXG4tXHQgKiAxS0IgZGVzY3JpcHRvciBmbHVzaCBjb21tYW5kIGluc3RlYWQgb2Ygc2VuZGluZyBtdWx0aXBsZSAxMjgtYnl0ZVxuLVx0ICogZmx1c2ggY29tbWFuZHMgZm9yIGVhY2ggUW9TIFRJRCwgaW1wcm92aW5nIGVmZmljaWVuY3kuXG4tXHQgKi9cbi1cbiBcdGlmIChyeF90aWQtXHUwMDNldGlkICE9IEhBTF9ERVNDX1JFT19OT05fUU9TX1RJRClcbiBcdFx0Y21kLmZsYWcgfD0gSEFMX1JFT19DTURfRkxHX0ZMVVNIX1FVRVVFXzFLX0RFU0M7XG4gXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0zMVQyMjoxMDozNC40MTQ4NTg5MjRaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoxMDY0MTI5NzQ3NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipJbml0aWFsIEFzc2Vzc21lbnQgb2YgdGhlIENvZGUgQ2hhbmdlKipcblxuT2theSwgc28gdGhlIHBhdGNoIGlzIGhpdHRpbmcgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvZHBfcnguY2AsIHNwZWNpZmljYWxseSB0aGUgZnVuY3Rpb24gYGF0aDEya193aWZpN19kcF9yZW9fY2FjaGVfZmx1c2hgLiBUaGlzIGltbWVkaWF0ZWx5IHRlbGxzIG1lIHdlJ3JlIGxvb2tpbmcgYXQgYSBRdWFsY29tbSBXaS1GaSA3IGRyaXZlciwgYGF0aDEya2AuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBmaWd1cmUgb3V0IGlmIHRoaXMgaXMgc29tZXRoaW5nIHRoYXQncyB0aWVkIHRvIHBoeXNpY2FsIGhhcmR3YXJlLCBvciBpZiBpdCdzIHJlbW90ZWx5IHRlc3RhYmxlLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgYXR0YWNrIHN1cmZhY2UuIEl0IGxvb2tzIGxpa2UgaXQgaGFuZGxlcyBQQ0kgb3IgQUhCLCB3aGljaCBtYWtlcyBtZSB0aGluayBpdOKAmXMgbGlrZWx5IGhhcmR3YXJlIGRlcGVuZGVudCwgYnV0IEkgbmVlZCB0byBjb25maXJtLiBMZXQncyBjaGVjayB0aGUgS2NvbmZpZyB0byBzZWUgd2hhdCBraW5kIG9mIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcmUgYXZhaWxhYmxlIGZvciBBVEgxMksuIEkgbmVlZCB0byBhc2NlcnRhaW4gdGhlIHBvc3NpYmlsaXR5IG9mIHJlYWNoaW5nIHRoaXMgY29kZSBpbiBhIHN0YW5kYXJkIGZ1enppbmcgZW52aXJvbm1lbnQgbGlrZSBRRU1VIG9yIEdDRS5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjg0OCwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEyMCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMxVDIyOjEwOjQ1LjA1NjE1ODkwOVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3MzE2MDEzNiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgQVRIMTJLXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmtcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjI6Y29uZmlnIEFUSDEyS1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJRdWFsY29tbSBXaS1GaSA3IHN1cHBvcnQgKGF0aDEyaylcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjE3OmNvbmZpZyBBVEgxMktfQUhCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTE4LVxcdGJvb2wgXFxcIlF1YWxjb21tIGF0aDEyayBBSEIgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0yNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6MjU6Y29uZmlnIEFUSDEyS19ERUJVR1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0yNi1cXHRib29sIFxcXCJhdGgxMmsgZGVidWdnaW5nXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTM0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzozNTpjb25maWcgQVRIMTJLX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMzYtXFx0Ym9vbCBcXFwiUXVhbGNvbW0gYXRoMTJrIGRlYnVnZnMgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy00My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6NDQ6Y29uZmlnIEFUSDEyS19UUkFDSU5HXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTQ1LVxcdGJvb2wgXFxcImF0aDEyayB0cmFjaW5nIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjUzOmNvbmZpZyBBVEgxMktfQ09SRURVTVBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNTQtXFx0Ym9vbCBcXFwiYXRoMTJrIGNvcmVkdW1wXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0zMVQyMjoxMDo0NS4xMjkzMjM1NjZaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjozMDYyMjcyODY5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0czpcblxuKipFeGFtaW5pbmcgdGhlIEF0aGVyb3MgV2lyZWxlc3MgRHJpdmVyIENvbmZpZ3VyYXRpb24qKlxuXG5Pa2F5LCBsZXQncyBkaXZlIGludG8gdGhlIGBLY29uZmlnYCBmaWxlIGZvciB0aGUgQXRoZXJvcyBhdGgxMmsgd2lyZWxlc3MgZHJpdmVyLiBTcGVjaWZpY2FsbHksIEknbSBnb2luZyB0byBsb29rIGF0IHRoZSBgcmVhZC1maWxlYCBkaXJlY3RpdmUgd2l0aGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWdgLiBJJ20gZ3Vlc3NpbmcgSSdsbCBmaW5kIHNvbWUgdXNlZnVsIGluZm9ybWF0aW9uIGFib3V0IGhvdyB0aGlzIGRyaXZlciBpcyBjb25maWd1cmVkLCBwZXJoYXBzIGRlcGVuZGVuY2llcyBvbiBvdGhlciBtb2R1bGVzLCBkZWZhdWx0IHNldHRpbmdzLCBvciBtYXliZSBldmVuIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIGxvZ2ljIGJhc2VkIG9uIHRoZSB0YXJnZXQgaGFyZHdhcmUuIFRoaXMgbWlnaHQgYmUgY3J1Y2lhbCBpZiBJJ20gdHJ5aW5nIHRvIGRlYnVnIGEgd2lyZWxlc3MgY29ubmVjdGl2aXR5IGlzc3VlLCBvcHRpbWl6ZSB0aGUgZHJpdmVyJ3MgcGVyZm9ybWFuY2UsIG9yIGp1c3QgdW5kZXJzdGFuZCBpdHMgYnVpbGQgcHJvY2VzcyBtb3JlIGRlZXBseS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoZSBLY29uZmlnIGluZnJhc3RydWN0dXJlIGlzIGxldmVyYWdlZCB3aXRoaW4gdGhpcyBkcml2ZXIgc28gdGhhdCBJIGNhbiBwcm92aWRlIGFuIGFjY3VyYXRlIGFzc2Vzc21lbnQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM3MDksIk91dHB1dFRva2VucyI6NDEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0zMVQyMjoxMDo0OC4xOTE2MDA0MzVaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjU5NTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDYwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXFxuICAgMjpcXHRjb25maWcgQVRIMTJLXFxuICAgMzpcXHRcXHR0cmlzdGF0ZSBcXFwiUXVhbGNvbW0gV2ktRmkgNyBzdXBwb3J0IChhdGgxMmspXFxcIlxcbiAgIDQ6XFx0XFx0ZGVwZW5kcyBvbiBNQUM4MDIxMSBcXHUwMDI2XFx1MDAyNiBIQVNfRE1BIFxcdTAwMjZcXHUwMDI2IFBDSVxcbiAgIDU6XFx0XFx0c2VsZWN0IFFDT01fUU1JX0hFTFBFUlNcXG4gICA2OlxcdFxcdHNlbGVjdCBNSElfQlVTXFxuICAgNzpcXHRcXHRzZWxlY3QgUVJUUlxcbiAgIDg6XFx0XFx0c2VsZWN0IFFSVFJfTUhJXFxuICAgOTpcXHRcXHRzZWxlY3QgUENJX1BXUkNUUkxfUFdSU0VRIGlmIEhBVkVfUFdSQ1RSTFxcbiAgMTA6XFx0XFx0aGVscFxcbiAgMTE6XFx0XFx0ICBFbmFibGUgc3VwcG9ydCBmb3IgUXVhbGNvbW0gVGVjaG5vbG9naWVzIFdpLUZpIDcgKElFRUVcXG4gIDEyOlxcdFxcdCAgODAyLjExYmUpIGZhbWlseSBvZiBjaGlwc2V0cywgZm9yIGV4YW1wbGUgV0NONzg1MCBhbmRcXG4gIDEzOlxcdFxcdCAgUUNOOTI3NC5cXG4gIDE0OlxcdFxcbiAgMTU6XFx0XFx0ICBJZiB5b3UgY2hvb3NlIHRvIGJ1aWxkIGEgbW9kdWxlLCBpdCdsbCBiZSBjYWxsZWQgYXRoMTJrLlxcbiAgMTY6XFx0XFxuICAxNzpcXHRjb25maWcgQVRIMTJLX0FIQlxcbiAgMTg6XFx0XFx0Ym9vbCBcXFwiUXVhbGNvbW0gYXRoMTJrIEFIQiBzdXBwb3J0XFxcIlxcbiAgMTk6XFx0XFx0ZGVwZW5kcyBvbiBBVEgxMksgXFx1MDAyNlxcdTAwMjYgUkVNT1RFUFJPQ1xcbiAgMjA6XFx0XFx0c2VsZWN0IFFDT01fTURUX0xPQURFUlxcbiAgMjE6XFx0XFx0c2VsZWN0IFFDT01fUEFTXFxuICAyMjpcXHRcXHRoZWxwXFxuICAyMzpcXHRcXHQgIEVuYWJsZSBzdXBwb3J0IGZvciBBdGgxMmsgQUhCIGJ1cyBjaGlwc2V0cywgZXhhbXBsZSBJUFE1MzMyLlxcbiAgMjQ6XFx0XFxuICAyNTpcXHRjb25maWcgQVRIMTJLX0RFQlVHXFxuICAyNjpcXHRcXHRib29sIFxcXCJhdGgxMmsgZGVidWdnaW5nXFxcIlxcbiAgMjc6XFx0XFx0ZGVwZW5kcyBvbiBBVEgxMktcXG4gIDI4OlxcdFxcdGhlbHBcXG4gIDI5OlxcdFxcdCAgRW5hYmxlIGRlYnVnIHN1cHBvcnQsIGZvciBleGFtcGxlIGRlYnVnIG1lc3NhZ2VzIHdoaWNoIG11c3RcXG4gIDMwOlxcdFxcdCAgYmUgZW5hYmxlZCBzZXBhcmF0ZWx5IHVzaW5nIHRoZSBkZWJ1Z19tYXNrIG1vZHVsZSBwYXJhbWV0ZXIuXFxuICAzMTpcXHRcXG4gIDMyOlxcdFxcdCAgSWYgdW5zdXJlLCBzYXkgWSB0byBtYWtlIGl0IGVhc2llciB0byBkZWJ1ZyBwcm9ibGVtcy4gQnV0IGlmXFxuICAzMzpcXHRcXHQgIHlvdSB3YW50IG9wdGltYWwgcGVyZm9ybWFuY2UgY2hvb3NlIE4uXFxuICAzNDpcXHRcXG4gIDM1OlxcdGNvbmZpZyBBVEgxMktfREVCVUdGU1xcbiAgMzY6XFx0XFx0Ym9vbCBcXFwiUXVhbGNvbW0gYXRoMTJrIGRlYnVnZnMgc3VwcG9ydFxcXCJcXG4gIDM3OlxcdFxcdGRlcGVuZHMgb24gQVRIMTJLIFxcdTAwMjZcXHUwMDI2IE1BQzgwMjExX0RFQlVHRlNcXG4gIDM4OlxcdFxcdGhlbHBcXG4gIDM5OlxcdFxcdCAgRW5hYmxlIGF0aDEyayBkZWJ1Z2ZzIHN1cHBvcnRcXG4gIDQwOlxcdFxcbiAgNDE6XFx0XFx0ICBJZiB1bnN1cmUsIHNheSBZIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGRlYnVnIHByb2JsZW1zLiBCdXQgaWZcXG4gIDQyOlxcdFxcdCAgeW91IHdhbnQgb3B0aW1hbCBwZXJmb3JtYW5jZSBjaG9vc2UgTi5cXG4gIDQzOlxcdFxcbiAgNDQ6XFx0Y29uZmlnIEFUSDEyS19UUkFDSU5HXFxuICA0NTpcXHRcXHRib29sIFxcXCJhdGgxMmsgdHJhY2luZyBzdXBwb3J0XFxcIlxcbiAgNDY6XFx0XFx0ZGVwZW5kcyBvbiBBVEgxMksgXFx1MDAyNlxcdTAwMjYgRVZFTlRfVFJBQ0lOR1xcbiAgNDc6XFx0XFx0aGVscFxcbiAgNDg6XFx0XFx0ICBFbmFibGUgYXRoMTJrIHRyYWNpbmcgaW5mcmFzdHJ1Y3R1cmUuXFxuICA0OTpcXHRcXG4gIDUwOlxcdFxcdCAgSWYgdW5zdXJlLCBzYXkgWSB0byBtYWtlIGl0IGVhc2llciB0byBkZWJ1ZyBwcm9ibGVtcy4gQnV0IGlmXFxuICA1MTpcXHRcXHQgIHlvdSB3YW50IG9wdGltYWwgcGVyZm9ybWFuY2UgY2hvb3NlIE4uXFxuICA1MjpcXHRcXG4gIDUzOlxcdGNvbmZpZyBBVEgxMktfQ09SRURVTVBcXG4gIDU0OlxcdFxcdGJvb2wgXFxcImF0aDEyayBjb3JlZHVtcFxcXCJcXG4gIDU1OlxcdFxcdGRlcGVuZHMgb24gQVRIMTJLXFxuICA1NjpcXHRcXHRzZWxlY3QgV0FOVF9ERVZfQ09SRURVTVBcXG4gIDU3OlxcdFxcdGhlbHBcXG4gIDU4OlxcdFxcdCAgRW5hYmxlIGF0aDEyayBjb3JlZHVtcCBjb2xsZWN0aW9uXFxuICA1OTpcXHRcXG4gIDYwOlxcdFxcdCAgSWYgdW5zdXJlLCBzYXkgWSB0byBtYWtlIGl0IGVhc2llciB0byBkZWJ1ZyBwcm9ibGVtcy4gQnV0IGlmXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMxVDIyOjEwOjQ4LjE5MTcyOTAzNVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjU5Mjc5NjA0NjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBGdXp6aW5nIFBvdGVudGlhbCBvZiBUaGlzIFBhdGNoKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBGaXJzdCwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCBcImF0aDEya1wiIGFjdHVhbGx5ICppcyouIFJpZ2h0LCBpdCdzIGEgd2lyZWxlc3MgZHJpdmVyIHNwZWNpZmljYWxseSBmb3IgUXVhbGNvbW0gV2ktRmkgNyBjaGlwc2V0cyDigJMgdGhpbmsgV0NONzg1MCwgUUNOOTI3NCwgdGhhdCBraW5kIG9mIHRoaW5nLiBUaGUgcXVlc3Rpb24sIHRoZW4sIGlzIHdoZXRoZXIgc3RhbmRhcmQgUUVNVSBvciBHb29nbGUgQ29tcHV0ZSBFbmdpbmUgKEdDRSkgZW11bGF0ZXMgKnRoYXQqIGhhcmR3YXJlLiBUaGUgYW5zd2VyLCBhcyBJIGFscmVhZHkga25ldywgaXMgYSByZXNvdW5kaW5nIG5vLiBXaXJlbGVzcywgZXNwZWNpYWxseSB0aGVzZSBuZXdlciBXaS1GaSA3IGNoaXBzZXRzLCBuZWVkcyB0aGUgcmVhbCBkZWFsOiBwaHlzaWNhbCBQQ0llIG9yIEFIQiBRdWFsY29tbSBXaS1GaSBjaGlwcywgY29tcGxldGUgd2l0aCBmaXJtd2FyZSwgTUhJIGJ1cywgUU1JLCBRUlRSLCB0aGUgd2hvbGUgc2hlYmFuZy5cblxuTm93LCBsZXQncyByZS1yZWFkIHRoZSBwcm9tcHQncyBydWxlcy4gV2UncmUgbG9va2luZyBmb3Igd2hldGhlciBpdOKAmXMgXCJXb3J0aEZ1enppbmdcIi4gQ2VydGFpbiBtb2RpZmljYXRpb25zIGFyZSBhdXRvbWF0aWNhbGx5IGV4Y2x1ZGVkOiBkb2N1bWVudGF0aW9uLCBLY29uZmlnIGNoYW5nZXMsIGNvbW1lbnRzLCBkZWNvcmF0aXZlIGxvZ2dpbmcgKGxpa2UgcHJpbnRrL3ByX2VyciksIGhhcm1sZXNzIG51bWVyaWMgY2hhbmdlcywgdW5yZWFjaGFibGUgY29kZSBwYXRocyBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMsIGFuZCB2ZW5kb3Itc3BlY2lmaWMgZHJpdmVycyByZXF1aXJpbmcgcGh5c2ljYWwgaGFyZHdhcmUuXG5cbkxldCdzIGNoZWNrIGlmIHRoZXJlIGFyZSBhbnkgdmlydHVhbCBkZXZpY2VzLiBIbW0sIGRvZXMgYG1hYzgwMjExX2h3c2ltYCBjb21lIGludG8gcGxheT8gSXTigJlzIGl0cyBvd24gZHJpdmVyLCBgZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9tYWM4MDIxMV9od3NpbS5jYCwgYnV0IGl0IGRvZXNuJ3QgKnVzZSogYXRoMTJrLiBBZ2FpbiwgYXRoMTJrIGlzIGZpcm1seSBpbiB0aGUgcmVhbG0gb2YgcmVhbC13b3JsZCBRdWFsY29tbSBXaS1GaSA3IGhhcmR3YXJlLiBUaGUgZGV2aWNlIHByb2JlIHdpbGwgKm5ldmVyKiBzdWNjZWVkIHdpdGhvdXQgcGh5c2ljYWwgaGFyZHdhcmUuIFFFTVUgYW5kIEdDRSBhcmVuJ3QgZ29pbmcgdG8gaGVscCBoZXJlLlxuXG5TbywgZnJvbSBhIGZ1enppbmcgcGVyc3BlY3RpdmUsIHRoaXMgY29kZSBpcyBkZWFkIGluIHRoZSB3YXRlciBpbiBzdGFuZGFyZCBzZXR1cHMuIEl04oCZcyBhIGRyaXZlciBmb3IgcGh5c2ljYWwgaGFyZHdhcmUgdGhhdCdzIG5vdCBlbXVsYXRlZCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuIEl0J3Mgc2ltcGx5IHVucmVhY2hhYmxlIGFuZCB1bmZ1enphYmxlIHdpdGhvdXQgYSBzcGVjaWZpYyBwaHlzaWNhbCBzZXR1cC5cblxuTm93LCBsZXQncyBtYWtlIHN1cmUgbm90aGluZyBlbHNlIHdhcyBtb2RpZmllZC5cblxuT2theSwgb25seSBgZHBfcnguY2AgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvYCB3YXMgdG91Y2hlZC5cblxuSW4gY29uY2x1c2lvbiwgSSBjYW4gY29uZmlkZW50bHkgc2F5OlxuXG4qICAgKipXb3J0aEZ1enppbmc6IGZhbHNlKipcbiogICAqKkZvY3VzU3ltYm9sczogXFxbIF0qKiAoZW1wdHkpXG4qICAgKipFbmFibGVDb25maWdzOiBcXFsgXSoqIChlbXB0eSlcbiogICAqKlJlYXNvbmluZzoqKiBUaGUgY29kZSBpcyBpbiBhIGRyaXZlciBmb3IgUXVhbGNvbW0gV2ktRmkgNyBoYXJkd2FyZSAoV0NONzg1MC9RQ045Mjc0KSBhbmQgcmVxdWlyZXMgcGh5c2ljYWwgUENJZSBvciBBSEIgaGFyZHdhcmUuIFRoaXMgaXMgbm90IGVtdWxhdGVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIGNhbm5vdCBiZSByZWFjaGVkIGFuZCBmdXp6ZWQuXG5cbk5vdywgbGV0J3MgY2FsbCBgc2V0LXJlc3VsdHNgLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NzkxLCJPdXRwdXRUb2tlbnMiOjEyOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjg0MiwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMxVDIyOjEwOjU0LjExOTY5MTcyMloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjEyNTEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFF1YWxjb21tIFdpLUZpIDcgZHJpdmVyIChhdGgxMmspLCBzcGVjaWZpY2FsbHkgUkVPIGNhY2hlIGZsdXNoIGxvZ2ljIGZvciBSWCBkZXNjcmlwdG9ycy4gYXRoMTJrIHJlcXVpcmVzIHBoeXNpY2FsIFF1YWxjb21tIFdpLUZpIDcgaGFyZHdhcmUgKGUuZy4sIFdDTjc4NTAsIFFDTjkyNzQpIG92ZXIgUENJZSBvciBBSEIgYnVzIGFuZCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgKFFFTVUvR0NFKS4gVGhlcmVmb3JlLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBhcmUgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgUXVhbGNvbW0gV2ktRmkgNyBkcml2ZXIgKGF0aDEyayksIHNwZWNpZmljYWxseSBSRU8gY2FjaGUgZmx1c2ggbG9naWMgZm9yIFJYIGRlc2NyaXB0b3JzLiBhdGgxMmsgcmVxdWlyZXMgcGh5c2ljYWwgUXVhbGNvbW0gV2ktRmkgNyBoYXJkd2FyZSAoZS5nLiwgV0NONzg1MCwgUUNOOTI3NCkgb3ZlciBQQ0llIG9yIEFIQiBidXMgYW5kIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMxVDIyOjEwOjU0LjExOTcxNjI4MloiLCJTZXEiOjksIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoiSWYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMTgwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },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-workflowwcjxh[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-31 22:08:56 +0000 UTC FinishedAt: 2026-08-31 22:10:55 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzMxIDIyOjEwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFF1YWxjb21tIFdpLUZpIDcgZHJpdmVyIChhdGgxMmspLCBzcGVjaWZpY2FsbHkgUkVPIGNhY2hlIGZsdXNoIGxvZ2ljIGZvciBSWCBkZXNjcmlwdG9ycy4gYXRoMTJrIHJlcXVpcmVzIHBoeXNpY2FsIFF1YWxjb21tIFdpLUZpIDcgaGFyZHdhcmUgKGUuZy4sIFdDTjc4NTAsIFFDTjkyNzQpIG92ZXIgUENJZSBvciBBSEIgYnVzIGFuZCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgKFFFTVUvR0NFKS4gVGhlcmVmb3JlLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBhcmUgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzMxIDIyOjEwPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgMjIxNjAyYzlmZDcyNTc1NzA5ZDcxNGU5YjBiM2U0NGRiYjE5ODYwYVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gQXVnIDMxIDIyOjEwOjMzIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvZHBfcnguYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvZHBfcnguY1xuaW5kZXggOTVkODdkZDY3ODcyZi4uNTFjMGUwODA3M2VkZCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvZHBfcnguY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9kcF9yeC5jXG5AQCAtMjI1LDIyICYjNDM7MjI1LDQzIEBAIGludCBhdGgxMmtfd2lmaTdfZHBfcmVvX2NhY2hlX2ZsdXNoKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIsXG4gXHRcdFx0XHQgICAgc3RydWN0IGF0aDEya19kcF9yeF90aWRfcnhxICpyeF90aWQpXG4ge1xuIFx0c3RydWN0IGF0aDEya19oYWxfcmVvX2NtZCBjbWQgPSB7fTtcbiYjNDM7XHRkbWFfYWRkcl90IHBhZGRyID0gcnhfdGlkLVx1MDAzZXFidWYucGFkZHJfYWxpZ25lZDtcbiYjNDM7XHR1MzIgb2ZmID0gcnhfdGlkLVx1MDAzZXFidWYuc2l6ZTtcbiBcdGludCByZXQ7XG4gXG4tXHRjbWQuYWRkcl9sbyA9IGxvd2VyXzMyX2JpdHMocnhfdGlkLVx1MDAzZXFidWYucGFkZHJfYWxpZ25lZCk7XG4tXHRjbWQuYWRkcl9oaSA9IHVwcGVyXzMyX2JpdHMocnhfdGlkLVx1MDAzZXFidWYucGFkZHJfYWxpZ25lZCk7XG4mIzQzO1x0LyogVGhlIFJFTyBjYWNoZSBjb250cm9sbGVyIGNhY2hlcyB0aGUgcXVldWUgZGVzY3JpcHRvciBhbmQgZWFjaFxuJiM0MztcdCAqIDEyOC1ieXRlIGV4dGVuc2lvbiBkZXNjcmlwdG9yIGFzIHNlcGFyYXRlIG9iamVjdHMsIGFuZCBhXG4mIzQzO1x0ICogRkxVU0hfQ0FDSEUgY29tbWFuZCBvbmx5IGFkZHJlc3NlcyBvbmUgb2YgdGhlbS4gRkxVU0hfUVVFVUVfMUtfREVTQ1xuJiM0MztcdCAqIGV4dGVuZHMgdGhlIGJhc2UgZmx1c2ggdG8gdGhlIDFLLXdpbmRvdyBkZXNjcmlwdG9yIGJ1dCBkb2VzIG5vdFxuJiM0MztcdCAqIGNvdmVyIHRoZSBleHRlbnNpb24gZGVzY3JpcHRvcnMsIHNvIGZsdXNoIHRob3NlIGV4cGxpY2l0bHkgZmlyc3QuXG4mIzQzO1x0ICogVGhlIGNvbW1hbmQgcmluZyBleGVjdXRlcyBpbiBvcmRlciwgaGVuY2UgdGhlIGZpbmFsIGJhc2UgZmx1c2hcbiYjNDM7XHQgKiBzdGF0dXMgYWxzbyBjb25maXJtcyB0aGUgZXh0ZW5zaW9uIGZsdXNoZXMgaGF2ZSBjb21wbGV0ZWQuXG4mIzQzO1x0ICovXG4mIzQzO1x0d2hpbGUgKG9mZiBcdTAwM2UgSEFMX0xJTktfREVTQ19BTElHTikge1xuJiM0MztcdFx0b2ZmIC09IEhBTF9MSU5LX0RFU0NfQUxJR047XG4mIzQzO1x0XHRtZW1zZXQoXHUwMDI2Y21kLCAwLCBzaXplb2YoY21kKSk7XG4mIzQzO1x0XHRjbWQuYWRkcl9sbyA9IGxvd2VyXzMyX2JpdHMocGFkZHIgJiM0Mzsgb2ZmKTtcbiYjNDM7XHRcdGNtZC5hZGRyX2hpID0gdXBwZXJfMzJfYml0cyhwYWRkciAmIzQzOyBvZmYpO1xuJiM0MztcdFx0cmV0ID0gYXRoMTJrX3dpZmk3X2RwX3Jlb19jbWRfc2VuZChhYiwgcnhfdGlkLFxuJiM0MztcdFx0XHRcdFx0XHQgICBIQUxfUkVPX0NNRF9GTFVTSF9DQUNIRSxcbiYjNDM7XHRcdFx0XHRcdFx0ICAgXHUwMDI2Y21kLCBOVUxMKTtcbiYjNDM7XHRcdGlmIChyZXQpIHtcbiYjNDM7XHRcdFx0YXRoMTJrX3dhcm4oYWIsXG4mIzQzO1x0XHRcdFx0ICAgIFwmIzM0O2ZhaWxlZCB0byBzZW5kIEZMVVNIX0NBQ0hFIGZvciB0aWQgJWQgb2Zmc2V0IDB4JXg6ICVkXFxuXCYjMzQ7LFxuJiM0MztcdFx0XHRcdCAgICByeF90aWQtXHUwMDNldGlkLCBvZmYsIHJldCk7XG4mIzQzO1x0XHRcdHJldHVybiByZXQ7XG4mIzQzO1x0XHR9XG4mIzQzO1x0fVxuJiM0MztcbiYjNDM7XHRtZW1zZXQoXHUwMDI2Y21kLCAwLCBzaXplb2YoY21kKSk7XG4mIzQzO1x0Y21kLmFkZHJfbG8gPSBsb3dlcl8zMl9iaXRzKHBhZGRyKTtcbiYjNDM7XHRjbWQuYWRkcl9oaSA9IHVwcGVyXzMyX2JpdHMocGFkZHIpO1xuIFx0LyogSEFMX1JFT19DTURfRkxHX0ZMVVNIX0ZXRF9BTExfTVBEVVMgLSBhbGwgcGVuZGluZyBNUERVc1xuLVx0ICppbiB0aGUgYml0bWFwIHdpbGwgYmUgZm9yd2FyZGVkL2ZsdXNoZWQgdG8gUkVPIG91dHB1dCByaW5nc1xuJiM0MztcdCAqIGluIHRoZSBiaXRtYXAgd2lsbCBiZSBmb3J3YXJkZWQvZmx1c2hlZCB0byBSRU8gb3V0cHV0IHJpbmdzXG4gXHQgKi9cbiBcdGNtZC5mbGFnID0gSEFMX1JFT19DTURfRkxHX05FRURfU1RBVFVTIHxcbiBcdFx0ICAgSEFMX1JFT19DTURfRkxHX0ZMVVNIX0ZXRF9BTExfTVBEVVM7XG4gXG4tXHQvKiBGb3IgYWxsIFFvUyBUSURzIChleGNlcHQgTk9OX1FPUyksIHRoZSBkcml2ZXIgYWxsb2NhdGVzIGEgbWF4aW11bVxuLVx0ICogd2luZG93IHNpemUgb2YgMTAyNC4gSW4gc3VjaCBjYXNlcywgdGhlIGRyaXZlciBjYW4gaXNzdWUgYSBzaW5nbGVcbi1cdCAqIDFLQiBkZXNjcmlwdG9yIGZsdXNoIGNvbW1hbmQgaW5zdGVhZCBvZiBzZW5kaW5nIG11bHRpcGxlIDEyOC1ieXRlXG4tXHQgKiBmbHVzaCBjb21tYW5kcyBmb3IgZWFjaCBRb1MgVElELCBpbXByb3ZpbmcgZWZmaWNpZW5jeS5cbi1cdCAqL1xuLVxuIFx0aWYgKHJ4X3RpZC1cdTAwM2V0aWQgIT0gSEFMX0RFU0NfUkVPX05PTl9RT1NfVElEKVxuIFx0XHRjbWQuZmxhZyB8PSBIQUxfUkVPX0NNRF9GTEdfRkxVU0hfUVVFVUVfMUtfREVTQztcbiBcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMSAyMjoxMDwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5jb3JlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgUXVhbGNvbW0gV2ktRmkgNyBkcml2ZXIgKGF0aDEyayksIHNwZWNpZmljYWxseSBSRU8gY2FjaGUgZmx1c2ggbG9naWMgZm9yIFJYIGRlc2NyaXB0b3JzLiBhdGgxMmsgcmVxdWlyZXMgcGh5c2ljYWwgUXVhbGNvbW0gV2ktRmkgNyBoYXJkd2FyZSAoZS5nLiwgV0NONzg1MCwgUUNOOTI3NCkgb3ZlciBQQ0llIG9yIEFIQiBidXMgYW5kIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAyMjE2MDJjOWZkNzI1NzU3MDlkNzE0ZTliMGIzZTQ0ZGJiMTk4NjBhCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIE1vbiBBdWcgMzEgMjI6MTA6MzMgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2RwX3J4LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2RwX3J4LmMKaW5kZXggOTVkODdkZDY3ODcyZi4uNTFjMGUwODA3M2VkZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9kcF9yeC5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvZHBfcnguYwpAQCAtMjI1LDIyICYjNDM7MjI1LDQzIEBAIGludCBhdGgxMmtfd2lmaTdfZHBfcmVvX2NhY2hlX2ZsdXNoKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIsCiAJCQkJICAgIHN0cnVjdCBhdGgxMmtfZHBfcnhfdGlkX3J4cSAqcnhfdGlkKQogewogCXN0cnVjdCBhdGgxMmtfaGFsX3Jlb19jbWQgY21kID0ge307CiYjNDM7CWRtYV9hZGRyX3QgcGFkZHIgPSByeF90aWQtJmd0O3FidWYucGFkZHJfYWxpZ25lZDsKJiM0MzsJdTMyIG9mZiA9IHJ4X3RpZC0mZ3Q7cWJ1Zi5zaXplOwogCWludCByZXQ7CiAKLQljbWQuYWRkcl9sbyA9IGxvd2VyXzMyX2JpdHMocnhfdGlkLSZndDtxYnVmLnBhZGRyX2FsaWduZWQpOwotCWNtZC5hZGRyX2hpID0gdXBwZXJfMzJfYml0cyhyeF90aWQtJmd0O3FidWYucGFkZHJfYWxpZ25lZCk7CiYjNDM7CS8qIFRoZSBSRU8gY2FjaGUgY29udHJvbGxlciBjYWNoZXMgdGhlIHF1ZXVlIGRlc2NyaXB0b3IgYW5kIGVhY2gKJiM0MzsJICogMTI4LWJ5dGUgZXh0ZW5zaW9uIGRlc2NyaXB0b3IgYXMgc2VwYXJhdGUgb2JqZWN0cywgYW5kIGEKJiM0MzsJICogRkxVU0hfQ0FDSEUgY29tbWFuZCBvbmx5IGFkZHJlc3NlcyBvbmUgb2YgdGhlbS4gRkxVU0hfUVVFVUVfMUtfREVTQwomIzQzOwkgKiBleHRlbmRzIHRoZSBiYXNlIGZsdXNoIHRvIHRoZSAxSy13aW5kb3cgZGVzY3JpcHRvciBidXQgZG9lcyBub3QKJiM0MzsJICogY292ZXIgdGhlIGV4dGVuc2lvbiBkZXNjcmlwdG9ycywgc28gZmx1c2ggdGhvc2UgZXhwbGljaXRseSBmaXJzdC4KJiM0MzsJICogVGhlIGNvbW1hbmQgcmluZyBleGVjdXRlcyBpbiBvcmRlciwgaGVuY2UgdGhlIGZpbmFsIGJhc2UgZmx1c2gKJiM0MzsJICogc3RhdHVzIGFsc28gY29uZmlybXMgdGhlIGV4dGVuc2lvbiBmbHVzaGVzIGhhdmUgY29tcGxldGVkLgomIzQzOwkgKi8KJiM0MzsJd2hpbGUgKG9mZiAmZ3Q7IEhBTF9MSU5LX0RFU0NfQUxJR04pIHsKJiM0MzsJCW9mZiAtPSBIQUxfTElOS19ERVNDX0FMSUdOOwomIzQzOwkJbWVtc2V0KCZhbXA7Y21kLCAwLCBzaXplb2YoY21kKSk7CiYjNDM7CQljbWQuYWRkcl9sbyA9IGxvd2VyXzMyX2JpdHMocGFkZHIgJiM0Mzsgb2ZmKTsKJiM0MzsJCWNtZC5hZGRyX2hpID0gdXBwZXJfMzJfYml0cyhwYWRkciAmIzQzOyBvZmYpOwomIzQzOwkJcmV0ID0gYXRoMTJrX3dpZmk3X2RwX3Jlb19jbWRfc2VuZChhYiwgcnhfdGlkLAomIzQzOwkJCQkJCSAgIEhBTF9SRU9fQ01EX0ZMVVNIX0NBQ0hFLAomIzQzOwkJCQkJCSAgICZhbXA7Y21kLCBOVUxMKTsKJiM0MzsJCWlmIChyZXQpIHsKJiM0MzsJCQlhdGgxMmtfd2FybihhYiwKJiM0MzsJCQkJICAgICYjMzQ7ZmFpbGVkIHRvIHNlbmQgRkxVU0hfQ0FDSEUgZm9yIHRpZCAlZCBvZmZzZXQgMHgleDogJWRcbiYjMzQ7LAomIzQzOwkJCQkgICAgcnhfdGlkLSZndDt0aWQsIG9mZiwgcmV0KTsKJiM0MzsJCQlyZXR1cm4gcmV0OwomIzQzOwkJfQomIzQzOwl9CiYjNDM7CiYjNDM7CW1lbXNldCgmYW1wO2NtZCwgMCwgc2l6ZW9mKGNtZCkpOwomIzQzOwljbWQuYWRkcl9sbyA9IGxvd2VyXzMyX2JpdHMocGFkZHIpOwomIzQzOwljbWQuYWRkcl9oaSA9IHVwcGVyXzMyX2JpdHMocGFkZHIpOwogCS8qIEhBTF9SRU9fQ01EX0ZMR19GTFVTSF9GV0RfQUxMX01QRFVTIC0gYWxsIHBlbmRpbmcgTVBEVXMKLQkgKmluIHRoZSBiaXRtYXAgd2lsbCBiZSBmb3J3YXJkZWQvZmx1c2hlZCB0byBSRU8gb3V0cHV0IHJpbmdzCiYjNDM7CSAqIGluIHRoZSBiaXRtYXAgd2lsbCBiZSBmb3J3YXJkZWQvZmx1c2hlZCB0byBSRU8gb3V0cHV0IHJpbmdzCiAJICovCiAJY21kLmZsYWcgPSBIQUxfUkVPX0NNRF9GTEdfTkVFRF9TVEFUVVMgfAogCQkgICBIQUxfUkVPX0NNRF9GTEdfRkxVU0hfRldEX0FMTF9NUERVUzsKIAotCS8qIEZvciBhbGwgUW9TIFRJRHMgKGV4Y2VwdCBOT05fUU9TKSwgdGhlIGRyaXZlciBhbGxvY2F0ZXMgYSBtYXhpbXVtCi0JICogd2luZG93IHNpemUgb2YgMTAyNC4gSW4gc3VjaCBjYXNlcywgdGhlIGRyaXZlciBjYW4gaXNzdWUgYSBzaW5nbGUKLQkgKiAxS0IgZGVzY3JpcHRvciBmbHVzaCBjb21tYW5kIGluc3RlYWQgb2Ygc2VuZGluZyBtdWx0aXBsZSAxMjgtYnl0ZQotCSAqIGZsdXNoIGNvbW1hbmRzIGZvciBlYWNoIFFvUyBUSUQsIGltcHJvdmluZyBlZmZpY2llbmN5LgotCSAqLwotCiAJaWYgKHJ4X3RpZC0mZ3Q7dGlkICE9IEhBTF9ERVNDX1JFT19OT05fUU9TX1RJRCkKIAkJY21kLmZsYWcgfD0gSEFMX1JFT19DTURfRkxHX0ZMVVNIX1FVRVVFXzFLX0RFU0M7CiAKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzEgMjI6MTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjg0OAoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDEyMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipJbml0aWFsIEFzc2Vzc21lbnQgb2YgdGhlIENvZGUgQ2hhbmdlKioKCk9rYXksIHNvIHRoZSBwYXRjaCBpcyBoaXR0aW5nIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2RwX3J4LmNgLCBzcGVjaWZpY2FsbHkgdGhlIGZ1bmN0aW9uIGBhdGgxMmtfd2lmaTdfZHBfcmVvX2NhY2hlX2ZsdXNoYC4gVGhpcyBpbW1lZGlhdGVseSB0ZWxscyBtZSB3ZSYjMzk7cmUgbG9va2luZyBhdCBhIFF1YWxjb21tIFdpLUZpIDcgZHJpdmVyLCBgYXRoMTJrYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGZpZ3VyZSBvdXQgaWYgdGhpcyBpcyBzb21ldGhpbmcgdGhhdCYjMzk7cyB0aWVkIHRvIHBoeXNpY2FsIGhhcmR3YXJlLCBvciBpZiBpdCYjMzk7cyByZW1vdGVseSB0ZXN0YWJsZS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGF0dGFjayBzdXJmYWNlLiBJdCBsb29rcyBsaWtlIGl0IGhhbmRsZXMgUENJIG9yIEFIQiwgd2hpY2ggbWFrZXMgbWUgdGhpbmsgaXTigJlzIGxpa2VseSBoYXJkd2FyZSBkZXBlbmRlbnQsIGJ1dCBJIG5lZWQgdG8gY29uZmlybS4gTGV0JiMzOTtzIGNoZWNrIHRoZSBLY29uZmlnIHRvIHNlZSB3aGF0IGtpbmQgb2YgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSBhdmFpbGFibGUgZm9yIEFUSDEySy4gSSBuZWVkIHRvIGFzY2VydGFpbiB0aGUgcG9zc2liaWxpdHkgb2YgcmVhY2hpbmcgdGhpcyBjb2RlIGluIGEgc3RhbmRhcmQgZnV6emluZyBlbnZpcm9ubWVudCBsaWtlIFFFTVUgb3IgR0NFLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzMxIDIyOjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBBVEgxMksmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjI6Y29uZmlnIEFUSDEyS1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTMtXHR0cmlzdGF0ZSBcJiMzNDtRdWFsY29tbSBXaS1GaSA3IHN1cHBvcnQgKGF0aDEyaylcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6MTc6Y29uZmlnIEFUSDEyS19BSEJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0xOC1cdGJvb2wgXCYjMzQ7UXVhbGNvbW0gYXRoMTJrIEFIQiBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTI0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjI1OmNvbmZpZyBBVEgxMktfREVCVUdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0yNi1cdGJvb2wgXCYjMzQ7YXRoMTJrIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0zNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzozNTpjb25maWcgQVRIMTJLX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0zNi1cdGJvb2wgXCYjMzQ7UXVhbGNvbW0gYXRoMTJrIGRlYnVnZnMgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy00My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzo0NDpjb25maWcgQVRIMTJLX1RSQUNJTkdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy00NS1cdGJvb2wgXCYjMzQ7YXRoMTJrIHRyYWNpbmcgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy01Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzo1Mzpjb25maWcgQVRIMTJLX0NPUkVEVU1QXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNTQtXHRib29sIFwmIzM0O2F0aDEyayBjb3JlZHVtcFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzMxIDIyOjEwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM3MDkKCQkJCQkJCW91dHB1dDogNDEKCQkJCQkJCXRob3VnaHRzOiAyNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzOgoKKipFeGFtaW5pbmcgdGhlIEF0aGVyb3MgV2lyZWxlc3MgRHJpdmVyIENvbmZpZ3VyYXRpb24qKgoKT2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGUgYEtjb25maWdgIGZpbGUgZm9yIHRoZSBBdGhlcm9zIGF0aDEyayB3aXJlbGVzcyBkcml2ZXIuIFNwZWNpZmljYWxseSwgSSYjMzk7bSBnb2luZyB0byBsb29rIGF0IHRoZSBgcmVhZC1maWxlYCBkaXJlY3RpdmUgd2l0aGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWdgLiBJJiMzOTttIGd1ZXNzaW5nIEkmIzM5O2xsIGZpbmQgc29tZSB1c2VmdWwgaW5mb3JtYXRpb24gYWJvdXQgaG93IHRoaXMgZHJpdmVyIGlzIGNvbmZpZ3VyZWQsIHBlcmhhcHMgZGVwZW5kZW5jaWVzIG9uIG90aGVyIG1vZHVsZXMsIGRlZmF1bHQgc2V0dGluZ3MsIG9yIG1heWJlIGV2ZW4gY29uZGl0aW9uYWwgY29tcGlsYXRpb24gbG9naWMgYmFzZWQgb24gdGhlIHRhcmdldCBoYXJkd2FyZS4gVGhpcyBtaWdodCBiZSBjcnVjaWFsIGlmIEkmIzM5O20gdHJ5aW5nIHRvIGRlYnVnIGEgd2lyZWxlc3MgY29ubmVjdGl2aXR5IGlzc3VlLCBvcHRpbWl6ZSB0aGUgZHJpdmVyJiMzOTtzIHBlcmZvcm1hbmNlLCBvciBqdXN0IHVuZGVyc3RhbmQgaXRzIGJ1aWxkIHByb2Nlc3MgbW9yZSBkZWVwbHkuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgS2NvbmZpZyBpbmZyYXN0cnVjdHVyZSBpcyBsZXZlcmFnZWQgd2l0aGluIHRoaXMgZHJpdmVyIHNvIHRoYXQgSSBjYW4gcHJvdmlkZSBhbiBhY2N1cmF0ZSBhc3Nlc3NtZW50LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzMxIDIyOjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA2MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXG4gICAyOlx0Y29uZmlnIEFUSDEyS1xuICAgMzpcdFx0dHJpc3RhdGUgXCYjMzQ7UXVhbGNvbW0gV2ktRmkgNyBzdXBwb3J0IChhdGgxMmspXCYjMzQ7XG4gICA0Olx0XHRkZXBlbmRzIG9uIE1BQzgwMjExIFx1MDAyNlx1MDAyNiBIQVNfRE1BIFx1MDAyNlx1MDAyNiBQQ0lcbiAgIDU6XHRcdHNlbGVjdCBRQ09NX1FNSV9IRUxQRVJTXG4gICA2Olx0XHRzZWxlY3QgTUhJX0JVU1xuICAgNzpcdFx0c2VsZWN0IFFSVFJcbiAgIDg6XHRcdHNlbGVjdCBRUlRSX01ISVxuICAgOTpcdFx0c2VsZWN0IFBDSV9QV1JDVFJMX1BXUlNFUSBpZiBIQVZFX1BXUkNUUkxcbiAgMTA6XHRcdGhlbHBcbiAgMTE6XHRcdCAgRW5hYmxlIHN1cHBvcnQgZm9yIFF1YWxjb21tIFRlY2hub2xvZ2llcyBXaS1GaSA3IChJRUVFXG4gIDEyOlx0XHQgIDgwMi4xMWJlKSBmYW1pbHkgb2YgY2hpcHNldHMsIGZvciBleGFtcGxlIFdDTjc4NTAgYW5kXG4gIDEzOlx0XHQgIFFDTjkyNzQuXG4gIDE0Olx0XG4gIDE1Olx0XHQgIElmIHlvdSBjaG9vc2UgdG8gYnVpbGQgYSBtb2R1bGUsIGl0JiMzOTtsbCBiZSBjYWxsZWQgYXRoMTJrLlxuICAxNjpcdFxuICAxNzpcdGNvbmZpZyBBVEgxMktfQUhCXG4gIDE4Olx0XHRib29sIFwmIzM0O1F1YWxjb21tIGF0aDEyayBBSEIgc3VwcG9ydFwmIzM0O1xuICAxOTpcdFx0ZGVwZW5kcyBvbiBBVEgxMksgXHUwMDI2XHUwMDI2IFJFTU9URVBST0NcbiAgMjA6XHRcdHNlbGVjdCBRQ09NX01EVF9MT0FERVJcbiAgMjE6XHRcdHNlbGVjdCBRQ09NX1BBU1xuICAyMjpcdFx0aGVscFxuICAyMzpcdFx0ICBFbmFibGUgc3VwcG9ydCBmb3IgQXRoMTJrIEFIQiBidXMgY2hpcHNldHMsIGV4YW1wbGUgSVBRNTMzMi5cbiAgMjQ6XHRcbiAgMjU6XHRjb25maWcgQVRIMTJLX0RFQlVHXG4gIDI2Olx0XHRib29sIFwmIzM0O2F0aDEyayBkZWJ1Z2dpbmdcJiMzNDtcbiAgMjc6XHRcdGRlcGVuZHMgb24gQVRIMTJLXG4gIDI4Olx0XHRoZWxwXG4gIDI5Olx0XHQgIEVuYWJsZSBkZWJ1ZyBzdXBwb3J0LCBmb3IgZXhhbXBsZSBkZWJ1ZyBtZXNzYWdlcyB3aGljaCBtdXN0XG4gIDMwOlx0XHQgIGJlIGVuYWJsZWQgc2VwYXJhdGVseSB1c2luZyB0aGUgZGVidWdfbWFzayBtb2R1bGUgcGFyYW1ldGVyLlxuICAzMTpcdFxuICAzMjpcdFx0ICBJZiB1bnN1cmUsIHNheSBZIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGRlYnVnIHByb2JsZW1zLiBCdXQgaWZcbiAgMzM6XHRcdCAgeW91IHdhbnQgb3B0aW1hbCBwZXJmb3JtYW5jZSBjaG9vc2UgTi5cbiAgMzQ6XHRcbiAgMzU6XHRjb25maWcgQVRIMTJLX0RFQlVHRlNcbiAgMzY6XHRcdGJvb2wgXCYjMzQ7UXVhbGNvbW0gYXRoMTJrIGRlYnVnZnMgc3VwcG9ydFwmIzM0O1xuICAzNzpcdFx0ZGVwZW5kcyBvbiBBVEgxMksgXHUwMDI2XHUwMDI2IE1BQzgwMjExX0RFQlVHRlNcbiAgMzg6XHRcdGhlbHBcbiAgMzk6XHRcdCAgRW5hYmxlIGF0aDEyayBkZWJ1Z2ZzIHN1cHBvcnRcbiAgNDA6XHRcbiAgNDE6XHRcdCAgSWYgdW5zdXJlLCBzYXkgWSB0byBtYWtlIGl0IGVhc2llciB0byBkZWJ1ZyBwcm9ibGVtcy4gQnV0IGlmXG4gIDQyOlx0XHQgIHlvdSB3YW50IG9wdGltYWwgcGVyZm9ybWFuY2UgY2hvb3NlIE4uXG4gIDQzOlx0XG4gIDQ0Olx0Y29uZmlnIEFUSDEyS19UUkFDSU5HXG4gIDQ1Olx0XHRib29sIFwmIzM0O2F0aDEyayB0cmFjaW5nIHN1cHBvcnRcJiMzNDtcbiAgNDY6XHRcdGRlcGVuZHMgb24gQVRIMTJLIFx1MDAyNlx1MDAyNiBFVkVOVF9UUkFDSU5HXG4gIDQ3Olx0XHRoZWxwXG4gIDQ4Olx0XHQgIEVuYWJsZSBhdGgxMmsgdHJhY2luZyBpbmZyYXN0cnVjdHVyZS5cbiAgNDk6XHRcbiAgNTA6XHRcdCAgSWYgdW5zdXJlLCBzYXkgWSB0byBtYWtlIGl0IGVhc2llciB0byBkZWJ1ZyBwcm9ibGVtcy4gQnV0IGlmXG4gIDUxOlx0XHQgIHlvdSB3YW50IG9wdGltYWwgcGVyZm9ybWFuY2UgY2hvb3NlIE4uXG4gIDUyOlx0XG4gIDUzOlx0Y29uZmlnIEFUSDEyS19DT1JFRFVNUFxuICA1NDpcdFx0Ym9vbCBcJiMzNDthdGgxMmsgY29yZWR1bXBcJiMzNDtcbiAgNTU6XHRcdGRlcGVuZHMgb24gQVRIMTJLXG4gIDU2Olx0XHRzZWxlY3QgV0FOVF9ERVZfQ09SRURVTVBcbiAgNTc6XHRcdGhlbHBcbiAgNTg6XHRcdCAgRW5hYmxlIGF0aDEyayBjb3JlZHVtcCBjb2xsZWN0aW9uXG4gIDU5Olx0XG4gIDYwOlx0XHQgIElmIHVuc3VyZSwgc2F5IFkgdG8gbWFrZSBpdCBlYXNpZXIgdG8gZGVidWcgcHJvYmxlbXMuIEJ1dCBpZlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzMxIDIyOjEwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ3OTEKCQkJCQkJCW91dHB1dDogMTI4CgkJCQkJCQl0aG91Z2h0czogODQyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgRnV6emluZyBQb3RlbnRpYWwgb2YgVGhpcyBQYXRjaCoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBGaXJzdCwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCAmIzM0O2F0aDEyayYjMzQ7IGFjdHVhbGx5ICppcyouIFJpZ2h0LCBpdCYjMzk7cyBhIHdpcmVsZXNzIGRyaXZlciBzcGVjaWZpY2FsbHkgZm9yIFF1YWxjb21tIFdpLUZpIDcgY2hpcHNldHMg4oCTIHRoaW5rIFdDTjc4NTAsIFFDTjkyNzQsIHRoYXQga2luZCBvZiB0aGluZy4gVGhlIHF1ZXN0aW9uLCB0aGVuLCBpcyB3aGV0aGVyIHN0YW5kYXJkIFFFTVUgb3IgR29vZ2xlIENvbXB1dGUgRW5naW5lIChHQ0UpIGVtdWxhdGVzICp0aGF0KiBoYXJkd2FyZS4gVGhlIGFuc3dlciwgYXMgSSBhbHJlYWR5IGtuZXcsIGlzIGEgcmVzb3VuZGluZyBuby4gV2lyZWxlc3MsIGVzcGVjaWFsbHkgdGhlc2UgbmV3ZXIgV2ktRmkgNyBjaGlwc2V0cywgbmVlZHMgdGhlIHJlYWwgZGVhbDogcGh5c2ljYWwgUENJZSBvciBBSEIgUXVhbGNvbW0gV2ktRmkgY2hpcHMsIGNvbXBsZXRlIHdpdGggZmlybXdhcmUsIE1ISSBidXMsIFFNSSwgUVJUUiwgdGhlIHdob2xlIHNoZWJhbmcuCgpOb3csIGxldCYjMzk7cyByZS1yZWFkIHRoZSBwcm9tcHQmIzM5O3MgcnVsZXMuIFdlJiMzOTtyZSBsb29raW5nIGZvciB3aGV0aGVyIGl04oCZcyAmIzM0O1dvcnRoRnV6emluZyYjMzQ7LiBDZXJ0YWluIG1vZGlmaWNhdGlvbnMgYXJlIGF1dG9tYXRpY2FsbHkgZXhjbHVkZWQ6IGRvY3VtZW50YXRpb24sIEtjb25maWcgY2hhbmdlcywgY29tbWVudHMsIGRlY29yYXRpdmUgbG9nZ2luZyAobGlrZSBwcmludGsvcHJfZXJyKSwgaGFybWxlc3MgbnVtZXJpYyBjaGFuZ2VzLCB1bnJlYWNoYWJsZSBjb2RlIHBhdGhzIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cywgYW5kIHZlbmRvci1zcGVjaWZpYyBkcml2ZXJzIHJlcXVpcmluZyBwaHlzaWNhbCBoYXJkd2FyZS4KCkxldCYjMzk7cyBjaGVjayBpZiB0aGVyZSBhcmUgYW55IHZpcnR1YWwgZGV2aWNlcy4gSG1tLCBkb2VzIGBtYWM4MDIxMV9od3NpbWAgY29tZSBpbnRvIHBsYXk/IEl04oCZcyBpdHMgb3duIGRyaXZlciwgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvbWFjODAyMTFfaHdzaW0uY2AsIGJ1dCBpdCBkb2VzbiYjMzk7dCAqdXNlKiBhdGgxMmsuIEFnYWluLCBhdGgxMmsgaXMgZmlybWx5IGluIHRoZSByZWFsbSBvZiByZWFsLXdvcmxkIFF1YWxjb21tIFdpLUZpIDcgaGFyZHdhcmUuIFRoZSBkZXZpY2UgcHJvYmUgd2lsbCAqbmV2ZXIqIHN1Y2NlZWQgd2l0aG91dCBwaHlzaWNhbCBoYXJkd2FyZS4gUUVNVSBhbmQgR0NFIGFyZW4mIzM5O3QgZ29pbmcgdG8gaGVscCBoZXJlLgoKU28sIGZyb20gYSBmdXp6aW5nIHBlcnNwZWN0aXZlLCB0aGlzIGNvZGUgaXMgZGVhZCBpbiB0aGUgd2F0ZXIgaW4gc3RhbmRhcmQgc2V0dXBzLiBJdOKAmXMgYSBkcml2ZXIgZm9yIHBoeXNpY2FsIGhhcmR3YXJlIHRoYXQmIzM5O3Mgbm90IGVtdWxhdGVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gSXQmIzM5O3Mgc2ltcGx5IHVucmVhY2hhYmxlIGFuZCB1bmZ1enphYmxlIHdpdGhvdXQgYSBzcGVjaWZpYyBwaHlzaWNhbCBzZXR1cC4KCk5vdywgbGV0JiMzOTtzIG1ha2Ugc3VyZSBub3RoaW5nIGVsc2Ugd2FzIG1vZGlmaWVkLgoKT2theSwgb25seSBgZHBfcnguY2AgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvYCB3YXMgdG91Y2hlZC4KCkluIGNvbmNsdXNpb24sIEkgY2FuIGNvbmZpZGVudGx5IHNheToKCiogICAqKldvcnRoRnV6emluZzogZmFsc2UqKgoqICAgKipGb2N1c1N5bWJvbHM6IFxbIF0qKiAoZW1wdHkpCiogICAqKkVuYWJsZUNvbmZpZ3M6IFxbIF0qKiAoZW1wdHkpCiogICAqKlJlYXNvbmluZzoqKiBUaGUgY29kZSBpcyBpbiBhIGRyaXZlciBmb3IgUXVhbGNvbW0gV2ktRmkgNyBoYXJkd2FyZSAoV0NONzg1MC9RQ045Mjc0KSBhbmQgcmVxdWlyZXMgcGh5c2ljYWwgUENJZSBvciBBSEIgaGFyZHdhcmUuIFRoaXMgaXMgbm90IGVtdWxhdGVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIGNhbm5vdCBiZSByZWFjaGVkIGFuZCBmdXp6ZWQuCgpOb3csIGxldCYjMzk7cyBjYWxsIGBzZXQtcmVzdWx0c2AuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzEgMjI6MTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgUXVhbGNvbW0gV2ktRmkgNyBkcml2ZXIgKGF0aDEyayksIHNwZWNpZmljYWxseSBSRU8gY2FjaGUgZmx1c2ggbG9naWMgZm9yIFJYIGRlc2NyaXB0b3JzLiBhdGgxMmsgcmVxdWlyZXMgcGh5c2ljYWwgUXVhbGNvbW0gV2ktRmkgNyBoYXJkd2FyZSAoZS5nLiwgV0NONzg1MCwgUUNOOTI3NCkgb3ZlciBQQ0llIG9yIEFIQiBidXMgYW5kIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBRdWFsY29tbSBXaS1GaSA3IGRyaXZlciAoYXRoMTJrKSwgc3BlY2lmaWNhbGx5IFJFTyBjYWNoZSBmbHVzaCBsb2dpYyBmb3IgUlggZGVzY3JpcHRvcnMuIGF0aDEyayByZXF1aXJlcyBwaHlzaWNhbCBRdWFsY29tbSBXaS1GaSA3IGhhcmR3YXJlIChlLmcuLCBXQ043ODUwLCBRQ045Mjc0KSBvdmVyIFBDSWUgb3IgQUhCIGJ1cyBhbmQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChRRU1VL0dDRSkuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMSAyMjoxMDwvdGQ+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+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMzFUMjI6MTA6MzMuODc0ODI1Njk3WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjAyNDQ5MDEwMjQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJcIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgUXVhbGNvbW0gV2ktRmkgNyBkcml2ZXIgKGF0aDEyayksIHNwZWNpZmljYWxseSBSRU8gY2FjaGUgZmx1c2ggbG9naWMgZm9yIFJYIGRlc2NyaXB0b3JzLiBhdGgxMmsgcmVxdWlyZXMgcGh5c2ljYWwgUXVhbGNvbW0gV2ktRmkgNyBoYXJkd2FyZSAoZS5nLiwgV0NONzg1MCwgUUNOOTI3NCkgb3ZlciBQQ0llIG9yIEFIQiBidXMgYW5kIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMxVDIyOjEwOjMzLjg3NDgzMjk0N1oiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTM5MzY3Mjg3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgMjIxNjAyYzlmZDcyNTc1NzA5ZDcxNGU5YjBiM2U0NGRiYjE5ODYwYVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgTW9uIEF1ZyAzMSAyMjoxMDozMyAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2RwX3J4LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dpZmk3L2RwX3J4LmNcXG5pbmRleCA5NWQ4N2RkNjc4NzJmLi41MWMwZTA4MDczZWRkIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvZHBfcnguY1xcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvZHBfcnguY1xcbkBAIC0yMjUsMjIgKzIyNSw0MyBAQCBpbnQgYXRoMTJrX3dpZmk3X2RwX3Jlb19jYWNoZV9mbHVzaChzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiLFxcbiBcXHRcXHRcXHRcXHQgICAgc3RydWN0IGF0aDEya19kcF9yeF90aWRfcnhxICpyeF90aWQpXFxuIHtcXG4gXFx0c3RydWN0IGF0aDEya19oYWxfcmVvX2NtZCBjbWQgPSB7fTtcXG4rXFx0ZG1hX2FkZHJfdCBwYWRkciA9IHJ4X3RpZC1cXHUwMDNlcWJ1Zi5wYWRkcl9hbGlnbmVkO1xcbitcXHR1MzIgb2ZmID0gcnhfdGlkLVxcdTAwM2VxYnVmLnNpemU7XFxuIFxcdGludCByZXQ7XFxuIFxcbi1cXHRjbWQuYWRkcl9sbyA9IGxvd2VyXzMyX2JpdHMocnhfdGlkLVxcdTAwM2VxYnVmLnBhZGRyX2FsaWduZWQpO1xcbi1cXHRjbWQuYWRkcl9oaSA9IHVwcGVyXzMyX2JpdHMocnhfdGlkLVxcdTAwM2VxYnVmLnBhZGRyX2FsaWduZWQpO1xcbitcXHQvKiBUaGUgUkVPIGNhY2hlIGNvbnRyb2xsZXIgY2FjaGVzIHRoZSBxdWV1ZSBkZXNjcmlwdG9yIGFuZCBlYWNoXFxuK1xcdCAqIDEyOC1ieXRlIGV4dGVuc2lvbiBkZXNjcmlwdG9yIGFzIHNlcGFyYXRlIG9iamVjdHMsIGFuZCBhXFxuK1xcdCAqIEZMVVNIX0NBQ0hFIGNvbW1hbmQgb25seSBhZGRyZXNzZXMgb25lIG9mIHRoZW0uIEZMVVNIX1FVRVVFXzFLX0RFU0NcXG4rXFx0ICogZXh0ZW5kcyB0aGUgYmFzZSBmbHVzaCB0byB0aGUgMUstd2luZG93IGRlc2NyaXB0b3IgYnV0IGRvZXMgbm90XFxuK1xcdCAqIGNvdmVyIHRoZSBleHRlbnNpb24gZGVzY3JpcHRvcnMsIHNvIGZsdXNoIHRob3NlIGV4cGxpY2l0bHkgZmlyc3QuXFxuK1xcdCAqIFRoZSBjb21tYW5kIHJpbmcgZXhlY3V0ZXMgaW4gb3JkZXIsIGhlbmNlIHRoZSBmaW5hbCBiYXNlIGZsdXNoXFxuK1xcdCAqIHN0YXR1cyBhbHNvIGNvbmZpcm1zIHRoZSBleHRlbnNpb24gZmx1c2hlcyBoYXZlIGNvbXBsZXRlZC5cXG4rXFx0ICovXFxuK1xcdHdoaWxlIChvZmYgXFx1MDAzZSBIQUxfTElOS19ERVNDX0FMSUdOKSB7XFxuK1xcdFxcdG9mZiAtPSBIQUxfTElOS19ERVNDX0FMSUdOO1xcbitcXHRcXHRtZW1zZXQoXFx1MDAyNmNtZCwgMCwgc2l6ZW9mKGNtZCkpO1xcbitcXHRcXHRjbWQuYWRkcl9sbyA9IGxvd2VyXzMyX2JpdHMocGFkZHIgKyBvZmYpO1xcbitcXHRcXHRjbWQuYWRkcl9oaSA9IHVwcGVyXzMyX2JpdHMocGFkZHIgKyBvZmYpO1xcbitcXHRcXHRyZXQgPSBhdGgxMmtfd2lmaTdfZHBfcmVvX2NtZF9zZW5kKGFiLCByeF90aWQsXFxuK1xcdFxcdFxcdFxcdFxcdFxcdCAgIEhBTF9SRU9fQ01EX0ZMVVNIX0NBQ0hFLFxcbitcXHRcXHRcXHRcXHRcXHRcXHQgICBcXHUwMDI2Y21kLCBOVUxMKTtcXG4rXFx0XFx0aWYgKHJldCkge1xcbitcXHRcXHRcXHRhdGgxMmtfd2FybihhYixcXG4rXFx0XFx0XFx0XFx0ICAgIFxcXCJmYWlsZWQgdG8gc2VuZCBGTFVTSF9DQUNIRSBmb3IgdGlkICVkIG9mZnNldCAweCV4OiAlZFxcXFxuXFxcIixcXG4rXFx0XFx0XFx0XFx0ICAgIHJ4X3RpZC1cXHUwMDNldGlkLCBvZmYsIHJldCk7XFxuK1xcdFxcdFxcdHJldHVybiByZXQ7XFxuK1xcdFxcdH1cXG4rXFx0fVxcbitcXG4rXFx0bWVtc2V0KFxcdTAwMjZjbWQsIDAsIHNpemVvZihjbWQpKTtcXG4rXFx0Y21kLmFkZHJfbG8gPSBsb3dlcl8zMl9iaXRzKHBhZGRyKTtcXG4rXFx0Y21kLmFkZHJfaGkgPSB1cHBlcl8zMl9iaXRzKHBhZGRyKTtcXG4gXFx0LyogSEFMX1JFT19DTURfRkxHX0ZMVVNIX0ZXRF9BTExfTVBEVVMgLSBhbGwgcGVuZGluZyBNUERVc1xcbi1cXHQgKmluIHRoZSBiaXRtYXAgd2lsbCBiZSBmb3J3YXJkZWQvZmx1c2hlZCB0byBSRU8gb3V0cHV0IHJpbmdzXFxuK1xcdCAqIGluIHRoZSBiaXRtYXAgd2lsbCBiZSBmb3J3YXJkZWQvZmx1c2hlZCB0byBSRU8gb3V0cHV0IHJpbmdzXFxuIFxcdCAqL1xcbiBcXHRjbWQuZmxhZyA9IEhBTF9SRU9fQ01EX0ZMR19ORUVEX1NUQVRVUyB8XFxuIFxcdFxcdCAgIEhBTF9SRU9fQ01EX0ZMR19GTFVTSF9GV0RfQUxMX01QRFVTO1xcbiBcXG4tXFx0LyogRm9yIGFsbCBRb1MgVElEcyAoZXhjZXB0IE5PTl9RT1MpLCB0aGUgZHJpdmVyIGFsbG9jYXRlcyBhIG1heGltdW1cXG4tXFx0ICogd2luZG93IHNpemUgb2YgMTAyNC4gSW4gc3VjaCBjYXNlcywgdGhlIGRyaXZlciBjYW4gaXNzdWUgYSBzaW5nbGVcXG4tXFx0ICogMUtCIGRlc2NyaXB0b3IgZmx1c2ggY29tbWFuZCBpbnN0ZWFkIG9mIHNlbmRpbmcgbXVsdGlwbGUgMTI4LWJ5dGVcXG4tXFx0ICogZmx1c2ggY29tbWFuZHMgZm9yIGVhY2ggUW9TIFRJRCwgaW1wcm92aW5nIGVmZmljaWVuY3kuXFxuLVxcdCAqL1xcbi1cXG4gXFx0aWYgKHJ4X3RpZC1cXHUwMDNldGlkICE9IEhBTF9ERVNDX1JFT19OT05fUU9TX1RJRClcXG4gXFx0XFx0Y21kLmZsYWcgfD0gSEFMX1JFT19DTURfRkxHX0ZMVVNIX1FVRVVFXzFLX0RFU0M7XFxuIFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0zMVQyMjoxMDozNC40MTQ4NTc2MjRaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJjb3JlIiwiRHVyYXRpb24iOjE5NzA0ODU2NzU4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgUXVhbGNvbW0gV2ktRmkgNyBkcml2ZXIgKGF0aDEyayksIHNwZWNpZmljYWxseSBSRU8gY2FjaGUgZmx1c2ggbG9naWMgZm9yIFJYIGRlc2NyaXB0b3JzLiBhdGgxMmsgcmVxdWlyZXMgcGh5c2ljYWwgUXVhbGNvbW0gV2ktRmkgNyBoYXJkd2FyZSAoZS5nLiwgV0NONzg1MCwgUUNOOTI3NCkgb3ZlciBQQ0llIG9yIEFIQiBidXMgYW5kIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDIyMTYwMmM5ZmQ3MjU3NTcwOWQ3MTRlOWIwYjNlNDRkYmIxOTg2MGFcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEF1ZyAzMSAyMjoxMDozMyAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvZHBfcnguYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvZHBfcnguY1xuaW5kZXggOTVkODdkZDY3ODcyZi4uNTFjMGUwODA3M2VkZCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvZHBfcnguY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93aWZpNy9kcF9yeC5jXG5AQCAtMjI1LDIyICsyMjUsNDMgQEAgaW50IGF0aDEya193aWZpN19kcF9yZW9fY2FjaGVfZmx1c2goc3RydWN0IGF0aDEya19iYXNlICphYixcbiBcdFx0XHRcdCAgICBzdHJ1Y3QgYXRoMTJrX2RwX3J4X3RpZF9yeHEgKnJ4X3RpZClcbiB7XG4gXHRzdHJ1Y3QgYXRoMTJrX2hhbF9yZW9fY21kIGNtZCA9IHt9O1xuK1x0ZG1hX2FkZHJfdCBwYWRkciA9IHJ4X3RpZC1cdTAwM2VxYnVmLnBhZGRyX2FsaWduZWQ7XG4rXHR1MzIgb2ZmID0gcnhfdGlkLVx1MDAzZXFidWYuc2l6ZTtcbiBcdGludCByZXQ7XG4gXG4tXHRjbWQuYWRkcl9sbyA9IGxvd2VyXzMyX2JpdHMocnhfdGlkLVx1MDAzZXFidWYucGFkZHJfYWxpZ25lZCk7XG4tXHRjbWQuYWRkcl9oaSA9IHVwcGVyXzMyX2JpdHMocnhfdGlkLVx1MDAzZXFidWYucGFkZHJfYWxpZ25lZCk7XG4rXHQvKiBUaGUgUkVPIGNhY2hlIGNvbnRyb2xsZXIgY2FjaGVzIHRoZSBxdWV1ZSBkZXNjcmlwdG9yIGFuZCBlYWNoXG4rXHQgKiAxMjgtYnl0ZSBleHRlbnNpb24gZGVzY3JpcHRvciBhcyBzZXBhcmF0ZSBvYmplY3RzLCBhbmQgYVxuK1x0ICogRkxVU0hfQ0FDSEUgY29tbWFuZCBvbmx5IGFkZHJlc3NlcyBvbmUgb2YgdGhlbS4gRkxVU0hfUVVFVUVfMUtfREVTQ1xuK1x0ICogZXh0ZW5kcyB0aGUgYmFzZSBmbHVzaCB0byB0aGUgMUstd2luZG93IGRlc2NyaXB0b3IgYnV0IGRvZXMgbm90XG4rXHQgKiBjb3ZlciB0aGUgZXh0ZW5zaW9uIGRlc2NyaXB0b3JzLCBzbyBmbHVzaCB0aG9zZSBleHBsaWNpdGx5IGZpcnN0LlxuK1x0ICogVGhlIGNvbW1hbmQgcmluZyBleGVjdXRlcyBpbiBvcmRlciwgaGVuY2UgdGhlIGZpbmFsIGJhc2UgZmx1c2hcbitcdCAqIHN0YXR1cyBhbHNvIGNvbmZpcm1zIHRoZSBleHRlbnNpb24gZmx1c2hlcyBoYXZlIGNvbXBsZXRlZC5cbitcdCAqL1xuK1x0d2hpbGUgKG9mZiBcdTAwM2UgSEFMX0xJTktfREVTQ19BTElHTikge1xuK1x0XHRvZmYgLT0gSEFMX0xJTktfREVTQ19BTElHTjtcbitcdFx0bWVtc2V0KFx1MDAyNmNtZCwgMCwgc2l6ZW9mKGNtZCkpO1xuK1x0XHRjbWQuYWRkcl9sbyA9IGxvd2VyXzMyX2JpdHMocGFkZHIgKyBvZmYpO1xuK1x0XHRjbWQuYWRkcl9oaSA9IHVwcGVyXzMyX2JpdHMocGFkZHIgKyBvZmYpO1xuK1x0XHRyZXQgPSBhdGgxMmtfd2lmaTdfZHBfcmVvX2NtZF9zZW5kKGFiLCByeF90aWQsXG4rXHRcdFx0XHRcdFx0ICAgSEFMX1JFT19DTURfRkxVU0hfQ0FDSEUsXG4rXHRcdFx0XHRcdFx0ICAgXHUwMDI2Y21kLCBOVUxMKTtcbitcdFx0aWYgKHJldCkge1xuK1x0XHRcdGF0aDEya193YXJuKGFiLFxuK1x0XHRcdFx0ICAgIFwiZmFpbGVkIHRvIHNlbmQgRkxVU0hfQ0FDSEUgZm9yIHRpZCAlZCBvZmZzZXQgMHgleDogJWRcXG5cIixcbitcdFx0XHRcdCAgICByeF90aWQtXHUwMDNldGlkLCBvZmYsIHJldCk7XG4rXHRcdFx0cmV0dXJuIHJldDtcbitcdFx0fVxuK1x0fVxuK1xuK1x0bWVtc2V0KFx1MDAyNmNtZCwgMCwgc2l6ZW9mKGNtZCkpO1xuK1x0Y21kLmFkZHJfbG8gPSBsb3dlcl8zMl9iaXRzKHBhZGRyKTtcbitcdGNtZC5hZGRyX2hpID0gdXBwZXJfMzJfYml0cyhwYWRkcik7XG4gXHQvKiBIQUxfUkVPX0NNRF9GTEdfRkxVU0hfRldEX0FMTF9NUERVUyAtIGFsbCBwZW5kaW5nIE1QRFVzXG4tXHQgKmluIHRoZSBiaXRtYXAgd2lsbCBiZSBmb3J3YXJkZWQvZmx1c2hlZCB0byBSRU8gb3V0cHV0IHJpbmdzXG4rXHQgKiBpbiB0aGUgYml0bWFwIHdpbGwgYmUgZm9yd2FyZGVkL2ZsdXNoZWQgdG8gUkVPIG91dHB1dCByaW5nc1xuIFx0ICovXG4gXHRjbWQuZmxhZyA9IEhBTF9SRU9fQ01EX0ZMR19ORUVEX1NUQVRVUyB8XG4gXHRcdCAgIEhBTF9SRU9fQ01EX0ZMR19GTFVTSF9GV0RfQUxMX01QRFVTO1xuIFxuLVx0LyogRm9yIGFsbCBRb1MgVElEcyAoZXhjZXB0IE5PTl9RT1MpLCB0aGUgZHJpdmVyIGFsbG9jYXRlcyBhIG1heGltdW1cbi1cdCAqIHdpbmRvdyBzaXplIG9mIDEwMjQuIEluIHN1Y2ggY2FzZXMsIHRoZSBkcml2ZXIgY2FuIGlzc3VlIGEgc2luZ2xlXG4tXHQgKiAxS0IgZGVzY3JpcHRvciBmbHVzaCBjb21tYW5kIGluc3RlYWQgb2Ygc2VuZGluZyBtdWx0aXBsZSAxMjgtYnl0ZVxuLVx0ICogZmx1c2ggY29tbWFuZHMgZm9yIGVhY2ggUW9TIFRJRCwgaW1wcm92aW5nIGVmZmljaWVuY3kuXG4tXHQgKi9cbi1cbiBcdGlmIChyeF90aWQtXHUwMDNldGlkICE9IEhBTF9ERVNDX1JFT19OT05fUU9TX1RJRClcbiBcdFx0Y21kLmZsYWcgfD0gSEFMX1JFT19DTURfRkxHX0ZMVVNIX1FVRVVFXzFLX0RFU0M7XG4gXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0zMVQyMjoxMDozNC40MTQ4NTg5MjRaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoxMDY0MTI5NzQ3NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipJbml0aWFsIEFzc2Vzc21lbnQgb2YgdGhlIENvZGUgQ2hhbmdlKipcblxuT2theSwgc28gdGhlIHBhdGNoIGlzIGhpdHRpbmcgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvZHBfcnguY2AsIHNwZWNpZmljYWxseSB0aGUgZnVuY3Rpb24gYGF0aDEya193aWZpN19kcF9yZW9fY2FjaGVfZmx1c2hgLiBUaGlzIGltbWVkaWF0ZWx5IHRlbGxzIG1lIHdlJ3JlIGxvb2tpbmcgYXQgYSBRdWFsY29tbSBXaS1GaSA3IGRyaXZlciwgYGF0aDEya2AuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBmaWd1cmUgb3V0IGlmIHRoaXMgaXMgc29tZXRoaW5nIHRoYXQncyB0aWVkIHRvIHBoeXNpY2FsIGhhcmR3YXJlLCBvciBpZiBpdCdzIHJlbW90ZWx5IHRlc3RhYmxlLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgYXR0YWNrIHN1cmZhY2UuIEl0IGxvb2tzIGxpa2UgaXQgaGFuZGxlcyBQQ0kgb3IgQUhCLCB3aGljaCBtYWtlcyBtZSB0aGluayBpdOKAmXMgbGlrZWx5IGhhcmR3YXJlIGRlcGVuZGVudCwgYnV0IEkgbmVlZCB0byBjb25maXJtLiBMZXQncyBjaGVjayB0aGUgS2NvbmZpZyB0byBzZWUgd2hhdCBraW5kIG9mIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcmUgYXZhaWxhYmxlIGZvciBBVEgxMksuIEkgbmVlZCB0byBhc2NlcnRhaW4gdGhlIHBvc3NpYmlsaXR5IG9mIHJlYWNoaW5nIHRoaXMgY29kZSBpbiBhIHN0YW5kYXJkIGZ1enppbmcgZW52aXJvbm1lbnQgbGlrZSBRRU1VIG9yIEdDRS5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjg0OCwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEyMCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMxVDIyOjEwOjQ1LjA1NjE1ODkwOVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3MzE2MDEzNiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgQVRIMTJLXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmtcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjI6Y29uZmlnIEFUSDEyS1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJRdWFsY29tbSBXaS1GaSA3IHN1cHBvcnQgKGF0aDEyaylcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjE3OmNvbmZpZyBBVEgxMktfQUhCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTE4LVxcdGJvb2wgXFxcIlF1YWxjb21tIGF0aDEyayBBSEIgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0yNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6MjU6Y29uZmlnIEFUSDEyS19ERUJVR1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0yNi1cXHRib29sIFxcXCJhdGgxMmsgZGVidWdnaW5nXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTM0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzozNTpjb25maWcgQVRIMTJLX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMzYtXFx0Ym9vbCBcXFwiUXVhbGNvbW0gYXRoMTJrIGRlYnVnZnMgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy00My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6NDQ6Y29uZmlnIEFUSDEyS19UUkFDSU5HXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTQ1LVxcdGJvb2wgXFxcImF0aDEyayB0cmFjaW5nIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjUzOmNvbmZpZyBBVEgxMktfQ09SRURVTVBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNTQtXFx0Ym9vbCBcXFwiYXRoMTJrIGNvcmVkdW1wXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0zMVQyMjoxMDo0NS4xMjkzMjM1NjZaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjozMDYyMjcyODY5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0czpcblxuKipFeGFtaW5pbmcgdGhlIEF0aGVyb3MgV2lyZWxlc3MgRHJpdmVyIENvbmZpZ3VyYXRpb24qKlxuXG5Pa2F5LCBsZXQncyBkaXZlIGludG8gdGhlIGBLY29uZmlnYCBmaWxlIGZvciB0aGUgQXRoZXJvcyBhdGgxMmsgd2lyZWxlc3MgZHJpdmVyLiBTcGVjaWZpY2FsbHksIEknbSBnb2luZyB0byBsb29rIGF0IHRoZSBgcmVhZC1maWxlYCBkaXJlY3RpdmUgd2l0aGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWdgLiBJJ20gZ3Vlc3NpbmcgSSdsbCBmaW5kIHNvbWUgdXNlZnVsIGluZm9ybWF0aW9uIGFib3V0IGhvdyB0aGlzIGRyaXZlciBpcyBjb25maWd1cmVkLCBwZXJoYXBzIGRlcGVuZGVuY2llcyBvbiBvdGhlciBtb2R1bGVzLCBkZWZhdWx0IHNldHRpbmdzLCBvciBtYXliZSBldmVuIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIGxvZ2ljIGJhc2VkIG9uIHRoZSB0YXJnZXQgaGFyZHdhcmUuIFRoaXMgbWlnaHQgYmUgY3J1Y2lhbCBpZiBJJ20gdHJ5aW5nIHRvIGRlYnVnIGEgd2lyZWxlc3MgY29ubmVjdGl2aXR5IGlzc3VlLCBvcHRpbWl6ZSB0aGUgZHJpdmVyJ3MgcGVyZm9ybWFuY2UsIG9yIGp1c3QgdW5kZXJzdGFuZCBpdHMgYnVpbGQgcHJvY2VzcyBtb3JlIGRlZXBseS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoZSBLY29uZmlnIGluZnJhc3RydWN0dXJlIGlzIGxldmVyYWdlZCB3aXRoaW4gdGhpcyBkcml2ZXIgc28gdGhhdCBJIGNhbiBwcm92aWRlIGFuIGFjY3VyYXRlIGFzc2Vzc21lbnQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM3MDksIk91dHB1dFRva2VucyI6NDEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0zMVQyMjoxMDo0OC4xOTE2MDA0MzVaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjU5NTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDYwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXFxuICAgMjpcXHRjb25maWcgQVRIMTJLXFxuICAgMzpcXHRcXHR0cmlzdGF0ZSBcXFwiUXVhbGNvbW0gV2ktRmkgNyBzdXBwb3J0IChhdGgxMmspXFxcIlxcbiAgIDQ6XFx0XFx0ZGVwZW5kcyBvbiBNQUM4MDIxMSBcXHUwMDI2XFx1MDAyNiBIQVNfRE1BIFxcdTAwMjZcXHUwMDI2IFBDSVxcbiAgIDU6XFx0XFx0c2VsZWN0IFFDT01fUU1JX0hFTFBFUlNcXG4gICA2OlxcdFxcdHNlbGVjdCBNSElfQlVTXFxuICAgNzpcXHRcXHRzZWxlY3QgUVJUUlxcbiAgIDg6XFx0XFx0c2VsZWN0IFFSVFJfTUhJXFxuICAgOTpcXHRcXHRzZWxlY3QgUENJX1BXUkNUUkxfUFdSU0VRIGlmIEhBVkVfUFdSQ1RSTFxcbiAgMTA6XFx0XFx0aGVscFxcbiAgMTE6XFx0XFx0ICBFbmFibGUgc3VwcG9ydCBmb3IgUXVhbGNvbW0gVGVjaG5vbG9naWVzIFdpLUZpIDcgKElFRUVcXG4gIDEyOlxcdFxcdCAgODAyLjExYmUpIGZhbWlseSBvZiBjaGlwc2V0cywgZm9yIGV4YW1wbGUgV0NONzg1MCBhbmRcXG4gIDEzOlxcdFxcdCAgUUNOOTI3NC5cXG4gIDE0OlxcdFxcbiAgMTU6XFx0XFx0ICBJZiB5b3UgY2hvb3NlIHRvIGJ1aWxkIGEgbW9kdWxlLCBpdCdsbCBiZSBjYWxsZWQgYXRoMTJrLlxcbiAgMTY6XFx0XFxuICAxNzpcXHRjb25maWcgQVRIMTJLX0FIQlxcbiAgMTg6XFx0XFx0Ym9vbCBcXFwiUXVhbGNvbW0gYXRoMTJrIEFIQiBzdXBwb3J0XFxcIlxcbiAgMTk6XFx0XFx0ZGVwZW5kcyBvbiBBVEgxMksgXFx1MDAyNlxcdTAwMjYgUkVNT1RFUFJPQ1xcbiAgMjA6XFx0XFx0c2VsZWN0IFFDT01fTURUX0xPQURFUlxcbiAgMjE6XFx0XFx0c2VsZWN0IFFDT01fUEFTXFxuICAyMjpcXHRcXHRoZWxwXFxuICAyMzpcXHRcXHQgIEVuYWJsZSBzdXBwb3J0IGZvciBBdGgxMmsgQUhCIGJ1cyBjaGlwc2V0cywgZXhhbXBsZSBJUFE1MzMyLlxcbiAgMjQ6XFx0XFxuICAyNTpcXHRjb25maWcgQVRIMTJLX0RFQlVHXFxuICAyNjpcXHRcXHRib29sIFxcXCJhdGgxMmsgZGVidWdnaW5nXFxcIlxcbiAgMjc6XFx0XFx0ZGVwZW5kcyBvbiBBVEgxMktcXG4gIDI4OlxcdFxcdGhlbHBcXG4gIDI5OlxcdFxcdCAgRW5hYmxlIGRlYnVnIHN1cHBvcnQsIGZvciBleGFtcGxlIGRlYnVnIG1lc3NhZ2VzIHdoaWNoIG11c3RcXG4gIDMwOlxcdFxcdCAgYmUgZW5hYmxlZCBzZXBhcmF0ZWx5IHVzaW5nIHRoZSBkZWJ1Z19tYXNrIG1vZHVsZSBwYXJhbWV0ZXIuXFxuICAzMTpcXHRcXG4gIDMyOlxcdFxcdCAgSWYgdW5zdXJlLCBzYXkgWSB0byBtYWtlIGl0IGVhc2llciB0byBkZWJ1ZyBwcm9ibGVtcy4gQnV0IGlmXFxuICAzMzpcXHRcXHQgIHlvdSB3YW50IG9wdGltYWwgcGVyZm9ybWFuY2UgY2hvb3NlIE4uXFxuICAzNDpcXHRcXG4gIDM1OlxcdGNvbmZpZyBBVEgxMktfREVCVUdGU1xcbiAgMzY6XFx0XFx0Ym9vbCBcXFwiUXVhbGNvbW0gYXRoMTJrIGRlYnVnZnMgc3VwcG9ydFxcXCJcXG4gIDM3OlxcdFxcdGRlcGVuZHMgb24gQVRIMTJLIFxcdTAwMjZcXHUwMDI2IE1BQzgwMjExX0RFQlVHRlNcXG4gIDM4OlxcdFxcdGhlbHBcXG4gIDM5OlxcdFxcdCAgRW5hYmxlIGF0aDEyayBkZWJ1Z2ZzIHN1cHBvcnRcXG4gIDQwOlxcdFxcbiAgNDE6XFx0XFx0ICBJZiB1bnN1cmUsIHNheSBZIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGRlYnVnIHByb2JsZW1zLiBCdXQgaWZcXG4gIDQyOlxcdFxcdCAgeW91IHdhbnQgb3B0aW1hbCBwZXJmb3JtYW5jZSBjaG9vc2UgTi5cXG4gIDQzOlxcdFxcbiAgNDQ6XFx0Y29uZmlnIEFUSDEyS19UUkFDSU5HXFxuICA0NTpcXHRcXHRib29sIFxcXCJhdGgxMmsgdHJhY2luZyBzdXBwb3J0XFxcIlxcbiAgNDY6XFx0XFx0ZGVwZW5kcyBvbiBBVEgxMksgXFx1MDAyNlxcdTAwMjYgRVZFTlRfVFJBQ0lOR1xcbiAgNDc6XFx0XFx0aGVscFxcbiAgNDg6XFx0XFx0ICBFbmFibGUgYXRoMTJrIHRyYWNpbmcgaW5mcmFzdHJ1Y3R1cmUuXFxuICA0OTpcXHRcXG4gIDUwOlxcdFxcdCAgSWYgdW5zdXJlLCBzYXkgWSB0byBtYWtlIGl0IGVhc2llciB0byBkZWJ1ZyBwcm9ibGVtcy4gQnV0IGlmXFxuICA1MTpcXHRcXHQgIHlvdSB3YW50IG9wdGltYWwgcGVyZm9ybWFuY2UgY2hvb3NlIE4uXFxuICA1MjpcXHRcXG4gIDUzOlxcdGNvbmZpZyBBVEgxMktfQ09SRURVTVBcXG4gIDU0OlxcdFxcdGJvb2wgXFxcImF0aDEyayBjb3JlZHVtcFxcXCJcXG4gIDU1OlxcdFxcdGRlcGVuZHMgb24gQVRIMTJLXFxuICA1NjpcXHRcXHRzZWxlY3QgV0FOVF9ERVZfQ09SRURVTVBcXG4gIDU3OlxcdFxcdGhlbHBcXG4gIDU4OlxcdFxcdCAgRW5hYmxlIGF0aDEyayBjb3JlZHVtcCBjb2xsZWN0aW9uXFxuICA1OTpcXHRcXG4gIDYwOlxcdFxcdCAgSWYgdW5zdXJlLCBzYXkgWSB0byBtYWtlIGl0IGVhc2llciB0byBkZWJ1ZyBwcm9ibGVtcy4gQnV0IGlmXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMxVDIyOjEwOjQ4LjE5MTcyOTAzNVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjU5Mjc5NjA0NjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBGdXp6aW5nIFBvdGVudGlhbCBvZiBUaGlzIFBhdGNoKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBGaXJzdCwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCBcImF0aDEya1wiIGFjdHVhbGx5ICppcyouIFJpZ2h0LCBpdCdzIGEgd2lyZWxlc3MgZHJpdmVyIHNwZWNpZmljYWxseSBmb3IgUXVhbGNvbW0gV2ktRmkgNyBjaGlwc2V0cyDigJMgdGhpbmsgV0NONzg1MCwgUUNOOTI3NCwgdGhhdCBraW5kIG9mIHRoaW5nLiBUaGUgcXVlc3Rpb24sIHRoZW4sIGlzIHdoZXRoZXIgc3RhbmRhcmQgUUVNVSBvciBHb29nbGUgQ29tcHV0ZSBFbmdpbmUgKEdDRSkgZW11bGF0ZXMgKnRoYXQqIGhhcmR3YXJlLiBUaGUgYW5zd2VyLCBhcyBJIGFscmVhZHkga25ldywgaXMgYSByZXNvdW5kaW5nIG5vLiBXaXJlbGVzcywgZXNwZWNpYWxseSB0aGVzZSBuZXdlciBXaS1GaSA3IGNoaXBzZXRzLCBuZWVkcyB0aGUgcmVhbCBkZWFsOiBwaHlzaWNhbCBQQ0llIG9yIEFIQiBRdWFsY29tbSBXaS1GaSBjaGlwcywgY29tcGxldGUgd2l0aCBmaXJtd2FyZSwgTUhJIGJ1cywgUU1JLCBRUlRSLCB0aGUgd2hvbGUgc2hlYmFuZy5cblxuTm93LCBsZXQncyByZS1yZWFkIHRoZSBwcm9tcHQncyBydWxlcy4gV2UncmUgbG9va2luZyBmb3Igd2hldGhlciBpdOKAmXMgXCJXb3J0aEZ1enppbmdcIi4gQ2VydGFpbiBtb2RpZmljYXRpb25zIGFyZSBhdXRvbWF0aWNhbGx5IGV4Y2x1ZGVkOiBkb2N1bWVudGF0aW9uLCBLY29uZmlnIGNoYW5nZXMsIGNvbW1lbnRzLCBkZWNvcmF0aXZlIGxvZ2dpbmcgKGxpa2UgcHJpbnRrL3ByX2VyciksIGhhcm1sZXNzIG51bWVyaWMgY2hhbmdlcywgdW5yZWFjaGFibGUgY29kZSBwYXRocyBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMsIGFuZCB2ZW5kb3Itc3BlY2lmaWMgZHJpdmVycyByZXF1aXJpbmcgcGh5c2ljYWwgaGFyZHdhcmUuXG5cbkxldCdzIGNoZWNrIGlmIHRoZXJlIGFyZSBhbnkgdmlydHVhbCBkZXZpY2VzLiBIbW0sIGRvZXMgYG1hYzgwMjExX2h3c2ltYCBjb21lIGludG8gcGxheT8gSXTigJlzIGl0cyBvd24gZHJpdmVyLCBgZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9tYWM4MDIxMV9od3NpbS5jYCwgYnV0IGl0IGRvZXNuJ3QgKnVzZSogYXRoMTJrLiBBZ2FpbiwgYXRoMTJrIGlzIGZpcm1seSBpbiB0aGUgcmVhbG0gb2YgcmVhbC13b3JsZCBRdWFsY29tbSBXaS1GaSA3IGhhcmR3YXJlLiBUaGUgZGV2aWNlIHByb2JlIHdpbGwgKm5ldmVyKiBzdWNjZWVkIHdpdGhvdXQgcGh5c2ljYWwgaGFyZHdhcmUuIFFFTVUgYW5kIEdDRSBhcmVuJ3QgZ29pbmcgdG8gaGVscCBoZXJlLlxuXG5TbywgZnJvbSBhIGZ1enppbmcgcGVyc3BlY3RpdmUsIHRoaXMgY29kZSBpcyBkZWFkIGluIHRoZSB3YXRlciBpbiBzdGFuZGFyZCBzZXR1cHMuIEl04oCZcyBhIGRyaXZlciBmb3IgcGh5c2ljYWwgaGFyZHdhcmUgdGhhdCdzIG5vdCBlbXVsYXRlZCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuIEl0J3Mgc2ltcGx5IHVucmVhY2hhYmxlIGFuZCB1bmZ1enphYmxlIHdpdGhvdXQgYSBzcGVjaWZpYyBwaHlzaWNhbCBzZXR1cC5cblxuTm93LCBsZXQncyBtYWtlIHN1cmUgbm90aGluZyBlbHNlIHdhcyBtb2RpZmllZC5cblxuT2theSwgb25seSBgZHBfcnguY2AgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd2lmaTcvYCB3YXMgdG91Y2hlZC5cblxuSW4gY29uY2x1c2lvbiwgSSBjYW4gY29uZmlkZW50bHkgc2F5OlxuXG4qICAgKipXb3J0aEZ1enppbmc6IGZhbHNlKipcbiogICAqKkZvY3VzU3ltYm9sczogXFxbIF0qKiAoZW1wdHkpXG4qICAgKipFbmFibGVDb25maWdzOiBcXFsgXSoqIChlbXB0eSlcbiogICAqKlJlYXNvbmluZzoqKiBUaGUgY29kZSBpcyBpbiBhIGRyaXZlciBmb3IgUXVhbGNvbW0gV2ktRmkgNyBoYXJkd2FyZSAoV0NONzg1MC9RQ045Mjc0KSBhbmQgcmVxdWlyZXMgcGh5c2ljYWwgUENJZSBvciBBSEIgaGFyZHdhcmUuIFRoaXMgaXMgbm90IGVtdWxhdGVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIGNhbm5vdCBiZSByZWFjaGVkIGFuZCBmdXp6ZWQuXG5cbk5vdywgbGV0J3MgY2FsbCBgc2V0LXJlc3VsdHNgLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NzkxLCJPdXRwdXRUb2tlbnMiOjEyOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjg0MiwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMxVDIyOjEwOjU0LjExOTY5MTcyMloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjEyNTEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFF1YWxjb21tIFdpLUZpIDcgZHJpdmVyIChhdGgxMmspLCBzcGVjaWZpY2FsbHkgUkVPIGNhY2hlIGZsdXNoIGxvZ2ljIGZvciBSWCBkZXNjcmlwdG9ycy4gYXRoMTJrIHJlcXVpcmVzIHBoeXNpY2FsIFF1YWxjb21tIFdpLUZpIDcgaGFyZHdhcmUgKGUuZy4sIFdDTjc4NTAsIFFDTjkyNzQpIG92ZXIgUENJZSBvciBBSEIgYnVzIGFuZCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgKFFFTVUvR0NFKS4gVGhlcmVmb3JlLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBhcmUgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgUXVhbGNvbW0gV2ktRmkgNyBkcml2ZXIgKGF0aDEyayksIHNwZWNpZmljYWxseSBSRU8gY2FjaGUgZmx1c2ggbG9naWMgZm9yIFJYIGRlc2NyaXB0b3JzLiBhdGgxMmsgcmVxdWlyZXMgcGh5c2ljYWwgUXVhbGNvbW0gV2ktRmkgNyBoYXJkd2FyZSAoZS5nLiwgV0NONzg1MCwgUUNOOTI3NCkgb3ZlciBQQ0llIG9yIEFIQiBidXMgYW5kIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMxVDIyOjEwOjU0LjExOTcxNjI4MloiLCJTZXEiOjksIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoiSWYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMTgwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },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-workflowwcjxh[1] Phase: Running StartedAt: 2026-08-31 22:11:05 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwcjxh[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-31 22:11:05 +0000 UTC FinishedAt: 2026-08-31 22:11:11 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:code,Default:nil,Value:*1,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*1,}