Name: series-workflowcdmdt Phase: Failed StartedAt: 2026-07-21 23:15:05 +0000 UTC FinishedAt: 2026-07-21 23:51:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcdmdt[0] Phase: Succeeded StartedAt: 2026-07-21 23:15:05 +0000 UTC FinishedAt: 2026-07-21 23:51:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcdmdt[0].run-triage Phase: Succeeded StartedAt: 2026-07-21 23:15:05 +0000 UTC FinishedAt: 2026-07-21 23:51:37 +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+CgkJCTx0ZD4yMDI2LzA3LzIxIDIzOjUxPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGEgaGFyZHdhcmUtc3BlY2lmaWMgRFNBIHN3aXRjaCBkcml2ZXIgKFJlYWx0ZWsgUlRMODM2NlJCKSB3aGljaCBjb21tdW5pY2F0ZXMgdmlhIE1ESU8vU01JLiBUaGlzIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSwgYW5kIHRoZSBkcml2ZXIgZXhwbGljaXRseSBjaGVja3MgZm9yIGEgc3BlY2lmaWMgaGFyZHdhcmUgY2hpcCBJRCBkdXJpbmcgcHJvYmUuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgdW5yZWFjaGFibGUgYW5kIGNhbm5vdCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIxIDIzOjUxPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgMjNhNWI4ZTg1N2UzNzMwMWQyZTJlMmYyZTYxN2RjYWFkM2M4Y2IxZFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgSnVsIDIxIDIzOjUxOjA4IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jIGIvZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmNcbmluZGV4IGQyZmE4ZmY2YTVkMDhhLi42ZDVhNmU3YmM1ZjEzMyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuY1xuQEAgLTc5NCw4ICYjNDM7Nzk0LDggQEAgc3RhdGljIGludCBydGw4MzY2cmJfc2V0dXBfYWxsX2xlZHNfb2ZmKHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYpXG4gc3RhdGljIGludCBydGw4MzY2cmJfcG9ydF9zZXRfaXNvbGF0aW9uKHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYsIGludCBwb3J0LFxuIFx0XHRcdFx0XHR1MzIgbWFzaylcbiB7XG4tXHQvKiBCaXQgMCBlbmFibGVzIGlzb2xhdGlvbiBzbyBzZXQgdGhpcyBpZiB3ZSBlbmFibGUgaXNvbGF0aW9uXG4tXHQgKiBhbnkgb2YgdGhlIHBvcnRzIGFuIGNsZWFyIGl0IGlmIHdlIGRpc2FibGUgb24gYWxsIG9mIHRoZW0uXG4mIzQzO1x0LyogQml0IDAgZW5hYmxlcyBpc29sYXRpb24gc28gc2V0IHRoaXMgaWYgd2UgZW5hYmxlIGlzb2xhdGlvbiBvblxuJiM0MztcdCAqIGFueSBvZiB0aGUgcG9ydHMgYW5kIGNsZWFyIGl0IGlmIHdlIGRpc2FibGUgb24gYWxsIG9mIHRoZW0uXG4gXHQgKi9cbiBcdGlmIChtYXNrKVxuIFx0XHRtYXNrID0gUlRMODM2NlJCX1BPUlRfSVNPX1BPUlRTKG1hc2spIHwgUlRMODM2NlJCX1BPUlRfSVNPX0VOO1xuQEAgLTk1MSw3ICYjNDM7OTUxLDggQEAgc3RhdGljIGludCBydGw4MzY2cmJfc2V0dXAoc3RydWN0IGRzYV9zd2l0Y2ggKmRzKVxuIFx0XHRydGw4MzY2cmJfcG9ydF9zdHBfc3RhdGVfc2V0KGRzLCBkcC1cdTAwM2VpbmRleCwgQlJfU1RBVEVfRElTQUJMRUQpO1xuIFxuIFx0XHQvKiBTdGFydCB3aXRoIGFsbCBwb3J0cyBjb21wbGV0ZWx5IGlzb2xhdGVkICovXG4tXHRcdHJldCA9IHJ0bDgzNjZyYl9wb3J0X3NldF9pc29sYXRpb24ocHJpdiwgZHAtXHUwMDNlaW5kZXgsIDApO1xuJiM0MztcdFx0cmV0ID0gcnRsODM2NnJiX3BvcnRfc2V0X2lzb2xhdGlvbihwcml2LCBkcC1cdTAwM2VpbmRleCxcbiYjNDM7XHRcdFx0XHRcdFx0ICAgUlRMODM2NlJCX1BPUlRfSVNPX1BPUlRTX01BU0spO1xuIFx0XHRpZiAocmV0KVxuIFx0XHRcdHJldHVybiByZXQ7XG4gXG5AQCAtOTc0LDcgJiM0Mzs5NzUsNyBAQCBzdGF0aWMgaW50IHJ0bDgzNjZyYl9zZXR1cChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpXG4gXHRcdGlmICghZHNhX3BvcnRfaXNfdXNlcihkcCkpXG4gXHRcdFx0Y29udGludWU7XG4gXG4tXHRcdC8qIEZvcndhcmQgb25seSB0byB0aGUgQ1BVICovXG4mIzQzO1x0XHQvKiBGb3J3YXJkIG9ubHkgdG8gdGhlIENQVSwgaXNvbGF0ZSBmcm9tIGFsbCBvdGhlciBwb3J0cyAqL1xuIFx0XHRyZXQgPSBydGw4MzY2cmJfcG9ydF9zZXRfaXNvbGF0aW9uKHByaXYsIGRwLVx1MDAzZWluZGV4LCB1cHBvcnRzX21hc2spO1xuIFx0XHRpZiAocmV0KVxuIFx0XHRcdHJldHVybiByZXQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjEgMjM6NTE8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGEgaGFyZHdhcmUtc3BlY2lmaWMgRFNBIHN3aXRjaCBkcml2ZXIgKFJlYWx0ZWsgUlRMODM2NlJCKSB3aGljaCBjb21tdW5pY2F0ZXMgdmlhIE1ESU8vU01JLiBUaGlzIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSwgYW5kIHRoZSBkcml2ZXIgZXhwbGljaXRseSBjaGVja3MgZm9yIGEgc3BlY2lmaWMgaGFyZHdhcmUgY2hpcCBJRCBkdXJpbmcgcHJvYmUuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgdW5yZWFjaGFibGUgYW5kIGNhbm5vdCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAyM2E1YjhlODU3ZTM3MzAxZDJlMmUyZjJlNjE3ZGNhYWQzYzhjYjFkCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFR1ZSBKdWwgMjEgMjM6NTE6MDggMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYyBiL2RyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jCmluZGV4IGQyZmE4ZmY2YTVkMDhhLi42ZDVhNmU3YmM1ZjEzMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMKQEAgLTc5NCw4ICYjNDM7Nzk0LDggQEAgc3RhdGljIGludCBydGw4MzY2cmJfc2V0dXBfYWxsX2xlZHNfb2ZmKHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYpCiBzdGF0aWMgaW50IHJ0bDgzNjZyYl9wb3J0X3NldF9pc29sYXRpb24oc3RydWN0IHJlYWx0ZWtfcHJpdiAqcHJpdiwgaW50IHBvcnQsCiAJCQkJCXUzMiBtYXNrKQogewotCS8qIEJpdCAwIGVuYWJsZXMgaXNvbGF0aW9uIHNvIHNldCB0aGlzIGlmIHdlIGVuYWJsZSBpc29sYXRpb24KLQkgKiBhbnkgb2YgdGhlIHBvcnRzIGFuIGNsZWFyIGl0IGlmIHdlIGRpc2FibGUgb24gYWxsIG9mIHRoZW0uCiYjNDM7CS8qIEJpdCAwIGVuYWJsZXMgaXNvbGF0aW9uIHNvIHNldCB0aGlzIGlmIHdlIGVuYWJsZSBpc29sYXRpb24gb24KJiM0MzsJICogYW55IG9mIHRoZSBwb3J0cyBhbmQgY2xlYXIgaXQgaWYgd2UgZGlzYWJsZSBvbiBhbGwgb2YgdGhlbS4KIAkgKi8KIAlpZiAobWFzaykKIAkJbWFzayA9IFJUTDgzNjZSQl9QT1JUX0lTT19QT1JUUyhtYXNrKSB8IFJUTDgzNjZSQl9QT1JUX0lTT19FTjsKQEAgLTk1MSw3ICYjNDM7OTUxLDggQEAgc3RhdGljIGludCBydGw4MzY2cmJfc2V0dXAoc3RydWN0IGRzYV9zd2l0Y2ggKmRzKQogCQlydGw4MzY2cmJfcG9ydF9zdHBfc3RhdGVfc2V0KGRzLCBkcC0mZ3Q7aW5kZXgsIEJSX1NUQVRFX0RJU0FCTEVEKTsKIAogCQkvKiBTdGFydCB3aXRoIGFsbCBwb3J0cyBjb21wbGV0ZWx5IGlzb2xhdGVkICovCi0JCXJldCA9IHJ0bDgzNjZyYl9wb3J0X3NldF9pc29sYXRpb24ocHJpdiwgZHAtJmd0O2luZGV4LCAwKTsKJiM0MzsJCXJldCA9IHJ0bDgzNjZyYl9wb3J0X3NldF9pc29sYXRpb24ocHJpdiwgZHAtJmd0O2luZGV4LAomIzQzOwkJCQkJCSAgIFJUTDgzNjZSQl9QT1JUX0lTT19QT1JUU19NQVNLKTsKIAkJaWYgKHJldCkKIAkJCXJldHVybiByZXQ7CiAKQEAgLTk3NCw3ICYjNDM7OTc1LDcgQEAgc3RhdGljIGludCBydGw4MzY2cmJfc2V0dXAoc3RydWN0IGRzYV9zd2l0Y2ggKmRzKQogCQlpZiAoIWRzYV9wb3J0X2lzX3VzZXIoZHApKQogCQkJY29udGludWU7CiAKLQkJLyogRm9yd2FyZCBvbmx5IHRvIHRoZSBDUFUgKi8KJiM0MzsJCS8qIEZvcndhcmQgb25seSB0byB0aGUgQ1BVLCBpc29sYXRlIGZyb20gYWxsIG90aGVyIHBvcnRzICovCiAJCXJldCA9IHJ0bDgzNjZyYl9wb3J0X3NldF9pc29sYXRpb24ocHJpdiwgZHAtJmd0O2luZGV4LCB1cHBvcnRzX21hc2spOwogCQlpZiAocmV0KQogCQkJcmV0dXJuIHJldDsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjEgMjM6NTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjI5NAoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDI5NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBQb3RlbnRpYWwgRnV6emluZyBUYXJnZXQ6IFJlYWx0ZWsgUlRMODM2NlJCIERyaXZlcioqCgpPa2F5LCBzbyBJJiMzOTt2ZSBnb3QgYSBwYXRjaCBoZXJlIHRoYXQgdHdlYWtzIHRoZSBgcnRsODM2NnJiX3NldHVwYCBmdW5jdGlvbiB3aXRoaW4gYGRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jYC4gVGhlIGNvcmUgY2hhbmdlIGlzIHRoaXM6IGl0JiMzOTtzIHN3YXBwaW5nIG91dCBhIGNhbGwgdG8gYHJ0bDgzNjZyYl9wb3J0X3NldF9pc29sYXRpb24ocHJpdiwgZHAtJmd0O2luZGV4LCAwKWAgd2l0aCBgcnRsODM2NnJiX3BvcnRfc2V0X2lzb2xhdGlvbihwcml2LCBkcC0mZ3Q7aW5kZXgsIFJUTDgzNjZSQl9QT1JUX0lTT19QT1JUU19NQVNLKWAuIEJhc2ljYWxseSwgaXQmIzM5O3MgbWVzc2luZyB3aXRoIHBvcnQgaXNvbGF0aW9uLCBhbmQgdGhlIHBhdGNoIGFsc28gaW5jbHVkZXMgc29tZSBjb21tZW50IHVwZGF0ZXMuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCAmIzM0O0lzIHRoaXMgZnV6emFibGU/JiMzNDsKClRoZSBmaWxlJiMzOTtzIGluIHRoZSBEU0EgZHJpdmVyIGRpcmVjdG9yeSwgc3BlY2lmaWNhbGx5IGZvciB0aGUgUmVhbHRlayBSVEw4MzY2UkIgc3dpdGNoLiBSaWdodCBhd2F5LCBteSBhbnRlbm5hZSBnbyB1cC4gRFNBIGRyaXZlcnMgYXJlIG5vdG9yaW91cyBmb3IgYmVpbmcgaGFyZHdhcmUtZGVwZW5kZW50LiBUaGV5IHR5cGljYWxseSB0YWxrIHRvIHRoZSBzd2l0Y2ggaGFyZHdhcmUgdmlhIEkyQyBvciBNRElPLiBDYW4gSSBldmVuICpyZWFjaCogdGhpcyB0aGluZyBpbiBhIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnQ/IERTQSBkcml2ZXJzIGFyZSBhIHBhaW4gYmVjYXVzZSB0aGV5JiMzOTtyZSBzbyB0aWdodGx5IGNvdXBsZWQgd2l0aCB0aGUgaGFyZHdhcmUuIFN1cmUsIEkgY2FuICpzb21ldGltZXMqIGluc3RhbnRpYXRlIHRoZW0gd2l0aCBkZXZpY2UgdHJlZSBvdmVybGF5cyBvciBvdGhlciB0cmlja3MsIGJ1dCB0aGF0JiMzOTtzIHN0aWxsIHByZXR0eSBoYXJkd2FyZS1zcGVjaWZpYy4KCkdpdmVuIHRoYXQgdGhpcyBpcyBSZWFsdGVrLCBpdCYjMzk7cyBsaWtlbHkgYW4gSTJDIG9yIE1ESU8gZGV2aWNlLiBJdCBsb29rcyBsaWtlIHRoaXMgcGF0Y2ggY291bGQgaW1wYWN0IHBvcnQgaXNvbGF0aW9uLCBtZWFuaW5nIHRoZXJlIGNvdWxkIGJlIGludGVyZXN0aW5nIGNvZGUgcGF0aHMgdG8gcHJvYmUuIEkgbmVlZCB0byBmaWd1cmUgb3V0IGlmIHRoZXJlJiMzOTtzICphbnkqIHJlYWxpc3RpYyB3YXkgdG8gZW11bGF0ZSBvciBtb2NrIHRoaXMgaGFyZHdhcmUuIElmIGl0JiMzOTtzIHB1cmUgaGFyZHdhcmUtZGVwZW5kZW50LCB3aXRob3V0IHNvbWUgc29ydCBvZiBlbXVsYXRpb24sIGEgbW9jaywgb3IgbWF5YmUgZXZlbiBhIFVTQi9QQ0kgaW50ZXJmYWNlIHRoYXQgSSAqY291bGQqIHBvdGVudGlhbGx5IHNpbXVsYXRlLCB0aGlzIGlzIGdvaW5nIHRvIGJlIGEgZGVhZCBlbmQgZm9yIGZ1enppbmcuIFRpbWUgdG8gZGlnIGRlZXBlciBpbnRvIHRoZSBkYXRhc2hlZXQgYW5kIHNlZSB3aGF0IG9wdGlvbnMgSSBoYXZlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIxIDIzOjUxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3J0bDgzNjZyYiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2RzYS9yZWFsdGVrLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNTQwIGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9NYWtlZmlsZT0xMz1vYmotJChDT05GSUdfTkVUX0RTQV9SRUFMVEVLX1JUTDgzNjZSQikgJiM0Mzs9IHJ0bDgzNjYub1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvTWFrZWZpbGU6MTQ6cnRsODM2Ni1vYmpzIFx0XHRcdFx0Oj0gcnRsODM2Ni1jb3JlLm8gcnRsODM2NnJiLm9cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL01ha2VmaWxlLTE1LWlmZGVmIENPTkZJR19ORVRfRFNBX1JFQUxURUtfUlRMODM2NlJCX0xFRFNcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL01ha2VmaWxlOjE2OnJ0bDgzNjYtb2JqcyBcdFx0XHRcdCYjNDM7PSBydGw4MzY2cmItbGVkcy5vXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9NYWtlZmlsZS0xNy1lbmRpZlxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3JlYWx0ZWsuaD0xODg9dm9pZCBydGw4MzY2X2dldF9ldGh0b29sX3N0YXRzKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsIHVpbnQ2NF90ICpkYXRhKTtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3JlYWx0ZWsuaC0xODktXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9yZWFsdGVrLmg6MTkwOmV4dGVybiBjb25zdCBzdHJ1Y3QgcmVhbHRla192YXJpYW50IHJ0bDgzNjZyYl92YXJpYW50O1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcmVhbHRlay5oLTE5MS1leHRlcm4gY29uc3Qgc3RydWN0IHJlYWx0ZWtfdmFyaWFudCBydGw4MzY1bWJfdmFyaWFudDtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jLTYtI2luY2x1ZGUgXCYjMzQ7cnRsODN4eC5oXCYjMzQ7XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jOjc6I2luY2x1ZGUgXCYjMzQ7cnRsODM2NnJiLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi1sZWRzLmMtOC1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi1sZWRzLmM6OTpzdGF0aWMgaW5saW5lIHUzMiBydGw4MzY2cmJfbGVkX2dyb3VwX3BvcnRfbWFzayh1OCBsZWRfZ3JvdXAsIHU4IHBvcnQpXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jLTEwLXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jLTI0LVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYzoyNTpzdGF0aWMgaW50IHJiODM2NnJiX2dldF9wb3J0X2xlZChzdHJ1Y3QgcnRsODM2NnJiX2xlZCAqbGVkKVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYy0yNi17XG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYy00MC1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi1sZWRzLmM6NDE6XHRyZXR1cm4gISEodmFsIFx1MDAyNiBydGw4MzY2cmJfbGVkX2dyb3VwX3BvcnRfbWFzayhsZWRfZ3JvdXAsIHBvcnRfbnVtKSk7XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jLTQyLX1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi1sZWRzLmMtNDMtXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jOjQ0OnN0YXRpYyBpbnQgcmI4MzY2cmJfc2V0X3BvcnRfbGVkKHN0cnVjdCBydGw4MzY2cmJfbGVkICpsZWQsIGJvb2wgZW5hYmxlKVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYy00NS17XG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYy01Mi1cdFx0XHRcdCBSVEw4MzY2UkJfTEVEX1hfWF9DVFJMX1JFRyhsZWRfZ3JvdXApLFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYzo1MzpcdFx0XHRcdCBydGw4MzY2cmJfbGVkX2dyb3VwX3BvcnRfbWFzayhsZWRfZ3JvdXAsXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jLTU0LVx0XHRcdFx0XHRcdFx0ICAgICAgIHBvcnRfbnVtKSxcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jPTc1PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi1sZWRzLmM6NzY6cnRsODM2NnJiX2NsZWRfYnJpZ2h0bmVzc19zZXRfYmxvY2tpbmcoc3RydWN0IGxlZF9jbGFzc2RldiAqbGRldixcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi1sZWRzLmMtNzctXHRcdFx0XHQgICAgICAgZW51bSBsZWRfYnJpZ2h0bmVzcyBicmlnaHRuZXNzKVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYy03OC17XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jOjc5Olx0c3RydWN0IHJ0bDgzNjZyYl9sZWQgKmxlZCA9IGNvbnRhaW5lcl9vZihsZGV2LCBzdHJ1Y3QgcnRsODM2NnJiX2xlZCxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi1sZWRzLmMtODAtXHRcdFx0XHRcdFx0IGNkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi1sZWRzLmMtODQtXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jOjg1OnN0YXRpYyBpbnQgcnRsODM2NnJiX3NldHVwX2xlZChzdHJ1Y3QgcmVhbHRla19wcml2ICpwcml2LCBzdHJ1Y3QgZHNhX3BvcnQgKmRwLFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYy04Ni1cdFx0XHQgICAgICAgc3RydWN0IGZ3bm9kZV9oYW5kbGUgKmxlZF9md25vZGUpXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jLTg3LXtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi1sZWRzLmM6ODg6XHRzdHJ1Y3QgcnRsODM2NnJiICpyYiA9IHByaXYtXHUwMDNlY2hpcF9kYXRhO1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYy04OS1cdHN0cnVjdCBsZWRfaW5pdF9kYXRhIGluaXRfZGF0YSA9IHsgfTtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi1sZWRzLmMtOTAtXHRlbnVtIGxlZF9kZWZhdWx0X3N0YXRlIHN0YXRlO1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYzo5MTpcdHN0cnVjdCBydGw4MzY2cmJfbGVkICpsZWQ7XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jLTkyLVx0Y2hhciBuYW1lWzY0XTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jLTEyOC1cdGxlZC1cdTAwM2VjZGV2LmJyaWdodG5lc3Nfc2V0X2Jsb2NraW5nID1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi1sZWRzLmM6MTI5Olx0XHRydGw4MzY2cmJfY2xlZF9icmlnaHRuZXNzX3NldF9ibG9ja2luZztcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi1sZWRzLmMtMTMwLVx0aW5pdF9kYXRhLmZ3bm9kZSA9IGxlZF9md25vZGU7XG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYy0xNDYtXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jOjE0NzppbnQgcnRsODM2NnJiX3NldHVwX2xlZHMoc3RydWN0IHJlYWx0ZWtfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi1sZWRzLmMtMTQ4LXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jLTE2NS1cdFx0Zm9yX2VhY2hfY2hpbGRfb2Zfbm9kZV9zY29wZWQobGVkc19ucCwgbGVkX25wKSB7XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jOjE2NjpcdFx0XHRyZXQgPSBydGw4MzY2cmJfc2V0dXBfbGVkKHByaXYsIGRwLFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYy0xNjctXHRcdFx0XHRcdFx0ICBvZl9md25vZGVfaGFuZGxlKGxlZF9ucCkpO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTI5LSNpbmNsdWRlIFwmIzM0O3J0bDgzeHguaFwmIzM0O1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MzA6I2luY2x1ZGUgXCYjMzQ7cnRsODM2NnJiLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTMxLVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTMxNS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjMxNjpzdGF0aWMgc3RydWN0IHJ0bDgzNjZfbWliX2NvdW50ZXIgcnRsODM2NnJiX21pYl9jb3VudGVyc1tdID0ge1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMzE3LVx0eyAwLCAgMCwgNCwgXCYjMzQ7SWZJbk9jdGV0c1wmIzM0O1x0XHRcdFx0fSxcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0zNTEtXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzozNTI6c3RhdGljIGludCBydGw4MzY2cmJfZ2V0X21pYl9jb3VudGVyKHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYsXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0zNTMtXHRcdFx0XHQgICAgIGludCBwb3J0LFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTM5My1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjM5NDpzdGF0aWMgdTMyIHJ0bDgzNjZyYl9nZXRfaXJxbWFzayhzdHJ1Y3QgaXJxX2RhdGEgKmQpXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0zOTUte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTQwOC1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjQwOTpzdGF0aWMgdm9pZCBydGw4MzY2cmJfbWFza19pcnEoc3RydWN0IGlycV9kYXRhICpkKVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNDEwLXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy00MTQtXHRyZXQgPSByZWdtYXBfdXBkYXRlX2JpdHMocHJpdi1cdTAwM2VtYXAsIFJUTDgzNjZSQl9JTlRFUlJVUFRfTUFTS19SRUcsXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo0MTU6XHRcdFx0XHQgcnRsODM2NnJiX2dldF9pcnFtYXNrKGQpLCAwKTtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTQxNi1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNDE5LVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6NDIwOnN0YXRpYyB2b2lkIHJ0bDgzNjZyYl91bm1hc2tfaXJxKHN0cnVjdCBpcnFfZGF0YSAqZClcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTQyMS17XG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNDI1LVx0cmV0ID0gcmVnbWFwX3VwZGF0ZV9iaXRzKHByaXYtXHUwMDNlbWFwLCBSVEw4MzY2UkJfSU5URVJSVVBUX01BU0tfUkVHLFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6NDI2Olx0XHRcdFx0IHJ0bDgzNjZyYl9nZXRfaXJxbWFzayhkKSxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjQyNzpcdFx0XHRcdCBydGw4MzY2cmJfZ2V0X2lycW1hc2soZCkpO1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNDI4LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy00MzEtXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo0MzI6c3RhdGljIGlycXJldHVybl90IHJ0bDgzNjZyYl9pcnEoaW50IGlycSwgdm9pZCAqZGF0YSlcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTQzMy17XG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNDYzLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6NDY0OnN0YXRpYyBzdHJ1Y3QgaXJxX2NoaXAgcnRsODM2NnJiX2lycV9jaGlwID0ge1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNDY1LVx0Lm5hbWUgPSBcJiMzNDtSVEw4MzY2UkJcJiMzNDssXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo0NjY6XHQuaXJxX21hc2sgPSBydGw4MzY2cmJfbWFza19pcnEsXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo0Njc6XHQuaXJxX3VubWFzayA9IHJ0bDgzNjZyYl91bm1hc2tfaXJxLFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNDY4LX07XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy00NjktXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo0NzA6c3RhdGljIGludCBydGw4MzY2cmJfaXJxX21hcChzdHJ1Y3QgaXJxX2RvbWFpbiAqZG9tYWluLCB1bnNpZ25lZCBpbnQgaXJxLFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNDcxLVx0XHRcdCAgICAgaXJxX2h3X251bWJlcl90IGh3aXJxKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTQ3My1cdGlycV9zZXRfY2hpcF9kYXRhKGlycSwgZG9tYWluLVx1MDAzZWhvc3RfZGF0YSk7XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo0NzQ6XHRpcnFfc2V0X2NoaXBfYW5kX2hhbmRsZXIoaXJxLCBcdTAwMjZydGw4MzY2cmJfaXJxX2NoaXAsIGhhbmRsZV9zaW1wbGVfaXJxKTtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTQ3NS1cdGlycV9zZXRfbmVzdGVkX3RocmVhZChpcnEsIDEpO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTQ4MC1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjQ4MTpzdGF0aWMgdm9pZCBydGw4MzY2cmJfaXJxX3VubWFwKHN0cnVjdCBpcnFfZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgaXJxKVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNDgyLXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy00ODctXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo0ODg6c3RhdGljIGNvbnN0IHN0cnVjdCBpcnFfZG9tYWluX29wcyBydGw4MzY2cmJfaXJxZG9tYWluX29wcyA9IHtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjQ4OTpcdC5tYXAgPSBydGw4MzY2cmJfaXJxX21hcCxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjQ5MDpcdC51bm1hcCA9IHJ0bDgzNjZyYl9pcnFfdW5tYXAsXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy00OTEtXHQueGxhdGUgID0gaXJxX2RvbWFpbl94bGF0ZV9vbmVjZWxsLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTQ5My1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjQ5NDpzdGF0aWMgaW50IHJ0bDgzNjZyYl9zZXR1cF9jYXNjYWRlZF9pcnEoc3RydWN0IHJlYWx0ZWtfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTQ5NS17XG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNTQ2LVx0cmV0ID0gZGV2bV9yZXF1ZXN0X3RocmVhZGVkX2lycShwcml2LVx1MDAzZWRldiwgaXJxLCBOVUxMLFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6NTQ3Olx0XHRcdFx0XHRydGw4MzY2cmJfaXJxLCBJUlFGX09ORVNIT1QsXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy01NDgtXHRcdFx0XHRcdFwmIzM0O1JUTDgzNjZSQlwmIzM0OywgcHJpdik7XG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNTUzLVx0cHJpdi1cdTAwM2VpcnFkb21haW4gPSBpcnFfZG9tYWluX2NyZWF0ZV9saW5lYXIob2ZfZndub2RlX2hhbmRsZShpbnRjKSwgUlRMODM2NlJCX05VTV9JTlRFUlJVUFQsXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo1NTQ6XHRcdFx0XHRcdFx0ICAgXHUwMDI2cnRsODM2NnJiX2lycWRvbWFpbl9vcHMsIHByaXYpO1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNTU1LVx0aWYgKCFwcml2LVx1MDAzZWlycWRvbWFpbikge1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTU2Ny1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjU2ODpzdGF0aWMgaW50IHJ0bDgzNjZyYl9zZXRfYWRkcihzdHJ1Y3QgcmVhbHRla19wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNTY5LXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy01OTUtLyogU3RydWN0IGZvciBoYW5kbGluZyB0aGUgamFtIHRhYmxlcyYjMzk7IGVudHJpZXMgKi9cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjU5NjpzdHJ1Y3QgcnRsODM2NnJiX2phbV90YmxfZW50cnkge1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNTk3LVx0dTE2IHJlZztcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy02MDEtLyogRm9yIHRoZSBcJiMzNDt2ZXJzaW9uIDBcJiMzNDsgZWFybHkgc2lsaWNvbiwgYXBwZWFyIGluIG1vc3Qgc291cmNlIHJlbGVhc2VzICovXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo2MDI6c3RhdGljIGNvbnN0IHN0cnVjdCBydGw4MzY2cmJfamFtX3RibF9lbnRyeSBydGw4MzY2cmJfaW5pdF9qYW1fdmVyXzBbXSA9IHtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTYwMy1cdHsweDAwMEIsIDB4MDAwMX0sIHsweDAzQTYsIDB4MDEwMH0sIHsweDAzQTcsIDB4MDAwMX0sIHsweDAyRDEsIDB4M0ZGRn0sXG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNjM0LS8qIFRoaXMgdjEgaW5pdCBzZXF1ZW5jZSBpcyBmcm9tIEJlbGtpbiBGNUQ4MjM1IFUtQm9vdCByZWxlYXNlICovXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo2MzU6c3RhdGljIGNvbnN0IHN0cnVjdCBydGw4MzY2cmJfamFtX3RibF9lbnRyeSBydGw4MzY2cmJfaW5pdF9qYW1fdmVyXzFbXSA9IHtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTYzNi1cdHsweDAwMDAsIDB4MDgzMH0sIHsweDAwMDEsIDB4ODAwMH0sIHsweDA0MDAsIDB4ODEzMH0sIHsweEJFNzgsIDB4M0MzQ30sXG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNjQ5LS8qIFRoaXMgdjIgaW5pdCBzZXF1ZW5jZSBpcyBmcm9tIEJlbGtpbiBGNUQ4MjM1IFUtQm9vdCByZWxlYXNlICovXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo2NTA6c3RhdGljIGNvbnN0IHN0cnVjdCBydGw4MzY2cmJfamFtX3RibF9lbnRyeSBydGw4MzY2cmJfaW5pdF9qYW1fdmVyXzJbXSA9IHtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTY1MS1cdHsweDA0NTAsIDB4MDAwMH0sIHsweDA0MDAsIDB4ODEzMH0sIHsweDAwMEEsIDB4ODNFRH0sIHsweDA0MzEsIDB4NTQzMn0sXG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNjY0LS8qIEFwcGVhcnMgaW4gYSBERFdSVCBjb2RlIGR1bXAgKi9cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjY2NTpzdGF0aWMgY29uc3Qgc3RydWN0IHJ0bDgzNjZyYl9qYW1fdGJsX2VudHJ5IHJ0bDgzNjZyYl9pbml0X2phbV92ZXJfM1tdID0ge1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNjY2LVx0ezB4MDAwMCwgMHgwODMwfSwgezB4MDQwMCwgMHg4MTMwfSwgezB4MDAwQSwgMHg4M0VEfSwgezB4MDQzMSwgMHg1NDMyfSxcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy02ODUtLyogQmVsa2luIEY1RDgyMzUgdjEsIFwmIzM0O2JlbGtpbixmNWQ4MjM1LXYxXCYjMzQ7ICovXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo2ODY6c3RhdGljIGNvbnN0IHN0cnVjdCBydGw4MzY2cmJfamFtX3RibF9lbnRyeSBydGw4MzY2cmJfaW5pdF9qYW1fZjVkODIzNVtdID0ge1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNjg3LVx0ezB4MDI0MiwgMHgwMkJGfSwgezB4MDI0NSwgMHgwMkJGfSwgezB4MDI0OCwgMHgwMkJGfSwgezB4MDI0QiwgMHgwMkJGfSxcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy02OTgtLyogREdOMzUwMCwgXCYjMzQ7bmV0Z2VhcixkZ24zNTAwXCYjMzQ7LCBcJiMzNDtuZXRnZWFyLGRnbjM1MDBiXCYjMzQ7ICovXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo2OTk6c3RhdGljIGNvbnN0IHN0cnVjdCBydGw4MzY2cmJfamFtX3RibF9lbnRyeSBydGw4MzY2cmJfaW5pdF9qYW1fZGduMzUwMFtdID0ge1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNzAwLVx0ezB4MDAwMCwgMHgwODMwfSwgezB4MDQwMCwgMHg4MTMwfSwgezB4MDAwQSwgMHg4M0VEfSwgezB4MEY1MSwgMHgwMDE3fSxcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy03MDktICovXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo3MTA6c3RhdGljIGNvbnN0IHN0cnVjdCBydGw4MzY2cmJfamFtX3RibF9lbnRyeSBydGw4MzY2cmJfZ3JlZW5famFtW10gPSB7XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy03MTEtXHR7MHhCRTc4LCAweDMyM0N9LCB7MHhCRTc3LCAweDUwMDB9LCB7MHhCRTJFLCAweDdCQTd9LFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTcxNi0vKiBGdW5jdGlvbiB0aGF0IGphbXMgdGhlIHRhYmxlcyBpbiB0aGUgcHJvcGVyIHJlZ2lzdGVycyAqL1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6NzE3OnN0YXRpYyBpbnQgcnRsODM2NnJiX2phbV90YWJsZShjb25zdCBzdHJ1Y3QgcnRsODM2NnJiX2phbV90YmxfZW50cnkgKmphbV90YWJsZSxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTcxOC1cdFx0XHQgICAgICAgaW50IGphbV9zaXplLCBzdHJ1Y3QgcmVhbHRla19wcml2ICpwcml2LFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jPTc1ND1pbnQgcmI4MzY2cmJfc2V0X2xlZGdyb3VwX21vZGUoc3RydWN0IHJlYWx0ZWtfcHJpdiAqcHJpdixcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy03NzMtLyogVGhpcyBjb2RlIGlzIHVzZWQgYWxzbyB3aXRoIExFRHMgZGlzYWJsZWQgKi9cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjc3NDpzdGF0aWMgaW50IHJ0bDgzNjZyYl9zZXR1cF9hbGxfbGVkc19vZmYoc3RydWN0IHJlYWx0ZWtfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTc3NS17XG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNzkzLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6Nzk0OnN0YXRpYyBpbnQgcnRsODM2NnJiX3BvcnRfc2V0X2lzb2xhdGlvbihzdHJ1Y3QgcmVhbHRla19wcml2ICpwcml2LCBpbnQgcG9ydCxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTc5NS1cdFx0XHRcdFx0dTMyIG1hc2spXG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtODA2LVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6ODA3OnN0YXRpYyBpbnQgcnRsODM2NnJiX3BvcnRfYWRkX2lzb2xhdGlvbihzdHJ1Y3QgcmVhbHRla19wcml2ICpwcml2LCBpbnQgcG9ydCxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTgwOC1cdFx0XHRcdFx0dTMyIG1hc2spXG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtODE1LVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6ODE2OnN0YXRpYyBpbnQgcnRsODM2NnJiX3BvcnRfcmVtb3ZlX2lzb2xhdGlvbihzdHJ1Y3QgcmVhbHRla19wcml2ICpwcml2LCBpbnQgcG9ydCxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTgxNy1cdFx0XHRcdFx0ICAgdTMyIG1hc2spXG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM9ODIzPXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo4MjQ6cnRsODM2NnJiX3BvcnRfc3RwX3N0YXRlX3NldChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LCB1OCBzdGF0ZSlcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTgyNS17XG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtODU2LVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6ODU3OnN0YXRpYyBpbnQgcnRsODM2NnJiX3BvcnRfc2V0X2xlYXJuaW5nKHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYsIGludCBwb3J0LFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtODU4LVx0XHRcdFx0ICAgICAgIGJvb2wgZW5hYmxlKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTg2Ni1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjg2NzpzdGF0aWMgaW50IHJ0bDgzNjZyYl9zZXR1cChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy04Njgte1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtODY5LVx0c3RydWN0IHJlYWx0ZWtfcHJpdiAqcHJpdiA9IGRzLVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo4NzA6XHRjb25zdCBzdHJ1Y3QgcnRsODM2NnJiX2phbV90YmxfZW50cnkgKmphbV90YWJsZTtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTg3MS1cdHUzMiBkb3ducG9ydHNfbWFzayA9IDA7XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo4NzI6XHRzdHJ1Y3QgcnRsODM2NnJiICpyYjtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTg3My1cdHUzMiB1cHBvcnRzX21hc2sgPSAwO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTkwOS1cdGNhc2UgMDpcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjkxMDpcdFx0amFtX3RhYmxlID0gcnRsODM2NnJiX2luaXRfamFtX3Zlcl8wO1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6OTExOlx0XHRqYW1fc2l6ZSA9IEFSUkFZX1NJWkUocnRsODM2NnJiX2luaXRfamFtX3Zlcl8wKTtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTkxMi1cdFx0YnJlYWs7XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy05MTMtXHRjYXNlIDE6XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo5MTQ6XHRcdGphbV90YWJsZSA9IHJ0bDgzNjZyYl9pbml0X2phbV92ZXJfMTtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjkxNTpcdFx0amFtX3NpemUgPSBBUlJBWV9TSVpFKHJ0bDgzNjZyYl9pbml0X2phbV92ZXJfMSk7XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy05MTYtXHRcdGJyZWFrO1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtOTE3LVx0Y2FzZSAyOlxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6OTE4Olx0XHRqYW1fdGFibGUgPSBydGw4MzY2cmJfaW5pdF9qYW1fdmVyXzI7XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo5MTk6XHRcdGphbV9zaXplID0gQVJSQVlfU0laRShydGw4MzY2cmJfaW5pdF9qYW1fdmVyXzIpO1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtOTIwLVx0XHRicmVhaztcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTkyMS1cdGRlZmF1bHQ6XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo5MjI6XHRcdGphbV90YWJsZSA9IHJ0bDgzNjZyYl9pbml0X2phbV92ZXJfMztcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjkyMzpcdFx0amFtX3NpemUgPSBBUlJBWV9TSVpFKHJ0bDgzNjZyYl9pbml0X2phbV92ZXJfMyk7XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy05MjQtXHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTkzMS1cdGlmIChvZl9tYWNoaW5lX2lzX2NvbXBhdGlibGUoXCYjMzQ7YmVsa2luLGY1ZDgyMzUtdjFcJiMzNDspKSB7XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo5MzI6XHRcdGphbV90YWJsZSA9IHJ0bDgzNjZyYl9pbml0X2phbV9mNWQ4MjM1O1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6OTMzOlx0XHRqYW1fc2l6ZSA9IEFSUkFZX1NJWkUocnRsODM2NnJiX2luaXRfamFtX2Y1ZDgyMzUpO1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtOTM0LVx0fVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTkzNi1cdCAgICBvZl9tYWNoaW5lX2lzX2NvbXBhdGlibGUoXCYjMzQ7bmV0Z2VhcixkZ24zNTAwYlwmIzM0OykpIHtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjkzNzpcdFx0amFtX3RhYmxlID0gcnRsODM2NnJiX2luaXRfamFtX2RnbjM1MDA7XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo5Mzg6XHRcdGphbV9zaXplID0gQVJSQVlfU0laRShydGw4MzY2cmJfaW5pdF9qYW1fZGduMzUwMCk7XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy05MzktXHR9XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy05NDAtXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo5NDE6XHRyZXQgPSBydGw4MzY2cmJfamFtX3RhYmxlKGphbV90YWJsZSwgamFtX3NpemUsIHByaXYsIHRydWUpO1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtOTQyLVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy05NTAtXHRcdCAqL1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6OTUxOlx0XHRydGw4MzY2cmJfcG9ydF9zdHBfc3RhdGVfc2V0KGRzLCBkcC1cdTAwM2VpbmRleCwgQlJfU1RBVEVfRElTQUJMRUQpO1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtOTUyLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtOTUzLVx0XHQvKiBTdGFydCB3aXRoIGFsbCBwb3J0cyBjb21wbGV0ZWx5IGlzb2xhdGVkICovXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo5NTQ6XHRcdHJldCA9IHJ0bDgzNjZyYl9wb3J0X3NldF9pc29sYXRpb24ocHJpdiwgZHAtXHUwMDNlaW5kZXgsXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy05NTUtXHRcdFx0XHRcdFx0ICAgUlRMODM2NlJCX1BPUlRfSVNPX1BPUlRTX01BU0spO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTk1OS1cdFx0LyogRGlzYWJsZSBsZWFybmluZyAqL1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6OTYwOlx0XHRyZXQgPSBydGw4MzY2cmJfcG9ydF9zZXRfbGVhcm5pbmcocHJpdiwgZHAtXHUwMDNlaW5kZXgsIGZhbHNlKTtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTk2MS1cdFx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy05NzgtXHRcdC8qIEZvcndhcmQgb25seSB0byB0aGUgQ1BVLCBpc29sYXRlIGZyb20gYWxsIG90aGVyIHBvcnRzICovXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo5Nzk6XHRcdHJldCA9IHJ0bDgzNjZyYl9wb3J0X3NldF9pc29sYXRpb24ocHJpdiwgZHAtXHUwMDNlaW5kZXgsIHVwcG9ydHNfbWFzayk7XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy05ODAtXHRcdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtOTkzLVx0XHQvKiBGb3J3YXJkIHRvIGFsbCB1c2VyIHBvcnRzICovXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo5OTQ6XHRcdHJldCA9IHJ0bDgzNjZyYl9wb3J0X3NldF9pc29sYXRpb24ocHJpdiwgZHAtXHUwMDNlaW5kZXgsIGRvd25wb3J0c19tYXNrKTtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTk5NS1cdFx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy05OTktXHQvKiBTZXQgdXAgdGhlIFwmIzM0O2dyZWVuIGV0aGVybmV0XCYjMzQ7IGZlYXR1cmUgKi9cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjEwMDA6XHRyZXQgPSBydGw4MzY2cmJfamFtX3RhYmxlKHJ0bDgzNjZyYl9ncmVlbl9qYW0sXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxMDAxOlx0XHRcdFx0ICBBUlJBWV9TSVpFKHJ0bDgzNjZyYl9ncmVlbl9qYW0pLCBwcml2LCBmYWxzZSk7XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMDAyLVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMDE5LVx0LyogU2V0IHNvbWUgcmFuZG9tIE1BQyBhZGRyZXNzICovXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxMDIwOlx0cmV0ID0gcnRsODM2NnJiX3NldF9hZGRyKHByaXYpO1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTAyMS1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTEwNS1cdGlmIChwcml2LVx1MDAzZWxlZHNfZGlzYWJsZWQpIHtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjExMDY6XHRcdHJldCA9IHJ0bDgzNjZyYl9zZXR1cF9hbGxfbGVkc19vZmYocHJpdik7XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMTA3LVx0XHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTExMDktXHR9IGVsc2Uge1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTExMDpcdFx0cmV0ID0gcnRsODM2NnJiX3NldHVwX2xlZHMocHJpdik7XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMTExLVx0XHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTExMTgtXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxMTE5Olx0cmV0ID0gcnRsODM2NnJiX3NldHVwX2Nhc2NhZGVkX2lycShwcml2KTtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTExMjAtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jPTExMzI9c3RhdGljIGVudW0gZHNhX3RhZ19wcm90b2NvbCBydGw4MzY2X2dldF90YWdfcHJvdG9jb2woc3RydWN0IGRzYV9zd2l0Y2ggKmRzLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTExMzktXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxMTQwOnN0YXRpYyB2b2lkIHJ0bDgzNjZyYl9waHlsaW5rX2dldF9jYXBzKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMTQxLVx0XHRcdFx0ICAgICAgIHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jPTExNjY9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjExNjc6cnRsODM2NnJiX21hY19jb25maWcoc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcsIHVuc2lnbmVkIGludCBtb2RlLFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTE2OC1cdFx0ICAgICBjb25zdCBzdHJ1Y3QgcGh5bGlua19saW5rX3N0YXRlICpzdGF0ZSlcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYz0xMTcyPXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxMTczOnJ0bDgzNjZyYl9tYWNfbGlua191cChzdHJ1Y3QgcGh5bGlua19jb25maWcgKmNvbmZpZywgc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldixcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTExNzQtXHRcdCAgICAgIHVuc2lnbmVkIGludCBtb2RlLCBwaHlfaW50ZXJmYWNlX3QgaW50ZXJmYWNlLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jPTEyNDQ9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjEyNDU6cnRsODM2NnJiX21hY19saW5rX2Rvd24oc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcsIHVuc2lnbmVkIGludCBtb2RlLFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTI0Ni1cdFx0XHRwaHlfaW50ZXJmYWNlX3QgaW50ZXJmYWNlKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jPTEyNjc9c3RhdGljIGludFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTI2ODpydGw4MzY2cmJfcG9ydF9lbmFibGUoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTEyNjktXHRcdCAgICAgIHN0cnVjdCBwaHlfZGV2aWNlICpwaHkpXG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM9MTI4Mz1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTI4NDpydGw4MzY2cmJfcG9ydF9kaXNhYmxlKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQpXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMjg1LXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMjk2LS8qKlxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTI5NzogKiBydGw4MzY2cmJfZHJvcF91bnRhZ2dlZCgpIC0gbWFrZSB0aGUgc3dpdGNoIGRyb3AgdW50YWdnZWQgYW5kIEMtdGFnZ2VkIGZyYW1lc1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTI5OC0gKiBAcHJpdjogU01JIHN0YXRlIGNvbnRhaW5lclxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTEzMDMtICovXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxMzA0OnN0YXRpYyBpbnQgcnRsODM2NnJiX2Ryb3BfdW50YWdnZWQoc3RydWN0IHJlYWx0ZWtfcHJpdiAqcHJpdiwgaW50IHBvcnQsIGJvb2wgZHJvcClcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTEzMDUte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTEzMTAtXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxMzExOnN0YXRpYyBpbnQgcnRsODM2NnJiX3ZsYW5fZmlsdGVyaW5nKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMzEyLVx0XHRcdFx0ICAgIGJvb2wgdmxhbl9maWx0ZXJpbmcsXG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTMxNS1cdHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYgPSBkcy1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTMxNjpcdHN0cnVjdCBydGw4MzY2cmIgKnJiO1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTMxNy1cdGludCByZXQ7XG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTMzNC1cdGlmICh2bGFuX2ZpbHRlcmluZylcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjEzMzU6XHRcdHJldCA9IHJ0bDgzNjZyYl9kcm9wX3VudGFnZ2VkKHByaXYsIHBvcnQsICFyYi1cdTAwM2VwdmlkX2VuYWJsZWRbcG9ydF0pO1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTMzNi1cdGVsc2VcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjEzMzc6XHRcdHJldCA9IHJ0bDgzNjZyYl9kcm9wX3VudGFnZ2VkKHByaXYsIHBvcnQsIGZhbHNlKTtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTEzMzgtXG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM9MTM0Mj1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxMzQzOnJ0bDgzNjZyYl9wb3J0X3ByZV9icmlkZ2VfZmxhZ3Moc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTEzNDQtXHRcdFx0XHRzdHJ1Y3Qgc3dpdGNoZGV2X2JycG9ydF9mbGFncyBmbGFncyxcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYz0xMzU0PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxMzU1OnJ0bDgzNjZyYl9wb3J0X2Zhc3RfYWdlKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQpXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMzU2LXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMzY2LVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTM2NzpzdGF0aWMgaW50IHJ0bDgzNjZyYl9jaGFuZ2VfbXR1KHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsIGludCBuZXdfbXR1KVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTM2OC17XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMzY5LVx0c3RydWN0IHJlYWx0ZWtfcHJpdiAqcHJpdiA9IGRzLVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxMzcwOlx0c3RydWN0IHJ0bDgzNjZyYiAqcmI7XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMzcxLVx0dW5zaWduZWQgaW50IG1heF9tdHU7XG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTQxMy1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE0MTQ6c3RhdGljIGludCBydGw4MzY2cmJfbWF4X210dShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0KVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTQxNS17XG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTQyMy1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE0MjQ6c3RhdGljIGludCBydGw4MzY2cmJfZ2V0X3ZsYW5fNGsoc3RydWN0IHJlYWx0ZWtfcHJpdiAqcHJpdiwgdTMyIHZpZCxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE0MjUtXHRcdFx0XHQgc3RydWN0IHJ0bDgzNjZfdmxhbl80ayAqdmxhbjRrKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE0NjQtXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxNDY1OnN0YXRpYyBpbnQgcnRsODM2NnJiX3NldF92bGFuXzRrKHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYsXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xNDY2LVx0XHRcdFx0IGNvbnN0IHN0cnVjdCBydGw4MzY2X3ZsYW5fNGsgKnZsYW40aylcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xNDk4LVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTQ5OTpzdGF0aWMgaW50IHJ0bDgzNjZyYl9nZXRfdmxhbl9tYyhzdHJ1Y3QgcmVhbHRla19wcml2ICpwcml2LCB1MzIgaW5kZXgsXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xNTAwLVx0XHRcdFx0IHN0cnVjdCBydGw4MzY2X3ZsYW5fbWMgKnZsYW5tYylcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xNTI5LVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTUzMDpzdGF0aWMgaW50IHJ0bDgzNjZyYl9zZXRfdmxhbl9tYyhzdHJ1Y3QgcmVhbHRla19wcml2ICpwcml2LCB1MzIgaW5kZXgsXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xNTMxLVx0XHRcdFx0IGNvbnN0IHN0cnVjdCBydGw4MzY2X3ZsYW5fbWMgKnZsYW5tYylcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xNTYzLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTU2NDpzdGF0aWMgaW50IHJ0bDgzNjZyYl9nZXRfbWNfaW5kZXgoc3RydWN0IHJlYWx0ZWtfcHJpdiAqcHJpdiwgaW50IHBvcnQsIGludCAqdmFsKVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTU2NS17XG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTU4Mi1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE1ODM6c3RhdGljIGludCBydGw4MzY2cmJfc2V0X21jX2luZGV4KHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYsIGludCBwb3J0LCBpbnQgaW5kZXgpXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xNTg0LXtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE1ODUtXHRzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMgPSBcdTAwMjZwcml2LVx1MDAzZWRzO1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTU4NjpcdHN0cnVjdCBydGw4MzY2cmIgKnJiO1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTU4Ny1cdGJvb2wgcHZpZF9lbmFibGVkO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE2MTAtXHRpZiAoZHNhX3BvcnRfaXNfdmxhbl9maWx0ZXJpbmcoZHNhX3RvX3BvcnQoZHMsIHBvcnQpKSlcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE2MTE6XHRcdHJldCA9IHJ0bDgzNjZyYl9kcm9wX3VudGFnZ2VkKHByaXYsIHBvcnQsICFwdmlkX2VuYWJsZWQpO1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTYxMi1cbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xNjE1LVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTYxNjpzdGF0aWMgYm9vbCBydGw4MzY2cmJfaXNfdmxhbl92YWxpZChzdHJ1Y3QgcmVhbHRla19wcml2ICpwcml2LCB1bnNpZ25lZCBpbnQgdmxhbilcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE2MTcte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE2MjgtXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxNjI5OnN0YXRpYyBpbnQgcnRsODM2NnJiX2VuYWJsZV92bGFuKHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYsIGJvb2wgZW5hYmxlKVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTYzMC17XG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTYzNi1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE2Mzc6c3RhdGljIGludCBydGw4MzY2cmJfZW5hYmxlX3ZsYW40ayhzdHJ1Y3QgcmVhbHRla19wcml2ICpwcml2LCBib29sIGVuYWJsZSlcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE2Mzgte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE2NDQtXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxNjQ1OnN0YXRpYyBpbnQgcnRsODM2NnJiX3BoeV9yZWFkKHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYsIGludCBwaHksIGludCByZWdudW0pXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xNjQ2LXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xNjg2LVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTY4NzpzdGF0aWMgaW50IHJ0bDgzNjZyYl9waHlfd3JpdGUoc3RydWN0IHJlYWx0ZWtfcHJpdiAqcHJpdiwgaW50IHBoeSwgaW50IHJlZ251bSxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE2ODgtXHRcdFx0ICAgICAgIHUxNiB2YWwpXG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTcxNy1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE3MTg6c3RhdGljIGludCBydGw4MzY2cmJfcmVzZXRfY2hpcChzdHJ1Y3QgcmVhbHRla19wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTcxOS17XG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTc0My1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE3NDQ6c3RhdGljIGludCBydGw4MzY2cmJfZGV0ZWN0KHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xNzQ1LXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xNzY2LVx0XHRwcml2LVx1MDAzZW51bV92bGFuX21jID0gUlRMODM2NlJCX05VTV9WTEFOUztcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE3Njc6XHRcdHByaXYtXHUwMDNlbWliX2NvdW50ZXJzID0gcnRsODM2NnJiX21pYl9jb3VudGVycztcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE3Njg6XHRcdHByaXYtXHUwMDNlbnVtX21pYl9jb3VudGVycyA9IEFSUkFZX1NJWkUocnRsODM2NnJiX21pYl9jb3VudGVycyk7XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xNzY5LVx0XHRicmVhaztcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xNzc1LVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTc3NjpcdHJldCA9IHJ0bDgzNjZyYl9yZXNldF9jaGlwKHByaXYpO1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTc3Ny1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTc4Mi1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE3ODM6c3RhdGljIGNvbnN0IHN0cnVjdCBwaHlsaW5rX21hY19vcHMgcnRsODM2NnJiX3BoeWxpbmtfbWFjX29wcyA9IHtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE3ODQ6XHQubWFjX2NvbmZpZyA9IHJ0bDgzNjZyYl9tYWNfY29uZmlnLFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTc4NTpcdC5tYWNfbGlua19kb3duID0gcnRsODM2NnJiX21hY19saW5rX2Rvd24sXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxNzg2Olx0Lm1hY19saW5rX3VwID0gcnRsODM2NnJiX21hY19saW5rX3VwLFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTc4Ny19O1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTc4OC1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE3ODk6c3RhdGljIGNvbnN0IHN0cnVjdCBkc2Ffc3dpdGNoX29wcyBydGw4MzY2cmJfc3dpdGNoX29wcyA9IHtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE3OTAtXHQuZ2V0X3RhZ19wcm90b2NvbCA9IHJ0bDgzNjZfZ2V0X3RhZ19wcm90b2NvbCxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE3OTE6XHQuc2V0dXAgPSBydGw4MzY2cmJfc2V0dXAsXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxNzkyOlx0LnBoeWxpbmtfZ2V0X2NhcHMgPSBydGw4MzY2cmJfcGh5bGlua19nZXRfY2FwcyxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE3OTMtXHQuZ2V0X3N0cmluZ3MgPSBydGw4MzY2X2dldF9zdHJpbmdzLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE3OTctXHQucG9ydF9icmlkZ2VfbGVhdmUgPSBydGw4M3h4X3BvcnRfYnJpZGdlX2xlYXZlLFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTc5ODpcdC5wb3J0X3ZsYW5fZmlsdGVyaW5nID0gcnRsODM2NnJiX3ZsYW5fZmlsdGVyaW5nLFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTc5OS1cdC5wb3J0X3ZsYW5fYWRkID0gcnRsODM2Nl92bGFuX2FkZCxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE4MDAtXHQucG9ydF92bGFuX2RlbCA9IHJ0bDgzNjZfdmxhbl9kZWwsXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODAxOlx0LnBvcnRfZW5hYmxlID0gcnRsODM2NnJiX3BvcnRfZW5hYmxlLFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTgwMjpcdC5wb3J0X2Rpc2FibGUgPSBydGw4MzY2cmJfcG9ydF9kaXNhYmxlLFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTgwMzpcdC5wb3J0X3ByZV9icmlkZ2VfZmxhZ3MgPSBydGw4MzY2cmJfcG9ydF9wcmVfYnJpZGdlX2ZsYWdzLFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTgwNC1cdC5wb3J0X2JyaWRnZV9mbGFncyA9IHJ0bDgzeHhfcG9ydF9icmlkZ2VfZmxhZ3MsXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODA1Olx0LnBvcnRfc3RwX3N0YXRlX3NldCA9IHJ0bDgzNjZyYl9wb3J0X3N0cF9zdGF0ZV9zZXQsXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODA2Olx0LnBvcnRfZmFzdF9hZ2UgPSBydGw4MzY2cmJfcG9ydF9mYXN0X2FnZSxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4MDc6XHQucG9ydF9jaGFuZ2VfbXR1ID0gcnRsODM2NnJiX2NoYW5nZV9tdHUsXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODA4Olx0LnBvcnRfbWF4X210dSA9IHJ0bDgzNjZyYl9tYXhfbXR1LFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTgwOS1cdC5wb3J0X2hzcl9qb2luID0gZHNhX3BvcnRfc2ltcGxlX2hzcl9qb2luLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE4MTItXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODEzOnN0YXRpYyBjb25zdCBzdHJ1Y3QgcmVhbHRla19vcHMgcnRsODM2NnJiX29wcyA9IHtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4MTQ6XHQuZGV0ZWN0XHRcdD0gcnRsODM2NnJiX2RldGVjdCxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4MTU6XHQuZ2V0X3ZsYW5fbWNcdD0gcnRsODM2NnJiX2dldF92bGFuX21jLFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTgxNjpcdC5zZXRfdmxhbl9tY1x0PSBydGw4MzY2cmJfc2V0X3ZsYW5fbWMsXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODE3Olx0LmdldF92bGFuXzRrXHQ9IHJ0bDgzNjZyYl9nZXRfdmxhbl80ayxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4MTg6XHQuc2V0X3ZsYW5fNGtcdD0gcnRsODM2NnJiX3NldF92bGFuXzRrLFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTgxOTpcdC5nZXRfbWNfaW5kZXhcdD0gcnRsODM2NnJiX2dldF9tY19pbmRleCxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4MjA6XHQuc2V0X21jX2luZGV4XHQ9IHJ0bDgzNjZyYl9zZXRfbWNfaW5kZXgsXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODIxOlx0LmdldF9taWJfY291bnRlciA9IHJ0bDgzNjZyYl9nZXRfbWliX2NvdW50ZXIsXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODIyOlx0LmlzX3ZsYW5fdmFsaWRcdD0gcnRsODM2NnJiX2lzX3ZsYW5fdmFsaWQsXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODIzOlx0LmVuYWJsZV92bGFuXHQ9IHJ0bDgzNjZyYl9lbmFibGVfdmxhbixcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4MjQ6XHQuZW5hYmxlX3ZsYW40a1x0PSBydGw4MzY2cmJfZW5hYmxlX3ZsYW40ayxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4MjU6XHQucG9ydF9hZGRfaXNvbGF0aW9uID0gcnRsODM2NnJiX3BvcnRfYWRkX2lzb2xhdGlvbixcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4MjY6XHQucG9ydF9yZW1vdmVfaXNvbGF0aW9uID0gcnRsODM2NnJiX3BvcnRfcmVtb3ZlX2lzb2xhdGlvbixcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4Mjc6XHQucG9ydF9zZXRfbGVhcm5pbmcgPSBydGw4MzY2cmJfcG9ydF9zZXRfbGVhcm5pbmcsXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODI4Olx0LnBoeV9yZWFkXHQ9IHJ0bDgzNjZyYl9waHlfcmVhZCxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4Mjk6XHQucGh5X3dyaXRlXHQ9IHJ0bDgzNjZyYl9waHlfd3JpdGUsXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xODMwLX07XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xODMxLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTgzMjpjb25zdCBzdHJ1Y3QgcmVhbHRla192YXJpYW50IHJ0bDgzNjZyYl92YXJpYW50ID0ge1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTgzMzpcdC5kc19vcHMgPSBcdTAwMjZydGw4MzY2cmJfc3dpdGNoX29wcyxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4MzQ6XHQub3BzID0gXHUwMDI2cnRsODM2NnJiX29wcyxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4MzU6XHQucGh5bGlua19tYWNfb3BzID0gXHUwMDI2cnRsODM2NnJiX3BoeWxpbmtfbWFjX29wcyxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE4MzYtXHQuY2xrX2RlbGF5ID0gMTAsXG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTgzOC1cdC5jbWRfd3JpdGUgPSAweGE4LFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTgzOTpcdC5jaGlwX2RhdGFfc3ogPSBzaXplb2Yoc3RydWN0IHJ0bDgzNjZyYiksXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xODQwLX07XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xODQxLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTg0MjpzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBydGw4MzY2cmJfb2ZfbWF0Y2hbXSA9IHtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4NDM6XHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7cmVhbHRlayxydGw4MzY2cmJcJiMzNDssIC5kYXRhID0gXHUwMDI2cnRsODM2NnJiX3ZhcmlhbnQsIH0sXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xODQ0LVx0eyAvKiBzZW50aW5lbCAqLyB9LFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTg0NS19O1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTg0NjpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBydGw4MzY2cmJfb2ZfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTg0Ny1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4NDg6c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgcnRsODM2NnJiX3NtaV9kcml2ZXIgPSB7XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xODQ5LVx0LmRyaXZlciA9IHtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4NTA6XHRcdC5uYW1lID0gXCYjMzQ7cnRsODM2NnJiLXNtaVwmIzM0OyxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4NTE6XHRcdC5vZl9tYXRjaF90YWJsZSA9IHJ0bDgzNjZyYl9vZl9tYXRjaCxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE4NTItXHR9LFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE4NTctXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODU4OnN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgcnRsODM2NnJiX21kaW9fZHJpdmVyID0ge1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTg1OS1cdC5tZGlvZHJ2LmRyaXZlciA9IHtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4NjA6XHRcdC5uYW1lID0gXCYjMzQ7cnRsODM2NnJiLW1kaW9cJiMzNDssXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODYxOlx0XHQub2ZfbWF0Y2hfdGFibGUgPSBydGw4MzY2cmJfb2ZfbWF0Y2gsXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xODYyLVx0fSxcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xODY3LVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTg2ODpzdGF0aWMgaW50IHJ0bDgzNjZyYl9pbml0KHZvaWQpXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xODY5LXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xODcxLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTg3MjpcdHJldCA9IHJlYWx0ZWtfbWRpb19kcml2ZXJfcmVnaXN0ZXIoXHUwMDI2cnRsODM2NnJiX21kaW9fZHJpdmVyKTtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE4NzMtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE4NzUtXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODc2Olx0cmV0ID0gcmVhbHRla19zbWlfZHJpdmVyX3JlZ2lzdGVyKFx1MDAyNnJ0bDgzNjZyYl9zbWlfZHJpdmVyKTtcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIxIDIzOjUxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE4OTA2CgkJCQkJCQlvdXRwdXQ6IDEwNwoJCQkJCQkJdGhvdWdodHM6IDQ5MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipVbmZ1enphYmxlIEhhcmR3YXJlIERlcGVuZGVuY3kqKgoKT2theSwgc28gbG9va2luZyBhdCB0aGlzIGNvZGUsIG15IGluaXRpYWwgYXNzZXNzbWVudCBpcyB0aGF0IHRoaXMgaXMgYSBkZWFkIGVuZCBmb3IgZnV6emluZy4gVGhlIGRyaXZlciwgYHJlYWx0ZWtfbWRpb19kcml2ZXJfcmVnaXN0ZXJgIGFuZCBgcmVhbHRla19zbWlfZHJpdmVyX3JlZ2lzdGVyYCwgcmVnaXN0ZXJzIGl0c2VsZiB0byBoYW5kbGUgc3BlY2lmaWMgaGFyZHdhcmUsIHNwZWNpZmljYWxseSBkZXZpY2VzIHRoYXQgYXJlIGRlc2NyaWJlZCB3aXRoIGByZWFsdGVrLHJ0bDgzNjZyYmAgaW4gdGhlIGRldmljZSB0cmVlLiBUaGlzIGltbWVkaWF0ZWx5IGZsYWdzIGl0IGFzIGhhcmR3YXJlLXNwZWNpZmljLiBXZSYjMzk7cmUgZGVhbGluZyB3aXRoIGFuIE1ESU8vU01JIGNvbm5lY3RlZCBzd2l0Y2guIFRoYXQgbWVhbnMgaXQgbmVlZHMgYWN0dWFsIGhhcmR3YXJlIHRvIGZ1bmN0aW9uLCBhbmQgaXQgd29uJiMzOTt0IGJlIHJlYWNoYWJsZSBpbiBhbnkgc3RhbmRhcmQgdmlydHVhbGl6ZWQgc2V0dXAgbGlrZSBRRU1VIG9yIEdDRSB1bmxlc3MgdGhlcmUmIzM5O3Mgc29tZSB2ZXJ5IHNwZWNpYWxpemVkIGVtdWxhdG9yIGZvciAqdGhpcyogcGFydGljdWxhciBSZWFsdGVrIGNoaXAsIHdoaWNoIGlzIHVubGlrZWx5LgoKSnVzdCB0byBiZSB0aG9yb3VnaCwgSSYjMzk7bSBjaGVja2luZyBpZiB0aGVyZSYjMzk7cyBhbnkgc29mdHdhcmUgd29ya2Fyb3VuZCwgYnV0IGV2ZW4gaWYgdGhlcmUgYXJlIHNvZnR3YXJlIE1ESU8gYnVzZXMsIHRoZXkgc3RpbGwgZGVwZW5kIG9uIHRoZSB1bmRlcmx5aW5nIGhhcmR3YXJlIHJlc3BvbmRpbmcgdG8gcmVhZCBhbmQgd3JpdGUgY29tbWFuZHMuIFRoZSBgcnRsODM2NnJiX2RldGVjdGAgZnVuY3Rpb24gaXMgdGhlIHRlbGwtdGFsZSBzaWduLiBJdCB0cmllcyB0byByZWFkIGEgY2hpcCBJRCByZWdpc3RlcjoKCmBgYGMKc3RhdGljIGludCBydGw4MzY2cmJfZGV0ZWN0KHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYpCnsKICAgIC4uLgogICAgcmV0ID0gcmVnbWFwX3JlYWQocHJpdi0mZ3Q7bWFwLCBSVEw4MzY2UkJfQ0hJUF9JRF9SRUcsICZhbXA7dmFsKTsKICAgIGlmIChyZXQpIHsKICAgICAgICBkZXZfZXJyKHByaXYtJmd0O2RldiwgJiMzNDtmYWlsZWQgdG8gcmVhZCBjaGlwIGlkXG4mIzM0Oyk7CiAgICAgICAgcmV0dXJuIHJldDsKICAgIH0KICAgIGlmICh2YWwgIT0gUlRMODM2NlJCX0NISVBfSURfODM2NikgewogICAgICAgIGRldl9lcnIocHJpdi0mZ3Q7ZGV2LCAmIzM0O2NoaXAgaWQgJTA0eCAhPSAlMDR4XG4mIzM0OywgdmFsLCBSVEw4MzY2UkJfQ0hJUF9JRF84MzY2KTsKICAgICAgICByZXR1cm4gLUVOT0RFVjsKICAgIH0KICAgIC4uLgp9CmBgYAoKVGhlIHByb2JlIGZ1bmN0aW9uIHdpbGwgKmltbWVkaWF0ZWx5KiBmYWlsLCByZXR1cm5pbmcgYC1FTk9ERVZgLCBpZiB0aGUgY2hpcCBJRCBkb2VzbiYjMzk7dCBtYXRjaCBgUlRMODM2NlJCX0NISVBfSURfODM2NmAuIFRoZXJlJiMzOTtzIG5vIHdheSBhcm91bmQgaXQgd2l0aG91dCB0aGUgcGh5c2ljYWwgaGFyZHdhcmUsIG9yIGFuIGFjY3VyYXRlIGVtdWxhdG9yLiBBbmQgSSBrbm93IFFFTVUgZG9lc24mIzM5O3QgZW11bGF0ZSB0aGlzIHBhcnRpY3VsYXIgY2hpcC4KClNvLCBnaXZlbiB0aGF0IHRoZSBwYXRjaCB0YXJnZXRzIGEgaGFyZHdhcmUtc3BlY2lmaWMgRFNBIHN3aXRjaCBkcml2ZXIsIHdpdGggY29tbXVuaWNhdGlvbiB0aHJvdWdoIE1ESU8vU01JLCB3aGljaCBmdXJ0aGVyIHJlcXVpcmVzIGEgc3BlY2lmaWMgY2hpcCBJRCBjaGVjaywgYW5kIHRoZSB0YXJnZXQgaGFyZHdhcmUgaXMgbm90IGVtdWxhdGVkIGluIGNvbW1vbmx5IGF2YWlsYWJsZSB2aXJ0dWFsaXphdGlvbiBwbGF0Zm9ybXMsIEkmIzM5O20gZ29pbmcgdG8gc2V0IGBXb3J0aEZ1enppbmdgIHRvIGBmYWxzZWAuIFRpbWUgdG8gY2FsbCBgc2V0LXJlc3VsdHNgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIxIDIzOjUxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBEU0Egc3dpdGNoIGRyaXZlciAoUmVhbHRlayBSVEw4MzY2UkIpIHdoaWNoIGNvbW11bmljYXRlcyB2aWEgTURJTy9TTUkuIFRoaXMgaGFyZHdhcmUgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLCBhbmQgdGhlIGRyaXZlciBleHBsaWNpdGx5IGNoZWNrcyBmb3IgYSBzcGVjaWZpYyBoYXJkd2FyZSBjaGlwIElEIGR1cmluZyBwcm9iZS4gVGhlcmVmb3JlLCB0aGUgbW9kaWZpZWQgY29kZSBpcyB1bnJlYWNoYWJsZSBhbmQgY2Fubm90IGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGEgaGFyZHdhcmUtc3BlY2lmaWMgRFNBIHN3aXRjaCBkcml2ZXIgKFJlYWx0ZWsgUlRMODM2NlJCKSB3aGljaCBjb21tdW5pY2F0ZXMgdmlhIE1ESU8vU01JLiBUaGlzIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSwgYW5kIHRoZSBkcml2ZXIgZXhwbGljaXRseSBjaGVja3MgZm9yIGEgc3BlY2lmaWMgaGFyZHdhcmUgY2hpcCBJRCBkdXJpbmcgcHJvYmUuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgdW5yZWFjaGFibGUgYW5kIGNhbm5vdCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMjFUMjM6NTE6MDkuNzgwNDUzMjU4WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTYxMDkzNjQxOTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGEgaGFyZHdhcmUtc3BlY2lmaWMgRFNBIHN3aXRjaCBkcml2ZXIgKFJlYWx0ZWsgUlRMODM2NlJCKSB3aGljaCBjb21tdW5pY2F0ZXMgdmlhIE1ESU8vU01JLiBUaGlzIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSwgYW5kIHRoZSBkcml2ZXIgZXhwbGljaXRseSBjaGVja3MgZm9yIGEgc3BlY2lmaWMgaGFyZHdhcmUgY2hpcCBJRCBkdXJpbmcgcHJvYmUuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgdW5yZWFjaGFibGUgYW5kIGNhbm5vdCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMVQyMzo1MTowOS43ODA0NjA0OThaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU0NzE1Njc3OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDIzYTViOGU4NTdlMzczMDFkMmUyZTJmMmU2MTdkY2FhZDNjOGNiMWRcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFR1ZSBKdWwgMjEgMjM6NTE6MDggMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMgYi9kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuY1xcbmluZGV4IGQyZmE4ZmY2YTVkMDhhLi42ZDVhNmU3YmM1ZjEzMyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jXFxuQEAgLTc5NCw4ICs3OTQsOCBAQCBzdGF0aWMgaW50IHJ0bDgzNjZyYl9zZXR1cF9hbGxfbGVkc19vZmYoc3RydWN0IHJlYWx0ZWtfcHJpdiAqcHJpdilcXG4gc3RhdGljIGludCBydGw4MzY2cmJfcG9ydF9zZXRfaXNvbGF0aW9uKHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYsIGludCBwb3J0LFxcbiBcXHRcXHRcXHRcXHRcXHR1MzIgbWFzaylcXG4ge1xcbi1cXHQvKiBCaXQgMCBlbmFibGVzIGlzb2xhdGlvbiBzbyBzZXQgdGhpcyBpZiB3ZSBlbmFibGUgaXNvbGF0aW9uXFxuLVxcdCAqIGFueSBvZiB0aGUgcG9ydHMgYW4gY2xlYXIgaXQgaWYgd2UgZGlzYWJsZSBvbiBhbGwgb2YgdGhlbS5cXG4rXFx0LyogQml0IDAgZW5hYmxlcyBpc29sYXRpb24gc28gc2V0IHRoaXMgaWYgd2UgZW5hYmxlIGlzb2xhdGlvbiBvblxcbitcXHQgKiBhbnkgb2YgdGhlIHBvcnRzIGFuZCBjbGVhciBpdCBpZiB3ZSBkaXNhYmxlIG9uIGFsbCBvZiB0aGVtLlxcbiBcXHQgKi9cXG4gXFx0aWYgKG1hc2spXFxuIFxcdFxcdG1hc2sgPSBSVEw4MzY2UkJfUE9SVF9JU09fUE9SVFMobWFzaykgfCBSVEw4MzY2UkJfUE9SVF9JU09fRU47XFxuQEAgLTk1MSw3ICs5NTEsOCBAQCBzdGF0aWMgaW50IHJ0bDgzNjZyYl9zZXR1cChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpXFxuIFxcdFxcdHJ0bDgzNjZyYl9wb3J0X3N0cF9zdGF0ZV9zZXQoZHMsIGRwLVxcdTAwM2VpbmRleCwgQlJfU1RBVEVfRElTQUJMRUQpO1xcbiBcXG4gXFx0XFx0LyogU3RhcnQgd2l0aCBhbGwgcG9ydHMgY29tcGxldGVseSBpc29sYXRlZCAqL1xcbi1cXHRcXHRyZXQgPSBydGw4MzY2cmJfcG9ydF9zZXRfaXNvbGF0aW9uKHByaXYsIGRwLVxcdTAwM2VpbmRleCwgMCk7XFxuK1xcdFxcdHJldCA9IHJ0bDgzNjZyYl9wb3J0X3NldF9pc29sYXRpb24ocHJpdiwgZHAtXFx1MDAzZWluZGV4LFxcbitcXHRcXHRcXHRcXHRcXHRcXHQgICBSVEw4MzY2UkJfUE9SVF9JU09fUE9SVFNfTUFTSyk7XFxuIFxcdFxcdGlmIChyZXQpXFxuIFxcdFxcdFxcdHJldHVybiByZXQ7XFxuIFxcbkBAIC05NzQsNyArOTc1LDcgQEAgc3RhdGljIGludCBydGw4MzY2cmJfc2V0dXAoc3RydWN0IGRzYV9zd2l0Y2ggKmRzKVxcbiBcXHRcXHRpZiAoIWRzYV9wb3J0X2lzX3VzZXIoZHApKVxcbiBcXHRcXHRcXHRjb250aW51ZTtcXG4gXFxuLVxcdFxcdC8qIEZvcndhcmQgb25seSB0byB0aGUgQ1BVICovXFxuK1xcdFxcdC8qIEZvcndhcmQgb25seSB0byB0aGUgQ1BVLCBpc29sYXRlIGZyb20gYWxsIG90aGVyIHBvcnRzICovXFxuIFxcdFxcdHJldCA9IHJ0bDgzNjZyYl9wb3J0X3NldF9pc29sYXRpb24ocHJpdiwgZHAtXFx1MDAzZWluZGV4LCB1cHBvcnRzX21hc2spO1xcbiBcXHRcXHRpZiAocmV0KVxcbiBcXHRcXHRcXHRyZXR1cm4gcmV0O1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMVQyMzo1MToxMC4zMjgxOTUzNjdaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjoxNTU2MTYxMjA4MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBEU0Egc3dpdGNoIGRyaXZlciAoUmVhbHRlayBSVEw4MzY2UkIpIHdoaWNoIGNvbW11bmljYXRlcyB2aWEgTURJTy9TTUkuIFRoaXMgaGFyZHdhcmUgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLCBhbmQgdGhlIGRyaXZlciBleHBsaWNpdGx5IGNoZWNrcyBmb3IgYSBzcGVjaWZpYyBoYXJkd2FyZSBjaGlwIElEIGR1cmluZyBwcm9iZS4gVGhlcmVmb3JlLCB0aGUgbW9kaWZpZWQgY29kZSBpcyB1bnJlYWNoYWJsZSBhbmQgY2Fubm90IGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgMjNhNWI4ZTg1N2UzNzMwMWQyZTJlMmYyZTYxN2RjYWFkM2M4Y2IxZFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgSnVsIDIxIDIzOjUxOjA4IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMgYi9kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuY1xuaW5kZXggZDJmYThmZjZhNWQwOGEuLjZkNWE2ZTdiYzVmMTMzIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmNcbisrKyBiL2RyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jXG5AQCAtNzk0LDggKzc5NCw4IEBAIHN0YXRpYyBpbnQgcnRsODM2NnJiX3NldHVwX2FsbF9sZWRzX29mZihzdHJ1Y3QgcmVhbHRla19wcml2ICpwcml2KVxuIHN0YXRpYyBpbnQgcnRsODM2NnJiX3BvcnRfc2V0X2lzb2xhdGlvbihzdHJ1Y3QgcmVhbHRla19wcml2ICpwcml2LCBpbnQgcG9ydCxcbiBcdFx0XHRcdFx0dTMyIG1hc2spXG4ge1xuLVx0LyogQml0IDAgZW5hYmxlcyBpc29sYXRpb24gc28gc2V0IHRoaXMgaWYgd2UgZW5hYmxlIGlzb2xhdGlvblxuLVx0ICogYW55IG9mIHRoZSBwb3J0cyBhbiBjbGVhciBpdCBpZiB3ZSBkaXNhYmxlIG9uIGFsbCBvZiB0aGVtLlxuK1x0LyogQml0IDAgZW5hYmxlcyBpc29sYXRpb24gc28gc2V0IHRoaXMgaWYgd2UgZW5hYmxlIGlzb2xhdGlvbiBvblxuK1x0ICogYW55IG9mIHRoZSBwb3J0cyBhbmQgY2xlYXIgaXQgaWYgd2UgZGlzYWJsZSBvbiBhbGwgb2YgdGhlbS5cbiBcdCAqL1xuIFx0aWYgKG1hc2spXG4gXHRcdG1hc2sgPSBSVEw4MzY2UkJfUE9SVF9JU09fUE9SVFMobWFzaykgfCBSVEw4MzY2UkJfUE9SVF9JU09fRU47XG5AQCAtOTUxLDcgKzk1MSw4IEBAIHN0YXRpYyBpbnQgcnRsODM2NnJiX3NldHVwKHN0cnVjdCBkc2Ffc3dpdGNoICpkcylcbiBcdFx0cnRsODM2NnJiX3BvcnRfc3RwX3N0YXRlX3NldChkcywgZHAtXHUwMDNlaW5kZXgsIEJSX1NUQVRFX0RJU0FCTEVEKTtcbiBcbiBcdFx0LyogU3RhcnQgd2l0aCBhbGwgcG9ydHMgY29tcGxldGVseSBpc29sYXRlZCAqL1xuLVx0XHRyZXQgPSBydGw4MzY2cmJfcG9ydF9zZXRfaXNvbGF0aW9uKHByaXYsIGRwLVx1MDAzZWluZGV4LCAwKTtcbitcdFx0cmV0ID0gcnRsODM2NnJiX3BvcnRfc2V0X2lzb2xhdGlvbihwcml2LCBkcC1cdTAwM2VpbmRleCxcbitcdFx0XHRcdFx0XHQgICBSVEw4MzY2UkJfUE9SVF9JU09fUE9SVFNfTUFTSyk7XG4gXHRcdGlmIChyZXQpXG4gXHRcdFx0cmV0dXJuIHJldDtcbiBcbkBAIC05NzQsNyArOTc1LDcgQEAgc3RhdGljIGludCBydGw4MzY2cmJfc2V0dXAoc3RydWN0IGRzYV9zd2l0Y2ggKmRzKVxuIFx0XHRpZiAoIWRzYV9wb3J0X2lzX3VzZXIoZHApKVxuIFx0XHRcdGNvbnRpbnVlO1xuIFxuLVx0XHQvKiBGb3J3YXJkIG9ubHkgdG8gdGhlIENQVSAqL1xuK1x0XHQvKiBGb3J3YXJkIG9ubHkgdG8gdGhlIENQVSwgaXNvbGF0ZSBmcm9tIGFsbCBvdGhlciBwb3J0cyAqL1xuIFx0XHRyZXQgPSBydGw4MzY2cmJfcG9ydF9zZXRfaXNvbGF0aW9uKHByaXYsIGRwLVx1MDAzZWluZGV4LCB1cHBvcnRzX21hc2spO1xuIFx0XHRpZiAocmV0KVxuIFx0XHRcdHJldHVybiByZXQ7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMVQyMzo1MToxMC4zMjgxOTY0NTdaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2NTI0MTg3MTg4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFBvdGVudGlhbCBGdXp6aW5nIFRhcmdldDogUmVhbHRlayBSVEw4MzY2UkIgRHJpdmVyKipcblxuT2theSwgc28gSSd2ZSBnb3QgYSBwYXRjaCBoZXJlIHRoYXQgdHdlYWtzIHRoZSBgcnRsODM2NnJiX3NldHVwYCBmdW5jdGlvbiB3aXRoaW4gYGRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jYC4gVGhlIGNvcmUgY2hhbmdlIGlzIHRoaXM6IGl0J3Mgc3dhcHBpbmcgb3V0IGEgY2FsbCB0byBgcnRsODM2NnJiX3BvcnRfc2V0X2lzb2xhdGlvbihwcml2LCBkcC1cdTAwM2VpbmRleCwgMClgIHdpdGggYHJ0bDgzNjZyYl9wb3J0X3NldF9pc29sYXRpb24ocHJpdiwgZHAtXHUwMDNlaW5kZXgsIFJUTDgzNjZSQl9QT1JUX0lTT19QT1JUU19NQVNLKWAuIEJhc2ljYWxseSwgaXQncyBtZXNzaW5nIHdpdGggcG9ydCBpc29sYXRpb24sIGFuZCB0aGUgcGF0Y2ggYWxzbyBpbmNsdWRlcyBzb21lIGNvbW1lbnQgdXBkYXRlcy4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIFwiSXMgdGhpcyBmdXp6YWJsZT9cIlxuXG5UaGUgZmlsZSdzIGluIHRoZSBEU0EgZHJpdmVyIGRpcmVjdG9yeSwgc3BlY2lmaWNhbGx5IGZvciB0aGUgUmVhbHRlayBSVEw4MzY2UkIgc3dpdGNoLiBSaWdodCBhd2F5LCBteSBhbnRlbm5hZSBnbyB1cC4gRFNBIGRyaXZlcnMgYXJlIG5vdG9yaW91cyBmb3IgYmVpbmcgaGFyZHdhcmUtZGVwZW5kZW50LiBUaGV5IHR5cGljYWxseSB0YWxrIHRvIHRoZSBzd2l0Y2ggaGFyZHdhcmUgdmlhIEkyQyBvciBNRElPLiBDYW4gSSBldmVuICpyZWFjaCogdGhpcyB0aGluZyBpbiBhIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnQ/IERTQSBkcml2ZXJzIGFyZSBhIHBhaW4gYmVjYXVzZSB0aGV5J3JlIHNvIHRpZ2h0bHkgY291cGxlZCB3aXRoIHRoZSBoYXJkd2FyZS4gU3VyZSwgSSBjYW4gKnNvbWV0aW1lcyogaW5zdGFudGlhdGUgdGhlbSB3aXRoIGRldmljZSB0cmVlIG92ZXJsYXlzIG9yIG90aGVyIHRyaWNrcywgYnV0IHRoYXQncyBzdGlsbCBwcmV0dHkgaGFyZHdhcmUtc3BlY2lmaWMuXG5cbkdpdmVuIHRoYXQgdGhpcyBpcyBSZWFsdGVrLCBpdCdzIGxpa2VseSBhbiBJMkMgb3IgTURJTyBkZXZpY2UuIEl0IGxvb2tzIGxpa2UgdGhpcyBwYXRjaCBjb3VsZCBpbXBhY3QgcG9ydCBpc29sYXRpb24sIG1lYW5pbmcgdGhlcmUgY291bGQgYmUgaW50ZXJlc3RpbmcgY29kZSBwYXRocyB0byBwcm9iZS4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgdGhlcmUncyAqYW55KiByZWFsaXN0aWMgd2F5IHRvIGVtdWxhdGUgb3IgbW9jayB0aGlzIGhhcmR3YXJlLiBJZiBpdCdzIHB1cmUgaGFyZHdhcmUtZGVwZW5kZW50LCB3aXRob3V0IHNvbWUgc29ydCBvZiBlbXVsYXRpb24sIGEgbW9jaywgb3IgbWF5YmUgZXZlbiBhIFVTQi9QQ0kgaW50ZXJmYWNlIHRoYXQgSSAqY291bGQqIHBvdGVudGlhbGx5IHNpbXVsYXRlLCB0aGlzIGlzIGdvaW5nIHRvIGJlIGEgZGVhZCBlbmQgZm9yIGZ1enppbmcuIFRpbWUgdG8gZGlnIGRlZXBlciBpbnRvIHRoZSBkYXRhc2hlZXQgYW5kIHNlZSB3aGF0IG9wdGlvbnMgSSBoYXZlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjk0LCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mjk2LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjFUMjM6NTE6MTYuODUyMzg1MTI1WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg4NzIzODI4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInJ0bDgzNjZyYlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9kc2EvcmVhbHRlay9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA1NDAgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL01ha2VmaWxlPTEzPW9iai0kKENPTkZJR19ORVRfRFNBX1JFQUxURUtfUlRMODM2NlJCKSArPSBydGw4MzY2Lm9cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9NYWtlZmlsZToxNDpydGw4MzY2LW9ianMgXFx0XFx0XFx0XFx0Oj0gcnRsODM2Ni1jb3JlLm8gcnRsODM2NnJiLm9cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9NYWtlZmlsZS0xNS1pZmRlZiBDT05GSUdfTkVUX0RTQV9SRUFMVEVLX1JUTDgzNjZSQl9MRURTXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvTWFrZWZpbGU6MTY6cnRsODM2Ni1vYmpzIFxcdFxcdFxcdFxcdCs9IHJ0bDgzNjZyYi1sZWRzLm9cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9NYWtlZmlsZS0xNy1lbmRpZlxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcmVhbHRlay5oPTE4OD12b2lkIHJ0bDgzNjZfZ2V0X2V0aHRvb2xfc3RhdHMoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCwgdWludDY0X3QgKmRhdGEpO1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3JlYWx0ZWsuaC0xODktXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcmVhbHRlay5oOjE5MDpleHRlcm4gY29uc3Qgc3RydWN0IHJlYWx0ZWtfdmFyaWFudCBydGw4MzY2cmJfdmFyaWFudDtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9yZWFsdGVrLmgtMTkxLWV4dGVybiBjb25zdCBzdHJ1Y3QgcmVhbHRla192YXJpYW50IHJ0bDgzNjVtYl92YXJpYW50O1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYy02LSNpbmNsdWRlIFxcXCJydGw4M3h4LmhcXFwiXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYzo3OiNpbmNsdWRlIFxcXCJydGw4MzY2cmIuaFxcXCJcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jLTgtXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYzo5OnN0YXRpYyBpbmxpbmUgdTMyIHJ0bDgzNjZyYl9sZWRfZ3JvdXBfcG9ydF9tYXNrKHU4IGxlZF9ncm91cCwgdTggcG9ydClcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jLTEwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi1sZWRzLmMtMjQtXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYzoyNTpzdGF0aWMgaW50IHJiODM2NnJiX2dldF9wb3J0X2xlZChzdHJ1Y3QgcnRsODM2NnJiX2xlZCAqbGVkKVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi1sZWRzLmMtMjYte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYy00MC1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jOjQxOlxcdHJldHVybiAhISh2YWwgXFx1MDAyNiBydGw4MzY2cmJfbGVkX2dyb3VwX3BvcnRfbWFzayhsZWRfZ3JvdXAsIHBvcnRfbnVtKSk7XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYy00Mi19XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYy00My1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jOjQ0OnN0YXRpYyBpbnQgcmI4MzY2cmJfc2V0X3BvcnRfbGVkKHN0cnVjdCBydGw4MzY2cmJfbGVkICpsZWQsIGJvb2wgZW5hYmxlKVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi1sZWRzLmMtNDUte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYy01Mi1cXHRcXHRcXHRcXHQgUlRMODM2NlJCX0xFRF9YX1hfQ1RSTF9SRUcobGVkX2dyb3VwKSxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jOjUzOlxcdFxcdFxcdFxcdCBydGw4MzY2cmJfbGVkX2dyb3VwX3BvcnRfbWFzayhsZWRfZ3JvdXAsXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYy01NC1cXHRcXHRcXHRcXHRcXHRcXHRcXHQgICAgICAgcG9ydF9udW0pLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYz03NT1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYzo3NjpydGw4MzY2cmJfY2xlZF9icmlnaHRuZXNzX3NldF9ibG9ja2luZyhzdHJ1Y3QgbGVkX2NsYXNzZGV2ICpsZGV2LFxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi1sZWRzLmMtNzctXFx0XFx0XFx0XFx0ICAgICAgIGVudW0gbGVkX2JyaWdodG5lc3MgYnJpZ2h0bmVzcylcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jLTc4LXtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jOjc5OlxcdHN0cnVjdCBydGw4MzY2cmJfbGVkICpsZWQgPSBjb250YWluZXJfb2YobGRldiwgc3RydWN0IHJ0bDgzNjZyYl9sZWQsXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYy04MC1cXHRcXHRcXHRcXHRcXHRcXHQgY2Rldik7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jLTg0LVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi1sZWRzLmM6ODU6c3RhdGljIGludCBydGw4MzY2cmJfc2V0dXBfbGVkKHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYsIHN0cnVjdCBkc2FfcG9ydCAqZHAsXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYy04Ni1cXHRcXHRcXHQgICAgICAgc3RydWN0IGZ3bm9kZV9oYW5kbGUgKmxlZF9md25vZGUpXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYy04Ny17XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYzo4ODpcXHRzdHJ1Y3QgcnRsODM2NnJiICpyYiA9IHByaXYtXFx1MDAzZWNoaXBfZGF0YTtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jLTg5LVxcdHN0cnVjdCBsZWRfaW5pdF9kYXRhIGluaXRfZGF0YSA9IHsgfTtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jLTkwLVxcdGVudW0gbGVkX2RlZmF1bHRfc3RhdGUgc3RhdGU7XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYzo5MTpcXHRzdHJ1Y3QgcnRsODM2NnJiX2xlZCAqbGVkO1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi1sZWRzLmMtOTItXFx0Y2hhciBuYW1lWzY0XTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi1sZWRzLmMtMTI4LVxcdGxlZC1cXHUwMDNlY2Rldi5icmlnaHRuZXNzX3NldF9ibG9ja2luZyA9XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYzoxMjk6XFx0XFx0cnRsODM2NnJiX2NsZWRfYnJpZ2h0bmVzc19zZXRfYmxvY2tpbmc7XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYy0xMzAtXFx0aW5pdF9kYXRhLmZ3bm9kZSA9IGxlZF9md25vZGU7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jLTE0Ni1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jOjE0NzppbnQgcnRsODM2NnJiX3NldHVwX2xlZHMoc3RydWN0IHJlYWx0ZWtfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jLTE0OC17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jLTE2NS1cXHRcXHRmb3JfZWFjaF9jaGlsZF9vZl9ub2RlX3Njb3BlZChsZWRzX25wLCBsZWRfbnApIHtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jOjE2NjpcXHRcXHRcXHRyZXQgPSBydGw4MzY2cmJfc2V0dXBfbGVkKHByaXYsIGRwLFxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi1sZWRzLmMtMTY3LVxcdFxcdFxcdFxcdFxcdFxcdCAgb2ZfZndub2RlX2hhbmRsZShsZWRfbnApKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTI5LSNpbmNsdWRlIFxcXCJydGw4M3h4LmhcXFwiXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MzA6I2luY2x1ZGUgXFxcInJ0bDgzNjZyYi5oXFxcIlxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTMxLVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMzE1LVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjMxNjpzdGF0aWMgc3RydWN0IHJ0bDgzNjZfbWliX2NvdW50ZXIgcnRsODM2NnJiX21pYl9jb3VudGVyc1tdID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTMxNy1cXHR7IDAsICAwLCA0LCBcXFwiSWZJbk9jdGV0c1xcXCJcXHRcXHRcXHRcXHR9LFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMzUxLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjM1MjpzdGF0aWMgaW50IHJ0bDgzNjZyYl9nZXRfbWliX2NvdW50ZXIoc3RydWN0IHJlYWx0ZWtfcHJpdiAqcHJpdixcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0zNTMtXFx0XFx0XFx0XFx0ICAgICBpbnQgcG9ydCxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTM5My1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzozOTQ6c3RhdGljIHUzMiBydGw4MzY2cmJfZ2V0X2lycW1hc2soc3RydWN0IGlycV9kYXRhICpkKVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTM5NS17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy00MDgtXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6NDA5OnN0YXRpYyB2b2lkIHJ0bDgzNjZyYl9tYXNrX2lycShzdHJ1Y3QgaXJxX2RhdGEgKmQpXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNDEwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTQxNC1cXHRyZXQgPSByZWdtYXBfdXBkYXRlX2JpdHMocHJpdi1cXHUwMDNlbWFwLCBSVEw4MzY2UkJfSU5URVJSVVBUX01BU0tfUkVHLFxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjQxNTpcXHRcXHRcXHRcXHQgcnRsODM2NnJiX2dldF9pcnFtYXNrKGQpLCAwKTtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy00MTYtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTQxOS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo0MjA6c3RhdGljIHZvaWQgcnRsODM2NnJiX3VubWFza19pcnEoc3RydWN0IGlycV9kYXRhICpkKVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTQyMS17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy00MjUtXFx0cmV0ID0gcmVnbWFwX3VwZGF0ZV9iaXRzKHByaXYtXFx1MDAzZW1hcCwgUlRMODM2NlJCX0lOVEVSUlVQVF9NQVNLX1JFRyxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo0MjY6XFx0XFx0XFx0XFx0IHJ0bDgzNjZyYl9nZXRfaXJxbWFzayhkKSxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo0Mjc6XFx0XFx0XFx0XFx0IHJ0bDgzNjZyYl9nZXRfaXJxbWFzayhkKSk7XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNDI4LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy00MzEtXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6NDMyOnN0YXRpYyBpcnFyZXR1cm5fdCBydGw4MzY2cmJfaXJxKGludCBpcnEsIHZvaWQgKmRhdGEpXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNDMzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTQ2My1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo0NjQ6c3RhdGljIHN0cnVjdCBpcnFfY2hpcCBydGw4MzY2cmJfaXJxX2NoaXAgPSB7XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNDY1LVxcdC5uYW1lID0gXFxcIlJUTDgzNjZSQlxcXCIsXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6NDY2OlxcdC5pcnFfbWFzayA9IHJ0bDgzNjZyYl9tYXNrX2lycSxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo0Njc6XFx0LmlycV91bm1hc2sgPSBydGw4MzY2cmJfdW5tYXNrX2lycSxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy00NjgtfTtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy00NjktXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6NDcwOnN0YXRpYyBpbnQgcnRsODM2NnJiX2lycV9tYXAoc3RydWN0IGlycV9kb21haW4gKmRvbWFpbiwgdW5zaWduZWQgaW50IGlycSxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy00NzEtXFx0XFx0XFx0ICAgICBpcnFfaHdfbnVtYmVyX3QgaHdpcnEpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy00NzMtXFx0aXJxX3NldF9jaGlwX2RhdGEoaXJxLCBkb21haW4tXFx1MDAzZWhvc3RfZGF0YSk7XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6NDc0OlxcdGlycV9zZXRfY2hpcF9hbmRfaGFuZGxlcihpcnEsIFxcdTAwMjZydGw4MzY2cmJfaXJxX2NoaXAsIGhhbmRsZV9zaW1wbGVfaXJxKTtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy00NzUtXFx0aXJxX3NldF9uZXN0ZWRfdGhyZWFkKGlycSwgMSk7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy00ODAtXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6NDgxOnN0YXRpYyB2b2lkIHJ0bDgzNjZyYl9pcnFfdW5tYXAoc3RydWN0IGlycV9kb21haW4gKmQsIHVuc2lnbmVkIGludCBpcnEpXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNDgyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTQ4Ny1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo0ODg6c3RhdGljIGNvbnN0IHN0cnVjdCBpcnFfZG9tYWluX29wcyBydGw4MzY2cmJfaXJxZG9tYWluX29wcyA9IHtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo0ODk6XFx0Lm1hcCA9IHJ0bDgzNjZyYl9pcnFfbWFwLFxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjQ5MDpcXHQudW5tYXAgPSBydGw4MzY2cmJfaXJxX3VubWFwLFxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTQ5MS1cXHQueGxhdGUgID0gaXJxX2RvbWFpbl94bGF0ZV9vbmVjZWxsLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNDkzLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjQ5NDpzdGF0aWMgaW50IHJ0bDgzNjZyYl9zZXR1cF9jYXNjYWRlZF9pcnEoc3RydWN0IHJlYWx0ZWtfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy00OTUte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNTQ2LVxcdHJldCA9IGRldm1fcmVxdWVzdF90aHJlYWRlZF9pcnEocHJpdi1cXHUwMDNlZGV2LCBpcnEsIE5VTEwsXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6NTQ3OlxcdFxcdFxcdFxcdFxcdHJ0bDgzNjZyYl9pcnEsIElSUUZfT05FU0hPVCxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy01NDgtXFx0XFx0XFx0XFx0XFx0XFxcIlJUTDgzNjZSQlxcXCIsIHByaXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNTUzLVxcdHByaXYtXFx1MDAzZWlycWRvbWFpbiA9IGlycV9kb21haW5fY3JlYXRlX2xpbmVhcihvZl9md25vZGVfaGFuZGxlKGludGMpLCBSVEw4MzY2UkJfTlVNX0lOVEVSUlVQVCxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo1NTQ6XFx0XFx0XFx0XFx0XFx0XFx0ICAgXFx1MDAyNnJ0bDgzNjZyYl9pcnFkb21haW5fb3BzLCBwcml2KTtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy01NTUtXFx0aWYgKCFwcml2LVxcdTAwM2VpcnFkb21haW4pIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTU2Ny1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo1Njg6c3RhdGljIGludCBydGw4MzY2cmJfc2V0X2FkZHIoc3RydWN0IHJlYWx0ZWtfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy01Njkte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNTk1LS8qIFN0cnVjdCBmb3IgaGFuZGxpbmcgdGhlIGphbSB0YWJsZXMnIGVudHJpZXMgKi9cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo1OTY6c3RydWN0IHJ0bDgzNjZyYl9qYW1fdGJsX2VudHJ5IHtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy01OTctXFx0dTE2IHJlZztcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTYwMS0vKiBGb3IgdGhlIFxcXCJ2ZXJzaW9uIDBcXFwiIGVhcmx5IHNpbGljb24sIGFwcGVhciBpbiBtb3N0IHNvdXJjZSByZWxlYXNlcyAqL1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjYwMjpzdGF0aWMgY29uc3Qgc3RydWN0IHJ0bDgzNjZyYl9qYW1fdGJsX2VudHJ5IHJ0bDgzNjZyYl9pbml0X2phbV92ZXJfMFtdID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTYwMy1cXHR7MHgwMDBCLCAweDAwMDF9LCB7MHgwM0E2LCAweDAxMDB9LCB7MHgwM0E3LCAweDAwMDF9LCB7MHgwMkQxLCAweDNGRkZ9LFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNjM0LS8qIFRoaXMgdjEgaW5pdCBzZXF1ZW5jZSBpcyBmcm9tIEJlbGtpbiBGNUQ4MjM1IFUtQm9vdCByZWxlYXNlICovXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6NjM1OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRsODM2NnJiX2phbV90YmxfZW50cnkgcnRsODM2NnJiX2luaXRfamFtX3Zlcl8xW10gPSB7XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNjM2LVxcdHsweDAwMDAsIDB4MDgzMH0sIHsweDAwMDEsIDB4ODAwMH0sIHsweDA0MDAsIDB4ODEzMH0sIHsweEJFNzgsIDB4M0MzQ30sXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy02NDktLyogVGhpcyB2MiBpbml0IHNlcXVlbmNlIGlzIGZyb20gQmVsa2luIEY1RDgyMzUgVS1Cb290IHJlbGVhc2UgKi9cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo2NTA6c3RhdGljIGNvbnN0IHN0cnVjdCBydGw4MzY2cmJfamFtX3RibF9lbnRyeSBydGw4MzY2cmJfaW5pdF9qYW1fdmVyXzJbXSA9IHtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy02NTEtXFx0ezB4MDQ1MCwgMHgwMDAwfSwgezB4MDQwMCwgMHg4MTMwfSwgezB4MDAwQSwgMHg4M0VEfSwgezB4MDQzMSwgMHg1NDMyfSxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTY2NC0vKiBBcHBlYXJzIGluIGEgRERXUlQgY29kZSBkdW1wICovXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6NjY1OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRsODM2NnJiX2phbV90YmxfZW50cnkgcnRsODM2NnJiX2luaXRfamFtX3Zlcl8zW10gPSB7XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNjY2LVxcdHsweDAwMDAsIDB4MDgzMH0sIHsweDA0MDAsIDB4ODEzMH0sIHsweDAwMEEsIDB4ODNFRH0sIHsweDA0MzEsIDB4NTQzMn0sXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy02ODUtLyogQmVsa2luIEY1RDgyMzUgdjEsIFxcXCJiZWxraW4sZjVkODIzNS12MVxcXCIgKi9cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo2ODY6c3RhdGljIGNvbnN0IHN0cnVjdCBydGw4MzY2cmJfamFtX3RibF9lbnRyeSBydGw4MzY2cmJfaW5pdF9qYW1fZjVkODIzNVtdID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTY4Ny1cXHR7MHgwMjQyLCAweDAyQkZ9LCB7MHgwMjQ1LCAweDAyQkZ9LCB7MHgwMjQ4LCAweDAyQkZ9LCB7MHgwMjRCLCAweDAyQkZ9LFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNjk4LS8qIERHTjM1MDAsIFxcXCJuZXRnZWFyLGRnbjM1MDBcXFwiLCBcXFwibmV0Z2VhcixkZ24zNTAwYlxcXCIgKi9cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo2OTk6c3RhdGljIGNvbnN0IHN0cnVjdCBydGw4MzY2cmJfamFtX3RibF9lbnRyeSBydGw4MzY2cmJfaW5pdF9qYW1fZGduMzUwMFtdID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTcwMC1cXHR7MHgwMDAwLCAweDA4MzB9LCB7MHgwNDAwLCAweDgxMzB9LCB7MHgwMDBBLCAweDgzRUR9LCB7MHgwRjUxLCAweDAwMTd9LFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNzA5LSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjcxMDpzdGF0aWMgY29uc3Qgc3RydWN0IHJ0bDgzNjZyYl9qYW1fdGJsX2VudHJ5IHJ0bDgzNjZyYl9ncmVlbl9qYW1bXSA9IHtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy03MTEtXFx0ezB4QkU3OCwgMHgzMjNDfSwgezB4QkU3NywgMHg1MDAwfSwgezB4QkUyRSwgMHg3QkE3fSxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTcxNi0vKiBGdW5jdGlvbiB0aGF0IGphbXMgdGhlIHRhYmxlcyBpbiB0aGUgcHJvcGVyIHJlZ2lzdGVycyAqL1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjcxNzpzdGF0aWMgaW50IHJ0bDgzNjZyYl9qYW1fdGFibGUoY29uc3Qgc3RydWN0IHJ0bDgzNjZyYl9qYW1fdGJsX2VudHJ5ICpqYW1fdGFibGUsXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNzE4LVxcdFxcdFxcdCAgICAgICBpbnQgamFtX3NpemUsIHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYz03NTQ9aW50IHJiODM2NnJiX3NldF9sZWRncm91cF9tb2RlKHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy03NzMtLyogVGhpcyBjb2RlIGlzIHVzZWQgYWxzbyB3aXRoIExFRHMgZGlzYWJsZWQgKi9cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo3NzQ6c3RhdGljIGludCBydGw4MzY2cmJfc2V0dXBfYWxsX2xlZHNfb2ZmKHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNzc1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTc5My1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo3OTQ6c3RhdGljIGludCBydGw4MzY2cmJfcG9ydF9zZXRfaXNvbGF0aW9uKHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYsIGludCBwb3J0LFxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTc5NS1cXHRcXHRcXHRcXHRcXHR1MzIgbWFzaylcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTgwNi1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo4MDc6c3RhdGljIGludCBydGw4MzY2cmJfcG9ydF9hZGRfaXNvbGF0aW9uKHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYsIGludCBwb3J0LFxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTgwOC1cXHRcXHRcXHRcXHRcXHR1MzIgbWFzaylcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTgxNS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo4MTY6c3RhdGljIGludCBydGw4MzY2cmJfcG9ydF9yZW1vdmVfaXNvbGF0aW9uKHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYsIGludCBwb3J0LFxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTgxNy1cXHRcXHRcXHRcXHRcXHQgICB1MzIgbWFzaylcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jPTgyMz1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjgyNDpydGw4MzY2cmJfcG9ydF9zdHBfc3RhdGVfc2V0KHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsIHU4IHN0YXRlKVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTgyNS17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy04NTYtXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6ODU3OnN0YXRpYyBpbnQgcnRsODM2NnJiX3BvcnRfc2V0X2xlYXJuaW5nKHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYsIGludCBwb3J0LFxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTg1OC1cXHRcXHRcXHRcXHQgICAgICAgYm9vbCBlbmFibGUpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy04NjYtXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6ODY3OnN0YXRpYyBpbnQgcnRsODM2NnJiX3NldHVwKHN0cnVjdCBkc2Ffc3dpdGNoICpkcylcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy04Njgte1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTg2OS1cXHRzdHJ1Y3QgcmVhbHRla19wcml2ICpwcml2ID0gZHMtXFx1MDAzZXByaXY7XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6ODcwOlxcdGNvbnN0IHN0cnVjdCBydGw4MzY2cmJfamFtX3RibF9lbnRyeSAqamFtX3RhYmxlO1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTg3MS1cXHR1MzIgZG93bnBvcnRzX21hc2sgPSAwO1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjg3MjpcXHRzdHJ1Y3QgcnRsODM2NnJiICpyYjtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy04NzMtXFx0dTMyIHVwcG9ydHNfbWFzayA9IDA7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy05MDktXFx0Y2FzZSAwOlxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjkxMDpcXHRcXHRqYW1fdGFibGUgPSBydGw4MzY2cmJfaW5pdF9qYW1fdmVyXzA7XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6OTExOlxcdFxcdGphbV9zaXplID0gQVJSQVlfU0laRShydGw4MzY2cmJfaW5pdF9qYW1fdmVyXzApO1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTkxMi1cXHRcXHRicmVhaztcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy05MTMtXFx0Y2FzZSAxOlxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjkxNDpcXHRcXHRqYW1fdGFibGUgPSBydGw4MzY2cmJfaW5pdF9qYW1fdmVyXzE7XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6OTE1OlxcdFxcdGphbV9zaXplID0gQVJSQVlfU0laRShydGw4MzY2cmJfaW5pdF9qYW1fdmVyXzEpO1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTkxNi1cXHRcXHRicmVhaztcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy05MTctXFx0Y2FzZSAyOlxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjkxODpcXHRcXHRqYW1fdGFibGUgPSBydGw4MzY2cmJfaW5pdF9qYW1fdmVyXzI7XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6OTE5OlxcdFxcdGphbV9zaXplID0gQVJSQVlfU0laRShydGw4MzY2cmJfaW5pdF9qYW1fdmVyXzIpO1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTkyMC1cXHRcXHRicmVhaztcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy05MjEtXFx0ZGVmYXVsdDpcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo5MjI6XFx0XFx0amFtX3RhYmxlID0gcnRsODM2NnJiX2luaXRfamFtX3Zlcl8zO1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjkyMzpcXHRcXHRqYW1fc2l6ZSA9IEFSUkFZX1NJWkUocnRsODM2NnJiX2luaXRfamFtX3Zlcl8zKTtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy05MjQtXFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy05MzEtXFx0aWYgKG9mX21hY2hpbmVfaXNfY29tcGF0aWJsZShcXFwiYmVsa2luLGY1ZDgyMzUtdjFcXFwiKSkge1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjkzMjpcXHRcXHRqYW1fdGFibGUgPSBydGw4MzY2cmJfaW5pdF9qYW1fZjVkODIzNTtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo5MzM6XFx0XFx0amFtX3NpemUgPSBBUlJBWV9TSVpFKHJ0bDgzNjZyYl9pbml0X2phbV9mNWQ4MjM1KTtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy05MzQtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtOTM2LVxcdCAgICBvZl9tYWNoaW5lX2lzX2NvbXBhdGlibGUoXFxcIm5ldGdlYXIsZGduMzUwMGJcXFwiKSkge1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjkzNzpcXHRcXHRqYW1fdGFibGUgPSBydGw4MzY2cmJfaW5pdF9qYW1fZGduMzUwMDtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo5Mzg6XFx0XFx0amFtX3NpemUgPSBBUlJBWV9TSVpFKHJ0bDgzNjZyYl9pbml0X2phbV9kZ24zNTAwKTtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy05MzktXFx0fVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTk0MC1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo5NDE6XFx0cmV0ID0gcnRsODM2NnJiX2phbV90YWJsZShqYW1fdGFibGUsIGphbV9zaXplLCBwcml2LCB0cnVlKTtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy05NDItXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTk1MC1cXHRcXHQgKi9cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo5NTE6XFx0XFx0cnRsODM2NnJiX3BvcnRfc3RwX3N0YXRlX3NldChkcywgZHAtXFx1MDAzZWluZGV4LCBCUl9TVEFURV9ESVNBQkxFRCk7XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtOTUyLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTk1My1cXHRcXHQvKiBTdGFydCB3aXRoIGFsbCBwb3J0cyBjb21wbGV0ZWx5IGlzb2xhdGVkICovXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6OTU0OlxcdFxcdHJldCA9IHJ0bDgzNjZyYl9wb3J0X3NldF9pc29sYXRpb24ocHJpdiwgZHAtXFx1MDAzZWluZGV4LFxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTk1NS1cXHRcXHRcXHRcXHRcXHRcXHQgICBSVEw4MzY2UkJfUE9SVF9JU09fUE9SVFNfTUFTSyk7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy05NTktXFx0XFx0LyogRGlzYWJsZSBsZWFybmluZyAqL1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjk2MDpcXHRcXHRyZXQgPSBydGw4MzY2cmJfcG9ydF9zZXRfbGVhcm5pbmcocHJpdiwgZHAtXFx1MDAzZWluZGV4LCBmYWxzZSk7XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtOTYxLVxcdFxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy05NzgtXFx0XFx0LyogRm9yd2FyZCBvbmx5IHRvIHRoZSBDUFUsIGlzb2xhdGUgZnJvbSBhbGwgb3RoZXIgcG9ydHMgKi9cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo5Nzk6XFx0XFx0cmV0ID0gcnRsODM2NnJiX3BvcnRfc2V0X2lzb2xhdGlvbihwcml2LCBkcC1cXHUwMDNlaW5kZXgsIHVwcG9ydHNfbWFzayk7XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtOTgwLVxcdFxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy05OTMtXFx0XFx0LyogRm9yd2FyZCB0byBhbGwgdXNlciBwb3J0cyAqL1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjk5NDpcXHRcXHRyZXQgPSBydGw4MzY2cmJfcG9ydF9zZXRfaXNvbGF0aW9uKHByaXYsIGRwLVxcdTAwM2VpbmRleCwgZG93bnBvcnRzX21hc2spO1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTk5NS1cXHRcXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtOTk5LVxcdC8qIFNldCB1cCB0aGUgXFxcImdyZWVuIGV0aGVybmV0XFxcIiBmZWF0dXJlICovXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTAwMDpcXHRyZXQgPSBydGw4MzY2cmJfamFtX3RhYmxlKHJ0bDgzNjZyYl9ncmVlbl9qYW0sXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTAwMTpcXHRcXHRcXHRcXHQgIEFSUkFZX1NJWkUocnRsODM2NnJiX2dyZWVuX2phbSksIHByaXYsIGZhbHNlKTtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMDAyLVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMDE5LVxcdC8qIFNldCBzb21lIHJhbmRvbSBNQUMgYWRkcmVzcyAqL1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjEwMjA6XFx0cmV0ID0gcnRsODM2NnJiX3NldF9hZGRyKHByaXYpO1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTEwMjEtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTExMDUtXFx0aWYgKHByaXYtXFx1MDAzZWxlZHNfZGlzYWJsZWQpIHtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxMTA2OlxcdFxcdHJldCA9IHJ0bDgzNjZyYl9zZXR1cF9hbGxfbGVkc19vZmYocHJpdik7XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTEwNy1cXHRcXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTEwOS1cXHR9IGVsc2Uge1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjExMTA6XFx0XFx0cmV0ID0gcnRsODM2NnJiX3NldHVwX2xlZHMocHJpdik7XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTExMS1cXHRcXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTExOC1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxMTE5OlxcdHJldCA9IHJ0bDgzNjZyYl9zZXR1cF9jYXNjYWRlZF9pcnEocHJpdik7XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTEyMC1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM9MTEzMj1zdGF0aWMgZW51bSBkc2FfdGFnX3Byb3RvY29sIHJ0bDgzNjZfZ2V0X3RhZ19wcm90b2NvbChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMTM5LVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjExNDA6c3RhdGljIHZvaWQgcnRsODM2NnJiX3BoeWxpbmtfZ2V0X2NhcHMoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMTQxLVxcdFxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgcGh5bGlua19jb25maWcgKmNvbmZpZylcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jPTExNjY9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxMTY3OnJ0bDgzNjZyYl9tYWNfY29uZmlnKHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnLCB1bnNpZ25lZCBpbnQgbW9kZSxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMTY4LVxcdFxcdCAgICAgY29uc3Qgc3RydWN0IHBoeWxpbmtfbGlua19zdGF0ZSAqc3RhdGUpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYz0xMTcyPXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTE3MzpydGw4MzY2cmJfbWFjX2xpbmtfdXAoc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcsIHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYsXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTE3NC1cXHRcXHQgICAgICB1bnNpZ25lZCBpbnQgbW9kZSwgcGh5X2ludGVyZmFjZV90IGludGVyZmFjZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jPTEyNDQ9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxMjQ1OnJ0bDgzNjZyYl9tYWNfbGlua19kb3duKHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnLCB1bnNpZ25lZCBpbnQgbW9kZSxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMjQ2LVxcdFxcdFxcdHBoeV9pbnRlcmZhY2VfdCBpbnRlcmZhY2UpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYz0xMjY3PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxMjY4OnJ0bDgzNjZyYl9wb3J0X2VuYWJsZShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LFxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTEyNjktXFx0XFx0ICAgICAgc3RydWN0IHBoeV9kZXZpY2UgKnBoeSlcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jPTEyODM9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxMjg0OnJ0bDgzNjZyYl9wb3J0X2Rpc2FibGUoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydClcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMjg1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTEyOTYtLyoqXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTI5NzogKiBydGw4MzY2cmJfZHJvcF91bnRhZ2dlZCgpIC0gbWFrZSB0aGUgc3dpdGNoIGRyb3AgdW50YWdnZWQgYW5kIEMtdGFnZ2VkIGZyYW1lc1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTEyOTgtICogQHByaXY6IFNNSSBzdGF0ZSBjb250YWluZXJcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTEzMDMtICovXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTMwNDpzdGF0aWMgaW50IHJ0bDgzNjZyYl9kcm9wX3VudGFnZ2VkKHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYsIGludCBwb3J0LCBib29sIGRyb3ApXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTMwNS17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMzEwLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjEzMTE6c3RhdGljIGludCBydGw4MzY2cmJfdmxhbl9maWx0ZXJpbmcoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMzEyLVxcdFxcdFxcdFxcdCAgICBib29sIHZsYW5fZmlsdGVyaW5nLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTMxNS1cXHRzdHJ1Y3QgcmVhbHRla19wcml2ICpwcml2ID0gZHMtXFx1MDAzZXByaXY7XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTMxNjpcXHRzdHJ1Y3QgcnRsODM2NnJiICpyYjtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMzE3LVxcdGludCByZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMzM0LVxcdGlmICh2bGFuX2ZpbHRlcmluZylcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxMzM1OlxcdFxcdHJldCA9IHJ0bDgzNjZyYl9kcm9wX3VudGFnZ2VkKHByaXYsIHBvcnQsICFyYi1cXHUwMDNlcHZpZF9lbmFibGVkW3BvcnRdKTtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMzM2LVxcdGVsc2VcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxMzM3OlxcdFxcdHJldCA9IHJ0bDgzNjZyYl9kcm9wX3VudGFnZ2VkKHByaXYsIHBvcnQsIGZhbHNlKTtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMzM4LVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM9MTM0Mj1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTM0MzpydGw4MzY2cmJfcG9ydF9wcmVfYnJpZGdlX2ZsYWdzKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTM0NC1cXHRcXHRcXHRcXHRzdHJ1Y3Qgc3dpdGNoZGV2X2JycG9ydF9mbGFncyBmbGFncyxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jPTEzNTQ9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxMzU1OnJ0bDgzNjZyYl9wb3J0X2Zhc3RfYWdlKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQpXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTM1Ni17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMzY2LVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjEzNjc6c3RhdGljIGludCBydGw4MzY2cmJfY2hhbmdlX210dShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LCBpbnQgbmV3X210dSlcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMzY4LXtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMzY5LVxcdHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYgPSBkcy1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxMzcwOlxcdHN0cnVjdCBydGw4MzY2cmIgKnJiO1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTEzNzEtXFx0dW5zaWduZWQgaW50IG1heF9tdHU7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xNDEzLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE0MTQ6c3RhdGljIGludCBydGw4MzY2cmJfbWF4X210dShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0KVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE0MTUte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTQyMy1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxNDI0OnN0YXRpYyBpbnQgcnRsODM2NnJiX2dldF92bGFuXzRrKHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYsIHUzMiB2aWQsXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTQyNS1cXHRcXHRcXHRcXHQgc3RydWN0IHJ0bDgzNjZfdmxhbl80ayAqdmxhbjRrKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTQ2NC1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxNDY1OnN0YXRpYyBpbnQgcnRsODM2NnJiX3NldF92bGFuXzRrKHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYsXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTQ2Ni1cXHRcXHRcXHRcXHQgY29uc3Qgc3RydWN0IHJ0bDgzNjZfdmxhbl80ayAqdmxhbjRrKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTQ5OC1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxNDk5OnN0YXRpYyBpbnQgcnRsODM2NnJiX2dldF92bGFuX21jKHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYsIHUzMiBpbmRleCxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xNTAwLVxcdFxcdFxcdFxcdCBzdHJ1Y3QgcnRsODM2Nl92bGFuX21jICp2bGFubWMpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xNTI5LVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE1MzA6c3RhdGljIGludCBydGw4MzY2cmJfc2V0X3ZsYW5fbWMoc3RydWN0IHJlYWx0ZWtfcHJpdiAqcHJpdiwgdTMyIGluZGV4LFxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE1MzEtXFx0XFx0XFx0XFx0IGNvbnN0IHN0cnVjdCBydGw4MzY2X3ZsYW5fbWMgKnZsYW5tYylcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE1NjMtXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTU2NDpzdGF0aWMgaW50IHJ0bDgzNjZyYl9nZXRfbWNfaW5kZXgoc3RydWN0IHJlYWx0ZWtfcHJpdiAqcHJpdiwgaW50IHBvcnQsIGludCAqdmFsKVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE1NjUte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTU4Mi1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxNTgzOnN0YXRpYyBpbnQgcnRsODM2NnJiX3NldF9tY19pbmRleChzdHJ1Y3QgcmVhbHRla19wcml2ICpwcml2LCBpbnQgcG9ydCwgaW50IGluZGV4KVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE1ODQte1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE1ODUtXFx0c3RydWN0IGRzYV9zd2l0Y2ggKmRzID0gXFx1MDAyNnByaXYtXFx1MDAzZWRzO1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE1ODY6XFx0c3RydWN0IHJ0bDgzNjZyYiAqcmI7XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTU4Ny1cXHRib29sIHB2aWRfZW5hYmxlZDtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE2MTAtXFx0aWYgKGRzYV9wb3J0X2lzX3ZsYW5fZmlsdGVyaW5nKGRzYV90b19wb3J0KGRzLCBwb3J0KSkpXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTYxMTpcXHRcXHRyZXQgPSBydGw4MzY2cmJfZHJvcF91bnRhZ2dlZChwcml2LCBwb3J0LCAhcHZpZF9lbmFibGVkKTtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xNjEyLVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTYxNS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxNjE2OnN0YXRpYyBib29sIHJ0bDgzNjZyYl9pc192bGFuX3ZhbGlkKHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYsIHVuc2lnbmVkIGludCB2bGFuKVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE2MTcte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTYyOC1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxNjI5OnN0YXRpYyBpbnQgcnRsODM2NnJiX2VuYWJsZV92bGFuKHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYsIGJvb2wgZW5hYmxlKVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE2MzAte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTYzNi1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxNjM3OnN0YXRpYyBpbnQgcnRsODM2NnJiX2VuYWJsZV92bGFuNGsoc3RydWN0IHJlYWx0ZWtfcHJpdiAqcHJpdiwgYm9vbCBlbmFibGUpXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTYzOC17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xNjQ0LVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE2NDU6c3RhdGljIGludCBydGw4MzY2cmJfcGh5X3JlYWQoc3RydWN0IHJlYWx0ZWtfcHJpdiAqcHJpdiwgaW50IHBoeSwgaW50IHJlZ251bSlcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xNjQ2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE2ODYtXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTY4NzpzdGF0aWMgaW50IHJ0bDgzNjZyYl9waHlfd3JpdGUoc3RydWN0IHJlYWx0ZWtfcHJpdiAqcHJpdiwgaW50IHBoeSwgaW50IHJlZ251bSxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xNjg4LVxcdFxcdFxcdCAgICAgICB1MTYgdmFsKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTcxNy1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxNzE4OnN0YXRpYyBpbnQgcnRsODM2NnJiX3Jlc2V0X2NoaXAoc3RydWN0IHJlYWx0ZWtfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xNzE5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE3NDMtXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTc0NDpzdGF0aWMgaW50IHJ0bDgzNjZyYl9kZXRlY3Qoc3RydWN0IHJlYWx0ZWtfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xNzQ1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE3NjYtXFx0XFx0cHJpdi1cXHUwMDNlbnVtX3ZsYW5fbWMgPSBSVEw4MzY2UkJfTlVNX1ZMQU5TO1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE3Njc6XFx0XFx0cHJpdi1cXHUwMDNlbWliX2NvdW50ZXJzID0gcnRsODM2NnJiX21pYl9jb3VudGVycztcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxNzY4OlxcdFxcdHByaXYtXFx1MDAzZW51bV9taWJfY291bnRlcnMgPSBBUlJBWV9TSVpFKHJ0bDgzNjZyYl9taWJfY291bnRlcnMpO1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE3NjktXFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xNzc1LVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE3NzY6XFx0cmV0ID0gcnRsODM2NnJiX3Jlc2V0X2NoaXAocHJpdik7XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTc3Ny1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTc4Mi1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxNzgzOnN0YXRpYyBjb25zdCBzdHJ1Y3QgcGh5bGlua19tYWNfb3BzIHJ0bDgzNjZyYl9waHlsaW5rX21hY19vcHMgPSB7XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTc4NDpcXHQubWFjX2NvbmZpZyA9IHJ0bDgzNjZyYl9tYWNfY29uZmlnLFxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE3ODU6XFx0Lm1hY19saW5rX2Rvd24gPSBydGw4MzY2cmJfbWFjX2xpbmtfZG93bixcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxNzg2OlxcdC5tYWNfbGlua191cCA9IHJ0bDgzNjZyYl9tYWNfbGlua191cCxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xNzg3LX07XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTc4OC1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxNzg5OnN0YXRpYyBjb25zdCBzdHJ1Y3QgZHNhX3N3aXRjaF9vcHMgcnRsODM2NnJiX3N3aXRjaF9vcHMgPSB7XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTc5MC1cXHQuZ2V0X3RhZ19wcm90b2NvbCA9IHJ0bDgzNjZfZ2V0X3RhZ19wcm90b2NvbCxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxNzkxOlxcdC5zZXR1cCA9IHJ0bDgzNjZyYl9zZXR1cCxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxNzkyOlxcdC5waHlsaW5rX2dldF9jYXBzID0gcnRsODM2NnJiX3BoeWxpbmtfZ2V0X2NhcHMsXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTc5My1cXHQuZ2V0X3N0cmluZ3MgPSBydGw4MzY2X2dldF9zdHJpbmdzLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTc5Ny1cXHQucG9ydF9icmlkZ2VfbGVhdmUgPSBydGw4M3h4X3BvcnRfYnJpZGdlX2xlYXZlLFxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE3OTg6XFx0LnBvcnRfdmxhbl9maWx0ZXJpbmcgPSBydGw4MzY2cmJfdmxhbl9maWx0ZXJpbmcsXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTc5OS1cXHQucG9ydF92bGFuX2FkZCA9IHJ0bDgzNjZfdmxhbl9hZGQsXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTgwMC1cXHQucG9ydF92bGFuX2RlbCA9IHJ0bDgzNjZfdmxhbl9kZWwsXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTgwMTpcXHQucG9ydF9lbmFibGUgPSBydGw4MzY2cmJfcG9ydF9lbmFibGUsXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTgwMjpcXHQucG9ydF9kaXNhYmxlID0gcnRsODM2NnJiX3BvcnRfZGlzYWJsZSxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODAzOlxcdC5wb3J0X3ByZV9icmlkZ2VfZmxhZ3MgPSBydGw4MzY2cmJfcG9ydF9wcmVfYnJpZGdlX2ZsYWdzLFxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE4MDQtXFx0LnBvcnRfYnJpZGdlX2ZsYWdzID0gcnRsODN4eF9wb3J0X2JyaWRnZV9mbGFncyxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODA1OlxcdC5wb3J0X3N0cF9zdGF0ZV9zZXQgPSBydGw4MzY2cmJfcG9ydF9zdHBfc3RhdGVfc2V0LFxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4MDY6XFx0LnBvcnRfZmFzdF9hZ2UgPSBydGw4MzY2cmJfcG9ydF9mYXN0X2FnZSxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODA3OlxcdC5wb3J0X2NoYW5nZV9tdHUgPSBydGw4MzY2cmJfY2hhbmdlX210dSxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODA4OlxcdC5wb3J0X21heF9tdHUgPSBydGw4MzY2cmJfbWF4X210dSxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xODA5LVxcdC5wb3J0X2hzcl9qb2luID0gZHNhX3BvcnRfc2ltcGxlX2hzcl9qb2luLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTgxMi1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODEzOnN0YXRpYyBjb25zdCBzdHJ1Y3QgcmVhbHRla19vcHMgcnRsODM2NnJiX29wcyA9IHtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODE0OlxcdC5kZXRlY3RcXHRcXHQ9IHJ0bDgzNjZyYl9kZXRlY3QsXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTgxNTpcXHQuZ2V0X3ZsYW5fbWNcXHQ9IHJ0bDgzNjZyYl9nZXRfdmxhbl9tYyxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODE2OlxcdC5zZXRfdmxhbl9tY1xcdD0gcnRsODM2NnJiX3NldF92bGFuX21jLFxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4MTc6XFx0LmdldF92bGFuXzRrXFx0PSBydGw4MzY2cmJfZ2V0X3ZsYW5fNGssXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTgxODpcXHQuc2V0X3ZsYW5fNGtcXHQ9IHJ0bDgzNjZyYl9zZXRfdmxhbl80ayxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODE5OlxcdC5nZXRfbWNfaW5kZXhcXHQ9IHJ0bDgzNjZyYl9nZXRfbWNfaW5kZXgsXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTgyMDpcXHQuc2V0X21jX2luZGV4XFx0PSBydGw4MzY2cmJfc2V0X21jX2luZGV4LFxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4MjE6XFx0LmdldF9taWJfY291bnRlciA9IHJ0bDgzNjZyYl9nZXRfbWliX2NvdW50ZXIsXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTgyMjpcXHQuaXNfdmxhbl92YWxpZFxcdD0gcnRsODM2NnJiX2lzX3ZsYW5fdmFsaWQsXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTgyMzpcXHQuZW5hYmxlX3ZsYW5cXHQ9IHJ0bDgzNjZyYl9lbmFibGVfdmxhbixcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODI0OlxcdC5lbmFibGVfdmxhbjRrXFx0PSBydGw4MzY2cmJfZW5hYmxlX3ZsYW40ayxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODI1OlxcdC5wb3J0X2FkZF9pc29sYXRpb24gPSBydGw4MzY2cmJfcG9ydF9hZGRfaXNvbGF0aW9uLFxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4MjY6XFx0LnBvcnRfcmVtb3ZlX2lzb2xhdGlvbiA9IHJ0bDgzNjZyYl9wb3J0X3JlbW92ZV9pc29sYXRpb24sXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTgyNzpcXHQucG9ydF9zZXRfbGVhcm5pbmcgPSBydGw4MzY2cmJfcG9ydF9zZXRfbGVhcm5pbmcsXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTgyODpcXHQucGh5X3JlYWRcXHQ9IHJ0bDgzNjZyYl9waHlfcmVhZCxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODI5OlxcdC5waHlfd3JpdGVcXHQ9IHJ0bDgzNjZyYl9waHlfd3JpdGUsXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTgzMC19O1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE4MzEtXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTgzMjpjb25zdCBzdHJ1Y3QgcmVhbHRla192YXJpYW50IHJ0bDgzNjZyYl92YXJpYW50ID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4MzM6XFx0LmRzX29wcyA9IFxcdTAwMjZydGw4MzY2cmJfc3dpdGNoX29wcyxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODM0OlxcdC5vcHMgPSBcXHUwMDI2cnRsODM2NnJiX29wcyxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODM1OlxcdC5waHlsaW5rX21hY19vcHMgPSBcXHUwMDI2cnRsODM2NnJiX3BoeWxpbmtfbWFjX29wcyxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xODM2LVxcdC5jbGtfZGVsYXkgPSAxMCxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE4MzgtXFx0LmNtZF93cml0ZSA9IDB4YTgsXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTgzOTpcXHQuY2hpcF9kYXRhX3N6ID0gc2l6ZW9mKHN0cnVjdCBydGw4MzY2cmIpLFxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE4NDAtfTtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xODQxLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4NDI6c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgcnRsODM2NnJiX29mX21hdGNoW10gPSB7XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTg0MzpcXHR7IC5jb21wYXRpYmxlID0gXFxcInJlYWx0ZWsscnRsODM2NnJiXFxcIiwgLmRhdGEgPSBcXHUwMDI2cnRsODM2NnJiX3ZhcmlhbnQsIH0sXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTg0NC1cXHR7IC8qIHNlbnRpbmVsICovIH0sXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTg0NS19O1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4NDY6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgcnRsODM2NnJiX29mX21hdGNoKTtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xODQ3LVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4NDg6c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgcnRsODM2NnJiX3NtaV9kcml2ZXIgPSB7XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTg0OS1cXHQuZHJpdmVyID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4NTA6XFx0XFx0Lm5hbWUgPSBcXFwicnRsODM2NnJiLXNtaVxcXCIsXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTg1MTpcXHRcXHQub2ZfbWF0Y2hfdGFibGUgPSBydGw4MzY2cmJfb2ZfbWF0Y2gsXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTg1Mi1cXHR9LFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTg1Ny1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODU4OnN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgcnRsODM2NnJiX21kaW9fZHJpdmVyID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE4NTktXFx0Lm1kaW9kcnYuZHJpdmVyID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4NjA6XFx0XFx0Lm5hbWUgPSBcXFwicnRsODM2NnJiLW1kaW9cXFwiLFxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4NjE6XFx0XFx0Lm9mX21hdGNoX3RhYmxlID0gcnRsODM2NnJiX29mX21hdGNoLFxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE4NjItXFx0fSxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE4NjctXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTg2ODpzdGF0aWMgaW50IHJ0bDgzNjZyYl9pbml0KHZvaWQpXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTg2OS17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xODcxLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4NzI6XFx0cmV0ID0gcmVhbHRla19tZGlvX2RyaXZlcl9yZWdpc3RlcihcXHUwMDI2cnRsODM2NnJiX21kaW9fZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xODczLVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xODc1LVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4NzY6XFx0cmV0ID0gcmVhbHRla19zbWlfZHJpdmVyX3JlZ2lzdGVyKFxcdTAwMjZydGw4MzY2cmJfc21pX2RyaXZlcik7XFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIxVDIzOjUxOjE2Ljk0MTExMzc3M1oiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjg5NDg2Mzg2NjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqVW5mdXp6YWJsZSBIYXJkd2FyZSBEZXBlbmRlbmN5KipcblxuT2theSwgc28gbG9va2luZyBhdCB0aGlzIGNvZGUsIG15IGluaXRpYWwgYXNzZXNzbWVudCBpcyB0aGF0IHRoaXMgaXMgYSBkZWFkIGVuZCBmb3IgZnV6emluZy4gVGhlIGRyaXZlciwgYHJlYWx0ZWtfbWRpb19kcml2ZXJfcmVnaXN0ZXJgIGFuZCBgcmVhbHRla19zbWlfZHJpdmVyX3JlZ2lzdGVyYCwgcmVnaXN0ZXJzIGl0c2VsZiB0byBoYW5kbGUgc3BlY2lmaWMgaGFyZHdhcmUsIHNwZWNpZmljYWxseSBkZXZpY2VzIHRoYXQgYXJlIGRlc2NyaWJlZCB3aXRoIGByZWFsdGVrLHJ0bDgzNjZyYmAgaW4gdGhlIGRldmljZSB0cmVlLiBUaGlzIGltbWVkaWF0ZWx5IGZsYWdzIGl0IGFzIGhhcmR3YXJlLXNwZWNpZmljLiBXZSdyZSBkZWFsaW5nIHdpdGggYW4gTURJTy9TTUkgY29ubmVjdGVkIHN3aXRjaC4gVGhhdCBtZWFucyBpdCBuZWVkcyBhY3R1YWwgaGFyZHdhcmUgdG8gZnVuY3Rpb24sIGFuZCBpdCB3b24ndCBiZSByZWFjaGFibGUgaW4gYW55IHN0YW5kYXJkIHZpcnR1YWxpemVkIHNldHVwIGxpa2UgUUVNVSBvciBHQ0UgdW5sZXNzIHRoZXJlJ3Mgc29tZSB2ZXJ5IHNwZWNpYWxpemVkIGVtdWxhdG9yIGZvciAqdGhpcyogcGFydGljdWxhciBSZWFsdGVrIGNoaXAsIHdoaWNoIGlzIHVubGlrZWx5LlxuXG5KdXN0IHRvIGJlIHRob3JvdWdoLCBJJ20gY2hlY2tpbmcgaWYgdGhlcmUncyBhbnkgc29mdHdhcmUgd29ya2Fyb3VuZCwgYnV0IGV2ZW4gaWYgdGhlcmUgYXJlIHNvZnR3YXJlIE1ESU8gYnVzZXMsIHRoZXkgc3RpbGwgZGVwZW5kIG9uIHRoZSB1bmRlcmx5aW5nIGhhcmR3YXJlIHJlc3BvbmRpbmcgdG8gcmVhZCBhbmQgd3JpdGUgY29tbWFuZHMuIFRoZSBgcnRsODM2NnJiX2RldGVjdGAgZnVuY3Rpb24gaXMgdGhlIHRlbGwtdGFsZSBzaWduLiBJdCB0cmllcyB0byByZWFkIGEgY2hpcCBJRCByZWdpc3RlcjpcblxuYGBgY1xuc3RhdGljIGludCBydGw4MzY2cmJfZGV0ZWN0KHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYpXG57XG4gICAgLi4uXG4gICAgcmV0ID0gcmVnbWFwX3JlYWQocHJpdi1cdTAwM2VtYXAsIFJUTDgzNjZSQl9DSElQX0lEX1JFRywgXHUwMDI2dmFsKTtcbiAgICBpZiAocmV0KSB7XG4gICAgICAgIGRldl9lcnIocHJpdi1cdTAwM2VkZXYsIFwiZmFpbGVkIHRvIHJlYWQgY2hpcCBpZFxcblwiKTtcbiAgICAgICAgcmV0dXJuIHJldDtcbiAgICB9XG4gICAgaWYgKHZhbCAhPSBSVEw4MzY2UkJfQ0hJUF9JRF84MzY2KSB7XG4gICAgICAgIGRldl9lcnIocHJpdi1cdTAwM2VkZXYsIFwiY2hpcCBpZCAlMDR4ICE9ICUwNHhcXG5cIiwgdmFsLCBSVEw4MzY2UkJfQ0hJUF9JRF84MzY2KTtcbiAgICAgICAgcmV0dXJuIC1FTk9ERVY7XG4gICAgfVxuICAgIC4uLlxufVxuYGBgXG5cblRoZSBwcm9iZSBmdW5jdGlvbiB3aWxsICppbW1lZGlhdGVseSogZmFpbCwgcmV0dXJuaW5nIGAtRU5PREVWYCwgaWYgdGhlIGNoaXAgSUQgZG9lc24ndCBtYXRjaCBgUlRMODM2NlJCX0NISVBfSURfODM2NmAuIFRoZXJlJ3Mgbm8gd2F5IGFyb3VuZCBpdCB3aXRob3V0IHRoZSBwaHlzaWNhbCBoYXJkd2FyZSwgb3IgYW4gYWNjdXJhdGUgZW11bGF0b3IuIEFuZCBJIGtub3cgUUVNVSBkb2Vzbid0IGVtdWxhdGUgdGhpcyBwYXJ0aWN1bGFyIGNoaXAuXG5cblNvLCBnaXZlbiB0aGF0IHRoZSBwYXRjaCB0YXJnZXRzIGEgaGFyZHdhcmUtc3BlY2lmaWMgRFNBIHN3aXRjaCBkcml2ZXIsIHdpdGggY29tbXVuaWNhdGlvbiB0aHJvdWdoIE1ESU8vU01JLCB3aGljaCBmdXJ0aGVyIHJlcXVpcmVzIGEgc3BlY2lmaWMgY2hpcCBJRCBjaGVjaywgYW5kIHRoZSB0YXJnZXQgaGFyZHdhcmUgaXMgbm90IGVtdWxhdGVkIGluIGNvbW1vbmx5IGF2YWlsYWJsZSB2aXJ0dWFsaXphdGlvbiBwbGF0Zm9ybXMsIEknbSBnb2luZyB0byBzZXQgYFdvcnRoRnV6emluZ2AgdG8gYGZhbHNlYC4gVGltZSB0byBjYWxsIGBzZXQtcmVzdWx0c2AuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE4OTA2LCJPdXRwdXRUb2tlbnMiOjEwNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ5MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yMVQyMzo1MToyNS44ODk3NTQ4NjhaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUwMTYwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGEgaGFyZHdhcmUtc3BlY2lmaWMgRFNBIHN3aXRjaCBkcml2ZXIgKFJlYWx0ZWsgUlRMODM2NlJCKSB3aGljaCBjb21tdW5pY2F0ZXMgdmlhIE1ESU8vU01JLiBUaGlzIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSwgYW5kIHRoZSBkcml2ZXIgZXhwbGljaXRseSBjaGVja3MgZm9yIGEgc3BlY2lmaWMgaGFyZHdhcmUgY2hpcCBJRCBkdXJpbmcgcHJvYmUuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgdW5yZWFjaGFibGUgYW5kIGNhbm5vdCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBhIGhhcmR3YXJlLXNwZWNpZmljIERTQSBzd2l0Y2ggZHJpdmVyIChSZWFsdGVrIFJUTDgzNjZSQikgd2hpY2ggY29tbXVuaWNhdGVzIHZpYSBNRElPL1NNSS4gVGhpcyBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UsIGFuZCB0aGUgZHJpdmVyIGV4cGxpY2l0bHkgY2hlY2tzIGZvciBhIHNwZWNpZmljIGhhcmR3YXJlIGNoaXAgSUQgZHVyaW5nIHByb2JlLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIGlzIHVucmVhY2hhYmxlIGFuZCBjYW5ub3QgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowcdmdt[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-21 23:15:05 +0000 UTC FinishedAt: 2026-07-21 23:51:27 +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+CgkJCTx0ZD4yMDI2LzA3LzIxIDIzOjUxPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGEgaGFyZHdhcmUtc3BlY2lmaWMgRFNBIHN3aXRjaCBkcml2ZXIgKFJlYWx0ZWsgUlRMODM2NlJCKSB3aGljaCBjb21tdW5pY2F0ZXMgdmlhIE1ESU8vU01JLiBUaGlzIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSwgYW5kIHRoZSBkcml2ZXIgZXhwbGljaXRseSBjaGVja3MgZm9yIGEgc3BlY2lmaWMgaGFyZHdhcmUgY2hpcCBJRCBkdXJpbmcgcHJvYmUuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgdW5yZWFjaGFibGUgYW5kIGNhbm5vdCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIxIDIzOjUxPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgMjNhNWI4ZTg1N2UzNzMwMWQyZTJlMmYyZTYxN2RjYWFkM2M4Y2IxZFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgSnVsIDIxIDIzOjUxOjA4IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jIGIvZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmNcbmluZGV4IGQyZmE4ZmY2YTVkMDhhLi42ZDVhNmU3YmM1ZjEzMyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuY1xuQEAgLTc5NCw4ICYjNDM7Nzk0LDggQEAgc3RhdGljIGludCBydGw4MzY2cmJfc2V0dXBfYWxsX2xlZHNfb2ZmKHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYpXG4gc3RhdGljIGludCBydGw4MzY2cmJfcG9ydF9zZXRfaXNvbGF0aW9uKHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYsIGludCBwb3J0LFxuIFx0XHRcdFx0XHR1MzIgbWFzaylcbiB7XG4tXHQvKiBCaXQgMCBlbmFibGVzIGlzb2xhdGlvbiBzbyBzZXQgdGhpcyBpZiB3ZSBlbmFibGUgaXNvbGF0aW9uXG4tXHQgKiBhbnkgb2YgdGhlIHBvcnRzIGFuIGNsZWFyIGl0IGlmIHdlIGRpc2FibGUgb24gYWxsIG9mIHRoZW0uXG4mIzQzO1x0LyogQml0IDAgZW5hYmxlcyBpc29sYXRpb24gc28gc2V0IHRoaXMgaWYgd2UgZW5hYmxlIGlzb2xhdGlvbiBvblxuJiM0MztcdCAqIGFueSBvZiB0aGUgcG9ydHMgYW5kIGNsZWFyIGl0IGlmIHdlIGRpc2FibGUgb24gYWxsIG9mIHRoZW0uXG4gXHQgKi9cbiBcdGlmIChtYXNrKVxuIFx0XHRtYXNrID0gUlRMODM2NlJCX1BPUlRfSVNPX1BPUlRTKG1hc2spIHwgUlRMODM2NlJCX1BPUlRfSVNPX0VOO1xuQEAgLTk1MSw3ICYjNDM7OTUxLDggQEAgc3RhdGljIGludCBydGw4MzY2cmJfc2V0dXAoc3RydWN0IGRzYV9zd2l0Y2ggKmRzKVxuIFx0XHRydGw4MzY2cmJfcG9ydF9zdHBfc3RhdGVfc2V0KGRzLCBkcC1cdTAwM2VpbmRleCwgQlJfU1RBVEVfRElTQUJMRUQpO1xuIFxuIFx0XHQvKiBTdGFydCB3aXRoIGFsbCBwb3J0cyBjb21wbGV0ZWx5IGlzb2xhdGVkICovXG4tXHRcdHJldCA9IHJ0bDgzNjZyYl9wb3J0X3NldF9pc29sYXRpb24ocHJpdiwgZHAtXHUwMDNlaW5kZXgsIDApO1xuJiM0MztcdFx0cmV0ID0gcnRsODM2NnJiX3BvcnRfc2V0X2lzb2xhdGlvbihwcml2LCBkcC1cdTAwM2VpbmRleCxcbiYjNDM7XHRcdFx0XHRcdFx0ICAgUlRMODM2NlJCX1BPUlRfSVNPX1BPUlRTX01BU0spO1xuIFx0XHRpZiAocmV0KVxuIFx0XHRcdHJldHVybiByZXQ7XG4gXG5AQCAtOTc0LDcgJiM0Mzs5NzUsNyBAQCBzdGF0aWMgaW50IHJ0bDgzNjZyYl9zZXR1cChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpXG4gXHRcdGlmICghZHNhX3BvcnRfaXNfdXNlcihkcCkpXG4gXHRcdFx0Y29udGludWU7XG4gXG4tXHRcdC8qIEZvcndhcmQgb25seSB0byB0aGUgQ1BVICovXG4mIzQzO1x0XHQvKiBGb3J3YXJkIG9ubHkgdG8gdGhlIENQVSwgaXNvbGF0ZSBmcm9tIGFsbCBvdGhlciBwb3J0cyAqL1xuIFx0XHRyZXQgPSBydGw4MzY2cmJfcG9ydF9zZXRfaXNvbGF0aW9uKHByaXYsIGRwLVx1MDAzZWluZGV4LCB1cHBvcnRzX21hc2spO1xuIFx0XHRpZiAocmV0KVxuIFx0XHRcdHJldHVybiByZXQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjEgMjM6NTE8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGEgaGFyZHdhcmUtc3BlY2lmaWMgRFNBIHN3aXRjaCBkcml2ZXIgKFJlYWx0ZWsgUlRMODM2NlJCKSB3aGljaCBjb21tdW5pY2F0ZXMgdmlhIE1ESU8vU01JLiBUaGlzIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSwgYW5kIHRoZSBkcml2ZXIgZXhwbGljaXRseSBjaGVja3MgZm9yIGEgc3BlY2lmaWMgaGFyZHdhcmUgY2hpcCBJRCBkdXJpbmcgcHJvYmUuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgdW5yZWFjaGFibGUgYW5kIGNhbm5vdCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAyM2E1YjhlODU3ZTM3MzAxZDJlMmUyZjJlNjE3ZGNhYWQzYzhjYjFkCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFR1ZSBKdWwgMjEgMjM6NTE6MDggMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYyBiL2RyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jCmluZGV4IGQyZmE4ZmY2YTVkMDhhLi42ZDVhNmU3YmM1ZjEzMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMKQEAgLTc5NCw4ICYjNDM7Nzk0LDggQEAgc3RhdGljIGludCBydGw4MzY2cmJfc2V0dXBfYWxsX2xlZHNfb2ZmKHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYpCiBzdGF0aWMgaW50IHJ0bDgzNjZyYl9wb3J0X3NldF9pc29sYXRpb24oc3RydWN0IHJlYWx0ZWtfcHJpdiAqcHJpdiwgaW50IHBvcnQsCiAJCQkJCXUzMiBtYXNrKQogewotCS8qIEJpdCAwIGVuYWJsZXMgaXNvbGF0aW9uIHNvIHNldCB0aGlzIGlmIHdlIGVuYWJsZSBpc29sYXRpb24KLQkgKiBhbnkgb2YgdGhlIHBvcnRzIGFuIGNsZWFyIGl0IGlmIHdlIGRpc2FibGUgb24gYWxsIG9mIHRoZW0uCiYjNDM7CS8qIEJpdCAwIGVuYWJsZXMgaXNvbGF0aW9uIHNvIHNldCB0aGlzIGlmIHdlIGVuYWJsZSBpc29sYXRpb24gb24KJiM0MzsJICogYW55IG9mIHRoZSBwb3J0cyBhbmQgY2xlYXIgaXQgaWYgd2UgZGlzYWJsZSBvbiBhbGwgb2YgdGhlbS4KIAkgKi8KIAlpZiAobWFzaykKIAkJbWFzayA9IFJUTDgzNjZSQl9QT1JUX0lTT19QT1JUUyhtYXNrKSB8IFJUTDgzNjZSQl9QT1JUX0lTT19FTjsKQEAgLTk1MSw3ICYjNDM7OTUxLDggQEAgc3RhdGljIGludCBydGw4MzY2cmJfc2V0dXAoc3RydWN0IGRzYV9zd2l0Y2ggKmRzKQogCQlydGw4MzY2cmJfcG9ydF9zdHBfc3RhdGVfc2V0KGRzLCBkcC0mZ3Q7aW5kZXgsIEJSX1NUQVRFX0RJU0FCTEVEKTsKIAogCQkvKiBTdGFydCB3aXRoIGFsbCBwb3J0cyBjb21wbGV0ZWx5IGlzb2xhdGVkICovCi0JCXJldCA9IHJ0bDgzNjZyYl9wb3J0X3NldF9pc29sYXRpb24ocHJpdiwgZHAtJmd0O2luZGV4LCAwKTsKJiM0MzsJCXJldCA9IHJ0bDgzNjZyYl9wb3J0X3NldF9pc29sYXRpb24ocHJpdiwgZHAtJmd0O2luZGV4LAomIzQzOwkJCQkJCSAgIFJUTDgzNjZSQl9QT1JUX0lTT19QT1JUU19NQVNLKTsKIAkJaWYgKHJldCkKIAkJCXJldHVybiByZXQ7CiAKQEAgLTk3NCw3ICYjNDM7OTc1LDcgQEAgc3RhdGljIGludCBydGw4MzY2cmJfc2V0dXAoc3RydWN0IGRzYV9zd2l0Y2ggKmRzKQogCQlpZiAoIWRzYV9wb3J0X2lzX3VzZXIoZHApKQogCQkJY29udGludWU7CiAKLQkJLyogRm9yd2FyZCBvbmx5IHRvIHRoZSBDUFUgKi8KJiM0MzsJCS8qIEZvcndhcmQgb25seSB0byB0aGUgQ1BVLCBpc29sYXRlIGZyb20gYWxsIG90aGVyIHBvcnRzICovCiAJCXJldCA9IHJ0bDgzNjZyYl9wb3J0X3NldF9pc29sYXRpb24ocHJpdiwgZHAtJmd0O2luZGV4LCB1cHBvcnRzX21hc2spOwogCQlpZiAocmV0KQogCQkJcmV0dXJuIHJldDsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjEgMjM6NTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjI5NAoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDI5NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBQb3RlbnRpYWwgRnV6emluZyBUYXJnZXQ6IFJlYWx0ZWsgUlRMODM2NlJCIERyaXZlcioqCgpPa2F5LCBzbyBJJiMzOTt2ZSBnb3QgYSBwYXRjaCBoZXJlIHRoYXQgdHdlYWtzIHRoZSBgcnRsODM2NnJiX3NldHVwYCBmdW5jdGlvbiB3aXRoaW4gYGRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jYC4gVGhlIGNvcmUgY2hhbmdlIGlzIHRoaXM6IGl0JiMzOTtzIHN3YXBwaW5nIG91dCBhIGNhbGwgdG8gYHJ0bDgzNjZyYl9wb3J0X3NldF9pc29sYXRpb24ocHJpdiwgZHAtJmd0O2luZGV4LCAwKWAgd2l0aCBgcnRsODM2NnJiX3BvcnRfc2V0X2lzb2xhdGlvbihwcml2LCBkcC0mZ3Q7aW5kZXgsIFJUTDgzNjZSQl9QT1JUX0lTT19QT1JUU19NQVNLKWAuIEJhc2ljYWxseSwgaXQmIzM5O3MgbWVzc2luZyB3aXRoIHBvcnQgaXNvbGF0aW9uLCBhbmQgdGhlIHBhdGNoIGFsc28gaW5jbHVkZXMgc29tZSBjb21tZW50IHVwZGF0ZXMuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCAmIzM0O0lzIHRoaXMgZnV6emFibGU/JiMzNDsKClRoZSBmaWxlJiMzOTtzIGluIHRoZSBEU0EgZHJpdmVyIGRpcmVjdG9yeSwgc3BlY2lmaWNhbGx5IGZvciB0aGUgUmVhbHRlayBSVEw4MzY2UkIgc3dpdGNoLiBSaWdodCBhd2F5LCBteSBhbnRlbm5hZSBnbyB1cC4gRFNBIGRyaXZlcnMgYXJlIG5vdG9yaW91cyBmb3IgYmVpbmcgaGFyZHdhcmUtZGVwZW5kZW50LiBUaGV5IHR5cGljYWxseSB0YWxrIHRvIHRoZSBzd2l0Y2ggaGFyZHdhcmUgdmlhIEkyQyBvciBNRElPLiBDYW4gSSBldmVuICpyZWFjaCogdGhpcyB0aGluZyBpbiBhIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnQ/IERTQSBkcml2ZXJzIGFyZSBhIHBhaW4gYmVjYXVzZSB0aGV5JiMzOTtyZSBzbyB0aWdodGx5IGNvdXBsZWQgd2l0aCB0aGUgaGFyZHdhcmUuIFN1cmUsIEkgY2FuICpzb21ldGltZXMqIGluc3RhbnRpYXRlIHRoZW0gd2l0aCBkZXZpY2UgdHJlZSBvdmVybGF5cyBvciBvdGhlciB0cmlja3MsIGJ1dCB0aGF0JiMzOTtzIHN0aWxsIHByZXR0eSBoYXJkd2FyZS1zcGVjaWZpYy4KCkdpdmVuIHRoYXQgdGhpcyBpcyBSZWFsdGVrLCBpdCYjMzk7cyBsaWtlbHkgYW4gSTJDIG9yIE1ESU8gZGV2aWNlLiBJdCBsb29rcyBsaWtlIHRoaXMgcGF0Y2ggY291bGQgaW1wYWN0IHBvcnQgaXNvbGF0aW9uLCBtZWFuaW5nIHRoZXJlIGNvdWxkIGJlIGludGVyZXN0aW5nIGNvZGUgcGF0aHMgdG8gcHJvYmUuIEkgbmVlZCB0byBmaWd1cmUgb3V0IGlmIHRoZXJlJiMzOTtzICphbnkqIHJlYWxpc3RpYyB3YXkgdG8gZW11bGF0ZSBvciBtb2NrIHRoaXMgaGFyZHdhcmUuIElmIGl0JiMzOTtzIHB1cmUgaGFyZHdhcmUtZGVwZW5kZW50LCB3aXRob3V0IHNvbWUgc29ydCBvZiBlbXVsYXRpb24sIGEgbW9jaywgb3IgbWF5YmUgZXZlbiBhIFVTQi9QQ0kgaW50ZXJmYWNlIHRoYXQgSSAqY291bGQqIHBvdGVudGlhbGx5IHNpbXVsYXRlLCB0aGlzIGlzIGdvaW5nIHRvIGJlIGEgZGVhZCBlbmQgZm9yIGZ1enppbmcuIFRpbWUgdG8gZGlnIGRlZXBlciBpbnRvIHRoZSBkYXRhc2hlZXQgYW5kIHNlZSB3aGF0IG9wdGlvbnMgSSBoYXZlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIxIDIzOjUxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3J0bDgzNjZyYiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2RzYS9yZWFsdGVrLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNTQwIGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9NYWtlZmlsZT0xMz1vYmotJChDT05GSUdfTkVUX0RTQV9SRUFMVEVLX1JUTDgzNjZSQikgJiM0Mzs9IHJ0bDgzNjYub1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvTWFrZWZpbGU6MTQ6cnRsODM2Ni1vYmpzIFx0XHRcdFx0Oj0gcnRsODM2Ni1jb3JlLm8gcnRsODM2NnJiLm9cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL01ha2VmaWxlLTE1LWlmZGVmIENPTkZJR19ORVRfRFNBX1JFQUxURUtfUlRMODM2NlJCX0xFRFNcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL01ha2VmaWxlOjE2OnJ0bDgzNjYtb2JqcyBcdFx0XHRcdCYjNDM7PSBydGw4MzY2cmItbGVkcy5vXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9NYWtlZmlsZS0xNy1lbmRpZlxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3JlYWx0ZWsuaD0xODg9dm9pZCBydGw4MzY2X2dldF9ldGh0b29sX3N0YXRzKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsIHVpbnQ2NF90ICpkYXRhKTtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3JlYWx0ZWsuaC0xODktXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9yZWFsdGVrLmg6MTkwOmV4dGVybiBjb25zdCBzdHJ1Y3QgcmVhbHRla192YXJpYW50IHJ0bDgzNjZyYl92YXJpYW50O1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcmVhbHRlay5oLTE5MS1leHRlcm4gY29uc3Qgc3RydWN0IHJlYWx0ZWtfdmFyaWFudCBydGw4MzY1bWJfdmFyaWFudDtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jLTYtI2luY2x1ZGUgXCYjMzQ7cnRsODN4eC5oXCYjMzQ7XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jOjc6I2luY2x1ZGUgXCYjMzQ7cnRsODM2NnJiLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi1sZWRzLmMtOC1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi1sZWRzLmM6OTpzdGF0aWMgaW5saW5lIHUzMiBydGw4MzY2cmJfbGVkX2dyb3VwX3BvcnRfbWFzayh1OCBsZWRfZ3JvdXAsIHU4IHBvcnQpXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jLTEwLXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jLTI0LVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYzoyNTpzdGF0aWMgaW50IHJiODM2NnJiX2dldF9wb3J0X2xlZChzdHJ1Y3QgcnRsODM2NnJiX2xlZCAqbGVkKVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYy0yNi17XG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYy00MC1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi1sZWRzLmM6NDE6XHRyZXR1cm4gISEodmFsIFx1MDAyNiBydGw4MzY2cmJfbGVkX2dyb3VwX3BvcnRfbWFzayhsZWRfZ3JvdXAsIHBvcnRfbnVtKSk7XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jLTQyLX1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi1sZWRzLmMtNDMtXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jOjQ0OnN0YXRpYyBpbnQgcmI4MzY2cmJfc2V0X3BvcnRfbGVkKHN0cnVjdCBydGw4MzY2cmJfbGVkICpsZWQsIGJvb2wgZW5hYmxlKVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYy00NS17XG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYy01Mi1cdFx0XHRcdCBSVEw4MzY2UkJfTEVEX1hfWF9DVFJMX1JFRyhsZWRfZ3JvdXApLFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYzo1MzpcdFx0XHRcdCBydGw4MzY2cmJfbGVkX2dyb3VwX3BvcnRfbWFzayhsZWRfZ3JvdXAsXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jLTU0LVx0XHRcdFx0XHRcdFx0ICAgICAgIHBvcnRfbnVtKSxcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jPTc1PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi1sZWRzLmM6NzY6cnRsODM2NnJiX2NsZWRfYnJpZ2h0bmVzc19zZXRfYmxvY2tpbmcoc3RydWN0IGxlZF9jbGFzc2RldiAqbGRldixcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi1sZWRzLmMtNzctXHRcdFx0XHQgICAgICAgZW51bSBsZWRfYnJpZ2h0bmVzcyBicmlnaHRuZXNzKVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYy03OC17XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jOjc5Olx0c3RydWN0IHJ0bDgzNjZyYl9sZWQgKmxlZCA9IGNvbnRhaW5lcl9vZihsZGV2LCBzdHJ1Y3QgcnRsODM2NnJiX2xlZCxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi1sZWRzLmMtODAtXHRcdFx0XHRcdFx0IGNkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi1sZWRzLmMtODQtXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jOjg1OnN0YXRpYyBpbnQgcnRsODM2NnJiX3NldHVwX2xlZChzdHJ1Y3QgcmVhbHRla19wcml2ICpwcml2LCBzdHJ1Y3QgZHNhX3BvcnQgKmRwLFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYy04Ni1cdFx0XHQgICAgICAgc3RydWN0IGZ3bm9kZV9oYW5kbGUgKmxlZF9md25vZGUpXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jLTg3LXtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi1sZWRzLmM6ODg6XHRzdHJ1Y3QgcnRsODM2NnJiICpyYiA9IHByaXYtXHUwMDNlY2hpcF9kYXRhO1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYy04OS1cdHN0cnVjdCBsZWRfaW5pdF9kYXRhIGluaXRfZGF0YSA9IHsgfTtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi1sZWRzLmMtOTAtXHRlbnVtIGxlZF9kZWZhdWx0X3N0YXRlIHN0YXRlO1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYzo5MTpcdHN0cnVjdCBydGw4MzY2cmJfbGVkICpsZWQ7XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jLTkyLVx0Y2hhciBuYW1lWzY0XTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jLTEyOC1cdGxlZC1cdTAwM2VjZGV2LmJyaWdodG5lc3Nfc2V0X2Jsb2NraW5nID1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi1sZWRzLmM6MTI5Olx0XHRydGw4MzY2cmJfY2xlZF9icmlnaHRuZXNzX3NldF9ibG9ja2luZztcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi1sZWRzLmMtMTMwLVx0aW5pdF9kYXRhLmZ3bm9kZSA9IGxlZF9md25vZGU7XG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYy0xNDYtXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jOjE0NzppbnQgcnRsODM2NnJiX3NldHVwX2xlZHMoc3RydWN0IHJlYWx0ZWtfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi1sZWRzLmMtMTQ4LXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jLTE2NS1cdFx0Zm9yX2VhY2hfY2hpbGRfb2Zfbm9kZV9zY29wZWQobGVkc19ucCwgbGVkX25wKSB7XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jOjE2NjpcdFx0XHRyZXQgPSBydGw4MzY2cmJfc2V0dXBfbGVkKHByaXYsIGRwLFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYy0xNjctXHRcdFx0XHRcdFx0ICBvZl9md25vZGVfaGFuZGxlKGxlZF9ucCkpO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTI5LSNpbmNsdWRlIFwmIzM0O3J0bDgzeHguaFwmIzM0O1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MzA6I2luY2x1ZGUgXCYjMzQ7cnRsODM2NnJiLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTMxLVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTMxNS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjMxNjpzdGF0aWMgc3RydWN0IHJ0bDgzNjZfbWliX2NvdW50ZXIgcnRsODM2NnJiX21pYl9jb3VudGVyc1tdID0ge1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMzE3LVx0eyAwLCAgMCwgNCwgXCYjMzQ7SWZJbk9jdGV0c1wmIzM0O1x0XHRcdFx0fSxcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0zNTEtXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzozNTI6c3RhdGljIGludCBydGw4MzY2cmJfZ2V0X21pYl9jb3VudGVyKHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYsXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0zNTMtXHRcdFx0XHQgICAgIGludCBwb3J0LFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTM5My1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjM5NDpzdGF0aWMgdTMyIHJ0bDgzNjZyYl9nZXRfaXJxbWFzayhzdHJ1Y3QgaXJxX2RhdGEgKmQpXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0zOTUte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTQwOC1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjQwOTpzdGF0aWMgdm9pZCBydGw4MzY2cmJfbWFza19pcnEoc3RydWN0IGlycV9kYXRhICpkKVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNDEwLXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy00MTQtXHRyZXQgPSByZWdtYXBfdXBkYXRlX2JpdHMocHJpdi1cdTAwM2VtYXAsIFJUTDgzNjZSQl9JTlRFUlJVUFRfTUFTS19SRUcsXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo0MTU6XHRcdFx0XHQgcnRsODM2NnJiX2dldF9pcnFtYXNrKGQpLCAwKTtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTQxNi1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNDE5LVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6NDIwOnN0YXRpYyB2b2lkIHJ0bDgzNjZyYl91bm1hc2tfaXJxKHN0cnVjdCBpcnFfZGF0YSAqZClcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTQyMS17XG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNDI1LVx0cmV0ID0gcmVnbWFwX3VwZGF0ZV9iaXRzKHByaXYtXHUwMDNlbWFwLCBSVEw4MzY2UkJfSU5URVJSVVBUX01BU0tfUkVHLFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6NDI2Olx0XHRcdFx0IHJ0bDgzNjZyYl9nZXRfaXJxbWFzayhkKSxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjQyNzpcdFx0XHRcdCBydGw4MzY2cmJfZ2V0X2lycW1hc2soZCkpO1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNDI4LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy00MzEtXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo0MzI6c3RhdGljIGlycXJldHVybl90IHJ0bDgzNjZyYl9pcnEoaW50IGlycSwgdm9pZCAqZGF0YSlcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTQzMy17XG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNDYzLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6NDY0OnN0YXRpYyBzdHJ1Y3QgaXJxX2NoaXAgcnRsODM2NnJiX2lycV9jaGlwID0ge1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNDY1LVx0Lm5hbWUgPSBcJiMzNDtSVEw4MzY2UkJcJiMzNDssXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo0NjY6XHQuaXJxX21hc2sgPSBydGw4MzY2cmJfbWFza19pcnEsXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo0Njc6XHQuaXJxX3VubWFzayA9IHJ0bDgzNjZyYl91bm1hc2tfaXJxLFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNDY4LX07XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy00NjktXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo0NzA6c3RhdGljIGludCBydGw4MzY2cmJfaXJxX21hcChzdHJ1Y3QgaXJxX2RvbWFpbiAqZG9tYWluLCB1bnNpZ25lZCBpbnQgaXJxLFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNDcxLVx0XHRcdCAgICAgaXJxX2h3X251bWJlcl90IGh3aXJxKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTQ3My1cdGlycV9zZXRfY2hpcF9kYXRhKGlycSwgZG9tYWluLVx1MDAzZWhvc3RfZGF0YSk7XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo0NzQ6XHRpcnFfc2V0X2NoaXBfYW5kX2hhbmRsZXIoaXJxLCBcdTAwMjZydGw4MzY2cmJfaXJxX2NoaXAsIGhhbmRsZV9zaW1wbGVfaXJxKTtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTQ3NS1cdGlycV9zZXRfbmVzdGVkX3RocmVhZChpcnEsIDEpO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTQ4MC1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjQ4MTpzdGF0aWMgdm9pZCBydGw4MzY2cmJfaXJxX3VubWFwKHN0cnVjdCBpcnFfZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgaXJxKVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNDgyLXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy00ODctXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo0ODg6c3RhdGljIGNvbnN0IHN0cnVjdCBpcnFfZG9tYWluX29wcyBydGw4MzY2cmJfaXJxZG9tYWluX29wcyA9IHtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjQ4OTpcdC5tYXAgPSBydGw4MzY2cmJfaXJxX21hcCxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjQ5MDpcdC51bm1hcCA9IHJ0bDgzNjZyYl9pcnFfdW5tYXAsXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy00OTEtXHQueGxhdGUgID0gaXJxX2RvbWFpbl94bGF0ZV9vbmVjZWxsLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTQ5My1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjQ5NDpzdGF0aWMgaW50IHJ0bDgzNjZyYl9zZXR1cF9jYXNjYWRlZF9pcnEoc3RydWN0IHJlYWx0ZWtfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTQ5NS17XG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNTQ2LVx0cmV0ID0gZGV2bV9yZXF1ZXN0X3RocmVhZGVkX2lycShwcml2LVx1MDAzZWRldiwgaXJxLCBOVUxMLFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6NTQ3Olx0XHRcdFx0XHRydGw4MzY2cmJfaXJxLCBJUlFGX09ORVNIT1QsXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy01NDgtXHRcdFx0XHRcdFwmIzM0O1JUTDgzNjZSQlwmIzM0OywgcHJpdik7XG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNTUzLVx0cHJpdi1cdTAwM2VpcnFkb21haW4gPSBpcnFfZG9tYWluX2NyZWF0ZV9saW5lYXIob2ZfZndub2RlX2hhbmRsZShpbnRjKSwgUlRMODM2NlJCX05VTV9JTlRFUlJVUFQsXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo1NTQ6XHRcdFx0XHRcdFx0ICAgXHUwMDI2cnRsODM2NnJiX2lycWRvbWFpbl9vcHMsIHByaXYpO1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNTU1LVx0aWYgKCFwcml2LVx1MDAzZWlycWRvbWFpbikge1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTU2Ny1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjU2ODpzdGF0aWMgaW50IHJ0bDgzNjZyYl9zZXRfYWRkcihzdHJ1Y3QgcmVhbHRla19wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNTY5LXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy01OTUtLyogU3RydWN0IGZvciBoYW5kbGluZyB0aGUgamFtIHRhYmxlcyYjMzk7IGVudHJpZXMgKi9cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjU5NjpzdHJ1Y3QgcnRsODM2NnJiX2phbV90YmxfZW50cnkge1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNTk3LVx0dTE2IHJlZztcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy02MDEtLyogRm9yIHRoZSBcJiMzNDt2ZXJzaW9uIDBcJiMzNDsgZWFybHkgc2lsaWNvbiwgYXBwZWFyIGluIG1vc3Qgc291cmNlIHJlbGVhc2VzICovXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo2MDI6c3RhdGljIGNvbnN0IHN0cnVjdCBydGw4MzY2cmJfamFtX3RibF9lbnRyeSBydGw4MzY2cmJfaW5pdF9qYW1fdmVyXzBbXSA9IHtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTYwMy1cdHsweDAwMEIsIDB4MDAwMX0sIHsweDAzQTYsIDB4MDEwMH0sIHsweDAzQTcsIDB4MDAwMX0sIHsweDAyRDEsIDB4M0ZGRn0sXG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNjM0LS8qIFRoaXMgdjEgaW5pdCBzZXF1ZW5jZSBpcyBmcm9tIEJlbGtpbiBGNUQ4MjM1IFUtQm9vdCByZWxlYXNlICovXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo2MzU6c3RhdGljIGNvbnN0IHN0cnVjdCBydGw4MzY2cmJfamFtX3RibF9lbnRyeSBydGw4MzY2cmJfaW5pdF9qYW1fdmVyXzFbXSA9IHtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTYzNi1cdHsweDAwMDAsIDB4MDgzMH0sIHsweDAwMDEsIDB4ODAwMH0sIHsweDA0MDAsIDB4ODEzMH0sIHsweEJFNzgsIDB4M0MzQ30sXG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNjQ5LS8qIFRoaXMgdjIgaW5pdCBzZXF1ZW5jZSBpcyBmcm9tIEJlbGtpbiBGNUQ4MjM1IFUtQm9vdCByZWxlYXNlICovXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo2NTA6c3RhdGljIGNvbnN0IHN0cnVjdCBydGw4MzY2cmJfamFtX3RibF9lbnRyeSBydGw4MzY2cmJfaW5pdF9qYW1fdmVyXzJbXSA9IHtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTY1MS1cdHsweDA0NTAsIDB4MDAwMH0sIHsweDA0MDAsIDB4ODEzMH0sIHsweDAwMEEsIDB4ODNFRH0sIHsweDA0MzEsIDB4NTQzMn0sXG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNjY0LS8qIEFwcGVhcnMgaW4gYSBERFdSVCBjb2RlIGR1bXAgKi9cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjY2NTpzdGF0aWMgY29uc3Qgc3RydWN0IHJ0bDgzNjZyYl9qYW1fdGJsX2VudHJ5IHJ0bDgzNjZyYl9pbml0X2phbV92ZXJfM1tdID0ge1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNjY2LVx0ezB4MDAwMCwgMHgwODMwfSwgezB4MDQwMCwgMHg4MTMwfSwgezB4MDAwQSwgMHg4M0VEfSwgezB4MDQzMSwgMHg1NDMyfSxcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy02ODUtLyogQmVsa2luIEY1RDgyMzUgdjEsIFwmIzM0O2JlbGtpbixmNWQ4MjM1LXYxXCYjMzQ7ICovXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo2ODY6c3RhdGljIGNvbnN0IHN0cnVjdCBydGw4MzY2cmJfamFtX3RibF9lbnRyeSBydGw4MzY2cmJfaW5pdF9qYW1fZjVkODIzNVtdID0ge1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNjg3LVx0ezB4MDI0MiwgMHgwMkJGfSwgezB4MDI0NSwgMHgwMkJGfSwgezB4MDI0OCwgMHgwMkJGfSwgezB4MDI0QiwgMHgwMkJGfSxcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy02OTgtLyogREdOMzUwMCwgXCYjMzQ7bmV0Z2VhcixkZ24zNTAwXCYjMzQ7LCBcJiMzNDtuZXRnZWFyLGRnbjM1MDBiXCYjMzQ7ICovXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo2OTk6c3RhdGljIGNvbnN0IHN0cnVjdCBydGw4MzY2cmJfamFtX3RibF9lbnRyeSBydGw4MzY2cmJfaW5pdF9qYW1fZGduMzUwMFtdID0ge1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNzAwLVx0ezB4MDAwMCwgMHgwODMwfSwgezB4MDQwMCwgMHg4MTMwfSwgezB4MDAwQSwgMHg4M0VEfSwgezB4MEY1MSwgMHgwMDE3fSxcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy03MDktICovXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo3MTA6c3RhdGljIGNvbnN0IHN0cnVjdCBydGw4MzY2cmJfamFtX3RibF9lbnRyeSBydGw4MzY2cmJfZ3JlZW5famFtW10gPSB7XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy03MTEtXHR7MHhCRTc4LCAweDMyM0N9LCB7MHhCRTc3LCAweDUwMDB9LCB7MHhCRTJFLCAweDdCQTd9LFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTcxNi0vKiBGdW5jdGlvbiB0aGF0IGphbXMgdGhlIHRhYmxlcyBpbiB0aGUgcHJvcGVyIHJlZ2lzdGVycyAqL1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6NzE3OnN0YXRpYyBpbnQgcnRsODM2NnJiX2phbV90YWJsZShjb25zdCBzdHJ1Y3QgcnRsODM2NnJiX2phbV90YmxfZW50cnkgKmphbV90YWJsZSxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTcxOC1cdFx0XHQgICAgICAgaW50IGphbV9zaXplLCBzdHJ1Y3QgcmVhbHRla19wcml2ICpwcml2LFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jPTc1ND1pbnQgcmI4MzY2cmJfc2V0X2xlZGdyb3VwX21vZGUoc3RydWN0IHJlYWx0ZWtfcHJpdiAqcHJpdixcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy03NzMtLyogVGhpcyBjb2RlIGlzIHVzZWQgYWxzbyB3aXRoIExFRHMgZGlzYWJsZWQgKi9cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjc3NDpzdGF0aWMgaW50IHJ0bDgzNjZyYl9zZXR1cF9hbGxfbGVkc19vZmYoc3RydWN0IHJlYWx0ZWtfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTc3NS17XG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNzkzLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6Nzk0OnN0YXRpYyBpbnQgcnRsODM2NnJiX3BvcnRfc2V0X2lzb2xhdGlvbihzdHJ1Y3QgcmVhbHRla19wcml2ICpwcml2LCBpbnQgcG9ydCxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTc5NS1cdFx0XHRcdFx0dTMyIG1hc2spXG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtODA2LVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6ODA3OnN0YXRpYyBpbnQgcnRsODM2NnJiX3BvcnRfYWRkX2lzb2xhdGlvbihzdHJ1Y3QgcmVhbHRla19wcml2ICpwcml2LCBpbnQgcG9ydCxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTgwOC1cdFx0XHRcdFx0dTMyIG1hc2spXG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtODE1LVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6ODE2OnN0YXRpYyBpbnQgcnRsODM2NnJiX3BvcnRfcmVtb3ZlX2lzb2xhdGlvbihzdHJ1Y3QgcmVhbHRla19wcml2ICpwcml2LCBpbnQgcG9ydCxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTgxNy1cdFx0XHRcdFx0ICAgdTMyIG1hc2spXG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM9ODIzPXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo4MjQ6cnRsODM2NnJiX3BvcnRfc3RwX3N0YXRlX3NldChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LCB1OCBzdGF0ZSlcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTgyNS17XG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtODU2LVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6ODU3OnN0YXRpYyBpbnQgcnRsODM2NnJiX3BvcnRfc2V0X2xlYXJuaW5nKHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYsIGludCBwb3J0LFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtODU4LVx0XHRcdFx0ICAgICAgIGJvb2wgZW5hYmxlKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTg2Ni1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjg2NzpzdGF0aWMgaW50IHJ0bDgzNjZyYl9zZXR1cChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy04Njgte1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtODY5LVx0c3RydWN0IHJlYWx0ZWtfcHJpdiAqcHJpdiA9IGRzLVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo4NzA6XHRjb25zdCBzdHJ1Y3QgcnRsODM2NnJiX2phbV90YmxfZW50cnkgKmphbV90YWJsZTtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTg3MS1cdHUzMiBkb3ducG9ydHNfbWFzayA9IDA7XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo4NzI6XHRzdHJ1Y3QgcnRsODM2NnJiICpyYjtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTg3My1cdHUzMiB1cHBvcnRzX21hc2sgPSAwO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTkwOS1cdGNhc2UgMDpcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjkxMDpcdFx0amFtX3RhYmxlID0gcnRsODM2NnJiX2luaXRfamFtX3Zlcl8wO1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6OTExOlx0XHRqYW1fc2l6ZSA9IEFSUkFZX1NJWkUocnRsODM2NnJiX2luaXRfamFtX3Zlcl8wKTtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTkxMi1cdFx0YnJlYWs7XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy05MTMtXHRjYXNlIDE6XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo5MTQ6XHRcdGphbV90YWJsZSA9IHJ0bDgzNjZyYl9pbml0X2phbV92ZXJfMTtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjkxNTpcdFx0amFtX3NpemUgPSBBUlJBWV9TSVpFKHJ0bDgzNjZyYl9pbml0X2phbV92ZXJfMSk7XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy05MTYtXHRcdGJyZWFrO1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtOTE3LVx0Y2FzZSAyOlxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6OTE4Olx0XHRqYW1fdGFibGUgPSBydGw4MzY2cmJfaW5pdF9qYW1fdmVyXzI7XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo5MTk6XHRcdGphbV9zaXplID0gQVJSQVlfU0laRShydGw4MzY2cmJfaW5pdF9qYW1fdmVyXzIpO1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtOTIwLVx0XHRicmVhaztcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTkyMS1cdGRlZmF1bHQ6XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo5MjI6XHRcdGphbV90YWJsZSA9IHJ0bDgzNjZyYl9pbml0X2phbV92ZXJfMztcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjkyMzpcdFx0amFtX3NpemUgPSBBUlJBWV9TSVpFKHJ0bDgzNjZyYl9pbml0X2phbV92ZXJfMyk7XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy05MjQtXHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTkzMS1cdGlmIChvZl9tYWNoaW5lX2lzX2NvbXBhdGlibGUoXCYjMzQ7YmVsa2luLGY1ZDgyMzUtdjFcJiMzNDspKSB7XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo5MzI6XHRcdGphbV90YWJsZSA9IHJ0bDgzNjZyYl9pbml0X2phbV9mNWQ4MjM1O1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6OTMzOlx0XHRqYW1fc2l6ZSA9IEFSUkFZX1NJWkUocnRsODM2NnJiX2luaXRfamFtX2Y1ZDgyMzUpO1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtOTM0LVx0fVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTkzNi1cdCAgICBvZl9tYWNoaW5lX2lzX2NvbXBhdGlibGUoXCYjMzQ7bmV0Z2VhcixkZ24zNTAwYlwmIzM0OykpIHtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjkzNzpcdFx0amFtX3RhYmxlID0gcnRsODM2NnJiX2luaXRfamFtX2RnbjM1MDA7XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo5Mzg6XHRcdGphbV9zaXplID0gQVJSQVlfU0laRShydGw4MzY2cmJfaW5pdF9qYW1fZGduMzUwMCk7XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy05MzktXHR9XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy05NDAtXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo5NDE6XHRyZXQgPSBydGw4MzY2cmJfamFtX3RhYmxlKGphbV90YWJsZSwgamFtX3NpemUsIHByaXYsIHRydWUpO1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtOTQyLVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy05NTAtXHRcdCAqL1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6OTUxOlx0XHRydGw4MzY2cmJfcG9ydF9zdHBfc3RhdGVfc2V0KGRzLCBkcC1cdTAwM2VpbmRleCwgQlJfU1RBVEVfRElTQUJMRUQpO1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtOTUyLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtOTUzLVx0XHQvKiBTdGFydCB3aXRoIGFsbCBwb3J0cyBjb21wbGV0ZWx5IGlzb2xhdGVkICovXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo5NTQ6XHRcdHJldCA9IHJ0bDgzNjZyYl9wb3J0X3NldF9pc29sYXRpb24ocHJpdiwgZHAtXHUwMDNlaW5kZXgsXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy05NTUtXHRcdFx0XHRcdFx0ICAgUlRMODM2NlJCX1BPUlRfSVNPX1BPUlRTX01BU0spO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTk1OS1cdFx0LyogRGlzYWJsZSBsZWFybmluZyAqL1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6OTYwOlx0XHRyZXQgPSBydGw4MzY2cmJfcG9ydF9zZXRfbGVhcm5pbmcocHJpdiwgZHAtXHUwMDNlaW5kZXgsIGZhbHNlKTtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTk2MS1cdFx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy05NzgtXHRcdC8qIEZvcndhcmQgb25seSB0byB0aGUgQ1BVLCBpc29sYXRlIGZyb20gYWxsIG90aGVyIHBvcnRzICovXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo5Nzk6XHRcdHJldCA9IHJ0bDgzNjZyYl9wb3J0X3NldF9pc29sYXRpb24ocHJpdiwgZHAtXHUwMDNlaW5kZXgsIHVwcG9ydHNfbWFzayk7XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy05ODAtXHRcdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtOTkzLVx0XHQvKiBGb3J3YXJkIHRvIGFsbCB1c2VyIHBvcnRzICovXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo5OTQ6XHRcdHJldCA9IHJ0bDgzNjZyYl9wb3J0X3NldF9pc29sYXRpb24ocHJpdiwgZHAtXHUwMDNlaW5kZXgsIGRvd25wb3J0c19tYXNrKTtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTk5NS1cdFx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy05OTktXHQvKiBTZXQgdXAgdGhlIFwmIzM0O2dyZWVuIGV0aGVybmV0XCYjMzQ7IGZlYXR1cmUgKi9cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjEwMDA6XHRyZXQgPSBydGw4MzY2cmJfamFtX3RhYmxlKHJ0bDgzNjZyYl9ncmVlbl9qYW0sXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxMDAxOlx0XHRcdFx0ICBBUlJBWV9TSVpFKHJ0bDgzNjZyYl9ncmVlbl9qYW0pLCBwcml2LCBmYWxzZSk7XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMDAyLVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMDE5LVx0LyogU2V0IHNvbWUgcmFuZG9tIE1BQyBhZGRyZXNzICovXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxMDIwOlx0cmV0ID0gcnRsODM2NnJiX3NldF9hZGRyKHByaXYpO1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTAyMS1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTEwNS1cdGlmIChwcml2LVx1MDAzZWxlZHNfZGlzYWJsZWQpIHtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjExMDY6XHRcdHJldCA9IHJ0bDgzNjZyYl9zZXR1cF9hbGxfbGVkc19vZmYocHJpdik7XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMTA3LVx0XHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTExMDktXHR9IGVsc2Uge1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTExMDpcdFx0cmV0ID0gcnRsODM2NnJiX3NldHVwX2xlZHMocHJpdik7XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMTExLVx0XHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTExMTgtXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxMTE5Olx0cmV0ID0gcnRsODM2NnJiX3NldHVwX2Nhc2NhZGVkX2lycShwcml2KTtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTExMjAtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jPTExMzI9c3RhdGljIGVudW0gZHNhX3RhZ19wcm90b2NvbCBydGw4MzY2X2dldF90YWdfcHJvdG9jb2woc3RydWN0IGRzYV9zd2l0Y2ggKmRzLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTExMzktXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxMTQwOnN0YXRpYyB2b2lkIHJ0bDgzNjZyYl9waHlsaW5rX2dldF9jYXBzKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMTQxLVx0XHRcdFx0ICAgICAgIHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jPTExNjY9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjExNjc6cnRsODM2NnJiX21hY19jb25maWcoc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcsIHVuc2lnbmVkIGludCBtb2RlLFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTE2OC1cdFx0ICAgICBjb25zdCBzdHJ1Y3QgcGh5bGlua19saW5rX3N0YXRlICpzdGF0ZSlcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYz0xMTcyPXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxMTczOnJ0bDgzNjZyYl9tYWNfbGlua191cChzdHJ1Y3QgcGh5bGlua19jb25maWcgKmNvbmZpZywgc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldixcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTExNzQtXHRcdCAgICAgIHVuc2lnbmVkIGludCBtb2RlLCBwaHlfaW50ZXJmYWNlX3QgaW50ZXJmYWNlLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jPTEyNDQ9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjEyNDU6cnRsODM2NnJiX21hY19saW5rX2Rvd24oc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcsIHVuc2lnbmVkIGludCBtb2RlLFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTI0Ni1cdFx0XHRwaHlfaW50ZXJmYWNlX3QgaW50ZXJmYWNlKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jPTEyNjc9c3RhdGljIGludFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTI2ODpydGw4MzY2cmJfcG9ydF9lbmFibGUoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTEyNjktXHRcdCAgICAgIHN0cnVjdCBwaHlfZGV2aWNlICpwaHkpXG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM9MTI4Mz1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTI4NDpydGw4MzY2cmJfcG9ydF9kaXNhYmxlKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQpXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMjg1LXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMjk2LS8qKlxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTI5NzogKiBydGw4MzY2cmJfZHJvcF91bnRhZ2dlZCgpIC0gbWFrZSB0aGUgc3dpdGNoIGRyb3AgdW50YWdnZWQgYW5kIEMtdGFnZ2VkIGZyYW1lc1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTI5OC0gKiBAcHJpdjogU01JIHN0YXRlIGNvbnRhaW5lclxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTEzMDMtICovXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxMzA0OnN0YXRpYyBpbnQgcnRsODM2NnJiX2Ryb3BfdW50YWdnZWQoc3RydWN0IHJlYWx0ZWtfcHJpdiAqcHJpdiwgaW50IHBvcnQsIGJvb2wgZHJvcClcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTEzMDUte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTEzMTAtXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxMzExOnN0YXRpYyBpbnQgcnRsODM2NnJiX3ZsYW5fZmlsdGVyaW5nKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMzEyLVx0XHRcdFx0ICAgIGJvb2wgdmxhbl9maWx0ZXJpbmcsXG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTMxNS1cdHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYgPSBkcy1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTMxNjpcdHN0cnVjdCBydGw4MzY2cmIgKnJiO1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTMxNy1cdGludCByZXQ7XG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTMzNC1cdGlmICh2bGFuX2ZpbHRlcmluZylcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjEzMzU6XHRcdHJldCA9IHJ0bDgzNjZyYl9kcm9wX3VudGFnZ2VkKHByaXYsIHBvcnQsICFyYi1cdTAwM2VwdmlkX2VuYWJsZWRbcG9ydF0pO1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTMzNi1cdGVsc2VcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjEzMzc6XHRcdHJldCA9IHJ0bDgzNjZyYl9kcm9wX3VudGFnZ2VkKHByaXYsIHBvcnQsIGZhbHNlKTtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTEzMzgtXG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM9MTM0Mj1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxMzQzOnJ0bDgzNjZyYl9wb3J0X3ByZV9icmlkZ2VfZmxhZ3Moc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTEzNDQtXHRcdFx0XHRzdHJ1Y3Qgc3dpdGNoZGV2X2JycG9ydF9mbGFncyBmbGFncyxcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYz0xMzU0PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxMzU1OnJ0bDgzNjZyYl9wb3J0X2Zhc3RfYWdlKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQpXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMzU2LXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMzY2LVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTM2NzpzdGF0aWMgaW50IHJ0bDgzNjZyYl9jaGFuZ2VfbXR1KHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsIGludCBuZXdfbXR1KVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTM2OC17XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMzY5LVx0c3RydWN0IHJlYWx0ZWtfcHJpdiAqcHJpdiA9IGRzLVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxMzcwOlx0c3RydWN0IHJ0bDgzNjZyYiAqcmI7XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMzcxLVx0dW5zaWduZWQgaW50IG1heF9tdHU7XG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTQxMy1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE0MTQ6c3RhdGljIGludCBydGw4MzY2cmJfbWF4X210dShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0KVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTQxNS17XG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTQyMy1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE0MjQ6c3RhdGljIGludCBydGw4MzY2cmJfZ2V0X3ZsYW5fNGsoc3RydWN0IHJlYWx0ZWtfcHJpdiAqcHJpdiwgdTMyIHZpZCxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE0MjUtXHRcdFx0XHQgc3RydWN0IHJ0bDgzNjZfdmxhbl80ayAqdmxhbjRrKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE0NjQtXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxNDY1OnN0YXRpYyBpbnQgcnRsODM2NnJiX3NldF92bGFuXzRrKHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYsXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xNDY2LVx0XHRcdFx0IGNvbnN0IHN0cnVjdCBydGw4MzY2X3ZsYW5fNGsgKnZsYW40aylcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xNDk4LVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTQ5OTpzdGF0aWMgaW50IHJ0bDgzNjZyYl9nZXRfdmxhbl9tYyhzdHJ1Y3QgcmVhbHRla19wcml2ICpwcml2LCB1MzIgaW5kZXgsXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xNTAwLVx0XHRcdFx0IHN0cnVjdCBydGw4MzY2X3ZsYW5fbWMgKnZsYW5tYylcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xNTI5LVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTUzMDpzdGF0aWMgaW50IHJ0bDgzNjZyYl9zZXRfdmxhbl9tYyhzdHJ1Y3QgcmVhbHRla19wcml2ICpwcml2LCB1MzIgaW5kZXgsXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xNTMxLVx0XHRcdFx0IGNvbnN0IHN0cnVjdCBydGw4MzY2X3ZsYW5fbWMgKnZsYW5tYylcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xNTYzLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTU2NDpzdGF0aWMgaW50IHJ0bDgzNjZyYl9nZXRfbWNfaW5kZXgoc3RydWN0IHJlYWx0ZWtfcHJpdiAqcHJpdiwgaW50IHBvcnQsIGludCAqdmFsKVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTU2NS17XG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTU4Mi1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE1ODM6c3RhdGljIGludCBydGw4MzY2cmJfc2V0X21jX2luZGV4KHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYsIGludCBwb3J0LCBpbnQgaW5kZXgpXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xNTg0LXtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE1ODUtXHRzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMgPSBcdTAwMjZwcml2LVx1MDAzZWRzO1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTU4NjpcdHN0cnVjdCBydGw4MzY2cmIgKnJiO1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTU4Ny1cdGJvb2wgcHZpZF9lbmFibGVkO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE2MTAtXHRpZiAoZHNhX3BvcnRfaXNfdmxhbl9maWx0ZXJpbmcoZHNhX3RvX3BvcnQoZHMsIHBvcnQpKSlcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE2MTE6XHRcdHJldCA9IHJ0bDgzNjZyYl9kcm9wX3VudGFnZ2VkKHByaXYsIHBvcnQsICFwdmlkX2VuYWJsZWQpO1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTYxMi1cbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xNjE1LVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTYxNjpzdGF0aWMgYm9vbCBydGw4MzY2cmJfaXNfdmxhbl92YWxpZChzdHJ1Y3QgcmVhbHRla19wcml2ICpwcml2LCB1bnNpZ25lZCBpbnQgdmxhbilcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE2MTcte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE2MjgtXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxNjI5OnN0YXRpYyBpbnQgcnRsODM2NnJiX2VuYWJsZV92bGFuKHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYsIGJvb2wgZW5hYmxlKVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTYzMC17XG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTYzNi1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE2Mzc6c3RhdGljIGludCBydGw4MzY2cmJfZW5hYmxlX3ZsYW40ayhzdHJ1Y3QgcmVhbHRla19wcml2ICpwcml2LCBib29sIGVuYWJsZSlcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE2Mzgte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE2NDQtXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxNjQ1OnN0YXRpYyBpbnQgcnRsODM2NnJiX3BoeV9yZWFkKHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYsIGludCBwaHksIGludCByZWdudW0pXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xNjQ2LXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xNjg2LVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTY4NzpzdGF0aWMgaW50IHJ0bDgzNjZyYl9waHlfd3JpdGUoc3RydWN0IHJlYWx0ZWtfcHJpdiAqcHJpdiwgaW50IHBoeSwgaW50IHJlZ251bSxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE2ODgtXHRcdFx0ICAgICAgIHUxNiB2YWwpXG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTcxNy1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE3MTg6c3RhdGljIGludCBydGw4MzY2cmJfcmVzZXRfY2hpcChzdHJ1Y3QgcmVhbHRla19wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTcxOS17XG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTc0My1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE3NDQ6c3RhdGljIGludCBydGw4MzY2cmJfZGV0ZWN0KHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xNzQ1LXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xNzY2LVx0XHRwcml2LVx1MDAzZW51bV92bGFuX21jID0gUlRMODM2NlJCX05VTV9WTEFOUztcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE3Njc6XHRcdHByaXYtXHUwMDNlbWliX2NvdW50ZXJzID0gcnRsODM2NnJiX21pYl9jb3VudGVycztcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE3Njg6XHRcdHByaXYtXHUwMDNlbnVtX21pYl9jb3VudGVycyA9IEFSUkFZX1NJWkUocnRsODM2NnJiX21pYl9jb3VudGVycyk7XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xNzY5LVx0XHRicmVhaztcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xNzc1LVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTc3NjpcdHJldCA9IHJ0bDgzNjZyYl9yZXNldF9jaGlwKHByaXYpO1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTc3Ny1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTc4Mi1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE3ODM6c3RhdGljIGNvbnN0IHN0cnVjdCBwaHlsaW5rX21hY19vcHMgcnRsODM2NnJiX3BoeWxpbmtfbWFjX29wcyA9IHtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE3ODQ6XHQubWFjX2NvbmZpZyA9IHJ0bDgzNjZyYl9tYWNfY29uZmlnLFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTc4NTpcdC5tYWNfbGlua19kb3duID0gcnRsODM2NnJiX21hY19saW5rX2Rvd24sXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxNzg2Olx0Lm1hY19saW5rX3VwID0gcnRsODM2NnJiX21hY19saW5rX3VwLFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTc4Ny19O1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTc4OC1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE3ODk6c3RhdGljIGNvbnN0IHN0cnVjdCBkc2Ffc3dpdGNoX29wcyBydGw4MzY2cmJfc3dpdGNoX29wcyA9IHtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE3OTAtXHQuZ2V0X3RhZ19wcm90b2NvbCA9IHJ0bDgzNjZfZ2V0X3RhZ19wcm90b2NvbCxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE3OTE6XHQuc2V0dXAgPSBydGw4MzY2cmJfc2V0dXAsXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxNzkyOlx0LnBoeWxpbmtfZ2V0X2NhcHMgPSBydGw4MzY2cmJfcGh5bGlua19nZXRfY2FwcyxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE3OTMtXHQuZ2V0X3N0cmluZ3MgPSBydGw4MzY2X2dldF9zdHJpbmdzLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE3OTctXHQucG9ydF9icmlkZ2VfbGVhdmUgPSBydGw4M3h4X3BvcnRfYnJpZGdlX2xlYXZlLFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTc5ODpcdC5wb3J0X3ZsYW5fZmlsdGVyaW5nID0gcnRsODM2NnJiX3ZsYW5fZmlsdGVyaW5nLFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTc5OS1cdC5wb3J0X3ZsYW5fYWRkID0gcnRsODM2Nl92bGFuX2FkZCxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE4MDAtXHQucG9ydF92bGFuX2RlbCA9IHJ0bDgzNjZfdmxhbl9kZWwsXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODAxOlx0LnBvcnRfZW5hYmxlID0gcnRsODM2NnJiX3BvcnRfZW5hYmxlLFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTgwMjpcdC5wb3J0X2Rpc2FibGUgPSBydGw4MzY2cmJfcG9ydF9kaXNhYmxlLFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTgwMzpcdC5wb3J0X3ByZV9icmlkZ2VfZmxhZ3MgPSBydGw4MzY2cmJfcG9ydF9wcmVfYnJpZGdlX2ZsYWdzLFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTgwNC1cdC5wb3J0X2JyaWRnZV9mbGFncyA9IHJ0bDgzeHhfcG9ydF9icmlkZ2VfZmxhZ3MsXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODA1Olx0LnBvcnRfc3RwX3N0YXRlX3NldCA9IHJ0bDgzNjZyYl9wb3J0X3N0cF9zdGF0ZV9zZXQsXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODA2Olx0LnBvcnRfZmFzdF9hZ2UgPSBydGw4MzY2cmJfcG9ydF9mYXN0X2FnZSxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4MDc6XHQucG9ydF9jaGFuZ2VfbXR1ID0gcnRsODM2NnJiX2NoYW5nZV9tdHUsXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODA4Olx0LnBvcnRfbWF4X210dSA9IHJ0bDgzNjZyYl9tYXhfbXR1LFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTgwOS1cdC5wb3J0X2hzcl9qb2luID0gZHNhX3BvcnRfc2ltcGxlX2hzcl9qb2luLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE4MTItXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODEzOnN0YXRpYyBjb25zdCBzdHJ1Y3QgcmVhbHRla19vcHMgcnRsODM2NnJiX29wcyA9IHtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4MTQ6XHQuZGV0ZWN0XHRcdD0gcnRsODM2NnJiX2RldGVjdCxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4MTU6XHQuZ2V0X3ZsYW5fbWNcdD0gcnRsODM2NnJiX2dldF92bGFuX21jLFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTgxNjpcdC5zZXRfdmxhbl9tY1x0PSBydGw4MzY2cmJfc2V0X3ZsYW5fbWMsXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODE3Olx0LmdldF92bGFuXzRrXHQ9IHJ0bDgzNjZyYl9nZXRfdmxhbl80ayxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4MTg6XHQuc2V0X3ZsYW5fNGtcdD0gcnRsODM2NnJiX3NldF92bGFuXzRrLFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTgxOTpcdC5nZXRfbWNfaW5kZXhcdD0gcnRsODM2NnJiX2dldF9tY19pbmRleCxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4MjA6XHQuc2V0X21jX2luZGV4XHQ9IHJ0bDgzNjZyYl9zZXRfbWNfaW5kZXgsXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODIxOlx0LmdldF9taWJfY291bnRlciA9IHJ0bDgzNjZyYl9nZXRfbWliX2NvdW50ZXIsXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODIyOlx0LmlzX3ZsYW5fdmFsaWRcdD0gcnRsODM2NnJiX2lzX3ZsYW5fdmFsaWQsXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODIzOlx0LmVuYWJsZV92bGFuXHQ9IHJ0bDgzNjZyYl9lbmFibGVfdmxhbixcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4MjQ6XHQuZW5hYmxlX3ZsYW40a1x0PSBydGw4MzY2cmJfZW5hYmxlX3ZsYW40ayxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4MjU6XHQucG9ydF9hZGRfaXNvbGF0aW9uID0gcnRsODM2NnJiX3BvcnRfYWRkX2lzb2xhdGlvbixcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4MjY6XHQucG9ydF9yZW1vdmVfaXNvbGF0aW9uID0gcnRsODM2NnJiX3BvcnRfcmVtb3ZlX2lzb2xhdGlvbixcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4Mjc6XHQucG9ydF9zZXRfbGVhcm5pbmcgPSBydGw4MzY2cmJfcG9ydF9zZXRfbGVhcm5pbmcsXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODI4Olx0LnBoeV9yZWFkXHQ9IHJ0bDgzNjZyYl9waHlfcmVhZCxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4Mjk6XHQucGh5X3dyaXRlXHQ9IHJ0bDgzNjZyYl9waHlfd3JpdGUsXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xODMwLX07XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xODMxLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTgzMjpjb25zdCBzdHJ1Y3QgcmVhbHRla192YXJpYW50IHJ0bDgzNjZyYl92YXJpYW50ID0ge1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTgzMzpcdC5kc19vcHMgPSBcdTAwMjZydGw4MzY2cmJfc3dpdGNoX29wcyxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4MzQ6XHQub3BzID0gXHUwMDI2cnRsODM2NnJiX29wcyxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4MzU6XHQucGh5bGlua19tYWNfb3BzID0gXHUwMDI2cnRsODM2NnJiX3BoeWxpbmtfbWFjX29wcyxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE4MzYtXHQuY2xrX2RlbGF5ID0gMTAsXG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTgzOC1cdC5jbWRfd3JpdGUgPSAweGE4LFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTgzOTpcdC5jaGlwX2RhdGFfc3ogPSBzaXplb2Yoc3RydWN0IHJ0bDgzNjZyYiksXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xODQwLX07XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xODQxLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTg0MjpzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBydGw4MzY2cmJfb2ZfbWF0Y2hbXSA9IHtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4NDM6XHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7cmVhbHRlayxydGw4MzY2cmJcJiMzNDssIC5kYXRhID0gXHUwMDI2cnRsODM2NnJiX3ZhcmlhbnQsIH0sXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xODQ0LVx0eyAvKiBzZW50aW5lbCAqLyB9LFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTg0NS19O1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTg0NjpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBydGw4MzY2cmJfb2ZfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTg0Ny1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4NDg6c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgcnRsODM2NnJiX3NtaV9kcml2ZXIgPSB7XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xODQ5LVx0LmRyaXZlciA9IHtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4NTA6XHRcdC5uYW1lID0gXCYjMzQ7cnRsODM2NnJiLXNtaVwmIzM0OyxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4NTE6XHRcdC5vZl9tYXRjaF90YWJsZSA9IHJ0bDgzNjZyYl9vZl9tYXRjaCxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE4NTItXHR9LFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE4NTctXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODU4OnN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgcnRsODM2NnJiX21kaW9fZHJpdmVyID0ge1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTg1OS1cdC5tZGlvZHJ2LmRyaXZlciA9IHtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4NjA6XHRcdC5uYW1lID0gXCYjMzQ7cnRsODM2NnJiLW1kaW9cJiMzNDssXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODYxOlx0XHQub2ZfbWF0Y2hfdGFibGUgPSBydGw4MzY2cmJfb2ZfbWF0Y2gsXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xODYyLVx0fSxcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xODY3LVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTg2ODpzdGF0aWMgaW50IHJ0bDgzNjZyYl9pbml0KHZvaWQpXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xODY5LXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xODcxLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTg3MjpcdHJldCA9IHJlYWx0ZWtfbWRpb19kcml2ZXJfcmVnaXN0ZXIoXHUwMDI2cnRsODM2NnJiX21kaW9fZHJpdmVyKTtcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE4NzMtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE4NzUtXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODc2Olx0cmV0ID0gcmVhbHRla19zbWlfZHJpdmVyX3JlZ2lzdGVyKFx1MDAyNnJ0bDgzNjZyYl9zbWlfZHJpdmVyKTtcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIxIDIzOjUxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE4OTA2CgkJCQkJCQlvdXRwdXQ6IDEwNwoJCQkJCQkJdGhvdWdodHM6IDQ5MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipVbmZ1enphYmxlIEhhcmR3YXJlIERlcGVuZGVuY3kqKgoKT2theSwgc28gbG9va2luZyBhdCB0aGlzIGNvZGUsIG15IGluaXRpYWwgYXNzZXNzbWVudCBpcyB0aGF0IHRoaXMgaXMgYSBkZWFkIGVuZCBmb3IgZnV6emluZy4gVGhlIGRyaXZlciwgYHJlYWx0ZWtfbWRpb19kcml2ZXJfcmVnaXN0ZXJgIGFuZCBgcmVhbHRla19zbWlfZHJpdmVyX3JlZ2lzdGVyYCwgcmVnaXN0ZXJzIGl0c2VsZiB0byBoYW5kbGUgc3BlY2lmaWMgaGFyZHdhcmUsIHNwZWNpZmljYWxseSBkZXZpY2VzIHRoYXQgYXJlIGRlc2NyaWJlZCB3aXRoIGByZWFsdGVrLHJ0bDgzNjZyYmAgaW4gdGhlIGRldmljZSB0cmVlLiBUaGlzIGltbWVkaWF0ZWx5IGZsYWdzIGl0IGFzIGhhcmR3YXJlLXNwZWNpZmljLiBXZSYjMzk7cmUgZGVhbGluZyB3aXRoIGFuIE1ESU8vU01JIGNvbm5lY3RlZCBzd2l0Y2guIFRoYXQgbWVhbnMgaXQgbmVlZHMgYWN0dWFsIGhhcmR3YXJlIHRvIGZ1bmN0aW9uLCBhbmQgaXQgd29uJiMzOTt0IGJlIHJlYWNoYWJsZSBpbiBhbnkgc3RhbmRhcmQgdmlydHVhbGl6ZWQgc2V0dXAgbGlrZSBRRU1VIG9yIEdDRSB1bmxlc3MgdGhlcmUmIzM5O3Mgc29tZSB2ZXJ5IHNwZWNpYWxpemVkIGVtdWxhdG9yIGZvciAqdGhpcyogcGFydGljdWxhciBSZWFsdGVrIGNoaXAsIHdoaWNoIGlzIHVubGlrZWx5LgoKSnVzdCB0byBiZSB0aG9yb3VnaCwgSSYjMzk7bSBjaGVja2luZyBpZiB0aGVyZSYjMzk7cyBhbnkgc29mdHdhcmUgd29ya2Fyb3VuZCwgYnV0IGV2ZW4gaWYgdGhlcmUgYXJlIHNvZnR3YXJlIE1ESU8gYnVzZXMsIHRoZXkgc3RpbGwgZGVwZW5kIG9uIHRoZSB1bmRlcmx5aW5nIGhhcmR3YXJlIHJlc3BvbmRpbmcgdG8gcmVhZCBhbmQgd3JpdGUgY29tbWFuZHMuIFRoZSBgcnRsODM2NnJiX2RldGVjdGAgZnVuY3Rpb24gaXMgdGhlIHRlbGwtdGFsZSBzaWduLiBJdCB0cmllcyB0byByZWFkIGEgY2hpcCBJRCByZWdpc3RlcjoKCmBgYGMKc3RhdGljIGludCBydGw4MzY2cmJfZGV0ZWN0KHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYpCnsKICAgIC4uLgogICAgcmV0ID0gcmVnbWFwX3JlYWQocHJpdi0mZ3Q7bWFwLCBSVEw4MzY2UkJfQ0hJUF9JRF9SRUcsICZhbXA7dmFsKTsKICAgIGlmIChyZXQpIHsKICAgICAgICBkZXZfZXJyKHByaXYtJmd0O2RldiwgJiMzNDtmYWlsZWQgdG8gcmVhZCBjaGlwIGlkXG4mIzM0Oyk7CiAgICAgICAgcmV0dXJuIHJldDsKICAgIH0KICAgIGlmICh2YWwgIT0gUlRMODM2NlJCX0NISVBfSURfODM2NikgewogICAgICAgIGRldl9lcnIocHJpdi0mZ3Q7ZGV2LCAmIzM0O2NoaXAgaWQgJTA0eCAhPSAlMDR4XG4mIzM0OywgdmFsLCBSVEw4MzY2UkJfQ0hJUF9JRF84MzY2KTsKICAgICAgICByZXR1cm4gLUVOT0RFVjsKICAgIH0KICAgIC4uLgp9CmBgYAoKVGhlIHByb2JlIGZ1bmN0aW9uIHdpbGwgKmltbWVkaWF0ZWx5KiBmYWlsLCByZXR1cm5pbmcgYC1FTk9ERVZgLCBpZiB0aGUgY2hpcCBJRCBkb2VzbiYjMzk7dCBtYXRjaCBgUlRMODM2NlJCX0NISVBfSURfODM2NmAuIFRoZXJlJiMzOTtzIG5vIHdheSBhcm91bmQgaXQgd2l0aG91dCB0aGUgcGh5c2ljYWwgaGFyZHdhcmUsIG9yIGFuIGFjY3VyYXRlIGVtdWxhdG9yLiBBbmQgSSBrbm93IFFFTVUgZG9lc24mIzM5O3QgZW11bGF0ZSB0aGlzIHBhcnRpY3VsYXIgY2hpcC4KClNvLCBnaXZlbiB0aGF0IHRoZSBwYXRjaCB0YXJnZXRzIGEgaGFyZHdhcmUtc3BlY2lmaWMgRFNBIHN3aXRjaCBkcml2ZXIsIHdpdGggY29tbXVuaWNhdGlvbiB0aHJvdWdoIE1ESU8vU01JLCB3aGljaCBmdXJ0aGVyIHJlcXVpcmVzIGEgc3BlY2lmaWMgY2hpcCBJRCBjaGVjaywgYW5kIHRoZSB0YXJnZXQgaGFyZHdhcmUgaXMgbm90IGVtdWxhdGVkIGluIGNvbW1vbmx5IGF2YWlsYWJsZSB2aXJ0dWFsaXphdGlvbiBwbGF0Zm9ybXMsIEkmIzM5O20gZ29pbmcgdG8gc2V0IGBXb3J0aEZ1enppbmdgIHRvIGBmYWxzZWAuIFRpbWUgdG8gY2FsbCBgc2V0LXJlc3VsdHNgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIxIDIzOjUxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBEU0Egc3dpdGNoIGRyaXZlciAoUmVhbHRlayBSVEw4MzY2UkIpIHdoaWNoIGNvbW11bmljYXRlcyB2aWEgTURJTy9TTUkuIFRoaXMgaGFyZHdhcmUgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLCBhbmQgdGhlIGRyaXZlciBleHBsaWNpdGx5IGNoZWNrcyBmb3IgYSBzcGVjaWZpYyBoYXJkd2FyZSBjaGlwIElEIGR1cmluZyBwcm9iZS4gVGhlcmVmb3JlLCB0aGUgbW9kaWZpZWQgY29kZSBpcyB1bnJlYWNoYWJsZSBhbmQgY2Fubm90IGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGEgaGFyZHdhcmUtc3BlY2lmaWMgRFNBIHN3aXRjaCBkcml2ZXIgKFJlYWx0ZWsgUlRMODM2NlJCKSB3aGljaCBjb21tdW5pY2F0ZXMgdmlhIE1ESU8vU01JLiBUaGlzIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSwgYW5kIHRoZSBkcml2ZXIgZXhwbGljaXRseSBjaGVja3MgZm9yIGEgc3BlY2lmaWMgaGFyZHdhcmUgY2hpcCBJRCBkdXJpbmcgcHJvYmUuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgdW5yZWFjaGFibGUgYW5kIGNhbm5vdCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMjFUMjM6NTE6MDkuNzgwNDUzMjU4WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTYxMDkzNjQxOTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGEgaGFyZHdhcmUtc3BlY2lmaWMgRFNBIHN3aXRjaCBkcml2ZXIgKFJlYWx0ZWsgUlRMODM2NlJCKSB3aGljaCBjb21tdW5pY2F0ZXMgdmlhIE1ESU8vU01JLiBUaGlzIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSwgYW5kIHRoZSBkcml2ZXIgZXhwbGljaXRseSBjaGVja3MgZm9yIGEgc3BlY2lmaWMgaGFyZHdhcmUgY2hpcCBJRCBkdXJpbmcgcHJvYmUuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgdW5yZWFjaGFibGUgYW5kIGNhbm5vdCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMVQyMzo1MTowOS43ODA0NjA0OThaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU0NzE1Njc3OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDIzYTViOGU4NTdlMzczMDFkMmUyZTJmMmU2MTdkY2FhZDNjOGNiMWRcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFR1ZSBKdWwgMjEgMjM6NTE6MDggMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMgYi9kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuY1xcbmluZGV4IGQyZmE4ZmY2YTVkMDhhLi42ZDVhNmU3YmM1ZjEzMyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jXFxuQEAgLTc5NCw4ICs3OTQsOCBAQCBzdGF0aWMgaW50IHJ0bDgzNjZyYl9zZXR1cF9hbGxfbGVkc19vZmYoc3RydWN0IHJlYWx0ZWtfcHJpdiAqcHJpdilcXG4gc3RhdGljIGludCBydGw4MzY2cmJfcG9ydF9zZXRfaXNvbGF0aW9uKHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYsIGludCBwb3J0LFxcbiBcXHRcXHRcXHRcXHRcXHR1MzIgbWFzaylcXG4ge1xcbi1cXHQvKiBCaXQgMCBlbmFibGVzIGlzb2xhdGlvbiBzbyBzZXQgdGhpcyBpZiB3ZSBlbmFibGUgaXNvbGF0aW9uXFxuLVxcdCAqIGFueSBvZiB0aGUgcG9ydHMgYW4gY2xlYXIgaXQgaWYgd2UgZGlzYWJsZSBvbiBhbGwgb2YgdGhlbS5cXG4rXFx0LyogQml0IDAgZW5hYmxlcyBpc29sYXRpb24gc28gc2V0IHRoaXMgaWYgd2UgZW5hYmxlIGlzb2xhdGlvbiBvblxcbitcXHQgKiBhbnkgb2YgdGhlIHBvcnRzIGFuZCBjbGVhciBpdCBpZiB3ZSBkaXNhYmxlIG9uIGFsbCBvZiB0aGVtLlxcbiBcXHQgKi9cXG4gXFx0aWYgKG1hc2spXFxuIFxcdFxcdG1hc2sgPSBSVEw4MzY2UkJfUE9SVF9JU09fUE9SVFMobWFzaykgfCBSVEw4MzY2UkJfUE9SVF9JU09fRU47XFxuQEAgLTk1MSw3ICs5NTEsOCBAQCBzdGF0aWMgaW50IHJ0bDgzNjZyYl9zZXR1cChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpXFxuIFxcdFxcdHJ0bDgzNjZyYl9wb3J0X3N0cF9zdGF0ZV9zZXQoZHMsIGRwLVxcdTAwM2VpbmRleCwgQlJfU1RBVEVfRElTQUJMRUQpO1xcbiBcXG4gXFx0XFx0LyogU3RhcnQgd2l0aCBhbGwgcG9ydHMgY29tcGxldGVseSBpc29sYXRlZCAqL1xcbi1cXHRcXHRyZXQgPSBydGw4MzY2cmJfcG9ydF9zZXRfaXNvbGF0aW9uKHByaXYsIGRwLVxcdTAwM2VpbmRleCwgMCk7XFxuK1xcdFxcdHJldCA9IHJ0bDgzNjZyYl9wb3J0X3NldF9pc29sYXRpb24ocHJpdiwgZHAtXFx1MDAzZWluZGV4LFxcbitcXHRcXHRcXHRcXHRcXHRcXHQgICBSVEw4MzY2UkJfUE9SVF9JU09fUE9SVFNfTUFTSyk7XFxuIFxcdFxcdGlmIChyZXQpXFxuIFxcdFxcdFxcdHJldHVybiByZXQ7XFxuIFxcbkBAIC05NzQsNyArOTc1LDcgQEAgc3RhdGljIGludCBydGw4MzY2cmJfc2V0dXAoc3RydWN0IGRzYV9zd2l0Y2ggKmRzKVxcbiBcXHRcXHRpZiAoIWRzYV9wb3J0X2lzX3VzZXIoZHApKVxcbiBcXHRcXHRcXHRjb250aW51ZTtcXG4gXFxuLVxcdFxcdC8qIEZvcndhcmQgb25seSB0byB0aGUgQ1BVICovXFxuK1xcdFxcdC8qIEZvcndhcmQgb25seSB0byB0aGUgQ1BVLCBpc29sYXRlIGZyb20gYWxsIG90aGVyIHBvcnRzICovXFxuIFxcdFxcdHJldCA9IHJ0bDgzNjZyYl9wb3J0X3NldF9pc29sYXRpb24ocHJpdiwgZHAtXFx1MDAzZWluZGV4LCB1cHBvcnRzX21hc2spO1xcbiBcXHRcXHRpZiAocmV0KVxcbiBcXHRcXHRcXHRyZXR1cm4gcmV0O1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMVQyMzo1MToxMC4zMjgxOTUzNjdaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjoxNTU2MTYxMjA4MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBEU0Egc3dpdGNoIGRyaXZlciAoUmVhbHRlayBSVEw4MzY2UkIpIHdoaWNoIGNvbW11bmljYXRlcyB2aWEgTURJTy9TTUkuIFRoaXMgaGFyZHdhcmUgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLCBhbmQgdGhlIGRyaXZlciBleHBsaWNpdGx5IGNoZWNrcyBmb3IgYSBzcGVjaWZpYyBoYXJkd2FyZSBjaGlwIElEIGR1cmluZyBwcm9iZS4gVGhlcmVmb3JlLCB0aGUgbW9kaWZpZWQgY29kZSBpcyB1bnJlYWNoYWJsZSBhbmQgY2Fubm90IGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgMjNhNWI4ZTg1N2UzNzMwMWQyZTJlMmYyZTYxN2RjYWFkM2M4Y2IxZFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgSnVsIDIxIDIzOjUxOjA4IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMgYi9kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuY1xuaW5kZXggZDJmYThmZjZhNWQwOGEuLjZkNWE2ZTdiYzVmMTMzIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmNcbisrKyBiL2RyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jXG5AQCAtNzk0LDggKzc5NCw4IEBAIHN0YXRpYyBpbnQgcnRsODM2NnJiX3NldHVwX2FsbF9sZWRzX29mZihzdHJ1Y3QgcmVhbHRla19wcml2ICpwcml2KVxuIHN0YXRpYyBpbnQgcnRsODM2NnJiX3BvcnRfc2V0X2lzb2xhdGlvbihzdHJ1Y3QgcmVhbHRla19wcml2ICpwcml2LCBpbnQgcG9ydCxcbiBcdFx0XHRcdFx0dTMyIG1hc2spXG4ge1xuLVx0LyogQml0IDAgZW5hYmxlcyBpc29sYXRpb24gc28gc2V0IHRoaXMgaWYgd2UgZW5hYmxlIGlzb2xhdGlvblxuLVx0ICogYW55IG9mIHRoZSBwb3J0cyBhbiBjbGVhciBpdCBpZiB3ZSBkaXNhYmxlIG9uIGFsbCBvZiB0aGVtLlxuK1x0LyogQml0IDAgZW5hYmxlcyBpc29sYXRpb24gc28gc2V0IHRoaXMgaWYgd2UgZW5hYmxlIGlzb2xhdGlvbiBvblxuK1x0ICogYW55IG9mIHRoZSBwb3J0cyBhbmQgY2xlYXIgaXQgaWYgd2UgZGlzYWJsZSBvbiBhbGwgb2YgdGhlbS5cbiBcdCAqL1xuIFx0aWYgKG1hc2spXG4gXHRcdG1hc2sgPSBSVEw4MzY2UkJfUE9SVF9JU09fUE9SVFMobWFzaykgfCBSVEw4MzY2UkJfUE9SVF9JU09fRU47XG5AQCAtOTUxLDcgKzk1MSw4IEBAIHN0YXRpYyBpbnQgcnRsODM2NnJiX3NldHVwKHN0cnVjdCBkc2Ffc3dpdGNoICpkcylcbiBcdFx0cnRsODM2NnJiX3BvcnRfc3RwX3N0YXRlX3NldChkcywgZHAtXHUwMDNlaW5kZXgsIEJSX1NUQVRFX0RJU0FCTEVEKTtcbiBcbiBcdFx0LyogU3RhcnQgd2l0aCBhbGwgcG9ydHMgY29tcGxldGVseSBpc29sYXRlZCAqL1xuLVx0XHRyZXQgPSBydGw4MzY2cmJfcG9ydF9zZXRfaXNvbGF0aW9uKHByaXYsIGRwLVx1MDAzZWluZGV4LCAwKTtcbitcdFx0cmV0ID0gcnRsODM2NnJiX3BvcnRfc2V0X2lzb2xhdGlvbihwcml2LCBkcC1cdTAwM2VpbmRleCxcbitcdFx0XHRcdFx0XHQgICBSVEw4MzY2UkJfUE9SVF9JU09fUE9SVFNfTUFTSyk7XG4gXHRcdGlmIChyZXQpXG4gXHRcdFx0cmV0dXJuIHJldDtcbiBcbkBAIC05NzQsNyArOTc1LDcgQEAgc3RhdGljIGludCBydGw4MzY2cmJfc2V0dXAoc3RydWN0IGRzYV9zd2l0Y2ggKmRzKVxuIFx0XHRpZiAoIWRzYV9wb3J0X2lzX3VzZXIoZHApKVxuIFx0XHRcdGNvbnRpbnVlO1xuIFxuLVx0XHQvKiBGb3J3YXJkIG9ubHkgdG8gdGhlIENQVSAqL1xuK1x0XHQvKiBGb3J3YXJkIG9ubHkgdG8gdGhlIENQVSwgaXNvbGF0ZSBmcm9tIGFsbCBvdGhlciBwb3J0cyAqL1xuIFx0XHRyZXQgPSBydGw4MzY2cmJfcG9ydF9zZXRfaXNvbGF0aW9uKHByaXYsIGRwLVx1MDAzZWluZGV4LCB1cHBvcnRzX21hc2spO1xuIFx0XHRpZiAocmV0KVxuIFx0XHRcdHJldHVybiByZXQ7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMVQyMzo1MToxMC4zMjgxOTY0NTdaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2NTI0MTg3MTg4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFBvdGVudGlhbCBGdXp6aW5nIFRhcmdldDogUmVhbHRlayBSVEw4MzY2UkIgRHJpdmVyKipcblxuT2theSwgc28gSSd2ZSBnb3QgYSBwYXRjaCBoZXJlIHRoYXQgdHdlYWtzIHRoZSBgcnRsODM2NnJiX3NldHVwYCBmdW5jdGlvbiB3aXRoaW4gYGRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jYC4gVGhlIGNvcmUgY2hhbmdlIGlzIHRoaXM6IGl0J3Mgc3dhcHBpbmcgb3V0IGEgY2FsbCB0byBgcnRsODM2NnJiX3BvcnRfc2V0X2lzb2xhdGlvbihwcml2LCBkcC1cdTAwM2VpbmRleCwgMClgIHdpdGggYHJ0bDgzNjZyYl9wb3J0X3NldF9pc29sYXRpb24ocHJpdiwgZHAtXHUwMDNlaW5kZXgsIFJUTDgzNjZSQl9QT1JUX0lTT19QT1JUU19NQVNLKWAuIEJhc2ljYWxseSwgaXQncyBtZXNzaW5nIHdpdGggcG9ydCBpc29sYXRpb24sIGFuZCB0aGUgcGF0Y2ggYWxzbyBpbmNsdWRlcyBzb21lIGNvbW1lbnQgdXBkYXRlcy4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIFwiSXMgdGhpcyBmdXp6YWJsZT9cIlxuXG5UaGUgZmlsZSdzIGluIHRoZSBEU0EgZHJpdmVyIGRpcmVjdG9yeSwgc3BlY2lmaWNhbGx5IGZvciB0aGUgUmVhbHRlayBSVEw4MzY2UkIgc3dpdGNoLiBSaWdodCBhd2F5LCBteSBhbnRlbm5hZSBnbyB1cC4gRFNBIGRyaXZlcnMgYXJlIG5vdG9yaW91cyBmb3IgYmVpbmcgaGFyZHdhcmUtZGVwZW5kZW50LiBUaGV5IHR5cGljYWxseSB0YWxrIHRvIHRoZSBzd2l0Y2ggaGFyZHdhcmUgdmlhIEkyQyBvciBNRElPLiBDYW4gSSBldmVuICpyZWFjaCogdGhpcyB0aGluZyBpbiBhIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnQ/IERTQSBkcml2ZXJzIGFyZSBhIHBhaW4gYmVjYXVzZSB0aGV5J3JlIHNvIHRpZ2h0bHkgY291cGxlZCB3aXRoIHRoZSBoYXJkd2FyZS4gU3VyZSwgSSBjYW4gKnNvbWV0aW1lcyogaW5zdGFudGlhdGUgdGhlbSB3aXRoIGRldmljZSB0cmVlIG92ZXJsYXlzIG9yIG90aGVyIHRyaWNrcywgYnV0IHRoYXQncyBzdGlsbCBwcmV0dHkgaGFyZHdhcmUtc3BlY2lmaWMuXG5cbkdpdmVuIHRoYXQgdGhpcyBpcyBSZWFsdGVrLCBpdCdzIGxpa2VseSBhbiBJMkMgb3IgTURJTyBkZXZpY2UuIEl0IGxvb2tzIGxpa2UgdGhpcyBwYXRjaCBjb3VsZCBpbXBhY3QgcG9ydCBpc29sYXRpb24sIG1lYW5pbmcgdGhlcmUgY291bGQgYmUgaW50ZXJlc3RpbmcgY29kZSBwYXRocyB0byBwcm9iZS4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgdGhlcmUncyAqYW55KiByZWFsaXN0aWMgd2F5IHRvIGVtdWxhdGUgb3IgbW9jayB0aGlzIGhhcmR3YXJlLiBJZiBpdCdzIHB1cmUgaGFyZHdhcmUtZGVwZW5kZW50LCB3aXRob3V0IHNvbWUgc29ydCBvZiBlbXVsYXRpb24sIGEgbW9jaywgb3IgbWF5YmUgZXZlbiBhIFVTQi9QQ0kgaW50ZXJmYWNlIHRoYXQgSSAqY291bGQqIHBvdGVudGlhbGx5IHNpbXVsYXRlLCB0aGlzIGlzIGdvaW5nIHRvIGJlIGEgZGVhZCBlbmQgZm9yIGZ1enppbmcuIFRpbWUgdG8gZGlnIGRlZXBlciBpbnRvIHRoZSBkYXRhc2hlZXQgYW5kIHNlZSB3aGF0IG9wdGlvbnMgSSBoYXZlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjk0LCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mjk2LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjFUMjM6NTE6MTYuODUyMzg1MTI1WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg4NzIzODI4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInJ0bDgzNjZyYlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9kc2EvcmVhbHRlay9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA1NDAgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL01ha2VmaWxlPTEzPW9iai0kKENPTkZJR19ORVRfRFNBX1JFQUxURUtfUlRMODM2NlJCKSArPSBydGw4MzY2Lm9cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9NYWtlZmlsZToxNDpydGw4MzY2LW9ianMgXFx0XFx0XFx0XFx0Oj0gcnRsODM2Ni1jb3JlLm8gcnRsODM2NnJiLm9cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9NYWtlZmlsZS0xNS1pZmRlZiBDT05GSUdfTkVUX0RTQV9SRUFMVEVLX1JUTDgzNjZSQl9MRURTXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvTWFrZWZpbGU6MTY6cnRsODM2Ni1vYmpzIFxcdFxcdFxcdFxcdCs9IHJ0bDgzNjZyYi1sZWRzLm9cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9NYWtlZmlsZS0xNy1lbmRpZlxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcmVhbHRlay5oPTE4OD12b2lkIHJ0bDgzNjZfZ2V0X2V0aHRvb2xfc3RhdHMoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCwgdWludDY0X3QgKmRhdGEpO1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3JlYWx0ZWsuaC0xODktXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcmVhbHRlay5oOjE5MDpleHRlcm4gY29uc3Qgc3RydWN0IHJlYWx0ZWtfdmFyaWFudCBydGw4MzY2cmJfdmFyaWFudDtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9yZWFsdGVrLmgtMTkxLWV4dGVybiBjb25zdCBzdHJ1Y3QgcmVhbHRla192YXJpYW50IHJ0bDgzNjVtYl92YXJpYW50O1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYy02LSNpbmNsdWRlIFxcXCJydGw4M3h4LmhcXFwiXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYzo3OiNpbmNsdWRlIFxcXCJydGw4MzY2cmIuaFxcXCJcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jLTgtXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYzo5OnN0YXRpYyBpbmxpbmUgdTMyIHJ0bDgzNjZyYl9sZWRfZ3JvdXBfcG9ydF9tYXNrKHU4IGxlZF9ncm91cCwgdTggcG9ydClcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jLTEwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi1sZWRzLmMtMjQtXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYzoyNTpzdGF0aWMgaW50IHJiODM2NnJiX2dldF9wb3J0X2xlZChzdHJ1Y3QgcnRsODM2NnJiX2xlZCAqbGVkKVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi1sZWRzLmMtMjYte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYy00MC1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jOjQxOlxcdHJldHVybiAhISh2YWwgXFx1MDAyNiBydGw4MzY2cmJfbGVkX2dyb3VwX3BvcnRfbWFzayhsZWRfZ3JvdXAsIHBvcnRfbnVtKSk7XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYy00Mi19XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYy00My1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jOjQ0OnN0YXRpYyBpbnQgcmI4MzY2cmJfc2V0X3BvcnRfbGVkKHN0cnVjdCBydGw4MzY2cmJfbGVkICpsZWQsIGJvb2wgZW5hYmxlKVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi1sZWRzLmMtNDUte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYy01Mi1cXHRcXHRcXHRcXHQgUlRMODM2NlJCX0xFRF9YX1hfQ1RSTF9SRUcobGVkX2dyb3VwKSxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jOjUzOlxcdFxcdFxcdFxcdCBydGw4MzY2cmJfbGVkX2dyb3VwX3BvcnRfbWFzayhsZWRfZ3JvdXAsXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYy01NC1cXHRcXHRcXHRcXHRcXHRcXHRcXHQgICAgICAgcG9ydF9udW0pLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYz03NT1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYzo3NjpydGw4MzY2cmJfY2xlZF9icmlnaHRuZXNzX3NldF9ibG9ja2luZyhzdHJ1Y3QgbGVkX2NsYXNzZGV2ICpsZGV2LFxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi1sZWRzLmMtNzctXFx0XFx0XFx0XFx0ICAgICAgIGVudW0gbGVkX2JyaWdodG5lc3MgYnJpZ2h0bmVzcylcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jLTc4LXtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jOjc5OlxcdHN0cnVjdCBydGw4MzY2cmJfbGVkICpsZWQgPSBjb250YWluZXJfb2YobGRldiwgc3RydWN0IHJ0bDgzNjZyYl9sZWQsXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYy04MC1cXHRcXHRcXHRcXHRcXHRcXHQgY2Rldik7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jLTg0LVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi1sZWRzLmM6ODU6c3RhdGljIGludCBydGw4MzY2cmJfc2V0dXBfbGVkKHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYsIHN0cnVjdCBkc2FfcG9ydCAqZHAsXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYy04Ni1cXHRcXHRcXHQgICAgICAgc3RydWN0IGZ3bm9kZV9oYW5kbGUgKmxlZF9md25vZGUpXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYy04Ny17XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYzo4ODpcXHRzdHJ1Y3QgcnRsODM2NnJiICpyYiA9IHByaXYtXFx1MDAzZWNoaXBfZGF0YTtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jLTg5LVxcdHN0cnVjdCBsZWRfaW5pdF9kYXRhIGluaXRfZGF0YSA9IHsgfTtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jLTkwLVxcdGVudW0gbGVkX2RlZmF1bHRfc3RhdGUgc3RhdGU7XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYzo5MTpcXHRzdHJ1Y3QgcnRsODM2NnJiX2xlZCAqbGVkO1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi1sZWRzLmMtOTItXFx0Y2hhciBuYW1lWzY0XTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi1sZWRzLmMtMTI4LVxcdGxlZC1cXHUwMDNlY2Rldi5icmlnaHRuZXNzX3NldF9ibG9ja2luZyA9XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYzoxMjk6XFx0XFx0cnRsODM2NnJiX2NsZWRfYnJpZ2h0bmVzc19zZXRfYmxvY2tpbmc7XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLWxlZHMuYy0xMzAtXFx0aW5pdF9kYXRhLmZ3bm9kZSA9IGxlZF9md25vZGU7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jLTE0Ni1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jOjE0NzppbnQgcnRsODM2NnJiX3NldHVwX2xlZHMoc3RydWN0IHJlYWx0ZWtfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jLTE0OC17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jLTE2NS1cXHRcXHRmb3JfZWFjaF9jaGlsZF9vZl9ub2RlX3Njb3BlZChsZWRzX25wLCBsZWRfbnApIHtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmItbGVkcy5jOjE2NjpcXHRcXHRcXHRyZXQgPSBydGw4MzY2cmJfc2V0dXBfbGVkKHByaXYsIGRwLFxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi1sZWRzLmMtMTY3LVxcdFxcdFxcdFxcdFxcdFxcdCAgb2ZfZndub2RlX2hhbmRsZShsZWRfbnApKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTI5LSNpbmNsdWRlIFxcXCJydGw4M3h4LmhcXFwiXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MzA6I2luY2x1ZGUgXFxcInJ0bDgzNjZyYi5oXFxcIlxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTMxLVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMzE1LVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjMxNjpzdGF0aWMgc3RydWN0IHJ0bDgzNjZfbWliX2NvdW50ZXIgcnRsODM2NnJiX21pYl9jb3VudGVyc1tdID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTMxNy1cXHR7IDAsICAwLCA0LCBcXFwiSWZJbk9jdGV0c1xcXCJcXHRcXHRcXHRcXHR9LFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMzUxLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjM1MjpzdGF0aWMgaW50IHJ0bDgzNjZyYl9nZXRfbWliX2NvdW50ZXIoc3RydWN0IHJlYWx0ZWtfcHJpdiAqcHJpdixcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0zNTMtXFx0XFx0XFx0XFx0ICAgICBpbnQgcG9ydCxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTM5My1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzozOTQ6c3RhdGljIHUzMiBydGw4MzY2cmJfZ2V0X2lycW1hc2soc3RydWN0IGlycV9kYXRhICpkKVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTM5NS17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy00MDgtXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6NDA5OnN0YXRpYyB2b2lkIHJ0bDgzNjZyYl9tYXNrX2lycShzdHJ1Y3QgaXJxX2RhdGEgKmQpXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNDEwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTQxNC1cXHRyZXQgPSByZWdtYXBfdXBkYXRlX2JpdHMocHJpdi1cXHUwMDNlbWFwLCBSVEw4MzY2UkJfSU5URVJSVVBUX01BU0tfUkVHLFxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjQxNTpcXHRcXHRcXHRcXHQgcnRsODM2NnJiX2dldF9pcnFtYXNrKGQpLCAwKTtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy00MTYtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTQxOS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo0MjA6c3RhdGljIHZvaWQgcnRsODM2NnJiX3VubWFza19pcnEoc3RydWN0IGlycV9kYXRhICpkKVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTQyMS17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy00MjUtXFx0cmV0ID0gcmVnbWFwX3VwZGF0ZV9iaXRzKHByaXYtXFx1MDAzZW1hcCwgUlRMODM2NlJCX0lOVEVSUlVQVF9NQVNLX1JFRyxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo0MjY6XFx0XFx0XFx0XFx0IHJ0bDgzNjZyYl9nZXRfaXJxbWFzayhkKSxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo0Mjc6XFx0XFx0XFx0XFx0IHJ0bDgzNjZyYl9nZXRfaXJxbWFzayhkKSk7XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNDI4LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy00MzEtXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6NDMyOnN0YXRpYyBpcnFyZXR1cm5fdCBydGw4MzY2cmJfaXJxKGludCBpcnEsIHZvaWQgKmRhdGEpXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNDMzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTQ2My1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo0NjQ6c3RhdGljIHN0cnVjdCBpcnFfY2hpcCBydGw4MzY2cmJfaXJxX2NoaXAgPSB7XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNDY1LVxcdC5uYW1lID0gXFxcIlJUTDgzNjZSQlxcXCIsXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6NDY2OlxcdC5pcnFfbWFzayA9IHJ0bDgzNjZyYl9tYXNrX2lycSxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo0Njc6XFx0LmlycV91bm1hc2sgPSBydGw4MzY2cmJfdW5tYXNrX2lycSxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy00NjgtfTtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy00NjktXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6NDcwOnN0YXRpYyBpbnQgcnRsODM2NnJiX2lycV9tYXAoc3RydWN0IGlycV9kb21haW4gKmRvbWFpbiwgdW5zaWduZWQgaW50IGlycSxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy00NzEtXFx0XFx0XFx0ICAgICBpcnFfaHdfbnVtYmVyX3QgaHdpcnEpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy00NzMtXFx0aXJxX3NldF9jaGlwX2RhdGEoaXJxLCBkb21haW4tXFx1MDAzZWhvc3RfZGF0YSk7XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6NDc0OlxcdGlycV9zZXRfY2hpcF9hbmRfaGFuZGxlcihpcnEsIFxcdTAwMjZydGw4MzY2cmJfaXJxX2NoaXAsIGhhbmRsZV9zaW1wbGVfaXJxKTtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy00NzUtXFx0aXJxX3NldF9uZXN0ZWRfdGhyZWFkKGlycSwgMSk7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy00ODAtXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6NDgxOnN0YXRpYyB2b2lkIHJ0bDgzNjZyYl9pcnFfdW5tYXAoc3RydWN0IGlycV9kb21haW4gKmQsIHVuc2lnbmVkIGludCBpcnEpXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNDgyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTQ4Ny1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo0ODg6c3RhdGljIGNvbnN0IHN0cnVjdCBpcnFfZG9tYWluX29wcyBydGw4MzY2cmJfaXJxZG9tYWluX29wcyA9IHtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo0ODk6XFx0Lm1hcCA9IHJ0bDgzNjZyYl9pcnFfbWFwLFxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjQ5MDpcXHQudW5tYXAgPSBydGw4MzY2cmJfaXJxX3VubWFwLFxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTQ5MS1cXHQueGxhdGUgID0gaXJxX2RvbWFpbl94bGF0ZV9vbmVjZWxsLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNDkzLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjQ5NDpzdGF0aWMgaW50IHJ0bDgzNjZyYl9zZXR1cF9jYXNjYWRlZF9pcnEoc3RydWN0IHJlYWx0ZWtfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy00OTUte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNTQ2LVxcdHJldCA9IGRldm1fcmVxdWVzdF90aHJlYWRlZF9pcnEocHJpdi1cXHUwMDNlZGV2LCBpcnEsIE5VTEwsXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6NTQ3OlxcdFxcdFxcdFxcdFxcdHJ0bDgzNjZyYl9pcnEsIElSUUZfT05FU0hPVCxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy01NDgtXFx0XFx0XFx0XFx0XFx0XFxcIlJUTDgzNjZSQlxcXCIsIHByaXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNTUzLVxcdHByaXYtXFx1MDAzZWlycWRvbWFpbiA9IGlycV9kb21haW5fY3JlYXRlX2xpbmVhcihvZl9md25vZGVfaGFuZGxlKGludGMpLCBSVEw4MzY2UkJfTlVNX0lOVEVSUlVQVCxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo1NTQ6XFx0XFx0XFx0XFx0XFx0XFx0ICAgXFx1MDAyNnJ0bDgzNjZyYl9pcnFkb21haW5fb3BzLCBwcml2KTtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy01NTUtXFx0aWYgKCFwcml2LVxcdTAwM2VpcnFkb21haW4pIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTU2Ny1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo1Njg6c3RhdGljIGludCBydGw4MzY2cmJfc2V0X2FkZHIoc3RydWN0IHJlYWx0ZWtfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy01Njkte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNTk1LS8qIFN0cnVjdCBmb3IgaGFuZGxpbmcgdGhlIGphbSB0YWJsZXMnIGVudHJpZXMgKi9cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo1OTY6c3RydWN0IHJ0bDgzNjZyYl9qYW1fdGJsX2VudHJ5IHtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy01OTctXFx0dTE2IHJlZztcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTYwMS0vKiBGb3IgdGhlIFxcXCJ2ZXJzaW9uIDBcXFwiIGVhcmx5IHNpbGljb24sIGFwcGVhciBpbiBtb3N0IHNvdXJjZSByZWxlYXNlcyAqL1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjYwMjpzdGF0aWMgY29uc3Qgc3RydWN0IHJ0bDgzNjZyYl9qYW1fdGJsX2VudHJ5IHJ0bDgzNjZyYl9pbml0X2phbV92ZXJfMFtdID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTYwMy1cXHR7MHgwMDBCLCAweDAwMDF9LCB7MHgwM0E2LCAweDAxMDB9LCB7MHgwM0E3LCAweDAwMDF9LCB7MHgwMkQxLCAweDNGRkZ9LFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNjM0LS8qIFRoaXMgdjEgaW5pdCBzZXF1ZW5jZSBpcyBmcm9tIEJlbGtpbiBGNUQ4MjM1IFUtQm9vdCByZWxlYXNlICovXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6NjM1OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRsODM2NnJiX2phbV90YmxfZW50cnkgcnRsODM2NnJiX2luaXRfamFtX3Zlcl8xW10gPSB7XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNjM2LVxcdHsweDAwMDAsIDB4MDgzMH0sIHsweDAwMDEsIDB4ODAwMH0sIHsweDA0MDAsIDB4ODEzMH0sIHsweEJFNzgsIDB4M0MzQ30sXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy02NDktLyogVGhpcyB2MiBpbml0IHNlcXVlbmNlIGlzIGZyb20gQmVsa2luIEY1RDgyMzUgVS1Cb290IHJlbGVhc2UgKi9cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo2NTA6c3RhdGljIGNvbnN0IHN0cnVjdCBydGw4MzY2cmJfamFtX3RibF9lbnRyeSBydGw4MzY2cmJfaW5pdF9qYW1fdmVyXzJbXSA9IHtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy02NTEtXFx0ezB4MDQ1MCwgMHgwMDAwfSwgezB4MDQwMCwgMHg4MTMwfSwgezB4MDAwQSwgMHg4M0VEfSwgezB4MDQzMSwgMHg1NDMyfSxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTY2NC0vKiBBcHBlYXJzIGluIGEgRERXUlQgY29kZSBkdW1wICovXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6NjY1OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRsODM2NnJiX2phbV90YmxfZW50cnkgcnRsODM2NnJiX2luaXRfamFtX3Zlcl8zW10gPSB7XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNjY2LVxcdHsweDAwMDAsIDB4MDgzMH0sIHsweDA0MDAsIDB4ODEzMH0sIHsweDAwMEEsIDB4ODNFRH0sIHsweDA0MzEsIDB4NTQzMn0sXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy02ODUtLyogQmVsa2luIEY1RDgyMzUgdjEsIFxcXCJiZWxraW4sZjVkODIzNS12MVxcXCIgKi9cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo2ODY6c3RhdGljIGNvbnN0IHN0cnVjdCBydGw4MzY2cmJfamFtX3RibF9lbnRyeSBydGw4MzY2cmJfaW5pdF9qYW1fZjVkODIzNVtdID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTY4Ny1cXHR7MHgwMjQyLCAweDAyQkZ9LCB7MHgwMjQ1LCAweDAyQkZ9LCB7MHgwMjQ4LCAweDAyQkZ9LCB7MHgwMjRCLCAweDAyQkZ9LFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNjk4LS8qIERHTjM1MDAsIFxcXCJuZXRnZWFyLGRnbjM1MDBcXFwiLCBcXFwibmV0Z2VhcixkZ24zNTAwYlxcXCIgKi9cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo2OTk6c3RhdGljIGNvbnN0IHN0cnVjdCBydGw4MzY2cmJfamFtX3RibF9lbnRyeSBydGw4MzY2cmJfaW5pdF9qYW1fZGduMzUwMFtdID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTcwMC1cXHR7MHgwMDAwLCAweDA4MzB9LCB7MHgwNDAwLCAweDgxMzB9LCB7MHgwMDBBLCAweDgzRUR9LCB7MHgwRjUxLCAweDAwMTd9LFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNzA5LSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjcxMDpzdGF0aWMgY29uc3Qgc3RydWN0IHJ0bDgzNjZyYl9qYW1fdGJsX2VudHJ5IHJ0bDgzNjZyYl9ncmVlbl9qYW1bXSA9IHtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy03MTEtXFx0ezB4QkU3OCwgMHgzMjNDfSwgezB4QkU3NywgMHg1MDAwfSwgezB4QkUyRSwgMHg3QkE3fSxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTcxNi0vKiBGdW5jdGlvbiB0aGF0IGphbXMgdGhlIHRhYmxlcyBpbiB0aGUgcHJvcGVyIHJlZ2lzdGVycyAqL1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjcxNzpzdGF0aWMgaW50IHJ0bDgzNjZyYl9qYW1fdGFibGUoY29uc3Qgc3RydWN0IHJ0bDgzNjZyYl9qYW1fdGJsX2VudHJ5ICpqYW1fdGFibGUsXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNzE4LVxcdFxcdFxcdCAgICAgICBpbnQgamFtX3NpemUsIHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYz03NTQ9aW50IHJiODM2NnJiX3NldF9sZWRncm91cF9tb2RlKHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy03NzMtLyogVGhpcyBjb2RlIGlzIHVzZWQgYWxzbyB3aXRoIExFRHMgZGlzYWJsZWQgKi9cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo3NzQ6c3RhdGljIGludCBydGw4MzY2cmJfc2V0dXBfYWxsX2xlZHNfb2ZmKHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtNzc1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTc5My1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo3OTQ6c3RhdGljIGludCBydGw4MzY2cmJfcG9ydF9zZXRfaXNvbGF0aW9uKHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYsIGludCBwb3J0LFxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTc5NS1cXHRcXHRcXHRcXHRcXHR1MzIgbWFzaylcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTgwNi1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo4MDc6c3RhdGljIGludCBydGw4MzY2cmJfcG9ydF9hZGRfaXNvbGF0aW9uKHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYsIGludCBwb3J0LFxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTgwOC1cXHRcXHRcXHRcXHRcXHR1MzIgbWFzaylcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTgxNS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo4MTY6c3RhdGljIGludCBydGw4MzY2cmJfcG9ydF9yZW1vdmVfaXNvbGF0aW9uKHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYsIGludCBwb3J0LFxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTgxNy1cXHRcXHRcXHRcXHRcXHQgICB1MzIgbWFzaylcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jPTgyMz1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjgyNDpydGw4MzY2cmJfcG9ydF9zdHBfc3RhdGVfc2V0KHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsIHU4IHN0YXRlKVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTgyNS17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy04NTYtXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6ODU3OnN0YXRpYyBpbnQgcnRsODM2NnJiX3BvcnRfc2V0X2xlYXJuaW5nKHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYsIGludCBwb3J0LFxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTg1OC1cXHRcXHRcXHRcXHQgICAgICAgYm9vbCBlbmFibGUpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy04NjYtXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6ODY3OnN0YXRpYyBpbnQgcnRsODM2NnJiX3NldHVwKHN0cnVjdCBkc2Ffc3dpdGNoICpkcylcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy04Njgte1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTg2OS1cXHRzdHJ1Y3QgcmVhbHRla19wcml2ICpwcml2ID0gZHMtXFx1MDAzZXByaXY7XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6ODcwOlxcdGNvbnN0IHN0cnVjdCBydGw4MzY2cmJfamFtX3RibF9lbnRyeSAqamFtX3RhYmxlO1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTg3MS1cXHR1MzIgZG93bnBvcnRzX21hc2sgPSAwO1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjg3MjpcXHRzdHJ1Y3QgcnRsODM2NnJiICpyYjtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy04NzMtXFx0dTMyIHVwcG9ydHNfbWFzayA9IDA7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy05MDktXFx0Y2FzZSAwOlxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjkxMDpcXHRcXHRqYW1fdGFibGUgPSBydGw4MzY2cmJfaW5pdF9qYW1fdmVyXzA7XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6OTExOlxcdFxcdGphbV9zaXplID0gQVJSQVlfU0laRShydGw4MzY2cmJfaW5pdF9qYW1fdmVyXzApO1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTkxMi1cXHRcXHRicmVhaztcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy05MTMtXFx0Y2FzZSAxOlxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjkxNDpcXHRcXHRqYW1fdGFibGUgPSBydGw4MzY2cmJfaW5pdF9qYW1fdmVyXzE7XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6OTE1OlxcdFxcdGphbV9zaXplID0gQVJSQVlfU0laRShydGw4MzY2cmJfaW5pdF9qYW1fdmVyXzEpO1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTkxNi1cXHRcXHRicmVhaztcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy05MTctXFx0Y2FzZSAyOlxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjkxODpcXHRcXHRqYW1fdGFibGUgPSBydGw4MzY2cmJfaW5pdF9qYW1fdmVyXzI7XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6OTE5OlxcdFxcdGphbV9zaXplID0gQVJSQVlfU0laRShydGw4MzY2cmJfaW5pdF9qYW1fdmVyXzIpO1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTkyMC1cXHRcXHRicmVhaztcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy05MjEtXFx0ZGVmYXVsdDpcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo5MjI6XFx0XFx0amFtX3RhYmxlID0gcnRsODM2NnJiX2luaXRfamFtX3Zlcl8zO1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjkyMzpcXHRcXHRqYW1fc2l6ZSA9IEFSUkFZX1NJWkUocnRsODM2NnJiX2luaXRfamFtX3Zlcl8zKTtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy05MjQtXFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy05MzEtXFx0aWYgKG9mX21hY2hpbmVfaXNfY29tcGF0aWJsZShcXFwiYmVsa2luLGY1ZDgyMzUtdjFcXFwiKSkge1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjkzMjpcXHRcXHRqYW1fdGFibGUgPSBydGw4MzY2cmJfaW5pdF9qYW1fZjVkODIzNTtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo5MzM6XFx0XFx0amFtX3NpemUgPSBBUlJBWV9TSVpFKHJ0bDgzNjZyYl9pbml0X2phbV9mNWQ4MjM1KTtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy05MzQtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtOTM2LVxcdCAgICBvZl9tYWNoaW5lX2lzX2NvbXBhdGlibGUoXFxcIm5ldGdlYXIsZGduMzUwMGJcXFwiKSkge1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjkzNzpcXHRcXHRqYW1fdGFibGUgPSBydGw4MzY2cmJfaW5pdF9qYW1fZGduMzUwMDtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo5Mzg6XFx0XFx0amFtX3NpemUgPSBBUlJBWV9TSVpFKHJ0bDgzNjZyYl9pbml0X2phbV9kZ24zNTAwKTtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy05MzktXFx0fVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTk0MC1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo5NDE6XFx0cmV0ID0gcnRsODM2NnJiX2phbV90YWJsZShqYW1fdGFibGUsIGphbV9zaXplLCBwcml2LCB0cnVlKTtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy05NDItXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTk1MC1cXHRcXHQgKi9cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo5NTE6XFx0XFx0cnRsODM2NnJiX3BvcnRfc3RwX3N0YXRlX3NldChkcywgZHAtXFx1MDAzZWluZGV4LCBCUl9TVEFURV9ESVNBQkxFRCk7XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtOTUyLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTk1My1cXHRcXHQvKiBTdGFydCB3aXRoIGFsbCBwb3J0cyBjb21wbGV0ZWx5IGlzb2xhdGVkICovXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6OTU0OlxcdFxcdHJldCA9IHJ0bDgzNjZyYl9wb3J0X3NldF9pc29sYXRpb24ocHJpdiwgZHAtXFx1MDAzZWluZGV4LFxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTk1NS1cXHRcXHRcXHRcXHRcXHRcXHQgICBSVEw4MzY2UkJfUE9SVF9JU09fUE9SVFNfTUFTSyk7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy05NTktXFx0XFx0LyogRGlzYWJsZSBsZWFybmluZyAqL1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjk2MDpcXHRcXHRyZXQgPSBydGw4MzY2cmJfcG9ydF9zZXRfbGVhcm5pbmcocHJpdiwgZHAtXFx1MDAzZWluZGV4LCBmYWxzZSk7XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtOTYxLVxcdFxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy05NzgtXFx0XFx0LyogRm9yd2FyZCBvbmx5IHRvIHRoZSBDUFUsIGlzb2xhdGUgZnJvbSBhbGwgb3RoZXIgcG9ydHMgKi9cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzo5Nzk6XFx0XFx0cmV0ID0gcnRsODM2NnJiX3BvcnRfc2V0X2lzb2xhdGlvbihwcml2LCBkcC1cXHUwMDNlaW5kZXgsIHVwcG9ydHNfbWFzayk7XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtOTgwLVxcdFxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy05OTMtXFx0XFx0LyogRm9yd2FyZCB0byBhbGwgdXNlciBwb3J0cyAqL1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjk5NDpcXHRcXHRyZXQgPSBydGw4MzY2cmJfcG9ydF9zZXRfaXNvbGF0aW9uKHByaXYsIGRwLVxcdTAwM2VpbmRleCwgZG93bnBvcnRzX21hc2spO1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTk5NS1cXHRcXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtOTk5LVxcdC8qIFNldCB1cCB0aGUgXFxcImdyZWVuIGV0aGVybmV0XFxcIiBmZWF0dXJlICovXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTAwMDpcXHRyZXQgPSBydGw4MzY2cmJfamFtX3RhYmxlKHJ0bDgzNjZyYl9ncmVlbl9qYW0sXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTAwMTpcXHRcXHRcXHRcXHQgIEFSUkFZX1NJWkUocnRsODM2NnJiX2dyZWVuX2phbSksIHByaXYsIGZhbHNlKTtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMDAyLVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMDE5LVxcdC8qIFNldCBzb21lIHJhbmRvbSBNQUMgYWRkcmVzcyAqL1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjEwMjA6XFx0cmV0ID0gcnRsODM2NnJiX3NldF9hZGRyKHByaXYpO1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTEwMjEtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTExMDUtXFx0aWYgKHByaXYtXFx1MDAzZWxlZHNfZGlzYWJsZWQpIHtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxMTA2OlxcdFxcdHJldCA9IHJ0bDgzNjZyYl9zZXR1cF9hbGxfbGVkc19vZmYocHJpdik7XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTEwNy1cXHRcXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTEwOS1cXHR9IGVsc2Uge1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjExMTA6XFx0XFx0cmV0ID0gcnRsODM2NnJiX3NldHVwX2xlZHMocHJpdik7XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTExMS1cXHRcXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTExOC1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxMTE5OlxcdHJldCA9IHJ0bDgzNjZyYl9zZXR1cF9jYXNjYWRlZF9pcnEocHJpdik7XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTEyMC1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM9MTEzMj1zdGF0aWMgZW51bSBkc2FfdGFnX3Byb3RvY29sIHJ0bDgzNjZfZ2V0X3RhZ19wcm90b2NvbChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMTM5LVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjExNDA6c3RhdGljIHZvaWQgcnRsODM2NnJiX3BoeWxpbmtfZ2V0X2NhcHMoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMTQxLVxcdFxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgcGh5bGlua19jb25maWcgKmNvbmZpZylcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jPTExNjY9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxMTY3OnJ0bDgzNjZyYl9tYWNfY29uZmlnKHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnLCB1bnNpZ25lZCBpbnQgbW9kZSxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMTY4LVxcdFxcdCAgICAgY29uc3Qgc3RydWN0IHBoeWxpbmtfbGlua19zdGF0ZSAqc3RhdGUpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYz0xMTcyPXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTE3MzpydGw4MzY2cmJfbWFjX2xpbmtfdXAoc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcsIHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYsXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTE3NC1cXHRcXHQgICAgICB1bnNpZ25lZCBpbnQgbW9kZSwgcGh5X2ludGVyZmFjZV90IGludGVyZmFjZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jPTEyNDQ9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxMjQ1OnJ0bDgzNjZyYl9tYWNfbGlua19kb3duKHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnLCB1bnNpZ25lZCBpbnQgbW9kZSxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMjQ2LVxcdFxcdFxcdHBoeV9pbnRlcmZhY2VfdCBpbnRlcmZhY2UpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYz0xMjY3PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxMjY4OnJ0bDgzNjZyYl9wb3J0X2VuYWJsZShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LFxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTEyNjktXFx0XFx0ICAgICAgc3RydWN0IHBoeV9kZXZpY2UgKnBoeSlcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jPTEyODM9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxMjg0OnJ0bDgzNjZyYl9wb3J0X2Rpc2FibGUoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydClcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMjg1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTEyOTYtLyoqXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTI5NzogKiBydGw4MzY2cmJfZHJvcF91bnRhZ2dlZCgpIC0gbWFrZSB0aGUgc3dpdGNoIGRyb3AgdW50YWdnZWQgYW5kIEMtdGFnZ2VkIGZyYW1lc1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTEyOTgtICogQHByaXY6IFNNSSBzdGF0ZSBjb250YWluZXJcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTEzMDMtICovXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTMwNDpzdGF0aWMgaW50IHJ0bDgzNjZyYl9kcm9wX3VudGFnZ2VkKHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYsIGludCBwb3J0LCBib29sIGRyb3ApXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTMwNS17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMzEwLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjEzMTE6c3RhdGljIGludCBydGw4MzY2cmJfdmxhbl9maWx0ZXJpbmcoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMzEyLVxcdFxcdFxcdFxcdCAgICBib29sIHZsYW5fZmlsdGVyaW5nLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTMxNS1cXHRzdHJ1Y3QgcmVhbHRla19wcml2ICpwcml2ID0gZHMtXFx1MDAzZXByaXY7XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTMxNjpcXHRzdHJ1Y3QgcnRsODM2NnJiICpyYjtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMzE3LVxcdGludCByZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMzM0LVxcdGlmICh2bGFuX2ZpbHRlcmluZylcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxMzM1OlxcdFxcdHJldCA9IHJ0bDgzNjZyYl9kcm9wX3VudGFnZ2VkKHByaXYsIHBvcnQsICFyYi1cXHUwMDNlcHZpZF9lbmFibGVkW3BvcnRdKTtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMzM2LVxcdGVsc2VcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxMzM3OlxcdFxcdHJldCA9IHJ0bDgzNjZyYl9kcm9wX3VudGFnZ2VkKHByaXYsIHBvcnQsIGZhbHNlKTtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMzM4LVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM9MTM0Mj1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTM0MzpydGw4MzY2cmJfcG9ydF9wcmVfYnJpZGdlX2ZsYWdzKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTM0NC1cXHRcXHRcXHRcXHRzdHJ1Y3Qgc3dpdGNoZGV2X2JycG9ydF9mbGFncyBmbGFncyxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jPTEzNTQ9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxMzU1OnJ0bDgzNjZyYl9wb3J0X2Zhc3RfYWdlKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQpXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTM1Ni17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMzY2LVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjEzNjc6c3RhdGljIGludCBydGw4MzY2cmJfY2hhbmdlX210dShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LCBpbnQgbmV3X210dSlcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMzY4LXtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xMzY5LVxcdHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYgPSBkcy1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxMzcwOlxcdHN0cnVjdCBydGw4MzY2cmIgKnJiO1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTEzNzEtXFx0dW5zaWduZWQgaW50IG1heF9tdHU7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xNDEzLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE0MTQ6c3RhdGljIGludCBydGw4MzY2cmJfbWF4X210dShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0KVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE0MTUte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTQyMy1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxNDI0OnN0YXRpYyBpbnQgcnRsODM2NnJiX2dldF92bGFuXzRrKHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYsIHUzMiB2aWQsXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTQyNS1cXHRcXHRcXHRcXHQgc3RydWN0IHJ0bDgzNjZfdmxhbl80ayAqdmxhbjRrKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTQ2NC1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxNDY1OnN0YXRpYyBpbnQgcnRsODM2NnJiX3NldF92bGFuXzRrKHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYsXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTQ2Ni1cXHRcXHRcXHRcXHQgY29uc3Qgc3RydWN0IHJ0bDgzNjZfdmxhbl80ayAqdmxhbjRrKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTQ5OC1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxNDk5OnN0YXRpYyBpbnQgcnRsODM2NnJiX2dldF92bGFuX21jKHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYsIHUzMiBpbmRleCxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xNTAwLVxcdFxcdFxcdFxcdCBzdHJ1Y3QgcnRsODM2Nl92bGFuX21jICp2bGFubWMpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xNTI5LVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE1MzA6c3RhdGljIGludCBydGw4MzY2cmJfc2V0X3ZsYW5fbWMoc3RydWN0IHJlYWx0ZWtfcHJpdiAqcHJpdiwgdTMyIGluZGV4LFxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE1MzEtXFx0XFx0XFx0XFx0IGNvbnN0IHN0cnVjdCBydGw4MzY2X3ZsYW5fbWMgKnZsYW5tYylcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE1NjMtXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTU2NDpzdGF0aWMgaW50IHJ0bDgzNjZyYl9nZXRfbWNfaW5kZXgoc3RydWN0IHJlYWx0ZWtfcHJpdiAqcHJpdiwgaW50IHBvcnQsIGludCAqdmFsKVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE1NjUte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTU4Mi1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxNTgzOnN0YXRpYyBpbnQgcnRsODM2NnJiX3NldF9tY19pbmRleChzdHJ1Y3QgcmVhbHRla19wcml2ICpwcml2LCBpbnQgcG9ydCwgaW50IGluZGV4KVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE1ODQte1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE1ODUtXFx0c3RydWN0IGRzYV9zd2l0Y2ggKmRzID0gXFx1MDAyNnByaXYtXFx1MDAzZWRzO1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE1ODY6XFx0c3RydWN0IHJ0bDgzNjZyYiAqcmI7XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTU4Ny1cXHRib29sIHB2aWRfZW5hYmxlZDtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE2MTAtXFx0aWYgKGRzYV9wb3J0X2lzX3ZsYW5fZmlsdGVyaW5nKGRzYV90b19wb3J0KGRzLCBwb3J0KSkpXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTYxMTpcXHRcXHRyZXQgPSBydGw4MzY2cmJfZHJvcF91bnRhZ2dlZChwcml2LCBwb3J0LCAhcHZpZF9lbmFibGVkKTtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xNjEyLVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTYxNS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxNjE2OnN0YXRpYyBib29sIHJ0bDgzNjZyYl9pc192bGFuX3ZhbGlkKHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYsIHVuc2lnbmVkIGludCB2bGFuKVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE2MTcte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTYyOC1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxNjI5OnN0YXRpYyBpbnQgcnRsODM2NnJiX2VuYWJsZV92bGFuKHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYsIGJvb2wgZW5hYmxlKVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE2MzAte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTYzNi1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxNjM3OnN0YXRpYyBpbnQgcnRsODM2NnJiX2VuYWJsZV92bGFuNGsoc3RydWN0IHJlYWx0ZWtfcHJpdiAqcHJpdiwgYm9vbCBlbmFibGUpXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTYzOC17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xNjQ0LVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE2NDU6c3RhdGljIGludCBydGw4MzY2cmJfcGh5X3JlYWQoc3RydWN0IHJlYWx0ZWtfcHJpdiAqcHJpdiwgaW50IHBoeSwgaW50IHJlZ251bSlcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xNjQ2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE2ODYtXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTY4NzpzdGF0aWMgaW50IHJ0bDgzNjZyYl9waHlfd3JpdGUoc3RydWN0IHJlYWx0ZWtfcHJpdiAqcHJpdiwgaW50IHBoeSwgaW50IHJlZ251bSxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xNjg4LVxcdFxcdFxcdCAgICAgICB1MTYgdmFsKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTcxNy1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxNzE4OnN0YXRpYyBpbnQgcnRsODM2NnJiX3Jlc2V0X2NoaXAoc3RydWN0IHJlYWx0ZWtfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xNzE5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE3NDMtXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTc0NDpzdGF0aWMgaW50IHJ0bDgzNjZyYl9kZXRlY3Qoc3RydWN0IHJlYWx0ZWtfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xNzQ1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE3NjYtXFx0XFx0cHJpdi1cXHUwMDNlbnVtX3ZsYW5fbWMgPSBSVEw4MzY2UkJfTlVNX1ZMQU5TO1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE3Njc6XFx0XFx0cHJpdi1cXHUwMDNlbWliX2NvdW50ZXJzID0gcnRsODM2NnJiX21pYl9jb3VudGVycztcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxNzY4OlxcdFxcdHByaXYtXFx1MDAzZW51bV9taWJfY291bnRlcnMgPSBBUlJBWV9TSVpFKHJ0bDgzNjZyYl9taWJfY291bnRlcnMpO1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE3NjktXFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xNzc1LVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE3NzY6XFx0cmV0ID0gcnRsODM2NnJiX3Jlc2V0X2NoaXAocHJpdik7XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTc3Ny1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTc4Mi1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxNzgzOnN0YXRpYyBjb25zdCBzdHJ1Y3QgcGh5bGlua19tYWNfb3BzIHJ0bDgzNjZyYl9waHlsaW5rX21hY19vcHMgPSB7XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTc4NDpcXHQubWFjX2NvbmZpZyA9IHJ0bDgzNjZyYl9tYWNfY29uZmlnLFxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE3ODU6XFx0Lm1hY19saW5rX2Rvd24gPSBydGw4MzY2cmJfbWFjX2xpbmtfZG93bixcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxNzg2OlxcdC5tYWNfbGlua191cCA9IHJ0bDgzNjZyYl9tYWNfbGlua191cCxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xNzg3LX07XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTc4OC1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxNzg5OnN0YXRpYyBjb25zdCBzdHJ1Y3QgZHNhX3N3aXRjaF9vcHMgcnRsODM2NnJiX3N3aXRjaF9vcHMgPSB7XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTc5MC1cXHQuZ2V0X3RhZ19wcm90b2NvbCA9IHJ0bDgzNjZfZ2V0X3RhZ19wcm90b2NvbCxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxNzkxOlxcdC5zZXR1cCA9IHJ0bDgzNjZyYl9zZXR1cCxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxNzkyOlxcdC5waHlsaW5rX2dldF9jYXBzID0gcnRsODM2NnJiX3BoeWxpbmtfZ2V0X2NhcHMsXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTc5My1cXHQuZ2V0X3N0cmluZ3MgPSBydGw4MzY2X2dldF9zdHJpbmdzLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTc5Ny1cXHQucG9ydF9icmlkZ2VfbGVhdmUgPSBydGw4M3h4X3BvcnRfYnJpZGdlX2xlYXZlLFxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE3OTg6XFx0LnBvcnRfdmxhbl9maWx0ZXJpbmcgPSBydGw4MzY2cmJfdmxhbl9maWx0ZXJpbmcsXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTc5OS1cXHQucG9ydF92bGFuX2FkZCA9IHJ0bDgzNjZfdmxhbl9hZGQsXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTgwMC1cXHQucG9ydF92bGFuX2RlbCA9IHJ0bDgzNjZfdmxhbl9kZWwsXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTgwMTpcXHQucG9ydF9lbmFibGUgPSBydGw4MzY2cmJfcG9ydF9lbmFibGUsXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTgwMjpcXHQucG9ydF9kaXNhYmxlID0gcnRsODM2NnJiX3BvcnRfZGlzYWJsZSxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODAzOlxcdC5wb3J0X3ByZV9icmlkZ2VfZmxhZ3MgPSBydGw4MzY2cmJfcG9ydF9wcmVfYnJpZGdlX2ZsYWdzLFxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE4MDQtXFx0LnBvcnRfYnJpZGdlX2ZsYWdzID0gcnRsODN4eF9wb3J0X2JyaWRnZV9mbGFncyxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODA1OlxcdC5wb3J0X3N0cF9zdGF0ZV9zZXQgPSBydGw4MzY2cmJfcG9ydF9zdHBfc3RhdGVfc2V0LFxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4MDY6XFx0LnBvcnRfZmFzdF9hZ2UgPSBydGw4MzY2cmJfcG9ydF9mYXN0X2FnZSxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODA3OlxcdC5wb3J0X2NoYW5nZV9tdHUgPSBydGw4MzY2cmJfY2hhbmdlX210dSxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODA4OlxcdC5wb3J0X21heF9tdHUgPSBydGw4MzY2cmJfbWF4X210dSxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xODA5LVxcdC5wb3J0X2hzcl9qb2luID0gZHNhX3BvcnRfc2ltcGxlX2hzcl9qb2luLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTgxMi1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODEzOnN0YXRpYyBjb25zdCBzdHJ1Y3QgcmVhbHRla19vcHMgcnRsODM2NnJiX29wcyA9IHtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODE0OlxcdC5kZXRlY3RcXHRcXHQ9IHJ0bDgzNjZyYl9kZXRlY3QsXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTgxNTpcXHQuZ2V0X3ZsYW5fbWNcXHQ9IHJ0bDgzNjZyYl9nZXRfdmxhbl9tYyxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODE2OlxcdC5zZXRfdmxhbl9tY1xcdD0gcnRsODM2NnJiX3NldF92bGFuX21jLFxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4MTc6XFx0LmdldF92bGFuXzRrXFx0PSBydGw4MzY2cmJfZ2V0X3ZsYW5fNGssXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTgxODpcXHQuc2V0X3ZsYW5fNGtcXHQ9IHJ0bDgzNjZyYl9zZXRfdmxhbl80ayxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODE5OlxcdC5nZXRfbWNfaW5kZXhcXHQ9IHJ0bDgzNjZyYl9nZXRfbWNfaW5kZXgsXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTgyMDpcXHQuc2V0X21jX2luZGV4XFx0PSBydGw4MzY2cmJfc2V0X21jX2luZGV4LFxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4MjE6XFx0LmdldF9taWJfY291bnRlciA9IHJ0bDgzNjZyYl9nZXRfbWliX2NvdW50ZXIsXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTgyMjpcXHQuaXNfdmxhbl92YWxpZFxcdD0gcnRsODM2NnJiX2lzX3ZsYW5fdmFsaWQsXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTgyMzpcXHQuZW5hYmxlX3ZsYW5cXHQ9IHJ0bDgzNjZyYl9lbmFibGVfdmxhbixcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODI0OlxcdC5lbmFibGVfdmxhbjRrXFx0PSBydGw4MzY2cmJfZW5hYmxlX3ZsYW40ayxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODI1OlxcdC5wb3J0X2FkZF9pc29sYXRpb24gPSBydGw4MzY2cmJfcG9ydF9hZGRfaXNvbGF0aW9uLFxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4MjY6XFx0LnBvcnRfcmVtb3ZlX2lzb2xhdGlvbiA9IHJ0bDgzNjZyYl9wb3J0X3JlbW92ZV9pc29sYXRpb24sXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTgyNzpcXHQucG9ydF9zZXRfbGVhcm5pbmcgPSBydGw4MzY2cmJfcG9ydF9zZXRfbGVhcm5pbmcsXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTgyODpcXHQucGh5X3JlYWRcXHQ9IHJ0bDgzNjZyYl9waHlfcmVhZCxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODI5OlxcdC5waHlfd3JpdGVcXHQ9IHJ0bDgzNjZyYl9waHlfd3JpdGUsXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTgzMC19O1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE4MzEtXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTgzMjpjb25zdCBzdHJ1Y3QgcmVhbHRla192YXJpYW50IHJ0bDgzNjZyYl92YXJpYW50ID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4MzM6XFx0LmRzX29wcyA9IFxcdTAwMjZydGw4MzY2cmJfc3dpdGNoX29wcyxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODM0OlxcdC5vcHMgPSBcXHUwMDI2cnRsODM2NnJiX29wcyxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODM1OlxcdC5waHlsaW5rX21hY19vcHMgPSBcXHUwMDI2cnRsODM2NnJiX3BoeWxpbmtfbWFjX29wcyxcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xODM2LVxcdC5jbGtfZGVsYXkgPSAxMCxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE4MzgtXFx0LmNtZF93cml0ZSA9IDB4YTgsXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTgzOTpcXHQuY2hpcF9kYXRhX3N6ID0gc2l6ZW9mKHN0cnVjdCBydGw4MzY2cmIpLFxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE4NDAtfTtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xODQxLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4NDI6c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgcnRsODM2NnJiX29mX21hdGNoW10gPSB7XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTg0MzpcXHR7IC5jb21wYXRpYmxlID0gXFxcInJlYWx0ZWsscnRsODM2NnJiXFxcIiwgLmRhdGEgPSBcXHUwMDI2cnRsODM2NnJiX3ZhcmlhbnQsIH0sXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTg0NC1cXHR7IC8qIHNlbnRpbmVsICovIH0sXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTg0NS19O1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4NDY6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgcnRsODM2NnJiX29mX21hdGNoKTtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xODQ3LVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4NDg6c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgcnRsODM2NnJiX3NtaV9kcml2ZXIgPSB7XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTg0OS1cXHQuZHJpdmVyID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4NTA6XFx0XFx0Lm5hbWUgPSBcXFwicnRsODM2NnJiLXNtaVxcXCIsXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTg1MTpcXHRcXHQub2ZfbWF0Y2hfdGFibGUgPSBydGw4MzY2cmJfb2ZfbWF0Y2gsXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTg1Mi1cXHR9LFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTg1Ny1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYzoxODU4OnN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgcnRsODM2NnJiX21kaW9fZHJpdmVyID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE4NTktXFx0Lm1kaW9kcnYuZHJpdmVyID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4NjA6XFx0XFx0Lm5hbWUgPSBcXFwicnRsODM2NnJiLW1kaW9cXFwiLFxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4NjE6XFx0XFx0Lm9mX21hdGNoX3RhYmxlID0gcnRsODM2NnJiX29mX21hdGNoLFxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE4NjItXFx0fSxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jLTE4NjctXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmM6MTg2ODpzdGF0aWMgaW50IHJ0bDgzNjZyYl9pbml0KHZvaWQpXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NnJiLmMtMTg2OS17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xODcxLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4NzI6XFx0cmV0ID0gcmVhbHRla19tZGlvX2RyaXZlcl9yZWdpc3RlcihcXHUwMDI2cnRsODM2NnJiX21kaW9fZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xODczLVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY2cmIuYy0xODc1LVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjZyYi5jOjE4NzY6XFx0cmV0ID0gcmVhbHRla19zbWlfZHJpdmVyX3JlZ2lzdGVyKFxcdTAwMjZydGw4MzY2cmJfc21pX2RyaXZlcik7XFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIxVDIzOjUxOjE2Ljk0MTExMzc3M1oiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjg5NDg2Mzg2NjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqVW5mdXp6YWJsZSBIYXJkd2FyZSBEZXBlbmRlbmN5KipcblxuT2theSwgc28gbG9va2luZyBhdCB0aGlzIGNvZGUsIG15IGluaXRpYWwgYXNzZXNzbWVudCBpcyB0aGF0IHRoaXMgaXMgYSBkZWFkIGVuZCBmb3IgZnV6emluZy4gVGhlIGRyaXZlciwgYHJlYWx0ZWtfbWRpb19kcml2ZXJfcmVnaXN0ZXJgIGFuZCBgcmVhbHRla19zbWlfZHJpdmVyX3JlZ2lzdGVyYCwgcmVnaXN0ZXJzIGl0c2VsZiB0byBoYW5kbGUgc3BlY2lmaWMgaGFyZHdhcmUsIHNwZWNpZmljYWxseSBkZXZpY2VzIHRoYXQgYXJlIGRlc2NyaWJlZCB3aXRoIGByZWFsdGVrLHJ0bDgzNjZyYmAgaW4gdGhlIGRldmljZSB0cmVlLiBUaGlzIGltbWVkaWF0ZWx5IGZsYWdzIGl0IGFzIGhhcmR3YXJlLXNwZWNpZmljLiBXZSdyZSBkZWFsaW5nIHdpdGggYW4gTURJTy9TTUkgY29ubmVjdGVkIHN3aXRjaC4gVGhhdCBtZWFucyBpdCBuZWVkcyBhY3R1YWwgaGFyZHdhcmUgdG8gZnVuY3Rpb24sIGFuZCBpdCB3b24ndCBiZSByZWFjaGFibGUgaW4gYW55IHN0YW5kYXJkIHZpcnR1YWxpemVkIHNldHVwIGxpa2UgUUVNVSBvciBHQ0UgdW5sZXNzIHRoZXJlJ3Mgc29tZSB2ZXJ5IHNwZWNpYWxpemVkIGVtdWxhdG9yIGZvciAqdGhpcyogcGFydGljdWxhciBSZWFsdGVrIGNoaXAsIHdoaWNoIGlzIHVubGlrZWx5LlxuXG5KdXN0IHRvIGJlIHRob3JvdWdoLCBJJ20gY2hlY2tpbmcgaWYgdGhlcmUncyBhbnkgc29mdHdhcmUgd29ya2Fyb3VuZCwgYnV0IGV2ZW4gaWYgdGhlcmUgYXJlIHNvZnR3YXJlIE1ESU8gYnVzZXMsIHRoZXkgc3RpbGwgZGVwZW5kIG9uIHRoZSB1bmRlcmx5aW5nIGhhcmR3YXJlIHJlc3BvbmRpbmcgdG8gcmVhZCBhbmQgd3JpdGUgY29tbWFuZHMuIFRoZSBgcnRsODM2NnJiX2RldGVjdGAgZnVuY3Rpb24gaXMgdGhlIHRlbGwtdGFsZSBzaWduLiBJdCB0cmllcyB0byByZWFkIGEgY2hpcCBJRCByZWdpc3RlcjpcblxuYGBgY1xuc3RhdGljIGludCBydGw4MzY2cmJfZGV0ZWN0KHN0cnVjdCByZWFsdGVrX3ByaXYgKnByaXYpXG57XG4gICAgLi4uXG4gICAgcmV0ID0gcmVnbWFwX3JlYWQocHJpdi1cdTAwM2VtYXAsIFJUTDgzNjZSQl9DSElQX0lEX1JFRywgXHUwMDI2dmFsKTtcbiAgICBpZiAocmV0KSB7XG4gICAgICAgIGRldl9lcnIocHJpdi1cdTAwM2VkZXYsIFwiZmFpbGVkIHRvIHJlYWQgY2hpcCBpZFxcblwiKTtcbiAgICAgICAgcmV0dXJuIHJldDtcbiAgICB9XG4gICAgaWYgKHZhbCAhPSBSVEw4MzY2UkJfQ0hJUF9JRF84MzY2KSB7XG4gICAgICAgIGRldl9lcnIocHJpdi1cdTAwM2VkZXYsIFwiY2hpcCBpZCAlMDR4ICE9ICUwNHhcXG5cIiwgdmFsLCBSVEw4MzY2UkJfQ0hJUF9JRF84MzY2KTtcbiAgICAgICAgcmV0dXJuIC1FTk9ERVY7XG4gICAgfVxuICAgIC4uLlxufVxuYGBgXG5cblRoZSBwcm9iZSBmdW5jdGlvbiB3aWxsICppbW1lZGlhdGVseSogZmFpbCwgcmV0dXJuaW5nIGAtRU5PREVWYCwgaWYgdGhlIGNoaXAgSUQgZG9lc24ndCBtYXRjaCBgUlRMODM2NlJCX0NISVBfSURfODM2NmAuIFRoZXJlJ3Mgbm8gd2F5IGFyb3VuZCBpdCB3aXRob3V0IHRoZSBwaHlzaWNhbCBoYXJkd2FyZSwgb3IgYW4gYWNjdXJhdGUgZW11bGF0b3IuIEFuZCBJIGtub3cgUUVNVSBkb2Vzbid0IGVtdWxhdGUgdGhpcyBwYXJ0aWN1bGFyIGNoaXAuXG5cblNvLCBnaXZlbiB0aGF0IHRoZSBwYXRjaCB0YXJnZXRzIGEgaGFyZHdhcmUtc3BlY2lmaWMgRFNBIHN3aXRjaCBkcml2ZXIsIHdpdGggY29tbXVuaWNhdGlvbiB0aHJvdWdoIE1ESU8vU01JLCB3aGljaCBmdXJ0aGVyIHJlcXVpcmVzIGEgc3BlY2lmaWMgY2hpcCBJRCBjaGVjaywgYW5kIHRoZSB0YXJnZXQgaGFyZHdhcmUgaXMgbm90IGVtdWxhdGVkIGluIGNvbW1vbmx5IGF2YWlsYWJsZSB2aXJ0dWFsaXphdGlvbiBwbGF0Zm9ybXMsIEknbSBnb2luZyB0byBzZXQgYFdvcnRoRnV6emluZ2AgdG8gYGZhbHNlYC4gVGltZSB0byBjYWxsIGBzZXQtcmVzdWx0c2AuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE4OTA2LCJPdXRwdXRUb2tlbnMiOjEwNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ5MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yMVQyMzo1MToyNS44ODk3NTQ4NjhaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUwMTYwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGEgaGFyZHdhcmUtc3BlY2lmaWMgRFNBIHN3aXRjaCBkcml2ZXIgKFJlYWx0ZWsgUlRMODM2NlJCKSB3aGljaCBjb21tdW5pY2F0ZXMgdmlhIE1ESU8vU01JLiBUaGlzIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSwgYW5kIHRoZSBkcml2ZXIgZXhwbGljaXRseSBjaGVja3MgZm9yIGEgc3BlY2lmaWMgaGFyZHdhcmUgY2hpcCBJRCBkdXJpbmcgcHJvYmUuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgdW5yZWFjaGFibGUgYW5kIGNhbm5vdCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBhIGhhcmR3YXJlLXNwZWNpZmljIERTQSBzd2l0Y2ggZHJpdmVyIChSZWFsdGVrIFJUTDgzNjZSQikgd2hpY2ggY29tbXVuaWNhdGVzIHZpYSBNRElPL1NNSS4gVGhpcyBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UsIGFuZCB0aGUgZHJpdmVyIGV4cGxpY2l0bHkgY2hlY2tzIGZvciBhIHNwZWNpZmljIGhhcmR3YXJlIGNoaXAgSUQgZHVyaW5nIHByb2JlLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIGlzIHVucmVhY2hhYmxlIGFuZCBjYW5ub3QgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowcdmdt[1] Phase: Running StartedAt: 2026-07-21 23:51:37 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcdmdt[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-07-21 23:51:37 +0000 UTC FinishedAt: 2026-07-21 23:51:44 +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,}