Name: series-workflowztnwq Phase: Failed StartedAt: 2026-06-30 18:03:30 +0000 UTC FinishedAt: 2026-06-30 18:13:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflowztnwq[0] Phase: Succeeded StartedAt: 2026-06-30 18:03:30 +0000 UTC FinishedAt: 2026-06-30 18:13:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowztnwq[0].run-triage Phase: Succeeded StartedAt: 2026-06-30 18:03:30 +0000 UTC FinishedAt: 2026-06-30 18:13:13 +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+CgkJCTx0ZD4yMDI2LzA2LzMwIDE4OjExPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWxsYW5veCBtbHg1IGhhcmR3YXJlIGRyaXZlciwgc3BlY2lmaWNhbGx5IGRlZXAgbG9naWMgcmVsYXRlZCB0byBUQyBmbG93cywgTGluayBBZ2dyZWdhdGlvbiAoTEFHKSwgYW5kIE11bHRpLVBvcnQgRS1Td2l0Y2ggKE1QRVNXKS4gU2luY2UgbWx4NSByZXF1aXJlcyBwaHlzaWNhbCBNZWxsYW5veCBoYXJkd2FyZSBhbmQgdGhlcmUgaXMgbm8gc29mdHdhcmUgZW11bGF0b3IgZm9yIGl0IGluIHRoZSBrZXJuZWwsIHRoZXNlIGNvZGUgcGF0aHMgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDE4OjExPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgYWIyZDg5ZmFhYWY2NzZiNDk5NDYyYWFlNDIwNzg3YzQzYzQwMzIwZlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgSnVuIDMwIDE4OjExOjE3IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90Yy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3RjLmNcbmluZGV4IDkxMDQ5MmViNTFmMjc2Li4xYmM3YjkwMTkxMjRhNCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90Yy5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdGMuY1xuQEAgLTU1NDcsNiAmIzQzOzU1NDcsOSBAQCB2b2lkIG1seDVlX3RjX2NsZWFuX2ZkYl9wZWVyX2Zsb3dzKHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdylcbiBcbiBcdG1seDVfZGV2Y29tX2Zvcl9lYWNoX3BlZXJfZW50cnkoZGV2Y29tLCBwZWVyX2VzdywgcG9zKSB7XG4gXHRcdGkgPSBtbHg1X2xhZ19nZXRfZGV2X3NlcShwZWVyX2Vzdy1cdTAwM2VkZXYpO1xuJiM0MztcdFx0aWYgKGkgXHUwMDNjIDApXG4mIzQzO1x0XHRcdGNvbnRpbnVlO1xuJiM0MztcbiBcdFx0bGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGZsb3csIHRtcCwgXHUwMDI2ZXN3LVx1MDAzZW9mZmxvYWRzLnBlZXJfZmxvd3NbaV0sIHBlZXJbaV0pXG4gXHRcdFx0bWx4NWVfdGNfZGVsX2ZkYl9wZWVyc19mbG93KGZsb3cpO1xuIFx0fVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvbXBlc3cuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvbXBlc3cuY1xuaW5kZXggNTBiZmI0NTBjNzFlMmYuLmFiZjcyMDI2Yzc1MTMzIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9tcGVzdy5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL21wZXN3LmNcbkBAIC0xOTQsOCAmIzQzOzE5NCwxMCBAQCBzdGF0aWMgdm9pZCBtbHg1X21wZXN3X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuIFx0c3RydWN0IG1seDVfbGFnICpsZGV2ID0gbXBlc3d3LVx1MDAzZWxhZztcbiBcbiBcdGRldmNvbSA9IG1seDVfbGFnX2dldF9kZXZjb21fY29tcChsZGV2KTtcbi1cdGlmICghZGV2Y29tKVxuLVx0XHRyZXR1cm47XG4mIzQzO1x0aWYgKCFkZXZjb20pIHtcbiYjNDM7XHRcdG1wZXN3dy1cdTAwM2VyZXN1bHQgPSAtRU5PREVWO1xuJiM0MztcdFx0Z290byBjb21wbGV0ZTtcbiYjNDM7XHR9XG4gXG4gXHRtbHg1X2RldmNvbV9jb21wX2xvY2soZGV2Y29tKTtcbiBcdG1seDVfbXBlc3dfc2RfZGV2Y29tc19sb2NrKGxkZXYpO1xuQEAgLTIxMyw2ICYjNDM7MjE1LDcgQEAgc3RhdGljIHZvaWQgbWx4NV9tcGVzd193b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbiBcdG11dGV4X3VubG9jayhcdTAwMjZsZGV2LVx1MDAzZWxvY2spO1xuIFx0bWx4NV9tcGVzd19zZF9kZXZjb21zX3VubG9jayhsZGV2KTtcbiBcdG1seDVfZGV2Y29tX2NvbXBfdW5sb2NrKGRldmNvbSk7XG4mIzQzO2NvbXBsZXRlOlxuIFx0Y29tcGxldGUoXHUwMDI2bXBlc3d3LVx1MDAzZWNvbXApO1xuIH1cbiBcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL3NoYXJlZF9mZGIuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvc2hhcmVkX2ZkYi5jXG5pbmRleCAxMTM4NjY0OTRkMTY0Yi4uNmI0YWQzYzUzZjJmMzMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL3NoYXJlZF9mZGIuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9zaGFyZWRfZmRiLmNcbkBAIC03OCw3ICYjNDM7NzgsNyBAQCBzdGF0aWMgaW50IG1seDVfbGFnX2NyZWF0ZV9zaW5nbGVfZmRiX2ZpbHRlcihzdHJ1Y3QgbWx4NV9sYWcgKmxkZXYsIHUzMiBmaWx0ZXIpXG4gXHR9XG4gXHRyZXR1cm4gMDtcbiBlcnI6XG4tXHRtbHg1X2xhZ19mb3JfZWFjaF9yZXZlcnNlKGosIGksIDAsIGxkZXYsIGZpbHRlcikge1xuJiM0MztcdG1seDVfbGFnX2Zvcl9lYWNoX3JldmVyc2UoaiwgaSAtIDEsIDAsIGxkZXYsIGZpbHRlcikge1xuIFx0XHRzdHJ1Y3QgbWx4NV9lc3dpdGNoICpzbGF2ZV9lc3c7XG4gXG4gXHRcdGlmIChqID09IG1hc3Rlcl9pZHgpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTg6MTE8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lbGxhbm94IG1seDUgaGFyZHdhcmUgZHJpdmVyLCBzcGVjaWZpY2FsbHkgZGVlcCBsb2dpYyByZWxhdGVkIHRvIFRDIGZsb3dzLCBMaW5rIEFnZ3JlZ2F0aW9uIChMQUcpLCBhbmQgTXVsdGktUG9ydCBFLVN3aXRjaCAoTVBFU1cpLiBTaW5jZSBtbHg1IHJlcXVpcmVzIHBoeXNpY2FsIE1lbGxhbm94IGhhcmR3YXJlIGFuZCB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRvciBmb3IgaXQgaW4gdGhlIGtlcm5lbCwgdGhlc2UgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGFiMmQ4OWZhYWFmNjc2YjQ5OTQ2MmFhZTQyMDc4N2M0M2M0MDMyMGYKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVHVlIEp1biAzMCAxODoxMToxNyAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90Yy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3RjLmMKaW5kZXggOTEwNDkyZWI1MWYyNzYuLjFiYzdiOTAxOTEyNGE0IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdGMuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdGMuYwpAQCAtNTU0Nyw2ICYjNDM7NTU0Nyw5IEBAIHZvaWQgbWx4NWVfdGNfY2xlYW5fZmRiX3BlZXJfZmxvd3Moc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3KQogCiAJbWx4NV9kZXZjb21fZm9yX2VhY2hfcGVlcl9lbnRyeShkZXZjb20sIHBlZXJfZXN3LCBwb3MpIHsKIAkJaSA9IG1seDVfbGFnX2dldF9kZXZfc2VxKHBlZXJfZXN3LSZndDtkZXYpOwomIzQzOwkJaWYgKGkgJmx0OyAwKQomIzQzOwkJCWNvbnRpbnVlOwomIzQzOwogCQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoZmxvdywgdG1wLCAmYW1wO2Vzdy0mZ3Q7b2ZmbG9hZHMucGVlcl9mbG93c1tpXSwgcGVlcltpXSkKIAkJCW1seDVlX3RjX2RlbF9mZGJfcGVlcnNfZmxvdyhmbG93KTsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL21wZXN3LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL21wZXN3LmMKaW5kZXggNTBiZmI0NTBjNzFlMmYuLmFiZjcyMDI2Yzc1MTMzIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL21wZXN3LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9tcGVzdy5jCkBAIC0xOTQsOCAmIzQzOzE5NCwxMCBAQCBzdGF0aWMgdm9pZCBtbHg1X21wZXN3X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCXN0cnVjdCBtbHg1X2xhZyAqbGRldiA9IG1wZXN3dy0mZ3Q7bGFnOwogCiAJZGV2Y29tID0gbWx4NV9sYWdfZ2V0X2RldmNvbV9jb21wKGxkZXYpOwotCWlmICghZGV2Y29tKQotCQlyZXR1cm47CiYjNDM7CWlmICghZGV2Y29tKSB7CiYjNDM7CQltcGVzd3ctJmd0O3Jlc3VsdCA9IC1FTk9ERVY7CiYjNDM7CQlnb3RvIGNvbXBsZXRlOwomIzQzOwl9CiAKIAltbHg1X2RldmNvbV9jb21wX2xvY2soZGV2Y29tKTsKIAltbHg1X21wZXN3X3NkX2RldmNvbXNfbG9jayhsZGV2KTsKQEAgLTIxMyw2ICYjNDM7MjE1LDcgQEAgc3RhdGljIHZvaWQgbWx4NV9tcGVzd193b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAltdXRleF91bmxvY2soJmFtcDtsZGV2LSZndDtsb2NrKTsKIAltbHg1X21wZXN3X3NkX2RldmNvbXNfdW5sb2NrKGxkZXYpOwogCW1seDVfZGV2Y29tX2NvbXBfdW5sb2NrKGRldmNvbSk7CiYjNDM7Y29tcGxldGU6CiAJY29tcGxldGUoJmFtcDttcGVzd3ctJmd0O2NvbXApOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL3NoYXJlZF9mZGIuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvc2hhcmVkX2ZkYi5jCmluZGV4IDExMzg2NjQ5NGQxNjRiLi42YjRhZDNjNTNmMmYzMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9zaGFyZWRfZmRiLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9zaGFyZWRfZmRiLmMKQEAgLTc4LDcgJiM0Mzs3OCw3IEBAIHN0YXRpYyBpbnQgbWx4NV9sYWdfY3JlYXRlX3NpbmdsZV9mZGJfZmlsdGVyKHN0cnVjdCBtbHg1X2xhZyAqbGRldiwgdTMyIGZpbHRlcikKIAl9CiAJcmV0dXJuIDA7CiBlcnI6Ci0JbWx4NV9sYWdfZm9yX2VhY2hfcmV2ZXJzZShqLCBpLCAwLCBsZGV2LCBmaWx0ZXIpIHsKJiM0MzsJbWx4NV9sYWdfZm9yX2VhY2hfcmV2ZXJzZShqLCBpIC0gMSwgMCwgbGRldiwgZmlsdGVyKSB7CiAJCXN0cnVjdCBtbHg1X2Vzd2l0Y2ggKnNsYXZlX2VzdzsKIAogCQlpZiAoaiA9PSBtYXN0ZXJfaWR4KQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAxODoxMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNjM4CgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogNTcxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgTWVsbGFub3ggbWx4NSBEcml2ZXIgUGF0Y2ggZm9yIEZ1enppbmcgUG90ZW50aWFsKioKCk9rYXksIHNvIEkmIzM5O3ZlIGdvdCB0aGlzIHBhdGNoIHRoYXQgdG91Y2hlcyB0aHJlZSBmaWxlcyB3aXRoaW4gdGhlIE1lbGxhbm94IG1seDUgRXRoZXJuZXQgZHJpdmVyOiBgZW5fdGMuY2AsIGBsYWcvbXBlc3cuY2AsIGFuZCBgbGFnL3NoYXJlZF9mZGIuY2AuIExldCBtZSBxdWlja2x5IGJyZWFrIGRvd24gd2hhdCB0aGlzIHBhdGNoIGRvZXMsIHNvIEkgY2FuIHN0YXJ0IHRoaW5raW5nIGFib3V0IGZ1enppbmcgaXQuIEl0IGFkZHMgYSBjaGVjayBpbiBgbWx4NWVfdGNfY2xlYW5fZmRiX3BlZXJfZmxvd3NgLCBhIGNoZWNrIGFuZCBjb25kaXRpb25hbCBqdW1wIGluIGBtbHg1X21wZXN3X3dvcmtgLCBhbmQgbW9kaWZpZXMgYSBsb29wIGluIGBtbHg1X2xhZ19jcmVhdGVfc2luZ2xlX2ZkYl9maWx0ZXJgLiBTZWVtcyBzdHJhaWdodGZvcndhcmQgZW5vdWdo4oCUZnVuY3Rpb25hbCBjaGFuZ2VzLiBOb3cgdGhlIHF1ZXN0aW9uIGlzLCBjYW4gSSBldmVuIGZ1enogdGhpcyB0aGluZz8KCk1lbGxhbm94IG1seDUsIHRoYXTigJlzIGEgaGFyZHdhcmUgZHJpdmVyLCByaWdodD8gWWVhaCwgaXQmIzM5O3MgZm9yIE1lbGxhbm94IENvbm5lY3RYIG5ldHdvcmsgY2FyZHMuIFNvLCBJIG5lZWQgdG8gY29uc2lkZXIgdGhlIGVudmlyb25tZW50LiBNeSBpbW1lZGlhdGUgY29uY2VybiBpcyB3aGV0aGVyIHRoaXMgaXMgZ29pbmcgdG8gYmUgZmVhc2libGUgaW4gYSBzdGFuZGFyZCB2aXJ0dWFsaXplZCBzZXR1cCwgbGlrZSBHQ0Ugb3IgUUVNVS4gSSBuZWVkIHRob3NlIGNhcmRzLCB3aGljaCBhcmVuJiMzOTt0IHR5cGljYWxseSBwcmVzZW50IHVubGVzcyB5b3UgZW11bGF0ZSB0aGVtIG9yIHBhc3MgdGhlbSB0aHJvdWdoLiBBcmUgdGhlcmUgYW55IHNvZnR3YXJlIGVtdWxhdG9ycyBmb3IgbWx4NSBpbiB0aGUga2VybmVsPyBJIGFtIHRoaW5raW5nLCBmb3IgZXhhbXBsZSwgb2YgYG5ldGRldnNpbWAgb3IgYG1hYzgwMjExX2h3c2ltYC4gTGV0IG1lIGNoZWNrLi4uIG5vcGUsIGRvZXNuJiMzOTt0IGxvb2sgbGlrZSB0aGVyZSBpcyBhIGRlZGljYXRlZCBtbHg1IHNvZnR3YXJlIGVtdWxhdG9yIGluIHRoZSB1cHN0cmVhbSBrZXJuZWwuCgpPa2F5LCBzbyB0aGVuIHRoZSBuZXh0IHRoaW5nIEkgbmVlZCB0byBhc2sgaXM6IGRvZXMgc3l6a2FsbGVyIGRvIGFueXRoaW5nIHdpdGggbWx4NT8gU3l6a2FsbGVyIGlzIHRoZSBnby10byB0b29sIGZvciBrZXJuZWwgZnV6emluZywgYnV0IGl0IHVzdWFsbHkgbmVlZHMgc3BlY2lmaWMgaGFyZHdhcmUgb3IgZWZmZWN0aXZlIGVtdWxhdG9ycy4gV2VsbCwgaXQgY2FuIGZ1enogUENJIGRldmljZXMsIGlmIHRoZXJlIGlzIGEgUENJIGZ1enplciwgd2hpY2ggaXMgdGhlIGNsYXNzIG9mIGhhcmR3YXJlIHdlIGFyZSB0YWxraW5nIGFib3V0IGhlcmUuIEJ1dCByZWFjaGluZyB0aGVzZSBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXJzIHdpdGhvdXQgdGhlIGhhcmR3YXJlIGlzIGEgcGFpbi4gSSBzZWVtIHRvIHJlY2FsbCB0aGF0IHN5emthbGxlciBoYXMgYSB2aGNpL1BDSSBmdXp6ZXIgb2Ygc29tZSBraW5kLCBidXQgaXMgaXQgYWN0dWFsbHkgZWZmZWN0aXZlIGZvciBtbHg1PyBJJiMzOTtsbCBuZWVkIHRvIGNoZWNrIGlmIHRoZXJlIGFyZSBhbnkgY29uZmlndXJhdGlvbnMgSSBjYW4gdXNlLiBJIHdvbmRlciBpZiBpdCYjMzk7cyBldmVuIHdvcnRoIGF0dGVtcHRpbmcgdG8gZnV6eiBnaXZlbiB0aGF0IGl0IGlzIGEgUENJIHBoeXNpY2FsIGRldmljZSBkcml2ZXIgd2l0aCBubyBzb2Z0d2FyZSBlbXVsYXRvci4KCkxldCBtZSB0aGluayBiYWNrIG9uIHNvbWUgcHJldmlvdXMgZXhwZXJpZW5jZXMuIEkgcmVtZW1iZXIgc29tZXRoaW5nIGFib3V0IGNvZGUgcGF0aHMgYmVpbmcgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMsIHNwZWNpZmljYWxseSBpbiBzaXR1YXRpb25zIGludm9sdmluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZS4gV2VsbCwgSSBhbSB0aGlua2luZyB0aGF0IHRoaXMgYXBwbGllcyBoZXJlIGFzIG1seDUgaXNuJiMzOTt0IHJlYWNoYWJsZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuIE1heWJlIEkgc2hvdWxkIGRvdWJsZS1jaGVjay4gSSB3aWxsIHF1aWNrbHkgc2VhcmNoIHRoZSBrZXJuZWwgY29kZSBmb3IgYW55IGV2aWRlbmNlIG9mIG1seDUgc29mdHdhcmUgZW11bGF0aW9uLCBqdXN0IGluIGNhc2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTg6MTE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bWx4NSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA5OTA2MiBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc9MTk9Y29uZmlnIE1MWDVfRlBHQVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTI1LVx0ICBhbmQgYW4gRlBHQSBjaGlwIG9uIG9uZSBib2FyZC4gSWYgeW91IHNlbGVjdCB0aGlzIG9wdGlvbiwgdGhlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoyNjpcdCAgbWx4NV9jb3JlIGRyaXZlciB3aWxsIGluY2x1ZGUgdGhlIElubm92YSBGUEdBIGNvcmUgYW5kIGFsbG93IGJ1aWxkaW5nXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0yNy1cdCAgc2FuZGJveC1zcGVjaWZpYyBjbGllbnQgZHJpdmVycy5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZz03Nz1jb25maWcgTUxYNV9CUklER0Vcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy04MS1cdGhlbHBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnOjgyOlx0ICBtbHg1IENvbm5lY3RYIG9mZmxvYWRzIHN1cHBvcnQgZm9yIEV0aGVybmV0IEJyaWRnaW5nIChCUklER0UpLlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctODMtXHQgIEVuYWJsZSBvZmZsb2FkaW5nIEZEQiBydWxlcyBmcm9tIGEgYnJpZGdlIGRldmljZSBjb250YWluaW5nXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzo4NDpcdCAgcmVwcmVzZW50b3JzIG9mIG1seDUgdXBsaW5rIGFuZCBWRiBwb3J0cy4gU3VwcG9ydHMgVkxBTnMgKHRydW5rIGFuZFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctODUtXHQgIGFjY2VzcyBtb2RlcykuXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc9ODc9Y29uZmlnIE1MWDVfQ0xTX0FDVFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTkxLVx0aGVscFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc6OTI6XHQgIG1seDUgQ29ubmVjdFggb2ZmbG9hZHMgc3VwcG9ydCBmb3IgVEMgY2xhc3NpZmllciBhY3Rpb24gKE5FVF9DTFNfQUNUKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTkzLVx0ICB3b3JrcyBpbiBib3RoIG5hdGl2ZSBOSUMgbW9kZSBhbmQgU3dpdGNoZGV2IFNSSU9WIG1vZGUuXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc9MjEwPWNvbmZpZyBNTFg1X0VOX1BTUFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTIxNS1cdGhlbHBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnOjIxNjpcdCAgbWx4NSBkZXZpY2Ugb2ZmbG9hZCBzdXBwb3J0IGZvciBHb29nbGUgUFNQIFNlY3VyaXR5IFByb3RvY29sIG9mZmxvYWQuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0yMTctXHQgIEFkZHMgc3VwcG9ydCBmb3IgUFNQIGVuY3J5cHRpb24gb2ZmbG9hZCBhbmQgZm9yIFNQSSBhbmQga2V5IGdlbmVyYXRpb25cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU9Nz1zdWJkaXItY2NmbGFncy15ICYjNDM7PSAtSSQoc3JjKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6OTpvYmotJChDT05GSUdfTUxYNV9DT1JFKSAmIzQzOz0gbWx4NV9jb3JlLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMS0jXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTI6IyBtbHg1IGNvcmUgYmFzaWNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMy0jXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTQ6bWx4NV9jb3JlLXkgOj1cdG1haW4ubyBjbWQubyBkZWJ1Z2ZzLm8gZncubyBlcS5vIHVhci5vIHBhZ2VhbGxvYy5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTUtXHRcdGhlYWx0aC5vIG1jZy5vIGNxLm8gYWxsb2MubyBwb3J0Lm8gbXIubyBwZC5vIFxcXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTI1LSNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToyNjptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9DT1JFX0VOKSAmIzQzOz0gZW4vcnF0Lm8gZW4vdGlyLm8gZW4vcnNzLm8gZW4vcnhfcmVzLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0yNy1cdFx0ZW4vY2hhbm5lbHMubyBlbl9tYWluLm8gZW5fY29tbW9uLm8gZW5fZnMubyBlbl9ldGh0b29sLm8gXFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMzctI1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjM4Om1seDVfY29yZS0kKENPTkZJR19NTFg1X0VOX0FSRlMpICAgICAmIzQzOz0gZW5fYXJmcy5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6Mzk6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfRU5fUlhORkMpICAgICYjNDM7PSBlbl9mc19ldGh0b29sLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo0MDptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9DT1JFX0VOX0RDQikgJiM0Mzs9IGVuX2RjYm5sLm8gZW4vcG9ydF9idWZmZXIub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjQxOm1seDVfY29yZS0kKENPTkZJR19QQ0lfSFlQRVJWX0lOVEVSRkFDRSkgJiM0Mzs9IGVuL2h2X3ZoY2Ffc3RhdHMub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjQyOm1seDVfY29yZS0kKENPTkZJR19NTFg1X0VTV0lUQ0gpICAgICAmIzQzOz0gbGFnL21wLm8gbGFnL3BvcnRfc2VsLm8gbGliL2dlbmV2ZS5vIGxpYi9wb3J0X3R1bi5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNDMtXHRcdFx0XHRcdGVuX3JlcC5vIGVuL3JlcC9ib25kLm8gZW4vbW9kX2hkci5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNDQtXHRcdFx0XHRcdGVuL21hcHBpbmcubyBsYWcvbXBlc3cubyBsYWcvc2hhcmVkX2ZkYi5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6NDU6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfQ0xTX0FDVCkgICAgICYjNDM7PSBlbl90Yy5vIGVuL3JlcC90Yy5vIGVuL3JlcC9uZWlnaC5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNDYtXHRcdFx0XHRcdGxpYi9mc19jaGFpbnMubyBlbi90Y190dW4ubyBcXFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS01Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo1MzptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9DTFNfQUNUKSAgICAgJiM0Mzs9IGVuL3RjL2FjdC9hY3QubyBlbi90Yy9hY3QvZHJvcC5vIGVuL3RjL2FjdC90cmFwLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS01NC1cdFx0XHRcdFx0ZW4vdGMvYWN0L2FjY2VwdC5vIGVuL3RjL2FjdC9tYXJrLm8gZW4vdGMvYWN0L2dvdG8ubyBcXFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZT02MT1pZm5lcSAoJChDT05GSUdfTUxYNV9UQ19DVCksKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjYyOlx0bWx4NV9jb3JlLXlcdFx0XHQgICAgICYjNDM7PSBlbi90Y19jdC5vIGVuL3RjL2N0X2ZzX2RtZnMub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjYzOlx0bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfU1dfU1RFRVJJTkcpICYjNDM7PSBlbi90Yy9jdF9mc19zbWZzLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo2NDpcdG1seDVfY29yZS0kKENPTkZJR19NTFg1X0hXX1NURUVSSU5HKSAmIzQzOz0gZW4vdGMvY3RfZnNfaG1mcy5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNjUtZW5kaWZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS02Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo2NzptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9UQ19TQU1QTEUpICAgJiM0Mzs9IGVuL3RjL3NhbXBsZS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNjgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTcxLSNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo3MjptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9FU1dJVENIKSAgICYjNDM7PSBlc3dpdGNoLm8gZXN3aXRjaF9vZmZsb2Fkcy5vIGVzd2l0Y2hfb2ZmbG9hZHNfdGVybXRibC5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNzMtXHRcdFx0XHQgICAgICBlY3BmLm8gcmRtYS5vIGVzdy9sZWdhY3kubyBlc3cvYWRqX3Zwb3J0Lm8gXFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNzUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6NzY6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfRVNXSVRDSCkgICAmIzQzOz0gZXN3L2FjbC9oZWxwZXIubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTc3LVx0XHRcdFx0ICAgICAgZXN3L2FjbC9lZ3Jlc3NfbGdjeS5vIGVzdy9hY2wvZWdyZXNzX29mbGQubyBcXFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZT04MD1pZm5lcSAoJChDT05GSUdfTUxYNV9FTl9JUFNFQyksKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjgxOlx0bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfRVNXSVRDSCkgICAmIzQzOz0gZXN3L2lwc2VjX2ZzLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS04Mi1lbmRpZlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTgzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjg0Om1seDVfY29yZS0kKENPTkZJR19NTFg1X0JSSURHRSkgICAgJiM0Mzs9IGVzdy9icmlkZ2UubyBlc3cvYnJpZGdlX21jYXN0Lm8gZXN3L2JyaWRnZV9kZWJ1Z2ZzLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS04NS1cdFx0XHRcdCAgICAgIGVuL3JlcC9icmlkZ2Uub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTg2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjg3Om1seDVfY29yZS0kKENPTkZJR19IV01PTikgICAgICAgICAgJiM0Mzs9IGh3bW9uLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo4ODptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9NUEZTKSAgICAgICYjNDM7PSBsaWIvbXBmcy5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtODktaWZuZXEgKCQoQ09ORklHX1ZYTEFOKSwpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6OTA6XHRtbHg1X2NvcmUteVx0XHQgICAmIzQzOz0gbGliL3Z4bGFuLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS05MS1lbmRpZlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjkyOm1seDVfY29yZS0kKENPTkZJR19QVFBfMTU4OF9DTE9DSykgJiM0Mzs9IGxpYi9jbG9jay5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6OTM6bWx4NV9jb3JlLSQoQ09ORklHX1BDSV9IWVBFUlZfSU5URVJGQUNFKSAmIzQzOz0gbGliL2h2Lm8gbGliL2h2X3ZoY2Eub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTk0LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS05Ny0jXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6OTg6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfQ09SRV9JUE9JQikgJiM0Mzs9IGlwb2liL2lwb2liLm8gaXBvaWIvZXRodG9vbC5vIGlwb2liL2lwb2liX3ZsYW4ub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTk5LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMDItI1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjEwMzptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9GUEdBKSAmIzQzOz0gZnBnYS9jbWQubyBmcGdhL2NvcmUubyBmcGdhL2Nvbm4ubyBmcGdhL3Nkay5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTA0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjEwNTptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9NQUNTRUMpICYjNDM7PSBlbl9hY2NlbC9tYWNzZWMubyBsaWIvbWFjc2VjX2ZzLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMDYtXHRcdFx0XHQgICAgICBlbl9hY2NlbC9tYWNzZWNfc3RhdHMub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTEwNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxMDg6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfRU5fSVBTRUMpICYjNDM7PSBlbl9hY2NlbC9pcHNlYy5vIGVuX2FjY2VsL2lwc2VjX3J4dHgubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTEwOS1cdFx0XHRcdCAgICAgZW5fYWNjZWwvaXBzZWNfc3RhdHMubyBlbl9hY2NlbC9pcHNlY19mcy5vIFxcXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTExMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxMTI6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfRU5fVExTKSAmIzQzOz0gZW5fYWNjZWwva3Rsc19zdGF0cy5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTEzLVx0XHRcdFx0ICAgZW5fYWNjZWwvZnNfdGNwLm8gZW5fYWNjZWwva3Rscy5vIGVuX2FjY2VsL2t0bHNfdHhyeC5vIFxcXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTExNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxMTY6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfRU5fUFNQKSAmIzQzOz0gZW5fYWNjZWwvcHNwLm8gZW5fYWNjZWwvcHNwX3J4dHgub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTExNy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTIwLSNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxMjE6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfU1dfU1RFRVJJTkcpICYjNDM7PSBzdGVlcmluZy9zd3MvZHJfZG9tYWluLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMjItXHRcdFx0XHRcdHN0ZWVyaW5nL3N3cy9kcl90YWJsZS5vIFxcXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTE0NS0jXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTQ2Om1seDVfY29yZS0kKENPTkZJR19NTFg1X0hXX1NURUVSSU5HKSAmIzQzOz0gc3RlZXJpbmcvaHdzL2NtZC5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTQ3LVx0XHRcdFx0XHRzdGVlcmluZy9od3MvY29udGV4dC5vIFxcXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTE2Ny0jXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTY4Om1seDVfY29yZS0kKENPTkZJR19NTFg1X1NGKSAmIzQzOz0gc2YvdmhjYV9ldmVudC5vIHNmL2Rldi9kZXYubyBzZi9kZXYvZHJpdmVyLm8gaXJxX2FmZmluaXR5Lm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xNjktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTE3Mi0jXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTczOm1seDVfY29yZS0kKENPTkZJR19NTFg1X1NGX01BTkFHRVIpICYjNDM7PSBzZi9jbWQubyBzZi9od190YWJsZS5vIHNmL2Rldmxpbmsub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTE3NC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTc3LSNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxNzg6bWx4NV9jb3JlLSQoQ09ORklHX1BDSUVfVFBIKSAmIzQzOz0gbGliL3N0Lm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xNzktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTgwOm9iai0kKENPTkZJR19NTFg1X0RQTEwpICYjNDM7PSBtbHg1X2RwbGwub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjE4MTptbHg1X2RwbGwteSA6PVx0ZHBsbC5vXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNDItI2luY2x1ZGUgXHUwMDNjbGludXgvc2VxX2ZpbGUuaFx1MDAzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NDM6I2luY2x1ZGUgXHUwMDNjbGludXgvbWx4NS9kcml2ZXIuaFx1MDAzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo0NTojaW5jbHVkZSBcJiMzNDttbHg1X2NvcmUuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNDYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo1MTpzdHJ1Y3QgbWx4NV9kYl9wZ2RpciB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy01Mi1cdHN0cnVjdCBsaXN0X2hlYWRcdGxpc3Q7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo1ODpzdHJ1Y3QgbWx4NV9kbWFfcG9vbCB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy01OS1cdC8qIFByb3RlY3RzIHBhZ2VfbGlzdCBhbmQgcGVyLXBhZ2UgYWxsb2NhdGlvbiBiaXRtYXBzLiAqL1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTYxLVx0c3RydWN0IGxpc3RfaGVhZCBwYWdlX2xpc3Q7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo2MjpcdHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy02My1cdGludCBub2RlO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTY2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6Njc6c3RydWN0IG1seDVfZG1hX3Bvb2xfcGFnZSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo2ODpcdHN0cnVjdCBtbHg1X2RtYV9wb29sICpwb29sO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNjktXHRzdHJ1Y3QgbGlzdF9oZWFkIHBvb2xfbGluaztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy03NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjc1OnN0cnVjdCBtbHg1X2ZyYWdfYnVmX25vZGVfcG9vbHMge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NzY6XHRzdHJ1Y3QgbWx4NV9kbWFfcG9vbCAqcG9vbHNbTUxYNV9GUkFHX0JVRl9QT09MU19OVU1dO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNzctfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTc4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6Nzk6c3RydWN0IG1seDVfZG1hX3Bvb2xfc3RhdHMge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtODAtXHRpbnQgbm9kZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy04OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjkwOnN0YXRpYyB2b2lkICptbHg1X2RtYV96YWxsb2NfY29oZXJlbnRfbm9kZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtOTEtXHRcdFx0XHRcdCAgIHNpemVfdCBzaXplLCBkbWFfYWRkcl90ICpkbWFfaGFuZGxlLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTkzLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjk0Olx0c3RydWN0IGRldmljZSAqZGV2aWNlID0gbWx4NV9jb3JlX2RtYV9kZXYoZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjk1Olx0c3RydWN0IG1seDVfcHJpdiAqcHJpdiA9IFx1MDAyNmRldi1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtOTYtXHRpbnQgb3JpZ2luYWxfbm9kZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0xMDgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoxMDk6c3RhdGljIHZvaWQgbWx4NV9kbWFfcG9vbF9kZXN0cm95KHN0cnVjdCBtbHg1X2RtYV9wb29sICpwb29sKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMTEwLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0xMTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoxMTU6c3RhdGljIHN0cnVjdCBtbHg1X2RtYV9wb29sICptbHg1X2RtYV9wb29sX2NyZWF0ZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMTE2LVx0XHRcdFx0XHRcdCAgaW50IG5vZGUsIHU4IGJsb2NrX3NoaWZ0KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMTE3LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjExODpcdHN0cnVjdCBtbHg1X2RtYV9wb29sICpwb29sO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMTE5LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTEzMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjEzMjpzdGF0aWMgc3RydWN0IG1seDVfZG1hX3Bvb2xfcGFnZSAqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoxMzM6bWx4NV9kbWFfcG9vbF9wYWdlX2FsbG9jKHN0cnVjdCBtbHg1X2RtYV9wb29sICpwb29sKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMTM0LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTEzNS1cdGludCBibG9ja3NfcGVyX3BhZ2UgPSBCSVQoUEFHRV9TSElGVCAtIHBvb2wtXHUwMDNlYmxvY2tfc2hpZnQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MTM2Olx0c3RydWN0IG1seDVfZG1hX3Bvb2xfcGFnZSAqcGFnZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTEzNy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0xNDctXHRiaXRtYXBfZmlsbChwYWdlLVx1MDAzZWJpdG1hcCwgYmxvY2tzX3Blcl9wYWdlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjE0ODpcdHBhZ2UtXHUwMDNlYnVmID0gbWx4NV9kbWFfemFsbG9jX2NvaGVyZW50X25vZGUocG9vbC1cdTAwM2VkZXYsIFBBR0VfU0laRSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTE0OS1cdFx0XHRcdFx0XHQgIFx1MDAyNnBhZ2UtXHUwMDNlZG1hLCBwb29sLVx1MDAzZW5vZGUpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTE2Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjE2MzpzdGF0aWMgdm9pZCBtbHg1X2RtYV9wb29sX3BhZ2VfZnJlZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MTY0Olx0XHRcdFx0ICAgIHN0cnVjdCBtbHg1X2RtYV9wb29sX3BhZ2UgKnBhZ2UpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0xNjUte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MTY2Olx0ZG1hX2ZyZWVfY29oZXJlbnQobWx4NV9jb3JlX2RtYV9kZXYoZGV2KSwgUEFHRV9TSVpFLCBwYWdlLVx1MDAzZWJ1ZixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTE2Ny1cdFx0XHQgIHBhZ2UtXHUwMDNlZG1hKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0xNzEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoxNzI6c3RhdGljIGludCBtbHg1X2RtYV9wb29sX2FsbG9jX2Zyb21fcGFnZShzdHJ1Y3QgbWx4NV9kbWFfcG9vbCAqcG9vbCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjE3MzpcdFx0XHRcdFx0IHN0cnVjdCBtbHg1X2RtYV9wb29sX3BhZ2UgKnBhZ2UsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0xNzQtXHRcdFx0XHRcdCB1bnNpZ25lZCBsb25nICppZHhfb3V0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTE4OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjE5MDpzdGF0aWMgc3RydWN0IG1seDVfZG1hX3Bvb2xfcGFnZSAqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoxOTE6bWx4NV9kbWFfcG9vbF9hbGxvYyhzdHJ1Y3QgbWx4NV9kbWFfcG9vbCAqcG9vbCwgdW5zaWduZWQgbG9uZyAqaWR4X291dClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTE5Mi17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoxOTM6XHRzdHJ1Y3QgbWx4NV9kbWFfcG9vbF9wYWdlICpwYWdlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMTk0LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTE5Ny1cdHBhZ2UgPSBsaXN0X2ZpcnN0X2VudHJ5X29yX251bGwoXHUwMDI2cG9vbC1cdTAwM2VwYWdlX2xpc3QsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoxOTg6XHRcdFx0XHRcdHN0cnVjdCBtbHg1X2RtYV9wb29sX3BhZ2UsIHBvb2xfbGluayk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoxOTk6XHRpZiAocGFnZSBcdTAwMjZcdTAwMjYgIW1seDVfZG1hX3Bvb2xfYWxsb2NfZnJvbV9wYWdlKHBvb2wsIHBhZ2UsIGlkeF9vdXQpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMjAwLVx0XHRnb3RvIHVubG9jazsgLyogc3VjY2Vzc2Z1bGx5IGFsbG9jYXRlZCBmcm9tIGV4aXN0aW5nIHBhZ2UgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTIwMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjIwMjpcdHBhZ2UgPSBtbHg1X2RtYV9wb29sX3BhZ2VfYWxsb2MocG9vbCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0yMDMtXHRpZiAoIXBhZ2UpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMjA2LVx0bGlzdF9hZGQoXHUwMDI2cGFnZS1cdTAwM2Vwb29sX2xpbmssIFx1MDAyNnBvb2wtXHUwMDNlcGFnZV9saXN0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjIwNzpcdG1seDVfZG1hX3Bvb2xfYWxsb2NfZnJvbV9wYWdlKHBvb2wsIHBhZ2UsIGlkeF9vdXQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMjA4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTIxMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjIxNDpzdGF0aWMgdm9pZCBtbHg1X2RtYV9wb29sX2ZyZWUoc3RydWN0IG1seDVfZG1hX3Bvb2wgKnBvb2wsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoyMTU6XHRcdFx0ICAgICAgIHN0cnVjdCBtbHg1X2RtYV9wb29sX3BhZ2UgKnBhZ2UsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0yMTYtXHRcdFx0ICAgICAgIHVuc2lnbmVkIGxvbmcgaWR4KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTIyNi1cdFx0bGlzdF9kZWwoXHUwMDI2cGFnZS1cdTAwM2Vwb29sX2xpbmspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MjI3Olx0XHRtbHg1X2RtYV9wb29sX3BhZ2VfZnJlZShwb29sLVx1MDAzZWRldiwgcGFnZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0yMjgtXHR9IGVsc2Uge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTIzNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjIzNzpzdGF0aWMgdm9pZCBtbHg1X2RtYV9wb29sX2RlYnVnZnNfZ2V0X3N0YXRzKHN0cnVjdCBtbHg1X2RtYV9wb29sICpwb29sLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MjM4Olx0XHRcdFx0XHQgICAgc3RydWN0IG1seDVfZG1hX3Bvb2xfc3RhdHMgKnN0YXRzKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMjM5LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTI0MC1cdGludCBibG9ja3NfcGVyX3BhZ2UgPSBCSVQoUEFHRV9TSElGVCAtIHBvb2wtXHUwMDNlYmxvY2tfc2hpZnQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MjQxOlx0c3RydWN0IG1seDVfZG1hX3Bvb2xfcGFnZSAqcGFnZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTI0Mi1cdHNpemVfdCBmcmVlX2Jsb2NrcyA9IDA7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMjU3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MjU4OnN0YXRpYyB2b2lkIG1seDVfZG1hX3Bvb2xfZGVidWdmc19zdGF0c19wcmludChzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoyNTk6XHRcdFx0XHRcdCAgICAgIHN0cnVjdCBtbHg1X2RtYV9wb29sICpwb29sKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMjYwLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjI2MTpcdHN0cnVjdCBtbHg1X2RtYV9wb29sX3N0YXRzIHN0YXRzID0ge307XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0yNjItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoyNjM6XHRtbHg1X2RtYV9wb29sX2RlYnVnZnNfZ2V0X3N0YXRzKHBvb2wsIFx1MDAyNnN0YXRzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTI2NC1cdHNlcV9wcmludGYoZmlsZSwgXCYjMzQ7JTRkICAgICAgICU1enUgICAgICAlN3p1ICAgICAgICAgICAlN3p1XFxuXCYjMzQ7LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTI2OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjI2OTpzdGF0aWMgdm9pZCBtbHg1X2RtYV9wb29sc19kZWJ1Z2ZzX3ByaW50X2hlYWRlcihzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0yNzAte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jPTI3ND1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6Mjc1Om1seDVfZnJhZ19idWZfbm9kZV9wb29sc19kZXN0cm95KHN0cnVjdCBtbHg1X2ZyYWdfYnVmX25vZGVfcG9vbHMgKm5vZGVfcG9vbHMpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0yNzYte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTI3OC1cdFx0aWYgKG5vZGVfcG9vbHMtXHUwMDNlcG9vbHNbaV0pXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoyNzk6XHRcdFx0bWx4NV9kbWFfcG9vbF9kZXN0cm95KG5vZGVfcG9vbHMtXHUwMDNlcG9vbHNbaV0pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMjgwLVx0a2ZyZWUobm9kZV9wb29scyk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMjgyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MjgzOnN0YXRpYyBzdHJ1Y3QgbWx4NV9mcmFnX2J1Zl9ub2RlX3Bvb2xzICpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjI4NDptbHg1X2ZyYWdfYnVmX25vZGVfcG9vbHNfY3JlYXRlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIGludCBub2RlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMjg1LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjI4NjpcdHN0cnVjdCBtbHg1X2ZyYWdfYnVmX25vZGVfcG9vbHMgKm5vZGVfcG9vbHM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0yODctXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMjk0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6Mjk1Olx0XHRub2RlX3Bvb2xzLVx1MDAzZXBvb2xzW2ldID0gbWx4NV9kbWFfcG9vbF9jcmVhdGUoZGV2LCBub2RlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMjk2LVx0XHRcdFx0XHRcdFx0ICAgIGJsb2NrX3NoaWZ0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTI5Ny1cdFx0aWYgKCFub2RlX3Bvb2xzLVx1MDAzZXBvb2xzW2ldKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoyOTg6XHRcdFx0bWx4NV9mcmFnX2J1Zl9ub2RlX3Bvb2xzX2Rlc3Ryb3kobm9kZV9wb29scyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0yOTktXHRcdFx0cmV0dXJuIE5VTEw7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM9MzA2PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjMwNzptbHg1X2ZyYWdfYnVmX2RtYV9wb29sc19kZWJ1Z2ZzX3Nob3coc3RydWN0IHNlcV9maWxlICpmaWxlLCB2b2lkICpwcml2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzA4LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjMwOTpcdHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYgPSBmaWxlLVx1MDAzZXByaXZhdGU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zMTAtXHRpbnQgbm9kZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTMxMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjMxMjpcdG1seDVfZG1hX3Bvb2xzX2RlYnVnZnNfcHJpbnRfaGVhZGVyKGZpbGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzEzLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTMxNy1cdGZvcl9lYWNoX25vZGVfc3RhdGUobm9kZSwgTl9QT1NTSUJMRSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MzE4Olx0XHRzdHJ1Y3QgbWx4NV9mcmFnX2J1Zl9ub2RlX3Bvb2xzICpub2RlX3Bvb2xzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzE5LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTMyNC1cdFx0Zm9yIChpbnQgaSA9IDA7IGkgXHUwMDNjIE1MWDVfRlJBR19CVUZfUE9PTFNfTlVNOyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MzI1Olx0XHRcdHN0cnVjdCBtbHg1X2RtYV9wb29sICpwb29sID0gbm9kZV9wb29scy1cdTAwM2Vwb29sc1tpXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTMyNi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zMjktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzozMzA6XHRcdFx0bWx4NV9kbWFfcG9vbF9kZWJ1Z2ZzX3N0YXRzX3ByaW50KGZpbGUsIHBvb2wpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzMxLVx0XHR9XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzM1LX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjMzNjpERUZJTkVfU0hPV19BVFRSSUJVVEUobWx4NV9mcmFnX2J1Zl9kbWFfcG9vbHNfZGVidWdmcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zMzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzozMzg6dm9pZCBtbHg1X2ZyYWdfYnVmX3Bvb2xzX2NsZWFudXAoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTMzOS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzozNDA6XHRzdHJ1Y3QgbWx4NV9wcml2ICpwcml2ID0gXHUwMDI2ZGV2LVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zNDEtXHRpbnQgbm9kZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zNDYtXHRmb3JfZWFjaF9ub2RlX3N0YXRlKG5vZGUsIE5fUE9TU0lCTEUpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjM0NzpcdFx0c3RydWN0IG1seDVfZnJhZ19idWZfbm9kZV9wb29scyAqbm9kZV9wb29scztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTM0OC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zNTEtXHRcdFx0Y29udGludWU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzozNTI6XHRcdG1seDVfZnJhZ19idWZfbm9kZV9wb29sc19kZXN0cm95KG5vZGVfcG9vbHMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzUzLVx0fVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTM1OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjM1OTppbnQgbWx4NV9mcmFnX2J1Zl9wb29sc19pbml0KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zNjAte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MzYxOlx0c3RydWN0IG1seDVfcHJpdiAqcHJpdiA9IFx1MDAyNmRldi1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzYyLVx0aW50IG5vZGU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzY5LVx0Zm9yX2VhY2hfbm9kZV9zdGF0ZShub2RlLCBOX1BPU1NJQkxFKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzozNzA6XHRcdHN0cnVjdCBtbHg1X2ZyYWdfYnVmX25vZGVfcG9vbHMgKm5vZGVfcG9vbHM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zNzEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzozNzI6XHRcdG5vZGVfcG9vbHMgPSBtbHg1X2ZyYWdfYnVmX25vZGVfcG9vbHNfY3JlYXRlKGRldiwgbm9kZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zNzMtXHRcdGlmICghbm9kZV9wb29scykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6Mzc0Olx0XHRcdG1seDVfZnJhZ19idWZfcG9vbHNfY2xlYW51cChkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzc1LVx0XHRcdHJldHVybiAtRU5PTUVNO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTM4Mi1cdFx0XHRcdCAgICBwcml2LVx1MDAzZWRiZy5kYmdfcm9vdCwgZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MzgzOlx0XHRcdFx0ICAgIFx1MDAyNm1seDVfZnJhZ19idWZfZG1hX3Bvb2xzX2RlYnVnZnNfZm9wcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zODQtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzg3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6Mzg4OmludCBtbHg1X2ZyYWdfYnVmX2FsbG9jX25vZGUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgaW50IHNpemUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzozODk6XHRcdFx0ICAgICBzdHJ1Y3QgbWx4NV9mcmFnX2J1ZiAqYnVmLCBpbnQgbm9kZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTM5MC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzozOTE6XHRzdHJ1Y3QgbWx4NV9kbWFfcG9vbCAqcG9vbDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTM5Mi1cdGludCBwb29sX2lkeDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00MDgtXHRmb3IgKGludCBpID0gMDsgaSBcdTAwM2MgYnVmLVx1MDAzZW5wYWdlczsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjQwOTpcdFx0c3RydWN0IG1seDVfYnVmX2xpc3QgKmZyYWcgPSBcdTAwMjZidWYtXHUwMDNlZnJhZ3NbaV07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo0MTA6XHRcdHN0cnVjdCBtbHg1X2RtYV9wb29sX3BhZ2UgKnBhZ2U7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00MTEtXHRcdHVuc2lnbmVkIGxvbmcgaWR4O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNDEyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NDEzOlx0XHRwYWdlID0gbWx4NV9kbWFfcG9vbF9hbGxvYyhwb29sLCBcdTAwMjZpZHgpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNDE0LVx0XHRpZiAoIXBhZ2UpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjQxNTpcdFx0XHRtbHg1X2ZyYWdfYnVmX2ZyZWUoZGV2LCBidWYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNDE2LVx0XHRcdHJldHVybiAtRU5PTUVNO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTQyNC19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo0MjU6RVhQT1JUX1NZTUJPTF9HUEwobWx4NV9mcmFnX2J1Zl9hbGxvY19ub2RlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTQyNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjQyNzp2b2lkIG1seDVfZnJhZ19idWZfZnJlZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBzdHJ1Y3QgbWx4NV9mcmFnX2J1ZiAqYnVmKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNDI4LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTQyOS1cdGZvciAoaW50IGkgPSAwOyBpIFx1MDAzYyBidWYtXHUwMDNlbnBhZ2VzOyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NDMwOlx0XHRzdHJ1Y3QgbWx4NV9idWZfbGlzdCAqZnJhZyA9IFx1MDAyNmJ1Zi1cdTAwM2VmcmFnc1tpXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjQzMTpcdFx0c3RydWN0IG1seDVfZG1hX3Bvb2xfcGFnZSAqcGFnZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjQzMjpcdFx0c3RydWN0IG1seDVfZG1hX3Bvb2wgKnBvb2w7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00MzMtXHRcdHVuc2lnbmVkIGxvbmcgaWR4O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTQ0MC1cdFx0aWR4ID0gKGZyYWctXHUwMDNlbWFwIC0gcGFnZS1cdTAwM2VkbWEpIFx1MDAzZVx1MDAzZSBwb29sLVx1MDAzZWJsb2NrX3NoaWZ0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NDQxOlx0XHRtbHg1X2RtYV9wb29sX2ZyZWUocG9vbCwgcGFnZSwgaWR4KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTQ0Mi1cdH1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00NDQtfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NDQ1OkVYUE9SVF9TWU1CT0xfR1BMKG1seDVfZnJhZ19idWZfZnJlZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00NDYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo0NDc6c3RhdGljIHN0cnVjdCBtbHg1X2RiX3BnZGlyICptbHg1X2FsbG9jX2RiX3BnZGlyKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00NDgtXHRcdFx0XHRcdFx0IGludCBub2RlKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTQ1MC1cdHUzMiBkYl9wZXJfcGFnZSA9IFBBR0VfU0laRSAvIGNhY2hlX2xpbmVfc2l6ZSgpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NDUxOlx0c3RydWN0IG1seDVfZGJfcGdkaXIgKnBnZGlyO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNDUyLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTQ2NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjQ2NTpcdHBnZGlyLVx1MDAzZWRiX3BhZ2UgPSBtbHg1X2RtYV96YWxsb2NfY29oZXJlbnRfbm9kZShkZXYsIFBBR0VfU0laRSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTQ2Ni1cdFx0XHRcdFx0XHQgICAgICAgXHUwMDI2cGdkaXItXHUwMDNlZGJfZG1hLCBub2RlKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00NzUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo0NzY6c3RhdGljIGludCBtbHg1X2FsbG9jX2RiX2Zyb21fcGdkaXIoc3RydWN0IG1seDVfZGJfcGdkaXIgKnBnZGlyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NDc3Olx0XHRcdFx0ICAgIHN0cnVjdCBtbHg1X2RiICpkYilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTQ3OC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTAwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NTAxOmludCBtbHg1X2RiX2FsbG9jX25vZGUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfZGIgKmRiLCBpbnQgbm9kZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTUwMi17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo1MDM6XHRzdHJ1Y3QgbWx4NV9kYl9wZ2RpciAqcGdkaXI7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy01MDQtXHRpbnQgcmV0ID0gMDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy01MDgtXHRsaXN0X2Zvcl9lYWNoX2VudHJ5KHBnZGlyLCBcdTAwMjZkZXYtXHUwMDNlcHJpdi5wZ2Rpcl9saXN0LCBsaXN0KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NTA5Olx0XHRpZiAoIW1seDVfYWxsb2NfZGJfZnJvbV9wZ2RpcihwZ2RpciwgZGIpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTEwLVx0XHRcdGdvdG8gb3V0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTExLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NTEyOlx0cGdkaXIgPSBtbHg1X2FsbG9jX2RiX3BnZGlyKGRldiwgbm9kZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy01MTMtXHRpZiAoIXBnZGlyKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTIwLVx0LyogVGhpcyBzaG91bGQgbmV2ZXIgZmFpbCAtLSB3ZSBqdXN0IGFsbG9jYXRlZCBhbiBlbXB0eSBwYWdlOiAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NTIxOlx0V0FSTl9PTihtbHg1X2FsbG9jX2RiX2Zyb21fcGdkaXIocGdkaXIsIGRiKSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy01MjItXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTI3LX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjUyODpFWFBPUlRfU1lNQk9MX0dQTChtbHg1X2RiX2FsbG9jX25vZGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTI5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NTMwOnZvaWQgbWx4NV9kYl9mcmVlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X2RiICpkYilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTUzMS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTM4LVx0aWYgKGJpdG1hcF9mdWxsKGRiLVx1MDAzZXUucGdkaXItXHUwMDNlYml0bWFwLCBkYl9wZXJfcGFnZSkpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjUzOTpcdFx0ZG1hX2ZyZWVfY29oZXJlbnQobWx4NV9jb3JlX2RtYV9kZXYoZGV2KSwgUEFHRV9TSVpFLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTQwLVx0XHRcdFx0ICBkYi1cdTAwM2V1LnBnZGlyLVx1MDAzZWRiX3BhZ2UsIGRiLVx1MDAzZXUucGdkaXItXHUwMDNlZGJfZG1hKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy01NDctfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NTQ4OkVYUE9SVF9TWU1CT0xfR1BMKG1seDVfZGJfZnJlZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy01NDktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo1NTA6dm9pZCBtbHg1X2ZpbGxfcGFnZV9mcmFnX2FycmF5X3Blcm0oc3RydWN0IG1seDVfZnJhZ19idWYgKmJ1ZiwgX19iZTY0ICpwYXMsIHU4IHBlcm0pXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy01NTEte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTU1Ny19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo1NTg6RVhQT1JUX1NZTUJPTF9HUEwobWx4NV9maWxsX3BhZ2VfZnJhZ19hcnJheV9wZXJtKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTU1OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjU2MDp2b2lkIG1seDVfZmlsbF9wYWdlX2ZyYWdfYXJyYXkoc3RydWN0IG1seDVfZnJhZ19idWYgKmJ1ZiwgX19iZTY0ICpwYXMpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy01NjEte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NTYyOlx0bWx4NV9maWxsX3BhZ2VfZnJhZ19hcnJheV9wZXJtKGJ1ZiwgcGFzLCAwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTU2My19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo1NjQ6RVhQT1JUX1NZTUJPTF9HUEwobWx4NV9maWxsX3BhZ2VfZnJhZ19hcnJheSk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTM5LSNpbmNsdWRlIFx1MDAzY2xpbnV4L3JhbmRvbS5oXHUwMDNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6NDA6I2luY2x1ZGUgXHUwMDNjbGludXgvbWx4NS9kcml2ZXIuaFx1MDAzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjQxOiNpbmNsdWRlIFx1MDAzY2xpbnV4L21seDUvZXEuaFx1MDAzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTQyLSNpbmNsdWRlIFx1MDAzY2xpbnV4L2RlYnVnZnMuaFx1MDAzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTQzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjQ0OiNpbmNsdWRlIFwmIzM0O21seDVfY29yZS5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtNDUtI2luY2x1ZGUgXCYjMzQ7bGliL2VxLmhcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtNDktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6NTA6c3RydWN0IG1seDVfaWZjX21ib3hfb3V0X2JpdHMge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTUxLVx0dTggICAgICAgICBzdGF0dXNbMHg4XTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtNTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6NTk6c3RydWN0IG1seDVfaWZjX21ib3hfaW5fYml0cyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtNjAtXHR1OCAgICAgICAgIG9wY29kZVsweDEwXTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9OTc9c3RhdGljIHUxNiBpbl90b191aWQodm9pZCAqaW4pXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEwNC0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxMDU6c3RhdGljIGJvb2wgbWx4NV9jbWRfaXNfdGhyb3R0bGVfb3Bjb2RlKHUxNiBvcClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMDYte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTE4OnN0YXRpYyBzdHJ1Y3QgbWx4NV9jbWRfd29ya19lbnQgKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjExOTpjbWRfYWxsb2NfZW50KHN0cnVjdCBtbHg1X2NtZCAqY21kLCBzdHJ1Y3QgbWx4NV9jbWRfbXNnICppbixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxMjA6XHQgICAgICBzdHJ1Y3QgbWx4NV9jbWRfbXNnICpvdXQsIHZvaWQgKnVvdXQsIGludCB1b3V0X3NpemUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTIxOlx0ICAgICAgbWx4NV9jbWRfY2JrX3QgY2JrLCB2b2lkICpjb250ZXh0LCBpbnQgcGFnZV9xdWV1ZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMjIte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEyMy1cdGdmcF90IGFsbG9jX2ZsYWdzID0gY2JrID8gR0ZQX0FUT01JQyA6IEdGUF9LRVJORUw7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTI0Olx0c3RydWN0IG1seDVfY21kX3dvcmtfZW50ICplbnQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTI1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTQ1OnN0YXRpYyB2b2lkIGNtZF9mcmVlX2VudChzdHJ1Y3QgbWx4NV9jbWRfd29ya19lbnQgKmVudClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNDYte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNDktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTUwOnN0YXRpYyB1OCBhbGxvY190b2tlbihzdHJ1Y3QgbWx4NV9jbWQgKmNtZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNTEte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNjMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTY0OnN0YXRpYyBpbnQgY21kX2FsbG9jX2luZGV4KHN0cnVjdCBtbHg1X2NtZCAqY21kLCBzdHJ1Y3QgbWx4NV9jbWRfd29ya19lbnQgKmVudClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNjUte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xODAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTgxOnN0YXRpYyB2b2lkIGNtZF9mcmVlX2luZGV4KHN0cnVjdCBtbHg1X2NtZCAqY21kLCBpbnQgaWR4KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE4Mi17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE4Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxODg6c3RhdGljIHZvaWQgY21kX2VudF9nZXQoc3RydWN0IG1seDVfY21kX3dvcmtfZW50ICplbnQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTg5LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTkyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE5MzpzdGF0aWMgdm9pZCBjbWRfZW50X3B1dChzdHJ1Y3QgbWx4NV9jbWRfd29ya19lbnQgKmVudClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xOTQte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE5NTpcdHN0cnVjdCBtbHg1X2NtZCAqY21kID0gZW50LVx1MDAzZWNtZDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xOTYtXHR1bnNpZ25lZCBsb25nIGZsYWdzO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MjEzOnN0YXRpYyBzdHJ1Y3QgbWx4NV9jbWRfbGF5b3V0ICpnZXRfaW5zdChzdHJ1Y3QgbWx4NV9jbWQgKmNtZCwgaW50IGlkeClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMTQte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MjE4OnN0YXRpYyBpbnQgbWx4NV9jYWxjX2NtZF9ibG9ja3Moc3RydWN0IG1seDVfY21kX21zZyAqbXNnKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTIxOS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTIyNj1zdGF0aWMgdTggeG9yOF9idWYodm9pZCAqYnVmLCBzaXplX3Qgb2Zmc2V0LCBpbnQgbGVuKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMzgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MjM5OnN0YXRpYyBpbnQgdmVyaWZ5X2Jsb2NrX3NpZyhzdHJ1Y3QgbWx4NV9jbWRfcHJvdF9ibG9jayAqYmxvY2spXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjQwLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoyNDE6XHRzaXplX3QgcnN2ZDBfb2ZmID0gb2Zmc2V0b2Yoc3RydWN0IG1seDVfY21kX3Byb3RfYmxvY2ssIHJzdmQwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yNDItXHRpbnQgeG9yX2xlbiA9IHNpemVvZigqYmxvY2spIC0gc2l6ZW9mKGJsb2NrLVx1MDAzZWRhdGEpIC0gMTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjUyLVxuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTg6MTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTg4MTgKCQkJCQkJCW91dHB1dDogNTAKCQkJCQkJCXRob3VnaHRzOiA3MzAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIFJlYWNoYWJpbGl0eSBvZiBNZWxsYW5veCBtbHg1IENvZGUgaW4gYSBWaXJ0dWFsaXplZCBFbnZpcm9ubWVudCoqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBJIG5lZWQgdG8gZGV0ZXJtaW5lIGlmIHRoZXNlIG1vZGlmaWVkIE1lbGxhbm94IG1seDUgZmlsZXMgYXJlIHJlYWNoYWJsZSB3aXRoaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCwgc3BlY2lmaWNhbGx5IGNvbnNpZGVyaW5nIEdDRSBvciBRRU1VLiBUaGUgZmlsZXMgaW4gcXVlc3Rpb24gYXJlIGBlbl90Yy5jYCwgYG1wZXN3LmNgLCBhbmQgYHNoYXJlZF9mZGIuY2AuIFRoZSBmYWN0IHRoYXQgc3l6a2FsbGVyIGlzIGludm9sdmVkIGltbWVkaWF0ZWx5IHBpcXVlcyBteSBpbnRlcmVzdC4gU3l6a2FsbGVyIGlzIGEgcG93ZXJmdWwgZnV6emVyLCBhbmQgdGhlIHByb21wdCBleHBsaWNpdGx5IGhpZ2hsaWdodHMgY2FzZXMgb2YgJiMzNDtpbXBvc3NpYmxlIHRvIHJlYWNoJiMzNDsgY29kZSBwYXRocyBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuCgpJbml0aWFsbHksIEkmIzM5O2QgYXNzdW1lIE1lbGxhbm94IG1seDUgaXMgdHlwaWNhbGx5IGEgcGh5c2ljYWwgZGV2aWNlLiBIb3dldmVyLCB0aGUgcHJlc2VuY2Ugb2Ygc3l6a2FsbGVyIGNoYW5nZXMgZXZlcnl0aGluZy4gSSBrbm93IHN5emthbGxlciBoYXMgYSBjbHVzdGVyIGFuZCB0aGF0IGl0JiMzOTtzIGFwcGx5aW5nIGEgcGF0Y2guIFRoaXMgc3Ryb25nbHkgc3VnZ2VzdHMgdGhhdCBzeXprYWxsZXIgaXMgc3VjY2Vzc2Z1bGx5IGZ1enppbmcgbWx4NSwgcG9zc2libHkgdGhyb3VnaCBpdHMgUENJIGZ1enplci4gVGhhdCYjMzk7cyB0aGUgY3J1Y2lhbCBxdWVzdGlvbjogY2FuIHN5emthbGxlciYjMzk7cyBQQ0kgZnV6emVyIHJlYWNoIGRlZXAgZW5vdWdoIGludG8gdGhlIG1seDUgZHJpdmVyIHRvIHRyaWdnZXIgY29kZSBwYXRocyBpbiB0aGVzZSBtb2RpZmllZCBmaWxlcz8KClRoZSBwcm9tcHQmIzM5O3MgZXhjbHVzaW9uIG9mICYjMzQ7c29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUmIzM0OyBpcyBrZXkuIFRoZSBwcm9tcHQgd2FudHMgdG8gZXhjbHVkZSBjb2RlIHRoYXQgaXMgaW5hY2Nlc3NpYmxlIGluIEdDRSBvciBRRU1VIGV2ZW4gd2hlbiBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSBsaWtlIHVzYiBnYWRnZXQgb3IgbWFjODAyMTFfaHdzaW0gaXMgdXNlZC4gRG9lcyB0aGUgUENJIGZ1enplciBxdWFsaWZ5PyBXZWxsLCBzeXprYWxsZXIgZG9lcyBydW4gb24gR0NFL1FFTVUsIGFuZCB0aGVyZSYjMzk7cyBhIHN0cm9uZyBpbmRpY2F0aW9uIHRoYXQgaXQgKmNhbiogcmVhY2ggbWx4NS4gVGhlIGF1dGhvciBvZiB0aGUgcGF0Y2ggaXMgbGlzdGVkIGFzICYjMzQ7c3l6LWNsdXN0ZXImIzM0Oywgd2hpY2ggbWVhbnMgc3l6a2FsbGVyIGRpZCBmaW5kIGEgYnVnIGFuZCBpcyB0ZXN0aW5nIHRoZSBwYXRjaCEKCklmIHN5emthbGxlciBpcyB0ZXN0aW5nIGEgcGF0Y2ggYWdhaW5zdCB0aGVzZSBmaWxlcywgaXQmIzM5O3MgY2xlYXIgdGhleSYjMzk7dmUgZm91bmQgYSB3YXkgdG8gdHJpZ2dlciBjb2RlIGluIG1seDUgd2l0aGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuIFRoZSBQQ0kgZnV6emVyIGlzIHRoZSBsaWtlbHkgY3VscHJpdC4gSSByZWNhbGwgdGhhdCBzeXprYWxsZXIgZW5hYmxlcyBudW1lcm91cyBkcml2ZXJzIGZvciBpdHMgUENJIGZ1enplciwgc3VnZ2VzdGluZyB0aGF0IGl0JiMzOTtzIGRlc2lnbmVkIHRvIGludGVyYWN0IHdpdGggYSBicm9hZCByYW5nZSBvZiBQQ0kgZGV2aWNlcy4KCk5vdywgdGhlIG51YW5jZXMgb2YgZW11bGF0aW9uIGFyZSBjcml0aWNhbC4gRG9lcyBzeXprYWxsZXIgYWN0dWFsbHkgKmVtdWxhdGUqIG1seDUsIG9yIGRvZXMgaXQgc2ltcGx5IHByb3ZpZGUgcmFuZG9tIHJlc3BvbnNlcyB0byBNTUlPIHJlYWRzL3dyaXRlcywgYWxsb3dpbmcgaXQgdG8gcGFzcyB0aGUgcHJvYmUgYW5kIGdldCBpbnRvIHRoZSBkcml2ZXI/IEl0JiMzOTtzIHRoZSBsYXR0ZXIsIGlzbiYjMzk7dCBpdD8gVGhlIHByb21wdCBpcyB0cnlpbmcgdG8gZXhjbHVkZSB0cnVlIGVtdWxhdGlvbiwgc28gSSBuZWVkIHRvIGNoZWNrIHRoZSBleGFjdCBmdW5jdGlvbiB0aGF0IHRoZSBwYXRjaCBtb2RpZmllcy4KCkxldCYjMzk7cyBsb29rIGF0IHRoZSBmdW5jdGlvbnMgdGhlbXNlbHZlczogYG1seDVlX3RjX2NsZWFuX2ZkYl9wZWVyX2Zsb3dzYCwgYG1seDVfbXBlc3dfd29ya2AsIGFuZCBgbWx4NV9sYWdfY3JlYXRlX3NpbmdsZV9mZGJfZmlsdGVyYC4gR2l2ZW4gdGhlIFBDSSBmdXp6ZXImIzM5O3MgYXBwcm9hY2gsIGV2ZW4gdGhvdWdoIGl0IGRvZXNuJiMzOTt0IGRvIGEgZnVsbCBlbXVsYXRpb24sIGl0IHByb2JhYmx5IG1lYW5zIHRoYXQgYFdvcnRoRnV6emluZ2Agc2hvdWxkIGJlIGB0cnVlYCEgVGhlIFBDSSBmdXp6ZXIgKmlzKiBhYmxlIHRvIHBhc3MgcHJvYmUsIGFuZCBpcyBhYmxlIHRvIHJlYWNoIHNvbWUgY29kZSBwYXRocyB0aGF0IGFyZSBtb2RpZmllZCwgYW5kIGNhbiBwcm9iYWJseSB0cmlnZ2VyIHNvbWUgaW50ZXJlc3Rpbmcgc2NlbmFyaW9zLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDE4OjExPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O21seDVlX3RjX2NsZWFuX2ZkYl9wZWVyX2Zsb3dzJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdGMuYz01NTMxPWludCBtbHg1ZV90Y19udW1fZmlsdGVycyhzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiwgdW5zaWduZWQgbG9uZyBmbGFncylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdGMuYy01NTM3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3RjLmM6NTUzODp2b2lkIG1seDVlX3RjX2NsZWFuX2ZkYl9wZWVyX2Zsb3dzKHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90Yy5jLTU1Mzkte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lc3dpdGNoLmg9NzQ0PXN0YXRpYyBpbmxpbmUgYm9vbCBtbHg1X2Vzd19pc19mZGJfY3JlYXRlZChzdHJ1Y3QgbWx4NV9lc3dpdGNoICplc3cpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2guaC03NDktLyogVE9ETzogVGhpcyBtbHg1ZV90YyBmdW5jdGlvbiBzaG91bGRuJiMzOTt0IGJlIGNhbGxlZCBieSBlc3dpdGNoICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaC5oOjc1MDp2b2lkIG1seDVlX3RjX2NsZWFuX2ZkYl9wZWVyX2Zsb3dzKHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaC5oLTc1MS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaF9vZmZsb2Fkcy5jPTMzNzk9c3RhdGljIHZvaWQgbWx4NV9lc3dfb2ZmbG9hZHNfdW5wYWlyKHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaF9vZmZsb2Fkcy5jLTMzODItI2lmIElTX0VOQUJMRUQoQ09ORklHX01MWDVfQ0xTX0FDVClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lc3dpdGNoX29mZmxvYWRzLmM6MzM4MzpcdG1seDVlX3RjX2NsZWFuX2ZkYl9wZWVyX2Zsb3dzKGVzdyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaF9vZmZsb2Fkcy5jLTMzODQtI2VuZGlmXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTg6MTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjA3OTAKCQkJCQkJCW91dHB1dDogNDQKCQkJCQkJCXRob3VnaHRzOiA0OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBhbmFseXNpcyBvZiB0aGUgcHJvdmlkZWQgaW5mb3JtYXRpb24sIGFzIGlmIHRoZXNlIHdlcmUgbXkgaW50ZXJuYWwgdGhvdWdodHM6CgoqKkRpc3NlY3RpbmcgdGhlIEZsb3cgQ29udHJvbCBGdW5jdGlvbmFsaXR5KioKCk9rYXksIHNvIEkgc2VlIHRoYXQgYG1seDVlX3RjX2NsZWFuX2ZkYl9wZWVyX2Zsb3dzYCBpcyB0cmlnZ2VyZWQgYnkgYG1seDVfZXN3X29mZmxvYWRzX3VucGFpcmAuIFRoYXQmIzM5O3MgYSBrZXkgY29ubmVjdGlvbiByaWdodCB0aGVyZS4gIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgdGhpcyBtZWFucyBpbiB0ZXJtcyBvZiBvZmZsb2FkIG1hbmFnZW1lbnQgYW5kIGhvdyBmbG93cyBhcmUgY2xlYW5lZCB1cCB3aGVuIHNvbWV0aGluZyBpcyB1bnBhaXJlZC4gVGhlIGRlcGVuZGVuY3kgc3VnZ2VzdHMgdGhpcyBgbWx4NWVfdGNfY2xlYW5fZmRiX3BlZXJfZmxvd3NgIGlzIGNydWNpYWwgZm9yIHRoZSBvdmVyYWxsIGxpZmVjeWNsZSBvZiB0aGVzZSBvZmZsb2FkZWQgZmxvd3MuCgpOb3csIGxldCBtZSBzaGlmdCBnZWFycyBhbmQgZ28gZGlnZ2luZyBpbnRvIGBtbHg1X21wZXN3X3dvcmtgLiBJIGhhdmUgYSBmZWVsaW5nIHRoaXMgaXMgd2hlcmUgdGhpbmdzIHdpbGwgc3RhcnQgdG8gYmVjb21lIGNsZWFyZXIsIGVzcGVjaWFsbHkgdGhlIGFjdHVhbCBqb2Igb3Igb3BlcmF0aW9uIHBlcmZvcm1lZCBieSB0aGUgZnVuY3Rpb24gbWVudGlvbmVkIHByZXZpb3VzbHkuIFRoaXMgcHJvYmFibHkgdGllcyBkaXJlY3RseSBpbnRvIGhvdyB0aGUgb2ZmbG9hZHMgYW5kIHRoZWlyIGFzc29jaWF0ZWQgZmxvd3MgYXJlIG1hbmFnZWQuIExldCYjMzk7cyBzZWUgaWYgdGhpcyBmdW5jdGlvbiYjMzk7cyBsb2dpYyBnaXZlcyBhbnkgbW9yZSBpbnNpZ2h0cyBvbiBmbG93IGRlLWFsbG9jYXRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTg6MTE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bWx4NV9tcGVzd193b3JrJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL21wZXN3LmM9MTc4PXZvaWQgbWx4NV9tcGVzd19zZF9kZXZjb21zX3VubG9jayhzdHJ1Y3QgbWx4NV9sYWcgKmxkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9tcGVzdy5jLTE4OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvbXBlc3cuYzoxOTA6c3RhdGljIHZvaWQgbWx4NV9tcGVzd193b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvbXBlc3cuYy0xOTEte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9tcGVzdy5jOjE5MjpcdHN0cnVjdCBtbHg1X21wZXN3X3dvcmtfc3QgKm1wZXN3dyA9IGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgbWx4NV9tcGVzd193b3JrX3N0LCB3b3JrKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvbXBlc3cuYy0xOTMtXHRzdHJ1Y3QgbWx4NV9kZXZjb21fY29tcF9kZXYgKmRldmNvbTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL21wZXN3LmM9MjIyPXN0YXRpYyBpbnQgbWx4NV9sYWdfbXBlc3dfcXVldWVfd29yayhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvbXBlc3cuYy0yMjUtXHRzdHJ1Y3QgbWx4NV9sYWcgKmxkZXYgPSBtbHg1X2xhZ19kZXYoZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvbXBlc3cuYzoyMjY6XHRzdHJ1Y3QgbWx4NV9tcGVzd193b3JrX3N0ICp3b3JrO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9tcGVzdy5jLTIyNy1cdGludCBlcnIgPSAwO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvbXBlc3cuYy0yMzUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL21wZXN3LmM6MjM2Olx0SU5JVF9XT1JLKFx1MDAyNndvcmstXHUwMDNld29yaywgbWx4NV9tcGVzd193b3JrKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvbXBlc3cuYy0yMzctXHRpbml0X2NvbXBsZXRpb24oXHUwMDI2d29yay1cdTAwM2Vjb21wKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL21wZXN3Lmg9MTU9ZW51bSBtcGVzd19vcCB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9tcGVzdy5oLTE5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9tcGVzdy5oOjIwOnN0cnVjdCBtbHg1X21wZXN3X3dvcmtfc3Qge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9tcGVzdy5oLTIxLVx0c3RydWN0IHdvcmtfc3RydWN0IHdvcms7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTg6MTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjE4NDEKCQkJCQkJCW91dHB1dDogNDkKCQkJCQkJCXRob3VnaHRzOiAxOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyByZXF1ZXN0ZWQ6CgoqKkRpdmluZyBpbnRvIGBtbHg1X2xhZ19jcmVhdGVfc2luZ2xlX2ZkYl9maWx0ZXJgKioKCk9rYXksIHRpbWUgdG8gZGlnIGludG8gYG1seDVfbGFnX2NyZWF0ZV9zaW5nbGVfZmRiX2ZpbHRlcmAuIEdpdmVuIG15IGV4cGVyaWVuY2Ugd2l0aCBNTFg1IGFuZCBMQUcgY29uZmlndXJhdGlvbnMsIEkmIzM5O20gYWxyZWFkeSBhbnRpY2lwYXRpbmcgc29tZSBvZiB0aGUgaW50cmljYWNpZXMgaW52b2x2ZWQuIEkmIzM5O20gZXhwZWN0aW5nIHRoaXMgZnVuY3Rpb24gdG8gaGFuZGxlIHRoZSBjcmVhdGlvbiBvZiBhIEZvcndhcmRpbmcgRGF0YWJhc2UgKEZEQikgZmlsdGVyIHNwZWNpZmljYWxseSBmb3IgYSBzaW5nbGUgZGVzdGluYXRpb24gTUFDIGFkZHJlc3Mgd2l0aGluIGEgTGluayBBZ2dyZWdhdGlvbiBHcm91cCAoTEFHKS4gVGhpcyBpbXBsaWVzIGl0IG5lZWRzIHRvIGludGVyYWN0IHdpdGggdGhlIHVuZGVybHlpbmcgaGFyZHdhcmUsIGxpa2VseSBwcm9ncmFtbWluZyBzb21lIHJlZ2lzdGVycyB3aXRoaW4gdGhlIE1MWDUgTklDIHRvIGVuc3VyZSBwYWNrZXRzIGRlc3RpbmVkIGZvciB0aGF0IE1BQyBhcmUgY29ycmVjdGx5IGZvcndhcmRlZCBhY3Jvc3MgdGhlIGFnZ3JlZ2F0ZWQgbGlua3MuCgpJJiMzOTtsbCBiZSBsb29raW5nIGZvciBob3cgaXQgaGFuZGxlcyB0aGluZ3MgbGlrZSB0aGUgTEFHIElELCB0aGUgc3BlY2lmaWMgTUFDIGFkZHJlc3MgZmlsdGVyLCB0aGUgcG9ydCBvciBwb3J0cyBhc3NvY2lhdGVkIHdpdGggdGhlIExBRywgYW5kIHRoZSBhc3NvY2lhdGVkIFZMQU4gb3Igb3RoZXIgZW5jYXBzdWxhdGlvbiBwYXJhbWV0ZXJzIGlmIGFwcGxpY2FibGUuIEkmIzM5O2xsIHBheSBjbG9zZSBhdHRlbnRpb24gdG8gdGhlIGVycm9yIGhhbmRsaW5nIHdpdGhpbiB0aGUgZnVuY3Rpb24uIERvZXMgaXQgY2hlY2sgZm9yIHJlc291cmNlIGV4aGF1c3Rpb24sIGludmFsaWQgcGFyYW1ldGVycywgb3IgaGFyZHdhcmUgZmFpbHVyZXM/IEhvdyByb2J1c3QgaXMgaXQ/CgpJIGFsc28gd2FudCB0byBzZWUgaG93IGl0IGludGVyYWN0cyB3aXRoIHRoZSBicm9hZGVyIEZEQiBtYW5hZ2VtZW50IHN5c3RlbS4gRG9lcyBpdCBjYWxsIG90aGVyIGZ1bmN0aW9ucyB0byB1cGRhdGUgdGhlIEZEQiB0YWJsZSwgb3IgZG9lcyBpdCBkaXJlY3RseSB3cml0ZSB0aGUgbmVjZXNzYXJ5IGluZm9ybWF0aW9uIHRvIHRoZSByZWxldmFudCBoYXJkd2FyZSBzdHJ1Y3R1cmVzPyBVbmRlcnN0YW5kaW5nIHRoZSBpbnRlcm5hbCBmdW5jdGlvbiBkZXBlbmRlbmNpZXMgd2lsbCBiZSBrZXkgdG8gdW5kZXJzdGFuZGluZyB0aGUgb3ZlcmFsbCBGREIgbWFuYWdlbWVudCBmbG93LiBBbnkgcG90ZW50aWFsIHJhY2UgY29uZGl0aW9ucyBvciBsb2NraW5nIG1lY2hhbmlzbXMgdXNlZCB0byBwcm90ZWN0IHRoZSBGREIgd2lsbCBiZSBvbiBteSByYWRhciB0b28uIEkgaG9wZSB0aGUgY29kZSBpcyB3ZWxsLWNvbW1lbnRlZDsgdGhhdCB3aWxsIHNhdmUgbWUgYSB0b24gb2YgdGltZS4gTGV0JiMzOTtzIGdldCB0byBpdCEKCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTg6MTE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bWx4NV9sYWdfY3JlYXRlX3NpbmdsZV9mZGJfZmlsdGVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL3NoYXJlZF9mZGIuYz00NT1ib29sIG1seDVfbGFnX3NoYXJlZF9mZGJfc3VwcG9ydGVkKHN0cnVjdCBtbHg1X2xhZyAqbGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL3NoYXJlZF9mZGIuYy01MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvc2hhcmVkX2ZkYi5jOjUxOnN0YXRpYyBpbnQgbWx4NV9sYWdfY3JlYXRlX3NpbmdsZV9mZGJfZmlsdGVyKHN0cnVjdCBtbHg1X2xhZyAqbGRldiwgdTMyIGZpbHRlcilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvc2hhcmVkX2ZkYi5jLTUyLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL3NoYXJlZF9mZGIuYz0xODQ9aW50IG1seDVfbGFnX2NyZWF0ZV9zaW5nbGVfZmRiKHN0cnVjdCBtbHg1X2xhZyAqbGRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvc2hhcmVkX2ZkYi5jLTE4NS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL3NoYXJlZF9mZGIuYzoxODY6XHRyZXR1cm4gbWx4NV9sYWdfY3JlYXRlX3NpbmdsZV9mZGJfZmlsdGVyKGxkZXYsIE1MWDVfTEFHX0ZJTFRFUl9BTEwpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9zaGFyZWRfZmRiLmMtMTg3LX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL3NoYXJlZF9mZGIuYz0yMDk9aW50IG1seDVfbGFnX3NoYXJlZF9mZGJfY3JlYXRlKHN0cnVjdCBtbHg1X2xhZyAqbGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL3NoYXJlZF9mZGIuYy0yMzctXHR9IGVsc2Uge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9zaGFyZWRfZmRiLmM6MjM4Olx0XHRlcnIgPSBtbHg1X2xhZ19jcmVhdGVfc2luZ2xlX2ZkYl9maWx0ZXIobGRldiwgZ3JvdXBfaWQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9zaGFyZWRfZmRiLmMtMjM5LVx0XHRpZiAoZXJyKSB7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDE4OjExPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIyNzg2CgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogNDE5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgbWx4NSBSZWFjaGFiaWxpdHkgaW4gVmlydHVhbGl6ZWQgRW52aXJvbm1lbnRzKioKCk9rYXksIHNvIHRoZSBwcm9tcHQgc2F5cyB0byByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAgaWYgdGhlIHBhdGNoIHRhcmdldHMgdW5yZWFjaGFibGUgY29kZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCAmIzM0O0NhbiBtbHg1IGV2ZW4gKmJlKiByZWFjaGVkIGluIEdDRSBvciBRRU1VPyYjMzQ7IElmIHN5emthbGxlciBmb3VuZCBhIGJ1ZyByZWxhdGVkIHRvIGl0LCB0aGVuIHRoZSBhbnN3ZXIgbXVzdCBiZSB5ZXMsIGJ1dCBJIG5lZWQgdG8gdW5kZXJzdGFuZCAqaG93Ki4KClN5emthbGxlciBjYW4gZW11bGF0ZSBQQ0kgZGV2aWNlcyB1c2luZyBgc3l6X3BjaV9lcGAgb3IgYHN5el9wY2lfZXBfd3JpdGVgLCB3aGljaCBtZWFucyBpdOKAmXMgcHJvdmlkaW5nIGEgZmFrZSBQQ0kgY29uZmlnIHNwYWNlIGFuZCBNTUlPIHJlZ2lvbnMuIE5vdywgaWYgdGhlIGRyaXZlciBkb2VzbiYjMzk7dCByZXF1aXJlIHJlYWxseSBjb21wbGV4IGhhcmR3YXJlIGhhbmRzaGFrZXMgdGhhdCBmYWlsIGluc3RhbnRseSwgaXQgbWlnaHQgYWN0dWFsbHkgaGl0IHNvbWUgY29kZS4gVGhlIGtleSBxdWVzdGlvbiBpcyB3aGV0aGVyIG1seDUgaGFzIHN1Y2ggaW5pdGlhbGl6YXRpb24gcmVxdWlyZW1lbnRzLgoKTWVsbGFub3ggbWx4NSBkcml2ZXJzIHJlbHkgb24gZmlybXdhcmUgY29tbWFuZHMgdGhyb3VnaCBjb21tYW5kIHF1ZXVlcyBmb3IgaW5pdGlhbGl6YXRpb24sIHdoaWNoIGlzIGEgYml0IGludm9sdmVkLiBJZiB0aGUgUENJIGZ1enplciBpcyBqdXN0IHRocm93aW5nIHJhbmRvbSBkYXRhIGF0IHRoZSBNTUlPIHJlZ2lvbnMsIHRoZSBkcml2ZXIgbWlnaHQgZmFpbCB0byBpbml0aWFsaXplIOKAkyBvciwgaW4gYSBsdWNreSBndWVzcywgaXQgbWlnaHQgc3VjY2VlZCBpZiB0aGUgcmlnaHQgJiMzNDtyZXNwb25zZXMmIzM0OyBhcmUgcHJvdmlkZWQsIG9yIGlmIHRoZSBkcml2ZXIgc2ltcGx5IGRvZXNuJiMzOTt0IGNoZWNrLgoKU3l6a2FsbGVyIGRvZXMgaGF2ZSBhIGRlZGljYXRlZCBgc3l6X3BjaV9lcGAgZnV6emVyLCBidXQgaXQmIzM5O3MgZ2VuZXJhbGx5IG5vdCB2ZXJ5IGRlZXAgdW5sZXNzIHRoZXJlJiMzOTtzIGFuIGV4cGxpY2l0IGVtdWxhdG9yIGZvciB0aGUgc3BlY2lmaWMgZGV2aWNlLiBJIGtub3cgdGhlcmUmIzM5O3MgYSBgbmV0ZGV2c2ltYCBkcml2ZXIsIGJ1dCBpdOKAmXMgbm90IG1seDUuCgpTbywgZG9lcyBzeXprYWxsZXIgaGF2ZSAqYW55KiB3YXkgdG8gdGVzdCBtbHg1PyBJIG5lZWQgdG8gY2hlY2sgZm9yIGFueSBzb2Z0d2FyZSBlbXVsYXRpb24uIEkgc2hvdWxkIHNlYXJjaCBmb3IgJiMzNDttbHg1JiMzNDsgaW4gdGhlIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9gIGFuZCBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2AgZGlyZWN0b3JpZXMsIHRvIHNlZSBpZiB0aGVyZSYjMzk7cyBhIG1vY2sgb3Igb3RoZXIgZm9ybSBvZiBlbXVsYXRpb24uIFRoYXQgc2hvdWxkIGdpdmUgbWUgdGhlIGFuc3dlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTg6MTI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttb2NrJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDE4OjEyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIzNjYxCgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogMjEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgc3VtbWFyeSwgdGFpbG9yZWQgYXMgaWYgSSYjMzk7bSB0aGlua2luZyBpdDoKCioqQ2hlY2tpbmcgZm9yIFNpbXVsYXRpb24gRW52aXJvbm1lbnRzIGZvciBtbHg1KioKCkFscmlnaHQsIGxldCYjMzk7cyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgdGhlcmUgYXJlIGFueSByZWFkaWx5IGF2YWlsYWJsZSBzaW11bGF0aW9uIGVudmlyb25tZW50cyBmb3IgdGhlIGBtbHg1YCBoYXJkd2FyZS4gU3BlY2lmaWNhbGx5LCBJIG5lZWQgdG8ga25vdyBpZiB0aGVyZSYjMzk7cyBhbnl0aGluZyBsaWtlIGEgYGh3c2ltYCBzZXR1cCBvciBhIG1vcmUgZ2VuZXJhbCBgc2ltYCBlbnZpcm9ubWVudCB0aGF0IEkgY2FuIGxldmVyYWdlLiBLbm93aW5nIHRoZXNlIHdpbGwgc2F2ZSBhIGh1Z2UgYW1vdW50IG9mIGRldmVsb3BtZW50IHRpbWUsIGlmIHRoZXkgZXhpc3QuIEl0IHdvdWxkIGFsbG93IG1lIHRvIHRlc3QgYW5kIGV4cGVyaW1lbnQgd2l0aG91dCByZWx5aW5nIG9uIHRoZSBwaHlzaWNhbCBoYXJkd2FyZSBmb3IgZXZlcnkgbWlub3IgaXRlcmF0aW9uLiBMZXQmIzM5O3Mgc2VlIHdoYXQmIzM5O3Mgb3V0IHRoZXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAxODoxMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzaW0mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnPTE4NT1jb25maWcgTUxYNV9TRlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTE5MC1cdGRldmljZSBjYW4gc3VwcG9ydCBSRE1BLCBuZXRkZXZpY2UgYW5kIHZkcGEgZGV2aWNlLlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc6MTkxOlx0SXQgaXMgc2ltaWxhciB0byBhIFNSSU9WIFZGIGJ1dCBpdCBkb2VzbiYjMzk7dCByZXF1aXJlIFNSSU9WIHN1cHBvcnQuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xOTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZz0xOTM9Y29uZmlnIE1MWDVfU0ZfTUFOQUdFUlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTE5OS1cdHBvcnQgaXMgbWFuYWdlZCB0aHJvdWdoIGRldmxpbmsuICBBIHN1YmZ1bmN0aW9uIHN1cHBvcnRzIFJETUEsIG5ldGRldmljZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc6MjAwOlx0YW5kIHZkcGEgZGV2aWNlLiBJdCBpcyBzaW1pbGFyIHRvIGEgU1JJT1YgVkYgYnV0IGl0IGRvZXNuJiMzOTt0IHJlcXVpcmVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTIwMS1cdFNSSU9WIHN1cHBvcnQuXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTExNDQ9c3RhdGljIHZvaWQgd2FpdF9mdW5jX2hhbmRsZV9leGVjX3RpbWVvdXQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTE1MS1cdC8qIFJlLXdhaXQgb24gdGhlIGVudC1cdTAwM2Vkb25lIGFmdGVyIGV4ZWN1dGluZyB0aGUgcmVjb3ZlcnkgZmxvdy4gSWYgdGhlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTE1MjpcdCAqIHJlY292ZXJ5IGZsb3cgKG9yIGFueSBvdGhlciByZWNvdmVyeSBmbG93IHJ1bm5pbmcgc2ltdWx0YW5lb3VzbHkpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTE1My1cdCAqIGhhcyByZWNvdmVyZWQgYW4gRVFFLCBpdCBzaG91bGQgY2F1c2UgdGhlIGVudHJ5IHRvIGJlIGNvbXBsZXRlZCBieVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz0xMzY0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGZvcHMgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTM2NS1cdC5vd25lclx0PSBUSElTX01PRFVMRSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxMzY2Olx0Lm9wZW5cdD0gc2ltcGxlX29wZW4sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTM2Ny1cdC53cml0ZVx0PSBkYmdfd3JpdGUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTE1NTA9c3RhdGljIHNzaXplX3QgZGF0YV9yZWFkKHN0cnVjdCBmaWxlICpmaWxwLCBjaGFyIF9fdXNlciAqYnVmLCBzaXplX3QgY291bnQsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE1NTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTU1OTpcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcihidWYsIGNvdW50LCBwb3MsIGRiZy1cdTAwM2VvdXRfbXNnLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE1NjAtXHRcdFx0XHQgICAgICAgZGJnLVx1MDAzZW91dGxlbik7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTE1NjM9c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZGZvcHMgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTU2NC1cdC5vd25lclx0PSBUSElTX01PRFVMRSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNTY1Olx0Lm9wZW5cdD0gc2ltcGxlX29wZW4sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTU2Ni1cdC53cml0ZVx0PSBkYXRhX3dyaXRlLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz0xNTcwPXN0YXRpYyBzc2l6ZV90IG91dGxlbl9yZWFkKHN0cnVjdCBmaWxlICpmaWxwLCBjaGFyIF9fdXNlciAqYnVmLCBzaXplX3QgY291bnQsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE1ODEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTU4MjpcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcihidWYsIGNvdW50LCBwb3MsIG91dGxlbiwgZXJyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNTgzLX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9MTYyMT1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBvbGZvcHMgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTYyMi1cdC5vd25lclx0PSBUSElTX01PRFVMRSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNjIzOlx0Lm9wZW5cdD0gc2ltcGxlX29wZW4sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTYyNC1cdC53cml0ZVx0PSBvdXRsZW5fd3JpdGUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYz0xMjk9c3RhdGljIHNzaXplX3QgYXZlcmFnZV9yZWFkKHN0cnVjdCBmaWxlICpmaWxwLCBjaGFyIF9fdXNlciAqYnVmLCBzaXplX3QgY291bnQsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy0xNDItXHRyZXQgPSBzbnByaW50Zih0YnVmLCBzaXplb2YodGJ1ZiksIFwmIzM0OyVsbHVcXG5cJiMzNDssIGZpZWxkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM6MTQzOlx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKGJ1ZiwgY291bnQsIHBvcywgdGJ1ZiwgcmV0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtMTQ0LX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jPTE2Nz1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyByZXNldF9mb3BzID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy0xNjgtXHQub3duZXJcdD0gVEhJU19NT0RVTEUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jOjE2OTpcdC5vcGVuXHQ9IHNpbXBsZV9vcGVuLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy0xNzAtXHQud3JpdGVcdD0gcmVzZXRfd3JpdGUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYz0xNzM9c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgYXZlcmFnZV9mb3BzID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy0xNzQtXHQub3duZXJcdD0gVEhJU19NT0RVTEUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jOjE3NTpcdC5vcGVuXHQ9IHNpbXBsZV9vcGVuLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy0xNzYtXHQucmVhZFx0PSBhdmVyYWdlX3JlYWQsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYz0xNzk9c3RhdGljIHNzaXplX3Qgc2xvdHNfcmVhZChzdHJ1Y3QgZmlsZSAqZmlscCwgY2hhciBfX3VzZXIgKmJ1Ziwgc2l6ZV90IGNvdW50LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtMTkxLVx0cmV0ID0gc25wcmludGYodGJ1Ziwgc2l6ZW9mKHRidWYpLCBcJiMzNDslZFxcblwmIzM0OywgZmllbGQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYzoxOTI6XHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIoYnVmLCBjb3VudCwgcG9zLCB0YnVmLCByZXQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy0xOTMtfVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM9MTk1PXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHNsb3RzX2ZvcHMgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTE5Ni1cdC5vd25lclx0PSBUSElTX01PRFVMRSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM6MTk3Olx0Lm9wZW5cdD0gc2ltcGxlX29wZW4sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTE5OC1cdC5yZWFkXHQ9IHNsb3RzX3JlYWQsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYz00OTQ9c3RhdGljIHNzaXplX3QgZGJnX3JlYWQoc3RydWN0IGZpbGUgKmZpbHAsIGNoYXIgX191c2VyICpidWYsIHNpemVfdCBjb3VudCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTUyOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM6NTI5Olx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKGJ1ZiwgY291bnQsIHBvcywgdGJ1ZiwgcmV0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtNTMwLX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jPTUzMj1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBmb3BzID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy01MzMtXHQub3duZXJcdD0gVEhJU19NT0RVTEUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jOjUzNDpcdC5vcGVuXHQ9IHNpbXBsZV9vcGVuLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy01MzUtXHQucmVhZFx0PSBkYmdfcmVhZCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaD01MzY9c3RydWN0IG1seDVlX2ljb3NxIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaC01NTYtXHQgKiAoTkFQSSBzb2Z0aXJxIG9yIHByb2Nlc3Mvd29ya3F1ZXVlKS4gQWx3YXlzIHVzZSBzcGluX2xvY2tfYmggZm9yXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaDo1NTc6XHQgKiBzaW1wbGljaXR5IGFuZCBjb3JyZWN0bmVzcyBhY3Jvc3MgYWxsIGNvbnRleHRzLlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmgtNTU4LVx0ICovXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmg9ODgxPXN0cnVjdCBtbHg1ZV94c2sge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oLTg5NS0gKiBtdXN0IG5vdCBmYWlsLiBVc2Ugd2l0aCBjYXJlIGFuZCBtYWtlIHN1cmUgdGhlIHNhbWUgdmFyaWFibGUgaXMgbm90IHVzZWRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oOjg5NjogKiBzaW11bHRhbmVvdXNseSBieSBtdWx0aXBsZSB1c2Vycy5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oLTg5Ny0gKi9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcGFyYW1zLmM9NDk3PXUzMiBtbHg1ZV9tcHdycV9tYXhfcGFnZV9zaXplKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9wYXJhbXMuYy01MDItXHQvKiBUd28gTVRUcyBhcmUgbmVlZGVkIHRvIGZvcm0gYW4gb2N0d29yZC4gRHJpdmVyIGlzIHVzaW5nIGFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9wYXJhbXMuYzo1MDM6XHQgKiBzaW5nbGUgcGFnZSBwZXIgTVRUIGZvciBzaW1wbGljaXR5LiBIZW5jZSB0aGUgbGltaXQgb2YgaGF2aW5nXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcGFyYW1zLmMtNTA0LVx0ICogYXQgbGVhc3QgMiBwYWdlcyBwZXIgV1FFLlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvdGMuYz0yNDc9aW50IG1seDVlX3JlcF9zZXR1cF90YyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBlbnVtIHRjX3NldHVwX3R5cGUgdHlwZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL3RjLmMtMjU2LVx0Y2FzZSBUQ19TRVRVUF9CTE9DSzpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvdGMuYzoyNTc6XHRcdHJldHVybiBmbG93X2Jsb2NrX2NiX3NldHVwX3NpbXBsZSh0eXBlX2RhdGEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL3RjLmMtMjU4LVx0XHRcdFx0XHRcdCAgXHUwMDI2bWx4NWVfcmVwX2Jsb2NrX3RjX2NiX2xpc3QsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcC90Yy5jLTI2MS1cdGNhc2UgVENfU0VUVVBfRlQ6XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL3RjLmM6MjYyOlx0XHRyZXR1cm4gZmxvd19ibG9ja19jYl9zZXR1cF9zaW1wbGUodHlwZV9kYXRhLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcC90Yy5jLTI2My1cdFx0XHRcdFx0XHQgIFx1MDAyNm1seDVlX3JlcF9ibG9ja19mdF9jYl9saXN0LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Y190dW5fZ2VuZXZlLmM9NjQ9c3RhdGljIGludCBtbHg1ZV90Y190dW5faW5pdF9lbmNhcF9hdHRyX2dlbmV2ZShzdHJ1Y3QgbmV0X2RldmljZSAqdHVubmVsX2Rldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGNfdHVuX2dlbmV2ZS5jLTcwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjX3R1bl9nZW5ldmUuYzo3MTpcdC8qIFJlZm9ybWF0IHR5cGUgZm9yIEdFTkVWRSBlbmNhcCBpcyBzaW1pbGFyIHRvIFZYTEFOOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjX3R1bl9nZW5ldmUuYy03Mi1cdCAqIGluIGJvdGggY2FzZXMgdGhlIEhXIGFkZHMgaW4gdGhlIHNhbWUgcGxhY2UgYVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi94ZHAuYz0yMDM9ZW51bSBtbHg1X3Jzc19oYXNoX3R5cGUge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi94ZHAuYy0yMjMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4veGRwLmM6MjI0Oi8qIEludmFsaWQgY29tYmluYXRpb25zIHdpbGwgc2ltcGx5IHJldHVybiB6ZXJvLCBhbGxvd3Mgbm8gYm91bmRhcnkgY2hlY2tzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4veGRwLmMtMjI1LXN0YXRpYyBjb25zdCBlbnVtIHhkcF9yc3NfaGFzaF90eXBlIG1seDVfeGRwX3Jzc190eXBlW1JTU19UWVBFX01BWF9UQUJMRV0gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYz0zOTc4PXN0YXRpYyBpbnQgbWx4NWVfc2V0dXBfdGNfbXFwcmlvKHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMtMzk4MS1cdC8qIE1RUFJJTyBpcyBhbm90aGVyIHRvcGxldmVsIHFkaXNjIHRoYXQgY2FuJiMzOTt0IGJlIGF0dGFjaGVkXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jOjM5ODI6XHQgKiBzaW11bHRhbmVvdXNseSB3aXRoIHRoZSBvZmZsb2FkZWQgSFRCLlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYy0zOTgzLVx0ICovXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYz00MDAyPXN0YXRpYyBpbnQgbWx4NWVfc2V0dXBfdGMoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgZW51bSB0Y19zZXR1cF90eXBlIHR5cGUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYy00MDIwLVx0XHRmLVx1MDAzZXVubG9ja2VkX2RyaXZlcl9jYiA9IHRydWU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jOjQwMjE6XHRcdHJldHVybiBmbG93X2Jsb2NrX2NiX3NldHVwX3NpbXBsZSh0eXBlX2RhdGEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jLTQwMjItXHRcdFx0XHRcdFx0ICBcdTAwMjZtbHg1ZV9ibG9ja19jYl9saXN0LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmM9NTUzNj1zdGF0aWMgdm9pZCBtbHg1ZV9nZXRfYmFzZV9zdGF0cyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMtNTYyNC1cdCAqICAgIC0gIGJlZW4gc2h1dGRvd24gYW5kIHNldCB0byBOVUxMLCBvclxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYzo1NjI1Olx0ICogICAgLSAgc2ltcGx5IGRpc2FibGVkIChiaXQgdW5zZXQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jLTU2MjYtXHQgKlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmM9NTc1OD1zdGF0aWMgaW50IG1seDVlX3F1ZXVlX3N0b3Aoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdm9pZCAqb2xkcSwgaW50IHF1ZXVlX2luZGV4KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYy01NzU5LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmM6NTc2MDpcdC8qIEluIG1seDUgYSB0eHEgY2Fubm90IGJlIHNpbXBseSBzdG9wcGVkIGluIGlzb2xhdGlvbiwgb25seSByZXN0YXJ0ZWQuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jLTU3NjEtXHQgKiBtbHg1ZV9xdWV1ZV9zdGFydCBkb2VzIG5vdCBmYWlsLCB3ZSBzdG9wIHRoZSBvbGQgcXVldWUgdGhlcmUuXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3J4LmM9MTM2NT1zdGF0aWMgaW5saW5lIHZvaWQgbWx4NWVfaGFuZGxlX2NzdW0oc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fcnguYy0xMzkzLVx0ICogRGV0ZWN0aW5nIHRoZXNlIHBhZGRlZCBmcmFtZXMgcmVxdWlyZXMgdG8gdmVyaWZ5IGFuZCBwYXJzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3J4LmM6MTM5NDpcdCAqIElQIGhlYWRlcnMsIHNvIHdlIHNpbXBseSBmb3JjZSBhbGwgdGhvc2Ugc21hbGwgZnJhbWVzIHRvIGJlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fcnguYy0xMzk1LVx0ICogQ0hFQ0tTVU1fVU5ORUNFU1NBUlkgZXZlbiBpZiB0aGV5IGFyZSBub3QgcGFkZGVkLlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lc3dpdGNoX29mZmxvYWRzLmM9ODY9bWx4NV9lc3dpdGNoX3NldF9ydWxlX2Zsb3dfc291cmNlKHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaF9vZmZsb2Fkcy5jLTEwNC0vKiBBY3R1YWxseSBvbmx5IHRoZSB1cHBlciAxNiBiaXRzIG9mIHJlZyBjMCBuZWVkIHRvIGJlIGNsZWFyZWQsIGJ1dCB0aGUgbG93ZXIgMTYgYml0c1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2hfb2ZmbG9hZHMuYzoxMDU6ICogYXJlIG5vdCBuZWVkZWQgYXMgd2VsbCBpbiB0aGUgZm9sbG93aW5nIHByb2Nlc3MuIFNvIGNsZWFyIHRoZW0gYWxsIGZvciBzaW1wbGljaXR5LlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2hfb2ZmbG9hZHMuYy0xMDYtICovXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xpYi9jcnlwdG8uYz00NTQ9c3RhdGljIGludCBtbHg1X2NyeXB0b19kZWtfcG9vbF9wdXNoKHN0cnVjdCBtbHg1X2NyeXB0b19kZWtfcG9vbCAqcG9vbCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGliL2NyeXB0by5jLTQ3Ni0gKiBod2VpZ2h0X2xvbmcobmVlZF9zeW5jIFhPUiBpbl91c2UpLCBhbmQgdGhlIG5lZWRfc3luYyBiaXRzIGNhbiBiZSByZXNldFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xpYi9jcnlwdG8uYzo0Nzc6ICogYnkgc2ltcGx5IGNvcHlpbmcgZnJvbSBpbl91c2UgYml0cy5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9saWIvY3J5cHRvLmMtNDc4LSAqL1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9saWIvc2QuYz03NTU9c3RhdGljIHNzaXplX3QgZGV2X3JlYWQoc3RydWN0IGZpbGUgKmZpbHAsIGNoYXIgX191c2VyICpidWYsIHNpemVfdCBjb3VudCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGliL3NkLmMtNzY1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xpYi9zZC5jOjc2NjpcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcihidWYsIGNvdW50LCBwb3MsIHRidWYsIHJldCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGliL3NkLmMtNzY3LX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGliL3NkLmM9NzY5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGRldl9mb3BzID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xpYi9zZC5jLTc3MC1cdC5vd25lclx0PSBUSElTX01PRFVMRSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9saWIvc2QuYzo3NzE6XHQub3Blblx0PSBzaW1wbGVfb3BlbixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9saWIvc2QuYy03NzItXHQucmVhZFx0PSBkZXZfcmVhZCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jPTY4PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM6Njk6aHdzX2J3Y19tYXRjaGVyX21vdmVfYWxsX3NpbXBsZShzdHJ1Y3QgbWx4NWh3c19id2NfbWF0Y2hlciAqYndjX21hdGNoZXIpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jLTcwLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jPTE2Nj1zdGF0aWMgaW50IGh3c19id2NfbWF0Y2hlcl9tb3ZlX2FsbChzdHJ1Y3QgbWx4NWh3c19id2NfbWF0Y2hlciAqYndjX21hdGNoZXIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy0xNjktXHRjYXNlIE1MWDVIV1NfQldDX01BVENIRVJfU0lNUExFOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYzoxNzA6XHRcdHJldHVybiBod3NfYndjX21hdGNoZXJfbW92ZV9hbGxfc2ltcGxlKGJ3Y19tYXRjaGVyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtMTcxLVx0Y2FzZSBNTFg1SFdTX0JXQ19NQVRDSEVSX0NPTVBMRVhfRklSU1Q6XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYz0xODA9c3RhdGljIGludCBod3NfYndjX21hdGNoZXJfbW92ZShzdHJ1Y3QgbWx4NWh3c19id2NfbWF0Y2hlciAqYndjX21hdGNoZXIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy0yMjUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jOjIyNjppbnQgbWx4NWh3c19id2NfbWF0Y2hlcl9jcmVhdGVfc2ltcGxlKHN0cnVjdCBtbHg1aHdzX2J3Y19tYXRjaGVyICpid2NfbWF0Y2hlcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtMjI3LVx0XHRcdFx0ICAgICAgc3RydWN0IG1seDVod3NfdGFibGUgKnRhYmxlLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM9MzIwPW1seDVod3NfYndjX21hdGNoZXJfY3JlYXRlKHN0cnVjdCBtbHg1aHdzX3RhYmxlICp0YWJsZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jLTM1Mi1cdGVsc2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM6MzUzOlx0XHRyZXQgPSBtbHg1aHdzX2J3Y19tYXRjaGVyX2NyZWF0ZV9zaW1wbGUoYndjX21hdGNoZXIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jLTM1NC1cdFx0XHRcdFx0XHRcdHRhYmxlLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtMzY5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYzozNzA6aW50IG1seDVod3NfYndjX21hdGNoZXJfZGVzdHJveV9zaW1wbGUoc3RydWN0IG1seDVod3NfYndjX21hdGNoZXIgKmJ3Y19tYXRjaGVyKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy0zNzEte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM9Mzg3PWludCBtbHg1aHdzX2J3Y19tYXRjaGVyX2Rlc3Ryb3koc3RydWN0IG1seDVod3NfYndjX21hdGNoZXIgKmJ3Y19tYXRjaGVyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtMzk5LVx0ZWxzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYzo0MDA6XHRcdG1seDVod3NfYndjX21hdGNoZXJfZGVzdHJveV9zaW1wbGUoYndjX21hdGNoZXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy00MDEtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYz02MDg9c3RhdGljIGludCBod3NfYndjX3J1bGVfY250X2RlY193aXRoX3NocmluayhzdHJ1Y3QgbWx4NWh3c19id2NfcnVsZSAqYndjX3J1bGUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy02NDAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jOjY0MTppbnQgbWx4NWh3c19id2NfcnVsZV9kZXN0cm95X3NpbXBsZShzdHJ1Y3QgbWx4NWh3c19id2NfcnVsZSAqYndjX3J1bGUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jLTY0Mi17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYz02NjU9aW50IG1seDVod3NfYndjX3J1bGVfZGVzdHJveShzdHJ1Y3QgbWx4NWh3c19id2NfcnVsZSAqYndjX3J1bGUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy02NzMtXHRlbHNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jOjY3NDpcdFx0cmV0ID0gbWx4NWh3c19id2NfcnVsZV9kZXN0cm95X3NpbXBsZShid2NfcnVsZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jLTY3NS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jPTEwMDA9c3RhdGljIGludCBod3NfYndjX3J1bGVfY250X2luY193aXRoX3JlaGFzaChzdHJ1Y3QgbWx4NWh3c19id2NfcnVsZSAqYndjX3J1bGUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy0xMDM1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYzoxMDM2OmludCBtbHg1aHdzX2J3Y19ydWxlX2NyZWF0ZV9zaW1wbGUoc3RydWN0IG1seDVod3NfYndjX3J1bGUgKmJ3Y19ydWxlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy0xMDM3LVx0XHRcdFx0ICAgdTMyICptYXRjaF9wYXJhbSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jPTExMzk9bWx4NWh3c19id2NfcnVsZV9jcmVhdGUoc3RydWN0IG1seDVod3NfYndjX21hdGNoZXIgKmJ3Y19tYXRjaGVyLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtMTE3MC1cdGVsc2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM6MTE3MTpcdFx0cmV0ID0gbWx4NWh3c19id2NfcnVsZV9jcmVhdGVfc2ltcGxlKGJ3Y19ydWxlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy0xMTcyLVx0XHRcdFx0XHRcdCAgICAgcGFyYW1zLVx1MDAzZW1hdGNoX2J1Zixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5oPTIxPWVudW0gbWx4NWh3c19id2NfbWF0Y2hlcl90eXBlIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5oLTI5LVx0LyogQSBzdWJtYXRjaGVyIHRoYXQgaXMgcGFydCBvZiBhIGNvbXBsZXggbWF0Y2hlci4gRm9yIG1vc3QgcHVycG9zZXNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmg6MzA6XHQgKiB0aGVzZSBhcmUgdHJlYXRlZCBhcyBzaW1wbGUgbWF0Y2hlcnMsIGV4Y2VwdCB3aGVuIGl0IGNvbWVzIHRvIG1vdmluZ1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuaC0zMS1cdCAqIHJ1bGVzIGR1cmluZyByZXNpemUuXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuaD03MD1pbnRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmg6NzE6bWx4NWh3c19id2NfbWF0Y2hlcl9jcmVhdGVfc2ltcGxlKHN0cnVjdCBtbHg1aHdzX2J3Y19tYXRjaGVyICpid2NfbWF0Y2hlcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmgtNzItXHRcdFx0XHQgIHN0cnVjdCBtbHg1aHdzX3RhYmxlICp0YWJsZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5oLTc3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuaDo3ODppbnQgbWx4NWh3c19id2NfbWF0Y2hlcl9kZXN0cm95X3NpbXBsZShzdHJ1Y3QgbWx4NWh3c19id2NfbWF0Y2hlciAqYndjX21hdGNoZXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuaC03OS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5oPTgyPXZvaWQgbWx4NWh3c19id2NfcnVsZV9mcmVlKHN0cnVjdCBtbHg1aHdzX2J3Y19ydWxlICpid2NfcnVsZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5oLTgzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuaDo4NDppbnQgbWx4NWh3c19id2NfcnVsZV9jcmVhdGVfc2ltcGxlKHN0cnVjdCBtbHg1aHdzX2J3Y19ydWxlICpid2NfcnVsZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmgtODUtXHRcdFx0XHQgICB1MzIgKm1hdGNoX3BhcmFtLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmgtODktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5oOjkwOmludCBtbHg1aHdzX2J3Y19ydWxlX2Rlc3Ryb3lfc2ltcGxlKHN0cnVjdCBtbHg1aHdzX2J3Y19ydWxlICpid2NfcnVsZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5oLTkxLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYz0xOTU9c3RhdGljIHZvaWQgaHdzX2F2b2lkX2lwdjZfc3BsaXQoc3RydWN0IG1seDVod3NfbWF0Y2hfcGFyYW1ldGVycyAqb3JpZyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmMtMjE2LSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jOjIxNzpzdGF0aWMgaW50IGh3c19nZXRfc2ltcGxlX3BhcmFtcyhzdHJ1Y3QgbWx4NWh3c19jb250ZXh0ICpjdHgsIHU4IG1hdGNoX2NyaXRlcmlhLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTIxOC1cdFx0XHRcdCBzdHJ1Y3QgbWx4NWh3c19tYXRjaF9wYXJhbWV0ZXJzICpvcmlnLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYy0yNjYtXHRcdFx0ICpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYzoyNjc6XHRcdFx0ICogRm9yIG5vdywga2VlcCB0aGUgY29kZSBzaW1wbGUuIFRoaXMgcmVzdWx0cyBpbiBhblxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTI2OC1cdFx0XHQgKiBleHRyYSBzdWJtYXRjaGVyIGluIHNvbWUgY2FzZXMsIGJ1dCBpdCYjMzk7cyBnb29kIGVub3VnaC5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmM9Mjk5PWh3c19id2NfbWF0Y2hlcl9zcGxpdF9tYXNrKHN0cnVjdCBtbHg1aHdzX2NvbnRleHQgKmN0eCwgdTggbWF0Y2hfY3JpdGVyaWEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTMyOS1cdFx0fVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jOjMzMDpcdFx0cmV0ID0gaHdzX2dldF9zaW1wbGVfcGFyYW1zKGN0eCwgbWF0Y2hfY3JpdGVyaWEsIFx1MDAyNm1hc2tfY29weSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYy0zMzEtXHRcdFx0XHRcdCAgICBcdTAwMjZzdWJtYXNrc1tpXSk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jPTM4OD1zdGF0aWMgaW50IGh3c19zdWJtYXRjaGVyX2luaXRfZmlyc3Qoc3RydWN0IG1seDVod3NfYndjX21hdGNoZXIgKmNtYXRjaGVyLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYy00MTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmM6NDExOlx0cmV0ID0gbWx4NWh3c19id2NfbWF0Y2hlcl9jcmVhdGVfc2ltcGxlKHN1Ym0tXHUwMDNlYndjX21hdGNoZXIsIHN1Ym0tXHUwMDNldGJsLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTQxMi1cdFx0XHRcdFx0XHRwcmlvcml0eSwgbWF0Y2hfY3JpdGVyaWEsIG1hc2ssXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTQyNy1kZXN0cm95X21hdGNoZXI6XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmM6NDI4Olx0bWx4NWh3c19id2NfbWF0Y2hlcl9kZXN0cm95X3NpbXBsZShzdWJtLVx1MDAzZWJ3Y19tYXRjaGVyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYy00MjktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jPTQzMz1zdGF0aWMgaW50IGh3c19zdWJtYXRjaGVyX2luaXQoc3RydWN0IG1seDVod3NfYndjX21hdGNoZXIgKmNtYXRjaGVyLCBpbnQgaWR4LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYy00ODEtXHQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYzo0ODI6XHRyZXQgPSBtbHg1aHdzX2J3Y19tYXRjaGVyX2NyZWF0ZV9zaW1wbGUoc3VibS1cdTAwM2Vid2NfbWF0Y2hlciwgc3VibS1cdTAwM2V0YmwsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmMtNDgzLVx0XHRcdFx0XHRcdHByaW9yaXR5LCBtYXRjaF9jcml0ZXJpYSwgbWFzayxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmMtNDk5LWRlc3Ryb3lfbWF0Y2hlcjpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYzo1MDA6XHRtbHg1aHdzX2J3Y19tYXRjaGVyX2Rlc3Ryb3lfc2ltcGxlKHN1Ym0tXHUwMDNlYndjX21hdGNoZXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTUwMS1mcmVlX21hdGNoZXI6XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jPTUxMT1zdGF0aWMgdm9pZCBod3Nfc3VibWF0Y2hlcl9kZXN0cm95KHN0cnVjdCBtbHg1aHdzX2J3Y19tYXRjaGVyICpjbWF0Y2hlcixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmMtNTIyLVx0aWYgKHN1Ym0tXHUwMDNlYndjX21hdGNoZXIpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYzo1MjM6XHRcdG1seDVod3NfYndjX21hdGNoZXJfZGVzdHJveV9zaW1wbGUoc3VibS1cdTAwM2Vid2NfbWF0Y2hlcik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmMtNTI0LVx0XHRpZiAoaWR4KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYz02Njc9X19tdXN0X2hvbGQoXHUwMDI2c3VibS1cdTAwM2VoYXNoX2xvY2spXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTcwMS1cdFx0ICogTm90ZSB0aGF0IHdlIGRvbiYjMzk7dCBoYXZlIGFueSBpbmRpY2F0aW9uIGZvciB0aGUgcnVsZSBjcmVhdGlvblxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jOjcwMjpcdFx0ICogcHJvY2VzcyB0aGF0IGEgcnVsZSB3aXRoIHNpbWlsYXIgbWF0Y2hpbmcgcGFyYW1zIGFscmVhZHlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYy03MDMtXHRcdCAqIGV4aXN0cyAtIG5vIGhhcm0gZG9uZSB3aGVuIHRoaXMgcnVsZSBpcyBiZSBvdmVyd3JpdHRlbiBieVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYz03NDk9c3RhdGljIGludCBod3NfY29tcGxleF9zdWJydWxlX2NyZWF0ZShzdHJ1Y3QgbWx4NWh3c19id2NfbWF0Y2hlciAqY21hdGNoZXIsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTc4Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYzo3ODM6XHRyZXQgPSBtbHg1aHdzX2J3Y19ydWxlX2NyZWF0ZV9zaW1wbGUoc3VicnVsZSwgbWF0Y2hfcGFyYW1zLCBhY3Rpb25zLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTc4NC1cdFx0XHRcdFx0ICAgICBmbG93X3NvdXJjZSwgYndjX3F1ZXVlX2lkeCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jPTc5OT1zdGF0aWMgaW50IGh3c19jb21wbGV4X3N1YnJ1bGVfZGVzdHJveShzdHJ1Y3QgbWx4NWh3c19id2NfcnVsZSAqYndjX3J1bGUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTgxNi1cdGJ3Y19ydWxlLVx1MDAzZXJ1bGUtXHUwMDNlc2tpcF9kZWxldGUgPSAhaXNfbGFzdF9ydWxlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jOjgxNzpcdHJldCA9IG1seDVod3NfYndjX3J1bGVfZGVzdHJveV9zaW1wbGUoYndjX3J1bGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTgxOC1cdGlmICh1bmxpa2VseShyZXQpKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYz05Njk9aW50IG1seDVod3NfYndjX21hdGNoZXJfY29tcGxleF9tb3ZlKHN0cnVjdCBtbHg1aHdzX2J3Y19tYXRjaGVyICpid2NfbWF0Y2hlcilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmMtOTkzLVx0XHRsaXN0X2Zvcl9lYWNoX2VudHJ5KHRtcF9id2NfcnVsZSwgcnVsZXNfbGlzdCwgbGlzdF9ub2RlKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmM6OTk0Olx0XHRcdC8qIENoZWNrIGlmIGEgcnVsZSB3aXRoIHNpbWlsYXIgdGFnIGhhcyBhbHJlYWR5XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmMtOTk1LVx0XHRcdCAqIGJlZW4gbW92ZWQuXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5oPTMyPXN0cnVjdCBtbHg1aHdzX2J3Y19jb21wbGV4X3N1Ym1hdGNoZXIge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguaC00MC1cdHN0cnVjdCBtbHg1aHdzX2FjdGlvbiAqYWN0aW9uX3RibDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguaDo0MTpcdC8qIFRoaXMgc3VibWF0Y2hlciYjMzk7cyBzaW1wbGUgbWF0Y2hlci4gVGhlIGZpcnN0IHN1Ym1hdGNoZXIgcG9pbnRzIHRvIHRoZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5oLTQyLVx0ICogb3V0ZXIgKGNvbXBsZXgpIG1hdGNoZXIuXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmM9NzIxPWh3c19kZWZpbmVyX2NvbnZfb3V0ZXIoc3RydWN0IG1seDVod3NfZGVmaW5lcl9jb252X2RhdGEgKmNkLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTgxNC1cdFx0SFdTX1NFVF9IRFIoZmMsIG1hdGNoX3BhcmFtLCBJUFY2X1NSQ18xMjdfOTZfTyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jOjgxNTpcdFx0XHQgICAgb3V0ZXJfaGVhZGVycy5zcmNfaXB2NF9zcmNfaXB2Ni5pcHY2X3NpbXBsZV9sYXlvdXQuaXB2Nl8xMjdfOTYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy04MTYtXHRcdFx0ICAgIGlwdjZfc3JjX291dGVyLmlwdjZfYWRkcmVzc18xMjdfOTYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtODE3LVx0XHRIV1NfU0VUX0hEUihmYywgbWF0Y2hfcGFyYW0sIElQVjZfU1JDXzk1XzY0X08sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYzo4MTg6XHRcdFx0ICAgIG91dGVyX2hlYWRlcnMuc3JjX2lwdjRfc3JjX2lwdjYuaXB2Nl9zaW1wbGVfbGF5b3V0LmlwdjZfOTVfNjQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy04MTktXHRcdFx0ICAgIGlwdjZfc3JjX291dGVyLmlwdjZfYWRkcmVzc185NV82NCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy04MjAtXHRcdEhXU19TRVRfSERSKGZjLCBtYXRjaF9wYXJhbSwgSVBWNl9TUkNfNjNfMzJfTyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jOjgyMTpcdFx0XHQgICAgb3V0ZXJfaGVhZGVycy5zcmNfaXB2NF9zcmNfaXB2Ni5pcHY2X3NpbXBsZV9sYXlvdXQuaXB2Nl82M18zMixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTgyMi1cdFx0XHQgICAgaXB2Nl9zcmNfb3V0ZXIuaXB2Nl9hZGRyZXNzXzYzXzMyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTgyMy1cdFx0SFdTX1NFVF9IRFIoZmMsIG1hdGNoX3BhcmFtLCBJUFY2X1NSQ18zMV8wX08sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYzo4MjQ6XHRcdFx0ICAgIG91dGVyX2hlYWRlcnMuc3JjX2lwdjRfc3JjX2lwdjYuaXB2Nl9zaW1wbGVfbGF5b3V0LmlwdjZfMzFfMCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTgyNS1cdFx0XHQgICAgaXB2Nl9zcmNfb3V0ZXIuaXB2Nl9hZGRyZXNzXzMxXzApO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTgyNy1cdFx0SFdTX1NFVF9IRFIoZmMsIG1hdGNoX3BhcmFtLCBJUFY2X0RTVF8xMjdfOTZfTyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jOjgyODpcdFx0XHQgICAgb3V0ZXJfaGVhZGVycy5kc3RfaXB2NF9kc3RfaXB2Ni5pcHY2X3NpbXBsZV9sYXlvdXQuaXB2Nl8xMjdfOTYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy04MjktXHRcdFx0ICAgIGlwdjZfZHN0X291dGVyLmlwdjZfYWRkcmVzc18xMjdfOTYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtODMwLVx0XHRIV1NfU0VUX0hEUihmYywgbWF0Y2hfcGFyYW0sIElQVjZfRFNUXzk1XzY0X08sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYzo4MzE6XHRcdFx0ICAgIG91dGVyX2hlYWRlcnMuZHN0X2lwdjRfZHN0X2lwdjYuaXB2Nl9zaW1wbGVfbGF5b3V0LmlwdjZfOTVfNjQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy04MzItXHRcdFx0ICAgIGlwdjZfZHN0X291dGVyLmlwdjZfYWRkcmVzc185NV82NCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy04MzMtXHRcdEhXU19TRVRfSERSKGZjLCBtYXRjaF9wYXJhbSwgSVBWNl9EU1RfNjNfMzJfTyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jOjgzNDpcdFx0XHQgICAgb3V0ZXJfaGVhZGVycy5kc3RfaXB2NF9kc3RfaXB2Ni5pcHY2X3NpbXBsZV9sYXlvdXQuaXB2Nl82M18zMixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTgzNS1cdFx0XHQgICAgaXB2Nl9kc3Rfb3V0ZXIuaXB2Nl9hZGRyZXNzXzYzXzMyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTgzNi1cdFx0SFdTX1NFVF9IRFIoZmMsIG1hdGNoX3BhcmFtLCBJUFY2X0RTVF8zMV8wX08sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYzo4Mzc6XHRcdFx0ICAgIG91dGVyX2hlYWRlcnMuZHN0X2lwdjRfZHN0X2lwdjYuaXB2Nl9zaW1wbGVfbGF5b3V0LmlwdjZfMzFfMCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTgzOC1cdFx0XHQgICAgaXB2Nl9kc3Rfb3V0ZXIuaXB2Nl9hZGRyZXNzXzMxXzApO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTg0MS1cdFx0SFdTX1NFVF9IRFIoZmMsIG1hdGNoX3BhcmFtLCBJUFY0X1NSQ19PLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmM6ODQyOlx0XHRcdCAgICBvdXRlcl9oZWFkZXJzLnNyY19pcHY0X3NyY19pcHY2LmlwdjZfc2ltcGxlX2xheW91dC5pcHY2XzMxXzAsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy04NDMtXHRcdFx0ICAgIGlwdjRfc3JjX2Rlc3Rfb3V0ZXIuc291cmNlX2FkZHJlc3MpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTg0NS1cdFx0SFdTX1NFVF9IRFIoZmMsIG1hdGNoX3BhcmFtLCBJUFY0X0RTVF9PLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmM6ODQ2Olx0XHRcdCAgICBvdXRlcl9oZWFkZXJzLmRzdF9pcHY0X2RzdF9pcHY2LmlwdjZfc2ltcGxlX2xheW91dC5pcHY2XzMxXzAsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy04NDctXHRcdFx0ICAgIGlwdjRfc3JjX2Rlc3Rfb3V0ZXIuZGVzdGluYXRpb25fYWRkcmVzcyk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmM9ODk4PWh3c19kZWZpbmVyX2NvbnZfaW5uZXIoc3RydWN0IG1seDVod3NfZGVmaW5lcl9jb252X2RhdGEgKmNkLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTk5MC1cdFx0SFdTX1NFVF9IRFIoZmMsIG1hdGNoX3BhcmFtLCBJUFY2X1NSQ18xMjdfOTZfSSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jOjk5MTpcdFx0XHQgICAgaW5uZXJfaGVhZGVycy5zcmNfaXB2NF9zcmNfaXB2Ni5pcHY2X3NpbXBsZV9sYXlvdXQuaXB2Nl8xMjdfOTYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy05OTItXHRcdFx0ICAgIGlwdjZfc3JjX2lubmVyLmlwdjZfYWRkcmVzc18xMjdfOTYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtOTkzLVx0XHRIV1NfU0VUX0hEUihmYywgbWF0Y2hfcGFyYW0sIElQVjZfU1JDXzk1XzY0X0ksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYzo5OTQ6XHRcdFx0ICAgIGlubmVyX2hlYWRlcnMuc3JjX2lwdjRfc3JjX2lwdjYuaXB2Nl9zaW1wbGVfbGF5b3V0LmlwdjZfOTVfNjQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy05OTUtXHRcdFx0ICAgIGlwdjZfc3JjX2lubmVyLmlwdjZfYWRkcmVzc185NV82NCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy05OTYtXHRcdEhXU19TRVRfSERSKGZjLCBtYXRjaF9wYXJhbSwgSVBWNl9TUkNfNjNfMzJfSSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jOjk5NzpcdFx0XHQgICAgaW5uZXJfaGVhZGVycy5zcmNfaXB2NF9zcmNfaXB2Ni5pcHY2X3NpbXBsZV9sYXlvdXQuaXB2Nl82M18zMixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTk5OC1cdFx0XHQgICAgaXB2Nl9zcmNfaW5uZXIuaXB2Nl9hZGRyZXNzXzYzXzMyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTk5OS1cdFx0SFdTX1NFVF9IRFIoZmMsIG1hdGNoX3BhcmFtLCBJUFY2X1NSQ18zMV8wX0ksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYzoxMDAwOlx0XHRcdCAgICBpbm5lcl9oZWFkZXJzLnNyY19pcHY0X3NyY19pcHY2LmlwdjZfc2ltcGxlX2xheW91dC5pcHY2XzMxXzAsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy0xMDAxLVx0XHRcdCAgICBpcHY2X3NyY19pbm5lci5pcHY2X2FkZHJlc3NfMzFfMCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtMTAwMy1cdFx0SFdTX1NFVF9IRFIoZmMsIG1hdGNoX3BhcmFtLCBJUFY2X0RTVF8xMjdfOTZfSSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jOjEwMDQ6XHRcdFx0ICAgIGlubmVyX2hlYWRlcnMuZHN0X2lwdjRfZHN0X2lwdjYuaXB2Nl9zaW1wbGVfbGF5b3V0LmlwdjZfMTI3Xzk2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtMTAwNS1cdFx0XHQgICAgaXB2Nl9kc3RfaW5uZXIuaXB2Nl9hZGRyZXNzXzEyN185Nik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy0xMDA2LVx0XHRIV1NfU0VUX0hEUihmYywgbWF0Y2hfcGFyYW0sIElQVjZfRFNUXzk1XzY0X0ksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYzoxMDA3Olx0XHRcdCAgICBpbm5lcl9oZWFkZXJzLmRzdF9pcHY0X2RzdF9pcHY2LmlwdjZfc2ltcGxlX2xheW91dC5pcHY2Xzk1XzY0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtMTAwOC1cdFx0XHQgICAgaXB2Nl9kc3RfaW5uZXIuaXB2Nl9hZGRyZXNzXzk1XzY0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTEwMDktXHRcdEhXU19TRVRfSERSKGZjLCBtYXRjaF9wYXJhbSwgSVBWNl9EU1RfNjNfMzJfSSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jOjEwMTA6XHRcdFx0ICAgIGlubmVyX2hlYWRlcnMuZHN0X2lwdjRfZHN0X2lwdjYuaXB2Nl9zaW1wbGVfbGF5b3V0LmlwdjZfNjNfMzIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy0xMDExLVx0XHRcdCAgICBpcHY2X2RzdF9pbm5lci5pcHY2X2FkZHJlc3NfNjNfMzIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtMTAxMi1cdFx0SFdTX1NFVF9IRFIoZmMsIG1hdGNoX3BhcmFtLCBJUFY2X0RTVF8zMV8wX0ksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYzoxMDEzOlx0XHRcdCAgICBpbm5lcl9oZWFkZXJzLmRzdF9pcHY0X2RzdF9pcHY2LmlwdjZfc2ltcGxlX2xheW91dC5pcHY2XzMxXzAsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy0xMDE0LVx0XHRcdCAgICBpcHY2X2RzdF9pbm5lci5pcHY2X2FkZHJlc3NfMzFfMCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtMTAxNy1cdFx0SFdTX1NFVF9IRFIoZmMsIG1hdGNoX3BhcmFtLCBJUFY0X1NSQ19JLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmM6MTAxODpcdFx0XHQgICAgaW5uZXJfaGVhZGVycy5zcmNfaXB2NF9zcmNfaXB2Ni5pcHY2X3NpbXBsZV9sYXlvdXQuaXB2Nl8zMV8wLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtMTAxOS1cdFx0XHQgICAgaXB2NF9zcmNfZGVzdF9pbm5lci5zb3VyY2VfYWRkcmVzcyk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtMTAyMS1cdFx0SFdTX1NFVF9IRFIoZmMsIG1hdGNoX3BhcmFtLCBJUFY0X0RTVF9JLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmM6MTAyMjpcdFx0XHQgICAgaW5uZXJfaGVhZGVycy5kc3RfaXB2NF9kc3RfaXB2Ni5pcHY2X3NpbXBsZV9sYXlvdXQuaXB2Nl8zMV8wLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtMTAyMy1cdFx0XHQgICAgaXB2NF9zcmNfZGVzdF9pbm5lci5kZXN0aW5hdGlvbl9hZGRyZXNzKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvd2MuYy0xMi0jaW5jbHVkZSBcdTAwM2Nhc20vbmVvbi5oXHUwMDNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvd2MuYzoxMzojaW5jbHVkZSBcdTAwM2Nhc20vc2ltZC5oXHUwMDNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvd2MuYy0xNC0jZW5kaWZcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvd2MuYz0yNjQ9c3RhdGljIHZvaWQgbWx4NV9pb3dyaXRlNjRfY29weShzdHJ1Y3QgbWx4NV93Y19zcSAqc3EsIF9fYmUzMiBtbWlvX3dxZVsxNl0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3djLmMtMjY4LVx0aWYgKGNwdV9oYXNfbmVvbigpKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvd2MuYzoyNjk6XHRcdHNjb3BlZF9rc2ltZCgpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS93Yy5jLTI3MC1cdFx0XHRhc20gdm9sYXRpbGUoXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvd2MuYzoyNzE6XHRcdFx0XHRcJiMzNDsuYXJjaF9leHRlbnNpb24gc2ltZFxcblxcdFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3djLmMtMjcyLVx0XHRcdFx0XCYjMzQ7bGQxIHt2MC4xNmIsIHYxLjE2YiwgdjIuMTZiLCB2My4xNmJ9LCBbJTBdXFxuXFx0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDE4OjEyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM3NzY0CgkJCQkJCQlvdXRwdXQ6IDQyCgkJCQkJCQl0aG91Z2h0czogNzUwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IFRob3VnaHQgUHJvY2VzcyBvbiBSZWFjaGluZyBNTFg1IHdpdGggU3l6a2FsbGVyKioKCk9rYXksIHNvIEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgaG93IHN5emthbGxlciBtaWdodCBiZSBhYmxlIHRvIGludGVyYWN0IHdpdGggdGhlIGBNTFg1X1NGYCBhbmQgYE1MWDVfU0ZfTUFOQUdFUmAgc3ViZnVuY3Rpb25zLiBUaGVzZSBhcmUgbGlrZSBTUklPViBWRnMsIGJ1dCB3aXRob3V0IHRoZSBTUklPViByZXF1aXJlbWVudCwgc3VwcG9ydGluZyBSRE1BLCBuZXRkZXZzLCBhbmQgdmRwYSBkZXZpY2VzLiBUaGUgcXVlc3Rpb24gaXMsIGNhbiBzeXprYWxsZXIgZXZlbiAqY3JlYXRlKiB0aGVzZSBzdWJmdW5jdGlvbnM/CgpNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gbGV2ZXJhZ2Ugc3l6a2FsbGVyJiMzOTtzIFBDSSBmdXp6ZXIsIHNwZWNpZmljYWxseSBgc3l6X3BjaV9lcGAuIFRoYXQgY3JlYXRlcyBhIGZha2UgUENJIGRldmljZSwgd2hpY2ggdGhlIG1seDUgZHJpdmVyIGNvdWxkIHRoZW4gcHJvYmUuIElmIHRoZSBkcml2ZXIgaW5pdGlhbGl6ZXMgZmFyIGVub3VnaCB0byByZWdpc3RlciBhIG5ldGRldmljZSwgdGhlbiBzeXprYWxsZXIgY291bGQgdGFsayB0byBpdCB2aWEgc3RhbmRhcmQgbmV0bGluayBvciBzb2NrZXQgQVBJcy4gQnV0LCB0aGVyZSYjMzk7cyBhIHByb2JsZW06IHRoZSBtbHg1IGRyaXZlciBuZWVkcyBjb21wbGV4IGZpcm13YXJlIGNvbW1hbmRzIGR1cmluZyBpbml0aWFsaXphdGlvbi4gQW5kLCBgc3l6X3BjaV9lcGAgZG9lc24mIzM5O3QgZW11bGF0ZSB0aGF0IGZpcm13YXJlLgoKU28sIGRvZXMgc3l6a2FsbGVyIGhhdmUgYW55IHdheSB0byBhY3R1YWxseSAqcmVhY2gqIG1seDU/IEkmIzM5O2QgbGlrZSB0byBjaGVjayBmb3IgZXhpc3Rpbmcgc3l6a2FsbGVyIGJ1Z3MgaW4gbWx4NSwgYnV0IHdpdGhvdXQgYWNjZXNzIHRvIHRoZSBmdWxsIGtlcm5lbCBoaXN0b3J5LCBJJiMzOTttIHN0dWNrLgoKVGhlIHByb21wdCBub3RlcywgJiMzNDtDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUuLi4mIzM0OyBJZiBtbHg1IGlzIGEgKnBoeXNpY2FsKiBkZXZpY2UgZHJpdmVyIGFuZCAqbm90KiBzb2Z0d2FyZS1lbXVsYXRlZCwgdGhlbiBpdCYjMzk7cyBlZmZlY3RpdmVseSB1bnJlYWNoYWJsZSBpbiBHQ0UvUUVNVSB1bmxlc3MgdGhlcmUmIzM5O3MgYW4gZW11bGF0b3IuIEFuZCwgdGhlcmUgaXNuJiMzOTt0IGEgYG1seDVfc2ltYCBvciBgbWx4NV9od3NpbWAgZXF1aXZhbGVudC4KCkJ1dCwgdGhlcmUmIzM5O3MgYG5ldGRldnNpbWAuIFRoYXQmIzM5O3MgdXNlZCBmb3IgdGVzdGluZywgYnV0IGl0IGRvZXNuJiMzOTt0IHV0aWxpemUgbWx4NSBjb2RlLiBUaGVuLCB0aGVyZSYjMzk7cyBgc3l6X3BjaV9lcGAhIEl0IGVtdWxhdGVzICpzb2Z0d2FyZSogaGFyZHdhcmUgLSBhIFBDSSBlbmRwb2ludC4gU28sIGlmIGBzeXpfcGNpX2VwYCBjYW4gZW11bGF0ZSBtbHg1LCB0aGVuIGl0ICppcyogcmVhY2hhYmxlLiBCdXQgaGVyZSBjb21lcyB0aGUgcHJvYmxlbTogYHN5el9wY2lfZXBgIGRvZXMgbm90IGVtdWxhdGUgdGhlIGZpcm13YXJlLiBEcml2ZXJzIHJlcXVpcmluZyBjb21wbGljYXRlZCBmaXJtd2FyZSBoYW5kc2hha2VzLCBsaWtlIG1seDUsIGljZSwgaTQwZSwgdXN1YWxseSBmYWlsIHdpdGggYHN5el9wY2lfZXBgIGJlY2F1c2UgdGhlIGZ1enplciBjYW4mIzM5O3QgZ3Vlc3MgdGhlIGZpcm13YXJlJiMzOTtzIGNvcnJlY3QgcmVzcG9uc2Ugc2VxdWVuY2UuCgpXYWl0IGEgc2Vjb25kLCB0aGVyZSBpcyBzb21ldGhpbmcgSSBoYXZlIHRvIGxvb2sgYXQhIFRoZSBwYXRjaCYjMzk7cyBhdXRob3IgaXMgYHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDtgLiAmIzM0O3N5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldyYjMzQ7LiBUaGlzIG1lYW5zIHN5emthbGxlciAqZGlkKiBmaW5kIGEgYnVnISBJdCBpcyBhIHBhdGNoIHRoYXQgSSBhbSByZXZpZXdpbmchIFRoaXMgcHJvdmVzIGl0IGlzIHRlc3RpbmcgdGhpcy4KCklmIHN5emthbGxlciBmb3VuZCBhIGJ1ZywgaG93PyBJcyB0aGVyZSBhIHZpcnR1YWwgbWx4NSBkZXZpY2UgaW4gUUVNVT8gTm8sIFFFTVUgZG9lc24mIzM5O3QgaGF2ZSBhbiB1cHN0cmVhbSBtbHg1IGVtdWxhdG9yLiBNYXliZSBzeXprYWxsZXIgcnVucyBiYXJlIG1ldGFsIHdpdGggTWVsbGFub3ggY2FyZHM/IE5vLCBzeXprYWxsZXIgbW9zdGx5IHJ1bnMgaW4gR0NFL1FFTVUuCgpEb2VzIHN5emthbGxlciAqaXRzZWxmKiBoYXZlIGFuIG1seDUgZW11bGF0b3I/IEkgc2hvdWxkIGNoZWNrIGlmIHRoZXJlJiMzOTtzIGFueSBgbWx4NWAgZW11bGF0b3IgaW4gdGhlIGtlcm5lbC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTg6MTI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bWx4NV9jb3JlX2RldiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDEyMzIzIGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYz01OD1zdHJ1Y3QgbWx4NV9kbWFfcG9vbCB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNjEtXHRzdHJ1Y3QgbGlzdF9oZWFkIHBhZ2VfbGlzdDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjYyOlx0c3RydWN0IG1seDVfY29yZV9kZXYgKmRldjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTYzLVx0aW50IG5vZGU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM9Nzk9c3RydWN0IG1seDVfZG1hX3Bvb2xfc3RhdHMge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTg5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6OTA6c3RhdGljIHZvaWQgKm1seDVfZG1hX3phbGxvY19jb2hlcmVudF9ub2RlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy05MS1cdFx0XHRcdFx0ICAgc2l6ZV90IHNpemUsIGRtYV9hZGRyX3QgKmRtYV9oYW5kbGUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM9MTA5PXN0YXRpYyB2b2lkIG1seDVfZG1hX3Bvb2xfZGVzdHJveShzdHJ1Y3QgbWx4NV9kbWFfcG9vbCAqcG9vbClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0xMTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoxMTU6c3RhdGljIHN0cnVjdCBtbHg1X2RtYV9wb29sICptbHg1X2RtYV9wb29sX2NyZWF0ZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMTE2LVx0XHRcdFx0XHRcdCAgaW50IG5vZGUsIHU4IGJsb2NrX3NoaWZ0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jPTEzMz1tbHg1X2RtYV9wb29sX3BhZ2VfYWxsb2Moc3RydWN0IG1seDVfZG1hX3Bvb2wgKnBvb2wpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMTYyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MTYzOnN0YXRpYyB2b2lkIG1seDVfZG1hX3Bvb2xfcGFnZV9mcmVlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0xNjQtXHRcdFx0XHQgICAgc3RydWN0IG1seDVfZG1hX3Bvb2xfcGFnZSAqcGFnZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYz0yODM9c3RhdGljIHN0cnVjdCBtbHg1X2ZyYWdfYnVmX25vZGVfcG9vbHMgKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6Mjg0Om1seDVfZnJhZ19idWZfbm9kZV9wb29sc19jcmVhdGUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgaW50IG5vZGUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0yODUte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jPTMwNz1tbHg1X2ZyYWdfYnVmX2RtYV9wb29sc19kZWJ1Z2ZzX3Nob3coc3RydWN0IHNlcV9maWxlICpmaWxlLCB2b2lkICpwcml2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzA4LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjMwOTpcdHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYgPSBmaWxlLVx1MDAzZXByaXZhdGU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zMTAtXHRpbnQgbm9kZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYz0zMzY9REVGSU5FX1NIT1dfQVRUUklCVVRFKG1seDVfZnJhZ19idWZfZG1hX3Bvb2xzX2RlYnVnZnMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzM3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MzM4OnZvaWQgbWx4NV9mcmFnX2J1Zl9wb29sc19jbGVhbnVwKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zMzkte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTM1OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjM1OTppbnQgbWx4NV9mcmFnX2J1Zl9wb29sc19pbml0KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zNjAte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTM4Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjM4ODppbnQgbWx4NV9mcmFnX2J1Zl9hbGxvY19ub2RlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIGludCBzaXplLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzg5LVx0XHRcdCAgICAgc3RydWN0IG1seDVfZnJhZ19idWYgKmJ1ZiwgaW50IG5vZGUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM9NDI1PUVYUE9SVF9TWU1CT0xfR1BMKG1seDVfZnJhZ19idWZfYWxsb2Nfbm9kZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00MjYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo0Mjc6dm9pZCBtbHg1X2ZyYWdfYnVmX2ZyZWUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfZnJhZ19idWYgKmJ1ZilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTQyOC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM9NDQ1PUVYUE9SVF9TWU1CT0xfR1BMKG1seDVfZnJhZ19idWZfZnJlZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00NDYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo0NDc6c3RhdGljIHN0cnVjdCBtbHg1X2RiX3BnZGlyICptbHg1X2FsbG9jX2RiX3BnZGlyKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00NDgtXHRcdFx0XHRcdFx0IGludCBub2RlKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jPTQ3Nj1zdGF0aWMgaW50IG1seDVfYWxsb2NfZGJfZnJvbV9wZ2RpcihzdHJ1Y3QgbWx4NV9kYl9wZ2RpciAqcGdkaXIsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTAwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NTAxOmludCBtbHg1X2RiX2FsbG9jX25vZGUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfZGIgKmRiLCBpbnQgbm9kZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTUwMi17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM9NTI4PUVYUE9SVF9TWU1CT0xfR1BMKG1seDVfZGJfYWxsb2Nfbm9kZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy01MjktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo1MzA6dm9pZCBtbHg1X2RiX2ZyZWUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfZGIgKmRiKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTMxLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9MjgzPXN0YXRpYyB2b2lkIHBvbGxfdGltZW91dChzdHJ1Y3QgbWx4NV9jbWRfd29ya19lbnQgKmVudClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yODQte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjI4NTpcdHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYgPSBjb250YWluZXJfb2YoZW50LVx1MDAzZWNtZCwgc3RydWN0IG1seDVfY29yZV9kZXYsIGNtZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjg2LVx0dTY0IGNtZF90b19tcyA9IG1seDVfdG91dF9tcyhkZXYsIENNRCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTMzMT1zdGF0aWMgdm9pZCBkdW1wX2J1Zih2b2lkICpidWYsIGludCBzaXplLCBpbnQgZGF0YV9vbmx5LCBpbnQgb2Zmc2V0LCBpbnQgaWR4KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0zNDYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MzQ3OnN0YXRpYyBpbnQgbWx4NV9pbnRlcm5hbF9lcnJfcmV0X3ZhbHVlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUxNiBvcCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0zNDgtXHRcdFx0XHQgICAgICAgdTMyICpzeW5kLCB1OCAqc3RhdHVzKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz03OTM9c3RhdGljIGludCBjbWRfc3RhdHVzX3RvX2Vycih1OCBzdGF0dXMpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTgxNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzo4MTc6dm9pZCBtbHg1X2NtZF9vdXRfZXJyKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUxNiBvcGNvZGUsIHUxNiBvcF9tb2QsIHZvaWQgKm91dClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy04MTgte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz04Mjc9RVhQT1JUX1NZTUJPTChtbHg1X2NtZF9vdXRfZXJyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy04MjgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6ODI5OnN0YXRpYyB2b2lkIGNtZF9zdGF0dXNfcHJpbnQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdm9pZCAqaW4sIHZvaWQgKm91dClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy04MzAte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy04NDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6ODQ1OmludCBtbHg1X2NtZF9jaGVjayhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBpbnQgZXJyLCB2b2lkICppbiwgdm9pZCAqb3V0KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTg0Ni17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTg3Mj1FWFBPUlRfU1lNQk9MKG1seDVfY21kX2NoZWNrKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy04NzMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6ODc0OnN0YXRpYyB2b2lkIGR1bXBfY29tbWFuZChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTg3NS1cdFx0XHQgc3RydWN0IG1seDVfY21kX3dvcmtfZW50ICplbnQsIGludCBpbnB1dClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtOTMxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjkzMjpzdGF0aWMgdm9pZCBtbHg1X2NtZF9jb21wX2hhbmRsZXIoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTY0IHZlYywgYm9vbCBmb3JjZWQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTkzMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz05MzQ9c3RhdGljIHZvaWQgY2JfdGltZW91dF9oYW5kbGVyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtOTM5LVx0XHRcdFx0XHRcdCAgICAgY2JfdGltZW91dF93b3JrKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzo5NDA6XHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2ID0gY29udGFpbmVyX29mKGVudC1cdTAwM2VjbWQsIHN0cnVjdCBtbHg1X2NvcmVfZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTk0MS1cdFx0XHRcdFx0XHQgY21kKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtOTYwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjk2MTpzdGF0aWMgdm9pZCBmcmVlX21zZyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBzdHJ1Y3QgbWx4NV9jbWRfbXNnICptc2cpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjk2MjpzdGF0aWMgdm9pZCBtbHg1X2ZyZWVfY21kX21zZyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTk2My1cdFx0XHQgICAgICBzdHJ1Y3QgbWx4NV9jbWRfbXNnICptc2cpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz05NjU9c3RhdGljIGJvb2wgb3Bjb2RlX2FsbG93ZWQoc3RydWN0IG1seDVfY21kICpjbWQsIHUxNiBvcGNvZGUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTk3Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzo5NzM6Ym9vbCBtbHg1X2NtZF9pc19kb3duKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtOTc0LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9OTgwPXN0YXRpYyB2b2lkIGNtZF93b3JrX2hhbmRsZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy05ODUtXHRzdHJ1Y3QgbWx4NV9jbWRfbGF5b3V0ICpsYXk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6OTg2Olx0c3RydWN0IG1seDVfY29yZV9kZXYgKmRldjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy05ODctXHR1bnNpZ25lZCBsb25nIHRpbWVvdXQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTk5My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzo5OTQ6XHRkZXYgPSBjb250YWluZXJfb2YoY21kLCBzdHJ1Y3QgbWx4NV9jb3JlX2RldiwgY21kKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy05OTUtXHR0aW1lb3V0ID0gbXNlY3NfdG9famlmZmllcyhtbHg1X3RvdXRfbXMoZGV2LCBDTUQpKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9MTE0MD1lbnVtIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTE0My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxMTQ0OnN0YXRpYyB2b2lkIHdhaXRfZnVuY19oYW5kbGVfZXhlY190aW1lb3V0KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTE0NS1cdFx0XHRcdFx0ICBzdHJ1Y3QgbWx4NV9jbWRfd29ya19lbnQgKmVudClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTE2OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxMTY5OnN0YXRpYyBpbnQgd2FpdF9mdW5jKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X2NtZF93b3JrX2VudCAqZW50KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTExNzAte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMjE1LSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjEyMTY6c3RhdGljIGJvb2wgbWx4NV9jbWRfYWxsX3N0YWxsZWQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMjE3LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTI1OC0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxMjU5OnN0YXRpYyBpbnQgbWx4NV9jbWRfaW52b2tlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X2NtZF9tc2cgKmluLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEyNjAtXHRcdFx0ICAgc3RydWN0IG1seDVfY21kX21zZyAqb3V0LCB2b2lkICp1b3V0LCBpbnQgdW91dF9zaXplLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz0xMzM3PXN0YXRpYyBzc2l6ZV90IGRiZ193cml0ZShzdHJ1Y3QgZmlsZSAqZmlscCwgY29uc3QgY2hhciBfX3VzZXIgKmJ1Zixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTMzOS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTM0MDpcdHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYgPSBmaWxwLVx1MDAzZXByaXZhdGVfZGF0YTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMzQxLVx0c3RydWN0IG1seDVfY21kX2RlYnVnICpkYmcgPSBcdTAwMjZkZXYtXHUwMDNlY21kLmRiZztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9MTQwND1zdGF0aWMgaW50IG1seDVfY29weV9mcm9tX21zZyh2b2lkICp0bywgc3RydWN0IG1seDVfY21kX21zZyAqZnJvbSwgaW50IHNpemUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE0MzYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTQzNzpzdGF0aWMgc3RydWN0IG1seDVfY21kX21haWxib3ggKmFsbG9jX2NtZF9ib3goc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNDM4LVx0XHRcdFx0XHQgICAgICBnZnBfdCBmbGFncylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTQ1Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNDU4OnN0YXRpYyB2b2lkIGZyZWVfY21kX2JveChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE0NTktXHRcdFx0IHN0cnVjdCBtbHg1X2NtZF9tYWlsYm94ICptYWlsYm94KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNDY0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE0NjU6c3RhdGljIHN0cnVjdCBtbHg1X2NtZF9tc2cgKm1seDVfYWxsb2NfY21kX21zZyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE0NjYtXHRcdFx0XHRcdCAgICAgICBnZnBfdCBmbGFncywgaW50IHNpemUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE1MTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTUxMjpzdGF0aWMgdm9pZCBtbHg1X2ZyZWVfY21kX21zZyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE1MTMtXHRcdFx0ICAgICAgc3RydWN0IG1seDVfY21kX21zZyAqbXNnKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz0xNTI2PXN0YXRpYyBzc2l6ZV90IGRhdGFfd3JpdGUoc3RydWN0IGZpbGUgKmZpbHAsIGNvbnN0IGNoYXIgX191c2VyICpidWYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE1Mjgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE1Mjk6XHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2ID0gZmlscC1cdTAwM2Vwcml2YXRlX2RhdGE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTUzMC1cdHN0cnVjdCBtbHg1X2NtZF9kZWJ1ZyAqZGJnID0gXHUwMDI2ZGV2LVx1MDAzZWNtZC5kYmc7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTE1NTA9c3RhdGljIHNzaXplX3QgZGF0YV9yZWFkKHN0cnVjdCBmaWxlICpmaWxwLCBjaGFyIF9fdXNlciAqYnVmLCBzaXplX3QgY291bnQsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE1NTIte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE1NTM6XHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2ID0gZmlscC1cdTAwM2Vwcml2YXRlX2RhdGE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTU1NC1cdHN0cnVjdCBtbHg1X2NtZF9kZWJ1ZyAqZGJnID0gXHUwMDI2ZGV2LVx1MDAzZWNtZC5kYmc7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTE1NzA9c3RhdGljIHNzaXplX3Qgb3V0bGVuX3JlYWQoc3RydWN0IGZpbGUgKmZpbHAsIGNoYXIgX191c2VyICpidWYsIHNpemVfdCBjb3VudCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTU3Mi17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTU3MzpcdHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYgPSBmaWxwLVx1MDAzZXByaXZhdGVfZGF0YTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNTc0LVx0c3RydWN0IG1seDVfY21kX2RlYnVnICpkYmcgPSBcdTAwMjZkZXYtXHUwMDNlY21kLmRiZztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9MTU4NT1zdGF0aWMgc3NpemVfdCBvdXRsZW5fd3JpdGUoc3RydWN0IGZpbGUgKmZpbHAsIGNvbnN0IGNoYXIgX191c2VyICpidWYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE1ODcte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE1ODg6XHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2ID0gZmlscC1cdTAwM2Vwcml2YXRlX2RhdGE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTU4OS1cdHN0cnVjdCBtbHg1X2NtZF9kZWJ1ZyAqZGJnID0gXHUwMDI2ZGV2LVx1MDAzZWNtZC5kYmc7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTE2MjE9c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgb2xmb3BzID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNjI3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE2Mjg6c3RhdGljIHZvaWQgc2V0X3dxbmFtZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE2Mjkte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNjM1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE2MzY6c3RhdGljIHZvaWQgY2xlYW5fZGVidWdfZmlsZXMoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNjM3LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTY0NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNjQ2OnN0YXRpYyB2b2lkIGNyZWF0ZV9kZWJ1Z2ZzX2ZpbGVzKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTY0Ny17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE2NTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTY1OTp2b2lkIG1seDVfY21kX2FsbG93ZWRfb3Bjb2RlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUxNiBvcGNvZGUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTY2MC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE2NzQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTY3NTpzdGF0aWMgdm9pZCBtbHg1X2NtZF9jaGFuZ2VfbW9kKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIGludCBtb2RlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE2NzYte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz0xNjkxPXN0YXRpYyBpbnQgY21kX2NvbXBfbm90aWZpZXIoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTY5My17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTY5NDpcdHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTY5NS1cdHN0cnVjdCBtbHg1X2NtZCAqY21kO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNjk4LVx0Y21kID0gbWx4NV9uYl9jb2YobmIsIHN0cnVjdCBtbHg1X2NtZCwgbmIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE2OTk6XHRkZXYgPSBjb250YWluZXJfb2YoY21kLCBzdHJ1Y3QgbWx4NV9jb3JlX2RldiwgY21kKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNzAwLVx0ZXFlID0gZGF0YTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTcwOC19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTcwOTp2b2lkIG1seDVfY21kX3VzZV9ldmVudHMoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNzEwLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTcxNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNzE2OnZvaWQgbWx4NV9jbWRfdXNlX3BvbGxpbmcoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNzE3LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTcyMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNzIyOnN0YXRpYyB2b2lkIGZyZWVfbXNnKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X2NtZF9tc2cgKm1zZylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNzIzLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTczNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNzM1OnN0YXRpYyB2b2lkIG1seDVfY21kX2NvbXBfaGFuZGxlcihzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1NjQgdmVjLCBib29sIGZvcmNlZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNzM2LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTgzOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxODM5OnN0YXRpYyB2b2lkIG1seDVfY21kX3RyaWdnZXJfY29tcGxldGlvbnMoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xODQwLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTg3My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxODc0OnZvaWQgbWx4NV9jbWRfZmx1c2goc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xODc1LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTg5Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxODk3OnN0YXRpYyBzdHJ1Y3QgbWx4NV9jbWRfbXNnICphbGxvY19tc2coc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgaW50IGluX3NpemUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTg5OC1cdFx0XHRcdCAgICAgIGdmcF90IGdmcClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9MTkzNT1zdGF0aWMgaW50IGlzX21hbmFnZV9wYWdlcyh2b2lkICppbilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTkzOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxOTQwOnN0YXRpYyBib29sIG1seDVfaGFzX3ByaXZpbGVnZWRfdWlkKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTk0MS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE5NDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTk0NTpzdGF0aWMgYm9vbCBtbHg1X2NtZF9pc19wcml2aWxlZ2VkX3VpZChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE5NDYtXHRcdFx0XHQgICAgICAgdTE2IHVpZClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTk1NC0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxOTU1OnN0YXRpYyBpbnQgY21kX2V4ZWMoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdm9pZCAqaW4sIGludCBpbl9zaXplLCB2b2lkICpvdXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTk1Ni1cdFx0ICAgIGludCBvdXRfc2l6ZSwgbWx4NV9jbWRfY2JrX3QgY2FsbGJhY2ssIHZvaWQgKmNvbnRleHQsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTIwMzUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MjAzNjpzdGF0aWMgdm9pZCBtbHg1X2NtZF9lcnJfdHJhY2Uoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2IG9wY29kZSwgdTE2IG9wX21vZCwgdm9pZCAqb3V0KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTIwMzcte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMDQ1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjIwNDY6c3RhdGljIHZvaWQgY21kX3N0YXR1c19sb2coc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2IG9wY29kZSwgdTggc3RhdHVzLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTIwNDctXHRcdFx0ICAgdTMyIHN5bmRyb21lLCBpbnQgZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMDcxLS8qIHByZXNlcnZlIC1FUkVNT1RFSU8gZm9yIG91dGJveC5zdGF0dXMgIT0gT0ssIG90aGVyd2lzZSByZXR1cm4gZXJyIGFzIGlzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MjA3MjpzdGF0aWMgaW50IGNtZF9zdGF0dXNfZXJyKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIGludCBlcnIsIHUxNiBvcGNvZGUsIHUxNiBvcF9tb2QsIHZvaWQgKm91dClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMDczLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjEwNi0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoyMTA3OmludCBtbHg1X2NtZF9kbyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB2b2lkICppbiwgaW50IGluX3NpemUsIHZvaWQgKm91dCwgaW50IG91dF9zaXplKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTIxMDgte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz0yMTE1PUVYUE9SVF9TWU1CT0wobWx4NV9jbWRfZG8pO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMTI4LSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjIxMjk6aW50IG1seDVfY21kX2V4ZWMoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdm9pZCAqaW4sIGludCBpbl9zaXplLCB2b2lkICpvdXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjEzMC1cdFx0ICBpbnQgb3V0X3NpemUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTIxMzY9RVhQT1JUX1NZTUJPTChtbHg1X2NtZF9leGVjKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjE1MS0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoyMTUyOmludCBtbHg1X2NtZF9leGVjX3BvbGxpbmcoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdm9pZCAqaW4sIGludCBpbl9zaXplLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTIxNTMtXHRcdFx0ICB2b2lkICpvdXQsIGludCBvdXRfc2l6ZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9MjE2Mj1FWFBPUlRfU1lNQk9MKG1seDVfY21kX2V4ZWNfcG9sbGluZyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjE2My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoyMTY0OnZvaWQgbWx4NV9jbWRfaW5pdF9hc3luY19jdHgoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMTY1LVx0XHRcdCAgICAgc3RydWN0IG1seDVfYXN5bmNfY3R4ICpjdHgpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTIxODk9c3RhdGljIHZvaWQgbWx4NV9jbWRfZXhlY19jYl9oYW5kbGVyKGludCBzdGF0dXMsIHZvaWQgKl93b3JrKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMTkyLVx0c3RydWN0IG1seDVfYXN5bmNfY3R4ICpjdHg7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MjE5MzpcdHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjE5NC1cdGJvb2wgdGhyb3R0bGVfbG9ja2VkO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz0yMjE0PWludCBtbHg1X2NtZF9leGVjX2NiKHN0cnVjdCBtbHg1X2FzeW5jX2N0eCAqY3R4LCB2b2lkICppbiwgaW50IGluX3NpemUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTIyMTcte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjIyMTg6XHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2ID0gY3R4LVx1MDAzZWRldjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMjE5LVx0dTE2IHVpZDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9MjI2OD1FWFBPUlRfU1lNQk9MKG1seDVfY21kX2V4ZWNfY2IpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTIyNjktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MjI3MDppbnQgbWx4NV9jbWRfYWxsb3dfb3RoZXJfdmhjYV9hY2Nlc3Moc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMjcxLVx0XHRcdFx0ICAgICBzdHJ1Y3QgbWx4NV9jbWRfYWxsb3dfb3RoZXJfdmhjYV9hY2Nlc3NfYXR0ciAqYXR0cilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjI4OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoyMjkwOmludCBtbHg1X2NtZF9hbGlhc19vYmpfY3JlYXRlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjI5MS1cdFx0XHQgICAgICBzdHJ1Y3QgbWx4NV9jbWRfYWxpYXNfb2JqX2NyZWF0ZV9hdHRyICphbGlhc19hdHRyLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMzI1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjIzMjY6aW50IG1seDVfY21kX2FsaWFzX29ial9kZXN0cm95KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUzMiBvYmpfaWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjMyNy1cdFx0XHQgICAgICAgdTE2IG9ial90eXBlKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMzM4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjIzMzk6c3RhdGljIHZvaWQgZGVzdHJveV9tc2dfY2FjaGUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMzQwLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9MjM1OT1zdGF0aWMgdW5zaWduZWQgY21kX2NhY2hlX2VudF9zaXplW01MWDVfTlVNX0NPTU1BTkRfQ0FDSEVTXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjM2Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoyMzY3OnN0YXRpYyB2b2lkIGNyZWF0ZV9tc2dfY2FjaGUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMzY4LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjM5Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoyMzkzOnN0YXRpYyBpbnQgYWxsb2NfY21kX3BhZ2Uoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfY21kICpjbWQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjM5NC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTI0MjEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MjQyMjpzdGF0aWMgdm9pZCBmcmVlX2NtZF9wYWdlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X2NtZCAqY21kKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTI0MjMte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yNDI3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjI0Mjg6c3RhdGljIHUxNiBjbWRpZl9yZXYoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yNDI5LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjQzMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoyNDMzOmludCBtbHg1X2NtZF9pbml0KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjQzNC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTI0NTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MjQ1NDp2b2lkIG1seDVfY21kX2NsZWFudXAoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yNDU1LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjQ2MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoyNDYyOmludCBtbHg1X2NtZF9lbmFibGUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yNDYzLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjU0Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoyNTQ4OnZvaWQgbWx4NV9jbWRfZGlzYWJsZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTI1NDkte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yNTU5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjI1NjA6dm9pZCBtbHg1X2NtZF9zZXRfc3RhdGUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yNTYxLVx0XHRcdGVudW0gbWx4NV9jbWRpZl9zdGF0ZSBjbWRpZl9zdGF0ZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjU2NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoyNTY2OmludCBtbHg1X2NtZF9hZGRfcHJpdmlsZWdlZF91aWQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2IHVpZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yNTY3LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9MjU3MT1FWFBPUlRfU1lNQk9MKG1seDVfY21kX2FkZF9wcml2aWxlZ2VkX3VpZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjU3Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoyNTczOnZvaWQgbWx4NV9jbWRfcmVtb3ZlX3ByaXZpbGVnZWRfdWlkKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUxNiB1aWQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjU3NC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmM9MTAwPXN0YXRpYyB2b2lkIG1seDVfY29yZV9jcV9kdW1teV9jYihzdHJ1Y3QgbWx4NV9jb3JlX2NxICpjcSwgc3RydWN0IG1seDVfZXFlICplcWUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmMtMTA3LS8qIENhbGxlcnMgbXVzdCB2ZXJpZnkgb3V0Ym94IHN0YXR1cyBpbiBjYXNlIG9mIGVyciAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmM6MTA4OmludCBtbHg1X2NyZWF0ZV9jcShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBzdHJ1Y3QgbWx4NV9jb3JlX2NxICpjcSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jcS5jLTEwOS1cdFx0ICAgdTMyICppbiwgaW50IGlubGVuLCB1MzIgKm91dCwgaW50IG91dGxlbilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY3EuYz0xNzg9RVhQT1JUX1NZTUJPTChtbHg1X2NyZWF0ZV9jcSk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmMtMTgwLS8qIG91Ym94IGlzIGNoZWNrZWQgYW5kIGVyciB2YWwgaXMgbm9ybWFsaXplZCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmM6MTgxOmludCBtbHg1X2NvcmVfY3JlYXRlX2NxKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X2NvcmVfY3EgKmNxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmMtMTgyLVx0XHRcdHUzMiAqaW4sIGludCBpbmxlbiwgdTMyICpvdXQsIGludCBvdXRsZW4pXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmM9MTg4PUVYUE9SVF9TWU1CT0wobWx4NV9jb3JlX2NyZWF0ZV9jcSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY3EuYy0xODktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY3EuYzoxOTA6aW50IG1seDVfY29yZV9kZXN0cm95X2NxKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X2NvcmVfY3EgKmNxKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmMtMTkxLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY3EuYz0yMTM9RVhQT1JUX1NZTUJPTChtbHg1X2NvcmVfZGVzdHJveV9jcSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY3EuYy0yMTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY3EuYzoyMTU6aW50IG1seDVfY29yZV9xdWVyeV9jcShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBzdHJ1Y3QgbWx4NV9jb3JlX2NxICpjcSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jcS5jLTIxNi1cdFx0ICAgICAgIHUzMiAqb3V0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jcS5jPTIyND1FWFBPUlRfU1lNQk9MKG1seDVfY29yZV9xdWVyeV9jcSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY3EuYy0yMjUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY3EuYzoyMjY6aW50IG1seDVfY29yZV9tb2RpZnlfY3Eoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfY29yZV9jcSAqY3EsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY3EuYy0yMjctXHRcdFx0dTMyICppbiwgaW50IGlubGVuKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jcS5jPTIzNT1FWFBPUlRfU1lNQk9MKG1seDVfY29yZV9tb2RpZnlfY3EpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmMtMjM2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmM6MjM3OmludCBtbHg1X2NvcmVfbW9kaWZ5X2NxX21vZGVyYXRpb24oc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jcS5jLTIzOC1cdFx0XHRcdCAgIHN0cnVjdCBtbHg1X2NvcmVfY3EgKmNxLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM9OTY9dm9pZCBtbHg1X3VucmVnaXN0ZXJfZGVidWdmcyh2b2lkKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtMTAwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYzoxMDE6c3RydWN0IGRlbnRyeSAqbWx4NV9kZWJ1Z2ZzX2dldF9kZXZfcm9vdChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy0xMDIte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM9MTA1PUVYUE9SVF9TWU1CT0wobWx4NV9kZWJ1Z2ZzX2dldF9kZXZfcm9vdCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTEwNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM6MTA3OnZvaWQgbWx4NV9xcF9kZWJ1Z2ZzX2luaXQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtMTA4LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jPTExMT1FWFBPUlRfU1lNQk9MKG1seDVfcXBfZGVidWdmc19pbml0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtMTEyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYzoxMTM6dm9pZCBtbHg1X3FwX2RlYnVnZnNfY2xlYW51cChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy0xMTQte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM9MTE3PUVYUE9SVF9TWU1CT0wobWx4NV9xcF9kZWJ1Z2ZzX2NsZWFudXApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy0xMTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jOjExOTp2b2lkIG1seDVfZXFfZGVidWdmc19pbml0KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTEyMC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy0xMjMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jOjEyNDp2b2lkIG1seDVfZXFfZGVidWdmc19jbGVhbnVwKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTEyNS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYz0yMDI9bWx4NV9jbWRpZl9hbGxvY19zdGF0cyhzdHJ1Y3QgeGFycmF5ICpzdGF0c194YSwgaW50IG9wY29kZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTIxOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM6MjE5OnZvaWQgbWx4NV9jbWRpZl9kZWJ1Z2ZzX2luaXQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtMjIwLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTI1OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM6MjU5OnZvaWQgbWx4NV9jbWRpZl9kZWJ1Z2ZzX2NsZWFudXAoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtMjYwLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTI2OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM6MjcwOnZvaWQgbWx4NV9jcV9kZWJ1Z2ZzX2luaXQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtMjcxLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTI3NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM6Mjc1OnZvaWQgbWx4NV9jcV9kZWJ1Z2ZzX2NsZWFudXAoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtMjc2LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTI3OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM6MjgwOnZvaWQgbWx4NV9wYWdlc19kZWJ1Z2ZzX2luaXQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtMjgxLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTI5My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM6Mjk0OnZvaWQgbWx4NV9wYWdlc19kZWJ1Z2ZzX2NsZWFudXAoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtMjk1LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTI5OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM6Mjk5OnZvaWQgbWx4NV9wYWdlc19ieV9mdW5jX3R5cGVfZGVidWdmc19pbml0KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTMwMC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy0zMjItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jOjMyMzp2b2lkIG1seDVfcGFnZXNfYnlfZnVuY190eXBlX2RlYnVnZnNfY2xlYW51cChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy0zMjQte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtMzM2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYzozMzc6c3RhdGljIHU2NCBxcF9yZWFkX2ZpZWxkKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X2NvcmVfcXAgKnFwLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy0zMzgtXHRcdFx0IGludCBpbmRleCwgaW50ICppc19zdHIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy00MTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jOjQxNzpzdGF0aWMgdTY0IGVxX3JlYWRfZmllbGQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfZXEgKmVxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy00MTgtXHRcdFx0IGludCBpbmRleClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTQ1Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM6NDU3OnN0YXRpYyB1NjQgY3FfcmVhZF9maWVsZChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBzdHJ1Y3QgbWx4NV9jb3JlX2NxICpjcSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtNDU4LVx0XHRcdCBpbnQgaW5kZXgpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYz01MzI9c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZm9wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTUzNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM6NTM4OnN0YXRpYyBpbnQgYWRkX3Jlc190cmVlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIGVudW0gZGJnX3JzY190eXBlIHR5cGUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTUzOS1cdFx0XHRzdHJ1Y3QgZGVudHJ5ICpyb290LCBzdHJ1Y3QgbWx4NV9yc2NfZGVidWcgKipkYmcsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYz01NjY9c3RhdGljIHZvaWQgcmVtX3Jlc190cmVlKHN0cnVjdCBtbHg1X3JzY19kZWJ1ZyAqZClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTU3MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM6NTcyOmludCBtbHg1X2RlYnVnX3FwX2FkZChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBzdHJ1Y3QgbWx4NV9jb3JlX3FwICpxcClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtNTczLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jPTU4Nz1FWFBPUlRfU1lNQk9MKG1seDVfZGVidWdfcXBfYWRkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtNTg4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYzo1ODk6dm9pZCBtbHg1X2RlYnVnX3FwX3JlbW92ZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBzdHJ1Y3QgbWx4NV9jb3JlX3FwICpxcClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtNTkwLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jPTU5Nz1FWFBPUlRfU1lNQk9MKG1seDVfZGVidWdfcXBfcmVtb3ZlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtNTk4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYzo1OTk6aW50IG1seDVfZGVidWdfZXFfYWRkKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X2VxICplcSlcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAxODoxMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MzMwMwoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDExNjIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBSZWFjaGFiaWxpdHkgb2YgTWVsbGFub3ggbWx4NSBDb2RlIGluIFZpcnR1YWxpemVkIEVudmlyb25tZW50cyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgdHJ5aW5nIHRvIGRldGVybWluZSBpZiBpdCYjMzk7cyB3b3J0aCBmdXp6aW5nLiBUaGUgcHJvbXB0IHNheXMgdG8gcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgIGlmIHRoZSBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLCBldmVuIHdpdGggc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBjYW4gc3l6a2FsbGVyJiMzOTtzIFBDSSBmdXp6ZXIgZ2V0IHRvIHRoaXMgYG1seDVgIGNvZGU/IEkga25vdyBzeXprYWxsZXIgaGFzIGEgUENJIGZ1enplciB0aGF0IGNhbiBwcm9iZSBhbnkgUENJIGRyaXZlci4gTWVsbGFub3ggbWx4NSBpcywgb2YgY291cnNlLCBhIFBDSSBkZXZpY2UuIFNvLCBpZiBzeXprYWxsZXIgY2FuIHJlYWNoIGl0IHdpdGggaXRzIFBDSSBmdXp6ZXIsIHRoZW4gaXQmIzM5O3MgcmVhY2hhYmxlLCByaWdodD8gQnV0IHRoZSB3b3JkaW5nICYjMzQ7ZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSYjMzQ7IGdpdmVzIG1lIHBhdXNlLCBiZWNhdXNlIHN5emthbGxlciYjMzk7cyBQQ0kgZnV6emVyICppcyogZW11bGF0aW5nIFBDSSBkZXZpY2VzLgoKVGhlIGF1dGhvciBpcyBsaXN0ZWQgYXMgYHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDtgLCB3aGljaCBzY3JlYW1zIHN5emthbGxlciBidWcsIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIGlmIHN5emthbGxlciBmb3VuZCB0aGlzIGJ1ZyBhbmQgaG93LiBJZiBzeXprYWxsZXIgZm91bmQgaXQsIHRoZW4gaXQgY2FuIHJlYWNoIGl0LiBNeSBmaXJzdCB0aG91Z2h0IGlzIHVwc3RyZWFtIHN5emJvdCBydW5zIG9uIEdDRS4gU28gaWYgc3l6a2FsbGVyIGZvdW5kIGl0LCB0aGVuIGl0IGlzIHJlYWNoYWJsZSBpbiBHQ0UuIEhvd2V2ZXIsIHdoYXQgaWYgaXQgd2FzIGZvdW5kIG9uIGJhcmUgbWV0YWwgYW5kIHRoZW4gYmFja3BvcnRlZD8gSSBrbm93IHN5emJvdCB1cHN0cmVhbSBpcyBtb3N0bHkgR0NFLCBidXQgaXQgKmRvZXMqIHRlc3QgaW4gb3RoZXIgZW52aXJvbm1lbnRzLCBjb3JyZWN0PyBObywgc3l6Ym90IHVwc3RyZWFtIGlzIEdDRS4gU28gdGhlbiwgdGhpcyBtdXN0IGJlIGEgY3VzdG9tIHN5emthbGxlciBpbnN0YW5jZS4KCk5vdyBJIG5lZWQgdG8gYXNzZXNzIHdoZXRoZXIgdGhlIFBDSSBmdXp6ZXIgaXMgY2FwYWJsZSBvZiByZWFjaGluZyB0aGlzIHNwZWNpZmljIGNvZGUuIGBtbHg1ZV90Y19jbGVhbl9mZGJfcGVlcl9mbG93c2AgaXMgcGFydCBvZiB0aGUgRXRoZXJuZXQgZHJpdmVyLCBgZW5fdGMuY2AuIFRvIGhpdCB0aGlzLCB0aGUgbWx4NSBjb3JlIGRldmljZSBtdXN0IGJlIGluaXRpYWxpemVkLCB0aGUgZXRoZXJuZXQgbmV0ZGV2IG11c3QgYmUgcmVnaXN0ZXJlZCwgYW5kIHRoZW4gVEMgcnVsZXMgbXVzdCBiZSBjb25maWd1cmVkLiBJbml0aWFsaXppbmcgdGhlIG1seDUgY29yZSBpbnZvbHZlcyBjb21wbGV4IGZpcm13YXJlIGNvbW1hbmRzLCBjb21tYW5kIHF1ZXVlcywgYW5kIGV2ZW50IHF1ZXVlcy4gVGhlIFBDSSBmdXp6ZXIganVzdCB0aHJvd3MgcmFuZG9tIGRhdGEgYXQgdGhlIGRldmljZS4gSXQmIzM5O3MgaGlnaGx5IHVubGlrZWx5IHRoYXQgdGhlIFBDSSBmdXp6ZXIgY2FuIHN1Y2Nlc3NmdWxseSBpbml0aWFsaXplIGFsbCB0aGF0LgoKU28gaWYgaXQmIzM5O3MgdW5saWtlbHksIGhvdyBkaWQgc3l6a2FsbGVyIGZpbmQgaXQ/IFdhaXQsIGNvdWxkIHRoaXMgYmUgYSBtYW51YWwgcGF0Y2gsIHN1Ym1pdHRlZCBieSBhIHVzZXIgZm9yIHRlc3RpbmcgYnkgc3l6Ym90PyBPaCwgdGhlIGNvbW1pdCBtZXNzYWdlIHNheXMgJiMzNDtzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcmIzM0Oy4gQWhhISBUaGF0IG1lYW5zIGl0ICppcyogYSB1c2VyLXN1Ym1pdHRlZCBwYXRjaCB0ZXN0ZWQgYnkgc3l6Ym90LiBJZiBzeXpib3QgdGVzdGVkIGl0LCB0aGVuIHRoZSBidWcgd2FzIGxpa2VseSBmb3VuZCBpbiB0aGUgZW52aXJvbm1lbnQgaW4gd2hpY2ggc3l6Ym90IHRlc3RzLgoKQmFjayB0byB0aGUgb3JpZ2luYWwgcHJvYmxlbTogSXMgbWx4NSByZWFjaGFibGUgaW4gR0NFL1FFTVU/IElmIGl0IGlzbiYjMzk7dCwgSSBzaG91bGQgcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiB0aGVyZSYjMzk7cyBhbnkgc29mdHdhcmUgZW11bGF0aW9uIGZvciBtbHg1LiBJIHdpbGwgc2VhcmNoIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYCBmb3IgYSBkdW1teSBvciBtb2NrIGRyaXZlci4gTGV0JiMzOTtzIHNlZS4uLiBub3RoaW5nIGltbWVkaWF0ZWx5IHN0YW5kcyBvdXQuIEkgZGlkbiYjMzk7dCBmaW5kIGFueSBzb2Z0d2FyZSBlbXVsYXRvcnMgZm9yIG1seDUgd2hlbiBncmVwcGluZyBmb3IgYG1vY2tgIGFuZCBgc2ltYC4gVGhlcmVmb3JlLCBJJiMzOTttIHRoaW5raW5nIHRoZSBjb2RlIGlzIG5vdCByZWFjaGFibGUgaW4gR0NFL1FFTVUsIGFuZCBJIG5lZWQgdG8gcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAxODoxMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtkdW1teSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmM9OTg9RVhQT1JUX1NZTUJPTChtbHg1X2FkZF9jcV90b190YXNrbGV0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jcS5jLTk5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmM6MTAwOnN0YXRpYyB2b2lkIG1seDVfY29yZV9jcV9kdW1teV9jYihzdHJ1Y3QgbWx4NV9jb3JlX2NxICpjcSwgc3RydWN0IG1seDVfZXFlICplcWUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY3EuYy0xMDEte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jcS5jPTEwOD1pbnQgbWx4NV9jcmVhdGVfY3Eoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfY29yZV9jcSAqY3EsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmMtMTQzLVx0aWYgKCFjcS1cdTAwM2Vjb21wKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmM6MTQ0Olx0XHRjcS1cdTAwM2Vjb21wID0gbWx4NV9jb3JlX2NxX2R1bW15X2NiO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmMtMTQ1LVx0LyogYXNzdW1pbmcgQ1Egd2lsbCBiZSBkZWxldGVkIGJlZm9yZSB0aGUgRVEgKi9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vc2VscS5jPTI3PWludCBtbHg1ZV9zZWxxX2luaXQoc3RydWN0IG1seDVlX3NlbHEgKnNlbHEsIHN0cnVjdCBtdXRleCAqc3RhdGVfbG9jaylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vc2VscS5jLTQyLVx0fVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3NlbHEuYzo0MzpcdC8qIEFzc2lnbiBkdW1teSB2YWx1ZXMsIHNvIHRoYXQgbWx4NWVfc2VsZWN0X3F1ZXVlIHdvbiYjMzk7dCBjcmFzaC4gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9zZWxxLmMtNDQtXHQqaW5pdF9wYXJhbXMgPSAoc3RydWN0IG1seDVlX3NlbHFfcGFyYW1zKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2lwb2liL2lwb2liX3ZsYW4uYz0yODU9c3RhdGljIGludCBtbHg1aV9wa2V5X2luaXQoc3RydWN0IG1seDVfY29yZV9kZXYgKm1kZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2lwb2liL2lwb2liX3ZsYW4uYy0zMDAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvaXBvaWIvaXBvaWJfdmxhbi5jOjMwMTpcdC8qIFVzZSBkdW1teSBycXMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9pcG9pYi9pcG9pYl92bGFuLmMtMzAyLVx0cHJpdi1cdTAwM2VjaGFubmVscy5wYXJhbXMubG9nX3JxX210dV9mcmFtZXMgPSBNTFg1RV9QQVJBTVNfTUlOSU1VTV9MT0dfUlFfU0laRTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jPTIyNj1pbnQgbWx4NWh3c19id2NfbWF0Y2hlcl9jcmVhdGVfc2ltcGxlKHN0cnVjdCBtbHg1aHdzX2J3Y19tYXRjaGVyICpid2NfbWF0Y2hlcixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jLTI2MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM6MjYxOlx0LyogY3JlYXRlIGR1bW15IGFjdGlvbiB0ZW1wbGF0ZSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy0yNjItXHRid2NfbWF0Y2hlci1cdTAwM2VhdFswXSA9XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYz04NDI9aHdzX2J3Y19tYXRjaGVyX2ZpbmRfYXQoc3RydWN0IG1seDVod3NfYndjX21hdGNoZXIgKmJ3Y19tYXRjaGVyLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtODQ3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYzo4NDg6XHQvKiBzdGFydCBmcm9tIGluZGV4IDEgLSBmaXJzdCBhY3Rpb24gdGVtcGxhdGUgaXMgYSBkdW1teSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy04NDktXHRmb3IgKGkgPSAxOyBpIFx1MDAzYyBid2NfbWF0Y2hlci1cdTAwM2VudW1fb2ZfYXQ7IGkmIzQzOyYjNDM7KSB7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDE4OjEyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU2MzA1CgkJCQkJCQlvdXRwdXQ6IDMwCgkJCQkJCQl0aG91Z2h0czogNTc5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgRmVhc2liaWxpdHkgb2YgRnV6emluZyBhIE1lbGxhbm94IFN1YmZ1bmN0aW9uIFBhdGNoKioKCk9rYXksIEkgc2VlIHRoZXNlIGtlcm5lbCBjb25maWdzLCBgQ09ORklHX01MWDVfU0ZgIGFuZCBgQ09ORklHX01MWDVfU0ZfTUFOQUdFUmAsIHdoaWNoIHN1Z2dlc3Qgd2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBNZWxsYW5veCBzdWJmdW5jdGlvbnMuIFRoZSBkZXNjcmlwdGlvbiBzYXlzIHRoZXkmIzM5O3JlIGxpa2UgU1JJT1YgVkZzLCBidXQgd2l0aG91dCB0aGUgU1JJT1YgcmVxdWlyZW1lbnQuIEkgaW1tZWRpYXRlbHkgd29uZGVyOiBjYW4gc3ViZnVuY3Rpb25zICpleGlzdCogaW4gYSBwdXJlbHkgdmlydHVhbCBlbnZpcm9ubWVudD8gTXkgdW5kZXJzdGFuZGluZyBpcyB0aGV5JiMzOTtyZSBidWlsdCBvbiB0b3Agb2YgcGh5c2ljYWwgTWVsbGFub3ggaGFyZHdhcmUuCgpUaGVuIHRoZSB0aG91Z2h0IHN0cmlrZXM6IHdoYXQgaWYgc3l6a2FsbGVyICppcyogcnVubmluZyBvbiBhIEdDRSBpbnN0YW5jZSB0aGF0ICpkb2VzKiBoYXZlIGEgTWVsbGFub3ggY2FyZD8gSSBuZWVkIHRvIHJlbWVtYmVyIGhvdyBHQ0UgaW5zdGFuY2VzIGFyZSB0eXBpY2FsbHkgY29uZmlndXJlZC4gSSBrbm93IHRoZXkgY2FuIHVzZSAmIzM0O0dvb2dsZSBWaXJ0dWFsIE5JQyYjMzQ7IG9yICYjMzQ7dmlydGlvLW5ldCYjMzQ7LiBBbmQgSSByZWNhbGwgbG9jYWwgU1NEcyAoTlZNZSkgYW5kIEdQVXMgYXJlIGFsc28gb3B0aW9ucy4gQnV0IGRvIHN0YW5kYXJkIEdDRSBpbnN0YW5jZXMgaW5jbHVkZSBNZWxsYW5veCBjYXJkcz8KCkFoYSEgSSByZW1lbWJlciB0aGF0IHNvbWUgaGlnaC1wZXJmb3JtYW5jZSBHQ0UgaW5zdGFuY2VzIGRvIHVzZSBNZWxsYW5veCBDb25uZWN0WCBjYXJkcywgc3BlY2lmaWNhbGx5IHRoZSBDb25uZWN0WC02IG9yIENvbm5lY3RYLTcgbW9kZWxzIGZvciBUaWVyIDEgbmV0d29ya2luZyBvciBBMy9BMiBWTXMuIEJ1dCBzeXprYWxsZXIgVk1zIGFyZSB1c3VhbGx5IGp1c3Qgc3RhbmRhcmQgc21hbGwgb25lcyBsaWtlIGBuMS1zdGFuZGFyZC0yYCBvciBgZTItc3RhbmRhcmQtMmAgYW5kIHNvIGFyZSBwcm9iYWJseSB1c2luZyBgdmlydGlvLW5ldGAgb3IgYGd2ZWAgLiBTbywgbm8gTWVsbGFub3ggaGFyZHdhcmUgZm9yIHRoZSBzdGFuZGFyZCBzeXprYWxsZXIgc2V0dXAuCgpPa2F5LCBzbyBzeXprYWxsZXIgKmRvZXNuJiMzOTt0KiB0eXBpY2FsbHkgaGF2ZSBNZWxsYW5veCBoYXJkd2FyZSBpbiBpdHMgZGVmYXVsdCBHQ0UgVk1zLiBOb3cgSSYjMzk7bSB0aGlua2luZywgaG93IGNvdWxkIHRoaXMgcGF0Y2ggYmUgdGVzdGVkPyBNYXliZSB0aGlzIGlzIGEgYnVnIGEgdXNlciByZXBvcnRlZCBhbmQgc3VibWl0dGVkIHRvIHN5emJvdC4gSWYgdGhlIHVzZXIgc3VibWl0dGVkIGEgcGF0Y2gsIHN5emJvdCB3aWxsIHRyeSB0byB0ZXN0IGl0LiBJZiBzeXpib3QgZG9lc24mIzM5O3QgaGF2ZSB0aGUgaGFyZHdhcmUsIHRoZSB0ZXN0IHdpbGwgY29tcGlsZSBhbmQgcnVuLCBidXQgbGlrZWx5IHdvbiYjMzk7dCBldmVuICp0b3VjaCogdGhlIGNvZGUuIEl0IGlzIHVubGlrZWx5IHRoaXMgd2lsbCByZWFjaCB0aGUgTWVsbGFub3ggY29kZS4KClRoZW4gSSByZWNhbGwgdGhlIGNvcmUgcXVlc3Rpb24uIElmIHRoZSBjb2RlIGlzIHVucmVhY2hhYmxlIGluIEdDRS9RRU1VLCBJIG5lZWQgdG8gZmxhZyBpdCBhcyBgV29ydGhGdXp6aW5nPWZhbHNlYC4gSSBuZWVkIHRvIHJlcmVhZCB0aGUgcHJvbXB0LgoKTGV0JiMzOTtzIHNlZTogJiMzNDtSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zLi4uIGNvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVS4uLiYjMzQ7CgpJcyB0aGlzIG1seDUgY29kZSByZWFjaGFibGUgaW4gR0NFL1FFTVU/IElmIHRoZXJlJiMzOTtzIG5vIHNvZnR3YXJlIGVtdWxhdG9yIGZvciBtbHg1LCBhbmQgdGhlIFBDSSBmdXp6ZXIgY2FuJiMzOTt0IHJlYWxpc3RpY2FsbHkgZ2V0IGRlZXAgaW50byB0aGUgZHJpdmVyICh0aGluayByZWdpc3RlcmluZyBhIG5ldGRldiBhbmQgY29uZmlndXJpbmcgVEMgcnVsZXMpLCB0aGVuIGl0IGlzIGltcG9zc2libGUgdG8gcmVhY2guIEl0IG5lZWRzIG1vcmUgdGhhbiBzaW1wbGUgUENJIHJlYWRzL3dyaXRlcyBiZWNhdXNlIG9mIGNvbXBsZXggZmlybXdhcmUgaW50ZXJhY3Rpb25zLgoKTm93LCBkb2VzIHRoZSBQQ0kgZnV6emVyIGV2ZW4gKnJlYWNoKiB0aGlzPyBJIG5lZWQgdG8gcXVpY2tseSBjaGVjayBpZiB0aGVyZSYjMzk7cyBhbnkgYHN5el9wY2lfZXBgIGNvZGUgc3BlY2lmaWNhbGx5IGVtdWxhdGluZyBtbHg1LiBJIG5lZWQgdG8gYmUgc3VyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTg6MTI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bWx4NSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDt0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9kcml2ZXJzL25ldC9ody9kZXZsaW5rX3JhdGVfdGNfYncucHk9MzU9QmFuZHdpZHRoIERpc3RyaWJ1dGlvbjpcbi0tXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9kcml2ZXJzL25ldC9ody9kZXZsaW5rX3JhdGVfdGNfYncucHktNDEtXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9kcml2ZXJzL25ldC9ody9kZXZsaW5rX3JhdGVfdGNfYncucHk6NDI6SGFyZHdhcmUtU3BlY2lmaWMgQmVoYXZpb3IgKG1seDUpOlxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvZHJpdmVycy9uZXQvaHcvZGV2bGlua19yYXRlX3RjX2J3LnB5LTQzLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9kcml2ZXJzL25ldC9ody9kZXZsaW5rX3JhdGVfdGNfYncucHk6NDQ6bWx4NSBoYXJkd2FyZSBlbmZvcmNlcyB0cmFmZmljIGNsYXNzIHNlcGFyYXRpb24gYnkgZW5zdXJpbmcgdGhhdCBlYWNoIHRyYW5zbWl0XG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9kcml2ZXJzL25ldC9ody9kZXZsaW5rX3JhdGVfdGNfYncucHktNDUtcXVldWUgKFNRKSBpcyBhc3NvY2lhdGVkIHdpdGggYSBzaW5nbGUgVEMuIElmIGEgcGFja2V0IGlzIHNlbnQgb24gYSBxdWV1ZSB0aGF0XG4tLVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvZHJpdmVycy9uZXQvaHcvZGV2bGlua19yYXRlX3RjX2J3LnB5PTM4OD1kZWYgdGVzdF9ub190Y19tYXBwaW5nX2JhbmR3aWR0aChjZmcpOlxuLS1cbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2RyaXZlcnMvbmV0L2h3L2RldmxpbmtfcmF0ZV90Y19idy5weS0zOTMtICAgIGZhaWxfYndfbXNnID0gXCYjMzQ7QmFuZHdpZHRoIG1hdGNoZWQgMjAvODAgc3BsaXQgd2l0aG91dCBUQyBtYXBwaW5nXCYjMzQ7XG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9kcml2ZXJzL25ldC9ody9kZXZsaW5rX3JhdGVfdGNfYncucHk6Mzk0OiAgICBpc19tbHg1ID0gXCYjMzQ7ZHJpdmVyOiBtbHg1XCYjMzQ7IGluIGV0aHRvb2woZlwmIzM0Oy1pIHtjZmcuaWZuYW1lfVwmIzM0Oykuc3Rkb3V0XG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9kcml2ZXJzL25ldC9ody9kZXZsaW5rX3JhdGVfdGNfYncucHktMzk1LVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvZHJpdmVycy9uZXQvaHcvZGV2bGlua19yYXRlX3RjX2J3LnB5LTM5Ni0gICAgaWYgcnVuX2JhbmR3aWR0aF9kaXN0cmlidXRpb25fdGVzdChjZmcsIHNldF90Y19tYXBwaW5nPUZhbHNlKTpcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2RyaXZlcnMvbmV0L2h3L2RldmxpbmtfcmF0ZV90Y19idy5weTozOTc6ICAgICAgICBpZiBpc19tbHg1OlxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvZHJpdmVycy9uZXQvaHcvZGV2bGlua19yYXRlX3RjX2J3LnB5LTM5OC0gICAgICAgICAgICByYWlzZSBLc2Z0WGZhaWxFeChmYWlsX2J3X21zZylcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2RyaXZlcnMvbmV0L2h3L2RldmxpbmtfcmF0ZV90Y19idy5weS0zOTktICAgICAgICByYWlzZSBLc2Z0RmFpbEV4KGZhaWxfYndfbXNnKVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvZHJpdmVycy9uZXQvaHcvZGV2bGlua19yYXRlX3RjX2J3LnB5OjQwMDogICAgaWYgaXNfbWx4NTpcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2RyaXZlcnMvbmV0L2h3L2RldmxpbmtfcmF0ZV90Y19idy5weTo0MDE6ICAgICAgICByYWlzZSBLc2Z0RmFpbEV4KFwmIzM0O21seDUgYmVoYXZpb3IgY2hhbmdlZDpcJiMzNDsgJiM0MzsgcGFzc19id19tc2cpXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9kcml2ZXJzL25ldC9ody9kZXZsaW5rX3JhdGVfdGNfYncucHktNDAyLSAgICBrc2Z0X3ByKHBhc3NfYndfbXNnKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAxODoxMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1ODI2MgoJCQkJCQkJb3V0cHV0OiAxMTIKCQkJCQkJCXRob3VnaHRzOiA5NjEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqVW5mdXp6YWJsZSBDb2RlIFBhdGggQXNzZXNzbWVudCoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIHRoZXJlJiMzOTtzIG5vIHNvZnR3YXJlIGVtdWxhdG9yIGZvciBtbHg1LCB3aGljaCBpbW1lZGlhdGVseSBmbGFncyBpdCBhcyBhIHBvdGVudGlhbCBkZWFkIGVuZCBmb3Igc3RhbmRhcmQgZnV6emluZy4gQnV0IHdhaXQsIHdoYXQgYWJvdXQgdGhlIFBDSSBmdXp6ZXI/IENvdWxkIGl0ICpzb21laG93KiByZWFjaCBpdD8gSWYgdGhlcmUmIzM5O3MgYSBwb3NzaWJpbGl0eSwgSSBoYXZlIHRvIGp1c3RpZnkgaXQuCgpJZiBJJiMzOTttIHNheWluZyAmIzM0O1dvcnRoRnV6emluZz10cnVlLCYjMzQ7IHRoZW4gSSBuZWVkIHRvIHByb3ZpZGUgYEZvY3VzU3ltYm9sc2AgYW5kIGBFbmFibGVDb25maWdzYC4gSWYgaXQmIzM5O3MgJiMzNDtXb3J0aEZ1enppbmc9ZmFsc2UsJiMzNDsgdGhlIHJlYXNvbmluZyBoYXMgdG8gYmUgYWlydGlnaHQuIFRoZSBpbml0aWFsIHJlYXNvbmluZyBpczogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lbGxhbm94IG1seDUgaGFyZHdhcmUgZHJpdmVyLiBTaW5jZSBtbHg1IHJlcXVpcmVzIHBoeXNpY2FsIE1lbGxhbm94IGhhcmR3YXJlIGFuZCB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRvciBmb3IgaXQgaW4gdGhlIGtlcm5lbCwgdGhlc2UgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVS4mIzM0OyBUaGF0IHNvdW5kcyBzb2xpZCwgYnV0IGxldCYjMzk7cyBkZWx2ZSBkZWVwZXIuCgpEb2VzIFN5emthbGxlciBldmVuIHRyeSB0byBmdXp6IG1seDU/IEl0IGhhcyBhIGBzeXpfcGNpX2VwYCBmdXp6ZXIuIEl0IGNvdWxkIGJlIGEgcG9zc2liaWxpdHkuIExldCYjMzk7cyBzZWUgaWYgc3l6a2FsbGVyIGhhcyBmb3VuZCBhbnl0aGluZy4gSSBjYW4mIzM5O3QgZG8gYSBkaXJlY3Qgc2VhcmNoIG9mIHRoZSBTeXprYWxsZXIgZGFzaGJvYXJkLCBidXQgSSBjYW4gbWFrZSBhbiBlZHVjYXRlZCBndWVzcy4gQ29tcGxleCBuZXR3b3JrIGRyaXZlcnMgb2Z0ZW4gcmVxdWlyZSBmaXJtd2FyZSBpbnRlcmFjdGlvbi4gV2hpbGUgdGhlIFBDSSBmdXp6ZXIgbWlnaHQgdHJpZ2dlciBzb21lIGVhcmx5IHByb2JlIGNvZGUsIGhpdHRpbmcgY29kZSBwYXRocyBsaWtlIGBtbHg1ZV90Y19jbGVhbl9mZGJfcGVlcl9mbG93c2AgaXMgaGlnaGx5IHVubGlrZWx5LiBUaGF0IGZ1bmN0aW9uIG5lZWRzIGEgcmVnaXN0ZXJlZCBuZXRkZXYsIGUtc3dpdGNoIGVuYWJsZWQsIGFuZCBUQyBydWxlcyBzZXQgdXAg4oCTIGVzc2VudGlhbGx5LCBhIGZ1bGx5IGZ1bmN0aW9uYWwgbWx4NSBlbnZpcm9ubWVudCB3aGljaCBqdXN0IHdvdWxkbiYjMzk7dCBiZSBwb3NzaWJsZSB3aXRoIGEgZ2VuZXJpYyBQQ0kgZnV6emVyLgoKT2theSwgbGV0JiMzOTtzIGV4YW1pbmUgdGhlIHNwZWNpZmljIGxvY2F0aW9ucyB0aGF0IGFyZSBpbXBhY3RlZC4gYG1seDVfbGFnX2NyZWF0ZV9zaW5nbGVfZmRiX2ZpbHRlcmAgaXMgaW4gYGxhZy9zaGFyZWRfZmRiLmNgLiBMQUcsIG9yIExpbmsgQWdncmVnYXRpb24sIG5lZWRzIG11bHRpcGxlIHBoeXNpY2FsIHBvcnRzLiBgbWx4NV9tcGVzd193b3JrYCBpcyBpbiBgbGFnL21wZXN3LmNgLiBUaGVzZSBhcmUgZGVlcCwgaGFyZHdhcmUtc3BlY2lmaWMgZmVhdHVyZXM6IE11bHRpLVBvcnQgRS1Td2l0Y2gsIExpbmsgQWdncmVnYXRpb24uIFRoZXJlJiMzOTtzIGFsbW9zdCB6ZXJvIGNoYW5jZSB0aGUgUENJIGZ1enplciBjYW4gcmVhY2ggdGhvc2Ugd2l0aG91dCBhIGRlZGljYXRlZCBlbXVsYXRvciwgd2hpY2ggZG9lc24mIzM5O3QgZXhpc3QuIFRoaXMgY29kZSBpcyBlc3NlbnRpYWxseSB1bnJlYWNoYWJsZSBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LgoKTm93LCBsZXQgbWUgZG91YmxlIGNoZWNrIHRoZSBTeXprYWxsZXIgY29uZmlnLiBEb2VzIFN5emthbGxlciBlbmFibGUgYENPTkZJR19NTFg1X0NPUkVgPyBZZXMsIGl0IGRvZXMuIEl0JiMzOTtzIGZ1enppbmcgdGhlIHByb2JlIGZ1bmN0aW9uLiBCdXQsIHRoZSBwcm9tcHQgaXMgZXhwbGljaXQ6ICYjMzQ7UmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWlucyBjb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUuJiMzNDsKCk1seDUgaXMgYSBwaHlzaWNhbCBoYXJkd2FyZSBkcml2ZXIsIHRoZXJlIGlzIG5vIGBtbHg1X3NpbWAgb3Igc2ltaWxhciBzb2Z0d2FyZSBlbXVsYXRvciwgc28gdGhlc2UgVEMgZmxvd3MsIExBRywgYW5kIE1QRVNXIG1vZGlmaWNhdGlvbnMgd2lsbCBiZSB1bmFjaGlldmFibGUgaW4gR0NFL1FFTVUuCgpUaGUgcmVhc29uaW5nIG5lZWRzIHRvIGJlIGNsZWFyLCBzbyBoZXJlIGl0IGlzOiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWVsbGFub3ggbWx4NSBoYXJkd2FyZSBkcml2ZXIsIHNwZWNpZmljYWxseSBkZWVwIGxvZ2ljIHJlbGF0ZWQgdG8gVEMgZmxvd3MsIExpbmsgQWdncmVnYXRpb24gKExBRyksIGFuZCBNdWx0aS1Qb3J0IEUtU3dpdGNoIChNUEVTVykuIFNpbmNlIG1seDUgcmVxdWlyZXMgcGh5c2ljYWwgTWVsbGFub3ggaGFyZHdhcmUgYW5kIHRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdG9yIGZvciBpdCBpbiB0aGUga2VybmVsLCB0aGVzZSBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLiYjMzQ7CgpIb2xkIG9uLCB3aGF0IGFib3V0IGEgdmlydHVhbCBkZXZpY2UgdGhhdCB1c2VzIHRoaXMgY29kZT8gTWF5YmUgYG5ldGRldnNpbWA/IE5vLCB0aGF0JiMzOTtzIGEgY29tcGxldGVseSBzZXBhcmF0ZSBkcml2ZXIuIENvdWxkIGl0IGJlIHVzZWQgd2l0aCB2ZHBhPyBgdmRwYWAgaGFzIGBtbHg1X3ZkcGFgLCBidXQgaXQgKnN0aWxsKiBuZWVkcyBhIHBoeXNpY2FsIG1seDUgZGV2aWNlLiBXaGF0IGFib3V0IHZmaW8/IFllcywgYnV0IGl0IHJlcXVpcmVzIHBoeXNpY2FsIGhhcmR3YXJlIHRvby4KClRoZSBjb25jbHVzaW9uIHN0YW5kcy4gVGhpcyByZXF1aXJlcyBwaHlzaWNhbCBoYXJkd2FyZS4KCkxldCYjMzk7cyBkbyBhIGZpbmFsIHF1aWNrIHBhdGNoIHJldmlldy4gRmlsZXMgbW9kaWZpZWQgYXJlOiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3RjLmNgLCBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9tcGVzdy5jYCwgYW5kIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL3NoYXJlZF9mZGIuY2AuIEFsbCB3aXRoaW4gdGhlIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYCBkaXJlY3RvcnkuIFllcCwgdGhhdCBjb25maXJtcyBpdDogTWVsbGFub3ggQ29ubmVjdFggaGFyZHdhcmUgZHJpdmVyLgoKSSB3aWxsIHNldCBgV29ydGhGdXp6aW5nPWZhbHNlYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTg6MTM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWVsbGFub3ggbWx4NSBoYXJkd2FyZSBkcml2ZXIsIHNwZWNpZmljYWxseSBkZWVwIGxvZ2ljIHJlbGF0ZWQgdG8gVEMgZmxvd3MsIExpbmsgQWdncmVnYXRpb24gKExBRyksIGFuZCBNdWx0aS1Qb3J0IEUtU3dpdGNoIChNUEVTVykuIFNpbmNlIG1seDUgcmVxdWlyZXMgcGh5c2ljYWwgTWVsbGFub3ggaGFyZHdhcmUgYW5kIHRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdG9yIGZvciBpdCBpbiB0aGUga2VybmVsLCB0aGVzZSBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lbGxhbm94IG1seDUgaGFyZHdhcmUgZHJpdmVyLCBzcGVjaWZpY2FsbHkgZGVlcCBsb2dpYyByZWxhdGVkIHRvIFRDIGZsb3dzLCBMaW5rIEFnZ3JlZ2F0aW9uIChMQUcpLCBhbmQgTXVsdGktUG9ydCBFLVN3aXRjaCAoTVBFU1cpLiBTaW5jZSBtbHg1IHJlcXVpcmVzIHBoeXNpY2FsIE1lbGxhbm94IGhhcmR3YXJlIGFuZCB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRvciBmb3IgaXQgaW4gdGhlIGtlcm5lbCwgdGhlc2UgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNi0zMFQxODoxMToxOS43NDUyODY3NDdaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDI0MzA0NTIxMTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWxsYW5veCBtbHg1IGhhcmR3YXJlIGRyaXZlciwgc3BlY2lmaWNhbGx5IGRlZXAgbG9naWMgcmVsYXRlZCB0byBUQyBmbG93cywgTGluayBBZ2dyZWdhdGlvbiAoTEFHKSwgYW5kIE11bHRpLVBvcnQgRS1Td2l0Y2ggKE1QRVNXKS4gU2luY2UgbWx4NSByZXF1aXJlcyBwaHlzaWNhbCBNZWxsYW5veCBoYXJkd2FyZSBhbmQgdGhlcmUgaXMgbm8gc29mdHdhcmUgZW11bGF0b3IgZm9yIGl0IGluIHRoZSBrZXJuZWwsIHRoZXNlIGNvZGUgcGF0aHMgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQxODoxMToxOS43NDUyOTY3OTdaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY3NzY2MDYwNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGFiMmQ4OWZhYWFmNjc2YjQ5OTQ2MmFhZTQyMDc4N2M0M2M0MDMyMGZcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFR1ZSBKdW4gMzAgMTg6MTE6MTcgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3RjLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdGMuY1xcbmluZGV4IDkxMDQ5MmViNTFmMjc2Li4xYmM3YjkwMTkxMjRhNCAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdGMuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90Yy5jXFxuQEAgLTU1NDcsNiArNTU0Nyw5IEBAIHZvaWQgbWx4NWVfdGNfY2xlYW5fZmRiX3BlZXJfZmxvd3Moc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3KVxcbiBcXG4gXFx0bWx4NV9kZXZjb21fZm9yX2VhY2hfcGVlcl9lbnRyeShkZXZjb20sIHBlZXJfZXN3LCBwb3MpIHtcXG4gXFx0XFx0aSA9IG1seDVfbGFnX2dldF9kZXZfc2VxKHBlZXJfZXN3LVxcdTAwM2VkZXYpO1xcbitcXHRcXHRpZiAoaSBcXHUwMDNjIDApXFxuK1xcdFxcdFxcdGNvbnRpbnVlO1xcbitcXG4gXFx0XFx0bGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGZsb3csIHRtcCwgXFx1MDAyNmVzdy1cXHUwMDNlb2ZmbG9hZHMucGVlcl9mbG93c1tpXSwgcGVlcltpXSlcXG4gXFx0XFx0XFx0bWx4NWVfdGNfZGVsX2ZkYl9wZWVyc19mbG93KGZsb3cpO1xcbiBcXHR9XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvbXBlc3cuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvbXBlc3cuY1xcbmluZGV4IDUwYmZiNDUwYzcxZTJmLi5hYmY3MjAyNmM3NTEzMyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL21wZXN3LmNcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL21wZXN3LmNcXG5AQCAtMTk0LDggKzE5NCwxMCBAQCBzdGF0aWMgdm9pZCBtbHg1X21wZXN3X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbiBcXHRzdHJ1Y3QgbWx4NV9sYWcgKmxkZXYgPSBtcGVzd3ctXFx1MDAzZWxhZztcXG4gXFxuIFxcdGRldmNvbSA9IG1seDVfbGFnX2dldF9kZXZjb21fY29tcChsZGV2KTtcXG4tXFx0aWYgKCFkZXZjb20pXFxuLVxcdFxcdHJldHVybjtcXG4rXFx0aWYgKCFkZXZjb20pIHtcXG4rXFx0XFx0bXBlc3d3LVxcdTAwM2VyZXN1bHQgPSAtRU5PREVWO1xcbitcXHRcXHRnb3RvIGNvbXBsZXRlO1xcbitcXHR9XFxuIFxcbiBcXHRtbHg1X2RldmNvbV9jb21wX2xvY2soZGV2Y29tKTtcXG4gXFx0bWx4NV9tcGVzd19zZF9kZXZjb21zX2xvY2sobGRldik7XFxuQEAgLTIxMyw2ICsyMTUsNyBAQCBzdGF0aWMgdm9pZCBtbHg1X21wZXN3X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbiBcXHRtdXRleF91bmxvY2soXFx1MDAyNmxkZXYtXFx1MDAzZWxvY2spO1xcbiBcXHRtbHg1X21wZXN3X3NkX2RldmNvbXNfdW5sb2NrKGxkZXYpO1xcbiBcXHRtbHg1X2RldmNvbV9jb21wX3VubG9jayhkZXZjb20pO1xcbitjb21wbGV0ZTpcXG4gXFx0Y29tcGxldGUoXFx1MDAyNm1wZXN3dy1cXHUwMDNlY29tcCk7XFxuIH1cXG4gXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvc2hhcmVkX2ZkYi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9zaGFyZWRfZmRiLmNcXG5pbmRleCAxMTM4NjY0OTRkMTY0Yi4uNmI0YWQzYzUzZjJmMzMgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9zaGFyZWRfZmRiLmNcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL3NoYXJlZF9mZGIuY1xcbkBAIC03OCw3ICs3OCw3IEBAIHN0YXRpYyBpbnQgbWx4NV9sYWdfY3JlYXRlX3NpbmdsZV9mZGJfZmlsdGVyKHN0cnVjdCBtbHg1X2xhZyAqbGRldiwgdTMyIGZpbHRlcilcXG4gXFx0fVxcbiBcXHRyZXR1cm4gMDtcXG4gZXJyOlxcbi1cXHRtbHg1X2xhZ19mb3JfZWFjaF9yZXZlcnNlKGosIGksIDAsIGxkZXYsIGZpbHRlcikge1xcbitcXHRtbHg1X2xhZ19mb3JfZWFjaF9yZXZlcnNlKGosIGkgLSAxLCAwLCBsZGV2LCBmaWx0ZXIpIHtcXG4gXFx0XFx0c3RydWN0IG1seDVfZXN3aXRjaCAqc2xhdmVfZXN3O1xcbiBcXG4gXFx0XFx0aWYgKGogPT0gbWFzdGVyX2lkeClcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTg6MTE6MjAuNDIzODI4MzgxWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMDE3NTE5MDI5MjMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWxsYW5veCBtbHg1IGhhcmR3YXJlIGRyaXZlciwgc3BlY2lmaWNhbGx5IGRlZXAgbG9naWMgcmVsYXRlZCB0byBUQyBmbG93cywgTGluayBBZ2dyZWdhdGlvbiAoTEFHKSwgYW5kIE11bHRpLVBvcnQgRS1Td2l0Y2ggKE1QRVNXKS4gU2luY2UgbWx4NSByZXF1aXJlcyBwaHlzaWNhbCBNZWxsYW5veCBoYXJkd2FyZSBhbmQgdGhlcmUgaXMgbm8gc29mdHdhcmUgZW11bGF0b3IgZm9yIGl0IGluIHRoZSBrZXJuZWwsIHRoZXNlIGNvZGUgcGF0aHMgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGFiMmQ4OWZhYWFmNjc2YjQ5OTQ2MmFhZTQyMDc4N2M0M2M0MDMyMGZcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEp1biAzMCAxODoxMToxNyAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90Yy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3RjLmNcbmluZGV4IDkxMDQ5MmViNTFmMjc2Li4xYmM3YjkwMTkxMjRhNCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90Yy5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdGMuY1xuQEAgLTU1NDcsNiArNTU0Nyw5IEBAIHZvaWQgbWx4NWVfdGNfY2xlYW5fZmRiX3BlZXJfZmxvd3Moc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3KVxuIFxuIFx0bWx4NV9kZXZjb21fZm9yX2VhY2hfcGVlcl9lbnRyeShkZXZjb20sIHBlZXJfZXN3LCBwb3MpIHtcbiBcdFx0aSA9IG1seDVfbGFnX2dldF9kZXZfc2VxKHBlZXJfZXN3LVx1MDAzZWRldik7XG4rXHRcdGlmIChpIFx1MDAzYyAwKVxuK1x0XHRcdGNvbnRpbnVlO1xuK1xuIFx0XHRsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoZmxvdywgdG1wLCBcdTAwMjZlc3ctXHUwMDNlb2ZmbG9hZHMucGVlcl9mbG93c1tpXSwgcGVlcltpXSlcbiBcdFx0XHRtbHg1ZV90Y19kZWxfZmRiX3BlZXJzX2Zsb3coZmxvdyk7XG4gXHR9XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9tcGVzdy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9tcGVzdy5jXG5pbmRleCA1MGJmYjQ1MGM3MWUyZi4uYWJmNzIwMjZjNzUxMzMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL21wZXN3LmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvbXBlc3cuY1xuQEAgLTE5NCw4ICsxOTQsMTAgQEAgc3RhdGljIHZvaWQgbWx4NV9tcGVzd193b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbiBcdHN0cnVjdCBtbHg1X2xhZyAqbGRldiA9IG1wZXN3dy1cdTAwM2VsYWc7XG4gXG4gXHRkZXZjb20gPSBtbHg1X2xhZ19nZXRfZGV2Y29tX2NvbXAobGRldik7XG4tXHRpZiAoIWRldmNvbSlcbi1cdFx0cmV0dXJuO1xuK1x0aWYgKCFkZXZjb20pIHtcbitcdFx0bXBlc3d3LVx1MDAzZXJlc3VsdCA9IC1FTk9ERVY7XG4rXHRcdGdvdG8gY29tcGxldGU7XG4rXHR9XG4gXG4gXHRtbHg1X2RldmNvbV9jb21wX2xvY2soZGV2Y29tKTtcbiBcdG1seDVfbXBlc3dfc2RfZGV2Y29tc19sb2NrKGxkZXYpO1xuQEAgLTIxMyw2ICsyMTUsNyBAQCBzdGF0aWMgdm9pZCBtbHg1X21wZXN3X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuIFx0bXV0ZXhfdW5sb2NrKFx1MDAyNmxkZXYtXHUwMDNlbG9jayk7XG4gXHRtbHg1X21wZXN3X3NkX2RldmNvbXNfdW5sb2NrKGxkZXYpO1xuIFx0bWx4NV9kZXZjb21fY29tcF91bmxvY2soZGV2Y29tKTtcbitjb21wbGV0ZTpcbiBcdGNvbXBsZXRlKFx1MDAyNm1wZXN3dy1cdTAwM2Vjb21wKTtcbiB9XG4gXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9zaGFyZWRfZmRiLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL3NoYXJlZF9mZGIuY1xuaW5kZXggMTEzODY2NDk0ZDE2NGIuLjZiNGFkM2M1M2YyZjMzIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9zaGFyZWRfZmRiLmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvc2hhcmVkX2ZkYi5jXG5AQCAtNzgsNyArNzgsNyBAQCBzdGF0aWMgaW50IG1seDVfbGFnX2NyZWF0ZV9zaW5nbGVfZmRiX2ZpbHRlcihzdHJ1Y3QgbWx4NV9sYWcgKmxkZXYsIHUzMiBmaWx0ZXIpXG4gXHR9XG4gXHRyZXR1cm4gMDtcbiBlcnI6XG4tXHRtbHg1X2xhZ19mb3JfZWFjaF9yZXZlcnNlKGosIGksIDAsIGxkZXYsIGZpbHRlcikge1xuK1x0bWx4NV9sYWdfZm9yX2VhY2hfcmV2ZXJzZShqLCBpIC0gMSwgMCwgbGRldiwgZmlsdGVyKSB7XG4gXHRcdHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKnNsYXZlX2VzdztcbiBcbiBcdFx0aWYgKGogPT0gbWFzdGVyX2lkeClcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDE4OjExOjIwLjQyMzgzMjMzMVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE4MDQ3MDIwMTI4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgTWVsbGFub3ggbWx4NSBEcml2ZXIgUGF0Y2ggZm9yIEZ1enppbmcgUG90ZW50aWFsKipcblxuT2theSwgc28gSSd2ZSBnb3QgdGhpcyBwYXRjaCB0aGF0IHRvdWNoZXMgdGhyZWUgZmlsZXMgd2l0aGluIHRoZSBNZWxsYW5veCBtbHg1IEV0aGVybmV0IGRyaXZlcjogYGVuX3RjLmNgLCBgbGFnL21wZXN3LmNgLCBhbmQgYGxhZy9zaGFyZWRfZmRiLmNgLiBMZXQgbWUgcXVpY2tseSBicmVhayBkb3duIHdoYXQgdGhpcyBwYXRjaCBkb2VzLCBzbyBJIGNhbiBzdGFydCB0aGlua2luZyBhYm91dCBmdXp6aW5nIGl0LiBJdCBhZGRzIGEgY2hlY2sgaW4gYG1seDVlX3RjX2NsZWFuX2ZkYl9wZWVyX2Zsb3dzYCwgYSBjaGVjayBhbmQgY29uZGl0aW9uYWwganVtcCBpbiBgbWx4NV9tcGVzd193b3JrYCwgYW5kIG1vZGlmaWVzIGEgbG9vcCBpbiBgbWx4NV9sYWdfY3JlYXRlX3NpbmdsZV9mZGJfZmlsdGVyYC4gU2VlbXMgc3RyYWlnaHRmb3J3YXJkIGVub3VnaOKAlGZ1bmN0aW9uYWwgY2hhbmdlcy4gTm93IHRoZSBxdWVzdGlvbiBpcywgY2FuIEkgZXZlbiBmdXp6IHRoaXMgdGhpbmc/XG5cbk1lbGxhbm94IG1seDUsIHRoYXTigJlzIGEgaGFyZHdhcmUgZHJpdmVyLCByaWdodD8gWWVhaCwgaXQncyBmb3IgTWVsbGFub3ggQ29ubmVjdFggbmV0d29yayBjYXJkcy4gU28sIEkgbmVlZCB0byBjb25zaWRlciB0aGUgZW52aXJvbm1lbnQuIE15IGltbWVkaWF0ZSBjb25jZXJuIGlzIHdoZXRoZXIgdGhpcyBpcyBnb2luZyB0byBiZSBmZWFzaWJsZSBpbiBhIHN0YW5kYXJkIHZpcnR1YWxpemVkIHNldHVwLCBsaWtlIEdDRSBvciBRRU1VLiBJIG5lZWQgdGhvc2UgY2FyZHMsIHdoaWNoIGFyZW4ndCB0eXBpY2FsbHkgcHJlc2VudCB1bmxlc3MgeW91IGVtdWxhdGUgdGhlbSBvciBwYXNzIHRoZW0gdGhyb3VnaC4gQXJlIHRoZXJlIGFueSBzb2Z0d2FyZSBlbXVsYXRvcnMgZm9yIG1seDUgaW4gdGhlIGtlcm5lbD8gSSBhbSB0aGlua2luZywgZm9yIGV4YW1wbGUsIG9mIGBuZXRkZXZzaW1gIG9yIGBtYWM4MDIxMV9od3NpbWAuIExldCBtZSBjaGVjay4uLiBub3BlLCBkb2Vzbid0IGxvb2sgbGlrZSB0aGVyZSBpcyBhIGRlZGljYXRlZCBtbHg1IHNvZnR3YXJlIGVtdWxhdG9yIGluIHRoZSB1cHN0cmVhbSBrZXJuZWwuXG5cbk9rYXksIHNvIHRoZW4gdGhlIG5leHQgdGhpbmcgSSBuZWVkIHRvIGFzayBpczogZG9lcyBzeXprYWxsZXIgZG8gYW55dGhpbmcgd2l0aCBtbHg1PyBTeXprYWxsZXIgaXMgdGhlIGdvLXRvIHRvb2wgZm9yIGtlcm5lbCBmdXp6aW5nLCBidXQgaXQgdXN1YWxseSBuZWVkcyBzcGVjaWZpYyBoYXJkd2FyZSBvciBlZmZlY3RpdmUgZW11bGF0b3JzLiBXZWxsLCBpdCBjYW4gZnV6eiBQQ0kgZGV2aWNlcywgaWYgdGhlcmUgaXMgYSBQQ0kgZnV6emVyLCB3aGljaCBpcyB0aGUgY2xhc3Mgb2YgaGFyZHdhcmUgd2UgYXJlIHRhbGtpbmcgYWJvdXQgaGVyZS4gQnV0IHJlYWNoaW5nIHRoZXNlIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlcnMgd2l0aG91dCB0aGUgaGFyZHdhcmUgaXMgYSBwYWluLiBJIHNlZW0gdG8gcmVjYWxsIHRoYXQgc3l6a2FsbGVyIGhhcyBhIHZoY2kvUENJIGZ1enplciBvZiBzb21lIGtpbmQsIGJ1dCBpcyBpdCBhY3R1YWxseSBlZmZlY3RpdmUgZm9yIG1seDU/IEknbGwgbmVlZCB0byBjaGVjayBpZiB0aGVyZSBhcmUgYW55IGNvbmZpZ3VyYXRpb25zIEkgY2FuIHVzZS4gSSB3b25kZXIgaWYgaXQncyBldmVuIHdvcnRoIGF0dGVtcHRpbmcgdG8gZnV6eiBnaXZlbiB0aGF0IGl0IGlzIGEgUENJIHBoeXNpY2FsIGRldmljZSBkcml2ZXIgd2l0aCBubyBzb2Z0d2FyZSBlbXVsYXRvci5cblxuTGV0IG1lIHRoaW5rIGJhY2sgb24gc29tZSBwcmV2aW91cyBleHBlcmllbmNlcy4gSSByZW1lbWJlciBzb21ldGhpbmcgYWJvdXQgY29kZSBwYXRocyBiZWluZyBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cywgc3BlY2lmaWNhbGx5IGluIHNpdHVhdGlvbnMgaW52b2x2aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlLiBXZWxsLCBJIGFtIHRoaW5raW5nIHRoYXQgdGhpcyBhcHBsaWVzIGhlcmUgYXMgbWx4NSBpc24ndCByZWFjaGFibGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBNYXliZSBJIHNob3VsZCBkb3VibGUtY2hlY2suIEkgd2lsbCBxdWlja2x5IHNlYXJjaCB0aGUga2VybmVsIGNvZGUgZm9yIGFueSBldmlkZW5jZSBvZiBtbHg1IHNvZnR3YXJlIGVtdWxhdGlvbiwganVzdCBpbiBjYXNlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNjM4LCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTcxLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTg6MTE6MzguNDcwODU2Nzc5WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI0MDkxMDM1NiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtbHg1XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgOTkwNjIgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnPTE5PWNvbmZpZyBNTFg1X0ZQR0FcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTI1LVxcdCAgYW5kIGFuIEZQR0EgY2hpcCBvbiBvbmUgYm9hcmQuIElmIHlvdSBzZWxlY3QgdGhpcyBvcHRpb24sIHRoZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnOjI2OlxcdCAgbWx4NV9jb3JlIGRyaXZlciB3aWxsIGluY2x1ZGUgdGhlIElubm92YSBGUEdBIGNvcmUgYW5kIGFsbG93IGJ1aWxkaW5nXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctMjctXFx0ICBzYW5kYm94LXNwZWNpZmljIGNsaWVudCBkcml2ZXJzLlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc9Nzc9Y29uZmlnIE1MWDVfQlJJREdFXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy04MS1cXHRoZWxwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc6ODI6XFx0ICBtbHg1IENvbm5lY3RYIG9mZmxvYWRzIHN1cHBvcnQgZm9yIEV0aGVybmV0IEJyaWRnaW5nIChCUklER0UpLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTgzLVxcdCAgRW5hYmxlIG9mZmxvYWRpbmcgRkRCIHJ1bGVzIGZyb20gYSBicmlkZ2UgZGV2aWNlIGNvbnRhaW5pbmdcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzo4NDpcXHQgIHJlcHJlc2VudG9ycyBvZiBtbHg1IHVwbGluayBhbmQgVkYgcG9ydHMuIFN1cHBvcnRzIFZMQU5zICh0cnVuayBhbmRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy04NS1cXHQgIGFjY2VzcyBtb2RlcykuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZz04Nz1jb25maWcgTUxYNV9DTFNfQUNUXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy05MS1cXHRoZWxwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc6OTI6XFx0ICBtbHg1IENvbm5lY3RYIG9mZmxvYWRzIHN1cHBvcnQgZm9yIFRDIGNsYXNzaWZpZXIgYWN0aW9uIChORVRfQ0xTX0FDVCksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctOTMtXFx0ICB3b3JrcyBpbiBib3RoIG5hdGl2ZSBOSUMgbW9kZSBhbmQgU3dpdGNoZGV2IFNSSU9WIG1vZGUuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZz0yMTA9Y29uZmlnIE1MWDVfRU5fUFNQXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0yMTUtXFx0aGVscFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnOjIxNjpcXHQgIG1seDUgZGV2aWNlIG9mZmxvYWQgc3VwcG9ydCBmb3IgR29vZ2xlIFBTUCBTZWN1cml0eSBQcm90b2NvbCBvZmZsb2FkLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTIxNy1cXHQgIEFkZHMgc3VwcG9ydCBmb3IgUFNQIGVuY3J5cHRpb24gb2ZmbG9hZCBhbmQgZm9yIFNQSSBhbmQga2V5IGdlbmVyYXRpb25cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZT03PXN1YmRpci1jY2ZsYWdzLXkgKz0gLUkkKHNyYylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6OTpvYmotJChDT05GSUdfTUxYNV9DT1JFKSArPSBtbHg1X2NvcmUub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTEtI1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxMjojIG1seDUgY29yZSBiYXNpY1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMy0jXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjE0Om1seDVfY29yZS15IDo9XFx0bWFpbi5vIGNtZC5vIGRlYnVnZnMubyBmdy5vIGVxLm8gdWFyLm8gcGFnZWFsbG9jLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xNS1cXHRcXHRoZWFsdGgubyBtY2cubyBjcS5vIGFsbG9jLm8gcG9ydC5vIG1yLm8gcGQubyBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMjUtI1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToyNjptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9DT1JFX0VOKSArPSBlbi9ycXQubyBlbi90aXIubyBlbi9yc3MubyBlbi9yeF9yZXMubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTI3LVxcdFxcdGVuL2NoYW5uZWxzLm8gZW5fbWFpbi5vIGVuX2NvbW1vbi5vIGVuX2ZzLm8gZW5fZXRodG9vbC5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0zNy0jXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjM4Om1seDVfY29yZS0kKENPTkZJR19NTFg1X0VOX0FSRlMpICAgICArPSBlbl9hcmZzLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6Mzk6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfRU5fUlhORkMpICAgICs9IGVuX2ZzX2V0aHRvb2wub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo0MDptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9DT1JFX0VOX0RDQikgKz0gZW5fZGNibmwubyBlbi9wb3J0X2J1ZmZlci5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjQxOm1seDVfY29yZS0kKENPTkZJR19QQ0lfSFlQRVJWX0lOVEVSRkFDRSkgKz0gZW4vaHZfdmhjYV9zdGF0cy5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjQyOm1seDVfY29yZS0kKENPTkZJR19NTFg1X0VTV0lUQ0gpICAgICArPSBsYWcvbXAubyBsYWcvcG9ydF9zZWwubyBsaWIvZ2VuZXZlLm8gbGliL3BvcnRfdHVuLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS00My1cXHRcXHRcXHRcXHRcXHRlbl9yZXAubyBlbi9yZXAvYm9uZC5vIGVuL21vZF9oZHIubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTQ0LVxcdFxcdFxcdFxcdFxcdGVuL21hcHBpbmcubyBsYWcvbXBlc3cubyBsYWcvc2hhcmVkX2ZkYi5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjQ1Om1seDVfY29yZS0kKENPTkZJR19NTFg1X0NMU19BQ1QpICAgICArPSBlbl90Yy5vIGVuL3JlcC90Yy5vIGVuL3JlcC9uZWlnaC5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNDYtXFx0XFx0XFx0XFx0XFx0bGliL2ZzX2NoYWlucy5vIGVuL3RjX3R1bi5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS01Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6NTM6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfQ0xTX0FDVCkgICAgICs9IGVuL3RjL2FjdC9hY3QubyBlbi90Yy9hY3QvZHJvcC5vIGVuL3RjL2FjdC90cmFwLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS01NC1cXHRcXHRcXHRcXHRcXHRlbi90Yy9hY3QvYWNjZXB0Lm8gZW4vdGMvYWN0L21hcmsubyBlbi90Yy9hY3QvZ290by5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZT02MT1pZm5lcSAoJChDT05GSUdfTUxYNV9UQ19DVCksKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo2MjpcXHRtbHg1X2NvcmUteVxcdFxcdFxcdCAgICAgKz0gZW4vdGNfY3QubyBlbi90Yy9jdF9mc19kbWZzLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6NjM6XFx0bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfU1dfU1RFRVJJTkcpICs9IGVuL3RjL2N0X2ZzX3NtZnMub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo2NDpcXHRtbHg1X2NvcmUtJChDT05GSUdfTUxYNV9IV19TVEVFUklORykgKz0gZW4vdGMvY3RfZnNfaG1mcy5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTY1LWVuZGlmXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTY2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo2NzptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9UQ19TQU1QTEUpICAgKz0gZW4vdGMvc2FtcGxlLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNjgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNzEtI1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo3MjptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9FU1dJVENIKSAgICs9IGVzd2l0Y2gubyBlc3dpdGNoX29mZmxvYWRzLm8gZXN3aXRjaF9vZmZsb2Fkc190ZXJtdGJsLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS03My1cXHRcXHRcXHRcXHQgICAgICBlY3BmLm8gcmRtYS5vIGVzdy9sZWdhY3kubyBlc3cvYWRqX3Zwb3J0Lm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTc1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo3NjptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9FU1dJVENIKSAgICs9IGVzdy9hY2wvaGVscGVyLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS03Ny1cXHRcXHRcXHRcXHQgICAgICBlc3cvYWNsL2VncmVzc19sZ2N5Lm8gZXN3L2FjbC9lZ3Jlc3Nfb2ZsZC5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZT04MD1pZm5lcSAoJChDT05GSUdfTUxYNV9FTl9JUFNFQyksKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo4MTpcXHRtbHg1X2NvcmUtJChDT05GSUdfTUxYNV9FU1dJVENIKSAgICs9IGVzdy9pcHNlY19mcy5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTgyLWVuZGlmXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTgzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo4NDptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9CUklER0UpICAgICs9IGVzdy9icmlkZ2UubyBlc3cvYnJpZGdlX21jYXN0Lm8gZXN3L2JyaWRnZV9kZWJ1Z2ZzLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS04NS1cXHRcXHRcXHRcXHQgICAgICBlbi9yZXAvYnJpZGdlLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtODYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjg3Om1seDVfY29yZS0kKENPTkZJR19IV01PTikgICAgICAgICAgKz0gaHdtb24ub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo4ODptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9NUEZTKSAgICAgICs9IGxpYi9tcGZzLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtODktaWZuZXEgKCQoQ09ORklHX1ZYTEFOKSwpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjkwOlxcdG1seDVfY29yZS15XFx0XFx0ICAgKz0gbGliL3Z4bGFuLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtOTEtZW5kaWZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6OTI6bWx4NV9jb3JlLSQoQ09ORklHX1BUUF8xNTg4X0NMT0NLKSArPSBsaWIvY2xvY2sub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo5MzptbHg1X2NvcmUtJChDT05GSUdfUENJX0hZUEVSVl9JTlRFUkZBQ0UpICs9IGxpYi9odi5vIGxpYi9odl92aGNhLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtOTQtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtOTctI1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo5ODptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9DT1JFX0lQT0lCKSArPSBpcG9pYi9pcG9pYi5vIGlwb2liL2V0aHRvb2wubyBpcG9pYi9pcG9pYl92bGFuLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtOTktXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTAyLSNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTAzOm1seDVfY29yZS0kKENPTkZJR19NTFg1X0ZQR0EpICs9IGZwZ2EvY21kLm8gZnBnYS9jb3JlLm8gZnBnYS9jb25uLm8gZnBnYS9zZGsub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjEwNTptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9NQUNTRUMpICs9IGVuX2FjY2VsL21hY3NlYy5vIGxpYi9tYWNzZWNfZnMubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTEwNi1cXHRcXHRcXHRcXHQgICAgICBlbl9hY2NlbC9tYWNzZWNfc3RhdHMub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMDctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjEwODptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9FTl9JUFNFQykgKz0gZW5fYWNjZWwvaXBzZWMubyBlbl9hY2NlbC9pcHNlY19yeHR4Lm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMDktXFx0XFx0XFx0XFx0ICAgICBlbl9hY2NlbC9pcHNlY19zdGF0cy5vIGVuX2FjY2VsL2lwc2VjX2ZzLm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTExMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTEyOm1seDVfY29yZS0kKENPTkZJR19NTFg1X0VOX1RMUykgKz0gZW5fYWNjZWwva3Rsc19zdGF0cy5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTEzLVxcdFxcdFxcdFxcdCAgIGVuX2FjY2VsL2ZzX3RjcC5vIGVuX2FjY2VsL2t0bHMubyBlbl9hY2NlbC9rdGxzX3R4cngubyBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTE1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxMTY6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfRU5fUFNQKSArPSBlbl9hY2NlbC9wc3AubyBlbl9hY2NlbC9wc3Bfcnh0eC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTExNy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMjAtI1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxMjE6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfU1dfU1RFRVJJTkcpICs9IHN0ZWVyaW5nL3N3cy9kcl9kb21haW4ubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTEyMi1cXHRcXHRcXHRcXHRcXHRzdGVlcmluZy9zd3MvZHJfdGFibGUubyBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTQ1LSNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTQ2Om1seDVfY29yZS0kKENPTkZJR19NTFg1X0hXX1NURUVSSU5HKSArPSBzdGVlcmluZy9od3MvY21kLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xNDctXFx0XFx0XFx0XFx0XFx0c3RlZXJpbmcvaHdzL2NvbnRleHQubyBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTY3LSNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTY4Om1seDVfY29yZS0kKENPTkZJR19NTFg1X1NGKSArPSBzZi92aGNhX2V2ZW50Lm8gc2YvZGV2L2Rldi5vIHNmL2Rldi9kcml2ZXIubyBpcnFfYWZmaW5pdHkub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xNjktXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTcyLSNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTczOm1seDVfY29yZS0kKENPTkZJR19NTFg1X1NGX01BTkFHRVIpICs9IHNmL2NtZC5vIHNmL2h3X3RhYmxlLm8gc2YvZGV2bGluay5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTE3NC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xNzctI1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxNzg6bWx4NV9jb3JlLSQoQ09ORklHX1BDSUVfVFBIKSArPSBsaWIvc3Qub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xNzktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjE4MDpvYmotJChDT05GSUdfTUxYNV9EUExMKSArPSBtbHg1X2RwbGwub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxODE6bWx4NV9kcGxsLXkgOj1cXHRkcGxsLm9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTQyLSNpbmNsdWRlIFxcdTAwM2NsaW51eC9zZXFfZmlsZS5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjQzOiNpbmNsdWRlIFxcdTAwM2NsaW51eC9tbHg1L2RyaXZlci5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTQ0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjQ1OiNpbmNsdWRlIFxcXCJtbHg1X2NvcmUuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTUwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjUxOnN0cnVjdCBtbHg1X2RiX3BnZGlyIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy01Mi1cXHRzdHJ1Y3QgbGlzdF9oZWFkXFx0bGlzdDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTU3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjU4OnN0cnVjdCBtbHg1X2RtYV9wb29sIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy01OS1cXHQvKiBQcm90ZWN0cyBwYWdlX2xpc3QgYW5kIHBlci1wYWdlIGFsbG9jYXRpb24gYml0bWFwcy4gKi9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTYxLVxcdHN0cnVjdCBsaXN0X2hlYWQgcGFnZV9saXN0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjYyOlxcdHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNjMtXFx0aW50IG5vZGU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy02Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo2NzpzdHJ1Y3QgbWx4NV9kbWFfcG9vbF9wYWdlIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo2ODpcXHRzdHJ1Y3QgbWx4NV9kbWFfcG9vbCAqcG9vbDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy02OS1cXHRzdHJ1Y3QgbGlzdF9oZWFkIHBvb2xfbGluaztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTc0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjc1OnN0cnVjdCBtbHg1X2ZyYWdfYnVmX25vZGVfcG9vbHMge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjc2OlxcdHN0cnVjdCBtbHg1X2RtYV9wb29sICpwb29sc1tNTFg1X0ZSQUdfQlVGX1BPT0xTX05VTV07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNzctfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy03OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo3OTpzdHJ1Y3QgbWx4NV9kbWFfcG9vbF9zdGF0cyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtODAtXFx0aW50IG5vZGU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy04OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo5MDpzdGF0aWMgdm9pZCAqbWx4NV9kbWFfemFsbG9jX2NvaGVyZW50X25vZGUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy05MS1cXHRcXHRcXHRcXHRcXHQgICBzaXplX3Qgc2l6ZSwgZG1hX2FkZHJfdCAqZG1hX2hhbmRsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTkzLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo5NDpcXHRzdHJ1Y3QgZGV2aWNlICpkZXZpY2UgPSBtbHg1X2NvcmVfZG1hX2RldihkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjk1OlxcdHN0cnVjdCBtbHg1X3ByaXYgKnByaXYgPSBcXHUwMDI2ZGV2LVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTk2LVxcdGludCBvcmlnaW5hbF9ub2RlO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMTA4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjEwOTpzdGF0aWMgdm9pZCBtbHg1X2RtYV9wb29sX2Rlc3Ryb3koc3RydWN0IG1seDVfZG1hX3Bvb2wgKnBvb2wpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMTEwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTExNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoxMTU6c3RhdGljIHN0cnVjdCBtbHg1X2RtYV9wb29sICptbHg1X2RtYV9wb29sX2NyZWF0ZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTExNi1cXHRcXHRcXHRcXHRcXHRcXHQgIGludCBub2RlLCB1OCBibG9ja19zaGlmdClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0xMTcte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjExODpcXHRzdHJ1Y3QgbWx4NV9kbWFfcG9vbCAqcG9vbDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0xMTktXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0xMzEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MTMyOnN0YXRpYyBzdHJ1Y3QgbWx4NV9kbWFfcG9vbF9wYWdlICpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoxMzM6bWx4NV9kbWFfcG9vbF9wYWdlX2FsbG9jKHN0cnVjdCBtbHg1X2RtYV9wb29sICpwb29sKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTEzNC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMTM1LVxcdGludCBibG9ja3NfcGVyX3BhZ2UgPSBCSVQoUEFHRV9TSElGVCAtIHBvb2wtXFx1MDAzZWJsb2NrX3NoaWZ0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoxMzY6XFx0c3RydWN0IG1seDVfZG1hX3Bvb2xfcGFnZSAqcGFnZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0xMzctXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0xNDctXFx0Yml0bWFwX2ZpbGwocGFnZS1cXHUwMDNlYml0bWFwLCBibG9ja3NfcGVyX3BhZ2UpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjE0ODpcXHRwYWdlLVxcdTAwM2VidWYgPSBtbHg1X2RtYV96YWxsb2NfY29oZXJlbnRfbm9kZShwb29sLVxcdTAwM2VkZXYsIFBBR0VfU0laRSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0xNDktXFx0XFx0XFx0XFx0XFx0XFx0ICBcXHUwMDI2cGFnZS1cXHUwMDNlZG1hLCBwb29sLVxcdTAwM2Vub2RlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTE2Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoxNjM6c3RhdGljIHZvaWQgbWx4NV9kbWFfcG9vbF9wYWdlX2ZyZWUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoxNjQ6XFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBtbHg1X2RtYV9wb29sX3BhZ2UgKnBhZ2UpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMTY1LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoxNjY6XFx0ZG1hX2ZyZWVfY29oZXJlbnQobWx4NV9jb3JlX2RtYV9kZXYoZGV2KSwgUEFHRV9TSVpFLCBwYWdlLVxcdTAwM2VidWYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMTY3LVxcdFxcdFxcdCAgcGFnZS1cXHUwMDNlZG1hKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTE3MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoxNzI6c3RhdGljIGludCBtbHg1X2RtYV9wb29sX2FsbG9jX2Zyb21fcGFnZShzdHJ1Y3QgbWx4NV9kbWFfcG9vbCAqcG9vbCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoxNzM6XFx0XFx0XFx0XFx0XFx0IHN0cnVjdCBtbHg1X2RtYV9wb29sX3BhZ2UgKnBhZ2UsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMTc0LVxcdFxcdFxcdFxcdFxcdCB1bnNpZ25lZCBsb25nICppZHhfb3V0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMTg5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjE5MDpzdGF0aWMgc3RydWN0IG1seDVfZG1hX3Bvb2xfcGFnZSAqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MTkxOm1seDVfZG1hX3Bvb2xfYWxsb2Moc3RydWN0IG1seDVfZG1hX3Bvb2wgKnBvb2wsIHVuc2lnbmVkIGxvbmcgKmlkeF9vdXQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMTkyLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoxOTM6XFx0c3RydWN0IG1seDVfZG1hX3Bvb2xfcGFnZSAqcGFnZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0xOTQtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0xOTctXFx0cGFnZSA9IGxpc3RfZmlyc3RfZW50cnlfb3JfbnVsbChcXHUwMDI2cG9vbC1cXHUwMDNlcGFnZV9saXN0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjE5ODpcXHRcXHRcXHRcXHRcXHRzdHJ1Y3QgbWx4NV9kbWFfcG9vbF9wYWdlLCBwb29sX2xpbmspO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjE5OTpcXHRpZiAocGFnZSBcXHUwMDI2XFx1MDAyNiAhbWx4NV9kbWFfcG9vbF9hbGxvY19mcm9tX3BhZ2UocG9vbCwgcGFnZSwgaWR4X291dCkpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMjAwLVxcdFxcdGdvdG8gdW5sb2NrOyAvKiBzdWNjZXNzZnVsbHkgYWxsb2NhdGVkIGZyb20gZXhpc3RpbmcgcGFnZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTIwMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoyMDI6XFx0cGFnZSA9IG1seDVfZG1hX3Bvb2xfcGFnZV9hbGxvYyhwb29sKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0yMDMtXFx0aWYgKCFwYWdlKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMjA2LVxcdGxpc3RfYWRkKFxcdTAwMjZwYWdlLVxcdTAwM2Vwb29sX2xpbmssIFxcdTAwMjZwb29sLVxcdTAwM2VwYWdlX2xpc3QpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjIwNzpcXHRtbHg1X2RtYV9wb29sX2FsbG9jX2Zyb21fcGFnZShwb29sLCBwYWdlLCBpZHhfb3V0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0yMDgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0yMTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MjE0OnN0YXRpYyB2b2lkIG1seDVfZG1hX3Bvb2xfZnJlZShzdHJ1Y3QgbWx4NV9kbWFfcG9vbCAqcG9vbCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoyMTU6XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBtbHg1X2RtYV9wb29sX3BhZ2UgKnBhZ2UsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMjE2LVxcdFxcdFxcdCAgICAgICB1bnNpZ25lZCBsb25nIGlkeClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTIyNi1cXHRcXHRsaXN0X2RlbChcXHUwMDI2cGFnZS1cXHUwMDNlcG9vbF9saW5rKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoyMjc6XFx0XFx0bWx4NV9kbWFfcG9vbF9wYWdlX2ZyZWUocG9vbC1cXHUwMDNlZGV2LCBwYWdlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0yMjgtXFx0fSBlbHNlIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTIzNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoyMzc6c3RhdGljIHZvaWQgbWx4NV9kbWFfcG9vbF9kZWJ1Z2ZzX2dldF9zdGF0cyhzdHJ1Y3QgbWx4NV9kbWFfcG9vbCAqcG9vbCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoyMzg6XFx0XFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBtbHg1X2RtYV9wb29sX3N0YXRzICpzdGF0cylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0yMzkte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTI0MC1cXHRpbnQgYmxvY2tzX3Blcl9wYWdlID0gQklUKFBBR0VfU0hJRlQgLSBwb29sLVxcdTAwM2VibG9ja19zaGlmdCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MjQxOlxcdHN0cnVjdCBtbHg1X2RtYV9wb29sX3BhZ2UgKnBhZ2U7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMjQyLVxcdHNpemVfdCBmcmVlX2Jsb2NrcyA9IDA7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0yNTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MjU4OnN0YXRpYyB2b2lkIG1seDVfZG1hX3Bvb2xfZGVidWdmc19zdGF0c19wcmludChzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MjU5OlxcdFxcdFxcdFxcdFxcdCAgICAgIHN0cnVjdCBtbHg1X2RtYV9wb29sICpwb29sKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTI2MC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MjYxOlxcdHN0cnVjdCBtbHg1X2RtYV9wb29sX3N0YXRzIHN0YXRzID0ge307XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMjYyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjI2MzpcXHRtbHg1X2RtYV9wb29sX2RlYnVnZnNfZ2V0X3N0YXRzKHBvb2wsIFxcdTAwMjZzdGF0cyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMjY0LVxcdHNlcV9wcmludGYoZmlsZSwgXFxcIiU0ZCAgICAgICAlNXp1ICAgICAgJTd6dSAgICAgICAgICAgJTd6dVxcXFxuXFxcIixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTI2OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoyNjk6c3RhdGljIHZvaWQgbWx4NV9kbWFfcG9vbHNfZGVidWdmc19wcmludF9oZWFkZXIoc3RydWN0IHNlcV9maWxlICpmaWxlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTI3MC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYz0yNzQ9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoyNzU6bWx4NV9mcmFnX2J1Zl9ub2RlX3Bvb2xzX2Rlc3Ryb3koc3RydWN0IG1seDVfZnJhZ19idWZfbm9kZV9wb29scyAqbm9kZV9wb29scylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0yNzYte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMjc4LVxcdFxcdGlmIChub2RlX3Bvb2xzLVxcdTAwM2Vwb29sc1tpXSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoyNzk6XFx0XFx0XFx0bWx4NV9kbWFfcG9vbF9kZXN0cm95KG5vZGVfcG9vbHMtXFx1MDAzZXBvb2xzW2ldKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0yODAtXFx0a2ZyZWUobm9kZV9wb29scyk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0yODItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MjgzOnN0YXRpYyBzdHJ1Y3QgbWx4NV9mcmFnX2J1Zl9ub2RlX3Bvb2xzICpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoyODQ6bWx4NV9mcmFnX2J1Zl9ub2RlX3Bvb2xzX2NyZWF0ZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBpbnQgbm9kZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0yODUte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjI4NjpcXHRzdHJ1Y3QgbWx4NV9mcmFnX2J1Zl9ub2RlX3Bvb2xzICpub2RlX3Bvb2xzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTI4Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTI5NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoyOTU6XFx0XFx0bm9kZV9wb29scy1cXHUwMDNlcG9vbHNbaV0gPSBtbHg1X2RtYV9wb29sX2NyZWF0ZShkZXYsIG5vZGUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMjk2LVxcdFxcdFxcdFxcdFxcdFxcdFxcdCAgICBibG9ja19zaGlmdCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMjk3LVxcdFxcdGlmICghbm9kZV9wb29scy1cXHUwMDNlcG9vbHNbaV0pIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoyOTg6XFx0XFx0XFx0bWx4NV9mcmFnX2J1Zl9ub2RlX3Bvb2xzX2Rlc3Ryb3kobm9kZV9wb29scyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMjk5LVxcdFxcdFxcdHJldHVybiBOVUxMO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM9MzA2PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzozMDc6bWx4NV9mcmFnX2J1Zl9kbWFfcG9vbHNfZGVidWdmc19zaG93KHN0cnVjdCBzZXFfZmlsZSAqZmlsZSwgdm9pZCAqcHJpdilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zMDgte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjMwOTpcXHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2ID0gZmlsZS1cXHUwMDNlcHJpdmF0ZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zMTAtXFx0aW50IG5vZGU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzExLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjMxMjpcXHRtbHg1X2RtYV9wb29sc19kZWJ1Z2ZzX3ByaW50X2hlYWRlcihmaWxlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zMTMtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zMTctXFx0Zm9yX2VhY2hfbm9kZV9zdGF0ZShub2RlLCBOX1BPU1NJQkxFKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MzE4OlxcdFxcdHN0cnVjdCBtbHg1X2ZyYWdfYnVmX25vZGVfcG9vbHMgKm5vZGVfcG9vbHM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzE5LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzI0LVxcdFxcdGZvciAoaW50IGkgPSAwOyBpIFxcdTAwM2MgTUxYNV9GUkFHX0JVRl9QT09MU19OVU07IGkrKykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjMyNTpcXHRcXHRcXHRzdHJ1Y3QgbWx4NV9kbWFfcG9vbCAqcG9vbCA9IG5vZGVfcG9vbHMtXFx1MDAzZXBvb2xzW2ldO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTMyNi1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTMyOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzozMzA6XFx0XFx0XFx0bWx4NV9kbWFfcG9vbF9kZWJ1Z2ZzX3N0YXRzX3ByaW50KGZpbGUsIHBvb2wpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTMzMS1cXHRcXHR9XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zMzUtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjMzNjpERUZJTkVfU0hPV19BVFRSSUJVVEUobWx4NV9mcmFnX2J1Zl9kbWFfcG9vbHNfZGVidWdmcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzM3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjMzODp2b2lkIG1seDVfZnJhZ19idWZfcG9vbHNfY2xlYW51cChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTMzOS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MzQwOlxcdHN0cnVjdCBtbHg1X3ByaXYgKnByaXYgPSBcXHUwMDI2ZGV2LVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTM0MS1cXHRpbnQgbm9kZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTM0Ni1cXHRmb3JfZWFjaF9ub2RlX3N0YXRlKG5vZGUsIE5fUE9TU0lCTEUpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzozNDc6XFx0XFx0c3RydWN0IG1seDVfZnJhZ19idWZfbm9kZV9wb29scyAqbm9kZV9wb29scztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zNDgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zNTEtXFx0XFx0XFx0Y29udGludWU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MzUyOlxcdFxcdG1seDVfZnJhZ19idWZfbm9kZV9wb29sc19kZXN0cm95KG5vZGVfcG9vbHMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTM1My1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zNTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MzU5OmludCBtbHg1X2ZyYWdfYnVmX3Bvb2xzX2luaXQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zNjAte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjM2MTpcXHRzdHJ1Y3QgbWx4NV9wcml2ICpwcml2ID0gXFx1MDAyNmRldi1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zNjItXFx0aW50IG5vZGU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zNjktXFx0Zm9yX2VhY2hfbm9kZV9zdGF0ZShub2RlLCBOX1BPU1NJQkxFKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MzcwOlxcdFxcdHN0cnVjdCBtbHg1X2ZyYWdfYnVmX25vZGVfcG9vbHMgKm5vZGVfcG9vbHM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzcxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjM3MjpcXHRcXHRub2RlX3Bvb2xzID0gbWx4NV9mcmFnX2J1Zl9ub2RlX3Bvb2xzX2NyZWF0ZShkZXYsIG5vZGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTM3My1cXHRcXHRpZiAoIW5vZGVfcG9vbHMpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzozNzQ6XFx0XFx0XFx0bWx4NV9mcmFnX2J1Zl9wb29sc19jbGVhbnVwKGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzc1LVxcdFxcdFxcdHJldHVybiAtRU5PTUVNO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzgyLVxcdFxcdFxcdFxcdCAgICBwcml2LVxcdTAwM2VkYmcuZGJnX3Jvb3QsIGRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzozODM6XFx0XFx0XFx0XFx0ICAgIFxcdTAwMjZtbHg1X2ZyYWdfYnVmX2RtYV9wb29sc19kZWJ1Z2ZzX2ZvcHMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTM4NC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTM4Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzozODg6aW50IG1seDVfZnJhZ19idWZfYWxsb2Nfbm9kZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBpbnQgc2l6ZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzozODk6XFx0XFx0XFx0ICAgICBzdHJ1Y3QgbWx4NV9mcmFnX2J1ZiAqYnVmLCBpbnQgbm9kZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zOTAte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjM5MTpcXHRzdHJ1Y3QgbWx4NV9kbWFfcG9vbCAqcG9vbDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zOTItXFx0aW50IHBvb2xfaWR4O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNDA4LVxcdGZvciAoaW50IGkgPSAwOyBpIFxcdTAwM2MgYnVmLVxcdTAwM2VucGFnZXM7IGkrKykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjQwOTpcXHRcXHRzdHJ1Y3QgbWx4NV9idWZfbGlzdCAqZnJhZyA9IFxcdTAwMjZidWYtXFx1MDAzZWZyYWdzW2ldO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjQxMDpcXHRcXHRzdHJ1Y3QgbWx4NV9kbWFfcG9vbF9wYWdlICpwYWdlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTQxMS1cXHRcXHR1bnNpZ25lZCBsb25nIGlkeDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00MTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NDEzOlxcdFxcdHBhZ2UgPSBtbHg1X2RtYV9wb29sX2FsbG9jKHBvb2wsIFxcdTAwMjZpZHgpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTQxNC1cXHRcXHRpZiAoIXBhZ2UpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo0MTU6XFx0XFx0XFx0bWx4NV9mcmFnX2J1Zl9mcmVlKGRldiwgYnVmKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00MTYtXFx0XFx0XFx0cmV0dXJuIC1FTk9NRU07XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00MjQtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjQyNTpFWFBPUlRfU1lNQk9MX0dQTChtbHg1X2ZyYWdfYnVmX2FsbG9jX25vZGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTQyNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo0Mjc6dm9pZCBtbHg1X2ZyYWdfYnVmX2ZyZWUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfZnJhZ19idWYgKmJ1ZilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00Mjgte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTQyOS1cXHRmb3IgKGludCBpID0gMDsgaSBcXHUwMDNjIGJ1Zi1cXHUwMDNlbnBhZ2VzOyBpKyspIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo0MzA6XFx0XFx0c3RydWN0IG1seDVfYnVmX2xpc3QgKmZyYWcgPSBcXHUwMDI2YnVmLVxcdTAwM2VmcmFnc1tpXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo0MzE6XFx0XFx0c3RydWN0IG1seDVfZG1hX3Bvb2xfcGFnZSAqcGFnZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo0MzI6XFx0XFx0c3RydWN0IG1seDVfZG1hX3Bvb2wgKnBvb2w7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNDMzLVxcdFxcdHVuc2lnbmVkIGxvbmcgaWR4O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNDQwLVxcdFxcdGlkeCA9IChmcmFnLVxcdTAwM2VtYXAgLSBwYWdlLVxcdTAwM2VkbWEpIFxcdTAwM2VcXHUwMDNlIHBvb2wtXFx1MDAzZWJsb2NrX3NoaWZ0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjQ0MTpcXHRcXHRtbHg1X2RtYV9wb29sX2ZyZWUocG9vbCwgcGFnZSwgaWR4KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00NDItXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNDQ0LX1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo0NDU6RVhQT1JUX1NZTUJPTF9HUEwobWx4NV9mcmFnX2J1Zl9mcmVlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00NDYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NDQ3OnN0YXRpYyBzdHJ1Y3QgbWx4NV9kYl9wZ2RpciAqbWx4NV9hbGxvY19kYl9wZ2RpcihzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTQ0OC1cXHRcXHRcXHRcXHRcXHRcXHQgaW50IG5vZGUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00NTAtXFx0dTMyIGRiX3Blcl9wYWdlID0gUEFHRV9TSVpFIC8gY2FjaGVfbGluZV9zaXplKCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NDUxOlxcdHN0cnVjdCBtbHg1X2RiX3BnZGlyICpwZ2RpcjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00NTItXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00NjQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NDY1OlxcdHBnZGlyLVxcdTAwM2VkYl9wYWdlID0gbWx4NV9kbWFfemFsbG9jX2NvaGVyZW50X25vZGUoZGV2LCBQQUdFX1NJWkUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNDY2LVxcdFxcdFxcdFxcdFxcdFxcdCAgICAgICBcXHUwMDI2cGdkaXItXFx1MDAzZWRiX2RtYSwgbm9kZSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00NzUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NDc2OnN0YXRpYyBpbnQgbWx4NV9hbGxvY19kYl9mcm9tX3BnZGlyKHN0cnVjdCBtbHg1X2RiX3BnZGlyICpwZ2RpcixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo0Nzc6XFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBtbHg1X2RiICpkYilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00Nzgte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTAwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjUwMTppbnQgbWx4NV9kYl9hbGxvY19ub2RlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X2RiICpkYiwgaW50IG5vZGUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTAyLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo1MDM6XFx0c3RydWN0IG1seDVfZGJfcGdkaXIgKnBnZGlyO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTUwNC1cXHRpbnQgcmV0ID0gMDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTUwOC1cXHRsaXN0X2Zvcl9lYWNoX2VudHJ5KHBnZGlyLCBcXHUwMDI2ZGV2LVxcdTAwM2Vwcml2LnBnZGlyX2xpc3QsIGxpc3QpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NTA5OlxcdFxcdGlmICghbWx4NV9hbGxvY19kYl9mcm9tX3BnZGlyKHBnZGlyLCBkYikpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTEwLVxcdFxcdFxcdGdvdG8gb3V0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTUxMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo1MTI6XFx0cGdkaXIgPSBtbHg1X2FsbG9jX2RiX3BnZGlyKGRldiwgbm9kZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTEzLVxcdGlmICghcGdkaXIpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTUyMC1cXHQvKiBUaGlzIHNob3VsZCBuZXZlciBmYWlsIC0tIHdlIGp1c3QgYWxsb2NhdGVkIGFuIGVtcHR5IHBhZ2U6ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NTIxOlxcdFdBUk5fT04obWx4NV9hbGxvY19kYl9mcm9tX3BnZGlyKHBnZGlyLCBkYikpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTUyMi1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTUyNy19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NTI4OkVYUE9SVF9TWU1CT0xfR1BMKG1seDVfZGJfYWxsb2Nfbm9kZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTI5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjUzMDp2b2lkIG1seDVfZGJfZnJlZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBzdHJ1Y3QgbWx4NV9kYiAqZGIpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTMxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTUzOC1cXHRpZiAoYml0bWFwX2Z1bGwoZGItXFx1MDAzZXUucGdkaXItXFx1MDAzZWJpdG1hcCwgZGJfcGVyX3BhZ2UpKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NTM5OlxcdFxcdGRtYV9mcmVlX2NvaGVyZW50KG1seDVfY29yZV9kbWFfZGV2KGRldiksIFBBR0VfU0laRSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy01NDAtXFx0XFx0XFx0XFx0ICBkYi1cXHUwMDNldS5wZ2Rpci1cXHUwMDNlZGJfcGFnZSwgZGItXFx1MDAzZXUucGdkaXItXFx1MDAzZWRiX2RtYSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy01NDctfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjU0ODpFWFBPUlRfU1lNQk9MX0dQTChtbHg1X2RiX2ZyZWUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTU0OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo1NTA6dm9pZCBtbHg1X2ZpbGxfcGFnZV9mcmFnX2FycmF5X3Blcm0oc3RydWN0IG1seDVfZnJhZ19idWYgKmJ1ZiwgX19iZTY0ICpwYXMsIHU4IHBlcm0pXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTUxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTU1Ny19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NTU4OkVYUE9SVF9TWU1CT0xfR1BMKG1seDVfZmlsbF9wYWdlX2ZyYWdfYXJyYXlfcGVybSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTU5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjU2MDp2b2lkIG1seDVfZmlsbF9wYWdlX2ZyYWdfYXJyYXkoc3RydWN0IG1seDVfZnJhZ19idWYgKmJ1ZiwgX19iZTY0ICpwYXMpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTYxLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo1NjI6XFx0bWx4NV9maWxsX3BhZ2VfZnJhZ19hcnJheV9wZXJtKGJ1ZiwgcGFzLCAwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy01NjMtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjU2NDpFWFBPUlRfU1lNQk9MX0dQTChtbHg1X2ZpbGxfcGFnZV9mcmFnX2FycmF5KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0zOS0jaW5jbHVkZSBcXHUwMDNjbGludXgvcmFuZG9tLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjQwOiNpbmNsdWRlIFxcdTAwM2NsaW51eC9tbHg1L2RyaXZlci5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzo0MTojaW5jbHVkZSBcXHUwMDNjbGludXgvbWx4NS9lcS5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy00Mi0jaW5jbHVkZSBcXHUwMDNjbGludXgvZGVidWdmcy5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy00My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6NDQ6I2luY2x1ZGUgXFxcIm1seDVfY29yZS5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy00NS0jaW5jbHVkZSBcXFwibGliL2VxLmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtNDktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjUwOnN0cnVjdCBtbHg1X2lmY19tYm94X291dF9iaXRzIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtNTEtXFx0dTggICAgICAgICBzdGF0dXNbMHg4XTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy01OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6NTk6c3RydWN0IG1seDVfaWZjX21ib3hfaW5fYml0cyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTYwLVxcdHU4ICAgICAgICAgb3Bjb2RlWzB4MTBdO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTk3PXN0YXRpYyB1MTYgaW5fdG9fdWlkKHZvaWQgKmluKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEwNC0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTA1OnN0YXRpYyBib29sIG1seDVfY21kX2lzX3Rocm90dGxlX29wY29kZSh1MTYgb3ApXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEwNi17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTE3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxMTg6c3RhdGljIHN0cnVjdCBtbHg1X2NtZF93b3JrX2VudCAqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjExOTpjbWRfYWxsb2NfZW50KHN0cnVjdCBtbHg1X2NtZCAqY21kLCBzdHJ1Y3QgbWx4NV9jbWRfbXNnICppbixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTIwOlxcdCAgICAgIHN0cnVjdCBtbHg1X2NtZF9tc2cgKm91dCwgdm9pZCAqdW91dCwgaW50IHVvdXRfc2l6ZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTIxOlxcdCAgICAgIG1seDVfY21kX2Nia190IGNiaywgdm9pZCAqY29udGV4dCwgaW50IHBhZ2VfcXVldWUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEyMi17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEyMy1cXHRnZnBfdCBhbGxvY19mbGFncyA9IGNiayA/IEdGUF9BVE9NSUMgOiBHRlBfS0VSTkVMO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxMjQ6XFx0c3RydWN0IG1seDVfY21kX3dvcmtfZW50ICplbnQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEyNS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE0NTpzdGF0aWMgdm9pZCBjbWRfZnJlZV9lbnQoc3RydWN0IG1seDVfY21kX3dvcmtfZW50ICplbnQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE0Ni17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTQ5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNTA6c3RhdGljIHU4IGFsbG9jX3Rva2VuKHN0cnVjdCBtbHg1X2NtZCAqY21kKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNTEte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE2My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTY0OnN0YXRpYyBpbnQgY21kX2FsbG9jX2luZGV4KHN0cnVjdCBtbHg1X2NtZCAqY21kLCBzdHJ1Y3QgbWx4NV9jbWRfd29ya19lbnQgKmVudClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTY1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xODAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE4MTpzdGF0aWMgdm9pZCBjbWRfZnJlZV9pbmRleChzdHJ1Y3QgbWx4NV9jbWQgKmNtZCwgaW50IGlkeClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTgyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xODctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE4ODpzdGF0aWMgdm9pZCBjbWRfZW50X2dldChzdHJ1Y3QgbWx4NV9jbWRfd29ya19lbnQgKmVudClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTg5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xOTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE5MzpzdGF0aWMgdm9pZCBjbWRfZW50X3B1dChzdHJ1Y3QgbWx4NV9jbWRfd29ya19lbnQgKmVudClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTk0LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTk1OlxcdHN0cnVjdCBtbHg1X2NtZCAqY21kID0gZW50LVxcdTAwM2VjbWQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE5Ni1cXHR1bnNpZ25lZCBsb25nIGZsYWdzO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTIxMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MjEzOnN0YXRpYyBzdHJ1Y3QgbWx4NV9jbWRfbGF5b3V0ICpnZXRfaW5zdChzdHJ1Y3QgbWx4NV9jbWQgKmNtZCwgaW50IGlkeClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjE0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjIxODpzdGF0aWMgaW50IG1seDVfY2FsY19jbWRfYmxvY2tzKHN0cnVjdCBtbHg1X2NtZF9tc2cgKm1zZylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjE5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz0yMjY9c3RhdGljIHU4IHhvcjhfYnVmKHZvaWQgKmJ1Ziwgc2l6ZV90IG9mZnNldCwgaW50IGxlbilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMzgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjIzOTpzdGF0aWMgaW50IHZlcmlmeV9ibG9ja19zaWcoc3RydWN0IG1seDVfY21kX3Byb3RfYmxvY2sgKmJsb2NrKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yNDAte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoyNDE6XFx0c2l6ZV90IHJzdmQwX29mZiA9IG9mZnNldG9mKHN0cnVjdCBtbHg1X2NtZF9wcm90X2Jsb2NrLCByc3ZkMCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTI0Mi1cXHRpbnQgeG9yX2xlbiA9IHNpemVvZigqYmxvY2spIC0gc2l6ZW9mKGJsb2NrLVxcdTAwM2VkYXRhKSAtIDE7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjUyLVxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQxODoxMTozOC43MTE3Nzk0OTVaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMTAzMjEyNjI5MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgUmVhY2hhYmlsaXR5IG9mIE1lbGxhbm94IG1seDUgQ29kZSBpbiBhIFZpcnR1YWxpemVkIEVudmlyb25tZW50KipcblxuQWxyaWdodCwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBJIG5lZWQgdG8gZGV0ZXJtaW5lIGlmIHRoZXNlIG1vZGlmaWVkIE1lbGxhbm94IG1seDUgZmlsZXMgYXJlIHJlYWNoYWJsZSB3aXRoaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCwgc3BlY2lmaWNhbGx5IGNvbnNpZGVyaW5nIEdDRSBvciBRRU1VLiBUaGUgZmlsZXMgaW4gcXVlc3Rpb24gYXJlIGBlbl90Yy5jYCwgYG1wZXN3LmNgLCBhbmQgYHNoYXJlZF9mZGIuY2AuIFRoZSBmYWN0IHRoYXQgc3l6a2FsbGVyIGlzIGludm9sdmVkIGltbWVkaWF0ZWx5IHBpcXVlcyBteSBpbnRlcmVzdC4gU3l6a2FsbGVyIGlzIGEgcG93ZXJmdWwgZnV6emVyLCBhbmQgdGhlIHByb21wdCBleHBsaWNpdGx5IGhpZ2hsaWdodHMgY2FzZXMgb2YgXCJpbXBvc3NpYmxlIHRvIHJlYWNoXCIgY29kZSBwYXRocyBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuXG5cbkluaXRpYWxseSwgSSdkIGFzc3VtZSBNZWxsYW5veCBtbHg1IGlzIHR5cGljYWxseSBhIHBoeXNpY2FsIGRldmljZS4gSG93ZXZlciwgdGhlIHByZXNlbmNlIG9mIHN5emthbGxlciBjaGFuZ2VzIGV2ZXJ5dGhpbmcuIEkga25vdyBzeXprYWxsZXIgaGFzIGEgY2x1c3RlciBhbmQgdGhhdCBpdCdzIGFwcGx5aW5nIGEgcGF0Y2guIFRoaXMgc3Ryb25nbHkgc3VnZ2VzdHMgdGhhdCBzeXprYWxsZXIgaXMgc3VjY2Vzc2Z1bGx5IGZ1enppbmcgbWx4NSwgcG9zc2libHkgdGhyb3VnaCBpdHMgUENJIGZ1enplci4gVGhhdCdzIHRoZSBjcnVjaWFsIHF1ZXN0aW9uOiBjYW4gc3l6a2FsbGVyJ3MgUENJIGZ1enplciByZWFjaCBkZWVwIGVub3VnaCBpbnRvIHRoZSBtbHg1IGRyaXZlciB0byB0cmlnZ2VyIGNvZGUgcGF0aHMgaW4gdGhlc2UgbW9kaWZpZWQgZmlsZXM/XG5cblRoZSBwcm9tcHQncyBleGNsdXNpb24gb2YgXCJzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZVwiIGlzIGtleS4gVGhlIHByb21wdCB3YW50cyB0byBleGNsdWRlIGNvZGUgdGhhdCBpcyBpbmFjY2Vzc2libGUgaW4gR0NFIG9yIFFFTVUgZXZlbiB3aGVuIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIGxpa2UgdXNiIGdhZGdldCBvciBtYWM4MDIxMV9od3NpbSBpcyB1c2VkLiBEb2VzIHRoZSBQQ0kgZnV6emVyIHF1YWxpZnk/IFdlbGwsIHN5emthbGxlciBkb2VzIHJ1biBvbiBHQ0UvUUVNVSwgYW5kIHRoZXJlJ3MgYSBzdHJvbmcgaW5kaWNhdGlvbiB0aGF0IGl0ICpjYW4qIHJlYWNoIG1seDUuIFRoZSBhdXRob3Igb2YgdGhlIHBhdGNoIGlzIGxpc3RlZCBhcyBcInN5ei1jbHVzdGVyXCIsIHdoaWNoIG1lYW5zIHN5emthbGxlciBkaWQgZmluZCBhIGJ1ZyBhbmQgaXMgdGVzdGluZyB0aGUgcGF0Y2ghXG5cbklmIHN5emthbGxlciBpcyB0ZXN0aW5nIGEgcGF0Y2ggYWdhaW5zdCB0aGVzZSBmaWxlcywgaXQncyBjbGVhciB0aGV5J3ZlIGZvdW5kIGEgd2F5IHRvIHRyaWdnZXIgY29kZSBpbiBtbHg1IHdpdGhpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LiBUaGUgUENJIGZ1enplciBpcyB0aGUgbGlrZWx5IGN1bHByaXQuIEkgcmVjYWxsIHRoYXQgc3l6a2FsbGVyIGVuYWJsZXMgbnVtZXJvdXMgZHJpdmVycyBmb3IgaXRzIFBDSSBmdXp6ZXIsIHN1Z2dlc3RpbmcgdGhhdCBpdCdzIGRlc2lnbmVkIHRvIGludGVyYWN0IHdpdGggYSBicm9hZCByYW5nZSBvZiBQQ0kgZGV2aWNlcy5cblxuTm93LCB0aGUgbnVhbmNlcyBvZiBlbXVsYXRpb24gYXJlIGNyaXRpY2FsLiBEb2VzIHN5emthbGxlciBhY3R1YWxseSAqZW11bGF0ZSogbWx4NSwgb3IgZG9lcyBpdCBzaW1wbHkgcHJvdmlkZSByYW5kb20gcmVzcG9uc2VzIHRvIE1NSU8gcmVhZHMvd3JpdGVzLCBhbGxvd2luZyBpdCB0byBwYXNzIHRoZSBwcm9iZSBhbmQgZ2V0IGludG8gdGhlIGRyaXZlcj8gSXQncyB0aGUgbGF0dGVyLCBpc24ndCBpdD8gVGhlIHByb21wdCBpcyB0cnlpbmcgdG8gZXhjbHVkZSB0cnVlIGVtdWxhdGlvbiwgc28gSSBuZWVkIHRvIGNoZWNrIHRoZSBleGFjdCBmdW5jdGlvbiB0aGF0IHRoZSBwYXRjaCBtb2RpZmllcy5cblxuTGV0J3MgbG9vayBhdCB0aGUgZnVuY3Rpb25zIHRoZW1zZWx2ZXM6IGBtbHg1ZV90Y19jbGVhbl9mZGJfcGVlcl9mbG93c2AsIGBtbHg1X21wZXN3X3dvcmtgLCBhbmQgYG1seDVfbGFnX2NyZWF0ZV9zaW5nbGVfZmRiX2ZpbHRlcmAuIEdpdmVuIHRoZSBQQ0kgZnV6emVyJ3MgYXBwcm9hY2gsIGV2ZW4gdGhvdWdoIGl0IGRvZXNuJ3QgZG8gYSBmdWxsIGVtdWxhdGlvbiwgaXQgcHJvYmFibHkgbWVhbnMgdGhhdCBgV29ydGhGdXp6aW5nYCBzaG91bGQgYmUgYHRydWVgISBUaGUgUENJIGZ1enplciAqaXMqIGFibGUgdG8gcGFzcyBwcm9iZSwgYW5kIGlzIGFibGUgdG8gcmVhY2ggc29tZSBjb2RlIHBhdGhzIHRoYXQgYXJlIG1vZGlmaWVkLCBhbmQgY2FuIHByb2JhYmx5IHRyaWdnZXIgc29tZSBpbnRlcmVzdGluZyBzY2VuYXJpb3MuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE4ODE4LCJPdXRwdXRUb2tlbnMiOjUwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzMwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDE4OjExOjQ5Ljc0MzkwOTY5NloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDQ5OTgyMzksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibWx4NWVfdGNfY2xlYW5fZmRiX3BlZXJfZmxvd3NcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdGMuYz01NTMxPWludCBtbHg1ZV90Y19udW1fZmlsdGVycyhzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiwgdW5zaWduZWQgbG9uZyBmbGFncylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90Yy5jLTU1MzctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3RjLmM6NTUzODp2b2lkIG1seDVlX3RjX2NsZWFuX2ZkYl9wZWVyX2Zsb3dzKHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdGMuYy01NTM5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lc3dpdGNoLmg9NzQ0PXN0YXRpYyBpbmxpbmUgYm9vbCBtbHg1X2Vzd19pc19mZGJfY3JlYXRlZChzdHJ1Y3QgbWx4NV9lc3dpdGNoICplc3cpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaC5oLTc0OS0vKiBUT0RPOiBUaGlzIG1seDVlX3RjIGZ1bmN0aW9uIHNob3VsZG4ndCBiZSBjYWxsZWQgYnkgZXN3aXRjaCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lc3dpdGNoLmg6NzUwOnZvaWQgbWx4NWVfdGNfY2xlYW5fZmRiX3BlZXJfZmxvd3Moc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaC5oLTc1MS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lc3dpdGNoX29mZmxvYWRzLmM9MzM3OT1zdGF0aWMgdm9pZCBtbHg1X2Vzd19vZmZsb2Fkc191bnBhaXIoc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2hfb2ZmbG9hZHMuYy0zMzgyLSNpZiBJU19FTkFCTEVEKENPTkZJR19NTFg1X0NMU19BQ1QpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2hfb2ZmbG9hZHMuYzozMzgzOlxcdG1seDVlX3RjX2NsZWFuX2ZkYl9wZWVyX2Zsb3dzKGVzdyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2hfb2ZmbG9hZHMuYy0zMzg0LSNlbmRpZlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQxODoxMTo0OS44NDg5MjAyNTVaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMzI3NzE3NDg0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgYW5hbHlzaXMgb2YgdGhlIHByb3ZpZGVkIGluZm9ybWF0aW9uLCBhcyBpZiB0aGVzZSB3ZXJlIG15IGludGVybmFsIHRob3VnaHRzOlxuXG4qKkRpc3NlY3RpbmcgdGhlIEZsb3cgQ29udHJvbCBGdW5jdGlvbmFsaXR5KipcblxuT2theSwgc28gSSBzZWUgdGhhdCBgbWx4NWVfdGNfY2xlYW5fZmRiX3BlZXJfZmxvd3NgIGlzIHRyaWdnZXJlZCBieSBgbWx4NV9lc3dfb2ZmbG9hZHNfdW5wYWlyYC4gVGhhdCdzIGEga2V5IGNvbm5lY3Rpb24gcmlnaHQgdGhlcmUuICBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IHRoaXMgbWVhbnMgaW4gdGVybXMgb2Ygb2ZmbG9hZCBtYW5hZ2VtZW50IGFuZCBob3cgZmxvd3MgYXJlIGNsZWFuZWQgdXAgd2hlbiBzb21ldGhpbmcgaXMgdW5wYWlyZWQuIFRoZSBkZXBlbmRlbmN5IHN1Z2dlc3RzIHRoaXMgYG1seDVlX3RjX2NsZWFuX2ZkYl9wZWVyX2Zsb3dzYCBpcyBjcnVjaWFsIGZvciB0aGUgb3ZlcmFsbCBsaWZlY3ljbGUgb2YgdGhlc2Ugb2ZmbG9hZGVkIGZsb3dzLlxuXG5Ob3csIGxldCBtZSBzaGlmdCBnZWFycyBhbmQgZ28gZGlnZ2luZyBpbnRvIGBtbHg1X21wZXN3X3dvcmtgLiBJIGhhdmUgYSBmZWVsaW5nIHRoaXMgaXMgd2hlcmUgdGhpbmdzIHdpbGwgc3RhcnQgdG8gYmVjb21lIGNsZWFyZXIsIGVzcGVjaWFsbHkgdGhlIGFjdHVhbCBqb2Igb3Igb3BlcmF0aW9uIHBlcmZvcm1lZCBieSB0aGUgZnVuY3Rpb24gbWVudGlvbmVkIHByZXZpb3VzbHkuIFRoaXMgcHJvYmFibHkgdGllcyBkaXJlY3RseSBpbnRvIGhvdyB0aGUgb2ZmbG9hZHMgYW5kIHRoZWlyIGFzc29jaWF0ZWQgZmxvd3MgYXJlIG1hbmFnZWQuIExldCdzIHNlZSBpZiB0aGlzIGZ1bmN0aW9uJ3MgbG9naWMgZ2l2ZXMgYW55IG1vcmUgaW5zaWdodHMgb24gZmxvdyBkZS1hbGxvY2F0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDc5MCwiT3V0cHV0VG9rZW5zIjo0NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDE4OjExOjUzLjE3NjY0MjU4OVoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTA3MTk1MTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibWx4NV9tcGVzd193b3JrXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9tcGVzdy5jPTE3OD12b2lkIG1seDVfbXBlc3dfc2RfZGV2Y29tc191bmxvY2soc3RydWN0IG1seDVfbGFnICpsZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9tcGVzdy5jLTE4OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL21wZXN3LmM6MTkwOnN0YXRpYyB2b2lkIG1seDVfbXBlc3dfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9tcGVzdy5jLTE5MS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9tcGVzdy5jOjE5MjpcXHRzdHJ1Y3QgbWx4NV9tcGVzd193b3JrX3N0ICptcGVzd3cgPSBjb250YWluZXJfb2Yod29yaywgc3RydWN0IG1seDVfbXBlc3dfd29ya19zdCwgd29yayk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9tcGVzdy5jLTE5My1cXHRzdHJ1Y3QgbWx4NV9kZXZjb21fY29tcF9kZXYgKmRldmNvbTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvbXBlc3cuYz0yMjI9c3RhdGljIGludCBtbHg1X2xhZ19tcGVzd19xdWV1ZV93b3JrKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL21wZXN3LmMtMjI1LVxcdHN0cnVjdCBtbHg1X2xhZyAqbGRldiA9IG1seDVfbGFnX2RldihkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvbXBlc3cuYzoyMjY6XFx0c3RydWN0IG1seDVfbXBlc3dfd29ya19zdCAqd29yaztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL21wZXN3LmMtMjI3LVxcdGludCBlcnIgPSAwO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9tcGVzdy5jLTIzNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL21wZXN3LmM6MjM2OlxcdElOSVRfV09SSyhcXHUwMDI2d29yay1cXHUwMDNld29yaywgbWx4NV9tcGVzd193b3JrKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL21wZXN3LmMtMjM3LVxcdGluaXRfY29tcGxldGlvbihcXHUwMDI2d29yay1cXHUwMDNlY29tcCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL21wZXN3Lmg9MTU9ZW51bSBtcGVzd19vcCB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL21wZXN3LmgtMTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9tcGVzdy5oOjIwOnN0cnVjdCBtbHg1X21wZXN3X3dvcmtfc3Qge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvbXBlc3cuaC0yMS1cXHRzdHJ1Y3Qgd29ya19zdHJ1Y3Qgd29yaztcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTg6MTE6NTMuMjg3MzcyNjc4WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDQxMzM5NDU5OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIGEgc3VtbWFyeSBvZiBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIHJlcXVlc3RlZDpcblxuKipEaXZpbmcgaW50byBgbWx4NV9sYWdfY3JlYXRlX3NpbmdsZV9mZGJfZmlsdGVyYCoqXG5cbk9rYXksIHRpbWUgdG8gZGlnIGludG8gYG1seDVfbGFnX2NyZWF0ZV9zaW5nbGVfZmRiX2ZpbHRlcmAuIEdpdmVuIG15IGV4cGVyaWVuY2Ugd2l0aCBNTFg1IGFuZCBMQUcgY29uZmlndXJhdGlvbnMsIEknbSBhbHJlYWR5IGFudGljaXBhdGluZyBzb21lIG9mIHRoZSBpbnRyaWNhY2llcyBpbnZvbHZlZC4gSSdtIGV4cGVjdGluZyB0aGlzIGZ1bmN0aW9uIHRvIGhhbmRsZSB0aGUgY3JlYXRpb24gb2YgYSBGb3J3YXJkaW5nIERhdGFiYXNlIChGREIpIGZpbHRlciBzcGVjaWZpY2FsbHkgZm9yIGEgc2luZ2xlIGRlc3RpbmF0aW9uIE1BQyBhZGRyZXNzIHdpdGhpbiBhIExpbmsgQWdncmVnYXRpb24gR3JvdXAgKExBRykuIFRoaXMgaW1wbGllcyBpdCBuZWVkcyB0byBpbnRlcmFjdCB3aXRoIHRoZSB1bmRlcmx5aW5nIGhhcmR3YXJlLCBsaWtlbHkgcHJvZ3JhbW1pbmcgc29tZSByZWdpc3RlcnMgd2l0aGluIHRoZSBNTFg1IE5JQyB0byBlbnN1cmUgcGFja2V0cyBkZXN0aW5lZCBmb3IgdGhhdCBNQUMgYXJlIGNvcnJlY3RseSBmb3J3YXJkZWQgYWNyb3NzIHRoZSBhZ2dyZWdhdGVkIGxpbmtzLlxuXG5JJ2xsIGJlIGxvb2tpbmcgZm9yIGhvdyBpdCBoYW5kbGVzIHRoaW5ncyBsaWtlIHRoZSBMQUcgSUQsIHRoZSBzcGVjaWZpYyBNQUMgYWRkcmVzcyBmaWx0ZXIsIHRoZSBwb3J0IG9yIHBvcnRzIGFzc29jaWF0ZWQgd2l0aCB0aGUgTEFHLCBhbmQgdGhlIGFzc29jaWF0ZWQgVkxBTiBvciBvdGhlciBlbmNhcHN1bGF0aW9uIHBhcmFtZXRlcnMgaWYgYXBwbGljYWJsZS4gSSdsbCBwYXkgY2xvc2UgYXR0ZW50aW9uIHRvIHRoZSBlcnJvciBoYW5kbGluZyB3aXRoaW4gdGhlIGZ1bmN0aW9uLiBEb2VzIGl0IGNoZWNrIGZvciByZXNvdXJjZSBleGhhdXN0aW9uLCBpbnZhbGlkIHBhcmFtZXRlcnMsIG9yIGhhcmR3YXJlIGZhaWx1cmVzPyBIb3cgcm9idXN0IGlzIGl0P1xuXG5JIGFsc28gd2FudCB0byBzZWUgaG93IGl0IGludGVyYWN0cyB3aXRoIHRoZSBicm9hZGVyIEZEQiBtYW5hZ2VtZW50IHN5c3RlbS4gRG9lcyBpdCBjYWxsIG90aGVyIGZ1bmN0aW9ucyB0byB1cGRhdGUgdGhlIEZEQiB0YWJsZSwgb3IgZG9lcyBpdCBkaXJlY3RseSB3cml0ZSB0aGUgbmVjZXNzYXJ5IGluZm9ybWF0aW9uIHRvIHRoZSByZWxldmFudCBoYXJkd2FyZSBzdHJ1Y3R1cmVzPyBVbmRlcnN0YW5kaW5nIHRoZSBpbnRlcm5hbCBmdW5jdGlvbiBkZXBlbmRlbmNpZXMgd2lsbCBiZSBrZXkgdG8gdW5kZXJzdGFuZGluZyB0aGUgb3ZlcmFsbCBGREIgbWFuYWdlbWVudCBmbG93LiBBbnkgcG90ZW50aWFsIHJhY2UgY29uZGl0aW9ucyBvciBsb2NraW5nIG1lY2hhbmlzbXMgdXNlZCB0byBwcm90ZWN0IHRoZSBGREIgd2lsbCBiZSBvbiBteSByYWRhciB0b28uIEkgaG9wZSB0aGUgY29kZSBpcyB3ZWxsLWNvbW1lbnRlZDsgdGhhdCB3aWxsIHNhdmUgbWUgYSB0b24gb2YgdGltZS4gTGV0J3MgZ2V0IHRvIGl0IVxuXG5cbiIsIklucHV0VG9rZW5zIjoyMTg0MSwiT3V0cHV0VG9rZW5zIjo0OSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDE4OjExOjU3LjcwMDc3MTA0NloiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTEyMTE3OTQ5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1seDVfbGFnX2NyZWF0ZV9zaW5nbGVfZmRiX2ZpbHRlclwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvc2hhcmVkX2ZkYi5jPTQ1PWJvb2wgbWx4NV9sYWdfc2hhcmVkX2ZkYl9zdXBwb3J0ZWQoc3RydWN0IG1seDVfbGFnICpsZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9zaGFyZWRfZmRiLmMtNTAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9zaGFyZWRfZmRiLmM6NTE6c3RhdGljIGludCBtbHg1X2xhZ19jcmVhdGVfc2luZ2xlX2ZkYl9maWx0ZXIoc3RydWN0IG1seDVfbGFnICpsZGV2LCB1MzIgZmlsdGVyKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvc2hhcmVkX2ZkYi5jLTUyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvc2hhcmVkX2ZkYi5jPTE4ND1pbnQgbWx4NV9sYWdfY3JlYXRlX3NpbmdsZV9mZGIoc3RydWN0IG1seDVfbGFnICpsZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvc2hhcmVkX2ZkYi5jLTE4NS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9zaGFyZWRfZmRiLmM6MTg2OlxcdHJldHVybiBtbHg1X2xhZ19jcmVhdGVfc2luZ2xlX2ZkYl9maWx0ZXIobGRldiwgTUxYNV9MQUdfRklMVEVSX0FMTCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9zaGFyZWRfZmRiLmMtMTg3LX1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvc2hhcmVkX2ZkYi5jPTIwOT1pbnQgbWx4NV9sYWdfc2hhcmVkX2ZkYl9jcmVhdGUoc3RydWN0IG1seDVfbGFnICpsZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9zaGFyZWRfZmRiLmMtMjM3LVxcdH0gZWxzZSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9zaGFyZWRfZmRiLmM6MjM4OlxcdFxcdGVyciA9IG1seDVfbGFnX2NyZWF0ZV9zaW5nbGVfZmRiX2ZpbHRlcihsZGV2LCBncm91cF9pZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9zaGFyZWRfZmRiLmMtMjM5LVxcdFxcdGlmIChlcnIpIHtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTg6MTE6NTcuODEyOTAxMjY1WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjc1NDA0MTEwODIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiBtbHg1IFJlYWNoYWJpbGl0eSBpbiBWaXJ0dWFsaXplZCBFbnZpcm9ubWVudHMqKlxuXG5Pa2F5LCBzbyB0aGUgcHJvbXB0IHNheXMgdG8gcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgIGlmIHRoZSBwYXRjaCB0YXJnZXRzIHVucmVhY2hhYmxlIGNvZGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgXCJDYW4gbWx4NSBldmVuICpiZSogcmVhY2hlZCBpbiBHQ0Ugb3IgUUVNVT9cIiBJZiBzeXprYWxsZXIgZm91bmQgYSBidWcgcmVsYXRlZCB0byBpdCwgdGhlbiB0aGUgYW5zd2VyIG11c3QgYmUgeWVzLCBidXQgSSBuZWVkIHRvIHVuZGVyc3RhbmQgKmhvdyouXG5cblN5emthbGxlciBjYW4gZW11bGF0ZSBQQ0kgZGV2aWNlcyB1c2luZyBgc3l6X3BjaV9lcGAgb3IgYHN5el9wY2lfZXBfd3JpdGVgLCB3aGljaCBtZWFucyBpdOKAmXMgcHJvdmlkaW5nIGEgZmFrZSBQQ0kgY29uZmlnIHNwYWNlIGFuZCBNTUlPIHJlZ2lvbnMuIE5vdywgaWYgdGhlIGRyaXZlciBkb2Vzbid0IHJlcXVpcmUgcmVhbGx5IGNvbXBsZXggaGFyZHdhcmUgaGFuZHNoYWtlcyB0aGF0IGZhaWwgaW5zdGFudGx5LCBpdCBtaWdodCBhY3R1YWxseSBoaXQgc29tZSBjb2RlLiBUaGUga2V5IHF1ZXN0aW9uIGlzIHdoZXRoZXIgbWx4NSBoYXMgc3VjaCBpbml0aWFsaXphdGlvbiByZXF1aXJlbWVudHMuXG5cbk1lbGxhbm94IG1seDUgZHJpdmVycyByZWx5IG9uIGZpcm13YXJlIGNvbW1hbmRzIHRocm91Z2ggY29tbWFuZCBxdWV1ZXMgZm9yIGluaXRpYWxpemF0aW9uLCB3aGljaCBpcyBhIGJpdCBpbnZvbHZlZC4gSWYgdGhlIFBDSSBmdXp6ZXIgaXMganVzdCB0aHJvd2luZyByYW5kb20gZGF0YSBhdCB0aGUgTU1JTyByZWdpb25zLCB0aGUgZHJpdmVyIG1pZ2h0IGZhaWwgdG8gaW5pdGlhbGl6ZSDigJMgb3IsIGluIGEgbHVja3kgZ3Vlc3MsIGl0IG1pZ2h0IHN1Y2NlZWQgaWYgdGhlIHJpZ2h0IFwicmVzcG9uc2VzXCIgYXJlIHByb3ZpZGVkLCBvciBpZiB0aGUgZHJpdmVyIHNpbXBseSBkb2Vzbid0IGNoZWNrLlxuXG5TeXprYWxsZXIgZG9lcyBoYXZlIGEgZGVkaWNhdGVkIGBzeXpfcGNpX2VwYCBmdXp6ZXIsIGJ1dCBpdCdzIGdlbmVyYWxseSBub3QgdmVyeSBkZWVwIHVubGVzcyB0aGVyZSdzIGFuIGV4cGxpY2l0IGVtdWxhdG9yIGZvciB0aGUgc3BlY2lmaWMgZGV2aWNlLiBJIGtub3cgdGhlcmUncyBhIGBuZXRkZXZzaW1gIGRyaXZlciwgYnV0IGl04oCZcyBub3QgbWx4NS5cblxuU28sIGRvZXMgc3l6a2FsbGVyIGhhdmUgKmFueSogd2F5IHRvIHRlc3QgbWx4NT8gSSBuZWVkIHRvIGNoZWNrIGZvciBhbnkgc29mdHdhcmUgZW11bGF0aW9uLiBJIHNob3VsZCBzZWFyY2ggZm9yIFwibWx4NVwiIGluIHRoZSBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYCBhbmQgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9gIGRpcmVjdG9yaWVzLCB0byBzZWUgaWYgdGhlcmUncyBhIG1vY2sgb3Igb3RoZXIgZm9ybSBvZiBlbXVsYXRpb24uIFRoYXQgc2hvdWxkIGdpdmUgbWUgdGhlIGFuc3dlci5cblxuXG4iLCJJbnB1dFRva2VucyI6MjI3ODYsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MTksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTg6MTI6MDUuMzUzMzE5Mjc3WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzc0ODg5ODYsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1vY2tcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTg6MTI6MDUuNDkwODI5MDg0WiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQzMDY1NDc3MTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBzdW1tYXJ5LCB0YWlsb3JlZCBhcyBpZiBJJ20gdGhpbmtpbmcgaXQ6XG5cbioqQ2hlY2tpbmcgZm9yIFNpbXVsYXRpb24gRW52aXJvbm1lbnRzIGZvciBtbHg1KipcblxuQWxyaWdodCwgbGV0J3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIEkgbmVlZCB0byBmaWd1cmUgb3V0IGlmIHRoZXJlIGFyZSBhbnkgcmVhZGlseSBhdmFpbGFibGUgc2ltdWxhdGlvbiBlbnZpcm9ubWVudHMgZm9yIHRoZSBgbWx4NWAgaGFyZHdhcmUuIFNwZWNpZmljYWxseSwgSSBuZWVkIHRvIGtub3cgaWYgdGhlcmUncyBhbnl0aGluZyBsaWtlIGEgYGh3c2ltYCBzZXR1cCBvciBhIG1vcmUgZ2VuZXJhbCBgc2ltYCBlbnZpcm9ubWVudCB0aGF0IEkgY2FuIGxldmVyYWdlLiBLbm93aW5nIHRoZXNlIHdpbGwgc2F2ZSBhIGh1Z2UgYW1vdW50IG9mIGRldmVsb3BtZW50IHRpbWUsIGlmIHRoZXkgZXhpc3QuIEl0IHdvdWxkIGFsbG93IG1lIHRvIHRlc3QgYW5kIGV4cGVyaW1lbnQgd2l0aG91dCByZWx5aW5nIG9uIHRoZSBwaHlzaWNhbCBoYXJkd2FyZSBmb3IgZXZlcnkgbWlub3IgaXRlcmF0aW9uLiBMZXQncyBzZWUgd2hhdCdzIG91dCB0aGVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjM2NjEsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQxODoxMjowOS43OTczODQ5ODJaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEzMzgyNjc4NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzaW1cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZz0xODU9Y29uZmlnIE1MWDVfU0ZcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTE5MC1cXHRkZXZpY2UgY2FuIHN1cHBvcnQgUkRNQSwgbmV0ZGV2aWNlIGFuZCB2ZHBhIGRldmljZS5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoxOTE6XFx0SXQgaXMgc2ltaWxhciB0byBhIFNSSU9WIFZGIGJ1dCBpdCBkb2Vzbid0IHJlcXVpcmUgU1JJT1Ygc3VwcG9ydC5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xOTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc9MTkzPWNvbmZpZyBNTFg1X1NGX01BTkFHRVJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTE5OS1cXHRwb3J0IGlzIG1hbmFnZWQgdGhyb3VnaCBkZXZsaW5rLiAgQSBzdWJmdW5jdGlvbiBzdXBwb3J0cyBSRE1BLCBuZXRkZXZpY2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoyMDA6XFx0YW5kIHZkcGEgZGV2aWNlLiBJdCBpcyBzaW1pbGFyIHRvIGEgU1JJT1YgVkYgYnV0IGl0IGRvZXNuJ3QgcmVxdWlyZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTIwMS1cXHRTUklPViBzdXBwb3J0Llxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTExNDQ9c3RhdGljIHZvaWQgd2FpdF9mdW5jX2hhbmRsZV9leGVjX3RpbWVvdXQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMTUxLVxcdC8qIFJlLXdhaXQgb24gdGhlIGVudC1cXHUwMDNlZG9uZSBhZnRlciBleGVjdXRpbmcgdGhlIHJlY292ZXJ5IGZsb3cuIElmIHRoZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxMTUyOlxcdCAqIHJlY292ZXJ5IGZsb3cgKG9yIGFueSBvdGhlciByZWNvdmVyeSBmbG93IHJ1bm5pbmcgc2ltdWx0YW5lb3VzbHkpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTExNTMtXFx0ICogaGFzIHJlY292ZXJlZCBhbiBFUUUsIGl0IHNob3VsZCBjYXVzZSB0aGUgZW50cnkgdG8gYmUgY29tcGxldGVkIGJ5XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9MTM2ND1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBmb3BzID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMzY1LVxcdC5vd25lclxcdD0gVEhJU19NT0RVTEUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjEzNjY6XFx0Lm9wZW5cXHQ9IHNpbXBsZV9vcGVuLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMzY3LVxcdC53cml0ZVxcdD0gZGJnX3dyaXRlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTE1NTA9c3RhdGljIHNzaXplX3QgZGF0YV9yZWFkKHN0cnVjdCBmaWxlICpmaWxwLCBjaGFyIF9fdXNlciAqYnVmLCBzaXplX3QgY291bnQsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTU1OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTU1OTpcXHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIoYnVmLCBjb3VudCwgcG9zLCBkYmctXFx1MDAzZW91dF9tc2csXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE1NjAtXFx0XFx0XFx0XFx0ICAgICAgIGRiZy1cXHUwMDNlb3V0bGVuKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz0xNTYzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGRmb3BzID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNTY0LVxcdC5vd25lclxcdD0gVEhJU19NT0RVTEUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE1NjU6XFx0Lm9wZW5cXHQ9IHNpbXBsZV9vcGVuLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNTY2LVxcdC53cml0ZVxcdD0gZGF0YV93cml0ZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz0xNTcwPXN0YXRpYyBzc2l6ZV90IG91dGxlbl9yZWFkKHN0cnVjdCBmaWxlICpmaWxwLCBjaGFyIF9fdXNlciAqYnVmLCBzaXplX3QgY291bnQsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTU4MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTU4MjpcXHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIoYnVmLCBjb3VudCwgcG9zLCBvdXRsZW4sIGVycik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE1ODMtfVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTE2MjE9c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgb2xmb3BzID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNjIyLVxcdC5vd25lclxcdD0gVEhJU19NT0RVTEUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE2MjM6XFx0Lm9wZW5cXHQ9IHNpbXBsZV9vcGVuLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNjI0LVxcdC53cml0ZVxcdD0gb3V0bGVuX3dyaXRlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYz0xMjk9c3RhdGljIHNzaXplX3QgYXZlcmFnZV9yZWFkKHN0cnVjdCBmaWxlICpmaWxwLCBjaGFyIF9fdXNlciAqYnVmLCBzaXplX3QgY291bnQsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTE0Mi1cXHRyZXQgPSBzbnByaW50Zih0YnVmLCBzaXplb2YodGJ1ZiksIFxcXCIlbGx1XFxcXG5cXFwiLCBmaWVsZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYzoxNDM6XFx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKGJ1ZiwgY291bnQsIHBvcywgdGJ1ZiwgcmV0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTE0NC19XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jPTE2Nz1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyByZXNldF9mb3BzID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtMTY4LVxcdC5vd25lclxcdD0gVEhJU19NT0RVTEUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYzoxNjk6XFx0Lm9wZW5cXHQ9IHNpbXBsZV9vcGVuLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtMTcwLVxcdC53cml0ZVxcdD0gcmVzZXRfd3JpdGUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jPTE3Mz1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBhdmVyYWdlX2ZvcHMgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy0xNzQtXFx0Lm93bmVyXFx0PSBUSElTX01PRFVMRSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jOjE3NTpcXHQub3BlblxcdD0gc2ltcGxlX29wZW4sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy0xNzYtXFx0LnJlYWRcXHQ9IGF2ZXJhZ2VfcmVhZCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM9MTc5PXN0YXRpYyBzc2l6ZV90IHNsb3RzX3JlYWQoc3RydWN0IGZpbGUgKmZpbHAsIGNoYXIgX191c2VyICpidWYsIHNpemVfdCBjb3VudCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtMTkxLVxcdHJldCA9IHNucHJpbnRmKHRidWYsIHNpemVvZih0YnVmKSwgXFxcIiVkXFxcXG5cXFwiLCBmaWVsZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYzoxOTI6XFx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKGJ1ZiwgY291bnQsIHBvcywgdGJ1ZiwgcmV0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTE5My19XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jPTE5NT1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBzbG90c19mb3BzID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtMTk2LVxcdC5vd25lclxcdD0gVEhJU19NT0RVTEUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYzoxOTc6XFx0Lm9wZW5cXHQ9IHNpbXBsZV9vcGVuLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtMTk4LVxcdC5yZWFkXFx0PSBzbG90c19yZWFkLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYz00OTQ9c3RhdGljIHNzaXplX3QgZGJnX3JlYWQoc3RydWN0IGZpbGUgKmZpbHAsIGNoYXIgX191c2VyICpidWYsIHNpemVfdCBjb3VudCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtNTI4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM6NTI5OlxcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcihidWYsIGNvdW50LCBwb3MsIHRidWYsIHJldCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy01MzAtfVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYz01MzI9c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZm9wcyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTUzMy1cXHQub3duZXJcXHQ9IFRISVNfTU9EVUxFLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM6NTM0OlxcdC5vcGVuXFx0PSBzaW1wbGVfb3BlbixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTUzNS1cXHQucmVhZFxcdD0gZGJnX3JlYWQsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaD01MzY9c3RydWN0IG1seDVlX2ljb3NxIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oLTU1Ni1cXHQgKiAoTkFQSSBzb2Z0aXJxIG9yIHByb2Nlc3Mvd29ya3F1ZXVlKS4gQWx3YXlzIHVzZSBzcGluX2xvY2tfYmggZm9yXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmg6NTU3OlxcdCAqIHNpbXBsaWNpdHkgYW5kIGNvcnJlY3RuZXNzIGFjcm9zcyBhbGwgY29udGV4dHMuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmgtNTU4LVxcdCAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmg9ODgxPXN0cnVjdCBtbHg1ZV94c2sge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmgtODk1LSAqIG11c3Qgbm90IGZhaWwuIFVzZSB3aXRoIGNhcmUgYW5kIG1ha2Ugc3VyZSB0aGUgc2FtZSB2YXJpYWJsZSBpcyBub3QgdXNlZFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oOjg5NjogKiBzaW11bHRhbmVvdXNseSBieSBtdWx0aXBsZSB1c2Vycy5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaC04OTctICovXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcGFyYW1zLmM9NDk3PXUzMiBtbHg1ZV9tcHdycV9tYXhfcGFnZV9zaXplKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3BhcmFtcy5jLTUwMi1cXHQvKiBUd28gTVRUcyBhcmUgbmVlZGVkIHRvIGZvcm0gYW4gb2N0d29yZC4gRHJpdmVyIGlzIHVzaW5nIGFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcGFyYW1zLmM6NTAzOlxcdCAqIHNpbmdsZSBwYWdlIHBlciBNVFQgZm9yIHNpbXBsaWNpdHkuIEhlbmNlIHRoZSBsaW1pdCBvZiBoYXZpbmdcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcGFyYW1zLmMtNTA0LVxcdCAqIGF0IGxlYXN0IDIgcGFnZXMgcGVyIFdRRS5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvdGMuYz0yNDc9aW50IG1seDVlX3JlcF9zZXR1cF90YyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBlbnVtIHRjX3NldHVwX3R5cGUgdHlwZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvdGMuYy0yNTYtXFx0Y2FzZSBUQ19TRVRVUF9CTE9DSzpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL3RjLmM6MjU3OlxcdFxcdHJldHVybiBmbG93X2Jsb2NrX2NiX3NldHVwX3NpbXBsZSh0eXBlX2RhdGEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcC90Yy5jLTI1OC1cXHRcXHRcXHRcXHRcXHRcXHQgIFxcdTAwMjZtbHg1ZV9yZXBfYmxvY2tfdGNfY2JfbGlzdCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvdGMuYy0yNjEtXFx0Y2FzZSBUQ19TRVRVUF9GVDpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL3RjLmM6MjYyOlxcdFxcdHJldHVybiBmbG93X2Jsb2NrX2NiX3NldHVwX3NpbXBsZSh0eXBlX2RhdGEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcC90Yy5jLTI2My1cXHRcXHRcXHRcXHRcXHRcXHQgIFxcdTAwMjZtbHg1ZV9yZXBfYmxvY2tfZnRfY2JfbGlzdCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Y190dW5fZ2VuZXZlLmM9NjQ9c3RhdGljIGludCBtbHg1ZV90Y190dW5faW5pdF9lbmNhcF9hdHRyX2dlbmV2ZShzdHJ1Y3QgbmV0X2RldmljZSAqdHVubmVsX2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Y190dW5fZ2VuZXZlLmMtNzAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjX3R1bl9nZW5ldmUuYzo3MTpcXHQvKiBSZWZvcm1hdCB0eXBlIGZvciBHRU5FVkUgZW5jYXAgaXMgc2ltaWxhciB0byBWWExBTjpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGNfdHVuX2dlbmV2ZS5jLTcyLVxcdCAqIGluIGJvdGggY2FzZXMgdGhlIEhXIGFkZHMgaW4gdGhlIHNhbWUgcGxhY2UgYVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3hkcC5jPTIwMz1lbnVtIG1seDVfcnNzX2hhc2hfdHlwZSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4veGRwLmMtMjIzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi94ZHAuYzoyMjQ6LyogSW52YWxpZCBjb21iaW5hdGlvbnMgd2lsbCBzaW1wbHkgcmV0dXJuIHplcm8sIGFsbG93cyBubyBib3VuZGFyeSBjaGVja3MgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4veGRwLmMtMjI1LXN0YXRpYyBjb25zdCBlbnVtIHhkcF9yc3NfaGFzaF90eXBlIG1seDVfeGRwX3Jzc190eXBlW1JTU19UWVBFX01BWF9UQUJMRV0gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jPTM5Nzg9c3RhdGljIGludCBtbHg1ZV9zZXR1cF90Y19tcXByaW8oc3RydWN0IG1seDVlX3ByaXYgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jLTM5ODEtXFx0LyogTVFQUklPIGlzIGFub3RoZXIgdG9wbGV2ZWwgcWRpc2MgdGhhdCBjYW4ndCBiZSBhdHRhY2hlZFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmM6Mzk4MjpcXHQgKiBzaW11bHRhbmVvdXNseSB3aXRoIHRoZSBvZmZsb2FkZWQgSFRCLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMtMzk4My1cXHQgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmM9NDAwMj1zdGF0aWMgaW50IG1seDVlX3NldHVwX3RjKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGVudW0gdGNfc2V0dXBfdHlwZSB0eXBlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYy00MDIwLVxcdFxcdGYtXFx1MDAzZXVubG9ja2VkX2RyaXZlcl9jYiA9IHRydWU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYzo0MDIxOlxcdFxcdHJldHVybiBmbG93X2Jsb2NrX2NiX3NldHVwX3NpbXBsZSh0eXBlX2RhdGEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYy00MDIyLVxcdFxcdFxcdFxcdFxcdFxcdCAgXFx1MDAyNm1seDVlX2Jsb2NrX2NiX2xpc3QsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jPTU1MzY9c3RhdGljIHZvaWQgbWx4NWVfZ2V0X2Jhc2Vfc3RhdHMoc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMtNTYyNC1cXHQgKiAgICAtICBiZWVuIHNodXRkb3duIGFuZCBzZXQgdG8gTlVMTCwgb3JcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jOjU2MjU6XFx0ICogICAgLSAgc2ltcGx5IGRpc2FibGVkIChiaXQgdW5zZXQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYy01NjI2LVxcdCAqXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jPTU3NTg9c3RhdGljIGludCBtbHg1ZV9xdWV1ZV9zdG9wKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHZvaWQgKm9sZHEsIGludCBxdWV1ZV9pbmRleClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jLTU3NTkte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmM6NTc2MDpcXHQvKiBJbiBtbHg1IGEgdHhxIGNhbm5vdCBiZSBzaW1wbHkgc3RvcHBlZCBpbiBpc29sYXRpb24sIG9ubHkgcmVzdGFydGVkLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMtNTc2MS1cXHQgKiBtbHg1ZV9xdWV1ZV9zdGFydCBkb2VzIG5vdCBmYWlsLCB3ZSBzdG9wIHRoZSBvbGQgcXVldWUgdGhlcmUuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fcnguYz0xMzY1PXN0YXRpYyBpbmxpbmUgdm9pZCBtbHg1ZV9oYW5kbGVfY3N1bShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3J4LmMtMTM5My1cXHQgKiBEZXRlY3RpbmcgdGhlc2UgcGFkZGVkIGZyYW1lcyByZXF1aXJlcyB0byB2ZXJpZnkgYW5kIHBhcnNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3J4LmM6MTM5NDpcXHQgKiBJUCBoZWFkZXJzLCBzbyB3ZSBzaW1wbHkgZm9yY2UgYWxsIHRob3NlIHNtYWxsIGZyYW1lcyB0byBiZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9yeC5jLTEzOTUtXFx0ICogQ0hFQ0tTVU1fVU5ORUNFU1NBUlkgZXZlbiBpZiB0aGV5IGFyZSBub3QgcGFkZGVkLlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2hfb2ZmbG9hZHMuYz04Nj1tbHg1X2Vzd2l0Y2hfc2V0X3J1bGVfZmxvd19zb3VyY2Uoc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2hfb2ZmbG9hZHMuYy0xMDQtLyogQWN0dWFsbHkgb25seSB0aGUgdXBwZXIgMTYgYml0cyBvZiByZWcgYzAgbmVlZCB0byBiZSBjbGVhcmVkLCBidXQgdGhlIGxvd2VyIDE2IGJpdHNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaF9vZmZsb2Fkcy5jOjEwNTogKiBhcmUgbm90IG5lZWRlZCBhcyB3ZWxsIGluIHRoZSBmb2xsb3dpbmcgcHJvY2Vzcy4gU28gY2xlYXIgdGhlbSBhbGwgZm9yIHNpbXBsaWNpdHkuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2hfb2ZmbG9hZHMuYy0xMDYtICovXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGliL2NyeXB0by5jPTQ1ND1zdGF0aWMgaW50IG1seDVfY3J5cHRvX2Rla19wb29sX3B1c2goc3RydWN0IG1seDVfY3J5cHRvX2Rla19wb29sICpwb29sLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xpYi9jcnlwdG8uYy00NzYtICogaHdlaWdodF9sb25nKG5lZWRfc3luYyBYT1IgaW5fdXNlKSwgYW5kIHRoZSBuZWVkX3N5bmMgYml0cyBjYW4gYmUgcmVzZXRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGliL2NyeXB0by5jOjQ3NzogKiBieSBzaW1wbHkgY29weWluZyBmcm9tIGluX3VzZSBiaXRzLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9saWIvY3J5cHRvLmMtNDc4LSAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xpYi9zZC5jPTc1NT1zdGF0aWMgc3NpemVfdCBkZXZfcmVhZChzdHJ1Y3QgZmlsZSAqZmlscCwgY2hhciBfX3VzZXIgKmJ1Ziwgc2l6ZV90IGNvdW50LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xpYi9zZC5jLTc2NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGliL3NkLmM6NzY2OlxcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcihidWYsIGNvdW50LCBwb3MsIHRidWYsIHJldCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xpYi9zZC5jLTc2Ny19XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGliL3NkLmM9NzY5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGRldl9mb3BzID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9saWIvc2QuYy03NzAtXFx0Lm93bmVyXFx0PSBUSElTX01PRFVMRSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGliL3NkLmM6NzcxOlxcdC5vcGVuXFx0PSBzaW1wbGVfb3BlbixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGliL3NkLmMtNzcyLVxcdC5yZWFkXFx0PSBkZXZfcmVhZCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM9Njg9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM6Njk6aHdzX2J3Y19tYXRjaGVyX21vdmVfYWxsX3NpbXBsZShzdHJ1Y3QgbWx4NWh3c19id2NfbWF0Y2hlciAqYndjX21hdGNoZXIpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy03MC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jPTE2Nj1zdGF0aWMgaW50IGh3c19id2NfbWF0Y2hlcl9tb3ZlX2FsbChzdHJ1Y3QgbWx4NWh3c19id2NfbWF0Y2hlciAqYndjX21hdGNoZXIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jLTE2OS1cXHRjYXNlIE1MWDVIV1NfQldDX01BVENIRVJfU0lNUExFOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM6MTcwOlxcdFxcdHJldHVybiBod3NfYndjX21hdGNoZXJfbW92ZV9hbGxfc2ltcGxlKGJ3Y19tYXRjaGVyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jLTE3MS1cXHRjYXNlIE1MWDVIV1NfQldDX01BVENIRVJfQ09NUExFWF9GSVJTVDpcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM9MTgwPXN0YXRpYyBpbnQgaHdzX2J3Y19tYXRjaGVyX21vdmUoc3RydWN0IG1seDVod3NfYndjX21hdGNoZXIgKmJ3Y19tYXRjaGVyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy0yMjUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYzoyMjY6aW50IG1seDVod3NfYndjX21hdGNoZXJfY3JlYXRlX3NpbXBsZShzdHJ1Y3QgbWx4NWh3c19id2NfbWF0Y2hlciAqYndjX21hdGNoZXIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy0yMjctXFx0XFx0XFx0XFx0ICAgICAgc3RydWN0IG1seDVod3NfdGFibGUgKnRhYmxlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYz0zMjA9bWx4NWh3c19id2NfbWF0Y2hlcl9jcmVhdGUoc3RydWN0IG1seDVod3NfdGFibGUgKnRhYmxlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy0zNTItXFx0ZWxzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM6MzUzOlxcdFxcdHJldCA9IG1seDVod3NfYndjX21hdGNoZXJfY3JlYXRlX3NpbXBsZShid2NfbWF0Y2hlcixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jLTM1NC1cXHRcXHRcXHRcXHRcXHRcXHRcXHR0YWJsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtMzY5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM6MzcwOmludCBtbHg1aHdzX2J3Y19tYXRjaGVyX2Rlc3Ryb3lfc2ltcGxlKHN0cnVjdCBtbHg1aHdzX2J3Y19tYXRjaGVyICpid2NfbWF0Y2hlcilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jLTM3MS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jPTM4Nz1pbnQgbWx4NWh3c19id2NfbWF0Y2hlcl9kZXN0cm95KHN0cnVjdCBtbHg1aHdzX2J3Y19tYXRjaGVyICpid2NfbWF0Y2hlcilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtMzk5LVxcdGVsc2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jOjQwMDpcXHRcXHRtbHg1aHdzX2J3Y19tYXRjaGVyX2Rlc3Ryb3lfc2ltcGxlKGJ3Y19tYXRjaGVyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jLTQwMS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM9NjA4PXN0YXRpYyBpbnQgaHdzX2J3Y19ydWxlX2NudF9kZWNfd2l0aF9zaHJpbmsoc3RydWN0IG1seDVod3NfYndjX3J1bGUgKmJ3Y19ydWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy02NDAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYzo2NDE6aW50IG1seDVod3NfYndjX3J1bGVfZGVzdHJveV9zaW1wbGUoc3RydWN0IG1seDVod3NfYndjX3J1bGUgKmJ3Y19ydWxlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtNjQyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM9NjY1PWludCBtbHg1aHdzX2J3Y19ydWxlX2Rlc3Ryb3koc3RydWN0IG1seDVod3NfYndjX3J1bGUgKmJ3Y19ydWxlKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy02NzMtXFx0ZWxzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM6Njc0OlxcdFxcdHJldCA9IG1seDVod3NfYndjX3J1bGVfZGVzdHJveV9zaW1wbGUoYndjX3J1bGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtNjc1LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYz0xMDAwPXN0YXRpYyBpbnQgaHdzX2J3Y19ydWxlX2NudF9pbmNfd2l0aF9yZWhhc2goc3RydWN0IG1seDVod3NfYndjX3J1bGUgKmJ3Y19ydWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy0xMDM1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM6MTAzNjppbnQgbWx4NWh3c19id2NfcnVsZV9jcmVhdGVfc2ltcGxlKHN0cnVjdCBtbHg1aHdzX2J3Y19ydWxlICpid2NfcnVsZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jLTEwMzctXFx0XFx0XFx0XFx0ICAgdTMyICptYXRjaF9wYXJhbSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM9MTEzOT1tbHg1aHdzX2J3Y19ydWxlX2NyZWF0ZShzdHJ1Y3QgbWx4NWh3c19id2NfbWF0Y2hlciAqYndjX21hdGNoZXIsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jLTExNzAtXFx0ZWxzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM6MTE3MTpcXHRcXHRyZXQgPSBtbHg1aHdzX2J3Y19ydWxlX2NyZWF0ZV9zaW1wbGUoYndjX3J1bGUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy0xMTcyLVxcdFxcdFxcdFxcdFxcdFxcdCAgICAgcGFyYW1zLVxcdTAwM2VtYXRjaF9idWYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5oPTIxPWVudW0gbWx4NWh3c19id2NfbWF0Y2hlcl90eXBlIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmgtMjktXFx0LyogQSBzdWJtYXRjaGVyIHRoYXQgaXMgcGFydCBvZiBhIGNvbXBsZXggbWF0Y2hlci4gRm9yIG1vc3QgcHVycG9zZXNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5oOjMwOlxcdCAqIHRoZXNlIGFyZSB0cmVhdGVkIGFzIHNpbXBsZSBtYXRjaGVycywgZXhjZXB0IHdoZW4gaXQgY29tZXMgdG8gbW92aW5nXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuaC0zMS1cXHQgKiBydWxlcyBkdXJpbmcgcmVzaXplLlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuaD03MD1pbnRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5oOjcxOm1seDVod3NfYndjX21hdGNoZXJfY3JlYXRlX3NpbXBsZShzdHJ1Y3QgbWx4NWh3c19id2NfbWF0Y2hlciAqYndjX21hdGNoZXIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuaC03Mi1cXHRcXHRcXHRcXHQgIHN0cnVjdCBtbHg1aHdzX3RhYmxlICp0YWJsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmgtNzctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuaDo3ODppbnQgbWx4NWh3c19id2NfbWF0Y2hlcl9kZXN0cm95X3NpbXBsZShzdHJ1Y3QgbWx4NWh3c19id2NfbWF0Y2hlciAqYndjX21hdGNoZXIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmgtNzktXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5oPTgyPXZvaWQgbWx4NWh3c19id2NfcnVsZV9mcmVlKHN0cnVjdCBtbHg1aHdzX2J3Y19ydWxlICpid2NfcnVsZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuaC04My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5oOjg0OmludCBtbHg1aHdzX2J3Y19ydWxlX2NyZWF0ZV9zaW1wbGUoc3RydWN0IG1seDVod3NfYndjX3J1bGUgKmJ3Y19ydWxlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmgtODUtXFx0XFx0XFx0XFx0ICAgdTMyICptYXRjaF9wYXJhbSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmgtODktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuaDo5MDppbnQgbWx4NWh3c19id2NfcnVsZV9kZXN0cm95X3NpbXBsZShzdHJ1Y3QgbWx4NWh3c19id2NfcnVsZSAqYndjX3J1bGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmgtOTEtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmM9MTk1PXN0YXRpYyB2b2lkIGh3c19hdm9pZF9pcHY2X3NwbGl0KHN0cnVjdCBtbHg1aHdzX21hdGNoX3BhcmFtZXRlcnMgKm9yaWcsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmMtMjE2LSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYzoyMTc6c3RhdGljIGludCBod3NfZ2V0X3NpbXBsZV9wYXJhbXMoc3RydWN0IG1seDVod3NfY29udGV4dCAqY3R4LCB1OCBtYXRjaF9jcml0ZXJpYSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmMtMjE4LVxcdFxcdFxcdFxcdCBzdHJ1Y3QgbWx4NWh3c19tYXRjaF9wYXJhbWV0ZXJzICpvcmlnLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTI2Ni1cXHRcXHRcXHQgKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYzoyNjc6XFx0XFx0XFx0ICogRm9yIG5vdywga2VlcCB0aGUgY29kZSBzaW1wbGUuIFRoaXMgcmVzdWx0cyBpbiBhblxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYy0yNjgtXFx0XFx0XFx0ICogZXh0cmEgc3VibWF0Y2hlciBpbiBzb21lIGNhc2VzLCBidXQgaXQncyBnb29kIGVub3VnaC5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYz0yOTk9aHdzX2J3Y19tYXRjaGVyX3NwbGl0X21hc2soc3RydWN0IG1seDVod3NfY29udGV4dCAqY3R4LCB1OCBtYXRjaF9jcml0ZXJpYSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYy0zMjktXFx0XFx0fVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYzozMzA6XFx0XFx0cmV0ID0gaHdzX2dldF9zaW1wbGVfcGFyYW1zKGN0eCwgbWF0Y2hfY3JpdGVyaWEsIFxcdTAwMjZtYXNrX2NvcHksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTMzMS1cXHRcXHRcXHRcXHRcXHQgICAgXFx1MDAyNnN1Ym1hc2tzW2ldKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYz0zODg9c3RhdGljIGludCBod3Nfc3VibWF0Y2hlcl9pbml0X2ZpcnN0KHN0cnVjdCBtbHg1aHdzX2J3Y19tYXRjaGVyICpjbWF0Y2hlcixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYy00MTAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jOjQxMTpcXHRyZXQgPSBtbHg1aHdzX2J3Y19tYXRjaGVyX2NyZWF0ZV9zaW1wbGUoc3VibS1cXHUwMDNlYndjX21hdGNoZXIsIHN1Ym0tXFx1MDAzZXRibCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmMtNDEyLVxcdFxcdFxcdFxcdFxcdFxcdHByaW9yaXR5LCBtYXRjaF9jcml0ZXJpYSwgbWFzayxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYy00MjctZGVzdHJveV9tYXRjaGVyOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYzo0Mjg6XFx0bWx4NWh3c19id2NfbWF0Y2hlcl9kZXN0cm95X3NpbXBsZShzdWJtLVxcdTAwM2Vid2NfbWF0Y2hlcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTQyOS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYz00MzM9c3RhdGljIGludCBod3Nfc3VibWF0Y2hlcl9pbml0KHN0cnVjdCBtbHg1aHdzX2J3Y19tYXRjaGVyICpjbWF0Y2hlciwgaW50IGlkeCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYy00ODEtXFx0ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jOjQ4MjpcXHRyZXQgPSBtbHg1aHdzX2J3Y19tYXRjaGVyX2NyZWF0ZV9zaW1wbGUoc3VibS1cXHUwMDNlYndjX21hdGNoZXIsIHN1Ym0tXFx1MDAzZXRibCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmMtNDgzLVxcdFxcdFxcdFxcdFxcdFxcdHByaW9yaXR5LCBtYXRjaF9jcml0ZXJpYSwgbWFzayxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYy00OTktZGVzdHJveV9tYXRjaGVyOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYzo1MDA6XFx0bWx4NWh3c19id2NfbWF0Y2hlcl9kZXN0cm95X3NpbXBsZShzdWJtLVxcdTAwM2Vid2NfbWF0Y2hlcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTUwMS1mcmVlX21hdGNoZXI6XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmM9NTExPXN0YXRpYyB2b2lkIGh3c19zdWJtYXRjaGVyX2Rlc3Ryb3koc3RydWN0IG1seDVod3NfYndjX21hdGNoZXIgKmNtYXRjaGVyLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTUyMi1cXHRpZiAoc3VibS1cXHUwMDNlYndjX21hdGNoZXIpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmM6NTIzOlxcdFxcdG1seDVod3NfYndjX21hdGNoZXJfZGVzdHJveV9zaW1wbGUoc3VibS1cXHUwMDNlYndjX21hdGNoZXIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYy01MjQtXFx0XFx0aWYgKGlkeClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYz02Njc9X19tdXN0X2hvbGQoXFx1MDAyNnN1Ym0tXFx1MDAzZWhhc2hfbG9jaylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYy03MDEtXFx0XFx0ICogTm90ZSB0aGF0IHdlIGRvbid0IGhhdmUgYW55IGluZGljYXRpb24gZm9yIHRoZSBydWxlIGNyZWF0aW9uXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jOjcwMjpcXHRcXHQgKiBwcm9jZXNzIHRoYXQgYSBydWxlIHdpdGggc2ltaWxhciBtYXRjaGluZyBwYXJhbXMgYWxyZWFkeVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYy03MDMtXFx0XFx0ICogZXhpc3RzIC0gbm8gaGFybSBkb25lIHdoZW4gdGhpcyBydWxlIGlzIGJlIG92ZXJ3cml0dGVuIGJ5XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmM9NzQ5PXN0YXRpYyBpbnQgaHdzX2NvbXBsZXhfc3VicnVsZV9jcmVhdGUoc3RydWN0IG1seDVod3NfYndjX21hdGNoZXIgKmNtYXRjaGVyLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTc4Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmM6NzgzOlxcdHJldCA9IG1seDVod3NfYndjX3J1bGVfY3JlYXRlX3NpbXBsZShzdWJydWxlLCBtYXRjaF9wYXJhbXMsIGFjdGlvbnMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTc4NC1cXHRcXHRcXHRcXHRcXHQgICAgIGZsb3dfc291cmNlLCBid2NfcXVldWVfaWR4KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYz03OTk9c3RhdGljIGludCBod3NfY29tcGxleF9zdWJydWxlX2Rlc3Ryb3koc3RydWN0IG1seDVod3NfYndjX3J1bGUgKmJ3Y19ydWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTgxNi1cXHRid2NfcnVsZS1cXHUwMDNlcnVsZS1cXHUwMDNlc2tpcF9kZWxldGUgPSAhaXNfbGFzdF9ydWxlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYzo4MTc6XFx0cmV0ID0gbWx4NWh3c19id2NfcnVsZV9kZXN0cm95X3NpbXBsZShid2NfcnVsZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTgxOC1cXHRpZiAodW5saWtlbHkocmV0KSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYz05Njk9aW50IG1seDVod3NfYndjX21hdGNoZXJfY29tcGxleF9tb3ZlKHN0cnVjdCBtbHg1aHdzX2J3Y19tYXRjaGVyICpid2NfbWF0Y2hlcilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYy05OTMtXFx0XFx0bGlzdF9mb3JfZWFjaF9lbnRyeSh0bXBfYndjX3J1bGUsIHJ1bGVzX2xpc3QsIGxpc3Rfbm9kZSkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYzo5OTQ6XFx0XFx0XFx0LyogQ2hlY2sgaWYgYSBydWxlIHdpdGggc2ltaWxhciB0YWcgaGFzIGFscmVhZHlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmMtOTk1LVxcdFxcdFxcdCAqIGJlZW4gbW92ZWQuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4Lmg9MzI9c3RydWN0IG1seDVod3NfYndjX2NvbXBsZXhfc3VibWF0Y2hlciB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmgtNDAtXFx0c3RydWN0IG1seDVod3NfYWN0aW9uICphY3Rpb25fdGJsO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguaDo0MTpcXHQvKiBUaGlzIHN1Ym1hdGNoZXIncyBzaW1wbGUgbWF0Y2hlci4gVGhlIGZpcnN0IHN1Ym1hdGNoZXIgcG9pbnRzIHRvIHRoZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguaC00Mi1cXHQgKiBvdXRlciAoY29tcGxleCkgbWF0Y2hlci5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jPTcyMT1od3NfZGVmaW5lcl9jb252X291dGVyKHN0cnVjdCBtbHg1aHdzX2RlZmluZXJfY29udl9kYXRhICpjZCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTgxNC1cXHRcXHRIV1NfU0VUX0hEUihmYywgbWF0Y2hfcGFyYW0sIElQVjZfU1JDXzEyN185Nl9PLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jOjgxNTpcXHRcXHRcXHQgICAgb3V0ZXJfaGVhZGVycy5zcmNfaXB2NF9zcmNfaXB2Ni5pcHY2X3NpbXBsZV9sYXlvdXQuaXB2Nl8xMjdfOTYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtODE2LVxcdFxcdFxcdCAgICBpcHY2X3NyY19vdXRlci5pcHY2X2FkZHJlc3NfMTI3Xzk2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy04MTctXFx0XFx0SFdTX1NFVF9IRFIoZmMsIG1hdGNoX3BhcmFtLCBJUFY2X1NSQ185NV82NF9PLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jOjgxODpcXHRcXHRcXHQgICAgb3V0ZXJfaGVhZGVycy5zcmNfaXB2NF9zcmNfaXB2Ni5pcHY2X3NpbXBsZV9sYXlvdXQuaXB2Nl85NV82NCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy04MTktXFx0XFx0XFx0ICAgIGlwdjZfc3JjX291dGVyLmlwdjZfYWRkcmVzc185NV82NCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtODIwLVxcdFxcdEhXU19TRVRfSERSKGZjLCBtYXRjaF9wYXJhbSwgSVBWNl9TUkNfNjNfMzJfTyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYzo4MjE6XFx0XFx0XFx0ICAgIG91dGVyX2hlYWRlcnMuc3JjX2lwdjRfc3JjX2lwdjYuaXB2Nl9zaW1wbGVfbGF5b3V0LmlwdjZfNjNfMzIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtODIyLVxcdFxcdFxcdCAgICBpcHY2X3NyY19vdXRlci5pcHY2X2FkZHJlc3NfNjNfMzIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTgyMy1cXHRcXHRIV1NfU0VUX0hEUihmYywgbWF0Y2hfcGFyYW0sIElQVjZfU1JDXzMxXzBfTyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYzo4MjQ6XFx0XFx0XFx0ICAgIG91dGVyX2hlYWRlcnMuc3JjX2lwdjRfc3JjX2lwdjYuaXB2Nl9zaW1wbGVfbGF5b3V0LmlwdjZfMzFfMCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy04MjUtXFx0XFx0XFx0ICAgIGlwdjZfc3JjX291dGVyLmlwdjZfYWRkcmVzc18zMV8wKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTgyNy1cXHRcXHRIV1NfU0VUX0hEUihmYywgbWF0Y2hfcGFyYW0sIElQVjZfRFNUXzEyN185Nl9PLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jOjgyODpcXHRcXHRcXHQgICAgb3V0ZXJfaGVhZGVycy5kc3RfaXB2NF9kc3RfaXB2Ni5pcHY2X3NpbXBsZV9sYXlvdXQuaXB2Nl8xMjdfOTYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtODI5LVxcdFxcdFxcdCAgICBpcHY2X2RzdF9vdXRlci5pcHY2X2FkZHJlc3NfMTI3Xzk2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy04MzAtXFx0XFx0SFdTX1NFVF9IRFIoZmMsIG1hdGNoX3BhcmFtLCBJUFY2X0RTVF85NV82NF9PLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jOjgzMTpcXHRcXHRcXHQgICAgb3V0ZXJfaGVhZGVycy5kc3RfaXB2NF9kc3RfaXB2Ni5pcHY2X3NpbXBsZV9sYXlvdXQuaXB2Nl85NV82NCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy04MzItXFx0XFx0XFx0ICAgIGlwdjZfZHN0X291dGVyLmlwdjZfYWRkcmVzc185NV82NCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtODMzLVxcdFxcdEhXU19TRVRfSERSKGZjLCBtYXRjaF9wYXJhbSwgSVBWNl9EU1RfNjNfMzJfTyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYzo4MzQ6XFx0XFx0XFx0ICAgIG91dGVyX2hlYWRlcnMuZHN0X2lwdjRfZHN0X2lwdjYuaXB2Nl9zaW1wbGVfbGF5b3V0LmlwdjZfNjNfMzIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtODM1LVxcdFxcdFxcdCAgICBpcHY2X2RzdF9vdXRlci5pcHY2X2FkZHJlc3NfNjNfMzIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTgzNi1cXHRcXHRIV1NfU0VUX0hEUihmYywgbWF0Y2hfcGFyYW0sIElQVjZfRFNUXzMxXzBfTyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYzo4Mzc6XFx0XFx0XFx0ICAgIG91dGVyX2hlYWRlcnMuZHN0X2lwdjRfZHN0X2lwdjYuaXB2Nl9zaW1wbGVfbGF5b3V0LmlwdjZfMzFfMCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy04MzgtXFx0XFx0XFx0ICAgIGlwdjZfZHN0X291dGVyLmlwdjZfYWRkcmVzc18zMV8wKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTg0MS1cXHRcXHRIV1NfU0VUX0hEUihmYywgbWF0Y2hfcGFyYW0sIElQVjRfU1JDX08sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmM6ODQyOlxcdFxcdFxcdCAgICBvdXRlcl9oZWFkZXJzLnNyY19pcHY0X3NyY19pcHY2LmlwdjZfc2ltcGxlX2xheW91dC5pcHY2XzMxXzAsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtODQzLVxcdFxcdFxcdCAgICBpcHY0X3NyY19kZXN0X291dGVyLnNvdXJjZV9hZGRyZXNzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTg0NS1cXHRcXHRIV1NfU0VUX0hEUihmYywgbWF0Y2hfcGFyYW0sIElQVjRfRFNUX08sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmM6ODQ2OlxcdFxcdFxcdCAgICBvdXRlcl9oZWFkZXJzLmRzdF9pcHY0X2RzdF9pcHY2LmlwdjZfc2ltcGxlX2xheW91dC5pcHY2XzMxXzAsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtODQ3LVxcdFxcdFxcdCAgICBpcHY0X3NyY19kZXN0X291dGVyLmRlc3RpbmF0aW9uX2FkZHJlc3MpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmM9ODk4PWh3c19kZWZpbmVyX2NvbnZfaW5uZXIoc3RydWN0IG1seDVod3NfZGVmaW5lcl9jb252X2RhdGEgKmNkLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtOTkwLVxcdFxcdEhXU19TRVRfSERSKGZjLCBtYXRjaF9wYXJhbSwgSVBWNl9TUkNfMTI3Xzk2X0ksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmM6OTkxOlxcdFxcdFxcdCAgICBpbm5lcl9oZWFkZXJzLnNyY19pcHY0X3NyY19pcHY2LmlwdjZfc2ltcGxlX2xheW91dC5pcHY2XzEyN185NixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy05OTItXFx0XFx0XFx0ICAgIGlwdjZfc3JjX2lubmVyLmlwdjZfYWRkcmVzc18xMjdfOTYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTk5My1cXHRcXHRIV1NfU0VUX0hEUihmYywgbWF0Y2hfcGFyYW0sIElQVjZfU1JDXzk1XzY0X0ksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmM6OTk0OlxcdFxcdFxcdCAgICBpbm5lcl9oZWFkZXJzLnNyY19pcHY0X3NyY19pcHY2LmlwdjZfc2ltcGxlX2xheW91dC5pcHY2Xzk1XzY0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTk5NS1cXHRcXHRcXHQgICAgaXB2Nl9zcmNfaW5uZXIuaXB2Nl9hZGRyZXNzXzk1XzY0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy05OTYtXFx0XFx0SFdTX1NFVF9IRFIoZmMsIG1hdGNoX3BhcmFtLCBJUFY2X1NSQ182M18zMl9JLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jOjk5NzpcXHRcXHRcXHQgICAgaW5uZXJfaGVhZGVycy5zcmNfaXB2NF9zcmNfaXB2Ni5pcHY2X3NpbXBsZV9sYXlvdXQuaXB2Nl82M18zMixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy05OTgtXFx0XFx0XFx0ICAgIGlwdjZfc3JjX2lubmVyLmlwdjZfYWRkcmVzc182M18zMik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtOTk5LVxcdFxcdEhXU19TRVRfSERSKGZjLCBtYXRjaF9wYXJhbSwgSVBWNl9TUkNfMzFfMF9JLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jOjEwMDA6XFx0XFx0XFx0ICAgIGlubmVyX2hlYWRlcnMuc3JjX2lwdjRfc3JjX2lwdjYuaXB2Nl9zaW1wbGVfbGF5b3V0LmlwdjZfMzFfMCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy0xMDAxLVxcdFxcdFxcdCAgICBpcHY2X3NyY19pbm5lci5pcHY2X2FkZHJlc3NfMzFfMCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy0xMDAzLVxcdFxcdEhXU19TRVRfSERSKGZjLCBtYXRjaF9wYXJhbSwgSVBWNl9EU1RfMTI3Xzk2X0ksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmM6MTAwNDpcXHRcXHRcXHQgICAgaW5uZXJfaGVhZGVycy5kc3RfaXB2NF9kc3RfaXB2Ni5pcHY2X3NpbXBsZV9sYXlvdXQuaXB2Nl8xMjdfOTYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtMTAwNS1cXHRcXHRcXHQgICAgaXB2Nl9kc3RfaW5uZXIuaXB2Nl9hZGRyZXNzXzEyN185Nik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtMTAwNi1cXHRcXHRIV1NfU0VUX0hEUihmYywgbWF0Y2hfcGFyYW0sIElQVjZfRFNUXzk1XzY0X0ksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmM6MTAwNzpcXHRcXHRcXHQgICAgaW5uZXJfaGVhZGVycy5kc3RfaXB2NF9kc3RfaXB2Ni5pcHY2X3NpbXBsZV9sYXlvdXQuaXB2Nl85NV82NCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy0xMDA4LVxcdFxcdFxcdCAgICBpcHY2X2RzdF9pbm5lci5pcHY2X2FkZHJlc3NfOTVfNjQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTEwMDktXFx0XFx0SFdTX1NFVF9IRFIoZmMsIG1hdGNoX3BhcmFtLCBJUFY2X0RTVF82M18zMl9JLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jOjEwMTA6XFx0XFx0XFx0ICAgIGlubmVyX2hlYWRlcnMuZHN0X2lwdjRfZHN0X2lwdjYuaXB2Nl9zaW1wbGVfbGF5b3V0LmlwdjZfNjNfMzIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtMTAxMS1cXHRcXHRcXHQgICAgaXB2Nl9kc3RfaW5uZXIuaXB2Nl9hZGRyZXNzXzYzXzMyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy0xMDEyLVxcdFxcdEhXU19TRVRfSERSKGZjLCBtYXRjaF9wYXJhbSwgSVBWNl9EU1RfMzFfMF9JLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jOjEwMTM6XFx0XFx0XFx0ICAgIGlubmVyX2hlYWRlcnMuZHN0X2lwdjRfZHN0X2lwdjYuaXB2Nl9zaW1wbGVfbGF5b3V0LmlwdjZfMzFfMCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy0xMDE0LVxcdFxcdFxcdCAgICBpcHY2X2RzdF9pbm5lci5pcHY2X2FkZHJlc3NfMzFfMCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy0xMDE3LVxcdFxcdEhXU19TRVRfSERSKGZjLCBtYXRjaF9wYXJhbSwgSVBWNF9TUkNfSSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYzoxMDE4OlxcdFxcdFxcdCAgICBpbm5lcl9oZWFkZXJzLnNyY19pcHY0X3NyY19pcHY2LmlwdjZfc2ltcGxlX2xheW91dC5pcHY2XzMxXzAsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtMTAxOS1cXHRcXHRcXHQgICAgaXB2NF9zcmNfZGVzdF9pbm5lci5zb3VyY2VfYWRkcmVzcyk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy0xMDIxLVxcdFxcdEhXU19TRVRfSERSKGZjLCBtYXRjaF9wYXJhbSwgSVBWNF9EU1RfSSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYzoxMDIyOlxcdFxcdFxcdCAgICBpbm5lcl9oZWFkZXJzLmRzdF9pcHY0X2RzdF9pcHY2LmlwdjZfc2ltcGxlX2xheW91dC5pcHY2XzMxXzAsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtMTAyMy1cXHRcXHRcXHQgICAgaXB2NF9zcmNfZGVzdF9pbm5lci5kZXN0aW5hdGlvbl9hZGRyZXNzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS93Yy5jLTEyLSNpbmNsdWRlIFxcdTAwM2Nhc20vbmVvbi5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS93Yy5jOjEzOiNpbmNsdWRlIFxcdTAwM2Nhc20vc2ltZC5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS93Yy5jLTE0LSNlbmRpZlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3djLmM9MjY0PXN0YXRpYyB2b2lkIG1seDVfaW93cml0ZTY0X2NvcHkoc3RydWN0IG1seDVfd2Nfc3EgKnNxLCBfX2JlMzIgbW1pb193cWVbMTZdLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3djLmMtMjY4LVxcdGlmIChjcHVfaGFzX25lb24oKSkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS93Yy5jOjI2OTpcXHRcXHRzY29wZWRfa3NpbWQoKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3djLmMtMjcwLVxcdFxcdFxcdGFzbSB2b2xhdGlsZShcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvd2MuYzoyNzE6XFx0XFx0XFx0XFx0XFxcIi5hcmNoX2V4dGVuc2lvbiBzaW1kXFxcXG5cXFxcdFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvd2MuYy0yNzItXFx0XFx0XFx0XFx0XFxcImxkMSB7djAuMTZiLCB2MS4xNmIsIHYyLjE2YiwgdjMuMTZifSwgWyUwXVxcXFxuXFxcXHRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDE4OjEyOjA5LjkzMTIyMzIyOVoiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMTI3NTUwNzEyNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBUaG91Z2h0IFByb2Nlc3Mgb24gUmVhY2hpbmcgTUxYNSB3aXRoIFN5emthbGxlcioqXG5cbk9rYXksIHNvIEknbSB0aGlua2luZyBhYm91dCBob3cgc3l6a2FsbGVyIG1pZ2h0IGJlIGFibGUgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgYE1MWDVfU0ZgIGFuZCBgTUxYNV9TRl9NQU5BR0VSYCBzdWJmdW5jdGlvbnMuIFRoZXNlIGFyZSBsaWtlIFNSSU9WIFZGcywgYnV0IHdpdGhvdXQgdGhlIFNSSU9WIHJlcXVpcmVtZW50LCBzdXBwb3J0aW5nIFJETUEsIG5ldGRldnMsIGFuZCB2ZHBhIGRldmljZXMuIFRoZSBxdWVzdGlvbiBpcywgY2FuIHN5emthbGxlciBldmVuICpjcmVhdGUqIHRoZXNlIHN1YmZ1bmN0aW9ucz9cblxuTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGxldmVyYWdlIHN5emthbGxlcidzIFBDSSBmdXp6ZXIsIHNwZWNpZmljYWxseSBgc3l6X3BjaV9lcGAuIFRoYXQgY3JlYXRlcyBhIGZha2UgUENJIGRldmljZSwgd2hpY2ggdGhlIG1seDUgZHJpdmVyIGNvdWxkIHRoZW4gcHJvYmUuIElmIHRoZSBkcml2ZXIgaW5pdGlhbGl6ZXMgZmFyIGVub3VnaCB0byByZWdpc3RlciBhIG5ldGRldmljZSwgdGhlbiBzeXprYWxsZXIgY291bGQgdGFsayB0byBpdCB2aWEgc3RhbmRhcmQgbmV0bGluayBvciBzb2NrZXQgQVBJcy4gQnV0LCB0aGVyZSdzIGEgcHJvYmxlbTogdGhlIG1seDUgZHJpdmVyIG5lZWRzIGNvbXBsZXggZmlybXdhcmUgY29tbWFuZHMgZHVyaW5nIGluaXRpYWxpemF0aW9uLiBBbmQsIGBzeXpfcGNpX2VwYCBkb2Vzbid0IGVtdWxhdGUgdGhhdCBmaXJtd2FyZS5cblxuU28sIGRvZXMgc3l6a2FsbGVyIGhhdmUgYW55IHdheSB0byBhY3R1YWxseSAqcmVhY2gqIG1seDU/IEknZCBsaWtlIHRvIGNoZWNrIGZvciBleGlzdGluZyBzeXprYWxsZXIgYnVncyBpbiBtbHg1LCBidXQgd2l0aG91dCBhY2Nlc3MgdG8gdGhlIGZ1bGwga2VybmVsIGhpc3RvcnksIEknbSBzdHVjay5cblxuVGhlIHByb21wdCBub3RlcywgXCJDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUuLi5cIiBJZiBtbHg1IGlzIGEgKnBoeXNpY2FsKiBkZXZpY2UgZHJpdmVyIGFuZCAqbm90KiBzb2Z0d2FyZS1lbXVsYXRlZCwgdGhlbiBpdCdzIGVmZmVjdGl2ZWx5IHVucmVhY2hhYmxlIGluIEdDRS9RRU1VIHVubGVzcyB0aGVyZSdzIGFuIGVtdWxhdG9yLiBBbmQsIHRoZXJlIGlzbid0IGEgYG1seDVfc2ltYCBvciBgbWx4NV9od3NpbWAgZXF1aXZhbGVudC5cblxuQnV0LCB0aGVyZSdzIGBuZXRkZXZzaW1gLiBUaGF0J3MgdXNlZCBmb3IgdGVzdGluZywgYnV0IGl0IGRvZXNuJ3QgdXRpbGl6ZSBtbHg1IGNvZGUuIFRoZW4sIHRoZXJlJ3MgYHN5el9wY2lfZXBgISBJdCBlbXVsYXRlcyAqc29mdHdhcmUqIGhhcmR3YXJlIC0gYSBQQ0kgZW5kcG9pbnQuIFNvLCBpZiBgc3l6X3BjaV9lcGAgY2FuIGVtdWxhdGUgbWx4NSwgdGhlbiBpdCAqaXMqIHJlYWNoYWJsZS4gQnV0IGhlcmUgY29tZXMgdGhlIHByb2JsZW06IGBzeXpfcGNpX2VwYCBkb2VzIG5vdCBlbXVsYXRlIHRoZSBmaXJtd2FyZS4gRHJpdmVycyByZXF1aXJpbmcgY29tcGxpY2F0ZWQgZmlybXdhcmUgaGFuZHNoYWtlcywgbGlrZSBtbHg1LCBpY2UsIGk0MGUsIHVzdWFsbHkgZmFpbCB3aXRoIGBzeXpfcGNpX2VwYCBiZWNhdXNlIHRoZSBmdXp6ZXIgY2FuJ3QgZ3Vlc3MgdGhlIGZpcm13YXJlJ3MgY29ycmVjdCByZXNwb25zZSBzZXF1ZW5jZS5cblxuV2FpdCBhIHNlY29uZCwgdGhlcmUgaXMgc29tZXRoaW5nIEkgaGF2ZSB0byBsb29rIGF0ISBUaGUgcGF0Y2gncyBhdXRob3IgaXMgYHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlYC4gXCJzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcIi4gVGhpcyBtZWFucyBzeXprYWxsZXIgKmRpZCogZmluZCBhIGJ1ZyEgSXQgaXMgYSBwYXRjaCB0aGF0IEkgYW0gcmV2aWV3aW5nISBUaGlzIHByb3ZlcyBpdCBpcyB0ZXN0aW5nIHRoaXMuXG5cbklmIHN5emthbGxlciBmb3VuZCBhIGJ1ZywgaG93PyBJcyB0aGVyZSBhIHZpcnR1YWwgbWx4NSBkZXZpY2UgaW4gUUVNVT8gTm8sIFFFTVUgZG9lc24ndCBoYXZlIGFuIHVwc3RyZWFtIG1seDUgZW11bGF0b3IuIE1heWJlIHN5emthbGxlciBydW5zIGJhcmUgbWV0YWwgd2l0aCBNZWxsYW5veCBjYXJkcz8gTm8sIHN5emthbGxlciBtb3N0bHkgcnVucyBpbiBHQ0UvUUVNVS5cblxuRG9lcyBzeXprYWxsZXIgKml0c2VsZiogaGF2ZSBhbiBtbHg1IGVtdWxhdG9yPyBJIHNob3VsZCBjaGVjayBpZiB0aGVyZSdzIGFueSBgbWx4NWAgZW11bGF0b3IgaW4gdGhlIGtlcm5lbC5cblxuXG4iLCJJbnB1dFRva2VucyI6Mzc3NjQsIk91dHB1dFRva2VucyI6NDIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3NTAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTg6MTI6MjEuMjA2NzQyNzY1WiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzcxNDg5NTYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibWx4NV9jb3JlX2RldlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTIzMjMgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jPTU4PXN0cnVjdCBtbHg1X2RtYV9wb29sIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTYxLVxcdHN0cnVjdCBsaXN0X2hlYWQgcGFnZV9saXN0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjYyOlxcdHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNjMtXFx0aW50IG5vZGU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYz03OT1zdHJ1Y3QgbWx4NV9kbWFfcG9vbF9zdGF0cyB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy04OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo5MDpzdGF0aWMgdm9pZCAqbWx4NV9kbWFfemFsbG9jX2NvaGVyZW50X25vZGUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy05MS1cXHRcXHRcXHRcXHRcXHQgICBzaXplX3Qgc2l6ZSwgZG1hX2FkZHJfdCAqZG1hX2hhbmRsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jPTEwOT1zdGF0aWMgdm9pZCBtbHg1X2RtYV9wb29sX2Rlc3Ryb3koc3RydWN0IG1seDVfZG1hX3Bvb2wgKnBvb2wpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0xMTQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MTE1OnN0YXRpYyBzdHJ1Y3QgbWx4NV9kbWFfcG9vbCAqbWx4NV9kbWFfcG9vbF9jcmVhdGUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0xMTYtXFx0XFx0XFx0XFx0XFx0XFx0ICBpbnQgbm9kZSwgdTggYmxvY2tfc2hpZnQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYz0xMzM9bWx4NV9kbWFfcG9vbF9wYWdlX2FsbG9jKHN0cnVjdCBtbHg1X2RtYV9wb29sICpwb29sKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMTYyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjE2MzpzdGF0aWMgdm9pZCBtbHg1X2RtYV9wb29sX3BhZ2VfZnJlZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTE2NC1cXHRcXHRcXHRcXHQgICAgc3RydWN0IG1seDVfZG1hX3Bvb2xfcGFnZSAqcGFnZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jPTI4Mz1zdGF0aWMgc3RydWN0IG1seDVfZnJhZ19idWZfbm9kZV9wb29scyAqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6Mjg0Om1seDVfZnJhZ19idWZfbm9kZV9wb29sc19jcmVhdGUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgaW50IG5vZGUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMjg1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jPTMwNz1tbHg1X2ZyYWdfYnVmX2RtYV9wb29sc19kZWJ1Z2ZzX3Nob3coc3RydWN0IHNlcV9maWxlICpmaWxlLCB2b2lkICpwcml2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTMwOC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MzA5OlxcdHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYgPSBmaWxlLVxcdTAwM2Vwcml2YXRlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTMxMC1cXHRpbnQgbm9kZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jPTMzNj1ERUZJTkVfU0hPV19BVFRSSUJVVEUobWx4NV9mcmFnX2J1Zl9kbWFfcG9vbHNfZGVidWdmcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzM3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjMzODp2b2lkIG1seDVfZnJhZ19idWZfcG9vbHNfY2xlYW51cChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTMzOS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zNTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MzU5OmludCBtbHg1X2ZyYWdfYnVmX3Bvb2xzX2luaXQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zNjAte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzg3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjM4ODppbnQgbWx4NV9mcmFnX2J1Zl9hbGxvY19ub2RlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIGludCBzaXplLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTM4OS1cXHRcXHRcXHQgICAgIHN0cnVjdCBtbHg1X2ZyYWdfYnVmICpidWYsIGludCBub2RlKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM9NDI1PUVYUE9SVF9TWU1CT0xfR1BMKG1seDVfZnJhZ19idWZfYWxsb2Nfbm9kZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNDI2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjQyNzp2b2lkIG1seDVfZnJhZ19idWZfZnJlZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBzdHJ1Y3QgbWx4NV9mcmFnX2J1ZiAqYnVmKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTQyOC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYz00NDU9RVhQT1JUX1NZTUJPTF9HUEwobWx4NV9mcmFnX2J1Zl9mcmVlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00NDYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NDQ3OnN0YXRpYyBzdHJ1Y3QgbWx4NV9kYl9wZ2RpciAqbWx4NV9hbGxvY19kYl9wZ2RpcihzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTQ0OC1cXHRcXHRcXHRcXHRcXHRcXHQgaW50IG5vZGUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYz00NzY9c3RhdGljIGludCBtbHg1X2FsbG9jX2RiX2Zyb21fcGdkaXIoc3RydWN0IG1seDVfZGJfcGdkaXIgKnBnZGlyLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTAwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjUwMTppbnQgbWx4NV9kYl9hbGxvY19ub2RlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X2RiICpkYiwgaW50IG5vZGUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTAyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jPTUyOD1FWFBPUlRfU1lNQk9MX0dQTChtbHg1X2RiX2FsbG9jX25vZGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTUyOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo1MzA6dm9pZCBtbHg1X2RiX2ZyZWUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfZGIgKmRiKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTUzMS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9MjgzPXN0YXRpYyB2b2lkIHBvbGxfdGltZW91dChzdHJ1Y3QgbWx4NV9jbWRfd29ya19lbnQgKmVudClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjg0LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6Mjg1OlxcdHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYgPSBjb250YWluZXJfb2YoZW50LVxcdTAwM2VjbWQsIHN0cnVjdCBtbHg1X2NvcmVfZGV2LCBjbWQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yODYtXFx0dTY0IGNtZF90b19tcyA9IG1seDVfdG91dF9tcyhkZXYsIENNRCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9MzMxPXN0YXRpYyB2b2lkIGR1bXBfYnVmKHZvaWQgKmJ1ZiwgaW50IHNpemUsIGludCBkYXRhX29ubHksIGludCBvZmZzZXQsIGludCBpZHgpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMzQ2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzozNDc6c3RhdGljIGludCBtbHg1X2ludGVybmFsX2Vycl9yZXRfdmFsdWUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2IG9wLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0zNDgtXFx0XFx0XFx0XFx0ICAgICAgIHUzMiAqc3luZCwgdTggKnN0YXR1cylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz03OTM9c3RhdGljIGludCBjbWRfc3RhdHVzX3RvX2Vycih1OCBzdGF0dXMpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtODE2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzo4MTc6dm9pZCBtbHg1X2NtZF9vdXRfZXJyKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUxNiBvcGNvZGUsIHUxNiBvcF9tb2QsIHZvaWQgKm91dClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtODE4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz04Mjc9RVhQT1JUX1NZTUJPTChtbHg1X2NtZF9vdXRfZXJyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtODI4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzo4Mjk6c3RhdGljIHZvaWQgY21kX3N0YXR1c19wcmludChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB2b2lkICppbiwgdm9pZCAqb3V0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy04MzAte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTg0NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6ODQ1OmludCBtbHg1X2NtZF9jaGVjayhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBpbnQgZXJyLCB2b2lkICppbiwgdm9pZCAqb3V0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy04NDYte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTg3Mj1FWFBPUlRfU1lNQk9MKG1seDVfY21kX2NoZWNrKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtODczLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzo4NzQ6c3RhdGljIHZvaWQgZHVtcF9jb21tYW5kKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTg3NS1cXHRcXHRcXHQgc3RydWN0IG1seDVfY21kX3dvcmtfZW50ICplbnQsIGludCBpbnB1dClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy05MzEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjkzMjpzdGF0aWMgdm9pZCBtbHg1X2NtZF9jb21wX2hhbmRsZXIoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTY0IHZlYywgYm9vbCBmb3JjZWQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy05MzMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTkzND1zdGF0aWMgdm9pZCBjYl90aW1lb3V0X2hhbmRsZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTkzOS1cXHRcXHRcXHRcXHRcXHRcXHQgICAgIGNiX3RpbWVvdXRfd29yayk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjk0MDpcXHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2ID0gY29udGFpbmVyX29mKGVudC1cXHUwMDNlY21kLCBzdHJ1Y3QgbWx4NV9jb3JlX2RldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtOTQxLVxcdFxcdFxcdFxcdFxcdFxcdCBjbWQpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTk2MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6OTYxOnN0YXRpYyB2b2lkIGZyZWVfbXNnKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X2NtZF9tc2cgKm1zZyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjk2MjpzdGF0aWMgdm9pZCBtbHg1X2ZyZWVfY21kX21zZyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy05NjMtXFx0XFx0XFx0ICAgICAgc3RydWN0IG1seDVfY21kX21zZyAqbXNnKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz05NjU9c3RhdGljIGJvb2wgb3Bjb2RlX2FsbG93ZWQoc3RydWN0IG1seDVfY21kICpjbWQsIHUxNiBvcGNvZGUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtOTcyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzo5NzM6Ym9vbCBtbHg1X2NtZF9pc19kb3duKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTk3NC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9OTgwPXN0YXRpYyB2b2lkIGNtZF93b3JrX2hhbmRsZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTk4NS1cXHRzdHJ1Y3QgbWx4NV9jbWRfbGF5b3V0ICpsYXk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjk4NjpcXHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy05ODctXFx0dW5zaWduZWQgbG9uZyB0aW1lb3V0O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTk5My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6OTk0OlxcdGRldiA9IGNvbnRhaW5lcl9vZihjbWQsIHN0cnVjdCBtbHg1X2NvcmVfZGV2LCBjbWQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy05OTUtXFx0dGltZW91dCA9IG1zZWNzX3RvX2ppZmZpZXMobWx4NV90b3V0X21zKGRldiwgQ01EKSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9MTE0MD1lbnVtIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMTQzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxMTQ0OnN0YXRpYyB2b2lkIHdhaXRfZnVuY19oYW5kbGVfZXhlY190aW1lb3V0KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTExNDUtXFx0XFx0XFx0XFx0XFx0ICBzdHJ1Y3QgbWx4NV9jbWRfd29ya19lbnQgKmVudClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMTY4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxMTY5OnN0YXRpYyBpbnQgd2FpdF9mdW5jKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X2NtZF93b3JrX2VudCAqZW50KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMTcwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMjE1LSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxMjE2OnN0YXRpYyBib29sIG1seDVfY21kX2FsbF9zdGFsbGVkKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEyMTcte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEyNTgtICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjEyNTk6c3RhdGljIGludCBtbHg1X2NtZF9pbnZva2Uoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfY21kX21zZyAqaW4sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEyNjAtXFx0XFx0XFx0ICAgc3RydWN0IG1seDVfY21kX21zZyAqb3V0LCB2b2lkICp1b3V0LCBpbnQgdW91dF9zaXplLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTEzMzc9c3RhdGljIHNzaXplX3QgZGJnX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxwLCBjb25zdCBjaGFyIF9fdXNlciAqYnVmLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEzMzkte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxMzQwOlxcdHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYgPSBmaWxwLVxcdTAwM2Vwcml2YXRlX2RhdGE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEzNDEtXFx0c3RydWN0IG1seDVfY21kX2RlYnVnICpkYmcgPSBcXHUwMDI2ZGV2LVxcdTAwM2VjbWQuZGJnO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTE0MDQ9c3RhdGljIGludCBtbHg1X2NvcHlfZnJvbV9tc2codm9pZCAqdG8sIHN0cnVjdCBtbHg1X2NtZF9tc2cgKmZyb20sIGludCBzaXplKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE0MzYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE0Mzc6c3RhdGljIHN0cnVjdCBtbHg1X2NtZF9tYWlsYm94ICphbGxvY19jbWRfYm94KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE0MzgtXFx0XFx0XFx0XFx0XFx0ICAgICAgZ2ZwX3QgZmxhZ3MpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTQ1Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTQ1ODpzdGF0aWMgdm9pZCBmcmVlX2NtZF9ib3goc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTQ1OS1cXHRcXHRcXHQgc3RydWN0IG1seDVfY21kX21haWxib3ggKm1haWxib3gpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTQ2NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTQ2NTpzdGF0aWMgc3RydWN0IG1seDVfY21kX21zZyAqbWx4NV9hbGxvY19jbWRfbXNnKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE0NjYtXFx0XFx0XFx0XFx0XFx0ICAgICAgIGdmcF90IGZsYWdzLCBpbnQgc2l6ZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNTExLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNTEyOnN0YXRpYyB2b2lkIG1seDVfZnJlZV9jbWRfbXNnKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE1MTMtXFx0XFx0XFx0ICAgICAgc3RydWN0IG1seDVfY21kX21zZyAqbXNnKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTE1MjY9c3RhdGljIHNzaXplX3QgZGF0YV93cml0ZShzdHJ1Y3QgZmlsZSAqZmlscCwgY29uc3QgY2hhciBfX3VzZXIgKmJ1ZixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNTI4LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTUyOTpcXHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2ID0gZmlscC1cXHUwMDNlcHJpdmF0ZV9kYXRhO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNTMwLVxcdHN0cnVjdCBtbHg1X2NtZF9kZWJ1ZyAqZGJnID0gXFx1MDAyNmRldi1cXHUwMDNlY21kLmRiZztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz0xNTUwPXN0YXRpYyBzc2l6ZV90IGRhdGFfcmVhZChzdHJ1Y3QgZmlsZSAqZmlscCwgY2hhciBfX3VzZXIgKmJ1Ziwgc2l6ZV90IGNvdW50LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE1NTIte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNTUzOlxcdHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYgPSBmaWxwLVxcdTAwM2Vwcml2YXRlX2RhdGE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE1NTQtXFx0c3RydWN0IG1seDVfY21kX2RlYnVnICpkYmcgPSBcXHUwMDI2ZGV2LVxcdTAwM2VjbWQuZGJnO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTE1NzA9c3RhdGljIHNzaXplX3Qgb3V0bGVuX3JlYWQoc3RydWN0IGZpbGUgKmZpbHAsIGNoYXIgX191c2VyICpidWYsIHNpemVfdCBjb3VudCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNTcyLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTU3MzpcXHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2ID0gZmlscC1cXHUwMDNlcHJpdmF0ZV9kYXRhO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNTc0LVxcdHN0cnVjdCBtbHg1X2NtZF9kZWJ1ZyAqZGJnID0gXFx1MDAyNmRldi1cXHUwMDNlY21kLmRiZztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz0xNTg1PXN0YXRpYyBzc2l6ZV90IG91dGxlbl93cml0ZShzdHJ1Y3QgZmlsZSAqZmlscCwgY29uc3QgY2hhciBfX3VzZXIgKmJ1ZixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNTg3LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTU4ODpcXHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2ID0gZmlscC1cXHUwMDNlcHJpdmF0ZV9kYXRhO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNTg5LVxcdHN0cnVjdCBtbHg1X2NtZF9kZWJ1ZyAqZGJnID0gXFx1MDAyNmRldi1cXHUwMDNlY21kLmRiZztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz0xNjIxPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG9sZm9wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNjI3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNjI4OnN0YXRpYyB2b2lkIHNldF93cW5hbWUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTYyOS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTYzNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTYzNjpzdGF0aWMgdm9pZCBjbGVhbl9kZWJ1Z19maWxlcyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNjM3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNjQ1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNjQ2OnN0YXRpYyB2b2lkIGNyZWF0ZV9kZWJ1Z2ZzX2ZpbGVzKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE2NDcte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE2NTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE2NTk6dm9pZCBtbHg1X2NtZF9hbGxvd2VkX29wY29kZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1MTYgb3Bjb2RlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNjYwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNjc0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNjc1OnN0YXRpYyB2b2lkIG1seDVfY21kX2NoYW5nZV9tb2Qoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgaW50IG1vZGUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE2NzYte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTE2OTE9c3RhdGljIGludCBjbWRfY29tcF9ub3RpZmllcihzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE2OTMte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNjk0OlxcdHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE2OTUtXFx0c3RydWN0IG1seDVfY21kICpjbWQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTY5OC1cXHRjbWQgPSBtbHg1X25iX2NvZihuYiwgc3RydWN0IG1seDVfY21kLCBuYik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE2OTk6XFx0ZGV2ID0gY29udGFpbmVyX29mKGNtZCwgc3RydWN0IG1seDVfY29yZV9kZXYsIGNtZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE3MDAtXFx0ZXFlID0gZGF0YTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNzA4LX1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTcwOTp2b2lkIG1seDVfY21kX3VzZV9ldmVudHMoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTcxMC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTcxNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTcxNjp2b2lkIG1seDVfY21kX3VzZV9wb2xsaW5nKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE3MTcte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE3MjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE3MjI6c3RhdGljIHZvaWQgZnJlZV9tc2coc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfY21kX21zZyAqbXNnKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNzIzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNzM0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNzM1OnN0YXRpYyB2b2lkIG1seDVfY21kX2NvbXBfaGFuZGxlcihzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1NjQgdmVjLCBib29sIGZvcmNlZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTczNi17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTgzOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTgzOTpzdGF0aWMgdm9pZCBtbHg1X2NtZF90cmlnZ2VyX2NvbXBsZXRpb25zKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE4NDAte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE4NzMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE4NzQ6dm9pZCBtbHg1X2NtZF9mbHVzaChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xODc1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xODk2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxODk3OnN0YXRpYyBzdHJ1Y3QgbWx4NV9jbWRfbXNnICphbGxvY19tc2coc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgaW50IGluX3NpemUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE4OTgtXFx0XFx0XFx0XFx0ICAgICAgZ2ZwX3QgZ2ZwKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTE5MzU9c3RhdGljIGludCBpc19tYW5hZ2VfcGFnZXModm9pZCAqaW4pXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTkzOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTk0MDpzdGF0aWMgYm9vbCBtbHg1X2hhc19wcml2aWxlZ2VkX3VpZChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xOTQxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xOTQ0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxOTQ1OnN0YXRpYyBib29sIG1seDVfY21kX2lzX3ByaXZpbGVnZWRfdWlkKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE5NDYtXFx0XFx0XFx0XFx0ICAgICAgIHUxNiB1aWQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTk1NC0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTk1NTpzdGF0aWMgaW50IGNtZF9leGVjKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHZvaWQgKmluLCBpbnQgaW5fc2l6ZSwgdm9pZCAqb3V0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xOTU2LVxcdFxcdCAgICBpbnQgb3V0X3NpemUsIG1seDVfY21kX2Nia190IGNhbGxiYWNrLCB2b2lkICpjb250ZXh0LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTIwMzUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjIwMzY6c3RhdGljIHZvaWQgbWx4NV9jbWRfZXJyX3RyYWNlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUxNiBvcGNvZGUsIHUxNiBvcF9tb2QsIHZvaWQgKm91dClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjAzNy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjA0NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MjA0NjpzdGF0aWMgdm9pZCBjbWRfc3RhdHVzX2xvZyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1MTYgb3Bjb2RlLCB1OCBzdGF0dXMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTIwNDctXFx0XFx0XFx0ICAgdTMyIHN5bmRyb21lLCBpbnQgZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTIwNzEtLyogcHJlc2VydmUgLUVSRU1PVEVJTyBmb3Igb3V0Ym94LnN0YXR1cyAhPSBPSywgb3RoZXJ3aXNlIHJldHVybiBlcnIgYXMgaXMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MjA3MjpzdGF0aWMgaW50IGNtZF9zdGF0dXNfZXJyKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIGludCBlcnIsIHUxNiBvcGNvZGUsIHUxNiBvcF9tb2QsIHZvaWQgKm91dClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjA3My17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjEwNi0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MjEwNzppbnQgbWx4NV9jbWRfZG8oc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdm9pZCAqaW4sIGludCBpbl9zaXplLCB2b2lkICpvdXQsIGludCBvdXRfc2l6ZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjEwOC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9MjExNT1FWFBPUlRfU1lNQk9MKG1seDVfY21kX2RvKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMTI4LSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoyMTI5OmludCBtbHg1X2NtZF9leGVjKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHZvaWQgKmluLCBpbnQgaW5fc2l6ZSwgdm9pZCAqb3V0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMTMwLVxcdFxcdCAgaW50IG91dF9zaXplKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTIxMzY9RVhQT1JUX1NZTUJPTChtbHg1X2NtZF9leGVjKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMTUxLSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoyMTUyOmludCBtbHg1X2NtZF9leGVjX3BvbGxpbmcoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdm9pZCAqaW4sIGludCBpbl9zaXplLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMTUzLVxcdFxcdFxcdCAgdm9pZCAqb3V0LCBpbnQgb3V0X3NpemUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9MjE2Mj1FWFBPUlRfU1lNQk9MKG1seDVfY21kX2V4ZWNfcG9sbGluZyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTIxNjMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjIxNjQ6dm9pZCBtbHg1X2NtZF9pbml0X2FzeW5jX2N0eChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMTY1LVxcdFxcdFxcdCAgICAgc3RydWN0IG1seDVfYXN5bmNfY3R4ICpjdHgpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9MjE4OT1zdGF0aWMgdm9pZCBtbHg1X2NtZF9leGVjX2NiX2hhbmRsZXIoaW50IHN0YXR1cywgdm9pZCAqX3dvcmspXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjE5Mi1cXHRzdHJ1Y3QgbWx4NV9hc3luY19jdHggKmN0eDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MjE5MzpcXHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMTk0LVxcdGJvb2wgdGhyb3R0bGVfbG9ja2VkO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTIyMTQ9aW50IG1seDVfY21kX2V4ZWNfY2Ioc3RydWN0IG1seDVfYXN5bmNfY3R4ICpjdHgsIHZvaWQgKmluLCBpbnQgaW5fc2l6ZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMjE3LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MjIxODpcXHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2ID0gY3R4LVxcdTAwM2VkZXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTIyMTktXFx0dTE2IHVpZDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz0yMjY4PUVYUE9SVF9TWU1CT0wobWx4NV9jbWRfZXhlY19jYik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTIyNjktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjIyNzA6aW50IG1seDVfY21kX2FsbG93X290aGVyX3ZoY2FfYWNjZXNzKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTIyNzEtXFx0XFx0XFx0XFx0ICAgICBzdHJ1Y3QgbWx4NV9jbWRfYWxsb3dfb3RoZXJfdmhjYV9hY2Nlc3NfYXR0ciAqYXR0cilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMjg5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoyMjkwOmludCBtbHg1X2NtZF9hbGlhc19vYmpfY3JlYXRlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTIyOTEtXFx0XFx0XFx0ICAgICAgc3RydWN0IG1seDVfY21kX2FsaWFzX29ial9jcmVhdGVfYXR0ciAqYWxpYXNfYXR0cixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMzI1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoyMzI2OmludCBtbHg1X2NtZF9hbGlhc19vYmpfZGVzdHJveShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1MzIgb2JqX2lkLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMzI3LVxcdFxcdFxcdCAgICAgICB1MTYgb2JqX3R5cGUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjMzOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MjMzOTpzdGF0aWMgdm9pZCBkZXN0cm95X21zZ19jYWNoZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMzQwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz0yMzU5PXN0YXRpYyB1bnNpZ25lZCBjbWRfY2FjaGVfZW50X3NpemVbTUxYNV9OVU1fQ09NTUFORF9DQUNIRVNdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTIzNjYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjIzNjc6c3RhdGljIHZvaWQgY3JlYXRlX21zZ19jYWNoZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMzY4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMzkyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoyMzkzOnN0YXRpYyBpbnQgYWxsb2NfY21kX3BhZ2Uoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfY21kICpjbWQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTIzOTQte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTI0MjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjI0MjI6c3RhdGljIHZvaWQgZnJlZV9jbWRfcGFnZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBzdHJ1Y3QgbWx4NV9jbWQgKmNtZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjQyMy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjQyNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MjQyODpzdGF0aWMgdTE2IGNtZGlmX3JldihzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yNDI5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yNDMyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoyNDMzOmludCBtbHg1X2NtZF9pbml0KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTI0MzQte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTI0NTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjI0NTQ6dm9pZCBtbHg1X2NtZF9jbGVhbnVwKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTI0NTUte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTI0NjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjI0NjI6aW50IG1seDVfY21kX2VuYWJsZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yNDYzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yNTQ3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoyNTQ4OnZvaWQgbWx4NV9jbWRfZGlzYWJsZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yNTQ5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yNTU5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoyNTYwOnZvaWQgbWx4NV9jbWRfc2V0X3N0YXRlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTI1NjEtXFx0XFx0XFx0ZW51bSBtbHg1X2NtZGlmX3N0YXRlIGNtZGlmX3N0YXRlKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTI1NjUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjI1NjY6aW50IG1seDVfY21kX2FkZF9wcml2aWxlZ2VkX3VpZChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1MTYgdWlkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yNTY3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz0yNTcxPUVYUE9SVF9TWU1CT0wobWx4NV9jbWRfYWRkX3ByaXZpbGVnZWRfdWlkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjU3Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MjU3Mzp2b2lkIG1seDVfY21kX3JlbW92ZV9wcml2aWxlZ2VkX3VpZChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1MTYgdWlkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yNTc0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jcS5jPTEwMD1zdGF0aWMgdm9pZCBtbHg1X2NvcmVfY3FfZHVtbXlfY2Ioc3RydWN0IG1seDVfY29yZV9jcSAqY3EsIHN0cnVjdCBtbHg1X2VxZSAqZXFlKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmMtMTA3LS8qIENhbGxlcnMgbXVzdCB2ZXJpZnkgb3V0Ym94IHN0YXR1cyBpbiBjYXNlIG9mIGVyciAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jcS5jOjEwODppbnQgbWx4NV9jcmVhdGVfY3Eoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfY29yZV9jcSAqY3EsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmMtMTA5LVxcdFxcdCAgIHUzMiAqaW4sIGludCBpbmxlbiwgdTMyICpvdXQsIGludCBvdXRsZW4pXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY3EuYz0xNzg9RVhQT1JUX1NZTUJPTChtbHg1X2NyZWF0ZV9jcSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY3EuYy0xODAtLyogb3Vib3ggaXMgY2hlY2tlZCBhbmQgZXJyIHZhbCBpcyBub3JtYWxpemVkICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmM6MTgxOmludCBtbHg1X2NvcmVfY3JlYXRlX2NxKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X2NvcmVfY3EgKmNxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jcS5jLTE4Mi1cXHRcXHRcXHR1MzIgKmluLCBpbnQgaW5sZW4sIHUzMiAqb3V0LCBpbnQgb3V0bGVuKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmM9MTg4PUVYUE9SVF9TWU1CT0wobWx4NV9jb3JlX2NyZWF0ZV9jcSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmMtMTg5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jcS5jOjE5MDppbnQgbWx4NV9jb3JlX2Rlc3Ryb3lfY3Eoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfY29yZV9jcSAqY3EpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmMtMTkxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jcS5jPTIxMz1FWFBPUlRfU1lNQk9MKG1seDVfY29yZV9kZXN0cm95X2NxKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY3EuYy0yMTQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmM6MjE1OmludCBtbHg1X2NvcmVfcXVlcnlfY3Eoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfY29yZV9jcSAqY3EsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmMtMjE2LVxcdFxcdCAgICAgICB1MzIgKm91dClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jcS5jPTIyND1FWFBPUlRfU1lNQk9MKG1seDVfY29yZV9xdWVyeV9jcSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmMtMjI1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jcS5jOjIyNjppbnQgbWx4NV9jb3JlX21vZGlmeV9jcShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBzdHJ1Y3QgbWx4NV9jb3JlX2NxICpjcSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY3EuYy0yMjctXFx0XFx0XFx0dTMyICppbiwgaW50IGlubGVuKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmM9MjM1PUVYUE9SVF9TWU1CT0wobWx4NV9jb3JlX21vZGlmeV9jcSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmMtMjM2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jcS5jOjIzNzppbnQgbWx4NV9jb3JlX21vZGlmeV9jcV9tb2RlcmF0aW9uKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmMtMjM4LVxcdFxcdFxcdFxcdCAgIHN0cnVjdCBtbHg1X2NvcmVfY3EgKmNxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYz05Nj12b2lkIG1seDVfdW5yZWdpc3Rlcl9kZWJ1Z2ZzKHZvaWQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTEwMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jOjEwMTpzdHJ1Y3QgZGVudHJ5ICptbHg1X2RlYnVnZnNfZ2V0X2Rldl9yb290KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy0xMDIte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYz0xMDU9RVhQT1JUX1NZTUJPTChtbHg1X2RlYnVnZnNfZ2V0X2Rldl9yb290KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTEwNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jOjEwNzp2b2lkIG1seDVfcXBfZGVidWdmc19pbml0KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy0xMDgte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYz0xMTE9RVhQT1JUX1NZTUJPTChtbHg1X3FwX2RlYnVnZnNfaW5pdCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy0xMTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYzoxMTM6dm9pZCBtbHg1X3FwX2RlYnVnZnNfY2xlYW51cChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtMTE0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM9MTE3PUVYUE9SVF9TWU1CT0wobWx4NV9xcF9kZWJ1Z2ZzX2NsZWFudXApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtMTE4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM6MTE5OnZvaWQgbWx4NV9lcV9kZWJ1Z2ZzX2luaXQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTEyMC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTEyMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jOjEyNDp2b2lkIG1seDVfZXFfZGVidWdmc19jbGVhbnVwKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy0xMjUte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYz0yMDI9bWx4NV9jbWRpZl9hbGxvY19zdGF0cyhzdHJ1Y3QgeGFycmF5ICpzdGF0c194YSwgaW50IG9wY29kZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtMjE4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM6MjE5OnZvaWQgbWx4NV9jbWRpZl9kZWJ1Z2ZzX2luaXQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTIyMC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTI1OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jOjI1OTp2b2lkIG1seDVfY21kaWZfZGVidWdmc19jbGVhbnVwKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy0yNjAte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy0yNjktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYzoyNzA6dm9pZCBtbHg1X2NxX2RlYnVnZnNfaW5pdChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtMjcxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtMjc0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM6Mjc1OnZvaWQgbWx4NV9jcV9kZWJ1Z2ZzX2NsZWFudXAoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTI3Ni17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTI3OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jOjI4MDp2b2lkIG1seDVfcGFnZXNfZGVidWdmc19pbml0KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy0yODEte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy0yOTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYzoyOTQ6dm9pZCBtbHg1X3BhZ2VzX2RlYnVnZnNfY2xlYW51cChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtMjk1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtMjk4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM6Mjk5OnZvaWQgbWx4NV9wYWdlc19ieV9mdW5jX3R5cGVfZGVidWdmc19pbml0KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy0zMDAte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy0zMjItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYzozMjM6dm9pZCBtbHg1X3BhZ2VzX2J5X2Z1bmNfdHlwZV9kZWJ1Z2ZzX2NsZWFudXAoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTMyNC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTMzNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jOjMzNzpzdGF0aWMgdTY0IHFwX3JlYWRfZmllbGQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfY29yZV9xcCAqcXAsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy0zMzgtXFx0XFx0XFx0IGludCBpbmRleCwgaW50ICppc19zdHIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTQxNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jOjQxNzpzdGF0aWMgdTY0IGVxX3JlYWRfZmllbGQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfZXEgKmVxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtNDE4LVxcdFxcdFxcdCBpbnQgaW5kZXgpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTQ1Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jOjQ1NzpzdGF0aWMgdTY0IGNxX3JlYWRfZmllbGQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfY29yZV9jcSAqY3EsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy00NTgtXFx0XFx0XFx0IGludCBpbmRleClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM9NTMyPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGZvcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTUzNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jOjUzODpzdGF0aWMgaW50IGFkZF9yZXNfdHJlZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBlbnVtIGRiZ19yc2NfdHlwZSB0eXBlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtNTM5LVxcdFxcdFxcdHN0cnVjdCBkZW50cnkgKnJvb3QsIHN0cnVjdCBtbHg1X3JzY19kZWJ1ZyAqKmRiZyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM9NTY2PXN0YXRpYyB2b2lkIHJlbV9yZXNfdHJlZShzdHJ1Y3QgbWx4NV9yc2NfZGVidWcgKmQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTU3MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jOjU3MjppbnQgbWx4NV9kZWJ1Z19xcF9hZGQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfY29yZV9xcCAqcXApXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy01NzMte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYz01ODc9RVhQT1JUX1NZTUJPTChtbHg1X2RlYnVnX3FwX2FkZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy01ODgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYzo1ODk6dm9pZCBtbHg1X2RlYnVnX3FwX3JlbW92ZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBzdHJ1Y3QgbWx4NV9jb3JlX3FwICpxcClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTU5MC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jPTU5Nz1FWFBPUlRfU1lNQk9MKG1seDVfZGVidWdfcXBfcmVtb3ZlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTU5OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jOjU5OTppbnQgbWx4NV9kZWJ1Z19lcV9hZGQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfZXEgKmVxKVxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQxODoxMjoyMS4zNDM5MDY1NjFaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTU5MDg3MzcxODUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBSZWFjaGFiaWxpdHkgb2YgTWVsbGFub3ggbWx4NSBDb2RlIGluIFZpcnR1YWxpemVkIEVudmlyb25tZW50cyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIHRyeWluZyB0byBkZXRlcm1pbmUgaWYgaXQncyB3b3J0aCBmdXp6aW5nLiBUaGUgcHJvbXB0IHNheXMgdG8gcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgIGlmIHRoZSBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLCBldmVuIHdpdGggc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBjYW4gc3l6a2FsbGVyJ3MgUENJIGZ1enplciBnZXQgdG8gdGhpcyBgbWx4NWAgY29kZT8gSSBrbm93IHN5emthbGxlciBoYXMgYSBQQ0kgZnV6emVyIHRoYXQgY2FuIHByb2JlIGFueSBQQ0kgZHJpdmVyLiBNZWxsYW5veCBtbHg1IGlzLCBvZiBjb3Vyc2UsIGEgUENJIGRldmljZS4gU28sIGlmIHN5emthbGxlciBjYW4gcmVhY2ggaXQgd2l0aCBpdHMgUENJIGZ1enplciwgdGhlbiBpdCdzIHJlYWNoYWJsZSwgcmlnaHQ/IEJ1dCB0aGUgd29yZGluZyBcImV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmVcIiBnaXZlcyBtZSBwYXVzZSwgYmVjYXVzZSBzeXprYWxsZXIncyBQQ0kgZnV6emVyICppcyogZW11bGF0aW5nIFBDSSBkZXZpY2VzLlxuXG5UaGUgYXV0aG9yIGlzIGxpc3RlZCBhcyBgc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VgLCB3aGljaCBzY3JlYW1zIHN5emthbGxlciBidWcsIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIGlmIHN5emthbGxlciBmb3VuZCB0aGlzIGJ1ZyBhbmQgaG93LiBJZiBzeXprYWxsZXIgZm91bmQgaXQsIHRoZW4gaXQgY2FuIHJlYWNoIGl0LiBNeSBmaXJzdCB0aG91Z2h0IGlzIHVwc3RyZWFtIHN5emJvdCBydW5zIG9uIEdDRS4gU28gaWYgc3l6a2FsbGVyIGZvdW5kIGl0LCB0aGVuIGl0IGlzIHJlYWNoYWJsZSBpbiBHQ0UuIEhvd2V2ZXIsIHdoYXQgaWYgaXQgd2FzIGZvdW5kIG9uIGJhcmUgbWV0YWwgYW5kIHRoZW4gYmFja3BvcnRlZD8gSSBrbm93IHN5emJvdCB1cHN0cmVhbSBpcyBtb3N0bHkgR0NFLCBidXQgaXQgKmRvZXMqIHRlc3QgaW4gb3RoZXIgZW52aXJvbm1lbnRzLCBjb3JyZWN0PyBObywgc3l6Ym90IHVwc3RyZWFtIGlzIEdDRS4gU28gdGhlbiwgdGhpcyBtdXN0IGJlIGEgY3VzdG9tIHN5emthbGxlciBpbnN0YW5jZS5cblxuTm93IEkgbmVlZCB0byBhc3Nlc3Mgd2hldGhlciB0aGUgUENJIGZ1enplciBpcyBjYXBhYmxlIG9mIHJlYWNoaW5nIHRoaXMgc3BlY2lmaWMgY29kZS4gYG1seDVlX3RjX2NsZWFuX2ZkYl9wZWVyX2Zsb3dzYCBpcyBwYXJ0IG9mIHRoZSBFdGhlcm5ldCBkcml2ZXIsIGBlbl90Yy5jYC4gVG8gaGl0IHRoaXMsIHRoZSBtbHg1IGNvcmUgZGV2aWNlIG11c3QgYmUgaW5pdGlhbGl6ZWQsIHRoZSBldGhlcm5ldCBuZXRkZXYgbXVzdCBiZSByZWdpc3RlcmVkLCBhbmQgdGhlbiBUQyBydWxlcyBtdXN0IGJlIGNvbmZpZ3VyZWQuIEluaXRpYWxpemluZyB0aGUgbWx4NSBjb3JlIGludm9sdmVzIGNvbXBsZXggZmlybXdhcmUgY29tbWFuZHMsIGNvbW1hbmQgcXVldWVzLCBhbmQgZXZlbnQgcXVldWVzLiBUaGUgUENJIGZ1enplciBqdXN0IHRocm93cyByYW5kb20gZGF0YSBhdCB0aGUgZGV2aWNlLiBJdCdzIGhpZ2hseSB1bmxpa2VseSB0aGF0IHRoZSBQQ0kgZnV6emVyIGNhbiBzdWNjZXNzZnVsbHkgaW5pdGlhbGl6ZSBhbGwgdGhhdC5cblxuU28gaWYgaXQncyB1bmxpa2VseSwgaG93IGRpZCBzeXprYWxsZXIgZmluZCBpdD8gV2FpdCwgY291bGQgdGhpcyBiZSBhIG1hbnVhbCBwYXRjaCwgc3VibWl0dGVkIGJ5IGEgdXNlciBmb3IgdGVzdGluZyBieSBzeXpib3Q/IE9oLCB0aGUgY29tbWl0IG1lc3NhZ2Ugc2F5cyBcInN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1wiLiBBaGEhIFRoYXQgbWVhbnMgaXQgKmlzKiBhIHVzZXItc3VibWl0dGVkIHBhdGNoIHRlc3RlZCBieSBzeXpib3QuIElmIHN5emJvdCB0ZXN0ZWQgaXQsIHRoZW4gdGhlIGJ1ZyB3YXMgbGlrZWx5IGZvdW5kIGluIHRoZSBlbnZpcm9ubWVudCBpbiB3aGljaCBzeXpib3QgdGVzdHMuXG5cbkJhY2sgdG8gdGhlIG9yaWdpbmFsIHByb2JsZW06IElzIG1seDUgcmVhY2hhYmxlIGluIEdDRS9RRU1VPyBJZiBpdCBpc24ndCwgSSBzaG91bGQgcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiB0aGVyZSdzIGFueSBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIG1seDUuIEkgd2lsbCBzZWFyY2ggYGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9gIGZvciBhIGR1bW15IG9yIG1vY2sgZHJpdmVyLiBMZXQncyBzZWUuLi4gbm90aGluZyBpbW1lZGlhdGVseSBzdGFuZHMgb3V0LiBJIGRpZG4ndCBmaW5kIGFueSBzb2Z0d2FyZSBlbXVsYXRvcnMgZm9yIG1seDUgd2hlbiBncmVwcGluZyBmb3IgYG1vY2tgIGFuZCBgc2ltYC4gVGhlcmVmb3JlLCBJJ20gdGhpbmtpbmcgdGhlIGNvZGUgaXMgbm90IHJlYWNoYWJsZSBpbiBHQ0UvUUVNVSwgYW5kIEkgbmVlZCB0byByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUzMzAzLCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTE2MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQxODoxMjozNy4yNTI2NDcyNzZaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE3NTIxMzAwMywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkdW1teVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jcS5jPTk4PUVYUE9SVF9TWU1CT0wobWx4NV9hZGRfY3FfdG9fdGFza2xldCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmMtOTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmM6MTAwOnN0YXRpYyB2b2lkIG1seDVfY29yZV9jcV9kdW1teV9jYihzdHJ1Y3QgbWx4NV9jb3JlX2NxICpjcSwgc3RydWN0IG1seDVfZXFlICplcWUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmMtMTAxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jcS5jPTEwOD1pbnQgbWx4NV9jcmVhdGVfY3Eoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfY29yZV9jcSAqY3EsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY3EuYy0xNDMtXFx0aWYgKCFjcS1cXHUwMDNlY29tcClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY3EuYzoxNDQ6XFx0XFx0Y3EtXFx1MDAzZWNvbXAgPSBtbHg1X2NvcmVfY3FfZHVtbXlfY2I7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmMtMTQ1LVxcdC8qIGFzc3VtaW5nIENRIHdpbGwgYmUgZGVsZXRlZCBiZWZvcmUgdGhlIEVRICovXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vc2VscS5jPTI3PWludCBtbHg1ZV9zZWxxX2luaXQoc3RydWN0IG1seDVlX3NlbHEgKnNlbHEsIHN0cnVjdCBtdXRleCAqc3RhdGVfbG9jaylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9zZWxxLmMtNDItXFx0fVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9zZWxxLmM6NDM6XFx0LyogQXNzaWduIGR1bW15IHZhbHVlcywgc28gdGhhdCBtbHg1ZV9zZWxlY3RfcXVldWUgd29uJ3QgY3Jhc2guICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3NlbHEuYy00NC1cXHQqaW5pdF9wYXJhbXMgPSAoc3RydWN0IG1seDVlX3NlbHFfcGFyYW1zKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvaXBvaWIvaXBvaWJfdmxhbi5jPTI4NT1zdGF0aWMgaW50IG1seDVpX3BrZXlfaW5pdChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9pcG9pYi9pcG9pYl92bGFuLmMtMzAwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9pcG9pYi9pcG9pYl92bGFuLmM6MzAxOlxcdC8qIFVzZSBkdW1teSBycXMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvaXBvaWIvaXBvaWJfdmxhbi5jLTMwMi1cXHRwcml2LVxcdTAwM2VjaGFubmVscy5wYXJhbXMubG9nX3JxX210dV9mcmFtZXMgPSBNTFg1RV9QQVJBTVNfTUlOSU1VTV9MT0dfUlFfU0laRTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM9MjI2PWludCBtbHg1aHdzX2J3Y19tYXRjaGVyX2NyZWF0ZV9zaW1wbGUoc3RydWN0IG1seDVod3NfYndjX21hdGNoZXIgKmJ3Y19tYXRjaGVyLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy0yNjAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYzoyNjE6XFx0LyogY3JlYXRlIGR1bW15IGFjdGlvbiB0ZW1wbGF0ZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtMjYyLVxcdGJ3Y19tYXRjaGVyLVxcdTAwM2VhdFswXSA9XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jPTg0Mj1od3NfYndjX21hdGNoZXJfZmluZF9hdChzdHJ1Y3QgbWx4NWh3c19id2NfbWF0Y2hlciAqYndjX21hdGNoZXIsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jLTg0Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jOjg0ODpcXHQvKiBzdGFydCBmcm9tIGluZGV4IDEgLSBmaXJzdCBhY3Rpb24gdGVtcGxhdGUgaXMgYSBkdW1teSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtODQ5LVxcdGZvciAoaSA9IDE7IGkgXFx1MDAzYyBid2NfbWF0Y2hlci1cXHUwMDNlbnVtX29mX2F0OyBpKyspIHtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTg6MTI6MzcuNDI3ODY4NjY4WiIsIlNlcSI6MTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjk5MTIyNDY3NzEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBGZWFzaWJpbGl0eSBvZiBGdXp6aW5nIGEgTWVsbGFub3ggU3ViZnVuY3Rpb24gUGF0Y2gqKlxuXG5Pa2F5LCBJIHNlZSB0aGVzZSBrZXJuZWwgY29uZmlncywgYENPTkZJR19NTFg1X1NGYCBhbmQgYENPTkZJR19NTFg1X1NGX01BTkFHRVJgLCB3aGljaCBzdWdnZXN0IHdlJ3JlIGRlYWxpbmcgd2l0aCBNZWxsYW5veCBzdWJmdW5jdGlvbnMuIFRoZSBkZXNjcmlwdGlvbiBzYXlzIHRoZXkncmUgbGlrZSBTUklPViBWRnMsIGJ1dCB3aXRob3V0IHRoZSBTUklPViByZXF1aXJlbWVudC4gSSBpbW1lZGlhdGVseSB3b25kZXI6IGNhbiBzdWJmdW5jdGlvbnMgKmV4aXN0KiBpbiBhIHB1cmVseSB2aXJ0dWFsIGVudmlyb25tZW50PyBNeSB1bmRlcnN0YW5kaW5nIGlzIHRoZXkncmUgYnVpbHQgb24gdG9wIG9mIHBoeXNpY2FsIE1lbGxhbm94IGhhcmR3YXJlLlxuXG5UaGVuIHRoZSB0aG91Z2h0IHN0cmlrZXM6IHdoYXQgaWYgc3l6a2FsbGVyICppcyogcnVubmluZyBvbiBhIEdDRSBpbnN0YW5jZSB0aGF0ICpkb2VzKiBoYXZlIGEgTWVsbGFub3ggY2FyZD8gSSBuZWVkIHRvIHJlbWVtYmVyIGhvdyBHQ0UgaW5zdGFuY2VzIGFyZSB0eXBpY2FsbHkgY29uZmlndXJlZC4gSSBrbm93IHRoZXkgY2FuIHVzZSBcIkdvb2dsZSBWaXJ0dWFsIE5JQ1wiIG9yIFwidmlydGlvLW5ldFwiLiBBbmQgSSByZWNhbGwgbG9jYWwgU1NEcyAoTlZNZSkgYW5kIEdQVXMgYXJlIGFsc28gb3B0aW9ucy4gQnV0IGRvIHN0YW5kYXJkIEdDRSBpbnN0YW5jZXMgaW5jbHVkZSBNZWxsYW5veCBjYXJkcz9cblxuQWhhISBJIHJlbWVtYmVyIHRoYXQgc29tZSBoaWdoLXBlcmZvcm1hbmNlIEdDRSBpbnN0YW5jZXMgZG8gdXNlIE1lbGxhbm94IENvbm5lY3RYIGNhcmRzLCBzcGVjaWZpY2FsbHkgdGhlIENvbm5lY3RYLTYgb3IgQ29ubmVjdFgtNyBtb2RlbHMgZm9yIFRpZXIgMSBuZXR3b3JraW5nIG9yIEEzL0EyIFZNcy4gQnV0IHN5emthbGxlciBWTXMgYXJlIHVzdWFsbHkganVzdCBzdGFuZGFyZCBzbWFsbCBvbmVzIGxpa2UgYG4xLXN0YW5kYXJkLTJgIG9yIGBlMi1zdGFuZGFyZC0yYCBhbmQgc28gYXJlIHByb2JhYmx5IHVzaW5nIGB2aXJ0aW8tbmV0YCBvciBgZ3ZlYCAuIFNvLCBubyBNZWxsYW5veCBoYXJkd2FyZSBmb3IgdGhlIHN0YW5kYXJkIHN5emthbGxlciBzZXR1cC5cblxuT2theSwgc28gc3l6a2FsbGVyICpkb2Vzbid0KiB0eXBpY2FsbHkgaGF2ZSBNZWxsYW5veCBoYXJkd2FyZSBpbiBpdHMgZGVmYXVsdCBHQ0UgVk1zLiBOb3cgSSdtIHRoaW5raW5nLCBob3cgY291bGQgdGhpcyBwYXRjaCBiZSB0ZXN0ZWQ/IE1heWJlIHRoaXMgaXMgYSBidWcgYSB1c2VyIHJlcG9ydGVkIGFuZCBzdWJtaXR0ZWQgdG8gc3l6Ym90LiBJZiB0aGUgdXNlciBzdWJtaXR0ZWQgYSBwYXRjaCwgc3l6Ym90IHdpbGwgdHJ5IHRvIHRlc3QgaXQuIElmIHN5emJvdCBkb2Vzbid0IGhhdmUgdGhlIGhhcmR3YXJlLCB0aGUgdGVzdCB3aWxsIGNvbXBpbGUgYW5kIHJ1biwgYnV0IGxpa2VseSB3b24ndCBldmVuICp0b3VjaCogdGhlIGNvZGUuIEl0IGlzIHVubGlrZWx5IHRoaXMgd2lsbCByZWFjaCB0aGUgTWVsbGFub3ggY29kZS5cblxuVGhlbiBJIHJlY2FsbCB0aGUgY29yZSBxdWVzdGlvbi4gSWYgdGhlIGNvZGUgaXMgdW5yZWFjaGFibGUgaW4gR0NFL1FFTVUsIEkgbmVlZCB0byBmbGFnIGl0IGFzIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBJIG5lZWQgdG8gcmVyZWFkIHRoZSBwcm9tcHQuXG5cbkxldCdzIHNlZTogXCJSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zLi4uIGNvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVS4uLlwiXG5cbklzIHRoaXMgbWx4NSBjb2RlIHJlYWNoYWJsZSBpbiBHQ0UvUUVNVT8gSWYgdGhlcmUncyBubyBzb2Z0d2FyZSBlbXVsYXRvciBmb3IgbWx4NSwgYW5kIHRoZSBQQ0kgZnV6emVyIGNhbid0IHJlYWxpc3RpY2FsbHkgZ2V0IGRlZXAgaW50byB0aGUgZHJpdmVyICh0aGluayByZWdpc3RlcmluZyBhIG5ldGRldiBhbmQgY29uZmlndXJpbmcgVEMgcnVsZXMpLCB0aGVuIGl0IGlzIGltcG9zc2libGUgdG8gcmVhY2guIEl0IG5lZWRzIG1vcmUgdGhhbiBzaW1wbGUgUENJIHJlYWRzL3dyaXRlcyBiZWNhdXNlIG9mIGNvbXBsZXggZmlybXdhcmUgaW50ZXJhY3Rpb25zLlxuXG5Ob3csIGRvZXMgdGhlIFBDSSBmdXp6ZXIgZXZlbiAqcmVhY2gqIHRoaXM/IEkgbmVlZCB0byBxdWlja2x5IGNoZWNrIGlmIHRoZXJlJ3MgYW55IGBzeXpfcGNpX2VwYCBjb2RlIHNwZWNpZmljYWxseSBlbXVsYXRpbmcgbWx4NS4gSSBuZWVkIHRvIGJlIHN1cmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU2MzA1LCJPdXRwdXRUb2tlbnMiOjMwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTc5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDE4OjEyOjQ3LjM0MDExOTk1WiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxODc2ODY5MDIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibWx4NVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJ0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwidG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvZHJpdmVycy9uZXQvaHcvZGV2bGlua19yYXRlX3RjX2J3LnB5PTM1PUJhbmR3aWR0aCBEaXN0cmlidXRpb246XFxuLS1cXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9kcml2ZXJzL25ldC9ody9kZXZsaW5rX3JhdGVfdGNfYncucHktNDEtXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvZHJpdmVycy9uZXQvaHcvZGV2bGlua19yYXRlX3RjX2J3LnB5OjQyOkhhcmR3YXJlLVNwZWNpZmljIEJlaGF2aW9yIChtbHg1KTpcXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9kcml2ZXJzL25ldC9ody9kZXZsaW5rX3JhdGVfdGNfYncucHktNDMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9kcml2ZXJzL25ldC9ody9kZXZsaW5rX3JhdGVfdGNfYncucHk6NDQ6bWx4NSBoYXJkd2FyZSBlbmZvcmNlcyB0cmFmZmljIGNsYXNzIHNlcGFyYXRpb24gYnkgZW5zdXJpbmcgdGhhdCBlYWNoIHRyYW5zbWl0XFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvZHJpdmVycy9uZXQvaHcvZGV2bGlua19yYXRlX3RjX2J3LnB5LTQ1LXF1ZXVlIChTUSkgaXMgYXNzb2NpYXRlZCB3aXRoIGEgc2luZ2xlIFRDLiBJZiBhIHBhY2tldCBpcyBzZW50IG9uIGEgcXVldWUgdGhhdFxcbi0tXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvZHJpdmVycy9uZXQvaHcvZGV2bGlua19yYXRlX3RjX2J3LnB5PTM4OD1kZWYgdGVzdF9ub190Y19tYXBwaW5nX2JhbmR3aWR0aChjZmcpOlxcbi0tXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvZHJpdmVycy9uZXQvaHcvZGV2bGlua19yYXRlX3RjX2J3LnB5LTM5My0gICAgZmFpbF9id19tc2cgPSBcXFwiQmFuZHdpZHRoIG1hdGNoZWQgMjAvODAgc3BsaXQgd2l0aG91dCBUQyBtYXBwaW5nXFxcIlxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2RyaXZlcnMvbmV0L2h3L2RldmxpbmtfcmF0ZV90Y19idy5weTozOTQ6ICAgIGlzX21seDUgPSBcXFwiZHJpdmVyOiBtbHg1XFxcIiBpbiBldGh0b29sKGZcXFwiLWkge2NmZy5pZm5hbWV9XFxcIikuc3Rkb3V0XFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvZHJpdmVycy9uZXQvaHcvZGV2bGlua19yYXRlX3RjX2J3LnB5LTM5NS1cXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9kcml2ZXJzL25ldC9ody9kZXZsaW5rX3JhdGVfdGNfYncucHktMzk2LSAgICBpZiBydW5fYmFuZHdpZHRoX2Rpc3RyaWJ1dGlvbl90ZXN0KGNmZywgc2V0X3RjX21hcHBpbmc9RmFsc2UpOlxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2RyaXZlcnMvbmV0L2h3L2RldmxpbmtfcmF0ZV90Y19idy5weTozOTc6ICAgICAgICBpZiBpc19tbHg1OlxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2RyaXZlcnMvbmV0L2h3L2RldmxpbmtfcmF0ZV90Y19idy5weS0zOTgtICAgICAgICAgICAgcmFpc2UgS3NmdFhmYWlsRXgoZmFpbF9id19tc2cpXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvZHJpdmVycy9uZXQvaHcvZGV2bGlua19yYXRlX3RjX2J3LnB5LTM5OS0gICAgICAgIHJhaXNlIEtzZnRGYWlsRXgoZmFpbF9id19tc2cpXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvZHJpdmVycy9uZXQvaHcvZGV2bGlua19yYXRlX3RjX2J3LnB5OjQwMDogICAgaWYgaXNfbWx4NTpcXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9kcml2ZXJzL25ldC9ody9kZXZsaW5rX3JhdGVfdGNfYncucHk6NDAxOiAgICAgICAgcmFpc2UgS3NmdEZhaWxFeChcXFwibWx4NSBiZWhhdmlvciBjaGFuZ2VkOlxcXCIgKyBwYXNzX2J3X21zZylcXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9kcml2ZXJzL25ldC9ody9kZXZsaW5rX3JhdGVfdGNfYncucHktNDAyLSAgICBrc2Z0X3ByKHBhc3NfYndfbXNnKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQxODoxMjo0Ny41Mjc4MTYxOTFaIiwiU2VxIjoyMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTQ2NDc4Nzg5MjIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqVW5mdXp6YWJsZSBDb2RlIFBhdGggQXNzZXNzbWVudCoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCB0aGVyZSdzIG5vIHNvZnR3YXJlIGVtdWxhdG9yIGZvciBtbHg1LCB3aGljaCBpbW1lZGlhdGVseSBmbGFncyBpdCBhcyBhIHBvdGVudGlhbCBkZWFkIGVuZCBmb3Igc3RhbmRhcmQgZnV6emluZy4gQnV0IHdhaXQsIHdoYXQgYWJvdXQgdGhlIFBDSSBmdXp6ZXI/IENvdWxkIGl0ICpzb21laG93KiByZWFjaCBpdD8gSWYgdGhlcmUncyBhIHBvc3NpYmlsaXR5LCBJIGhhdmUgdG8ganVzdGlmeSBpdC5cblxuSWYgSSdtIHNheWluZyBcIldvcnRoRnV6emluZz10cnVlLFwiIHRoZW4gSSBuZWVkIHRvIHByb3ZpZGUgYEZvY3VzU3ltYm9sc2AgYW5kIGBFbmFibGVDb25maWdzYC4gSWYgaXQncyBcIldvcnRoRnV6emluZz1mYWxzZSxcIiB0aGUgcmVhc29uaW5nIGhhcyB0byBiZSBhaXJ0aWdodC4gVGhlIGluaXRpYWwgcmVhc29uaW5nIGlzOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWVsbGFub3ggbWx4NSBoYXJkd2FyZSBkcml2ZXIuIFNpbmNlIG1seDUgcmVxdWlyZXMgcGh5c2ljYWwgTWVsbGFub3ggaGFyZHdhcmUgYW5kIHRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdG9yIGZvciBpdCBpbiB0aGUga2VybmVsLCB0aGVzZSBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLlwiIFRoYXQgc291bmRzIHNvbGlkLCBidXQgbGV0J3MgZGVsdmUgZGVlcGVyLlxuXG5Eb2VzIFN5emthbGxlciBldmVuIHRyeSB0byBmdXp6IG1seDU/IEl0IGhhcyBhIGBzeXpfcGNpX2VwYCBmdXp6ZXIuIEl0IGNvdWxkIGJlIGEgcG9zc2liaWxpdHkuIExldCdzIHNlZSBpZiBzeXprYWxsZXIgaGFzIGZvdW5kIGFueXRoaW5nLiBJIGNhbid0IGRvIGEgZGlyZWN0IHNlYXJjaCBvZiB0aGUgU3l6a2FsbGVyIGRhc2hib2FyZCwgYnV0IEkgY2FuIG1ha2UgYW4gZWR1Y2F0ZWQgZ3Vlc3MuIENvbXBsZXggbmV0d29yayBkcml2ZXJzIG9mdGVuIHJlcXVpcmUgZmlybXdhcmUgaW50ZXJhY3Rpb24uIFdoaWxlIHRoZSBQQ0kgZnV6emVyIG1pZ2h0IHRyaWdnZXIgc29tZSBlYXJseSBwcm9iZSBjb2RlLCBoaXR0aW5nIGNvZGUgcGF0aHMgbGlrZSBgbWx4NWVfdGNfY2xlYW5fZmRiX3BlZXJfZmxvd3NgIGlzIGhpZ2hseSB1bmxpa2VseS4gVGhhdCBmdW5jdGlvbiBuZWVkcyBhIHJlZ2lzdGVyZWQgbmV0ZGV2LCBlLXN3aXRjaCBlbmFibGVkLCBhbmQgVEMgcnVsZXMgc2V0IHVwIOKAkyBlc3NlbnRpYWxseSwgYSBmdWxseSBmdW5jdGlvbmFsIG1seDUgZW52aXJvbm1lbnQgd2hpY2gganVzdCB3b3VsZG4ndCBiZSBwb3NzaWJsZSB3aXRoIGEgZ2VuZXJpYyBQQ0kgZnV6emVyLlxuXG5Pa2F5LCBsZXQncyBleGFtaW5lIHRoZSBzcGVjaWZpYyBsb2NhdGlvbnMgdGhhdCBhcmUgaW1wYWN0ZWQuIGBtbHg1X2xhZ19jcmVhdGVfc2luZ2xlX2ZkYl9maWx0ZXJgIGlzIGluIGBsYWcvc2hhcmVkX2ZkYi5jYC4gTEFHLCBvciBMaW5rIEFnZ3JlZ2F0aW9uLCBuZWVkcyBtdWx0aXBsZSBwaHlzaWNhbCBwb3J0cy4gYG1seDVfbXBlc3dfd29ya2AgaXMgaW4gYGxhZy9tcGVzdy5jYC4gVGhlc2UgYXJlIGRlZXAsIGhhcmR3YXJlLXNwZWNpZmljIGZlYXR1cmVzOiBNdWx0aS1Qb3J0IEUtU3dpdGNoLCBMaW5rIEFnZ3JlZ2F0aW9uLiBUaGVyZSdzIGFsbW9zdCB6ZXJvIGNoYW5jZSB0aGUgUENJIGZ1enplciBjYW4gcmVhY2ggdGhvc2Ugd2l0aG91dCBhIGRlZGljYXRlZCBlbXVsYXRvciwgd2hpY2ggZG9lc24ndCBleGlzdC4gVGhpcyBjb2RlIGlzIGVzc2VudGlhbGx5IHVucmVhY2hhYmxlIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuXG5cbk5vdywgbGV0IG1lIGRvdWJsZSBjaGVjayB0aGUgU3l6a2FsbGVyIGNvbmZpZy4gRG9lcyBTeXprYWxsZXIgZW5hYmxlIGBDT05GSUdfTUxYNV9DT1JFYD8gWWVzLCBpdCBkb2VzLiBJdCdzIGZ1enppbmcgdGhlIHByb2JlIGZ1bmN0aW9uLiBCdXQsIHRoZSBwcm9tcHQgaXMgZXhwbGljaXQ6IFwiUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWlucyBjb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUuXCJcblxuTWx4NSBpcyBhIHBoeXNpY2FsIGhhcmR3YXJlIGRyaXZlciwgdGhlcmUgaXMgbm8gYG1seDVfc2ltYCBvciBzaW1pbGFyIHNvZnR3YXJlIGVtdWxhdG9yLCBzbyB0aGVzZSBUQyBmbG93cywgTEFHLCBhbmQgTVBFU1cgbW9kaWZpY2F0aW9ucyB3aWxsIGJlIHVuYWNoaWV2YWJsZSBpbiBHQ0UvUUVNVS5cblxuVGhlIHJlYXNvbmluZyBuZWVkcyB0byBiZSBjbGVhciwgc28gaGVyZSBpdCBpczogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lbGxhbm94IG1seDUgaGFyZHdhcmUgZHJpdmVyLCBzcGVjaWZpY2FsbHkgZGVlcCBsb2dpYyByZWxhdGVkIHRvIFRDIGZsb3dzLCBMaW5rIEFnZ3JlZ2F0aW9uIChMQUcpLCBhbmQgTXVsdGktUG9ydCBFLVN3aXRjaCAoTVBFU1cpLiBTaW5jZSBtbHg1IHJlcXVpcmVzIHBoeXNpY2FsIE1lbGxhbm94IGhhcmR3YXJlIGFuZCB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRvciBmb3IgaXQgaW4gdGhlIGtlcm5lbCwgdGhlc2UgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVS5cIlxuXG5Ib2xkIG9uLCB3aGF0IGFib3V0IGEgdmlydHVhbCBkZXZpY2UgdGhhdCB1c2VzIHRoaXMgY29kZT8gTWF5YmUgYG5ldGRldnNpbWA/IE5vLCB0aGF0J3MgYSBjb21wbGV0ZWx5IHNlcGFyYXRlIGRyaXZlci4gQ291bGQgaXQgYmUgdXNlZCB3aXRoIHZkcGE/IGB2ZHBhYCBoYXMgYG1seDVfdmRwYWAsIGJ1dCBpdCAqc3RpbGwqIG5lZWRzIGEgcGh5c2ljYWwgbWx4NSBkZXZpY2UuIFdoYXQgYWJvdXQgdmZpbz8gWWVzLCBidXQgaXQgcmVxdWlyZXMgcGh5c2ljYWwgaGFyZHdhcmUgdG9vLlxuXG5UaGUgY29uY2x1c2lvbiBzdGFuZHMuIFRoaXMgcmVxdWlyZXMgcGh5c2ljYWwgaGFyZHdhcmUuXG5cbkxldCdzIGRvIGEgZmluYWwgcXVpY2sgcGF0Y2ggcmV2aWV3LiBGaWxlcyBtb2RpZmllZCBhcmU6IGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdGMuY2AsIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL21wZXN3LmNgLCBhbmQgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvc2hhcmVkX2ZkYi5jYC4gQWxsIHdpdGhpbiB0aGUgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9gIGRpcmVjdG9yeS4gWWVwLCB0aGF0IGNvbmZpcm1zIGl0OiBNZWxsYW5veCBDb25uZWN0WCBoYXJkd2FyZSBkcml2ZXIuXG5cbkkgd2lsbCBzZXQgYFdvcnRoRnV6emluZz1mYWxzZWAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU4MjYyLCJPdXRwdXRUb2tlbnMiOjExMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjk2MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQxODoxMzowMi4xNzU2OTgyNDRaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMjAxMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWVsbGFub3ggbWx4NSBoYXJkd2FyZSBkcml2ZXIsIHNwZWNpZmljYWxseSBkZWVwIGxvZ2ljIHJlbGF0ZWQgdG8gVEMgZmxvd3MsIExpbmsgQWdncmVnYXRpb24gKExBRyksIGFuZCBNdWx0aS1Qb3J0IEUtU3dpdGNoIChNUEVTVykuIFNpbmNlIG1seDUgcmVxdWlyZXMgcGh5c2ljYWwgTWVsbGFub3ggaGFyZHdhcmUgYW5kIHRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdG9yIGZvciBpdCBpbiB0aGUga2VybmVsLCB0aGVzZSBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lbGxhbm94IG1seDUgaGFyZHdhcmUgZHJpdmVyLCBzcGVjaWZpY2FsbHkgZGVlcCBsb2dpYyByZWxhdGVkIHRvIFRDIGZsb3dzLCBMaW5rIEFnZ3JlZ2F0aW9uIChMQUcpLCBhbmQgTXVsdGktUG9ydCBFLVN3aXRjaCAoTVBFU1cpLiBTaW5jZSBtbHg1IHJlcXVpcmVzIHBoeXNpY2FsIE1lbGxhbm94IGhhcmR3YXJlIGFuZCB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRvciBmb3IgaXQgaW4gdGhlIGtlcm5lbCwgdGhlc2UgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowztnwq[0].run-triage(0) Phase: Succeeded StartedAt: 2026-06-30 18:03:30 +0000 UTC FinishedAt: 2026-06-30 18:13:03 +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+CgkJCTx0ZD4yMDI2LzA2LzMwIDE4OjExPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWxsYW5veCBtbHg1IGhhcmR3YXJlIGRyaXZlciwgc3BlY2lmaWNhbGx5IGRlZXAgbG9naWMgcmVsYXRlZCB0byBUQyBmbG93cywgTGluayBBZ2dyZWdhdGlvbiAoTEFHKSwgYW5kIE11bHRpLVBvcnQgRS1Td2l0Y2ggKE1QRVNXKS4gU2luY2UgbWx4NSByZXF1aXJlcyBwaHlzaWNhbCBNZWxsYW5veCBoYXJkd2FyZSBhbmQgdGhlcmUgaXMgbm8gc29mdHdhcmUgZW11bGF0b3IgZm9yIGl0IGluIHRoZSBrZXJuZWwsIHRoZXNlIGNvZGUgcGF0aHMgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDE4OjExPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgYWIyZDg5ZmFhYWY2NzZiNDk5NDYyYWFlNDIwNzg3YzQzYzQwMzIwZlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgSnVuIDMwIDE4OjExOjE3IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90Yy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3RjLmNcbmluZGV4IDkxMDQ5MmViNTFmMjc2Li4xYmM3YjkwMTkxMjRhNCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90Yy5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdGMuY1xuQEAgLTU1NDcsNiAmIzQzOzU1NDcsOSBAQCB2b2lkIG1seDVlX3RjX2NsZWFuX2ZkYl9wZWVyX2Zsb3dzKHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdylcbiBcbiBcdG1seDVfZGV2Y29tX2Zvcl9lYWNoX3BlZXJfZW50cnkoZGV2Y29tLCBwZWVyX2VzdywgcG9zKSB7XG4gXHRcdGkgPSBtbHg1X2xhZ19nZXRfZGV2X3NlcShwZWVyX2Vzdy1cdTAwM2VkZXYpO1xuJiM0MztcdFx0aWYgKGkgXHUwMDNjIDApXG4mIzQzO1x0XHRcdGNvbnRpbnVlO1xuJiM0MztcbiBcdFx0bGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGZsb3csIHRtcCwgXHUwMDI2ZXN3LVx1MDAzZW9mZmxvYWRzLnBlZXJfZmxvd3NbaV0sIHBlZXJbaV0pXG4gXHRcdFx0bWx4NWVfdGNfZGVsX2ZkYl9wZWVyc19mbG93KGZsb3cpO1xuIFx0fVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvbXBlc3cuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvbXBlc3cuY1xuaW5kZXggNTBiZmI0NTBjNzFlMmYuLmFiZjcyMDI2Yzc1MTMzIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9tcGVzdy5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL21wZXN3LmNcbkBAIC0xOTQsOCAmIzQzOzE5NCwxMCBAQCBzdGF0aWMgdm9pZCBtbHg1X21wZXN3X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuIFx0c3RydWN0IG1seDVfbGFnICpsZGV2ID0gbXBlc3d3LVx1MDAzZWxhZztcbiBcbiBcdGRldmNvbSA9IG1seDVfbGFnX2dldF9kZXZjb21fY29tcChsZGV2KTtcbi1cdGlmICghZGV2Y29tKVxuLVx0XHRyZXR1cm47XG4mIzQzO1x0aWYgKCFkZXZjb20pIHtcbiYjNDM7XHRcdG1wZXN3dy1cdTAwM2VyZXN1bHQgPSAtRU5PREVWO1xuJiM0MztcdFx0Z290byBjb21wbGV0ZTtcbiYjNDM7XHR9XG4gXG4gXHRtbHg1X2RldmNvbV9jb21wX2xvY2soZGV2Y29tKTtcbiBcdG1seDVfbXBlc3dfc2RfZGV2Y29tc19sb2NrKGxkZXYpO1xuQEAgLTIxMyw2ICYjNDM7MjE1LDcgQEAgc3RhdGljIHZvaWQgbWx4NV9tcGVzd193b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbiBcdG11dGV4X3VubG9jayhcdTAwMjZsZGV2LVx1MDAzZWxvY2spO1xuIFx0bWx4NV9tcGVzd19zZF9kZXZjb21zX3VubG9jayhsZGV2KTtcbiBcdG1seDVfZGV2Y29tX2NvbXBfdW5sb2NrKGRldmNvbSk7XG4mIzQzO2NvbXBsZXRlOlxuIFx0Y29tcGxldGUoXHUwMDI2bXBlc3d3LVx1MDAzZWNvbXApO1xuIH1cbiBcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL3NoYXJlZF9mZGIuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvc2hhcmVkX2ZkYi5jXG5pbmRleCAxMTM4NjY0OTRkMTY0Yi4uNmI0YWQzYzUzZjJmMzMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL3NoYXJlZF9mZGIuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9zaGFyZWRfZmRiLmNcbkBAIC03OCw3ICYjNDM7NzgsNyBAQCBzdGF0aWMgaW50IG1seDVfbGFnX2NyZWF0ZV9zaW5nbGVfZmRiX2ZpbHRlcihzdHJ1Y3QgbWx4NV9sYWcgKmxkZXYsIHUzMiBmaWx0ZXIpXG4gXHR9XG4gXHRyZXR1cm4gMDtcbiBlcnI6XG4tXHRtbHg1X2xhZ19mb3JfZWFjaF9yZXZlcnNlKGosIGksIDAsIGxkZXYsIGZpbHRlcikge1xuJiM0MztcdG1seDVfbGFnX2Zvcl9lYWNoX3JldmVyc2UoaiwgaSAtIDEsIDAsIGxkZXYsIGZpbHRlcikge1xuIFx0XHRzdHJ1Y3QgbWx4NV9lc3dpdGNoICpzbGF2ZV9lc3c7XG4gXG4gXHRcdGlmIChqID09IG1hc3Rlcl9pZHgpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTg6MTE8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lbGxhbm94IG1seDUgaGFyZHdhcmUgZHJpdmVyLCBzcGVjaWZpY2FsbHkgZGVlcCBsb2dpYyByZWxhdGVkIHRvIFRDIGZsb3dzLCBMaW5rIEFnZ3JlZ2F0aW9uIChMQUcpLCBhbmQgTXVsdGktUG9ydCBFLVN3aXRjaCAoTVBFU1cpLiBTaW5jZSBtbHg1IHJlcXVpcmVzIHBoeXNpY2FsIE1lbGxhbm94IGhhcmR3YXJlIGFuZCB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRvciBmb3IgaXQgaW4gdGhlIGtlcm5lbCwgdGhlc2UgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGFiMmQ4OWZhYWFmNjc2YjQ5OTQ2MmFhZTQyMDc4N2M0M2M0MDMyMGYKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVHVlIEp1biAzMCAxODoxMToxNyAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90Yy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3RjLmMKaW5kZXggOTEwNDkyZWI1MWYyNzYuLjFiYzdiOTAxOTEyNGE0IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdGMuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdGMuYwpAQCAtNTU0Nyw2ICYjNDM7NTU0Nyw5IEBAIHZvaWQgbWx4NWVfdGNfY2xlYW5fZmRiX3BlZXJfZmxvd3Moc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3KQogCiAJbWx4NV9kZXZjb21fZm9yX2VhY2hfcGVlcl9lbnRyeShkZXZjb20sIHBlZXJfZXN3LCBwb3MpIHsKIAkJaSA9IG1seDVfbGFnX2dldF9kZXZfc2VxKHBlZXJfZXN3LSZndDtkZXYpOwomIzQzOwkJaWYgKGkgJmx0OyAwKQomIzQzOwkJCWNvbnRpbnVlOwomIzQzOwogCQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoZmxvdywgdG1wLCAmYW1wO2Vzdy0mZ3Q7b2ZmbG9hZHMucGVlcl9mbG93c1tpXSwgcGVlcltpXSkKIAkJCW1seDVlX3RjX2RlbF9mZGJfcGVlcnNfZmxvdyhmbG93KTsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL21wZXN3LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL21wZXN3LmMKaW5kZXggNTBiZmI0NTBjNzFlMmYuLmFiZjcyMDI2Yzc1MTMzIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL21wZXN3LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9tcGVzdy5jCkBAIC0xOTQsOCAmIzQzOzE5NCwxMCBAQCBzdGF0aWMgdm9pZCBtbHg1X21wZXN3X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCXN0cnVjdCBtbHg1X2xhZyAqbGRldiA9IG1wZXN3dy0mZ3Q7bGFnOwogCiAJZGV2Y29tID0gbWx4NV9sYWdfZ2V0X2RldmNvbV9jb21wKGxkZXYpOwotCWlmICghZGV2Y29tKQotCQlyZXR1cm47CiYjNDM7CWlmICghZGV2Y29tKSB7CiYjNDM7CQltcGVzd3ctJmd0O3Jlc3VsdCA9IC1FTk9ERVY7CiYjNDM7CQlnb3RvIGNvbXBsZXRlOwomIzQzOwl9CiAKIAltbHg1X2RldmNvbV9jb21wX2xvY2soZGV2Y29tKTsKIAltbHg1X21wZXN3X3NkX2RldmNvbXNfbG9jayhsZGV2KTsKQEAgLTIxMyw2ICYjNDM7MjE1LDcgQEAgc3RhdGljIHZvaWQgbWx4NV9tcGVzd193b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAltdXRleF91bmxvY2soJmFtcDtsZGV2LSZndDtsb2NrKTsKIAltbHg1X21wZXN3X3NkX2RldmNvbXNfdW5sb2NrKGxkZXYpOwogCW1seDVfZGV2Y29tX2NvbXBfdW5sb2NrKGRldmNvbSk7CiYjNDM7Y29tcGxldGU6CiAJY29tcGxldGUoJmFtcDttcGVzd3ctJmd0O2NvbXApOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL3NoYXJlZF9mZGIuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvc2hhcmVkX2ZkYi5jCmluZGV4IDExMzg2NjQ5NGQxNjRiLi42YjRhZDNjNTNmMmYzMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9zaGFyZWRfZmRiLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9zaGFyZWRfZmRiLmMKQEAgLTc4LDcgJiM0Mzs3OCw3IEBAIHN0YXRpYyBpbnQgbWx4NV9sYWdfY3JlYXRlX3NpbmdsZV9mZGJfZmlsdGVyKHN0cnVjdCBtbHg1X2xhZyAqbGRldiwgdTMyIGZpbHRlcikKIAl9CiAJcmV0dXJuIDA7CiBlcnI6Ci0JbWx4NV9sYWdfZm9yX2VhY2hfcmV2ZXJzZShqLCBpLCAwLCBsZGV2LCBmaWx0ZXIpIHsKJiM0MzsJbWx4NV9sYWdfZm9yX2VhY2hfcmV2ZXJzZShqLCBpIC0gMSwgMCwgbGRldiwgZmlsdGVyKSB7CiAJCXN0cnVjdCBtbHg1X2Vzd2l0Y2ggKnNsYXZlX2VzdzsKIAogCQlpZiAoaiA9PSBtYXN0ZXJfaWR4KQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAxODoxMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNjM4CgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogNTcxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgTWVsbGFub3ggbWx4NSBEcml2ZXIgUGF0Y2ggZm9yIEZ1enppbmcgUG90ZW50aWFsKioKCk9rYXksIHNvIEkmIzM5O3ZlIGdvdCB0aGlzIHBhdGNoIHRoYXQgdG91Y2hlcyB0aHJlZSBmaWxlcyB3aXRoaW4gdGhlIE1lbGxhbm94IG1seDUgRXRoZXJuZXQgZHJpdmVyOiBgZW5fdGMuY2AsIGBsYWcvbXBlc3cuY2AsIGFuZCBgbGFnL3NoYXJlZF9mZGIuY2AuIExldCBtZSBxdWlja2x5IGJyZWFrIGRvd24gd2hhdCB0aGlzIHBhdGNoIGRvZXMsIHNvIEkgY2FuIHN0YXJ0IHRoaW5raW5nIGFib3V0IGZ1enppbmcgaXQuIEl0IGFkZHMgYSBjaGVjayBpbiBgbWx4NWVfdGNfY2xlYW5fZmRiX3BlZXJfZmxvd3NgLCBhIGNoZWNrIGFuZCBjb25kaXRpb25hbCBqdW1wIGluIGBtbHg1X21wZXN3X3dvcmtgLCBhbmQgbW9kaWZpZXMgYSBsb29wIGluIGBtbHg1X2xhZ19jcmVhdGVfc2luZ2xlX2ZkYl9maWx0ZXJgLiBTZWVtcyBzdHJhaWdodGZvcndhcmQgZW5vdWdo4oCUZnVuY3Rpb25hbCBjaGFuZ2VzLiBOb3cgdGhlIHF1ZXN0aW9uIGlzLCBjYW4gSSBldmVuIGZ1enogdGhpcyB0aGluZz8KCk1lbGxhbm94IG1seDUsIHRoYXTigJlzIGEgaGFyZHdhcmUgZHJpdmVyLCByaWdodD8gWWVhaCwgaXQmIzM5O3MgZm9yIE1lbGxhbm94IENvbm5lY3RYIG5ldHdvcmsgY2FyZHMuIFNvLCBJIG5lZWQgdG8gY29uc2lkZXIgdGhlIGVudmlyb25tZW50LiBNeSBpbW1lZGlhdGUgY29uY2VybiBpcyB3aGV0aGVyIHRoaXMgaXMgZ29pbmcgdG8gYmUgZmVhc2libGUgaW4gYSBzdGFuZGFyZCB2aXJ0dWFsaXplZCBzZXR1cCwgbGlrZSBHQ0Ugb3IgUUVNVS4gSSBuZWVkIHRob3NlIGNhcmRzLCB3aGljaCBhcmVuJiMzOTt0IHR5cGljYWxseSBwcmVzZW50IHVubGVzcyB5b3UgZW11bGF0ZSB0aGVtIG9yIHBhc3MgdGhlbSB0aHJvdWdoLiBBcmUgdGhlcmUgYW55IHNvZnR3YXJlIGVtdWxhdG9ycyBmb3IgbWx4NSBpbiB0aGUga2VybmVsPyBJIGFtIHRoaW5raW5nLCBmb3IgZXhhbXBsZSwgb2YgYG5ldGRldnNpbWAgb3IgYG1hYzgwMjExX2h3c2ltYC4gTGV0IG1lIGNoZWNrLi4uIG5vcGUsIGRvZXNuJiMzOTt0IGxvb2sgbGlrZSB0aGVyZSBpcyBhIGRlZGljYXRlZCBtbHg1IHNvZnR3YXJlIGVtdWxhdG9yIGluIHRoZSB1cHN0cmVhbSBrZXJuZWwuCgpPa2F5LCBzbyB0aGVuIHRoZSBuZXh0IHRoaW5nIEkgbmVlZCB0byBhc2sgaXM6IGRvZXMgc3l6a2FsbGVyIGRvIGFueXRoaW5nIHdpdGggbWx4NT8gU3l6a2FsbGVyIGlzIHRoZSBnby10byB0b29sIGZvciBrZXJuZWwgZnV6emluZywgYnV0IGl0IHVzdWFsbHkgbmVlZHMgc3BlY2lmaWMgaGFyZHdhcmUgb3IgZWZmZWN0aXZlIGVtdWxhdG9ycy4gV2VsbCwgaXQgY2FuIGZ1enogUENJIGRldmljZXMsIGlmIHRoZXJlIGlzIGEgUENJIGZ1enplciwgd2hpY2ggaXMgdGhlIGNsYXNzIG9mIGhhcmR3YXJlIHdlIGFyZSB0YWxraW5nIGFib3V0IGhlcmUuIEJ1dCByZWFjaGluZyB0aGVzZSBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXJzIHdpdGhvdXQgdGhlIGhhcmR3YXJlIGlzIGEgcGFpbi4gSSBzZWVtIHRvIHJlY2FsbCB0aGF0IHN5emthbGxlciBoYXMgYSB2aGNpL1BDSSBmdXp6ZXIgb2Ygc29tZSBraW5kLCBidXQgaXMgaXQgYWN0dWFsbHkgZWZmZWN0aXZlIGZvciBtbHg1PyBJJiMzOTtsbCBuZWVkIHRvIGNoZWNrIGlmIHRoZXJlIGFyZSBhbnkgY29uZmlndXJhdGlvbnMgSSBjYW4gdXNlLiBJIHdvbmRlciBpZiBpdCYjMzk7cyBldmVuIHdvcnRoIGF0dGVtcHRpbmcgdG8gZnV6eiBnaXZlbiB0aGF0IGl0IGlzIGEgUENJIHBoeXNpY2FsIGRldmljZSBkcml2ZXIgd2l0aCBubyBzb2Z0d2FyZSBlbXVsYXRvci4KCkxldCBtZSB0aGluayBiYWNrIG9uIHNvbWUgcHJldmlvdXMgZXhwZXJpZW5jZXMuIEkgcmVtZW1iZXIgc29tZXRoaW5nIGFib3V0IGNvZGUgcGF0aHMgYmVpbmcgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMsIHNwZWNpZmljYWxseSBpbiBzaXR1YXRpb25zIGludm9sdmluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZS4gV2VsbCwgSSBhbSB0aGlua2luZyB0aGF0IHRoaXMgYXBwbGllcyBoZXJlIGFzIG1seDUgaXNuJiMzOTt0IHJlYWNoYWJsZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuIE1heWJlIEkgc2hvdWxkIGRvdWJsZS1jaGVjay4gSSB3aWxsIHF1aWNrbHkgc2VhcmNoIHRoZSBrZXJuZWwgY29kZSBmb3IgYW55IGV2aWRlbmNlIG9mIG1seDUgc29mdHdhcmUgZW11bGF0aW9uLCBqdXN0IGluIGNhc2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTg6MTE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bWx4NSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA5OTA2MiBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc9MTk9Y29uZmlnIE1MWDVfRlBHQVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTI1LVx0ICBhbmQgYW4gRlBHQSBjaGlwIG9uIG9uZSBib2FyZC4gSWYgeW91IHNlbGVjdCB0aGlzIG9wdGlvbiwgdGhlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoyNjpcdCAgbWx4NV9jb3JlIGRyaXZlciB3aWxsIGluY2x1ZGUgdGhlIElubm92YSBGUEdBIGNvcmUgYW5kIGFsbG93IGJ1aWxkaW5nXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0yNy1cdCAgc2FuZGJveC1zcGVjaWZpYyBjbGllbnQgZHJpdmVycy5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZz03Nz1jb25maWcgTUxYNV9CUklER0Vcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy04MS1cdGhlbHBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnOjgyOlx0ICBtbHg1IENvbm5lY3RYIG9mZmxvYWRzIHN1cHBvcnQgZm9yIEV0aGVybmV0IEJyaWRnaW5nIChCUklER0UpLlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctODMtXHQgIEVuYWJsZSBvZmZsb2FkaW5nIEZEQiBydWxlcyBmcm9tIGEgYnJpZGdlIGRldmljZSBjb250YWluaW5nXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzo4NDpcdCAgcmVwcmVzZW50b3JzIG9mIG1seDUgdXBsaW5rIGFuZCBWRiBwb3J0cy4gU3VwcG9ydHMgVkxBTnMgKHRydW5rIGFuZFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctODUtXHQgIGFjY2VzcyBtb2RlcykuXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc9ODc9Y29uZmlnIE1MWDVfQ0xTX0FDVFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTkxLVx0aGVscFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc6OTI6XHQgIG1seDUgQ29ubmVjdFggb2ZmbG9hZHMgc3VwcG9ydCBmb3IgVEMgY2xhc3NpZmllciBhY3Rpb24gKE5FVF9DTFNfQUNUKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTkzLVx0ICB3b3JrcyBpbiBib3RoIG5hdGl2ZSBOSUMgbW9kZSBhbmQgU3dpdGNoZGV2IFNSSU9WIG1vZGUuXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc9MjEwPWNvbmZpZyBNTFg1X0VOX1BTUFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTIxNS1cdGhlbHBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnOjIxNjpcdCAgbWx4NSBkZXZpY2Ugb2ZmbG9hZCBzdXBwb3J0IGZvciBHb29nbGUgUFNQIFNlY3VyaXR5IFByb3RvY29sIG9mZmxvYWQuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0yMTctXHQgIEFkZHMgc3VwcG9ydCBmb3IgUFNQIGVuY3J5cHRpb24gb2ZmbG9hZCBhbmQgZm9yIFNQSSBhbmQga2V5IGdlbmVyYXRpb25cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU9Nz1zdWJkaXItY2NmbGFncy15ICYjNDM7PSAtSSQoc3JjKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6OTpvYmotJChDT05GSUdfTUxYNV9DT1JFKSAmIzQzOz0gbWx4NV9jb3JlLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMS0jXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTI6IyBtbHg1IGNvcmUgYmFzaWNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMy0jXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTQ6bWx4NV9jb3JlLXkgOj1cdG1haW4ubyBjbWQubyBkZWJ1Z2ZzLm8gZncubyBlcS5vIHVhci5vIHBhZ2VhbGxvYy5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTUtXHRcdGhlYWx0aC5vIG1jZy5vIGNxLm8gYWxsb2MubyBwb3J0Lm8gbXIubyBwZC5vIFxcXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTI1LSNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToyNjptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9DT1JFX0VOKSAmIzQzOz0gZW4vcnF0Lm8gZW4vdGlyLm8gZW4vcnNzLm8gZW4vcnhfcmVzLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0yNy1cdFx0ZW4vY2hhbm5lbHMubyBlbl9tYWluLm8gZW5fY29tbW9uLm8gZW5fZnMubyBlbl9ldGh0b29sLm8gXFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMzctI1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjM4Om1seDVfY29yZS0kKENPTkZJR19NTFg1X0VOX0FSRlMpICAgICAmIzQzOz0gZW5fYXJmcy5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6Mzk6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfRU5fUlhORkMpICAgICYjNDM7PSBlbl9mc19ldGh0b29sLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo0MDptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9DT1JFX0VOX0RDQikgJiM0Mzs9IGVuX2RjYm5sLm8gZW4vcG9ydF9idWZmZXIub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjQxOm1seDVfY29yZS0kKENPTkZJR19QQ0lfSFlQRVJWX0lOVEVSRkFDRSkgJiM0Mzs9IGVuL2h2X3ZoY2Ffc3RhdHMub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjQyOm1seDVfY29yZS0kKENPTkZJR19NTFg1X0VTV0lUQ0gpICAgICAmIzQzOz0gbGFnL21wLm8gbGFnL3BvcnRfc2VsLm8gbGliL2dlbmV2ZS5vIGxpYi9wb3J0X3R1bi5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNDMtXHRcdFx0XHRcdGVuX3JlcC5vIGVuL3JlcC9ib25kLm8gZW4vbW9kX2hkci5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNDQtXHRcdFx0XHRcdGVuL21hcHBpbmcubyBsYWcvbXBlc3cubyBsYWcvc2hhcmVkX2ZkYi5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6NDU6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfQ0xTX0FDVCkgICAgICYjNDM7PSBlbl90Yy5vIGVuL3JlcC90Yy5vIGVuL3JlcC9uZWlnaC5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNDYtXHRcdFx0XHRcdGxpYi9mc19jaGFpbnMubyBlbi90Y190dW4ubyBcXFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS01Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo1MzptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9DTFNfQUNUKSAgICAgJiM0Mzs9IGVuL3RjL2FjdC9hY3QubyBlbi90Yy9hY3QvZHJvcC5vIGVuL3RjL2FjdC90cmFwLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS01NC1cdFx0XHRcdFx0ZW4vdGMvYWN0L2FjY2VwdC5vIGVuL3RjL2FjdC9tYXJrLm8gZW4vdGMvYWN0L2dvdG8ubyBcXFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZT02MT1pZm5lcSAoJChDT05GSUdfTUxYNV9UQ19DVCksKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjYyOlx0bWx4NV9jb3JlLXlcdFx0XHQgICAgICYjNDM7PSBlbi90Y19jdC5vIGVuL3RjL2N0X2ZzX2RtZnMub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjYzOlx0bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfU1dfU1RFRVJJTkcpICYjNDM7PSBlbi90Yy9jdF9mc19zbWZzLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo2NDpcdG1seDVfY29yZS0kKENPTkZJR19NTFg1X0hXX1NURUVSSU5HKSAmIzQzOz0gZW4vdGMvY3RfZnNfaG1mcy5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNjUtZW5kaWZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS02Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo2NzptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9UQ19TQU1QTEUpICAgJiM0Mzs9IGVuL3RjL3NhbXBsZS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNjgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTcxLSNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo3MjptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9FU1dJVENIKSAgICYjNDM7PSBlc3dpdGNoLm8gZXN3aXRjaF9vZmZsb2Fkcy5vIGVzd2l0Y2hfb2ZmbG9hZHNfdGVybXRibC5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNzMtXHRcdFx0XHQgICAgICBlY3BmLm8gcmRtYS5vIGVzdy9sZWdhY3kubyBlc3cvYWRqX3Zwb3J0Lm8gXFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNzUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6NzY6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfRVNXSVRDSCkgICAmIzQzOz0gZXN3L2FjbC9oZWxwZXIubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTc3LVx0XHRcdFx0ICAgICAgZXN3L2FjbC9lZ3Jlc3NfbGdjeS5vIGVzdy9hY2wvZWdyZXNzX29mbGQubyBcXFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZT04MD1pZm5lcSAoJChDT05GSUdfTUxYNV9FTl9JUFNFQyksKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjgxOlx0bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfRVNXSVRDSCkgICAmIzQzOz0gZXN3L2lwc2VjX2ZzLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS04Mi1lbmRpZlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTgzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjg0Om1seDVfY29yZS0kKENPTkZJR19NTFg1X0JSSURHRSkgICAgJiM0Mzs9IGVzdy9icmlkZ2UubyBlc3cvYnJpZGdlX21jYXN0Lm8gZXN3L2JyaWRnZV9kZWJ1Z2ZzLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS04NS1cdFx0XHRcdCAgICAgIGVuL3JlcC9icmlkZ2Uub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTg2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjg3Om1seDVfY29yZS0kKENPTkZJR19IV01PTikgICAgICAgICAgJiM0Mzs9IGh3bW9uLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo4ODptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9NUEZTKSAgICAgICYjNDM7PSBsaWIvbXBmcy5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtODktaWZuZXEgKCQoQ09ORklHX1ZYTEFOKSwpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6OTA6XHRtbHg1X2NvcmUteVx0XHQgICAmIzQzOz0gbGliL3Z4bGFuLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS05MS1lbmRpZlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjkyOm1seDVfY29yZS0kKENPTkZJR19QVFBfMTU4OF9DTE9DSykgJiM0Mzs9IGxpYi9jbG9jay5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6OTM6bWx4NV9jb3JlLSQoQ09ORklHX1BDSV9IWVBFUlZfSU5URVJGQUNFKSAmIzQzOz0gbGliL2h2Lm8gbGliL2h2X3ZoY2Eub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTk0LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS05Ny0jXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6OTg6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfQ09SRV9JUE9JQikgJiM0Mzs9IGlwb2liL2lwb2liLm8gaXBvaWIvZXRodG9vbC5vIGlwb2liL2lwb2liX3ZsYW4ub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTk5LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMDItI1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjEwMzptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9GUEdBKSAmIzQzOz0gZnBnYS9jbWQubyBmcGdhL2NvcmUubyBmcGdhL2Nvbm4ubyBmcGdhL3Nkay5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTA0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjEwNTptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9NQUNTRUMpICYjNDM7PSBlbl9hY2NlbC9tYWNzZWMubyBsaWIvbWFjc2VjX2ZzLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMDYtXHRcdFx0XHQgICAgICBlbl9hY2NlbC9tYWNzZWNfc3RhdHMub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTEwNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxMDg6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfRU5fSVBTRUMpICYjNDM7PSBlbl9hY2NlbC9pcHNlYy5vIGVuX2FjY2VsL2lwc2VjX3J4dHgubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTEwOS1cdFx0XHRcdCAgICAgZW5fYWNjZWwvaXBzZWNfc3RhdHMubyBlbl9hY2NlbC9pcHNlY19mcy5vIFxcXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTExMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxMTI6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfRU5fVExTKSAmIzQzOz0gZW5fYWNjZWwva3Rsc19zdGF0cy5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTEzLVx0XHRcdFx0ICAgZW5fYWNjZWwvZnNfdGNwLm8gZW5fYWNjZWwva3Rscy5vIGVuX2FjY2VsL2t0bHNfdHhyeC5vIFxcXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTExNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxMTY6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfRU5fUFNQKSAmIzQzOz0gZW5fYWNjZWwvcHNwLm8gZW5fYWNjZWwvcHNwX3J4dHgub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTExNy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTIwLSNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxMjE6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfU1dfU1RFRVJJTkcpICYjNDM7PSBzdGVlcmluZy9zd3MvZHJfZG9tYWluLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMjItXHRcdFx0XHRcdHN0ZWVyaW5nL3N3cy9kcl90YWJsZS5vIFxcXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTE0NS0jXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTQ2Om1seDVfY29yZS0kKENPTkZJR19NTFg1X0hXX1NURUVSSU5HKSAmIzQzOz0gc3RlZXJpbmcvaHdzL2NtZC5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTQ3LVx0XHRcdFx0XHRzdGVlcmluZy9od3MvY29udGV4dC5vIFxcXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTE2Ny0jXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTY4Om1seDVfY29yZS0kKENPTkZJR19NTFg1X1NGKSAmIzQzOz0gc2YvdmhjYV9ldmVudC5vIHNmL2Rldi9kZXYubyBzZi9kZXYvZHJpdmVyLm8gaXJxX2FmZmluaXR5Lm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xNjktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTE3Mi0jXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTczOm1seDVfY29yZS0kKENPTkZJR19NTFg1X1NGX01BTkFHRVIpICYjNDM7PSBzZi9jbWQubyBzZi9od190YWJsZS5vIHNmL2Rldmxpbmsub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTE3NC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTc3LSNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxNzg6bWx4NV9jb3JlLSQoQ09ORklHX1BDSUVfVFBIKSAmIzQzOz0gbGliL3N0Lm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xNzktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTgwOm9iai0kKENPTkZJR19NTFg1X0RQTEwpICYjNDM7PSBtbHg1X2RwbGwub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjE4MTptbHg1X2RwbGwteSA6PVx0ZHBsbC5vXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNDItI2luY2x1ZGUgXHUwMDNjbGludXgvc2VxX2ZpbGUuaFx1MDAzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NDM6I2luY2x1ZGUgXHUwMDNjbGludXgvbWx4NS9kcml2ZXIuaFx1MDAzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo0NTojaW5jbHVkZSBcJiMzNDttbHg1X2NvcmUuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNDYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo1MTpzdHJ1Y3QgbWx4NV9kYl9wZ2RpciB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy01Mi1cdHN0cnVjdCBsaXN0X2hlYWRcdGxpc3Q7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo1ODpzdHJ1Y3QgbWx4NV9kbWFfcG9vbCB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy01OS1cdC8qIFByb3RlY3RzIHBhZ2VfbGlzdCBhbmQgcGVyLXBhZ2UgYWxsb2NhdGlvbiBiaXRtYXBzLiAqL1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTYxLVx0c3RydWN0IGxpc3RfaGVhZCBwYWdlX2xpc3Q7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo2MjpcdHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy02My1cdGludCBub2RlO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTY2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6Njc6c3RydWN0IG1seDVfZG1hX3Bvb2xfcGFnZSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo2ODpcdHN0cnVjdCBtbHg1X2RtYV9wb29sICpwb29sO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNjktXHRzdHJ1Y3QgbGlzdF9oZWFkIHBvb2xfbGluaztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy03NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjc1OnN0cnVjdCBtbHg1X2ZyYWdfYnVmX25vZGVfcG9vbHMge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NzY6XHRzdHJ1Y3QgbWx4NV9kbWFfcG9vbCAqcG9vbHNbTUxYNV9GUkFHX0JVRl9QT09MU19OVU1dO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNzctfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTc4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6Nzk6c3RydWN0IG1seDVfZG1hX3Bvb2xfc3RhdHMge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtODAtXHRpbnQgbm9kZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy04OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjkwOnN0YXRpYyB2b2lkICptbHg1X2RtYV96YWxsb2NfY29oZXJlbnRfbm9kZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtOTEtXHRcdFx0XHRcdCAgIHNpemVfdCBzaXplLCBkbWFfYWRkcl90ICpkbWFfaGFuZGxlLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTkzLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjk0Olx0c3RydWN0IGRldmljZSAqZGV2aWNlID0gbWx4NV9jb3JlX2RtYV9kZXYoZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjk1Olx0c3RydWN0IG1seDVfcHJpdiAqcHJpdiA9IFx1MDAyNmRldi1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtOTYtXHRpbnQgb3JpZ2luYWxfbm9kZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0xMDgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoxMDk6c3RhdGljIHZvaWQgbWx4NV9kbWFfcG9vbF9kZXN0cm95KHN0cnVjdCBtbHg1X2RtYV9wb29sICpwb29sKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMTEwLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0xMTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoxMTU6c3RhdGljIHN0cnVjdCBtbHg1X2RtYV9wb29sICptbHg1X2RtYV9wb29sX2NyZWF0ZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMTE2LVx0XHRcdFx0XHRcdCAgaW50IG5vZGUsIHU4IGJsb2NrX3NoaWZ0KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMTE3LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjExODpcdHN0cnVjdCBtbHg1X2RtYV9wb29sICpwb29sO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMTE5LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTEzMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjEzMjpzdGF0aWMgc3RydWN0IG1seDVfZG1hX3Bvb2xfcGFnZSAqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoxMzM6bWx4NV9kbWFfcG9vbF9wYWdlX2FsbG9jKHN0cnVjdCBtbHg1X2RtYV9wb29sICpwb29sKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMTM0LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTEzNS1cdGludCBibG9ja3NfcGVyX3BhZ2UgPSBCSVQoUEFHRV9TSElGVCAtIHBvb2wtXHUwMDNlYmxvY2tfc2hpZnQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MTM2Olx0c3RydWN0IG1seDVfZG1hX3Bvb2xfcGFnZSAqcGFnZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTEzNy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0xNDctXHRiaXRtYXBfZmlsbChwYWdlLVx1MDAzZWJpdG1hcCwgYmxvY2tzX3Blcl9wYWdlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjE0ODpcdHBhZ2UtXHUwMDNlYnVmID0gbWx4NV9kbWFfemFsbG9jX2NvaGVyZW50X25vZGUocG9vbC1cdTAwM2VkZXYsIFBBR0VfU0laRSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTE0OS1cdFx0XHRcdFx0XHQgIFx1MDAyNnBhZ2UtXHUwMDNlZG1hLCBwb29sLVx1MDAzZW5vZGUpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTE2Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjE2MzpzdGF0aWMgdm9pZCBtbHg1X2RtYV9wb29sX3BhZ2VfZnJlZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MTY0Olx0XHRcdFx0ICAgIHN0cnVjdCBtbHg1X2RtYV9wb29sX3BhZ2UgKnBhZ2UpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0xNjUte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MTY2Olx0ZG1hX2ZyZWVfY29oZXJlbnQobWx4NV9jb3JlX2RtYV9kZXYoZGV2KSwgUEFHRV9TSVpFLCBwYWdlLVx1MDAzZWJ1ZixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTE2Ny1cdFx0XHQgIHBhZ2UtXHUwMDNlZG1hKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0xNzEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoxNzI6c3RhdGljIGludCBtbHg1X2RtYV9wb29sX2FsbG9jX2Zyb21fcGFnZShzdHJ1Y3QgbWx4NV9kbWFfcG9vbCAqcG9vbCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjE3MzpcdFx0XHRcdFx0IHN0cnVjdCBtbHg1X2RtYV9wb29sX3BhZ2UgKnBhZ2UsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0xNzQtXHRcdFx0XHRcdCB1bnNpZ25lZCBsb25nICppZHhfb3V0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTE4OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjE5MDpzdGF0aWMgc3RydWN0IG1seDVfZG1hX3Bvb2xfcGFnZSAqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoxOTE6bWx4NV9kbWFfcG9vbF9hbGxvYyhzdHJ1Y3QgbWx4NV9kbWFfcG9vbCAqcG9vbCwgdW5zaWduZWQgbG9uZyAqaWR4X291dClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTE5Mi17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoxOTM6XHRzdHJ1Y3QgbWx4NV9kbWFfcG9vbF9wYWdlICpwYWdlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMTk0LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTE5Ny1cdHBhZ2UgPSBsaXN0X2ZpcnN0X2VudHJ5X29yX251bGwoXHUwMDI2cG9vbC1cdTAwM2VwYWdlX2xpc3QsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoxOTg6XHRcdFx0XHRcdHN0cnVjdCBtbHg1X2RtYV9wb29sX3BhZ2UsIHBvb2xfbGluayk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoxOTk6XHRpZiAocGFnZSBcdTAwMjZcdTAwMjYgIW1seDVfZG1hX3Bvb2xfYWxsb2NfZnJvbV9wYWdlKHBvb2wsIHBhZ2UsIGlkeF9vdXQpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMjAwLVx0XHRnb3RvIHVubG9jazsgLyogc3VjY2Vzc2Z1bGx5IGFsbG9jYXRlZCBmcm9tIGV4aXN0aW5nIHBhZ2UgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTIwMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjIwMjpcdHBhZ2UgPSBtbHg1X2RtYV9wb29sX3BhZ2VfYWxsb2MocG9vbCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0yMDMtXHRpZiAoIXBhZ2UpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMjA2LVx0bGlzdF9hZGQoXHUwMDI2cGFnZS1cdTAwM2Vwb29sX2xpbmssIFx1MDAyNnBvb2wtXHUwMDNlcGFnZV9saXN0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjIwNzpcdG1seDVfZG1hX3Bvb2xfYWxsb2NfZnJvbV9wYWdlKHBvb2wsIHBhZ2UsIGlkeF9vdXQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMjA4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTIxMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjIxNDpzdGF0aWMgdm9pZCBtbHg1X2RtYV9wb29sX2ZyZWUoc3RydWN0IG1seDVfZG1hX3Bvb2wgKnBvb2wsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoyMTU6XHRcdFx0ICAgICAgIHN0cnVjdCBtbHg1X2RtYV9wb29sX3BhZ2UgKnBhZ2UsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0yMTYtXHRcdFx0ICAgICAgIHVuc2lnbmVkIGxvbmcgaWR4KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTIyNi1cdFx0bGlzdF9kZWwoXHUwMDI2cGFnZS1cdTAwM2Vwb29sX2xpbmspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MjI3Olx0XHRtbHg1X2RtYV9wb29sX3BhZ2VfZnJlZShwb29sLVx1MDAzZWRldiwgcGFnZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0yMjgtXHR9IGVsc2Uge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTIzNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjIzNzpzdGF0aWMgdm9pZCBtbHg1X2RtYV9wb29sX2RlYnVnZnNfZ2V0X3N0YXRzKHN0cnVjdCBtbHg1X2RtYV9wb29sICpwb29sLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MjM4Olx0XHRcdFx0XHQgICAgc3RydWN0IG1seDVfZG1hX3Bvb2xfc3RhdHMgKnN0YXRzKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMjM5LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTI0MC1cdGludCBibG9ja3NfcGVyX3BhZ2UgPSBCSVQoUEFHRV9TSElGVCAtIHBvb2wtXHUwMDNlYmxvY2tfc2hpZnQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MjQxOlx0c3RydWN0IG1seDVfZG1hX3Bvb2xfcGFnZSAqcGFnZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTI0Mi1cdHNpemVfdCBmcmVlX2Jsb2NrcyA9IDA7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMjU3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MjU4OnN0YXRpYyB2b2lkIG1seDVfZG1hX3Bvb2xfZGVidWdmc19zdGF0c19wcmludChzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoyNTk6XHRcdFx0XHRcdCAgICAgIHN0cnVjdCBtbHg1X2RtYV9wb29sICpwb29sKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMjYwLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjI2MTpcdHN0cnVjdCBtbHg1X2RtYV9wb29sX3N0YXRzIHN0YXRzID0ge307XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0yNjItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoyNjM6XHRtbHg1X2RtYV9wb29sX2RlYnVnZnNfZ2V0X3N0YXRzKHBvb2wsIFx1MDAyNnN0YXRzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTI2NC1cdHNlcV9wcmludGYoZmlsZSwgXCYjMzQ7JTRkICAgICAgICU1enUgICAgICAlN3p1ICAgICAgICAgICAlN3p1XFxuXCYjMzQ7LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTI2OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjI2OTpzdGF0aWMgdm9pZCBtbHg1X2RtYV9wb29sc19kZWJ1Z2ZzX3ByaW50X2hlYWRlcihzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0yNzAte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jPTI3ND1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6Mjc1Om1seDVfZnJhZ19idWZfbm9kZV9wb29sc19kZXN0cm95KHN0cnVjdCBtbHg1X2ZyYWdfYnVmX25vZGVfcG9vbHMgKm5vZGVfcG9vbHMpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0yNzYte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTI3OC1cdFx0aWYgKG5vZGVfcG9vbHMtXHUwMDNlcG9vbHNbaV0pXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoyNzk6XHRcdFx0bWx4NV9kbWFfcG9vbF9kZXN0cm95KG5vZGVfcG9vbHMtXHUwMDNlcG9vbHNbaV0pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMjgwLVx0a2ZyZWUobm9kZV9wb29scyk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMjgyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MjgzOnN0YXRpYyBzdHJ1Y3QgbWx4NV9mcmFnX2J1Zl9ub2RlX3Bvb2xzICpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjI4NDptbHg1X2ZyYWdfYnVmX25vZGVfcG9vbHNfY3JlYXRlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIGludCBub2RlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMjg1LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjI4NjpcdHN0cnVjdCBtbHg1X2ZyYWdfYnVmX25vZGVfcG9vbHMgKm5vZGVfcG9vbHM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0yODctXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMjk0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6Mjk1Olx0XHRub2RlX3Bvb2xzLVx1MDAzZXBvb2xzW2ldID0gbWx4NV9kbWFfcG9vbF9jcmVhdGUoZGV2LCBub2RlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMjk2LVx0XHRcdFx0XHRcdFx0ICAgIGJsb2NrX3NoaWZ0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTI5Ny1cdFx0aWYgKCFub2RlX3Bvb2xzLVx1MDAzZXBvb2xzW2ldKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoyOTg6XHRcdFx0bWx4NV9mcmFnX2J1Zl9ub2RlX3Bvb2xzX2Rlc3Ryb3kobm9kZV9wb29scyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0yOTktXHRcdFx0cmV0dXJuIE5VTEw7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM9MzA2PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjMwNzptbHg1X2ZyYWdfYnVmX2RtYV9wb29sc19kZWJ1Z2ZzX3Nob3coc3RydWN0IHNlcV9maWxlICpmaWxlLCB2b2lkICpwcml2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzA4LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjMwOTpcdHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYgPSBmaWxlLVx1MDAzZXByaXZhdGU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zMTAtXHRpbnQgbm9kZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTMxMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjMxMjpcdG1seDVfZG1hX3Bvb2xzX2RlYnVnZnNfcHJpbnRfaGVhZGVyKGZpbGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzEzLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTMxNy1cdGZvcl9lYWNoX25vZGVfc3RhdGUobm9kZSwgTl9QT1NTSUJMRSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MzE4Olx0XHRzdHJ1Y3QgbWx4NV9mcmFnX2J1Zl9ub2RlX3Bvb2xzICpub2RlX3Bvb2xzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzE5LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTMyNC1cdFx0Zm9yIChpbnQgaSA9IDA7IGkgXHUwMDNjIE1MWDVfRlJBR19CVUZfUE9PTFNfTlVNOyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MzI1Olx0XHRcdHN0cnVjdCBtbHg1X2RtYV9wb29sICpwb29sID0gbm9kZV9wb29scy1cdTAwM2Vwb29sc1tpXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTMyNi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zMjktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzozMzA6XHRcdFx0bWx4NV9kbWFfcG9vbF9kZWJ1Z2ZzX3N0YXRzX3ByaW50KGZpbGUsIHBvb2wpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzMxLVx0XHR9XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzM1LX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjMzNjpERUZJTkVfU0hPV19BVFRSSUJVVEUobWx4NV9mcmFnX2J1Zl9kbWFfcG9vbHNfZGVidWdmcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zMzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzozMzg6dm9pZCBtbHg1X2ZyYWdfYnVmX3Bvb2xzX2NsZWFudXAoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTMzOS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzozNDA6XHRzdHJ1Y3QgbWx4NV9wcml2ICpwcml2ID0gXHUwMDI2ZGV2LVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zNDEtXHRpbnQgbm9kZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zNDYtXHRmb3JfZWFjaF9ub2RlX3N0YXRlKG5vZGUsIE5fUE9TU0lCTEUpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjM0NzpcdFx0c3RydWN0IG1seDVfZnJhZ19idWZfbm9kZV9wb29scyAqbm9kZV9wb29scztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTM0OC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zNTEtXHRcdFx0Y29udGludWU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzozNTI6XHRcdG1seDVfZnJhZ19idWZfbm9kZV9wb29sc19kZXN0cm95KG5vZGVfcG9vbHMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzUzLVx0fVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTM1OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjM1OTppbnQgbWx4NV9mcmFnX2J1Zl9wb29sc19pbml0KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zNjAte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MzYxOlx0c3RydWN0IG1seDVfcHJpdiAqcHJpdiA9IFx1MDAyNmRldi1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzYyLVx0aW50IG5vZGU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzY5LVx0Zm9yX2VhY2hfbm9kZV9zdGF0ZShub2RlLCBOX1BPU1NJQkxFKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzozNzA6XHRcdHN0cnVjdCBtbHg1X2ZyYWdfYnVmX25vZGVfcG9vbHMgKm5vZGVfcG9vbHM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zNzEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzozNzI6XHRcdG5vZGVfcG9vbHMgPSBtbHg1X2ZyYWdfYnVmX25vZGVfcG9vbHNfY3JlYXRlKGRldiwgbm9kZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zNzMtXHRcdGlmICghbm9kZV9wb29scykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6Mzc0Olx0XHRcdG1seDVfZnJhZ19idWZfcG9vbHNfY2xlYW51cChkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzc1LVx0XHRcdHJldHVybiAtRU5PTUVNO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTM4Mi1cdFx0XHRcdCAgICBwcml2LVx1MDAzZWRiZy5kYmdfcm9vdCwgZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MzgzOlx0XHRcdFx0ICAgIFx1MDAyNm1seDVfZnJhZ19idWZfZG1hX3Bvb2xzX2RlYnVnZnNfZm9wcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zODQtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzg3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6Mzg4OmludCBtbHg1X2ZyYWdfYnVmX2FsbG9jX25vZGUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgaW50IHNpemUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzozODk6XHRcdFx0ICAgICBzdHJ1Y3QgbWx4NV9mcmFnX2J1ZiAqYnVmLCBpbnQgbm9kZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTM5MC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzozOTE6XHRzdHJ1Y3QgbWx4NV9kbWFfcG9vbCAqcG9vbDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTM5Mi1cdGludCBwb29sX2lkeDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00MDgtXHRmb3IgKGludCBpID0gMDsgaSBcdTAwM2MgYnVmLVx1MDAzZW5wYWdlczsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjQwOTpcdFx0c3RydWN0IG1seDVfYnVmX2xpc3QgKmZyYWcgPSBcdTAwMjZidWYtXHUwMDNlZnJhZ3NbaV07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo0MTA6XHRcdHN0cnVjdCBtbHg1X2RtYV9wb29sX3BhZ2UgKnBhZ2U7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00MTEtXHRcdHVuc2lnbmVkIGxvbmcgaWR4O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNDEyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NDEzOlx0XHRwYWdlID0gbWx4NV9kbWFfcG9vbF9hbGxvYyhwb29sLCBcdTAwMjZpZHgpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNDE0LVx0XHRpZiAoIXBhZ2UpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjQxNTpcdFx0XHRtbHg1X2ZyYWdfYnVmX2ZyZWUoZGV2LCBidWYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNDE2LVx0XHRcdHJldHVybiAtRU5PTUVNO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTQyNC19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo0MjU6RVhQT1JUX1NZTUJPTF9HUEwobWx4NV9mcmFnX2J1Zl9hbGxvY19ub2RlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTQyNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjQyNzp2b2lkIG1seDVfZnJhZ19idWZfZnJlZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBzdHJ1Y3QgbWx4NV9mcmFnX2J1ZiAqYnVmKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNDI4LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTQyOS1cdGZvciAoaW50IGkgPSAwOyBpIFx1MDAzYyBidWYtXHUwMDNlbnBhZ2VzOyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NDMwOlx0XHRzdHJ1Y3QgbWx4NV9idWZfbGlzdCAqZnJhZyA9IFx1MDAyNmJ1Zi1cdTAwM2VmcmFnc1tpXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjQzMTpcdFx0c3RydWN0IG1seDVfZG1hX3Bvb2xfcGFnZSAqcGFnZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjQzMjpcdFx0c3RydWN0IG1seDVfZG1hX3Bvb2wgKnBvb2w7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00MzMtXHRcdHVuc2lnbmVkIGxvbmcgaWR4O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTQ0MC1cdFx0aWR4ID0gKGZyYWctXHUwMDNlbWFwIC0gcGFnZS1cdTAwM2VkbWEpIFx1MDAzZVx1MDAzZSBwb29sLVx1MDAzZWJsb2NrX3NoaWZ0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NDQxOlx0XHRtbHg1X2RtYV9wb29sX2ZyZWUocG9vbCwgcGFnZSwgaWR4KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTQ0Mi1cdH1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00NDQtfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NDQ1OkVYUE9SVF9TWU1CT0xfR1BMKG1seDVfZnJhZ19idWZfZnJlZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00NDYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo0NDc6c3RhdGljIHN0cnVjdCBtbHg1X2RiX3BnZGlyICptbHg1X2FsbG9jX2RiX3BnZGlyKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00NDgtXHRcdFx0XHRcdFx0IGludCBub2RlKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTQ1MC1cdHUzMiBkYl9wZXJfcGFnZSA9IFBBR0VfU0laRSAvIGNhY2hlX2xpbmVfc2l6ZSgpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NDUxOlx0c3RydWN0IG1seDVfZGJfcGdkaXIgKnBnZGlyO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNDUyLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTQ2NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjQ2NTpcdHBnZGlyLVx1MDAzZWRiX3BhZ2UgPSBtbHg1X2RtYV96YWxsb2NfY29oZXJlbnRfbm9kZShkZXYsIFBBR0VfU0laRSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTQ2Ni1cdFx0XHRcdFx0XHQgICAgICAgXHUwMDI2cGdkaXItXHUwMDNlZGJfZG1hLCBub2RlKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00NzUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo0NzY6c3RhdGljIGludCBtbHg1X2FsbG9jX2RiX2Zyb21fcGdkaXIoc3RydWN0IG1seDVfZGJfcGdkaXIgKnBnZGlyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NDc3Olx0XHRcdFx0ICAgIHN0cnVjdCBtbHg1X2RiICpkYilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTQ3OC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTAwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NTAxOmludCBtbHg1X2RiX2FsbG9jX25vZGUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfZGIgKmRiLCBpbnQgbm9kZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTUwMi17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo1MDM6XHRzdHJ1Y3QgbWx4NV9kYl9wZ2RpciAqcGdkaXI7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy01MDQtXHRpbnQgcmV0ID0gMDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy01MDgtXHRsaXN0X2Zvcl9lYWNoX2VudHJ5KHBnZGlyLCBcdTAwMjZkZXYtXHUwMDNlcHJpdi5wZ2Rpcl9saXN0LCBsaXN0KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NTA5Olx0XHRpZiAoIW1seDVfYWxsb2NfZGJfZnJvbV9wZ2RpcihwZ2RpciwgZGIpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTEwLVx0XHRcdGdvdG8gb3V0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTExLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NTEyOlx0cGdkaXIgPSBtbHg1X2FsbG9jX2RiX3BnZGlyKGRldiwgbm9kZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy01MTMtXHRpZiAoIXBnZGlyKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTIwLVx0LyogVGhpcyBzaG91bGQgbmV2ZXIgZmFpbCAtLSB3ZSBqdXN0IGFsbG9jYXRlZCBhbiBlbXB0eSBwYWdlOiAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NTIxOlx0V0FSTl9PTihtbHg1X2FsbG9jX2RiX2Zyb21fcGdkaXIocGdkaXIsIGRiKSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy01MjItXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTI3LX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjUyODpFWFBPUlRfU1lNQk9MX0dQTChtbHg1X2RiX2FsbG9jX25vZGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTI5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NTMwOnZvaWQgbWx4NV9kYl9mcmVlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X2RiICpkYilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTUzMS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTM4LVx0aWYgKGJpdG1hcF9mdWxsKGRiLVx1MDAzZXUucGdkaXItXHUwMDNlYml0bWFwLCBkYl9wZXJfcGFnZSkpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjUzOTpcdFx0ZG1hX2ZyZWVfY29oZXJlbnQobWx4NV9jb3JlX2RtYV9kZXYoZGV2KSwgUEFHRV9TSVpFLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTQwLVx0XHRcdFx0ICBkYi1cdTAwM2V1LnBnZGlyLVx1MDAzZWRiX3BhZ2UsIGRiLVx1MDAzZXUucGdkaXItXHUwMDNlZGJfZG1hKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy01NDctfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NTQ4OkVYUE9SVF9TWU1CT0xfR1BMKG1seDVfZGJfZnJlZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy01NDktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo1NTA6dm9pZCBtbHg1X2ZpbGxfcGFnZV9mcmFnX2FycmF5X3Blcm0oc3RydWN0IG1seDVfZnJhZ19idWYgKmJ1ZiwgX19iZTY0ICpwYXMsIHU4IHBlcm0pXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy01NTEte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTU1Ny19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo1NTg6RVhQT1JUX1NZTUJPTF9HUEwobWx4NV9maWxsX3BhZ2VfZnJhZ19hcnJheV9wZXJtKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTU1OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjU2MDp2b2lkIG1seDVfZmlsbF9wYWdlX2ZyYWdfYXJyYXkoc3RydWN0IG1seDVfZnJhZ19idWYgKmJ1ZiwgX19iZTY0ICpwYXMpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy01NjEte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NTYyOlx0bWx4NV9maWxsX3BhZ2VfZnJhZ19hcnJheV9wZXJtKGJ1ZiwgcGFzLCAwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTU2My19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo1NjQ6RVhQT1JUX1NZTUJPTF9HUEwobWx4NV9maWxsX3BhZ2VfZnJhZ19hcnJheSk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTM5LSNpbmNsdWRlIFx1MDAzY2xpbnV4L3JhbmRvbS5oXHUwMDNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6NDA6I2luY2x1ZGUgXHUwMDNjbGludXgvbWx4NS9kcml2ZXIuaFx1MDAzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjQxOiNpbmNsdWRlIFx1MDAzY2xpbnV4L21seDUvZXEuaFx1MDAzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTQyLSNpbmNsdWRlIFx1MDAzY2xpbnV4L2RlYnVnZnMuaFx1MDAzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTQzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjQ0OiNpbmNsdWRlIFwmIzM0O21seDVfY29yZS5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtNDUtI2luY2x1ZGUgXCYjMzQ7bGliL2VxLmhcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtNDktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6NTA6c3RydWN0IG1seDVfaWZjX21ib3hfb3V0X2JpdHMge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTUxLVx0dTggICAgICAgICBzdGF0dXNbMHg4XTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtNTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6NTk6c3RydWN0IG1seDVfaWZjX21ib3hfaW5fYml0cyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtNjAtXHR1OCAgICAgICAgIG9wY29kZVsweDEwXTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9OTc9c3RhdGljIHUxNiBpbl90b191aWQodm9pZCAqaW4pXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEwNC0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxMDU6c3RhdGljIGJvb2wgbWx4NV9jbWRfaXNfdGhyb3R0bGVfb3Bjb2RlKHUxNiBvcClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMDYte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTE4OnN0YXRpYyBzdHJ1Y3QgbWx4NV9jbWRfd29ya19lbnQgKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjExOTpjbWRfYWxsb2NfZW50KHN0cnVjdCBtbHg1X2NtZCAqY21kLCBzdHJ1Y3QgbWx4NV9jbWRfbXNnICppbixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxMjA6XHQgICAgICBzdHJ1Y3QgbWx4NV9jbWRfbXNnICpvdXQsIHZvaWQgKnVvdXQsIGludCB1b3V0X3NpemUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTIxOlx0ICAgICAgbWx4NV9jbWRfY2JrX3QgY2JrLCB2b2lkICpjb250ZXh0LCBpbnQgcGFnZV9xdWV1ZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMjIte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEyMy1cdGdmcF90IGFsbG9jX2ZsYWdzID0gY2JrID8gR0ZQX0FUT01JQyA6IEdGUF9LRVJORUw7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTI0Olx0c3RydWN0IG1seDVfY21kX3dvcmtfZW50ICplbnQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTI1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTQ1OnN0YXRpYyB2b2lkIGNtZF9mcmVlX2VudChzdHJ1Y3QgbWx4NV9jbWRfd29ya19lbnQgKmVudClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNDYte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNDktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTUwOnN0YXRpYyB1OCBhbGxvY190b2tlbihzdHJ1Y3QgbWx4NV9jbWQgKmNtZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNTEte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNjMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTY0OnN0YXRpYyBpbnQgY21kX2FsbG9jX2luZGV4KHN0cnVjdCBtbHg1X2NtZCAqY21kLCBzdHJ1Y3QgbWx4NV9jbWRfd29ya19lbnQgKmVudClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNjUte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xODAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTgxOnN0YXRpYyB2b2lkIGNtZF9mcmVlX2luZGV4KHN0cnVjdCBtbHg1X2NtZCAqY21kLCBpbnQgaWR4KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE4Mi17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE4Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxODg6c3RhdGljIHZvaWQgY21kX2VudF9nZXQoc3RydWN0IG1seDVfY21kX3dvcmtfZW50ICplbnQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTg5LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTkyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE5MzpzdGF0aWMgdm9pZCBjbWRfZW50X3B1dChzdHJ1Y3QgbWx4NV9jbWRfd29ya19lbnQgKmVudClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xOTQte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE5NTpcdHN0cnVjdCBtbHg1X2NtZCAqY21kID0gZW50LVx1MDAzZWNtZDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xOTYtXHR1bnNpZ25lZCBsb25nIGZsYWdzO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MjEzOnN0YXRpYyBzdHJ1Y3QgbWx4NV9jbWRfbGF5b3V0ICpnZXRfaW5zdChzdHJ1Y3QgbWx4NV9jbWQgKmNtZCwgaW50IGlkeClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMTQte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MjE4OnN0YXRpYyBpbnQgbWx4NV9jYWxjX2NtZF9ibG9ja3Moc3RydWN0IG1seDVfY21kX21zZyAqbXNnKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTIxOS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTIyNj1zdGF0aWMgdTggeG9yOF9idWYodm9pZCAqYnVmLCBzaXplX3Qgb2Zmc2V0LCBpbnQgbGVuKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMzgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MjM5OnN0YXRpYyBpbnQgdmVyaWZ5X2Jsb2NrX3NpZyhzdHJ1Y3QgbWx4NV9jbWRfcHJvdF9ibG9jayAqYmxvY2spXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjQwLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoyNDE6XHRzaXplX3QgcnN2ZDBfb2ZmID0gb2Zmc2V0b2Yoc3RydWN0IG1seDVfY21kX3Byb3RfYmxvY2ssIHJzdmQwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yNDItXHRpbnQgeG9yX2xlbiA9IHNpemVvZigqYmxvY2spIC0gc2l6ZW9mKGJsb2NrLVx1MDAzZWRhdGEpIC0gMTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjUyLVxuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTg6MTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTg4MTgKCQkJCQkJCW91dHB1dDogNTAKCQkJCQkJCXRob3VnaHRzOiA3MzAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIFJlYWNoYWJpbGl0eSBvZiBNZWxsYW5veCBtbHg1IENvZGUgaW4gYSBWaXJ0dWFsaXplZCBFbnZpcm9ubWVudCoqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBJIG5lZWQgdG8gZGV0ZXJtaW5lIGlmIHRoZXNlIG1vZGlmaWVkIE1lbGxhbm94IG1seDUgZmlsZXMgYXJlIHJlYWNoYWJsZSB3aXRoaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCwgc3BlY2lmaWNhbGx5IGNvbnNpZGVyaW5nIEdDRSBvciBRRU1VLiBUaGUgZmlsZXMgaW4gcXVlc3Rpb24gYXJlIGBlbl90Yy5jYCwgYG1wZXN3LmNgLCBhbmQgYHNoYXJlZF9mZGIuY2AuIFRoZSBmYWN0IHRoYXQgc3l6a2FsbGVyIGlzIGludm9sdmVkIGltbWVkaWF0ZWx5IHBpcXVlcyBteSBpbnRlcmVzdC4gU3l6a2FsbGVyIGlzIGEgcG93ZXJmdWwgZnV6emVyLCBhbmQgdGhlIHByb21wdCBleHBsaWNpdGx5IGhpZ2hsaWdodHMgY2FzZXMgb2YgJiMzNDtpbXBvc3NpYmxlIHRvIHJlYWNoJiMzNDsgY29kZSBwYXRocyBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuCgpJbml0aWFsbHksIEkmIzM5O2QgYXNzdW1lIE1lbGxhbm94IG1seDUgaXMgdHlwaWNhbGx5IGEgcGh5c2ljYWwgZGV2aWNlLiBIb3dldmVyLCB0aGUgcHJlc2VuY2Ugb2Ygc3l6a2FsbGVyIGNoYW5nZXMgZXZlcnl0aGluZy4gSSBrbm93IHN5emthbGxlciBoYXMgYSBjbHVzdGVyIGFuZCB0aGF0IGl0JiMzOTtzIGFwcGx5aW5nIGEgcGF0Y2guIFRoaXMgc3Ryb25nbHkgc3VnZ2VzdHMgdGhhdCBzeXprYWxsZXIgaXMgc3VjY2Vzc2Z1bGx5IGZ1enppbmcgbWx4NSwgcG9zc2libHkgdGhyb3VnaCBpdHMgUENJIGZ1enplci4gVGhhdCYjMzk7cyB0aGUgY3J1Y2lhbCBxdWVzdGlvbjogY2FuIHN5emthbGxlciYjMzk7cyBQQ0kgZnV6emVyIHJlYWNoIGRlZXAgZW5vdWdoIGludG8gdGhlIG1seDUgZHJpdmVyIHRvIHRyaWdnZXIgY29kZSBwYXRocyBpbiB0aGVzZSBtb2RpZmllZCBmaWxlcz8KClRoZSBwcm9tcHQmIzM5O3MgZXhjbHVzaW9uIG9mICYjMzQ7c29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUmIzM0OyBpcyBrZXkuIFRoZSBwcm9tcHQgd2FudHMgdG8gZXhjbHVkZSBjb2RlIHRoYXQgaXMgaW5hY2Nlc3NpYmxlIGluIEdDRSBvciBRRU1VIGV2ZW4gd2hlbiBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSBsaWtlIHVzYiBnYWRnZXQgb3IgbWFjODAyMTFfaHdzaW0gaXMgdXNlZC4gRG9lcyB0aGUgUENJIGZ1enplciBxdWFsaWZ5PyBXZWxsLCBzeXprYWxsZXIgZG9lcyBydW4gb24gR0NFL1FFTVUsIGFuZCB0aGVyZSYjMzk7cyBhIHN0cm9uZyBpbmRpY2F0aW9uIHRoYXQgaXQgKmNhbiogcmVhY2ggbWx4NS4gVGhlIGF1dGhvciBvZiB0aGUgcGF0Y2ggaXMgbGlzdGVkIGFzICYjMzQ7c3l6LWNsdXN0ZXImIzM0Oywgd2hpY2ggbWVhbnMgc3l6a2FsbGVyIGRpZCBmaW5kIGEgYnVnIGFuZCBpcyB0ZXN0aW5nIHRoZSBwYXRjaCEKCklmIHN5emthbGxlciBpcyB0ZXN0aW5nIGEgcGF0Y2ggYWdhaW5zdCB0aGVzZSBmaWxlcywgaXQmIzM5O3MgY2xlYXIgdGhleSYjMzk7dmUgZm91bmQgYSB3YXkgdG8gdHJpZ2dlciBjb2RlIGluIG1seDUgd2l0aGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuIFRoZSBQQ0kgZnV6emVyIGlzIHRoZSBsaWtlbHkgY3VscHJpdC4gSSByZWNhbGwgdGhhdCBzeXprYWxsZXIgZW5hYmxlcyBudW1lcm91cyBkcml2ZXJzIGZvciBpdHMgUENJIGZ1enplciwgc3VnZ2VzdGluZyB0aGF0IGl0JiMzOTtzIGRlc2lnbmVkIHRvIGludGVyYWN0IHdpdGggYSBicm9hZCByYW5nZSBvZiBQQ0kgZGV2aWNlcy4KCk5vdywgdGhlIG51YW5jZXMgb2YgZW11bGF0aW9uIGFyZSBjcml0aWNhbC4gRG9lcyBzeXprYWxsZXIgYWN0dWFsbHkgKmVtdWxhdGUqIG1seDUsIG9yIGRvZXMgaXQgc2ltcGx5IHByb3ZpZGUgcmFuZG9tIHJlc3BvbnNlcyB0byBNTUlPIHJlYWRzL3dyaXRlcywgYWxsb3dpbmcgaXQgdG8gcGFzcyB0aGUgcHJvYmUgYW5kIGdldCBpbnRvIHRoZSBkcml2ZXI/IEl0JiMzOTtzIHRoZSBsYXR0ZXIsIGlzbiYjMzk7dCBpdD8gVGhlIHByb21wdCBpcyB0cnlpbmcgdG8gZXhjbHVkZSB0cnVlIGVtdWxhdGlvbiwgc28gSSBuZWVkIHRvIGNoZWNrIHRoZSBleGFjdCBmdW5jdGlvbiB0aGF0IHRoZSBwYXRjaCBtb2RpZmllcy4KCkxldCYjMzk7cyBsb29rIGF0IHRoZSBmdW5jdGlvbnMgdGhlbXNlbHZlczogYG1seDVlX3RjX2NsZWFuX2ZkYl9wZWVyX2Zsb3dzYCwgYG1seDVfbXBlc3dfd29ya2AsIGFuZCBgbWx4NV9sYWdfY3JlYXRlX3NpbmdsZV9mZGJfZmlsdGVyYC4gR2l2ZW4gdGhlIFBDSSBmdXp6ZXImIzM5O3MgYXBwcm9hY2gsIGV2ZW4gdGhvdWdoIGl0IGRvZXNuJiMzOTt0IGRvIGEgZnVsbCBlbXVsYXRpb24sIGl0IHByb2JhYmx5IG1lYW5zIHRoYXQgYFdvcnRoRnV6emluZ2Agc2hvdWxkIGJlIGB0cnVlYCEgVGhlIFBDSSBmdXp6ZXIgKmlzKiBhYmxlIHRvIHBhc3MgcHJvYmUsIGFuZCBpcyBhYmxlIHRvIHJlYWNoIHNvbWUgY29kZSBwYXRocyB0aGF0IGFyZSBtb2RpZmllZCwgYW5kIGNhbiBwcm9iYWJseSB0cmlnZ2VyIHNvbWUgaW50ZXJlc3Rpbmcgc2NlbmFyaW9zLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDE4OjExPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O21seDVlX3RjX2NsZWFuX2ZkYl9wZWVyX2Zsb3dzJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdGMuYz01NTMxPWludCBtbHg1ZV90Y19udW1fZmlsdGVycyhzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiwgdW5zaWduZWQgbG9uZyBmbGFncylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdGMuYy01NTM3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3RjLmM6NTUzODp2b2lkIG1seDVlX3RjX2NsZWFuX2ZkYl9wZWVyX2Zsb3dzKHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90Yy5jLTU1Mzkte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lc3dpdGNoLmg9NzQ0PXN0YXRpYyBpbmxpbmUgYm9vbCBtbHg1X2Vzd19pc19mZGJfY3JlYXRlZChzdHJ1Y3QgbWx4NV9lc3dpdGNoICplc3cpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2guaC03NDktLyogVE9ETzogVGhpcyBtbHg1ZV90YyBmdW5jdGlvbiBzaG91bGRuJiMzOTt0IGJlIGNhbGxlZCBieSBlc3dpdGNoICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaC5oOjc1MDp2b2lkIG1seDVlX3RjX2NsZWFuX2ZkYl9wZWVyX2Zsb3dzKHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaC5oLTc1MS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaF9vZmZsb2Fkcy5jPTMzNzk9c3RhdGljIHZvaWQgbWx4NV9lc3dfb2ZmbG9hZHNfdW5wYWlyKHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaF9vZmZsb2Fkcy5jLTMzODItI2lmIElTX0VOQUJMRUQoQ09ORklHX01MWDVfQ0xTX0FDVClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lc3dpdGNoX29mZmxvYWRzLmM6MzM4MzpcdG1seDVlX3RjX2NsZWFuX2ZkYl9wZWVyX2Zsb3dzKGVzdyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaF9vZmZsb2Fkcy5jLTMzODQtI2VuZGlmXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTg6MTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjA3OTAKCQkJCQkJCW91dHB1dDogNDQKCQkJCQkJCXRob3VnaHRzOiA0OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBhbmFseXNpcyBvZiB0aGUgcHJvdmlkZWQgaW5mb3JtYXRpb24sIGFzIGlmIHRoZXNlIHdlcmUgbXkgaW50ZXJuYWwgdGhvdWdodHM6CgoqKkRpc3NlY3RpbmcgdGhlIEZsb3cgQ29udHJvbCBGdW5jdGlvbmFsaXR5KioKCk9rYXksIHNvIEkgc2VlIHRoYXQgYG1seDVlX3RjX2NsZWFuX2ZkYl9wZWVyX2Zsb3dzYCBpcyB0cmlnZ2VyZWQgYnkgYG1seDVfZXN3X29mZmxvYWRzX3VucGFpcmAuIFRoYXQmIzM5O3MgYSBrZXkgY29ubmVjdGlvbiByaWdodCB0aGVyZS4gIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgdGhpcyBtZWFucyBpbiB0ZXJtcyBvZiBvZmZsb2FkIG1hbmFnZW1lbnQgYW5kIGhvdyBmbG93cyBhcmUgY2xlYW5lZCB1cCB3aGVuIHNvbWV0aGluZyBpcyB1bnBhaXJlZC4gVGhlIGRlcGVuZGVuY3kgc3VnZ2VzdHMgdGhpcyBgbWx4NWVfdGNfY2xlYW5fZmRiX3BlZXJfZmxvd3NgIGlzIGNydWNpYWwgZm9yIHRoZSBvdmVyYWxsIGxpZmVjeWNsZSBvZiB0aGVzZSBvZmZsb2FkZWQgZmxvd3MuCgpOb3csIGxldCBtZSBzaGlmdCBnZWFycyBhbmQgZ28gZGlnZ2luZyBpbnRvIGBtbHg1X21wZXN3X3dvcmtgLiBJIGhhdmUgYSBmZWVsaW5nIHRoaXMgaXMgd2hlcmUgdGhpbmdzIHdpbGwgc3RhcnQgdG8gYmVjb21lIGNsZWFyZXIsIGVzcGVjaWFsbHkgdGhlIGFjdHVhbCBqb2Igb3Igb3BlcmF0aW9uIHBlcmZvcm1lZCBieSB0aGUgZnVuY3Rpb24gbWVudGlvbmVkIHByZXZpb3VzbHkuIFRoaXMgcHJvYmFibHkgdGllcyBkaXJlY3RseSBpbnRvIGhvdyB0aGUgb2ZmbG9hZHMgYW5kIHRoZWlyIGFzc29jaWF0ZWQgZmxvd3MgYXJlIG1hbmFnZWQuIExldCYjMzk7cyBzZWUgaWYgdGhpcyBmdW5jdGlvbiYjMzk7cyBsb2dpYyBnaXZlcyBhbnkgbW9yZSBpbnNpZ2h0cyBvbiBmbG93IGRlLWFsbG9jYXRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTg6MTE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bWx4NV9tcGVzd193b3JrJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL21wZXN3LmM9MTc4PXZvaWQgbWx4NV9tcGVzd19zZF9kZXZjb21zX3VubG9jayhzdHJ1Y3QgbWx4NV9sYWcgKmxkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9tcGVzdy5jLTE4OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvbXBlc3cuYzoxOTA6c3RhdGljIHZvaWQgbWx4NV9tcGVzd193b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvbXBlc3cuYy0xOTEte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9tcGVzdy5jOjE5MjpcdHN0cnVjdCBtbHg1X21wZXN3X3dvcmtfc3QgKm1wZXN3dyA9IGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgbWx4NV9tcGVzd193b3JrX3N0LCB3b3JrKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvbXBlc3cuYy0xOTMtXHRzdHJ1Y3QgbWx4NV9kZXZjb21fY29tcF9kZXYgKmRldmNvbTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL21wZXN3LmM9MjIyPXN0YXRpYyBpbnQgbWx4NV9sYWdfbXBlc3dfcXVldWVfd29yayhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvbXBlc3cuYy0yMjUtXHRzdHJ1Y3QgbWx4NV9sYWcgKmxkZXYgPSBtbHg1X2xhZ19kZXYoZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvbXBlc3cuYzoyMjY6XHRzdHJ1Y3QgbWx4NV9tcGVzd193b3JrX3N0ICp3b3JrO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9tcGVzdy5jLTIyNy1cdGludCBlcnIgPSAwO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvbXBlc3cuYy0yMzUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL21wZXN3LmM6MjM2Olx0SU5JVF9XT1JLKFx1MDAyNndvcmstXHUwMDNld29yaywgbWx4NV9tcGVzd193b3JrKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvbXBlc3cuYy0yMzctXHRpbml0X2NvbXBsZXRpb24oXHUwMDI2d29yay1cdTAwM2Vjb21wKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL21wZXN3Lmg9MTU9ZW51bSBtcGVzd19vcCB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9tcGVzdy5oLTE5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9tcGVzdy5oOjIwOnN0cnVjdCBtbHg1X21wZXN3X3dvcmtfc3Qge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9tcGVzdy5oLTIxLVx0c3RydWN0IHdvcmtfc3RydWN0IHdvcms7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTg6MTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjE4NDEKCQkJCQkJCW91dHB1dDogNDkKCQkJCQkJCXRob3VnaHRzOiAxOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyByZXF1ZXN0ZWQ6CgoqKkRpdmluZyBpbnRvIGBtbHg1X2xhZ19jcmVhdGVfc2luZ2xlX2ZkYl9maWx0ZXJgKioKCk9rYXksIHRpbWUgdG8gZGlnIGludG8gYG1seDVfbGFnX2NyZWF0ZV9zaW5nbGVfZmRiX2ZpbHRlcmAuIEdpdmVuIG15IGV4cGVyaWVuY2Ugd2l0aCBNTFg1IGFuZCBMQUcgY29uZmlndXJhdGlvbnMsIEkmIzM5O20gYWxyZWFkeSBhbnRpY2lwYXRpbmcgc29tZSBvZiB0aGUgaW50cmljYWNpZXMgaW52b2x2ZWQuIEkmIzM5O20gZXhwZWN0aW5nIHRoaXMgZnVuY3Rpb24gdG8gaGFuZGxlIHRoZSBjcmVhdGlvbiBvZiBhIEZvcndhcmRpbmcgRGF0YWJhc2UgKEZEQikgZmlsdGVyIHNwZWNpZmljYWxseSBmb3IgYSBzaW5nbGUgZGVzdGluYXRpb24gTUFDIGFkZHJlc3Mgd2l0aGluIGEgTGluayBBZ2dyZWdhdGlvbiBHcm91cCAoTEFHKS4gVGhpcyBpbXBsaWVzIGl0IG5lZWRzIHRvIGludGVyYWN0IHdpdGggdGhlIHVuZGVybHlpbmcgaGFyZHdhcmUsIGxpa2VseSBwcm9ncmFtbWluZyBzb21lIHJlZ2lzdGVycyB3aXRoaW4gdGhlIE1MWDUgTklDIHRvIGVuc3VyZSBwYWNrZXRzIGRlc3RpbmVkIGZvciB0aGF0IE1BQyBhcmUgY29ycmVjdGx5IGZvcndhcmRlZCBhY3Jvc3MgdGhlIGFnZ3JlZ2F0ZWQgbGlua3MuCgpJJiMzOTtsbCBiZSBsb29raW5nIGZvciBob3cgaXQgaGFuZGxlcyB0aGluZ3MgbGlrZSB0aGUgTEFHIElELCB0aGUgc3BlY2lmaWMgTUFDIGFkZHJlc3MgZmlsdGVyLCB0aGUgcG9ydCBvciBwb3J0cyBhc3NvY2lhdGVkIHdpdGggdGhlIExBRywgYW5kIHRoZSBhc3NvY2lhdGVkIFZMQU4gb3Igb3RoZXIgZW5jYXBzdWxhdGlvbiBwYXJhbWV0ZXJzIGlmIGFwcGxpY2FibGUuIEkmIzM5O2xsIHBheSBjbG9zZSBhdHRlbnRpb24gdG8gdGhlIGVycm9yIGhhbmRsaW5nIHdpdGhpbiB0aGUgZnVuY3Rpb24uIERvZXMgaXQgY2hlY2sgZm9yIHJlc291cmNlIGV4aGF1c3Rpb24sIGludmFsaWQgcGFyYW1ldGVycywgb3IgaGFyZHdhcmUgZmFpbHVyZXM/IEhvdyByb2J1c3QgaXMgaXQ/CgpJIGFsc28gd2FudCB0byBzZWUgaG93IGl0IGludGVyYWN0cyB3aXRoIHRoZSBicm9hZGVyIEZEQiBtYW5hZ2VtZW50IHN5c3RlbS4gRG9lcyBpdCBjYWxsIG90aGVyIGZ1bmN0aW9ucyB0byB1cGRhdGUgdGhlIEZEQiB0YWJsZSwgb3IgZG9lcyBpdCBkaXJlY3RseSB3cml0ZSB0aGUgbmVjZXNzYXJ5IGluZm9ybWF0aW9uIHRvIHRoZSByZWxldmFudCBoYXJkd2FyZSBzdHJ1Y3R1cmVzPyBVbmRlcnN0YW5kaW5nIHRoZSBpbnRlcm5hbCBmdW5jdGlvbiBkZXBlbmRlbmNpZXMgd2lsbCBiZSBrZXkgdG8gdW5kZXJzdGFuZGluZyB0aGUgb3ZlcmFsbCBGREIgbWFuYWdlbWVudCBmbG93LiBBbnkgcG90ZW50aWFsIHJhY2UgY29uZGl0aW9ucyBvciBsb2NraW5nIG1lY2hhbmlzbXMgdXNlZCB0byBwcm90ZWN0IHRoZSBGREIgd2lsbCBiZSBvbiBteSByYWRhciB0b28uIEkgaG9wZSB0aGUgY29kZSBpcyB3ZWxsLWNvbW1lbnRlZDsgdGhhdCB3aWxsIHNhdmUgbWUgYSB0b24gb2YgdGltZS4gTGV0JiMzOTtzIGdldCB0byBpdCEKCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTg6MTE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bWx4NV9sYWdfY3JlYXRlX3NpbmdsZV9mZGJfZmlsdGVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL3NoYXJlZF9mZGIuYz00NT1ib29sIG1seDVfbGFnX3NoYXJlZF9mZGJfc3VwcG9ydGVkKHN0cnVjdCBtbHg1X2xhZyAqbGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL3NoYXJlZF9mZGIuYy01MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvc2hhcmVkX2ZkYi5jOjUxOnN0YXRpYyBpbnQgbWx4NV9sYWdfY3JlYXRlX3NpbmdsZV9mZGJfZmlsdGVyKHN0cnVjdCBtbHg1X2xhZyAqbGRldiwgdTMyIGZpbHRlcilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvc2hhcmVkX2ZkYi5jLTUyLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL3NoYXJlZF9mZGIuYz0xODQ9aW50IG1seDVfbGFnX2NyZWF0ZV9zaW5nbGVfZmRiKHN0cnVjdCBtbHg1X2xhZyAqbGRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvc2hhcmVkX2ZkYi5jLTE4NS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL3NoYXJlZF9mZGIuYzoxODY6XHRyZXR1cm4gbWx4NV9sYWdfY3JlYXRlX3NpbmdsZV9mZGJfZmlsdGVyKGxkZXYsIE1MWDVfTEFHX0ZJTFRFUl9BTEwpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9zaGFyZWRfZmRiLmMtMTg3LX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL3NoYXJlZF9mZGIuYz0yMDk9aW50IG1seDVfbGFnX3NoYXJlZF9mZGJfY3JlYXRlKHN0cnVjdCBtbHg1X2xhZyAqbGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL3NoYXJlZF9mZGIuYy0yMzctXHR9IGVsc2Uge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9zaGFyZWRfZmRiLmM6MjM4Olx0XHRlcnIgPSBtbHg1X2xhZ19jcmVhdGVfc2luZ2xlX2ZkYl9maWx0ZXIobGRldiwgZ3JvdXBfaWQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9zaGFyZWRfZmRiLmMtMjM5LVx0XHRpZiAoZXJyKSB7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDE4OjExPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIyNzg2CgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogNDE5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgbWx4NSBSZWFjaGFiaWxpdHkgaW4gVmlydHVhbGl6ZWQgRW52aXJvbm1lbnRzKioKCk9rYXksIHNvIHRoZSBwcm9tcHQgc2F5cyB0byByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAgaWYgdGhlIHBhdGNoIHRhcmdldHMgdW5yZWFjaGFibGUgY29kZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCAmIzM0O0NhbiBtbHg1IGV2ZW4gKmJlKiByZWFjaGVkIGluIEdDRSBvciBRRU1VPyYjMzQ7IElmIHN5emthbGxlciBmb3VuZCBhIGJ1ZyByZWxhdGVkIHRvIGl0LCB0aGVuIHRoZSBhbnN3ZXIgbXVzdCBiZSB5ZXMsIGJ1dCBJIG5lZWQgdG8gdW5kZXJzdGFuZCAqaG93Ki4KClN5emthbGxlciBjYW4gZW11bGF0ZSBQQ0kgZGV2aWNlcyB1c2luZyBgc3l6X3BjaV9lcGAgb3IgYHN5el9wY2lfZXBfd3JpdGVgLCB3aGljaCBtZWFucyBpdOKAmXMgcHJvdmlkaW5nIGEgZmFrZSBQQ0kgY29uZmlnIHNwYWNlIGFuZCBNTUlPIHJlZ2lvbnMuIE5vdywgaWYgdGhlIGRyaXZlciBkb2VzbiYjMzk7dCByZXF1aXJlIHJlYWxseSBjb21wbGV4IGhhcmR3YXJlIGhhbmRzaGFrZXMgdGhhdCBmYWlsIGluc3RhbnRseSwgaXQgbWlnaHQgYWN0dWFsbHkgaGl0IHNvbWUgY29kZS4gVGhlIGtleSBxdWVzdGlvbiBpcyB3aGV0aGVyIG1seDUgaGFzIHN1Y2ggaW5pdGlhbGl6YXRpb24gcmVxdWlyZW1lbnRzLgoKTWVsbGFub3ggbWx4NSBkcml2ZXJzIHJlbHkgb24gZmlybXdhcmUgY29tbWFuZHMgdGhyb3VnaCBjb21tYW5kIHF1ZXVlcyBmb3IgaW5pdGlhbGl6YXRpb24sIHdoaWNoIGlzIGEgYml0IGludm9sdmVkLiBJZiB0aGUgUENJIGZ1enplciBpcyBqdXN0IHRocm93aW5nIHJhbmRvbSBkYXRhIGF0IHRoZSBNTUlPIHJlZ2lvbnMsIHRoZSBkcml2ZXIgbWlnaHQgZmFpbCB0byBpbml0aWFsaXplIOKAkyBvciwgaW4gYSBsdWNreSBndWVzcywgaXQgbWlnaHQgc3VjY2VlZCBpZiB0aGUgcmlnaHQgJiMzNDtyZXNwb25zZXMmIzM0OyBhcmUgcHJvdmlkZWQsIG9yIGlmIHRoZSBkcml2ZXIgc2ltcGx5IGRvZXNuJiMzOTt0IGNoZWNrLgoKU3l6a2FsbGVyIGRvZXMgaGF2ZSBhIGRlZGljYXRlZCBgc3l6X3BjaV9lcGAgZnV6emVyLCBidXQgaXQmIzM5O3MgZ2VuZXJhbGx5IG5vdCB2ZXJ5IGRlZXAgdW5sZXNzIHRoZXJlJiMzOTtzIGFuIGV4cGxpY2l0IGVtdWxhdG9yIGZvciB0aGUgc3BlY2lmaWMgZGV2aWNlLiBJIGtub3cgdGhlcmUmIzM5O3MgYSBgbmV0ZGV2c2ltYCBkcml2ZXIsIGJ1dCBpdOKAmXMgbm90IG1seDUuCgpTbywgZG9lcyBzeXprYWxsZXIgaGF2ZSAqYW55KiB3YXkgdG8gdGVzdCBtbHg1PyBJIG5lZWQgdG8gY2hlY2sgZm9yIGFueSBzb2Z0d2FyZSBlbXVsYXRpb24uIEkgc2hvdWxkIHNlYXJjaCBmb3IgJiMzNDttbHg1JiMzNDsgaW4gdGhlIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9gIGFuZCBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2AgZGlyZWN0b3JpZXMsIHRvIHNlZSBpZiB0aGVyZSYjMzk7cyBhIG1vY2sgb3Igb3RoZXIgZm9ybSBvZiBlbXVsYXRpb24uIFRoYXQgc2hvdWxkIGdpdmUgbWUgdGhlIGFuc3dlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTg6MTI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttb2NrJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDE4OjEyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIzNjYxCgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogMjEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgc3VtbWFyeSwgdGFpbG9yZWQgYXMgaWYgSSYjMzk7bSB0aGlua2luZyBpdDoKCioqQ2hlY2tpbmcgZm9yIFNpbXVsYXRpb24gRW52aXJvbm1lbnRzIGZvciBtbHg1KioKCkFscmlnaHQsIGxldCYjMzk7cyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgdGhlcmUgYXJlIGFueSByZWFkaWx5IGF2YWlsYWJsZSBzaW11bGF0aW9uIGVudmlyb25tZW50cyBmb3IgdGhlIGBtbHg1YCBoYXJkd2FyZS4gU3BlY2lmaWNhbGx5LCBJIG5lZWQgdG8ga25vdyBpZiB0aGVyZSYjMzk7cyBhbnl0aGluZyBsaWtlIGEgYGh3c2ltYCBzZXR1cCBvciBhIG1vcmUgZ2VuZXJhbCBgc2ltYCBlbnZpcm9ubWVudCB0aGF0IEkgY2FuIGxldmVyYWdlLiBLbm93aW5nIHRoZXNlIHdpbGwgc2F2ZSBhIGh1Z2UgYW1vdW50IG9mIGRldmVsb3BtZW50IHRpbWUsIGlmIHRoZXkgZXhpc3QuIEl0IHdvdWxkIGFsbG93IG1lIHRvIHRlc3QgYW5kIGV4cGVyaW1lbnQgd2l0aG91dCByZWx5aW5nIG9uIHRoZSBwaHlzaWNhbCBoYXJkd2FyZSBmb3IgZXZlcnkgbWlub3IgaXRlcmF0aW9uLiBMZXQmIzM5O3Mgc2VlIHdoYXQmIzM5O3Mgb3V0IHRoZXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAxODoxMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzaW0mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnPTE4NT1jb25maWcgTUxYNV9TRlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTE5MC1cdGRldmljZSBjYW4gc3VwcG9ydCBSRE1BLCBuZXRkZXZpY2UgYW5kIHZkcGEgZGV2aWNlLlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc6MTkxOlx0SXQgaXMgc2ltaWxhciB0byBhIFNSSU9WIFZGIGJ1dCBpdCBkb2VzbiYjMzk7dCByZXF1aXJlIFNSSU9WIHN1cHBvcnQuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xOTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZz0xOTM9Y29uZmlnIE1MWDVfU0ZfTUFOQUdFUlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTE5OS1cdHBvcnQgaXMgbWFuYWdlZCB0aHJvdWdoIGRldmxpbmsuICBBIHN1YmZ1bmN0aW9uIHN1cHBvcnRzIFJETUEsIG5ldGRldmljZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc6MjAwOlx0YW5kIHZkcGEgZGV2aWNlLiBJdCBpcyBzaW1pbGFyIHRvIGEgU1JJT1YgVkYgYnV0IGl0IGRvZXNuJiMzOTt0IHJlcXVpcmVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTIwMS1cdFNSSU9WIHN1cHBvcnQuXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTExNDQ9c3RhdGljIHZvaWQgd2FpdF9mdW5jX2hhbmRsZV9leGVjX3RpbWVvdXQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTE1MS1cdC8qIFJlLXdhaXQgb24gdGhlIGVudC1cdTAwM2Vkb25lIGFmdGVyIGV4ZWN1dGluZyB0aGUgcmVjb3ZlcnkgZmxvdy4gSWYgdGhlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTE1MjpcdCAqIHJlY292ZXJ5IGZsb3cgKG9yIGFueSBvdGhlciByZWNvdmVyeSBmbG93IHJ1bm5pbmcgc2ltdWx0YW5lb3VzbHkpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTE1My1cdCAqIGhhcyByZWNvdmVyZWQgYW4gRVFFLCBpdCBzaG91bGQgY2F1c2UgdGhlIGVudHJ5IHRvIGJlIGNvbXBsZXRlZCBieVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz0xMzY0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGZvcHMgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTM2NS1cdC5vd25lclx0PSBUSElTX01PRFVMRSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxMzY2Olx0Lm9wZW5cdD0gc2ltcGxlX29wZW4sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTM2Ny1cdC53cml0ZVx0PSBkYmdfd3JpdGUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTE1NTA9c3RhdGljIHNzaXplX3QgZGF0YV9yZWFkKHN0cnVjdCBmaWxlICpmaWxwLCBjaGFyIF9fdXNlciAqYnVmLCBzaXplX3QgY291bnQsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE1NTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTU1OTpcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcihidWYsIGNvdW50LCBwb3MsIGRiZy1cdTAwM2VvdXRfbXNnLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE1NjAtXHRcdFx0XHQgICAgICAgZGJnLVx1MDAzZW91dGxlbik7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTE1NjM9c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZGZvcHMgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTU2NC1cdC5vd25lclx0PSBUSElTX01PRFVMRSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNTY1Olx0Lm9wZW5cdD0gc2ltcGxlX29wZW4sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTU2Ni1cdC53cml0ZVx0PSBkYXRhX3dyaXRlLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz0xNTcwPXN0YXRpYyBzc2l6ZV90IG91dGxlbl9yZWFkKHN0cnVjdCBmaWxlICpmaWxwLCBjaGFyIF9fdXNlciAqYnVmLCBzaXplX3QgY291bnQsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE1ODEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTU4MjpcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcihidWYsIGNvdW50LCBwb3MsIG91dGxlbiwgZXJyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNTgzLX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9MTYyMT1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBvbGZvcHMgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTYyMi1cdC5vd25lclx0PSBUSElTX01PRFVMRSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNjIzOlx0Lm9wZW5cdD0gc2ltcGxlX29wZW4sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTYyNC1cdC53cml0ZVx0PSBvdXRsZW5fd3JpdGUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYz0xMjk9c3RhdGljIHNzaXplX3QgYXZlcmFnZV9yZWFkKHN0cnVjdCBmaWxlICpmaWxwLCBjaGFyIF9fdXNlciAqYnVmLCBzaXplX3QgY291bnQsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy0xNDItXHRyZXQgPSBzbnByaW50Zih0YnVmLCBzaXplb2YodGJ1ZiksIFwmIzM0OyVsbHVcXG5cJiMzNDssIGZpZWxkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM6MTQzOlx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKGJ1ZiwgY291bnQsIHBvcywgdGJ1ZiwgcmV0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtMTQ0LX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jPTE2Nz1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyByZXNldF9mb3BzID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy0xNjgtXHQub3duZXJcdD0gVEhJU19NT0RVTEUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jOjE2OTpcdC5vcGVuXHQ9IHNpbXBsZV9vcGVuLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy0xNzAtXHQud3JpdGVcdD0gcmVzZXRfd3JpdGUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYz0xNzM9c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgYXZlcmFnZV9mb3BzID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy0xNzQtXHQub3duZXJcdD0gVEhJU19NT0RVTEUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jOjE3NTpcdC5vcGVuXHQ9IHNpbXBsZV9vcGVuLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy0xNzYtXHQucmVhZFx0PSBhdmVyYWdlX3JlYWQsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYz0xNzk9c3RhdGljIHNzaXplX3Qgc2xvdHNfcmVhZChzdHJ1Y3QgZmlsZSAqZmlscCwgY2hhciBfX3VzZXIgKmJ1Ziwgc2l6ZV90IGNvdW50LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtMTkxLVx0cmV0ID0gc25wcmludGYodGJ1Ziwgc2l6ZW9mKHRidWYpLCBcJiMzNDslZFxcblwmIzM0OywgZmllbGQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYzoxOTI6XHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIoYnVmLCBjb3VudCwgcG9zLCB0YnVmLCByZXQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy0xOTMtfVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM9MTk1PXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHNsb3RzX2ZvcHMgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTE5Ni1cdC5vd25lclx0PSBUSElTX01PRFVMRSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM6MTk3Olx0Lm9wZW5cdD0gc2ltcGxlX29wZW4sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTE5OC1cdC5yZWFkXHQ9IHNsb3RzX3JlYWQsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYz00OTQ9c3RhdGljIHNzaXplX3QgZGJnX3JlYWQoc3RydWN0IGZpbGUgKmZpbHAsIGNoYXIgX191c2VyICpidWYsIHNpemVfdCBjb3VudCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTUyOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM6NTI5Olx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKGJ1ZiwgY291bnQsIHBvcywgdGJ1ZiwgcmV0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtNTMwLX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jPTUzMj1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBmb3BzID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy01MzMtXHQub3duZXJcdD0gVEhJU19NT0RVTEUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jOjUzNDpcdC5vcGVuXHQ9IHNpbXBsZV9vcGVuLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy01MzUtXHQucmVhZFx0PSBkYmdfcmVhZCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaD01MzY9c3RydWN0IG1seDVlX2ljb3NxIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaC01NTYtXHQgKiAoTkFQSSBzb2Z0aXJxIG9yIHByb2Nlc3Mvd29ya3F1ZXVlKS4gQWx3YXlzIHVzZSBzcGluX2xvY2tfYmggZm9yXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaDo1NTc6XHQgKiBzaW1wbGljaXR5IGFuZCBjb3JyZWN0bmVzcyBhY3Jvc3MgYWxsIGNvbnRleHRzLlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmgtNTU4LVx0ICovXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmg9ODgxPXN0cnVjdCBtbHg1ZV94c2sge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oLTg5NS0gKiBtdXN0IG5vdCBmYWlsLiBVc2Ugd2l0aCBjYXJlIGFuZCBtYWtlIHN1cmUgdGhlIHNhbWUgdmFyaWFibGUgaXMgbm90IHVzZWRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oOjg5NjogKiBzaW11bHRhbmVvdXNseSBieSBtdWx0aXBsZSB1c2Vycy5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oLTg5Ny0gKi9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcGFyYW1zLmM9NDk3PXUzMiBtbHg1ZV9tcHdycV9tYXhfcGFnZV9zaXplKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9wYXJhbXMuYy01MDItXHQvKiBUd28gTVRUcyBhcmUgbmVlZGVkIHRvIGZvcm0gYW4gb2N0d29yZC4gRHJpdmVyIGlzIHVzaW5nIGFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9wYXJhbXMuYzo1MDM6XHQgKiBzaW5nbGUgcGFnZSBwZXIgTVRUIGZvciBzaW1wbGljaXR5LiBIZW5jZSB0aGUgbGltaXQgb2YgaGF2aW5nXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcGFyYW1zLmMtNTA0LVx0ICogYXQgbGVhc3QgMiBwYWdlcyBwZXIgV1FFLlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvdGMuYz0yNDc9aW50IG1seDVlX3JlcF9zZXR1cF90YyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBlbnVtIHRjX3NldHVwX3R5cGUgdHlwZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL3RjLmMtMjU2LVx0Y2FzZSBUQ19TRVRVUF9CTE9DSzpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvdGMuYzoyNTc6XHRcdHJldHVybiBmbG93X2Jsb2NrX2NiX3NldHVwX3NpbXBsZSh0eXBlX2RhdGEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL3RjLmMtMjU4LVx0XHRcdFx0XHRcdCAgXHUwMDI2bWx4NWVfcmVwX2Jsb2NrX3RjX2NiX2xpc3QsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcC90Yy5jLTI2MS1cdGNhc2UgVENfU0VUVVBfRlQ6XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL3RjLmM6MjYyOlx0XHRyZXR1cm4gZmxvd19ibG9ja19jYl9zZXR1cF9zaW1wbGUodHlwZV9kYXRhLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcC90Yy5jLTI2My1cdFx0XHRcdFx0XHQgIFx1MDAyNm1seDVlX3JlcF9ibG9ja19mdF9jYl9saXN0LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Y190dW5fZ2VuZXZlLmM9NjQ9c3RhdGljIGludCBtbHg1ZV90Y190dW5faW5pdF9lbmNhcF9hdHRyX2dlbmV2ZShzdHJ1Y3QgbmV0X2RldmljZSAqdHVubmVsX2Rldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGNfdHVuX2dlbmV2ZS5jLTcwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjX3R1bl9nZW5ldmUuYzo3MTpcdC8qIFJlZm9ybWF0IHR5cGUgZm9yIEdFTkVWRSBlbmNhcCBpcyBzaW1pbGFyIHRvIFZYTEFOOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjX3R1bl9nZW5ldmUuYy03Mi1cdCAqIGluIGJvdGggY2FzZXMgdGhlIEhXIGFkZHMgaW4gdGhlIHNhbWUgcGxhY2UgYVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi94ZHAuYz0yMDM9ZW51bSBtbHg1X3Jzc19oYXNoX3R5cGUge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi94ZHAuYy0yMjMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4veGRwLmM6MjI0Oi8qIEludmFsaWQgY29tYmluYXRpb25zIHdpbGwgc2ltcGx5IHJldHVybiB6ZXJvLCBhbGxvd3Mgbm8gYm91bmRhcnkgY2hlY2tzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4veGRwLmMtMjI1LXN0YXRpYyBjb25zdCBlbnVtIHhkcF9yc3NfaGFzaF90eXBlIG1seDVfeGRwX3Jzc190eXBlW1JTU19UWVBFX01BWF9UQUJMRV0gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYz0zOTc4PXN0YXRpYyBpbnQgbWx4NWVfc2V0dXBfdGNfbXFwcmlvKHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMtMzk4MS1cdC8qIE1RUFJJTyBpcyBhbm90aGVyIHRvcGxldmVsIHFkaXNjIHRoYXQgY2FuJiMzOTt0IGJlIGF0dGFjaGVkXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jOjM5ODI6XHQgKiBzaW11bHRhbmVvdXNseSB3aXRoIHRoZSBvZmZsb2FkZWQgSFRCLlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYy0zOTgzLVx0ICovXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYz00MDAyPXN0YXRpYyBpbnQgbWx4NWVfc2V0dXBfdGMoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgZW51bSB0Y19zZXR1cF90eXBlIHR5cGUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYy00MDIwLVx0XHRmLVx1MDAzZXVubG9ja2VkX2RyaXZlcl9jYiA9IHRydWU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jOjQwMjE6XHRcdHJldHVybiBmbG93X2Jsb2NrX2NiX3NldHVwX3NpbXBsZSh0eXBlX2RhdGEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jLTQwMjItXHRcdFx0XHRcdFx0ICBcdTAwMjZtbHg1ZV9ibG9ja19jYl9saXN0LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmM9NTUzNj1zdGF0aWMgdm9pZCBtbHg1ZV9nZXRfYmFzZV9zdGF0cyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMtNTYyNC1cdCAqICAgIC0gIGJlZW4gc2h1dGRvd24gYW5kIHNldCB0byBOVUxMLCBvclxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYzo1NjI1Olx0ICogICAgLSAgc2ltcGx5IGRpc2FibGVkIChiaXQgdW5zZXQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jLTU2MjYtXHQgKlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmM9NTc1OD1zdGF0aWMgaW50IG1seDVlX3F1ZXVlX3N0b3Aoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdm9pZCAqb2xkcSwgaW50IHF1ZXVlX2luZGV4KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYy01NzU5LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmM6NTc2MDpcdC8qIEluIG1seDUgYSB0eHEgY2Fubm90IGJlIHNpbXBseSBzdG9wcGVkIGluIGlzb2xhdGlvbiwgb25seSByZXN0YXJ0ZWQuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jLTU3NjEtXHQgKiBtbHg1ZV9xdWV1ZV9zdGFydCBkb2VzIG5vdCBmYWlsLCB3ZSBzdG9wIHRoZSBvbGQgcXVldWUgdGhlcmUuXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3J4LmM9MTM2NT1zdGF0aWMgaW5saW5lIHZvaWQgbWx4NWVfaGFuZGxlX2NzdW0oc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fcnguYy0xMzkzLVx0ICogRGV0ZWN0aW5nIHRoZXNlIHBhZGRlZCBmcmFtZXMgcmVxdWlyZXMgdG8gdmVyaWZ5IGFuZCBwYXJzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3J4LmM6MTM5NDpcdCAqIElQIGhlYWRlcnMsIHNvIHdlIHNpbXBseSBmb3JjZSBhbGwgdGhvc2Ugc21hbGwgZnJhbWVzIHRvIGJlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fcnguYy0xMzk1LVx0ICogQ0hFQ0tTVU1fVU5ORUNFU1NBUlkgZXZlbiBpZiB0aGV5IGFyZSBub3QgcGFkZGVkLlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lc3dpdGNoX29mZmxvYWRzLmM9ODY9bWx4NV9lc3dpdGNoX3NldF9ydWxlX2Zsb3dfc291cmNlKHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaF9vZmZsb2Fkcy5jLTEwNC0vKiBBY3R1YWxseSBvbmx5IHRoZSB1cHBlciAxNiBiaXRzIG9mIHJlZyBjMCBuZWVkIHRvIGJlIGNsZWFyZWQsIGJ1dCB0aGUgbG93ZXIgMTYgYml0c1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2hfb2ZmbG9hZHMuYzoxMDU6ICogYXJlIG5vdCBuZWVkZWQgYXMgd2VsbCBpbiB0aGUgZm9sbG93aW5nIHByb2Nlc3MuIFNvIGNsZWFyIHRoZW0gYWxsIGZvciBzaW1wbGljaXR5LlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2hfb2ZmbG9hZHMuYy0xMDYtICovXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xpYi9jcnlwdG8uYz00NTQ9c3RhdGljIGludCBtbHg1X2NyeXB0b19kZWtfcG9vbF9wdXNoKHN0cnVjdCBtbHg1X2NyeXB0b19kZWtfcG9vbCAqcG9vbCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGliL2NyeXB0by5jLTQ3Ni0gKiBod2VpZ2h0X2xvbmcobmVlZF9zeW5jIFhPUiBpbl91c2UpLCBhbmQgdGhlIG5lZWRfc3luYyBiaXRzIGNhbiBiZSByZXNldFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xpYi9jcnlwdG8uYzo0Nzc6ICogYnkgc2ltcGx5IGNvcHlpbmcgZnJvbSBpbl91c2UgYml0cy5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9saWIvY3J5cHRvLmMtNDc4LSAqL1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9saWIvc2QuYz03NTU9c3RhdGljIHNzaXplX3QgZGV2X3JlYWQoc3RydWN0IGZpbGUgKmZpbHAsIGNoYXIgX191c2VyICpidWYsIHNpemVfdCBjb3VudCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGliL3NkLmMtNzY1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xpYi9zZC5jOjc2NjpcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcihidWYsIGNvdW50LCBwb3MsIHRidWYsIHJldCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGliL3NkLmMtNzY3LX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGliL3NkLmM9NzY5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGRldl9mb3BzID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xpYi9zZC5jLTc3MC1cdC5vd25lclx0PSBUSElTX01PRFVMRSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9saWIvc2QuYzo3NzE6XHQub3Blblx0PSBzaW1wbGVfb3BlbixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9saWIvc2QuYy03NzItXHQucmVhZFx0PSBkZXZfcmVhZCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jPTY4PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM6Njk6aHdzX2J3Y19tYXRjaGVyX21vdmVfYWxsX3NpbXBsZShzdHJ1Y3QgbWx4NWh3c19id2NfbWF0Y2hlciAqYndjX21hdGNoZXIpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jLTcwLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jPTE2Nj1zdGF0aWMgaW50IGh3c19id2NfbWF0Y2hlcl9tb3ZlX2FsbChzdHJ1Y3QgbWx4NWh3c19id2NfbWF0Y2hlciAqYndjX21hdGNoZXIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy0xNjktXHRjYXNlIE1MWDVIV1NfQldDX01BVENIRVJfU0lNUExFOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYzoxNzA6XHRcdHJldHVybiBod3NfYndjX21hdGNoZXJfbW92ZV9hbGxfc2ltcGxlKGJ3Y19tYXRjaGVyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtMTcxLVx0Y2FzZSBNTFg1SFdTX0JXQ19NQVRDSEVSX0NPTVBMRVhfRklSU1Q6XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYz0xODA9c3RhdGljIGludCBod3NfYndjX21hdGNoZXJfbW92ZShzdHJ1Y3QgbWx4NWh3c19id2NfbWF0Y2hlciAqYndjX21hdGNoZXIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy0yMjUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jOjIyNjppbnQgbWx4NWh3c19id2NfbWF0Y2hlcl9jcmVhdGVfc2ltcGxlKHN0cnVjdCBtbHg1aHdzX2J3Y19tYXRjaGVyICpid2NfbWF0Y2hlcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtMjI3LVx0XHRcdFx0ICAgICAgc3RydWN0IG1seDVod3NfdGFibGUgKnRhYmxlLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM9MzIwPW1seDVod3NfYndjX21hdGNoZXJfY3JlYXRlKHN0cnVjdCBtbHg1aHdzX3RhYmxlICp0YWJsZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jLTM1Mi1cdGVsc2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM6MzUzOlx0XHRyZXQgPSBtbHg1aHdzX2J3Y19tYXRjaGVyX2NyZWF0ZV9zaW1wbGUoYndjX21hdGNoZXIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jLTM1NC1cdFx0XHRcdFx0XHRcdHRhYmxlLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtMzY5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYzozNzA6aW50IG1seDVod3NfYndjX21hdGNoZXJfZGVzdHJveV9zaW1wbGUoc3RydWN0IG1seDVod3NfYndjX21hdGNoZXIgKmJ3Y19tYXRjaGVyKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy0zNzEte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM9Mzg3PWludCBtbHg1aHdzX2J3Y19tYXRjaGVyX2Rlc3Ryb3koc3RydWN0IG1seDVod3NfYndjX21hdGNoZXIgKmJ3Y19tYXRjaGVyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtMzk5LVx0ZWxzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYzo0MDA6XHRcdG1seDVod3NfYndjX21hdGNoZXJfZGVzdHJveV9zaW1wbGUoYndjX21hdGNoZXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy00MDEtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYz02MDg9c3RhdGljIGludCBod3NfYndjX3J1bGVfY250X2RlY193aXRoX3NocmluayhzdHJ1Y3QgbWx4NWh3c19id2NfcnVsZSAqYndjX3J1bGUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy02NDAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jOjY0MTppbnQgbWx4NWh3c19id2NfcnVsZV9kZXN0cm95X3NpbXBsZShzdHJ1Y3QgbWx4NWh3c19id2NfcnVsZSAqYndjX3J1bGUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jLTY0Mi17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYz02NjU9aW50IG1seDVod3NfYndjX3J1bGVfZGVzdHJveShzdHJ1Y3QgbWx4NWh3c19id2NfcnVsZSAqYndjX3J1bGUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy02NzMtXHRlbHNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jOjY3NDpcdFx0cmV0ID0gbWx4NWh3c19id2NfcnVsZV9kZXN0cm95X3NpbXBsZShid2NfcnVsZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jLTY3NS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jPTEwMDA9c3RhdGljIGludCBod3NfYndjX3J1bGVfY250X2luY193aXRoX3JlaGFzaChzdHJ1Y3QgbWx4NWh3c19id2NfcnVsZSAqYndjX3J1bGUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy0xMDM1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYzoxMDM2OmludCBtbHg1aHdzX2J3Y19ydWxlX2NyZWF0ZV9zaW1wbGUoc3RydWN0IG1seDVod3NfYndjX3J1bGUgKmJ3Y19ydWxlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy0xMDM3LVx0XHRcdFx0ICAgdTMyICptYXRjaF9wYXJhbSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jPTExMzk9bWx4NWh3c19id2NfcnVsZV9jcmVhdGUoc3RydWN0IG1seDVod3NfYndjX21hdGNoZXIgKmJ3Y19tYXRjaGVyLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtMTE3MC1cdGVsc2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM6MTE3MTpcdFx0cmV0ID0gbWx4NWh3c19id2NfcnVsZV9jcmVhdGVfc2ltcGxlKGJ3Y19ydWxlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy0xMTcyLVx0XHRcdFx0XHRcdCAgICAgcGFyYW1zLVx1MDAzZW1hdGNoX2J1Zixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5oPTIxPWVudW0gbWx4NWh3c19id2NfbWF0Y2hlcl90eXBlIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5oLTI5LVx0LyogQSBzdWJtYXRjaGVyIHRoYXQgaXMgcGFydCBvZiBhIGNvbXBsZXggbWF0Y2hlci4gRm9yIG1vc3QgcHVycG9zZXNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmg6MzA6XHQgKiB0aGVzZSBhcmUgdHJlYXRlZCBhcyBzaW1wbGUgbWF0Y2hlcnMsIGV4Y2VwdCB3aGVuIGl0IGNvbWVzIHRvIG1vdmluZ1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuaC0zMS1cdCAqIHJ1bGVzIGR1cmluZyByZXNpemUuXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuaD03MD1pbnRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmg6NzE6bWx4NWh3c19id2NfbWF0Y2hlcl9jcmVhdGVfc2ltcGxlKHN0cnVjdCBtbHg1aHdzX2J3Y19tYXRjaGVyICpid2NfbWF0Y2hlcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmgtNzItXHRcdFx0XHQgIHN0cnVjdCBtbHg1aHdzX3RhYmxlICp0YWJsZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5oLTc3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuaDo3ODppbnQgbWx4NWh3c19id2NfbWF0Y2hlcl9kZXN0cm95X3NpbXBsZShzdHJ1Y3QgbWx4NWh3c19id2NfbWF0Y2hlciAqYndjX21hdGNoZXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuaC03OS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5oPTgyPXZvaWQgbWx4NWh3c19id2NfcnVsZV9mcmVlKHN0cnVjdCBtbHg1aHdzX2J3Y19ydWxlICpid2NfcnVsZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5oLTgzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuaDo4NDppbnQgbWx4NWh3c19id2NfcnVsZV9jcmVhdGVfc2ltcGxlKHN0cnVjdCBtbHg1aHdzX2J3Y19ydWxlICpid2NfcnVsZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmgtODUtXHRcdFx0XHQgICB1MzIgKm1hdGNoX3BhcmFtLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmgtODktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5oOjkwOmludCBtbHg1aHdzX2J3Y19ydWxlX2Rlc3Ryb3lfc2ltcGxlKHN0cnVjdCBtbHg1aHdzX2J3Y19ydWxlICpid2NfcnVsZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5oLTkxLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYz0xOTU9c3RhdGljIHZvaWQgaHdzX2F2b2lkX2lwdjZfc3BsaXQoc3RydWN0IG1seDVod3NfbWF0Y2hfcGFyYW1ldGVycyAqb3JpZyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmMtMjE2LSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jOjIxNzpzdGF0aWMgaW50IGh3c19nZXRfc2ltcGxlX3BhcmFtcyhzdHJ1Y3QgbWx4NWh3c19jb250ZXh0ICpjdHgsIHU4IG1hdGNoX2NyaXRlcmlhLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTIxOC1cdFx0XHRcdCBzdHJ1Y3QgbWx4NWh3c19tYXRjaF9wYXJhbWV0ZXJzICpvcmlnLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYy0yNjYtXHRcdFx0ICpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYzoyNjc6XHRcdFx0ICogRm9yIG5vdywga2VlcCB0aGUgY29kZSBzaW1wbGUuIFRoaXMgcmVzdWx0cyBpbiBhblxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTI2OC1cdFx0XHQgKiBleHRyYSBzdWJtYXRjaGVyIGluIHNvbWUgY2FzZXMsIGJ1dCBpdCYjMzk7cyBnb29kIGVub3VnaC5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmM9Mjk5PWh3c19id2NfbWF0Y2hlcl9zcGxpdF9tYXNrKHN0cnVjdCBtbHg1aHdzX2NvbnRleHQgKmN0eCwgdTggbWF0Y2hfY3JpdGVyaWEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTMyOS1cdFx0fVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jOjMzMDpcdFx0cmV0ID0gaHdzX2dldF9zaW1wbGVfcGFyYW1zKGN0eCwgbWF0Y2hfY3JpdGVyaWEsIFx1MDAyNm1hc2tfY29weSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYy0zMzEtXHRcdFx0XHRcdCAgICBcdTAwMjZzdWJtYXNrc1tpXSk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jPTM4OD1zdGF0aWMgaW50IGh3c19zdWJtYXRjaGVyX2luaXRfZmlyc3Qoc3RydWN0IG1seDVod3NfYndjX21hdGNoZXIgKmNtYXRjaGVyLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYy00MTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmM6NDExOlx0cmV0ID0gbWx4NWh3c19id2NfbWF0Y2hlcl9jcmVhdGVfc2ltcGxlKHN1Ym0tXHUwMDNlYndjX21hdGNoZXIsIHN1Ym0tXHUwMDNldGJsLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTQxMi1cdFx0XHRcdFx0XHRwcmlvcml0eSwgbWF0Y2hfY3JpdGVyaWEsIG1hc2ssXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTQyNy1kZXN0cm95X21hdGNoZXI6XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmM6NDI4Olx0bWx4NWh3c19id2NfbWF0Y2hlcl9kZXN0cm95X3NpbXBsZShzdWJtLVx1MDAzZWJ3Y19tYXRjaGVyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYy00MjktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jPTQzMz1zdGF0aWMgaW50IGh3c19zdWJtYXRjaGVyX2luaXQoc3RydWN0IG1seDVod3NfYndjX21hdGNoZXIgKmNtYXRjaGVyLCBpbnQgaWR4LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYy00ODEtXHQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYzo0ODI6XHRyZXQgPSBtbHg1aHdzX2J3Y19tYXRjaGVyX2NyZWF0ZV9zaW1wbGUoc3VibS1cdTAwM2Vid2NfbWF0Y2hlciwgc3VibS1cdTAwM2V0YmwsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmMtNDgzLVx0XHRcdFx0XHRcdHByaW9yaXR5LCBtYXRjaF9jcml0ZXJpYSwgbWFzayxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmMtNDk5LWRlc3Ryb3lfbWF0Y2hlcjpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYzo1MDA6XHRtbHg1aHdzX2J3Y19tYXRjaGVyX2Rlc3Ryb3lfc2ltcGxlKHN1Ym0tXHUwMDNlYndjX21hdGNoZXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTUwMS1mcmVlX21hdGNoZXI6XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jPTUxMT1zdGF0aWMgdm9pZCBod3Nfc3VibWF0Y2hlcl9kZXN0cm95KHN0cnVjdCBtbHg1aHdzX2J3Y19tYXRjaGVyICpjbWF0Y2hlcixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmMtNTIyLVx0aWYgKHN1Ym0tXHUwMDNlYndjX21hdGNoZXIpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYzo1MjM6XHRcdG1seDVod3NfYndjX21hdGNoZXJfZGVzdHJveV9zaW1wbGUoc3VibS1cdTAwM2Vid2NfbWF0Y2hlcik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmMtNTI0LVx0XHRpZiAoaWR4KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYz02Njc9X19tdXN0X2hvbGQoXHUwMDI2c3VibS1cdTAwM2VoYXNoX2xvY2spXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTcwMS1cdFx0ICogTm90ZSB0aGF0IHdlIGRvbiYjMzk7dCBoYXZlIGFueSBpbmRpY2F0aW9uIGZvciB0aGUgcnVsZSBjcmVhdGlvblxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jOjcwMjpcdFx0ICogcHJvY2VzcyB0aGF0IGEgcnVsZSB3aXRoIHNpbWlsYXIgbWF0Y2hpbmcgcGFyYW1zIGFscmVhZHlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYy03MDMtXHRcdCAqIGV4aXN0cyAtIG5vIGhhcm0gZG9uZSB3aGVuIHRoaXMgcnVsZSBpcyBiZSBvdmVyd3JpdHRlbiBieVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYz03NDk9c3RhdGljIGludCBod3NfY29tcGxleF9zdWJydWxlX2NyZWF0ZShzdHJ1Y3QgbWx4NWh3c19id2NfbWF0Y2hlciAqY21hdGNoZXIsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTc4Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYzo3ODM6XHRyZXQgPSBtbHg1aHdzX2J3Y19ydWxlX2NyZWF0ZV9zaW1wbGUoc3VicnVsZSwgbWF0Y2hfcGFyYW1zLCBhY3Rpb25zLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTc4NC1cdFx0XHRcdFx0ICAgICBmbG93X3NvdXJjZSwgYndjX3F1ZXVlX2lkeCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jPTc5OT1zdGF0aWMgaW50IGh3c19jb21wbGV4X3N1YnJ1bGVfZGVzdHJveShzdHJ1Y3QgbWx4NWh3c19id2NfcnVsZSAqYndjX3J1bGUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTgxNi1cdGJ3Y19ydWxlLVx1MDAzZXJ1bGUtXHUwMDNlc2tpcF9kZWxldGUgPSAhaXNfbGFzdF9ydWxlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jOjgxNzpcdHJldCA9IG1seDVod3NfYndjX3J1bGVfZGVzdHJveV9zaW1wbGUoYndjX3J1bGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTgxOC1cdGlmICh1bmxpa2VseShyZXQpKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYz05Njk9aW50IG1seDVod3NfYndjX21hdGNoZXJfY29tcGxleF9tb3ZlKHN0cnVjdCBtbHg1aHdzX2J3Y19tYXRjaGVyICpid2NfbWF0Y2hlcilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmMtOTkzLVx0XHRsaXN0X2Zvcl9lYWNoX2VudHJ5KHRtcF9id2NfcnVsZSwgcnVsZXNfbGlzdCwgbGlzdF9ub2RlKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmM6OTk0Olx0XHRcdC8qIENoZWNrIGlmIGEgcnVsZSB3aXRoIHNpbWlsYXIgdGFnIGhhcyBhbHJlYWR5XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmMtOTk1LVx0XHRcdCAqIGJlZW4gbW92ZWQuXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5oPTMyPXN0cnVjdCBtbHg1aHdzX2J3Y19jb21wbGV4X3N1Ym1hdGNoZXIge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguaC00MC1cdHN0cnVjdCBtbHg1aHdzX2FjdGlvbiAqYWN0aW9uX3RibDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguaDo0MTpcdC8qIFRoaXMgc3VibWF0Y2hlciYjMzk7cyBzaW1wbGUgbWF0Y2hlci4gVGhlIGZpcnN0IHN1Ym1hdGNoZXIgcG9pbnRzIHRvIHRoZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5oLTQyLVx0ICogb3V0ZXIgKGNvbXBsZXgpIG1hdGNoZXIuXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmM9NzIxPWh3c19kZWZpbmVyX2NvbnZfb3V0ZXIoc3RydWN0IG1seDVod3NfZGVmaW5lcl9jb252X2RhdGEgKmNkLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTgxNC1cdFx0SFdTX1NFVF9IRFIoZmMsIG1hdGNoX3BhcmFtLCBJUFY2X1NSQ18xMjdfOTZfTyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jOjgxNTpcdFx0XHQgICAgb3V0ZXJfaGVhZGVycy5zcmNfaXB2NF9zcmNfaXB2Ni5pcHY2X3NpbXBsZV9sYXlvdXQuaXB2Nl8xMjdfOTYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy04MTYtXHRcdFx0ICAgIGlwdjZfc3JjX291dGVyLmlwdjZfYWRkcmVzc18xMjdfOTYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtODE3LVx0XHRIV1NfU0VUX0hEUihmYywgbWF0Y2hfcGFyYW0sIElQVjZfU1JDXzk1XzY0X08sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYzo4MTg6XHRcdFx0ICAgIG91dGVyX2hlYWRlcnMuc3JjX2lwdjRfc3JjX2lwdjYuaXB2Nl9zaW1wbGVfbGF5b3V0LmlwdjZfOTVfNjQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy04MTktXHRcdFx0ICAgIGlwdjZfc3JjX291dGVyLmlwdjZfYWRkcmVzc185NV82NCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy04MjAtXHRcdEhXU19TRVRfSERSKGZjLCBtYXRjaF9wYXJhbSwgSVBWNl9TUkNfNjNfMzJfTyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jOjgyMTpcdFx0XHQgICAgb3V0ZXJfaGVhZGVycy5zcmNfaXB2NF9zcmNfaXB2Ni5pcHY2X3NpbXBsZV9sYXlvdXQuaXB2Nl82M18zMixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTgyMi1cdFx0XHQgICAgaXB2Nl9zcmNfb3V0ZXIuaXB2Nl9hZGRyZXNzXzYzXzMyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTgyMy1cdFx0SFdTX1NFVF9IRFIoZmMsIG1hdGNoX3BhcmFtLCBJUFY2X1NSQ18zMV8wX08sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYzo4MjQ6XHRcdFx0ICAgIG91dGVyX2hlYWRlcnMuc3JjX2lwdjRfc3JjX2lwdjYuaXB2Nl9zaW1wbGVfbGF5b3V0LmlwdjZfMzFfMCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTgyNS1cdFx0XHQgICAgaXB2Nl9zcmNfb3V0ZXIuaXB2Nl9hZGRyZXNzXzMxXzApO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTgyNy1cdFx0SFdTX1NFVF9IRFIoZmMsIG1hdGNoX3BhcmFtLCBJUFY2X0RTVF8xMjdfOTZfTyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jOjgyODpcdFx0XHQgICAgb3V0ZXJfaGVhZGVycy5kc3RfaXB2NF9kc3RfaXB2Ni5pcHY2X3NpbXBsZV9sYXlvdXQuaXB2Nl8xMjdfOTYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy04MjktXHRcdFx0ICAgIGlwdjZfZHN0X291dGVyLmlwdjZfYWRkcmVzc18xMjdfOTYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtODMwLVx0XHRIV1NfU0VUX0hEUihmYywgbWF0Y2hfcGFyYW0sIElQVjZfRFNUXzk1XzY0X08sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYzo4MzE6XHRcdFx0ICAgIG91dGVyX2hlYWRlcnMuZHN0X2lwdjRfZHN0X2lwdjYuaXB2Nl9zaW1wbGVfbGF5b3V0LmlwdjZfOTVfNjQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy04MzItXHRcdFx0ICAgIGlwdjZfZHN0X291dGVyLmlwdjZfYWRkcmVzc185NV82NCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy04MzMtXHRcdEhXU19TRVRfSERSKGZjLCBtYXRjaF9wYXJhbSwgSVBWNl9EU1RfNjNfMzJfTyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jOjgzNDpcdFx0XHQgICAgb3V0ZXJfaGVhZGVycy5kc3RfaXB2NF9kc3RfaXB2Ni5pcHY2X3NpbXBsZV9sYXlvdXQuaXB2Nl82M18zMixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTgzNS1cdFx0XHQgICAgaXB2Nl9kc3Rfb3V0ZXIuaXB2Nl9hZGRyZXNzXzYzXzMyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTgzNi1cdFx0SFdTX1NFVF9IRFIoZmMsIG1hdGNoX3BhcmFtLCBJUFY2X0RTVF8zMV8wX08sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYzo4Mzc6XHRcdFx0ICAgIG91dGVyX2hlYWRlcnMuZHN0X2lwdjRfZHN0X2lwdjYuaXB2Nl9zaW1wbGVfbGF5b3V0LmlwdjZfMzFfMCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTgzOC1cdFx0XHQgICAgaXB2Nl9kc3Rfb3V0ZXIuaXB2Nl9hZGRyZXNzXzMxXzApO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTg0MS1cdFx0SFdTX1NFVF9IRFIoZmMsIG1hdGNoX3BhcmFtLCBJUFY0X1NSQ19PLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmM6ODQyOlx0XHRcdCAgICBvdXRlcl9oZWFkZXJzLnNyY19pcHY0X3NyY19pcHY2LmlwdjZfc2ltcGxlX2xheW91dC5pcHY2XzMxXzAsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy04NDMtXHRcdFx0ICAgIGlwdjRfc3JjX2Rlc3Rfb3V0ZXIuc291cmNlX2FkZHJlc3MpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTg0NS1cdFx0SFdTX1NFVF9IRFIoZmMsIG1hdGNoX3BhcmFtLCBJUFY0X0RTVF9PLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmM6ODQ2Olx0XHRcdCAgICBvdXRlcl9oZWFkZXJzLmRzdF9pcHY0X2RzdF9pcHY2LmlwdjZfc2ltcGxlX2xheW91dC5pcHY2XzMxXzAsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy04NDctXHRcdFx0ICAgIGlwdjRfc3JjX2Rlc3Rfb3V0ZXIuZGVzdGluYXRpb25fYWRkcmVzcyk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmM9ODk4PWh3c19kZWZpbmVyX2NvbnZfaW5uZXIoc3RydWN0IG1seDVod3NfZGVmaW5lcl9jb252X2RhdGEgKmNkLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTk5MC1cdFx0SFdTX1NFVF9IRFIoZmMsIG1hdGNoX3BhcmFtLCBJUFY2X1NSQ18xMjdfOTZfSSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jOjk5MTpcdFx0XHQgICAgaW5uZXJfaGVhZGVycy5zcmNfaXB2NF9zcmNfaXB2Ni5pcHY2X3NpbXBsZV9sYXlvdXQuaXB2Nl8xMjdfOTYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy05OTItXHRcdFx0ICAgIGlwdjZfc3JjX2lubmVyLmlwdjZfYWRkcmVzc18xMjdfOTYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtOTkzLVx0XHRIV1NfU0VUX0hEUihmYywgbWF0Y2hfcGFyYW0sIElQVjZfU1JDXzk1XzY0X0ksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYzo5OTQ6XHRcdFx0ICAgIGlubmVyX2hlYWRlcnMuc3JjX2lwdjRfc3JjX2lwdjYuaXB2Nl9zaW1wbGVfbGF5b3V0LmlwdjZfOTVfNjQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy05OTUtXHRcdFx0ICAgIGlwdjZfc3JjX2lubmVyLmlwdjZfYWRkcmVzc185NV82NCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy05OTYtXHRcdEhXU19TRVRfSERSKGZjLCBtYXRjaF9wYXJhbSwgSVBWNl9TUkNfNjNfMzJfSSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jOjk5NzpcdFx0XHQgICAgaW5uZXJfaGVhZGVycy5zcmNfaXB2NF9zcmNfaXB2Ni5pcHY2X3NpbXBsZV9sYXlvdXQuaXB2Nl82M18zMixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTk5OC1cdFx0XHQgICAgaXB2Nl9zcmNfaW5uZXIuaXB2Nl9hZGRyZXNzXzYzXzMyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTk5OS1cdFx0SFdTX1NFVF9IRFIoZmMsIG1hdGNoX3BhcmFtLCBJUFY2X1NSQ18zMV8wX0ksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYzoxMDAwOlx0XHRcdCAgICBpbm5lcl9oZWFkZXJzLnNyY19pcHY0X3NyY19pcHY2LmlwdjZfc2ltcGxlX2xheW91dC5pcHY2XzMxXzAsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy0xMDAxLVx0XHRcdCAgICBpcHY2X3NyY19pbm5lci5pcHY2X2FkZHJlc3NfMzFfMCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtMTAwMy1cdFx0SFdTX1NFVF9IRFIoZmMsIG1hdGNoX3BhcmFtLCBJUFY2X0RTVF8xMjdfOTZfSSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jOjEwMDQ6XHRcdFx0ICAgIGlubmVyX2hlYWRlcnMuZHN0X2lwdjRfZHN0X2lwdjYuaXB2Nl9zaW1wbGVfbGF5b3V0LmlwdjZfMTI3Xzk2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtMTAwNS1cdFx0XHQgICAgaXB2Nl9kc3RfaW5uZXIuaXB2Nl9hZGRyZXNzXzEyN185Nik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy0xMDA2LVx0XHRIV1NfU0VUX0hEUihmYywgbWF0Y2hfcGFyYW0sIElQVjZfRFNUXzk1XzY0X0ksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYzoxMDA3Olx0XHRcdCAgICBpbm5lcl9oZWFkZXJzLmRzdF9pcHY0X2RzdF9pcHY2LmlwdjZfc2ltcGxlX2xheW91dC5pcHY2Xzk1XzY0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtMTAwOC1cdFx0XHQgICAgaXB2Nl9kc3RfaW5uZXIuaXB2Nl9hZGRyZXNzXzk1XzY0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTEwMDktXHRcdEhXU19TRVRfSERSKGZjLCBtYXRjaF9wYXJhbSwgSVBWNl9EU1RfNjNfMzJfSSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jOjEwMTA6XHRcdFx0ICAgIGlubmVyX2hlYWRlcnMuZHN0X2lwdjRfZHN0X2lwdjYuaXB2Nl9zaW1wbGVfbGF5b3V0LmlwdjZfNjNfMzIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy0xMDExLVx0XHRcdCAgICBpcHY2X2RzdF9pbm5lci5pcHY2X2FkZHJlc3NfNjNfMzIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtMTAxMi1cdFx0SFdTX1NFVF9IRFIoZmMsIG1hdGNoX3BhcmFtLCBJUFY2X0RTVF8zMV8wX0ksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYzoxMDEzOlx0XHRcdCAgICBpbm5lcl9oZWFkZXJzLmRzdF9pcHY0X2RzdF9pcHY2LmlwdjZfc2ltcGxlX2xheW91dC5pcHY2XzMxXzAsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy0xMDE0LVx0XHRcdCAgICBpcHY2X2RzdF9pbm5lci5pcHY2X2FkZHJlc3NfMzFfMCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtMTAxNy1cdFx0SFdTX1NFVF9IRFIoZmMsIG1hdGNoX3BhcmFtLCBJUFY0X1NSQ19JLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmM6MTAxODpcdFx0XHQgICAgaW5uZXJfaGVhZGVycy5zcmNfaXB2NF9zcmNfaXB2Ni5pcHY2X3NpbXBsZV9sYXlvdXQuaXB2Nl8zMV8wLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtMTAxOS1cdFx0XHQgICAgaXB2NF9zcmNfZGVzdF9pbm5lci5zb3VyY2VfYWRkcmVzcyk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtMTAyMS1cdFx0SFdTX1NFVF9IRFIoZmMsIG1hdGNoX3BhcmFtLCBJUFY0X0RTVF9JLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmM6MTAyMjpcdFx0XHQgICAgaW5uZXJfaGVhZGVycy5kc3RfaXB2NF9kc3RfaXB2Ni5pcHY2X3NpbXBsZV9sYXlvdXQuaXB2Nl8zMV8wLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtMTAyMy1cdFx0XHQgICAgaXB2NF9zcmNfZGVzdF9pbm5lci5kZXN0aW5hdGlvbl9hZGRyZXNzKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvd2MuYy0xMi0jaW5jbHVkZSBcdTAwM2Nhc20vbmVvbi5oXHUwMDNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvd2MuYzoxMzojaW5jbHVkZSBcdTAwM2Nhc20vc2ltZC5oXHUwMDNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvd2MuYy0xNC0jZW5kaWZcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvd2MuYz0yNjQ9c3RhdGljIHZvaWQgbWx4NV9pb3dyaXRlNjRfY29weShzdHJ1Y3QgbWx4NV93Y19zcSAqc3EsIF9fYmUzMiBtbWlvX3dxZVsxNl0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3djLmMtMjY4LVx0aWYgKGNwdV9oYXNfbmVvbigpKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvd2MuYzoyNjk6XHRcdHNjb3BlZF9rc2ltZCgpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS93Yy5jLTI3MC1cdFx0XHRhc20gdm9sYXRpbGUoXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvd2MuYzoyNzE6XHRcdFx0XHRcJiMzNDsuYXJjaF9leHRlbnNpb24gc2ltZFxcblxcdFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3djLmMtMjcyLVx0XHRcdFx0XCYjMzQ7bGQxIHt2MC4xNmIsIHYxLjE2YiwgdjIuMTZiLCB2My4xNmJ9LCBbJTBdXFxuXFx0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDE4OjEyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM3NzY0CgkJCQkJCQlvdXRwdXQ6IDQyCgkJCQkJCQl0aG91Z2h0czogNzUwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IFRob3VnaHQgUHJvY2VzcyBvbiBSZWFjaGluZyBNTFg1IHdpdGggU3l6a2FsbGVyKioKCk9rYXksIHNvIEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgaG93IHN5emthbGxlciBtaWdodCBiZSBhYmxlIHRvIGludGVyYWN0IHdpdGggdGhlIGBNTFg1X1NGYCBhbmQgYE1MWDVfU0ZfTUFOQUdFUmAgc3ViZnVuY3Rpb25zLiBUaGVzZSBhcmUgbGlrZSBTUklPViBWRnMsIGJ1dCB3aXRob3V0IHRoZSBTUklPViByZXF1aXJlbWVudCwgc3VwcG9ydGluZyBSRE1BLCBuZXRkZXZzLCBhbmQgdmRwYSBkZXZpY2VzLiBUaGUgcXVlc3Rpb24gaXMsIGNhbiBzeXprYWxsZXIgZXZlbiAqY3JlYXRlKiB0aGVzZSBzdWJmdW5jdGlvbnM/CgpNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gbGV2ZXJhZ2Ugc3l6a2FsbGVyJiMzOTtzIFBDSSBmdXp6ZXIsIHNwZWNpZmljYWxseSBgc3l6X3BjaV9lcGAuIFRoYXQgY3JlYXRlcyBhIGZha2UgUENJIGRldmljZSwgd2hpY2ggdGhlIG1seDUgZHJpdmVyIGNvdWxkIHRoZW4gcHJvYmUuIElmIHRoZSBkcml2ZXIgaW5pdGlhbGl6ZXMgZmFyIGVub3VnaCB0byByZWdpc3RlciBhIG5ldGRldmljZSwgdGhlbiBzeXprYWxsZXIgY291bGQgdGFsayB0byBpdCB2aWEgc3RhbmRhcmQgbmV0bGluayBvciBzb2NrZXQgQVBJcy4gQnV0LCB0aGVyZSYjMzk7cyBhIHByb2JsZW06IHRoZSBtbHg1IGRyaXZlciBuZWVkcyBjb21wbGV4IGZpcm13YXJlIGNvbW1hbmRzIGR1cmluZyBpbml0aWFsaXphdGlvbi4gQW5kLCBgc3l6X3BjaV9lcGAgZG9lc24mIzM5O3QgZW11bGF0ZSB0aGF0IGZpcm13YXJlLgoKU28sIGRvZXMgc3l6a2FsbGVyIGhhdmUgYW55IHdheSB0byBhY3R1YWxseSAqcmVhY2gqIG1seDU/IEkmIzM5O2QgbGlrZSB0byBjaGVjayBmb3IgZXhpc3Rpbmcgc3l6a2FsbGVyIGJ1Z3MgaW4gbWx4NSwgYnV0IHdpdGhvdXQgYWNjZXNzIHRvIHRoZSBmdWxsIGtlcm5lbCBoaXN0b3J5LCBJJiMzOTttIHN0dWNrLgoKVGhlIHByb21wdCBub3RlcywgJiMzNDtDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUuLi4mIzM0OyBJZiBtbHg1IGlzIGEgKnBoeXNpY2FsKiBkZXZpY2UgZHJpdmVyIGFuZCAqbm90KiBzb2Z0d2FyZS1lbXVsYXRlZCwgdGhlbiBpdCYjMzk7cyBlZmZlY3RpdmVseSB1bnJlYWNoYWJsZSBpbiBHQ0UvUUVNVSB1bmxlc3MgdGhlcmUmIzM5O3MgYW4gZW11bGF0b3IuIEFuZCwgdGhlcmUgaXNuJiMzOTt0IGEgYG1seDVfc2ltYCBvciBgbWx4NV9od3NpbWAgZXF1aXZhbGVudC4KCkJ1dCwgdGhlcmUmIzM5O3MgYG5ldGRldnNpbWAuIFRoYXQmIzM5O3MgdXNlZCBmb3IgdGVzdGluZywgYnV0IGl0IGRvZXNuJiMzOTt0IHV0aWxpemUgbWx4NSBjb2RlLiBUaGVuLCB0aGVyZSYjMzk7cyBgc3l6X3BjaV9lcGAhIEl0IGVtdWxhdGVzICpzb2Z0d2FyZSogaGFyZHdhcmUgLSBhIFBDSSBlbmRwb2ludC4gU28sIGlmIGBzeXpfcGNpX2VwYCBjYW4gZW11bGF0ZSBtbHg1LCB0aGVuIGl0ICppcyogcmVhY2hhYmxlLiBCdXQgaGVyZSBjb21lcyB0aGUgcHJvYmxlbTogYHN5el9wY2lfZXBgIGRvZXMgbm90IGVtdWxhdGUgdGhlIGZpcm13YXJlLiBEcml2ZXJzIHJlcXVpcmluZyBjb21wbGljYXRlZCBmaXJtd2FyZSBoYW5kc2hha2VzLCBsaWtlIG1seDUsIGljZSwgaTQwZSwgdXN1YWxseSBmYWlsIHdpdGggYHN5el9wY2lfZXBgIGJlY2F1c2UgdGhlIGZ1enplciBjYW4mIzM5O3QgZ3Vlc3MgdGhlIGZpcm13YXJlJiMzOTtzIGNvcnJlY3QgcmVzcG9uc2Ugc2VxdWVuY2UuCgpXYWl0IGEgc2Vjb25kLCB0aGVyZSBpcyBzb21ldGhpbmcgSSBoYXZlIHRvIGxvb2sgYXQhIFRoZSBwYXRjaCYjMzk7cyBhdXRob3IgaXMgYHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDtgLiAmIzM0O3N5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldyYjMzQ7LiBUaGlzIG1lYW5zIHN5emthbGxlciAqZGlkKiBmaW5kIGEgYnVnISBJdCBpcyBhIHBhdGNoIHRoYXQgSSBhbSByZXZpZXdpbmchIFRoaXMgcHJvdmVzIGl0IGlzIHRlc3RpbmcgdGhpcy4KCklmIHN5emthbGxlciBmb3VuZCBhIGJ1ZywgaG93PyBJcyB0aGVyZSBhIHZpcnR1YWwgbWx4NSBkZXZpY2UgaW4gUUVNVT8gTm8sIFFFTVUgZG9lc24mIzM5O3QgaGF2ZSBhbiB1cHN0cmVhbSBtbHg1IGVtdWxhdG9yLiBNYXliZSBzeXprYWxsZXIgcnVucyBiYXJlIG1ldGFsIHdpdGggTWVsbGFub3ggY2FyZHM/IE5vLCBzeXprYWxsZXIgbW9zdGx5IHJ1bnMgaW4gR0NFL1FFTVUuCgpEb2VzIHN5emthbGxlciAqaXRzZWxmKiBoYXZlIGFuIG1seDUgZW11bGF0b3I/IEkgc2hvdWxkIGNoZWNrIGlmIHRoZXJlJiMzOTtzIGFueSBgbWx4NWAgZW11bGF0b3IgaW4gdGhlIGtlcm5lbC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTg6MTI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bWx4NV9jb3JlX2RldiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDEyMzIzIGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYz01OD1zdHJ1Y3QgbWx4NV9kbWFfcG9vbCB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNjEtXHRzdHJ1Y3QgbGlzdF9oZWFkIHBhZ2VfbGlzdDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjYyOlx0c3RydWN0IG1seDVfY29yZV9kZXYgKmRldjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTYzLVx0aW50IG5vZGU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM9Nzk9c3RydWN0IG1seDVfZG1hX3Bvb2xfc3RhdHMge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTg5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6OTA6c3RhdGljIHZvaWQgKm1seDVfZG1hX3phbGxvY19jb2hlcmVudF9ub2RlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy05MS1cdFx0XHRcdFx0ICAgc2l6ZV90IHNpemUsIGRtYV9hZGRyX3QgKmRtYV9oYW5kbGUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM9MTA5PXN0YXRpYyB2b2lkIG1seDVfZG1hX3Bvb2xfZGVzdHJveShzdHJ1Y3QgbWx4NV9kbWFfcG9vbCAqcG9vbClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0xMTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoxMTU6c3RhdGljIHN0cnVjdCBtbHg1X2RtYV9wb29sICptbHg1X2RtYV9wb29sX2NyZWF0ZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMTE2LVx0XHRcdFx0XHRcdCAgaW50IG5vZGUsIHU4IGJsb2NrX3NoaWZ0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jPTEzMz1tbHg1X2RtYV9wb29sX3BhZ2VfYWxsb2Moc3RydWN0IG1seDVfZG1hX3Bvb2wgKnBvb2wpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMTYyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MTYzOnN0YXRpYyB2b2lkIG1seDVfZG1hX3Bvb2xfcGFnZV9mcmVlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0xNjQtXHRcdFx0XHQgICAgc3RydWN0IG1seDVfZG1hX3Bvb2xfcGFnZSAqcGFnZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYz0yODM9c3RhdGljIHN0cnVjdCBtbHg1X2ZyYWdfYnVmX25vZGVfcG9vbHMgKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6Mjg0Om1seDVfZnJhZ19idWZfbm9kZV9wb29sc19jcmVhdGUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgaW50IG5vZGUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0yODUte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jPTMwNz1tbHg1X2ZyYWdfYnVmX2RtYV9wb29sc19kZWJ1Z2ZzX3Nob3coc3RydWN0IHNlcV9maWxlICpmaWxlLCB2b2lkICpwcml2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzA4LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjMwOTpcdHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYgPSBmaWxlLVx1MDAzZXByaXZhdGU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zMTAtXHRpbnQgbm9kZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYz0zMzY9REVGSU5FX1NIT1dfQVRUUklCVVRFKG1seDVfZnJhZ19idWZfZG1hX3Bvb2xzX2RlYnVnZnMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzM3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MzM4OnZvaWQgbWx4NV9mcmFnX2J1Zl9wb29sc19jbGVhbnVwKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zMzkte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTM1OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjM1OTppbnQgbWx4NV9mcmFnX2J1Zl9wb29sc19pbml0KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zNjAte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTM4Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjM4ODppbnQgbWx4NV9mcmFnX2J1Zl9hbGxvY19ub2RlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIGludCBzaXplLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzg5LVx0XHRcdCAgICAgc3RydWN0IG1seDVfZnJhZ19idWYgKmJ1ZiwgaW50IG5vZGUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM9NDI1PUVYUE9SVF9TWU1CT0xfR1BMKG1seDVfZnJhZ19idWZfYWxsb2Nfbm9kZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00MjYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo0Mjc6dm9pZCBtbHg1X2ZyYWdfYnVmX2ZyZWUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfZnJhZ19idWYgKmJ1ZilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTQyOC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM9NDQ1PUVYUE9SVF9TWU1CT0xfR1BMKG1seDVfZnJhZ19idWZfZnJlZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00NDYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo0NDc6c3RhdGljIHN0cnVjdCBtbHg1X2RiX3BnZGlyICptbHg1X2FsbG9jX2RiX3BnZGlyKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00NDgtXHRcdFx0XHRcdFx0IGludCBub2RlKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jPTQ3Nj1zdGF0aWMgaW50IG1seDVfYWxsb2NfZGJfZnJvbV9wZ2RpcihzdHJ1Y3QgbWx4NV9kYl9wZ2RpciAqcGdkaXIsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTAwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NTAxOmludCBtbHg1X2RiX2FsbG9jX25vZGUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfZGIgKmRiLCBpbnQgbm9kZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTUwMi17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM9NTI4PUVYUE9SVF9TWU1CT0xfR1BMKG1seDVfZGJfYWxsb2Nfbm9kZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy01MjktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo1MzA6dm9pZCBtbHg1X2RiX2ZyZWUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfZGIgKmRiKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTMxLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9MjgzPXN0YXRpYyB2b2lkIHBvbGxfdGltZW91dChzdHJ1Y3QgbWx4NV9jbWRfd29ya19lbnQgKmVudClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yODQte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjI4NTpcdHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYgPSBjb250YWluZXJfb2YoZW50LVx1MDAzZWNtZCwgc3RydWN0IG1seDVfY29yZV9kZXYsIGNtZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjg2LVx0dTY0IGNtZF90b19tcyA9IG1seDVfdG91dF9tcyhkZXYsIENNRCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTMzMT1zdGF0aWMgdm9pZCBkdW1wX2J1Zih2b2lkICpidWYsIGludCBzaXplLCBpbnQgZGF0YV9vbmx5LCBpbnQgb2Zmc2V0LCBpbnQgaWR4KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0zNDYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MzQ3OnN0YXRpYyBpbnQgbWx4NV9pbnRlcm5hbF9lcnJfcmV0X3ZhbHVlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUxNiBvcCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0zNDgtXHRcdFx0XHQgICAgICAgdTMyICpzeW5kLCB1OCAqc3RhdHVzKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz03OTM9c3RhdGljIGludCBjbWRfc3RhdHVzX3RvX2Vycih1OCBzdGF0dXMpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTgxNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzo4MTc6dm9pZCBtbHg1X2NtZF9vdXRfZXJyKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUxNiBvcGNvZGUsIHUxNiBvcF9tb2QsIHZvaWQgKm91dClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy04MTgte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz04Mjc9RVhQT1JUX1NZTUJPTChtbHg1X2NtZF9vdXRfZXJyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy04MjgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6ODI5OnN0YXRpYyB2b2lkIGNtZF9zdGF0dXNfcHJpbnQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdm9pZCAqaW4sIHZvaWQgKm91dClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy04MzAte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy04NDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6ODQ1OmludCBtbHg1X2NtZF9jaGVjayhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBpbnQgZXJyLCB2b2lkICppbiwgdm9pZCAqb3V0KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTg0Ni17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTg3Mj1FWFBPUlRfU1lNQk9MKG1seDVfY21kX2NoZWNrKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy04NzMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6ODc0OnN0YXRpYyB2b2lkIGR1bXBfY29tbWFuZChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTg3NS1cdFx0XHQgc3RydWN0IG1seDVfY21kX3dvcmtfZW50ICplbnQsIGludCBpbnB1dClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtOTMxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjkzMjpzdGF0aWMgdm9pZCBtbHg1X2NtZF9jb21wX2hhbmRsZXIoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTY0IHZlYywgYm9vbCBmb3JjZWQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTkzMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz05MzQ9c3RhdGljIHZvaWQgY2JfdGltZW91dF9oYW5kbGVyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtOTM5LVx0XHRcdFx0XHRcdCAgICAgY2JfdGltZW91dF93b3JrKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzo5NDA6XHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2ID0gY29udGFpbmVyX29mKGVudC1cdTAwM2VjbWQsIHN0cnVjdCBtbHg1X2NvcmVfZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTk0MS1cdFx0XHRcdFx0XHQgY21kKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtOTYwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjk2MTpzdGF0aWMgdm9pZCBmcmVlX21zZyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBzdHJ1Y3QgbWx4NV9jbWRfbXNnICptc2cpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjk2MjpzdGF0aWMgdm9pZCBtbHg1X2ZyZWVfY21kX21zZyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTk2My1cdFx0XHQgICAgICBzdHJ1Y3QgbWx4NV9jbWRfbXNnICptc2cpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz05NjU9c3RhdGljIGJvb2wgb3Bjb2RlX2FsbG93ZWQoc3RydWN0IG1seDVfY21kICpjbWQsIHUxNiBvcGNvZGUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTk3Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzo5NzM6Ym9vbCBtbHg1X2NtZF9pc19kb3duKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtOTc0LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9OTgwPXN0YXRpYyB2b2lkIGNtZF93b3JrX2hhbmRsZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy05ODUtXHRzdHJ1Y3QgbWx4NV9jbWRfbGF5b3V0ICpsYXk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6OTg2Olx0c3RydWN0IG1seDVfY29yZV9kZXYgKmRldjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy05ODctXHR1bnNpZ25lZCBsb25nIHRpbWVvdXQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTk5My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzo5OTQ6XHRkZXYgPSBjb250YWluZXJfb2YoY21kLCBzdHJ1Y3QgbWx4NV9jb3JlX2RldiwgY21kKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy05OTUtXHR0aW1lb3V0ID0gbXNlY3NfdG9famlmZmllcyhtbHg1X3RvdXRfbXMoZGV2LCBDTUQpKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9MTE0MD1lbnVtIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTE0My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxMTQ0OnN0YXRpYyB2b2lkIHdhaXRfZnVuY19oYW5kbGVfZXhlY190aW1lb3V0KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTE0NS1cdFx0XHRcdFx0ICBzdHJ1Y3QgbWx4NV9jbWRfd29ya19lbnQgKmVudClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTE2OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxMTY5OnN0YXRpYyBpbnQgd2FpdF9mdW5jKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X2NtZF93b3JrX2VudCAqZW50KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTExNzAte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMjE1LSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjEyMTY6c3RhdGljIGJvb2wgbWx4NV9jbWRfYWxsX3N0YWxsZWQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMjE3LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTI1OC0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxMjU5OnN0YXRpYyBpbnQgbWx4NV9jbWRfaW52b2tlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X2NtZF9tc2cgKmluLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEyNjAtXHRcdFx0ICAgc3RydWN0IG1seDVfY21kX21zZyAqb3V0LCB2b2lkICp1b3V0LCBpbnQgdW91dF9zaXplLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz0xMzM3PXN0YXRpYyBzc2l6ZV90IGRiZ193cml0ZShzdHJ1Y3QgZmlsZSAqZmlscCwgY29uc3QgY2hhciBfX3VzZXIgKmJ1Zixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTMzOS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTM0MDpcdHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYgPSBmaWxwLVx1MDAzZXByaXZhdGVfZGF0YTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMzQxLVx0c3RydWN0IG1seDVfY21kX2RlYnVnICpkYmcgPSBcdTAwMjZkZXYtXHUwMDNlY21kLmRiZztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9MTQwND1zdGF0aWMgaW50IG1seDVfY29weV9mcm9tX21zZyh2b2lkICp0bywgc3RydWN0IG1seDVfY21kX21zZyAqZnJvbSwgaW50IHNpemUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE0MzYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTQzNzpzdGF0aWMgc3RydWN0IG1seDVfY21kX21haWxib3ggKmFsbG9jX2NtZF9ib3goc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNDM4LVx0XHRcdFx0XHQgICAgICBnZnBfdCBmbGFncylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTQ1Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNDU4OnN0YXRpYyB2b2lkIGZyZWVfY21kX2JveChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE0NTktXHRcdFx0IHN0cnVjdCBtbHg1X2NtZF9tYWlsYm94ICptYWlsYm94KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNDY0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE0NjU6c3RhdGljIHN0cnVjdCBtbHg1X2NtZF9tc2cgKm1seDVfYWxsb2NfY21kX21zZyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE0NjYtXHRcdFx0XHRcdCAgICAgICBnZnBfdCBmbGFncywgaW50IHNpemUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE1MTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTUxMjpzdGF0aWMgdm9pZCBtbHg1X2ZyZWVfY21kX21zZyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE1MTMtXHRcdFx0ICAgICAgc3RydWN0IG1seDVfY21kX21zZyAqbXNnKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz0xNTI2PXN0YXRpYyBzc2l6ZV90IGRhdGFfd3JpdGUoc3RydWN0IGZpbGUgKmZpbHAsIGNvbnN0IGNoYXIgX191c2VyICpidWYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE1Mjgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE1Mjk6XHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2ID0gZmlscC1cdTAwM2Vwcml2YXRlX2RhdGE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTUzMC1cdHN0cnVjdCBtbHg1X2NtZF9kZWJ1ZyAqZGJnID0gXHUwMDI2ZGV2LVx1MDAzZWNtZC5kYmc7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTE1NTA9c3RhdGljIHNzaXplX3QgZGF0YV9yZWFkKHN0cnVjdCBmaWxlICpmaWxwLCBjaGFyIF9fdXNlciAqYnVmLCBzaXplX3QgY291bnQsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE1NTIte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE1NTM6XHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2ID0gZmlscC1cdTAwM2Vwcml2YXRlX2RhdGE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTU1NC1cdHN0cnVjdCBtbHg1X2NtZF9kZWJ1ZyAqZGJnID0gXHUwMDI2ZGV2LVx1MDAzZWNtZC5kYmc7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTE1NzA9c3RhdGljIHNzaXplX3Qgb3V0bGVuX3JlYWQoc3RydWN0IGZpbGUgKmZpbHAsIGNoYXIgX191c2VyICpidWYsIHNpemVfdCBjb3VudCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTU3Mi17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTU3MzpcdHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYgPSBmaWxwLVx1MDAzZXByaXZhdGVfZGF0YTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNTc0LVx0c3RydWN0IG1seDVfY21kX2RlYnVnICpkYmcgPSBcdTAwMjZkZXYtXHUwMDNlY21kLmRiZztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9MTU4NT1zdGF0aWMgc3NpemVfdCBvdXRsZW5fd3JpdGUoc3RydWN0IGZpbGUgKmZpbHAsIGNvbnN0IGNoYXIgX191c2VyICpidWYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE1ODcte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE1ODg6XHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2ID0gZmlscC1cdTAwM2Vwcml2YXRlX2RhdGE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTU4OS1cdHN0cnVjdCBtbHg1X2NtZF9kZWJ1ZyAqZGJnID0gXHUwMDI2ZGV2LVx1MDAzZWNtZC5kYmc7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTE2MjE9c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgb2xmb3BzID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNjI3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE2Mjg6c3RhdGljIHZvaWQgc2V0X3dxbmFtZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE2Mjkte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNjM1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE2MzY6c3RhdGljIHZvaWQgY2xlYW5fZGVidWdfZmlsZXMoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNjM3LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTY0NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNjQ2OnN0YXRpYyB2b2lkIGNyZWF0ZV9kZWJ1Z2ZzX2ZpbGVzKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTY0Ny17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE2NTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTY1OTp2b2lkIG1seDVfY21kX2FsbG93ZWRfb3Bjb2RlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUxNiBvcGNvZGUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTY2MC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE2NzQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTY3NTpzdGF0aWMgdm9pZCBtbHg1X2NtZF9jaGFuZ2VfbW9kKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIGludCBtb2RlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE2NzYte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz0xNjkxPXN0YXRpYyBpbnQgY21kX2NvbXBfbm90aWZpZXIoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTY5My17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTY5NDpcdHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTY5NS1cdHN0cnVjdCBtbHg1X2NtZCAqY21kO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNjk4LVx0Y21kID0gbWx4NV9uYl9jb2YobmIsIHN0cnVjdCBtbHg1X2NtZCwgbmIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE2OTk6XHRkZXYgPSBjb250YWluZXJfb2YoY21kLCBzdHJ1Y3QgbWx4NV9jb3JlX2RldiwgY21kKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNzAwLVx0ZXFlID0gZGF0YTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTcwOC19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTcwOTp2b2lkIG1seDVfY21kX3VzZV9ldmVudHMoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNzEwLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTcxNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNzE2OnZvaWQgbWx4NV9jbWRfdXNlX3BvbGxpbmcoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNzE3LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTcyMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNzIyOnN0YXRpYyB2b2lkIGZyZWVfbXNnKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X2NtZF9tc2cgKm1zZylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNzIzLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTczNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNzM1OnN0YXRpYyB2b2lkIG1seDVfY21kX2NvbXBfaGFuZGxlcihzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1NjQgdmVjLCBib29sIGZvcmNlZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNzM2LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTgzOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxODM5OnN0YXRpYyB2b2lkIG1seDVfY21kX3RyaWdnZXJfY29tcGxldGlvbnMoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xODQwLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTg3My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxODc0OnZvaWQgbWx4NV9jbWRfZmx1c2goc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xODc1LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTg5Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxODk3OnN0YXRpYyBzdHJ1Y3QgbWx4NV9jbWRfbXNnICphbGxvY19tc2coc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgaW50IGluX3NpemUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTg5OC1cdFx0XHRcdCAgICAgIGdmcF90IGdmcClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9MTkzNT1zdGF0aWMgaW50IGlzX21hbmFnZV9wYWdlcyh2b2lkICppbilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTkzOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxOTQwOnN0YXRpYyBib29sIG1seDVfaGFzX3ByaXZpbGVnZWRfdWlkKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTk0MS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE5NDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTk0NTpzdGF0aWMgYm9vbCBtbHg1X2NtZF9pc19wcml2aWxlZ2VkX3VpZChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE5NDYtXHRcdFx0XHQgICAgICAgdTE2IHVpZClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTk1NC0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxOTU1OnN0YXRpYyBpbnQgY21kX2V4ZWMoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdm9pZCAqaW4sIGludCBpbl9zaXplLCB2b2lkICpvdXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTk1Ni1cdFx0ICAgIGludCBvdXRfc2l6ZSwgbWx4NV9jbWRfY2JrX3QgY2FsbGJhY2ssIHZvaWQgKmNvbnRleHQsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTIwMzUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MjAzNjpzdGF0aWMgdm9pZCBtbHg1X2NtZF9lcnJfdHJhY2Uoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2IG9wY29kZSwgdTE2IG9wX21vZCwgdm9pZCAqb3V0KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTIwMzcte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMDQ1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjIwNDY6c3RhdGljIHZvaWQgY21kX3N0YXR1c19sb2coc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2IG9wY29kZSwgdTggc3RhdHVzLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTIwNDctXHRcdFx0ICAgdTMyIHN5bmRyb21lLCBpbnQgZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMDcxLS8qIHByZXNlcnZlIC1FUkVNT1RFSU8gZm9yIG91dGJveC5zdGF0dXMgIT0gT0ssIG90aGVyd2lzZSByZXR1cm4gZXJyIGFzIGlzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MjA3MjpzdGF0aWMgaW50IGNtZF9zdGF0dXNfZXJyKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIGludCBlcnIsIHUxNiBvcGNvZGUsIHUxNiBvcF9tb2QsIHZvaWQgKm91dClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMDczLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjEwNi0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoyMTA3OmludCBtbHg1X2NtZF9kbyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB2b2lkICppbiwgaW50IGluX3NpemUsIHZvaWQgKm91dCwgaW50IG91dF9zaXplKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTIxMDgte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz0yMTE1PUVYUE9SVF9TWU1CT0wobWx4NV9jbWRfZG8pO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMTI4LSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjIxMjk6aW50IG1seDVfY21kX2V4ZWMoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdm9pZCAqaW4sIGludCBpbl9zaXplLCB2b2lkICpvdXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjEzMC1cdFx0ICBpbnQgb3V0X3NpemUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTIxMzY9RVhQT1JUX1NZTUJPTChtbHg1X2NtZF9leGVjKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjE1MS0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoyMTUyOmludCBtbHg1X2NtZF9leGVjX3BvbGxpbmcoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdm9pZCAqaW4sIGludCBpbl9zaXplLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTIxNTMtXHRcdFx0ICB2b2lkICpvdXQsIGludCBvdXRfc2l6ZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9MjE2Mj1FWFBPUlRfU1lNQk9MKG1seDVfY21kX2V4ZWNfcG9sbGluZyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjE2My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoyMTY0OnZvaWQgbWx4NV9jbWRfaW5pdF9hc3luY19jdHgoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMTY1LVx0XHRcdCAgICAgc3RydWN0IG1seDVfYXN5bmNfY3R4ICpjdHgpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTIxODk9c3RhdGljIHZvaWQgbWx4NV9jbWRfZXhlY19jYl9oYW5kbGVyKGludCBzdGF0dXMsIHZvaWQgKl93b3JrKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMTkyLVx0c3RydWN0IG1seDVfYXN5bmNfY3R4ICpjdHg7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MjE5MzpcdHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjE5NC1cdGJvb2wgdGhyb3R0bGVfbG9ja2VkO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz0yMjE0PWludCBtbHg1X2NtZF9leGVjX2NiKHN0cnVjdCBtbHg1X2FzeW5jX2N0eCAqY3R4LCB2b2lkICppbiwgaW50IGluX3NpemUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTIyMTcte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjIyMTg6XHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2ID0gY3R4LVx1MDAzZWRldjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMjE5LVx0dTE2IHVpZDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9MjI2OD1FWFBPUlRfU1lNQk9MKG1seDVfY21kX2V4ZWNfY2IpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTIyNjktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MjI3MDppbnQgbWx4NV9jbWRfYWxsb3dfb3RoZXJfdmhjYV9hY2Nlc3Moc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMjcxLVx0XHRcdFx0ICAgICBzdHJ1Y3QgbWx4NV9jbWRfYWxsb3dfb3RoZXJfdmhjYV9hY2Nlc3NfYXR0ciAqYXR0cilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjI4OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoyMjkwOmludCBtbHg1X2NtZF9hbGlhc19vYmpfY3JlYXRlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjI5MS1cdFx0XHQgICAgICBzdHJ1Y3QgbWx4NV9jbWRfYWxpYXNfb2JqX2NyZWF0ZV9hdHRyICphbGlhc19hdHRyLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMzI1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjIzMjY6aW50IG1seDVfY21kX2FsaWFzX29ial9kZXN0cm95KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUzMiBvYmpfaWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjMyNy1cdFx0XHQgICAgICAgdTE2IG9ial90eXBlKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMzM4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjIzMzk6c3RhdGljIHZvaWQgZGVzdHJveV9tc2dfY2FjaGUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMzQwLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9MjM1OT1zdGF0aWMgdW5zaWduZWQgY21kX2NhY2hlX2VudF9zaXplW01MWDVfTlVNX0NPTU1BTkRfQ0FDSEVTXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjM2Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoyMzY3OnN0YXRpYyB2b2lkIGNyZWF0ZV9tc2dfY2FjaGUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMzY4LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjM5Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoyMzkzOnN0YXRpYyBpbnQgYWxsb2NfY21kX3BhZ2Uoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfY21kICpjbWQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjM5NC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTI0MjEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MjQyMjpzdGF0aWMgdm9pZCBmcmVlX2NtZF9wYWdlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X2NtZCAqY21kKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTI0MjMte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yNDI3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjI0Mjg6c3RhdGljIHUxNiBjbWRpZl9yZXYoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yNDI5LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjQzMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoyNDMzOmludCBtbHg1X2NtZF9pbml0KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjQzNC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTI0NTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MjQ1NDp2b2lkIG1seDVfY21kX2NsZWFudXAoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yNDU1LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjQ2MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoyNDYyOmludCBtbHg1X2NtZF9lbmFibGUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yNDYzLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjU0Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoyNTQ4OnZvaWQgbWx4NV9jbWRfZGlzYWJsZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTI1NDkte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yNTU5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjI1NjA6dm9pZCBtbHg1X2NtZF9zZXRfc3RhdGUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yNTYxLVx0XHRcdGVudW0gbWx4NV9jbWRpZl9zdGF0ZSBjbWRpZl9zdGF0ZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjU2NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoyNTY2OmludCBtbHg1X2NtZF9hZGRfcHJpdmlsZWdlZF91aWQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2IHVpZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yNTY3LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9MjU3MT1FWFBPUlRfU1lNQk9MKG1seDVfY21kX2FkZF9wcml2aWxlZ2VkX3VpZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjU3Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoyNTczOnZvaWQgbWx4NV9jbWRfcmVtb3ZlX3ByaXZpbGVnZWRfdWlkKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUxNiB1aWQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjU3NC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmM9MTAwPXN0YXRpYyB2b2lkIG1seDVfY29yZV9jcV9kdW1teV9jYihzdHJ1Y3QgbWx4NV9jb3JlX2NxICpjcSwgc3RydWN0IG1seDVfZXFlICplcWUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmMtMTA3LS8qIENhbGxlcnMgbXVzdCB2ZXJpZnkgb3V0Ym94IHN0YXR1cyBpbiBjYXNlIG9mIGVyciAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmM6MTA4OmludCBtbHg1X2NyZWF0ZV9jcShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBzdHJ1Y3QgbWx4NV9jb3JlX2NxICpjcSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jcS5jLTEwOS1cdFx0ICAgdTMyICppbiwgaW50IGlubGVuLCB1MzIgKm91dCwgaW50IG91dGxlbilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY3EuYz0xNzg9RVhQT1JUX1NZTUJPTChtbHg1X2NyZWF0ZV9jcSk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmMtMTgwLS8qIG91Ym94IGlzIGNoZWNrZWQgYW5kIGVyciB2YWwgaXMgbm9ybWFsaXplZCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmM6MTgxOmludCBtbHg1X2NvcmVfY3JlYXRlX2NxKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X2NvcmVfY3EgKmNxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmMtMTgyLVx0XHRcdHUzMiAqaW4sIGludCBpbmxlbiwgdTMyICpvdXQsIGludCBvdXRsZW4pXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmM9MTg4PUVYUE9SVF9TWU1CT0wobWx4NV9jb3JlX2NyZWF0ZV9jcSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY3EuYy0xODktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY3EuYzoxOTA6aW50IG1seDVfY29yZV9kZXN0cm95X2NxKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X2NvcmVfY3EgKmNxKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmMtMTkxLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY3EuYz0yMTM9RVhQT1JUX1NZTUJPTChtbHg1X2NvcmVfZGVzdHJveV9jcSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY3EuYy0yMTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY3EuYzoyMTU6aW50IG1seDVfY29yZV9xdWVyeV9jcShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBzdHJ1Y3QgbWx4NV9jb3JlX2NxICpjcSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jcS5jLTIxNi1cdFx0ICAgICAgIHUzMiAqb3V0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jcS5jPTIyND1FWFBPUlRfU1lNQk9MKG1seDVfY29yZV9xdWVyeV9jcSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY3EuYy0yMjUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY3EuYzoyMjY6aW50IG1seDVfY29yZV9tb2RpZnlfY3Eoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfY29yZV9jcSAqY3EsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY3EuYy0yMjctXHRcdFx0dTMyICppbiwgaW50IGlubGVuKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jcS5jPTIzNT1FWFBPUlRfU1lNQk9MKG1seDVfY29yZV9tb2RpZnlfY3EpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmMtMjM2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmM6MjM3OmludCBtbHg1X2NvcmVfbW9kaWZ5X2NxX21vZGVyYXRpb24oc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jcS5jLTIzOC1cdFx0XHRcdCAgIHN0cnVjdCBtbHg1X2NvcmVfY3EgKmNxLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM9OTY9dm9pZCBtbHg1X3VucmVnaXN0ZXJfZGVidWdmcyh2b2lkKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtMTAwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYzoxMDE6c3RydWN0IGRlbnRyeSAqbWx4NV9kZWJ1Z2ZzX2dldF9kZXZfcm9vdChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy0xMDIte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM9MTA1PUVYUE9SVF9TWU1CT0wobWx4NV9kZWJ1Z2ZzX2dldF9kZXZfcm9vdCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTEwNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM6MTA3OnZvaWQgbWx4NV9xcF9kZWJ1Z2ZzX2luaXQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtMTA4LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jPTExMT1FWFBPUlRfU1lNQk9MKG1seDVfcXBfZGVidWdmc19pbml0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtMTEyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYzoxMTM6dm9pZCBtbHg1X3FwX2RlYnVnZnNfY2xlYW51cChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy0xMTQte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM9MTE3PUVYUE9SVF9TWU1CT0wobWx4NV9xcF9kZWJ1Z2ZzX2NsZWFudXApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy0xMTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jOjExOTp2b2lkIG1seDVfZXFfZGVidWdmc19pbml0KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTEyMC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy0xMjMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jOjEyNDp2b2lkIG1seDVfZXFfZGVidWdmc19jbGVhbnVwKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTEyNS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYz0yMDI9bWx4NV9jbWRpZl9hbGxvY19zdGF0cyhzdHJ1Y3QgeGFycmF5ICpzdGF0c194YSwgaW50IG9wY29kZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTIxOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM6MjE5OnZvaWQgbWx4NV9jbWRpZl9kZWJ1Z2ZzX2luaXQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtMjIwLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTI1OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM6MjU5OnZvaWQgbWx4NV9jbWRpZl9kZWJ1Z2ZzX2NsZWFudXAoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtMjYwLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTI2OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM6MjcwOnZvaWQgbWx4NV9jcV9kZWJ1Z2ZzX2luaXQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtMjcxLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTI3NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM6Mjc1OnZvaWQgbWx4NV9jcV9kZWJ1Z2ZzX2NsZWFudXAoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtMjc2LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTI3OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM6MjgwOnZvaWQgbWx4NV9wYWdlc19kZWJ1Z2ZzX2luaXQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtMjgxLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTI5My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM6Mjk0OnZvaWQgbWx4NV9wYWdlc19kZWJ1Z2ZzX2NsZWFudXAoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtMjk1LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTI5OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM6Mjk5OnZvaWQgbWx4NV9wYWdlc19ieV9mdW5jX3R5cGVfZGVidWdmc19pbml0KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTMwMC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy0zMjItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jOjMyMzp2b2lkIG1seDVfcGFnZXNfYnlfZnVuY190eXBlX2RlYnVnZnNfY2xlYW51cChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy0zMjQte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtMzM2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYzozMzc6c3RhdGljIHU2NCBxcF9yZWFkX2ZpZWxkKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X2NvcmVfcXAgKnFwLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy0zMzgtXHRcdFx0IGludCBpbmRleCwgaW50ICppc19zdHIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy00MTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jOjQxNzpzdGF0aWMgdTY0IGVxX3JlYWRfZmllbGQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfZXEgKmVxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy00MTgtXHRcdFx0IGludCBpbmRleClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTQ1Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM6NDU3OnN0YXRpYyB1NjQgY3FfcmVhZF9maWVsZChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBzdHJ1Y3QgbWx4NV9jb3JlX2NxICpjcSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtNDU4LVx0XHRcdCBpbnQgaW5kZXgpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYz01MzI9c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZm9wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTUzNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM6NTM4OnN0YXRpYyBpbnQgYWRkX3Jlc190cmVlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIGVudW0gZGJnX3JzY190eXBlIHR5cGUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTUzOS1cdFx0XHRzdHJ1Y3QgZGVudHJ5ICpyb290LCBzdHJ1Y3QgbWx4NV9yc2NfZGVidWcgKipkYmcsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYz01NjY9c3RhdGljIHZvaWQgcmVtX3Jlc190cmVlKHN0cnVjdCBtbHg1X3JzY19kZWJ1ZyAqZClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTU3MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM6NTcyOmludCBtbHg1X2RlYnVnX3FwX2FkZChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBzdHJ1Y3QgbWx4NV9jb3JlX3FwICpxcClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtNTczLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jPTU4Nz1FWFBPUlRfU1lNQk9MKG1seDVfZGVidWdfcXBfYWRkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtNTg4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYzo1ODk6dm9pZCBtbHg1X2RlYnVnX3FwX3JlbW92ZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBzdHJ1Y3QgbWx4NV9jb3JlX3FwICpxcClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtNTkwLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jPTU5Nz1FWFBPUlRfU1lNQk9MKG1seDVfZGVidWdfcXBfcmVtb3ZlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtNTk4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYzo1OTk6aW50IG1seDVfZGVidWdfZXFfYWRkKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X2VxICplcSlcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAxODoxMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MzMwMwoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDExNjIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBSZWFjaGFiaWxpdHkgb2YgTWVsbGFub3ggbWx4NSBDb2RlIGluIFZpcnR1YWxpemVkIEVudmlyb25tZW50cyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgdHJ5aW5nIHRvIGRldGVybWluZSBpZiBpdCYjMzk7cyB3b3J0aCBmdXp6aW5nLiBUaGUgcHJvbXB0IHNheXMgdG8gcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgIGlmIHRoZSBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLCBldmVuIHdpdGggc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBjYW4gc3l6a2FsbGVyJiMzOTtzIFBDSSBmdXp6ZXIgZ2V0IHRvIHRoaXMgYG1seDVgIGNvZGU/IEkga25vdyBzeXprYWxsZXIgaGFzIGEgUENJIGZ1enplciB0aGF0IGNhbiBwcm9iZSBhbnkgUENJIGRyaXZlci4gTWVsbGFub3ggbWx4NSBpcywgb2YgY291cnNlLCBhIFBDSSBkZXZpY2UuIFNvLCBpZiBzeXprYWxsZXIgY2FuIHJlYWNoIGl0IHdpdGggaXRzIFBDSSBmdXp6ZXIsIHRoZW4gaXQmIzM5O3MgcmVhY2hhYmxlLCByaWdodD8gQnV0IHRoZSB3b3JkaW5nICYjMzQ7ZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSYjMzQ7IGdpdmVzIG1lIHBhdXNlLCBiZWNhdXNlIHN5emthbGxlciYjMzk7cyBQQ0kgZnV6emVyICppcyogZW11bGF0aW5nIFBDSSBkZXZpY2VzLgoKVGhlIGF1dGhvciBpcyBsaXN0ZWQgYXMgYHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDtgLCB3aGljaCBzY3JlYW1zIHN5emthbGxlciBidWcsIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIGlmIHN5emthbGxlciBmb3VuZCB0aGlzIGJ1ZyBhbmQgaG93LiBJZiBzeXprYWxsZXIgZm91bmQgaXQsIHRoZW4gaXQgY2FuIHJlYWNoIGl0LiBNeSBmaXJzdCB0aG91Z2h0IGlzIHVwc3RyZWFtIHN5emJvdCBydW5zIG9uIEdDRS4gU28gaWYgc3l6a2FsbGVyIGZvdW5kIGl0LCB0aGVuIGl0IGlzIHJlYWNoYWJsZSBpbiBHQ0UuIEhvd2V2ZXIsIHdoYXQgaWYgaXQgd2FzIGZvdW5kIG9uIGJhcmUgbWV0YWwgYW5kIHRoZW4gYmFja3BvcnRlZD8gSSBrbm93IHN5emJvdCB1cHN0cmVhbSBpcyBtb3N0bHkgR0NFLCBidXQgaXQgKmRvZXMqIHRlc3QgaW4gb3RoZXIgZW52aXJvbm1lbnRzLCBjb3JyZWN0PyBObywgc3l6Ym90IHVwc3RyZWFtIGlzIEdDRS4gU28gdGhlbiwgdGhpcyBtdXN0IGJlIGEgY3VzdG9tIHN5emthbGxlciBpbnN0YW5jZS4KCk5vdyBJIG5lZWQgdG8gYXNzZXNzIHdoZXRoZXIgdGhlIFBDSSBmdXp6ZXIgaXMgY2FwYWJsZSBvZiByZWFjaGluZyB0aGlzIHNwZWNpZmljIGNvZGUuIGBtbHg1ZV90Y19jbGVhbl9mZGJfcGVlcl9mbG93c2AgaXMgcGFydCBvZiB0aGUgRXRoZXJuZXQgZHJpdmVyLCBgZW5fdGMuY2AuIFRvIGhpdCB0aGlzLCB0aGUgbWx4NSBjb3JlIGRldmljZSBtdXN0IGJlIGluaXRpYWxpemVkLCB0aGUgZXRoZXJuZXQgbmV0ZGV2IG11c3QgYmUgcmVnaXN0ZXJlZCwgYW5kIHRoZW4gVEMgcnVsZXMgbXVzdCBiZSBjb25maWd1cmVkLiBJbml0aWFsaXppbmcgdGhlIG1seDUgY29yZSBpbnZvbHZlcyBjb21wbGV4IGZpcm13YXJlIGNvbW1hbmRzLCBjb21tYW5kIHF1ZXVlcywgYW5kIGV2ZW50IHF1ZXVlcy4gVGhlIFBDSSBmdXp6ZXIganVzdCB0aHJvd3MgcmFuZG9tIGRhdGEgYXQgdGhlIGRldmljZS4gSXQmIzM5O3MgaGlnaGx5IHVubGlrZWx5IHRoYXQgdGhlIFBDSSBmdXp6ZXIgY2FuIHN1Y2Nlc3NmdWxseSBpbml0aWFsaXplIGFsbCB0aGF0LgoKU28gaWYgaXQmIzM5O3MgdW5saWtlbHksIGhvdyBkaWQgc3l6a2FsbGVyIGZpbmQgaXQ/IFdhaXQsIGNvdWxkIHRoaXMgYmUgYSBtYW51YWwgcGF0Y2gsIHN1Ym1pdHRlZCBieSBhIHVzZXIgZm9yIHRlc3RpbmcgYnkgc3l6Ym90PyBPaCwgdGhlIGNvbW1pdCBtZXNzYWdlIHNheXMgJiMzNDtzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcmIzM0Oy4gQWhhISBUaGF0IG1lYW5zIGl0ICppcyogYSB1c2VyLXN1Ym1pdHRlZCBwYXRjaCB0ZXN0ZWQgYnkgc3l6Ym90LiBJZiBzeXpib3QgdGVzdGVkIGl0LCB0aGVuIHRoZSBidWcgd2FzIGxpa2VseSBmb3VuZCBpbiB0aGUgZW52aXJvbm1lbnQgaW4gd2hpY2ggc3l6Ym90IHRlc3RzLgoKQmFjayB0byB0aGUgb3JpZ2luYWwgcHJvYmxlbTogSXMgbWx4NSByZWFjaGFibGUgaW4gR0NFL1FFTVU/IElmIGl0IGlzbiYjMzk7dCwgSSBzaG91bGQgcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiB0aGVyZSYjMzk7cyBhbnkgc29mdHdhcmUgZW11bGF0aW9uIGZvciBtbHg1LiBJIHdpbGwgc2VhcmNoIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYCBmb3IgYSBkdW1teSBvciBtb2NrIGRyaXZlci4gTGV0JiMzOTtzIHNlZS4uLiBub3RoaW5nIGltbWVkaWF0ZWx5IHN0YW5kcyBvdXQuIEkgZGlkbiYjMzk7dCBmaW5kIGFueSBzb2Z0d2FyZSBlbXVsYXRvcnMgZm9yIG1seDUgd2hlbiBncmVwcGluZyBmb3IgYG1vY2tgIGFuZCBgc2ltYC4gVGhlcmVmb3JlLCBJJiMzOTttIHRoaW5raW5nIHRoZSBjb2RlIGlzIG5vdCByZWFjaGFibGUgaW4gR0NFL1FFTVUsIGFuZCBJIG5lZWQgdG8gcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAxODoxMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtkdW1teSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmM9OTg9RVhQT1JUX1NZTUJPTChtbHg1X2FkZF9jcV90b190YXNrbGV0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jcS5jLTk5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmM6MTAwOnN0YXRpYyB2b2lkIG1seDVfY29yZV9jcV9kdW1teV9jYihzdHJ1Y3QgbWx4NV9jb3JlX2NxICpjcSwgc3RydWN0IG1seDVfZXFlICplcWUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY3EuYy0xMDEte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jcS5jPTEwOD1pbnQgbWx4NV9jcmVhdGVfY3Eoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfY29yZV9jcSAqY3EsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmMtMTQzLVx0aWYgKCFjcS1cdTAwM2Vjb21wKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmM6MTQ0Olx0XHRjcS1cdTAwM2Vjb21wID0gbWx4NV9jb3JlX2NxX2R1bW15X2NiO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmMtMTQ1LVx0LyogYXNzdW1pbmcgQ1Egd2lsbCBiZSBkZWxldGVkIGJlZm9yZSB0aGUgRVEgKi9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vc2VscS5jPTI3PWludCBtbHg1ZV9zZWxxX2luaXQoc3RydWN0IG1seDVlX3NlbHEgKnNlbHEsIHN0cnVjdCBtdXRleCAqc3RhdGVfbG9jaylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vc2VscS5jLTQyLVx0fVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3NlbHEuYzo0MzpcdC8qIEFzc2lnbiBkdW1teSB2YWx1ZXMsIHNvIHRoYXQgbWx4NWVfc2VsZWN0X3F1ZXVlIHdvbiYjMzk7dCBjcmFzaC4gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9zZWxxLmMtNDQtXHQqaW5pdF9wYXJhbXMgPSAoc3RydWN0IG1seDVlX3NlbHFfcGFyYW1zKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2lwb2liL2lwb2liX3ZsYW4uYz0yODU9c3RhdGljIGludCBtbHg1aV9wa2V5X2luaXQoc3RydWN0IG1seDVfY29yZV9kZXYgKm1kZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2lwb2liL2lwb2liX3ZsYW4uYy0zMDAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvaXBvaWIvaXBvaWJfdmxhbi5jOjMwMTpcdC8qIFVzZSBkdW1teSBycXMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9pcG9pYi9pcG9pYl92bGFuLmMtMzAyLVx0cHJpdi1cdTAwM2VjaGFubmVscy5wYXJhbXMubG9nX3JxX210dV9mcmFtZXMgPSBNTFg1RV9QQVJBTVNfTUlOSU1VTV9MT0dfUlFfU0laRTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jPTIyNj1pbnQgbWx4NWh3c19id2NfbWF0Y2hlcl9jcmVhdGVfc2ltcGxlKHN0cnVjdCBtbHg1aHdzX2J3Y19tYXRjaGVyICpid2NfbWF0Y2hlcixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jLTI2MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM6MjYxOlx0LyogY3JlYXRlIGR1bW15IGFjdGlvbiB0ZW1wbGF0ZSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy0yNjItXHRid2NfbWF0Y2hlci1cdTAwM2VhdFswXSA9XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYz04NDI9aHdzX2J3Y19tYXRjaGVyX2ZpbmRfYXQoc3RydWN0IG1seDVod3NfYndjX21hdGNoZXIgKmJ3Y19tYXRjaGVyLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtODQ3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYzo4NDg6XHQvKiBzdGFydCBmcm9tIGluZGV4IDEgLSBmaXJzdCBhY3Rpb24gdGVtcGxhdGUgaXMgYSBkdW1teSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy04NDktXHRmb3IgKGkgPSAxOyBpIFx1MDAzYyBid2NfbWF0Y2hlci1cdTAwM2VudW1fb2ZfYXQ7IGkmIzQzOyYjNDM7KSB7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDE4OjEyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU2MzA1CgkJCQkJCQlvdXRwdXQ6IDMwCgkJCQkJCQl0aG91Z2h0czogNTc5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgRmVhc2liaWxpdHkgb2YgRnV6emluZyBhIE1lbGxhbm94IFN1YmZ1bmN0aW9uIFBhdGNoKioKCk9rYXksIEkgc2VlIHRoZXNlIGtlcm5lbCBjb25maWdzLCBgQ09ORklHX01MWDVfU0ZgIGFuZCBgQ09ORklHX01MWDVfU0ZfTUFOQUdFUmAsIHdoaWNoIHN1Z2dlc3Qgd2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBNZWxsYW5veCBzdWJmdW5jdGlvbnMuIFRoZSBkZXNjcmlwdGlvbiBzYXlzIHRoZXkmIzM5O3JlIGxpa2UgU1JJT1YgVkZzLCBidXQgd2l0aG91dCB0aGUgU1JJT1YgcmVxdWlyZW1lbnQuIEkgaW1tZWRpYXRlbHkgd29uZGVyOiBjYW4gc3ViZnVuY3Rpb25zICpleGlzdCogaW4gYSBwdXJlbHkgdmlydHVhbCBlbnZpcm9ubWVudD8gTXkgdW5kZXJzdGFuZGluZyBpcyB0aGV5JiMzOTtyZSBidWlsdCBvbiB0b3Agb2YgcGh5c2ljYWwgTWVsbGFub3ggaGFyZHdhcmUuCgpUaGVuIHRoZSB0aG91Z2h0IHN0cmlrZXM6IHdoYXQgaWYgc3l6a2FsbGVyICppcyogcnVubmluZyBvbiBhIEdDRSBpbnN0YW5jZSB0aGF0ICpkb2VzKiBoYXZlIGEgTWVsbGFub3ggY2FyZD8gSSBuZWVkIHRvIHJlbWVtYmVyIGhvdyBHQ0UgaW5zdGFuY2VzIGFyZSB0eXBpY2FsbHkgY29uZmlndXJlZC4gSSBrbm93IHRoZXkgY2FuIHVzZSAmIzM0O0dvb2dsZSBWaXJ0dWFsIE5JQyYjMzQ7IG9yICYjMzQ7dmlydGlvLW5ldCYjMzQ7LiBBbmQgSSByZWNhbGwgbG9jYWwgU1NEcyAoTlZNZSkgYW5kIEdQVXMgYXJlIGFsc28gb3B0aW9ucy4gQnV0IGRvIHN0YW5kYXJkIEdDRSBpbnN0YW5jZXMgaW5jbHVkZSBNZWxsYW5veCBjYXJkcz8KCkFoYSEgSSByZW1lbWJlciB0aGF0IHNvbWUgaGlnaC1wZXJmb3JtYW5jZSBHQ0UgaW5zdGFuY2VzIGRvIHVzZSBNZWxsYW5veCBDb25uZWN0WCBjYXJkcywgc3BlY2lmaWNhbGx5IHRoZSBDb25uZWN0WC02IG9yIENvbm5lY3RYLTcgbW9kZWxzIGZvciBUaWVyIDEgbmV0d29ya2luZyBvciBBMy9BMiBWTXMuIEJ1dCBzeXprYWxsZXIgVk1zIGFyZSB1c3VhbGx5IGp1c3Qgc3RhbmRhcmQgc21hbGwgb25lcyBsaWtlIGBuMS1zdGFuZGFyZC0yYCBvciBgZTItc3RhbmRhcmQtMmAgYW5kIHNvIGFyZSBwcm9iYWJseSB1c2luZyBgdmlydGlvLW5ldGAgb3IgYGd2ZWAgLiBTbywgbm8gTWVsbGFub3ggaGFyZHdhcmUgZm9yIHRoZSBzdGFuZGFyZCBzeXprYWxsZXIgc2V0dXAuCgpPa2F5LCBzbyBzeXprYWxsZXIgKmRvZXNuJiMzOTt0KiB0eXBpY2FsbHkgaGF2ZSBNZWxsYW5veCBoYXJkd2FyZSBpbiBpdHMgZGVmYXVsdCBHQ0UgVk1zLiBOb3cgSSYjMzk7bSB0aGlua2luZywgaG93IGNvdWxkIHRoaXMgcGF0Y2ggYmUgdGVzdGVkPyBNYXliZSB0aGlzIGlzIGEgYnVnIGEgdXNlciByZXBvcnRlZCBhbmQgc3VibWl0dGVkIHRvIHN5emJvdC4gSWYgdGhlIHVzZXIgc3VibWl0dGVkIGEgcGF0Y2gsIHN5emJvdCB3aWxsIHRyeSB0byB0ZXN0IGl0LiBJZiBzeXpib3QgZG9lc24mIzM5O3QgaGF2ZSB0aGUgaGFyZHdhcmUsIHRoZSB0ZXN0IHdpbGwgY29tcGlsZSBhbmQgcnVuLCBidXQgbGlrZWx5IHdvbiYjMzk7dCBldmVuICp0b3VjaCogdGhlIGNvZGUuIEl0IGlzIHVubGlrZWx5IHRoaXMgd2lsbCByZWFjaCB0aGUgTWVsbGFub3ggY29kZS4KClRoZW4gSSByZWNhbGwgdGhlIGNvcmUgcXVlc3Rpb24uIElmIHRoZSBjb2RlIGlzIHVucmVhY2hhYmxlIGluIEdDRS9RRU1VLCBJIG5lZWQgdG8gZmxhZyBpdCBhcyBgV29ydGhGdXp6aW5nPWZhbHNlYC4gSSBuZWVkIHRvIHJlcmVhZCB0aGUgcHJvbXB0LgoKTGV0JiMzOTtzIHNlZTogJiMzNDtSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zLi4uIGNvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVS4uLiYjMzQ7CgpJcyB0aGlzIG1seDUgY29kZSByZWFjaGFibGUgaW4gR0NFL1FFTVU/IElmIHRoZXJlJiMzOTtzIG5vIHNvZnR3YXJlIGVtdWxhdG9yIGZvciBtbHg1LCBhbmQgdGhlIFBDSSBmdXp6ZXIgY2FuJiMzOTt0IHJlYWxpc3RpY2FsbHkgZ2V0IGRlZXAgaW50byB0aGUgZHJpdmVyICh0aGluayByZWdpc3RlcmluZyBhIG5ldGRldiBhbmQgY29uZmlndXJpbmcgVEMgcnVsZXMpLCB0aGVuIGl0IGlzIGltcG9zc2libGUgdG8gcmVhY2guIEl0IG5lZWRzIG1vcmUgdGhhbiBzaW1wbGUgUENJIHJlYWRzL3dyaXRlcyBiZWNhdXNlIG9mIGNvbXBsZXggZmlybXdhcmUgaW50ZXJhY3Rpb25zLgoKTm93LCBkb2VzIHRoZSBQQ0kgZnV6emVyIGV2ZW4gKnJlYWNoKiB0aGlzPyBJIG5lZWQgdG8gcXVpY2tseSBjaGVjayBpZiB0aGVyZSYjMzk7cyBhbnkgYHN5el9wY2lfZXBgIGNvZGUgc3BlY2lmaWNhbGx5IGVtdWxhdGluZyBtbHg1LiBJIG5lZWQgdG8gYmUgc3VyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTg6MTI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bWx4NSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDt0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9kcml2ZXJzL25ldC9ody9kZXZsaW5rX3JhdGVfdGNfYncucHk9MzU9QmFuZHdpZHRoIERpc3RyaWJ1dGlvbjpcbi0tXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9kcml2ZXJzL25ldC9ody9kZXZsaW5rX3JhdGVfdGNfYncucHktNDEtXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9kcml2ZXJzL25ldC9ody9kZXZsaW5rX3JhdGVfdGNfYncucHk6NDI6SGFyZHdhcmUtU3BlY2lmaWMgQmVoYXZpb3IgKG1seDUpOlxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvZHJpdmVycy9uZXQvaHcvZGV2bGlua19yYXRlX3RjX2J3LnB5LTQzLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9kcml2ZXJzL25ldC9ody9kZXZsaW5rX3JhdGVfdGNfYncucHk6NDQ6bWx4NSBoYXJkd2FyZSBlbmZvcmNlcyB0cmFmZmljIGNsYXNzIHNlcGFyYXRpb24gYnkgZW5zdXJpbmcgdGhhdCBlYWNoIHRyYW5zbWl0XG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9kcml2ZXJzL25ldC9ody9kZXZsaW5rX3JhdGVfdGNfYncucHktNDUtcXVldWUgKFNRKSBpcyBhc3NvY2lhdGVkIHdpdGggYSBzaW5nbGUgVEMuIElmIGEgcGFja2V0IGlzIHNlbnQgb24gYSBxdWV1ZSB0aGF0XG4tLVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvZHJpdmVycy9uZXQvaHcvZGV2bGlua19yYXRlX3RjX2J3LnB5PTM4OD1kZWYgdGVzdF9ub190Y19tYXBwaW5nX2JhbmR3aWR0aChjZmcpOlxuLS1cbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2RyaXZlcnMvbmV0L2h3L2RldmxpbmtfcmF0ZV90Y19idy5weS0zOTMtICAgIGZhaWxfYndfbXNnID0gXCYjMzQ7QmFuZHdpZHRoIG1hdGNoZWQgMjAvODAgc3BsaXQgd2l0aG91dCBUQyBtYXBwaW5nXCYjMzQ7XG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9kcml2ZXJzL25ldC9ody9kZXZsaW5rX3JhdGVfdGNfYncucHk6Mzk0OiAgICBpc19tbHg1ID0gXCYjMzQ7ZHJpdmVyOiBtbHg1XCYjMzQ7IGluIGV0aHRvb2woZlwmIzM0Oy1pIHtjZmcuaWZuYW1lfVwmIzM0Oykuc3Rkb3V0XG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9kcml2ZXJzL25ldC9ody9kZXZsaW5rX3JhdGVfdGNfYncucHktMzk1LVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvZHJpdmVycy9uZXQvaHcvZGV2bGlua19yYXRlX3RjX2J3LnB5LTM5Ni0gICAgaWYgcnVuX2JhbmR3aWR0aF9kaXN0cmlidXRpb25fdGVzdChjZmcsIHNldF90Y19tYXBwaW5nPUZhbHNlKTpcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2RyaXZlcnMvbmV0L2h3L2RldmxpbmtfcmF0ZV90Y19idy5weTozOTc6ICAgICAgICBpZiBpc19tbHg1OlxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvZHJpdmVycy9uZXQvaHcvZGV2bGlua19yYXRlX3RjX2J3LnB5LTM5OC0gICAgICAgICAgICByYWlzZSBLc2Z0WGZhaWxFeChmYWlsX2J3X21zZylcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2RyaXZlcnMvbmV0L2h3L2RldmxpbmtfcmF0ZV90Y19idy5weS0zOTktICAgICAgICByYWlzZSBLc2Z0RmFpbEV4KGZhaWxfYndfbXNnKVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvZHJpdmVycy9uZXQvaHcvZGV2bGlua19yYXRlX3RjX2J3LnB5OjQwMDogICAgaWYgaXNfbWx4NTpcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2RyaXZlcnMvbmV0L2h3L2RldmxpbmtfcmF0ZV90Y19idy5weTo0MDE6ICAgICAgICByYWlzZSBLc2Z0RmFpbEV4KFwmIzM0O21seDUgYmVoYXZpb3IgY2hhbmdlZDpcJiMzNDsgJiM0MzsgcGFzc19id19tc2cpXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9kcml2ZXJzL25ldC9ody9kZXZsaW5rX3JhdGVfdGNfYncucHktNDAyLSAgICBrc2Z0X3ByKHBhc3NfYndfbXNnKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAxODoxMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1ODI2MgoJCQkJCQkJb3V0cHV0OiAxMTIKCQkJCQkJCXRob3VnaHRzOiA5NjEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqVW5mdXp6YWJsZSBDb2RlIFBhdGggQXNzZXNzbWVudCoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIHRoZXJlJiMzOTtzIG5vIHNvZnR3YXJlIGVtdWxhdG9yIGZvciBtbHg1LCB3aGljaCBpbW1lZGlhdGVseSBmbGFncyBpdCBhcyBhIHBvdGVudGlhbCBkZWFkIGVuZCBmb3Igc3RhbmRhcmQgZnV6emluZy4gQnV0IHdhaXQsIHdoYXQgYWJvdXQgdGhlIFBDSSBmdXp6ZXI/IENvdWxkIGl0ICpzb21laG93KiByZWFjaCBpdD8gSWYgdGhlcmUmIzM5O3MgYSBwb3NzaWJpbGl0eSwgSSBoYXZlIHRvIGp1c3RpZnkgaXQuCgpJZiBJJiMzOTttIHNheWluZyAmIzM0O1dvcnRoRnV6emluZz10cnVlLCYjMzQ7IHRoZW4gSSBuZWVkIHRvIHByb3ZpZGUgYEZvY3VzU3ltYm9sc2AgYW5kIGBFbmFibGVDb25maWdzYC4gSWYgaXQmIzM5O3MgJiMzNDtXb3J0aEZ1enppbmc9ZmFsc2UsJiMzNDsgdGhlIHJlYXNvbmluZyBoYXMgdG8gYmUgYWlydGlnaHQuIFRoZSBpbml0aWFsIHJlYXNvbmluZyBpczogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lbGxhbm94IG1seDUgaGFyZHdhcmUgZHJpdmVyLiBTaW5jZSBtbHg1IHJlcXVpcmVzIHBoeXNpY2FsIE1lbGxhbm94IGhhcmR3YXJlIGFuZCB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRvciBmb3IgaXQgaW4gdGhlIGtlcm5lbCwgdGhlc2UgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVS4mIzM0OyBUaGF0IHNvdW5kcyBzb2xpZCwgYnV0IGxldCYjMzk7cyBkZWx2ZSBkZWVwZXIuCgpEb2VzIFN5emthbGxlciBldmVuIHRyeSB0byBmdXp6IG1seDU/IEl0IGhhcyBhIGBzeXpfcGNpX2VwYCBmdXp6ZXIuIEl0IGNvdWxkIGJlIGEgcG9zc2liaWxpdHkuIExldCYjMzk7cyBzZWUgaWYgc3l6a2FsbGVyIGhhcyBmb3VuZCBhbnl0aGluZy4gSSBjYW4mIzM5O3QgZG8gYSBkaXJlY3Qgc2VhcmNoIG9mIHRoZSBTeXprYWxsZXIgZGFzaGJvYXJkLCBidXQgSSBjYW4gbWFrZSBhbiBlZHVjYXRlZCBndWVzcy4gQ29tcGxleCBuZXR3b3JrIGRyaXZlcnMgb2Z0ZW4gcmVxdWlyZSBmaXJtd2FyZSBpbnRlcmFjdGlvbi4gV2hpbGUgdGhlIFBDSSBmdXp6ZXIgbWlnaHQgdHJpZ2dlciBzb21lIGVhcmx5IHByb2JlIGNvZGUsIGhpdHRpbmcgY29kZSBwYXRocyBsaWtlIGBtbHg1ZV90Y19jbGVhbl9mZGJfcGVlcl9mbG93c2AgaXMgaGlnaGx5IHVubGlrZWx5LiBUaGF0IGZ1bmN0aW9uIG5lZWRzIGEgcmVnaXN0ZXJlZCBuZXRkZXYsIGUtc3dpdGNoIGVuYWJsZWQsIGFuZCBUQyBydWxlcyBzZXQgdXAg4oCTIGVzc2VudGlhbGx5LCBhIGZ1bGx5IGZ1bmN0aW9uYWwgbWx4NSBlbnZpcm9ubWVudCB3aGljaCBqdXN0IHdvdWxkbiYjMzk7dCBiZSBwb3NzaWJsZSB3aXRoIGEgZ2VuZXJpYyBQQ0kgZnV6emVyLgoKT2theSwgbGV0JiMzOTtzIGV4YW1pbmUgdGhlIHNwZWNpZmljIGxvY2F0aW9ucyB0aGF0IGFyZSBpbXBhY3RlZC4gYG1seDVfbGFnX2NyZWF0ZV9zaW5nbGVfZmRiX2ZpbHRlcmAgaXMgaW4gYGxhZy9zaGFyZWRfZmRiLmNgLiBMQUcsIG9yIExpbmsgQWdncmVnYXRpb24sIG5lZWRzIG11bHRpcGxlIHBoeXNpY2FsIHBvcnRzLiBgbWx4NV9tcGVzd193b3JrYCBpcyBpbiBgbGFnL21wZXN3LmNgLiBUaGVzZSBhcmUgZGVlcCwgaGFyZHdhcmUtc3BlY2lmaWMgZmVhdHVyZXM6IE11bHRpLVBvcnQgRS1Td2l0Y2gsIExpbmsgQWdncmVnYXRpb24uIFRoZXJlJiMzOTtzIGFsbW9zdCB6ZXJvIGNoYW5jZSB0aGUgUENJIGZ1enplciBjYW4gcmVhY2ggdGhvc2Ugd2l0aG91dCBhIGRlZGljYXRlZCBlbXVsYXRvciwgd2hpY2ggZG9lc24mIzM5O3QgZXhpc3QuIFRoaXMgY29kZSBpcyBlc3NlbnRpYWxseSB1bnJlYWNoYWJsZSBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LgoKTm93LCBsZXQgbWUgZG91YmxlIGNoZWNrIHRoZSBTeXprYWxsZXIgY29uZmlnLiBEb2VzIFN5emthbGxlciBlbmFibGUgYENPTkZJR19NTFg1X0NPUkVgPyBZZXMsIGl0IGRvZXMuIEl0JiMzOTtzIGZ1enppbmcgdGhlIHByb2JlIGZ1bmN0aW9uLiBCdXQsIHRoZSBwcm9tcHQgaXMgZXhwbGljaXQ6ICYjMzQ7UmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWlucyBjb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUuJiMzNDsKCk1seDUgaXMgYSBwaHlzaWNhbCBoYXJkd2FyZSBkcml2ZXIsIHRoZXJlIGlzIG5vIGBtbHg1X3NpbWAgb3Igc2ltaWxhciBzb2Z0d2FyZSBlbXVsYXRvciwgc28gdGhlc2UgVEMgZmxvd3MsIExBRywgYW5kIE1QRVNXIG1vZGlmaWNhdGlvbnMgd2lsbCBiZSB1bmFjaGlldmFibGUgaW4gR0NFL1FFTVUuCgpUaGUgcmVhc29uaW5nIG5lZWRzIHRvIGJlIGNsZWFyLCBzbyBoZXJlIGl0IGlzOiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWVsbGFub3ggbWx4NSBoYXJkd2FyZSBkcml2ZXIsIHNwZWNpZmljYWxseSBkZWVwIGxvZ2ljIHJlbGF0ZWQgdG8gVEMgZmxvd3MsIExpbmsgQWdncmVnYXRpb24gKExBRyksIGFuZCBNdWx0aS1Qb3J0IEUtU3dpdGNoIChNUEVTVykuIFNpbmNlIG1seDUgcmVxdWlyZXMgcGh5c2ljYWwgTWVsbGFub3ggaGFyZHdhcmUgYW5kIHRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdG9yIGZvciBpdCBpbiB0aGUga2VybmVsLCB0aGVzZSBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLiYjMzQ7CgpIb2xkIG9uLCB3aGF0IGFib3V0IGEgdmlydHVhbCBkZXZpY2UgdGhhdCB1c2VzIHRoaXMgY29kZT8gTWF5YmUgYG5ldGRldnNpbWA/IE5vLCB0aGF0JiMzOTtzIGEgY29tcGxldGVseSBzZXBhcmF0ZSBkcml2ZXIuIENvdWxkIGl0IGJlIHVzZWQgd2l0aCB2ZHBhPyBgdmRwYWAgaGFzIGBtbHg1X3ZkcGFgLCBidXQgaXQgKnN0aWxsKiBuZWVkcyBhIHBoeXNpY2FsIG1seDUgZGV2aWNlLiBXaGF0IGFib3V0IHZmaW8/IFllcywgYnV0IGl0IHJlcXVpcmVzIHBoeXNpY2FsIGhhcmR3YXJlIHRvby4KClRoZSBjb25jbHVzaW9uIHN0YW5kcy4gVGhpcyByZXF1aXJlcyBwaHlzaWNhbCBoYXJkd2FyZS4KCkxldCYjMzk7cyBkbyBhIGZpbmFsIHF1aWNrIHBhdGNoIHJldmlldy4gRmlsZXMgbW9kaWZpZWQgYXJlOiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3RjLmNgLCBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9tcGVzdy5jYCwgYW5kIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL3NoYXJlZF9mZGIuY2AuIEFsbCB3aXRoaW4gdGhlIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYCBkaXJlY3RvcnkuIFllcCwgdGhhdCBjb25maXJtcyBpdDogTWVsbGFub3ggQ29ubmVjdFggaGFyZHdhcmUgZHJpdmVyLgoKSSB3aWxsIHNldCBgV29ydGhGdXp6aW5nPWZhbHNlYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTg6MTM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWVsbGFub3ggbWx4NSBoYXJkd2FyZSBkcml2ZXIsIHNwZWNpZmljYWxseSBkZWVwIGxvZ2ljIHJlbGF0ZWQgdG8gVEMgZmxvd3MsIExpbmsgQWdncmVnYXRpb24gKExBRyksIGFuZCBNdWx0aS1Qb3J0IEUtU3dpdGNoIChNUEVTVykuIFNpbmNlIG1seDUgcmVxdWlyZXMgcGh5c2ljYWwgTWVsbGFub3ggaGFyZHdhcmUgYW5kIHRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdG9yIGZvciBpdCBpbiB0aGUga2VybmVsLCB0aGVzZSBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lbGxhbm94IG1seDUgaGFyZHdhcmUgZHJpdmVyLCBzcGVjaWZpY2FsbHkgZGVlcCBsb2dpYyByZWxhdGVkIHRvIFRDIGZsb3dzLCBMaW5rIEFnZ3JlZ2F0aW9uIChMQUcpLCBhbmQgTXVsdGktUG9ydCBFLVN3aXRjaCAoTVBFU1cpLiBTaW5jZSBtbHg1IHJlcXVpcmVzIHBoeXNpY2FsIE1lbGxhbm94IGhhcmR3YXJlIGFuZCB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRvciBmb3IgaXQgaW4gdGhlIGtlcm5lbCwgdGhlc2UgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNi0zMFQxODoxMToxOS43NDUyODY3NDdaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDI0MzA0NTIxMTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWxsYW5veCBtbHg1IGhhcmR3YXJlIGRyaXZlciwgc3BlY2lmaWNhbGx5IGRlZXAgbG9naWMgcmVsYXRlZCB0byBUQyBmbG93cywgTGluayBBZ2dyZWdhdGlvbiAoTEFHKSwgYW5kIE11bHRpLVBvcnQgRS1Td2l0Y2ggKE1QRVNXKS4gU2luY2UgbWx4NSByZXF1aXJlcyBwaHlzaWNhbCBNZWxsYW5veCBoYXJkd2FyZSBhbmQgdGhlcmUgaXMgbm8gc29mdHdhcmUgZW11bGF0b3IgZm9yIGl0IGluIHRoZSBrZXJuZWwsIHRoZXNlIGNvZGUgcGF0aHMgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQxODoxMToxOS43NDUyOTY3OTdaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY3NzY2MDYwNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGFiMmQ4OWZhYWFmNjc2YjQ5OTQ2MmFhZTQyMDc4N2M0M2M0MDMyMGZcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFR1ZSBKdW4gMzAgMTg6MTE6MTcgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3RjLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdGMuY1xcbmluZGV4IDkxMDQ5MmViNTFmMjc2Li4xYmM3YjkwMTkxMjRhNCAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdGMuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90Yy5jXFxuQEAgLTU1NDcsNiArNTU0Nyw5IEBAIHZvaWQgbWx4NWVfdGNfY2xlYW5fZmRiX3BlZXJfZmxvd3Moc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3KVxcbiBcXG4gXFx0bWx4NV9kZXZjb21fZm9yX2VhY2hfcGVlcl9lbnRyeShkZXZjb20sIHBlZXJfZXN3LCBwb3MpIHtcXG4gXFx0XFx0aSA9IG1seDVfbGFnX2dldF9kZXZfc2VxKHBlZXJfZXN3LVxcdTAwM2VkZXYpO1xcbitcXHRcXHRpZiAoaSBcXHUwMDNjIDApXFxuK1xcdFxcdFxcdGNvbnRpbnVlO1xcbitcXG4gXFx0XFx0bGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGZsb3csIHRtcCwgXFx1MDAyNmVzdy1cXHUwMDNlb2ZmbG9hZHMucGVlcl9mbG93c1tpXSwgcGVlcltpXSlcXG4gXFx0XFx0XFx0bWx4NWVfdGNfZGVsX2ZkYl9wZWVyc19mbG93KGZsb3cpO1xcbiBcXHR9XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvbXBlc3cuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvbXBlc3cuY1xcbmluZGV4IDUwYmZiNDUwYzcxZTJmLi5hYmY3MjAyNmM3NTEzMyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL21wZXN3LmNcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL21wZXN3LmNcXG5AQCAtMTk0LDggKzE5NCwxMCBAQCBzdGF0aWMgdm9pZCBtbHg1X21wZXN3X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbiBcXHRzdHJ1Y3QgbWx4NV9sYWcgKmxkZXYgPSBtcGVzd3ctXFx1MDAzZWxhZztcXG4gXFxuIFxcdGRldmNvbSA9IG1seDVfbGFnX2dldF9kZXZjb21fY29tcChsZGV2KTtcXG4tXFx0aWYgKCFkZXZjb20pXFxuLVxcdFxcdHJldHVybjtcXG4rXFx0aWYgKCFkZXZjb20pIHtcXG4rXFx0XFx0bXBlc3d3LVxcdTAwM2VyZXN1bHQgPSAtRU5PREVWO1xcbitcXHRcXHRnb3RvIGNvbXBsZXRlO1xcbitcXHR9XFxuIFxcbiBcXHRtbHg1X2RldmNvbV9jb21wX2xvY2soZGV2Y29tKTtcXG4gXFx0bWx4NV9tcGVzd19zZF9kZXZjb21zX2xvY2sobGRldik7XFxuQEAgLTIxMyw2ICsyMTUsNyBAQCBzdGF0aWMgdm9pZCBtbHg1X21wZXN3X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbiBcXHRtdXRleF91bmxvY2soXFx1MDAyNmxkZXYtXFx1MDAzZWxvY2spO1xcbiBcXHRtbHg1X21wZXN3X3NkX2RldmNvbXNfdW5sb2NrKGxkZXYpO1xcbiBcXHRtbHg1X2RldmNvbV9jb21wX3VubG9jayhkZXZjb20pO1xcbitjb21wbGV0ZTpcXG4gXFx0Y29tcGxldGUoXFx1MDAyNm1wZXN3dy1cXHUwMDNlY29tcCk7XFxuIH1cXG4gXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvc2hhcmVkX2ZkYi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9zaGFyZWRfZmRiLmNcXG5pbmRleCAxMTM4NjY0OTRkMTY0Yi4uNmI0YWQzYzUzZjJmMzMgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9zaGFyZWRfZmRiLmNcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL3NoYXJlZF9mZGIuY1xcbkBAIC03OCw3ICs3OCw3IEBAIHN0YXRpYyBpbnQgbWx4NV9sYWdfY3JlYXRlX3NpbmdsZV9mZGJfZmlsdGVyKHN0cnVjdCBtbHg1X2xhZyAqbGRldiwgdTMyIGZpbHRlcilcXG4gXFx0fVxcbiBcXHRyZXR1cm4gMDtcXG4gZXJyOlxcbi1cXHRtbHg1X2xhZ19mb3JfZWFjaF9yZXZlcnNlKGosIGksIDAsIGxkZXYsIGZpbHRlcikge1xcbitcXHRtbHg1X2xhZ19mb3JfZWFjaF9yZXZlcnNlKGosIGkgLSAxLCAwLCBsZGV2LCBmaWx0ZXIpIHtcXG4gXFx0XFx0c3RydWN0IG1seDVfZXN3aXRjaCAqc2xhdmVfZXN3O1xcbiBcXG4gXFx0XFx0aWYgKGogPT0gbWFzdGVyX2lkeClcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTg6MTE6MjAuNDIzODI4MzgxWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMDE3NTE5MDI5MjMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWxsYW5veCBtbHg1IGhhcmR3YXJlIGRyaXZlciwgc3BlY2lmaWNhbGx5IGRlZXAgbG9naWMgcmVsYXRlZCB0byBUQyBmbG93cywgTGluayBBZ2dyZWdhdGlvbiAoTEFHKSwgYW5kIE11bHRpLVBvcnQgRS1Td2l0Y2ggKE1QRVNXKS4gU2luY2UgbWx4NSByZXF1aXJlcyBwaHlzaWNhbCBNZWxsYW5veCBoYXJkd2FyZSBhbmQgdGhlcmUgaXMgbm8gc29mdHdhcmUgZW11bGF0b3IgZm9yIGl0IGluIHRoZSBrZXJuZWwsIHRoZXNlIGNvZGUgcGF0aHMgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGFiMmQ4OWZhYWFmNjc2YjQ5OTQ2MmFhZTQyMDc4N2M0M2M0MDMyMGZcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEp1biAzMCAxODoxMToxNyAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90Yy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3RjLmNcbmluZGV4IDkxMDQ5MmViNTFmMjc2Li4xYmM3YjkwMTkxMjRhNCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90Yy5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdGMuY1xuQEAgLTU1NDcsNiArNTU0Nyw5IEBAIHZvaWQgbWx4NWVfdGNfY2xlYW5fZmRiX3BlZXJfZmxvd3Moc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3KVxuIFxuIFx0bWx4NV9kZXZjb21fZm9yX2VhY2hfcGVlcl9lbnRyeShkZXZjb20sIHBlZXJfZXN3LCBwb3MpIHtcbiBcdFx0aSA9IG1seDVfbGFnX2dldF9kZXZfc2VxKHBlZXJfZXN3LVx1MDAzZWRldik7XG4rXHRcdGlmIChpIFx1MDAzYyAwKVxuK1x0XHRcdGNvbnRpbnVlO1xuK1xuIFx0XHRsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoZmxvdywgdG1wLCBcdTAwMjZlc3ctXHUwMDNlb2ZmbG9hZHMucGVlcl9mbG93c1tpXSwgcGVlcltpXSlcbiBcdFx0XHRtbHg1ZV90Y19kZWxfZmRiX3BlZXJzX2Zsb3coZmxvdyk7XG4gXHR9XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9tcGVzdy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9tcGVzdy5jXG5pbmRleCA1MGJmYjQ1MGM3MWUyZi4uYWJmNzIwMjZjNzUxMzMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL21wZXN3LmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvbXBlc3cuY1xuQEAgLTE5NCw4ICsxOTQsMTAgQEAgc3RhdGljIHZvaWQgbWx4NV9tcGVzd193b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbiBcdHN0cnVjdCBtbHg1X2xhZyAqbGRldiA9IG1wZXN3dy1cdTAwM2VsYWc7XG4gXG4gXHRkZXZjb20gPSBtbHg1X2xhZ19nZXRfZGV2Y29tX2NvbXAobGRldik7XG4tXHRpZiAoIWRldmNvbSlcbi1cdFx0cmV0dXJuO1xuK1x0aWYgKCFkZXZjb20pIHtcbitcdFx0bXBlc3d3LVx1MDAzZXJlc3VsdCA9IC1FTk9ERVY7XG4rXHRcdGdvdG8gY29tcGxldGU7XG4rXHR9XG4gXG4gXHRtbHg1X2RldmNvbV9jb21wX2xvY2soZGV2Y29tKTtcbiBcdG1seDVfbXBlc3dfc2RfZGV2Y29tc19sb2NrKGxkZXYpO1xuQEAgLTIxMyw2ICsyMTUsNyBAQCBzdGF0aWMgdm9pZCBtbHg1X21wZXN3X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuIFx0bXV0ZXhfdW5sb2NrKFx1MDAyNmxkZXYtXHUwMDNlbG9jayk7XG4gXHRtbHg1X21wZXN3X3NkX2RldmNvbXNfdW5sb2NrKGxkZXYpO1xuIFx0bWx4NV9kZXZjb21fY29tcF91bmxvY2soZGV2Y29tKTtcbitjb21wbGV0ZTpcbiBcdGNvbXBsZXRlKFx1MDAyNm1wZXN3dy1cdTAwM2Vjb21wKTtcbiB9XG4gXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9zaGFyZWRfZmRiLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL3NoYXJlZF9mZGIuY1xuaW5kZXggMTEzODY2NDk0ZDE2NGIuLjZiNGFkM2M1M2YyZjMzIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9zaGFyZWRfZmRiLmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvc2hhcmVkX2ZkYi5jXG5AQCAtNzgsNyArNzgsNyBAQCBzdGF0aWMgaW50IG1seDVfbGFnX2NyZWF0ZV9zaW5nbGVfZmRiX2ZpbHRlcihzdHJ1Y3QgbWx4NV9sYWcgKmxkZXYsIHUzMiBmaWx0ZXIpXG4gXHR9XG4gXHRyZXR1cm4gMDtcbiBlcnI6XG4tXHRtbHg1X2xhZ19mb3JfZWFjaF9yZXZlcnNlKGosIGksIDAsIGxkZXYsIGZpbHRlcikge1xuK1x0bWx4NV9sYWdfZm9yX2VhY2hfcmV2ZXJzZShqLCBpIC0gMSwgMCwgbGRldiwgZmlsdGVyKSB7XG4gXHRcdHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKnNsYXZlX2VzdztcbiBcbiBcdFx0aWYgKGogPT0gbWFzdGVyX2lkeClcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDE4OjExOjIwLjQyMzgzMjMzMVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE4MDQ3MDIwMTI4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgTWVsbGFub3ggbWx4NSBEcml2ZXIgUGF0Y2ggZm9yIEZ1enppbmcgUG90ZW50aWFsKipcblxuT2theSwgc28gSSd2ZSBnb3QgdGhpcyBwYXRjaCB0aGF0IHRvdWNoZXMgdGhyZWUgZmlsZXMgd2l0aGluIHRoZSBNZWxsYW5veCBtbHg1IEV0aGVybmV0IGRyaXZlcjogYGVuX3RjLmNgLCBgbGFnL21wZXN3LmNgLCBhbmQgYGxhZy9zaGFyZWRfZmRiLmNgLiBMZXQgbWUgcXVpY2tseSBicmVhayBkb3duIHdoYXQgdGhpcyBwYXRjaCBkb2VzLCBzbyBJIGNhbiBzdGFydCB0aGlua2luZyBhYm91dCBmdXp6aW5nIGl0LiBJdCBhZGRzIGEgY2hlY2sgaW4gYG1seDVlX3RjX2NsZWFuX2ZkYl9wZWVyX2Zsb3dzYCwgYSBjaGVjayBhbmQgY29uZGl0aW9uYWwganVtcCBpbiBgbWx4NV9tcGVzd193b3JrYCwgYW5kIG1vZGlmaWVzIGEgbG9vcCBpbiBgbWx4NV9sYWdfY3JlYXRlX3NpbmdsZV9mZGJfZmlsdGVyYC4gU2VlbXMgc3RyYWlnaHRmb3J3YXJkIGVub3VnaOKAlGZ1bmN0aW9uYWwgY2hhbmdlcy4gTm93IHRoZSBxdWVzdGlvbiBpcywgY2FuIEkgZXZlbiBmdXp6IHRoaXMgdGhpbmc/XG5cbk1lbGxhbm94IG1seDUsIHRoYXTigJlzIGEgaGFyZHdhcmUgZHJpdmVyLCByaWdodD8gWWVhaCwgaXQncyBmb3IgTWVsbGFub3ggQ29ubmVjdFggbmV0d29yayBjYXJkcy4gU28sIEkgbmVlZCB0byBjb25zaWRlciB0aGUgZW52aXJvbm1lbnQuIE15IGltbWVkaWF0ZSBjb25jZXJuIGlzIHdoZXRoZXIgdGhpcyBpcyBnb2luZyB0byBiZSBmZWFzaWJsZSBpbiBhIHN0YW5kYXJkIHZpcnR1YWxpemVkIHNldHVwLCBsaWtlIEdDRSBvciBRRU1VLiBJIG5lZWQgdGhvc2UgY2FyZHMsIHdoaWNoIGFyZW4ndCB0eXBpY2FsbHkgcHJlc2VudCB1bmxlc3MgeW91IGVtdWxhdGUgdGhlbSBvciBwYXNzIHRoZW0gdGhyb3VnaC4gQXJlIHRoZXJlIGFueSBzb2Z0d2FyZSBlbXVsYXRvcnMgZm9yIG1seDUgaW4gdGhlIGtlcm5lbD8gSSBhbSB0aGlua2luZywgZm9yIGV4YW1wbGUsIG9mIGBuZXRkZXZzaW1gIG9yIGBtYWM4MDIxMV9od3NpbWAuIExldCBtZSBjaGVjay4uLiBub3BlLCBkb2Vzbid0IGxvb2sgbGlrZSB0aGVyZSBpcyBhIGRlZGljYXRlZCBtbHg1IHNvZnR3YXJlIGVtdWxhdG9yIGluIHRoZSB1cHN0cmVhbSBrZXJuZWwuXG5cbk9rYXksIHNvIHRoZW4gdGhlIG5leHQgdGhpbmcgSSBuZWVkIHRvIGFzayBpczogZG9lcyBzeXprYWxsZXIgZG8gYW55dGhpbmcgd2l0aCBtbHg1PyBTeXprYWxsZXIgaXMgdGhlIGdvLXRvIHRvb2wgZm9yIGtlcm5lbCBmdXp6aW5nLCBidXQgaXQgdXN1YWxseSBuZWVkcyBzcGVjaWZpYyBoYXJkd2FyZSBvciBlZmZlY3RpdmUgZW11bGF0b3JzLiBXZWxsLCBpdCBjYW4gZnV6eiBQQ0kgZGV2aWNlcywgaWYgdGhlcmUgaXMgYSBQQ0kgZnV6emVyLCB3aGljaCBpcyB0aGUgY2xhc3Mgb2YgaGFyZHdhcmUgd2UgYXJlIHRhbGtpbmcgYWJvdXQgaGVyZS4gQnV0IHJlYWNoaW5nIHRoZXNlIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlcnMgd2l0aG91dCB0aGUgaGFyZHdhcmUgaXMgYSBwYWluLiBJIHNlZW0gdG8gcmVjYWxsIHRoYXQgc3l6a2FsbGVyIGhhcyBhIHZoY2kvUENJIGZ1enplciBvZiBzb21lIGtpbmQsIGJ1dCBpcyBpdCBhY3R1YWxseSBlZmZlY3RpdmUgZm9yIG1seDU/IEknbGwgbmVlZCB0byBjaGVjayBpZiB0aGVyZSBhcmUgYW55IGNvbmZpZ3VyYXRpb25zIEkgY2FuIHVzZS4gSSB3b25kZXIgaWYgaXQncyBldmVuIHdvcnRoIGF0dGVtcHRpbmcgdG8gZnV6eiBnaXZlbiB0aGF0IGl0IGlzIGEgUENJIHBoeXNpY2FsIGRldmljZSBkcml2ZXIgd2l0aCBubyBzb2Z0d2FyZSBlbXVsYXRvci5cblxuTGV0IG1lIHRoaW5rIGJhY2sgb24gc29tZSBwcmV2aW91cyBleHBlcmllbmNlcy4gSSByZW1lbWJlciBzb21ldGhpbmcgYWJvdXQgY29kZSBwYXRocyBiZWluZyBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cywgc3BlY2lmaWNhbGx5IGluIHNpdHVhdGlvbnMgaW52b2x2aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlLiBXZWxsLCBJIGFtIHRoaW5raW5nIHRoYXQgdGhpcyBhcHBsaWVzIGhlcmUgYXMgbWx4NSBpc24ndCByZWFjaGFibGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBNYXliZSBJIHNob3VsZCBkb3VibGUtY2hlY2suIEkgd2lsbCBxdWlja2x5IHNlYXJjaCB0aGUga2VybmVsIGNvZGUgZm9yIGFueSBldmlkZW5jZSBvZiBtbHg1IHNvZnR3YXJlIGVtdWxhdGlvbiwganVzdCBpbiBjYXNlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNjM4LCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTcxLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTg6MTE6MzguNDcwODU2Nzc5WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI0MDkxMDM1NiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtbHg1XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgOTkwNjIgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnPTE5PWNvbmZpZyBNTFg1X0ZQR0FcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTI1LVxcdCAgYW5kIGFuIEZQR0EgY2hpcCBvbiBvbmUgYm9hcmQuIElmIHlvdSBzZWxlY3QgdGhpcyBvcHRpb24sIHRoZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnOjI2OlxcdCAgbWx4NV9jb3JlIGRyaXZlciB3aWxsIGluY2x1ZGUgdGhlIElubm92YSBGUEdBIGNvcmUgYW5kIGFsbG93IGJ1aWxkaW5nXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctMjctXFx0ICBzYW5kYm94LXNwZWNpZmljIGNsaWVudCBkcml2ZXJzLlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc9Nzc9Y29uZmlnIE1MWDVfQlJJREdFXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy04MS1cXHRoZWxwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc6ODI6XFx0ICBtbHg1IENvbm5lY3RYIG9mZmxvYWRzIHN1cHBvcnQgZm9yIEV0aGVybmV0IEJyaWRnaW5nIChCUklER0UpLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTgzLVxcdCAgRW5hYmxlIG9mZmxvYWRpbmcgRkRCIHJ1bGVzIGZyb20gYSBicmlkZ2UgZGV2aWNlIGNvbnRhaW5pbmdcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzo4NDpcXHQgIHJlcHJlc2VudG9ycyBvZiBtbHg1IHVwbGluayBhbmQgVkYgcG9ydHMuIFN1cHBvcnRzIFZMQU5zICh0cnVuayBhbmRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy04NS1cXHQgIGFjY2VzcyBtb2RlcykuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZz04Nz1jb25maWcgTUxYNV9DTFNfQUNUXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy05MS1cXHRoZWxwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc6OTI6XFx0ICBtbHg1IENvbm5lY3RYIG9mZmxvYWRzIHN1cHBvcnQgZm9yIFRDIGNsYXNzaWZpZXIgYWN0aW9uIChORVRfQ0xTX0FDVCksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctOTMtXFx0ICB3b3JrcyBpbiBib3RoIG5hdGl2ZSBOSUMgbW9kZSBhbmQgU3dpdGNoZGV2IFNSSU9WIG1vZGUuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZz0yMTA9Y29uZmlnIE1MWDVfRU5fUFNQXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0yMTUtXFx0aGVscFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnOjIxNjpcXHQgIG1seDUgZGV2aWNlIG9mZmxvYWQgc3VwcG9ydCBmb3IgR29vZ2xlIFBTUCBTZWN1cml0eSBQcm90b2NvbCBvZmZsb2FkLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTIxNy1cXHQgIEFkZHMgc3VwcG9ydCBmb3IgUFNQIGVuY3J5cHRpb24gb2ZmbG9hZCBhbmQgZm9yIFNQSSBhbmQga2V5IGdlbmVyYXRpb25cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZT03PXN1YmRpci1jY2ZsYWdzLXkgKz0gLUkkKHNyYylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6OTpvYmotJChDT05GSUdfTUxYNV9DT1JFKSArPSBtbHg1X2NvcmUub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTEtI1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxMjojIG1seDUgY29yZSBiYXNpY1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMy0jXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjE0Om1seDVfY29yZS15IDo9XFx0bWFpbi5vIGNtZC5vIGRlYnVnZnMubyBmdy5vIGVxLm8gdWFyLm8gcGFnZWFsbG9jLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xNS1cXHRcXHRoZWFsdGgubyBtY2cubyBjcS5vIGFsbG9jLm8gcG9ydC5vIG1yLm8gcGQubyBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMjUtI1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToyNjptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9DT1JFX0VOKSArPSBlbi9ycXQubyBlbi90aXIubyBlbi9yc3MubyBlbi9yeF9yZXMubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTI3LVxcdFxcdGVuL2NoYW5uZWxzLm8gZW5fbWFpbi5vIGVuX2NvbW1vbi5vIGVuX2ZzLm8gZW5fZXRodG9vbC5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0zNy0jXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjM4Om1seDVfY29yZS0kKENPTkZJR19NTFg1X0VOX0FSRlMpICAgICArPSBlbl9hcmZzLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6Mzk6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfRU5fUlhORkMpICAgICs9IGVuX2ZzX2V0aHRvb2wub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo0MDptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9DT1JFX0VOX0RDQikgKz0gZW5fZGNibmwubyBlbi9wb3J0X2J1ZmZlci5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjQxOm1seDVfY29yZS0kKENPTkZJR19QQ0lfSFlQRVJWX0lOVEVSRkFDRSkgKz0gZW4vaHZfdmhjYV9zdGF0cy5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjQyOm1seDVfY29yZS0kKENPTkZJR19NTFg1X0VTV0lUQ0gpICAgICArPSBsYWcvbXAubyBsYWcvcG9ydF9zZWwubyBsaWIvZ2VuZXZlLm8gbGliL3BvcnRfdHVuLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS00My1cXHRcXHRcXHRcXHRcXHRlbl9yZXAubyBlbi9yZXAvYm9uZC5vIGVuL21vZF9oZHIubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTQ0LVxcdFxcdFxcdFxcdFxcdGVuL21hcHBpbmcubyBsYWcvbXBlc3cubyBsYWcvc2hhcmVkX2ZkYi5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjQ1Om1seDVfY29yZS0kKENPTkZJR19NTFg1X0NMU19BQ1QpICAgICArPSBlbl90Yy5vIGVuL3JlcC90Yy5vIGVuL3JlcC9uZWlnaC5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNDYtXFx0XFx0XFx0XFx0XFx0bGliL2ZzX2NoYWlucy5vIGVuL3RjX3R1bi5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS01Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6NTM6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfQ0xTX0FDVCkgICAgICs9IGVuL3RjL2FjdC9hY3QubyBlbi90Yy9hY3QvZHJvcC5vIGVuL3RjL2FjdC90cmFwLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS01NC1cXHRcXHRcXHRcXHRcXHRlbi90Yy9hY3QvYWNjZXB0Lm8gZW4vdGMvYWN0L21hcmsubyBlbi90Yy9hY3QvZ290by5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZT02MT1pZm5lcSAoJChDT05GSUdfTUxYNV9UQ19DVCksKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo2MjpcXHRtbHg1X2NvcmUteVxcdFxcdFxcdCAgICAgKz0gZW4vdGNfY3QubyBlbi90Yy9jdF9mc19kbWZzLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6NjM6XFx0bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfU1dfU1RFRVJJTkcpICs9IGVuL3RjL2N0X2ZzX3NtZnMub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo2NDpcXHRtbHg1X2NvcmUtJChDT05GSUdfTUxYNV9IV19TVEVFUklORykgKz0gZW4vdGMvY3RfZnNfaG1mcy5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTY1LWVuZGlmXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTY2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo2NzptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9UQ19TQU1QTEUpICAgKz0gZW4vdGMvc2FtcGxlLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNjgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNzEtI1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo3MjptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9FU1dJVENIKSAgICs9IGVzd2l0Y2gubyBlc3dpdGNoX29mZmxvYWRzLm8gZXN3aXRjaF9vZmZsb2Fkc190ZXJtdGJsLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS03My1cXHRcXHRcXHRcXHQgICAgICBlY3BmLm8gcmRtYS5vIGVzdy9sZWdhY3kubyBlc3cvYWRqX3Zwb3J0Lm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTc1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo3NjptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9FU1dJVENIKSAgICs9IGVzdy9hY2wvaGVscGVyLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS03Ny1cXHRcXHRcXHRcXHQgICAgICBlc3cvYWNsL2VncmVzc19sZ2N5Lm8gZXN3L2FjbC9lZ3Jlc3Nfb2ZsZC5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZT04MD1pZm5lcSAoJChDT05GSUdfTUxYNV9FTl9JUFNFQyksKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo4MTpcXHRtbHg1X2NvcmUtJChDT05GSUdfTUxYNV9FU1dJVENIKSAgICs9IGVzdy9pcHNlY19mcy5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTgyLWVuZGlmXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTgzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo4NDptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9CUklER0UpICAgICs9IGVzdy9icmlkZ2UubyBlc3cvYnJpZGdlX21jYXN0Lm8gZXN3L2JyaWRnZV9kZWJ1Z2ZzLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS04NS1cXHRcXHRcXHRcXHQgICAgICBlbi9yZXAvYnJpZGdlLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtODYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjg3Om1seDVfY29yZS0kKENPTkZJR19IV01PTikgICAgICAgICAgKz0gaHdtb24ub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo4ODptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9NUEZTKSAgICAgICs9IGxpYi9tcGZzLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtODktaWZuZXEgKCQoQ09ORklHX1ZYTEFOKSwpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjkwOlxcdG1seDVfY29yZS15XFx0XFx0ICAgKz0gbGliL3Z4bGFuLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtOTEtZW5kaWZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6OTI6bWx4NV9jb3JlLSQoQ09ORklHX1BUUF8xNTg4X0NMT0NLKSArPSBsaWIvY2xvY2sub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo5MzptbHg1X2NvcmUtJChDT05GSUdfUENJX0hZUEVSVl9JTlRFUkZBQ0UpICs9IGxpYi9odi5vIGxpYi9odl92aGNhLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtOTQtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtOTctI1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo5ODptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9DT1JFX0lQT0lCKSArPSBpcG9pYi9pcG9pYi5vIGlwb2liL2V0aHRvb2wubyBpcG9pYi9pcG9pYl92bGFuLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtOTktXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTAyLSNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTAzOm1seDVfY29yZS0kKENPTkZJR19NTFg1X0ZQR0EpICs9IGZwZ2EvY21kLm8gZnBnYS9jb3JlLm8gZnBnYS9jb25uLm8gZnBnYS9zZGsub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjEwNTptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9NQUNTRUMpICs9IGVuX2FjY2VsL21hY3NlYy5vIGxpYi9tYWNzZWNfZnMubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTEwNi1cXHRcXHRcXHRcXHQgICAgICBlbl9hY2NlbC9tYWNzZWNfc3RhdHMub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMDctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjEwODptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9FTl9JUFNFQykgKz0gZW5fYWNjZWwvaXBzZWMubyBlbl9hY2NlbC9pcHNlY19yeHR4Lm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMDktXFx0XFx0XFx0XFx0ICAgICBlbl9hY2NlbC9pcHNlY19zdGF0cy5vIGVuX2FjY2VsL2lwc2VjX2ZzLm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTExMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTEyOm1seDVfY29yZS0kKENPTkZJR19NTFg1X0VOX1RMUykgKz0gZW5fYWNjZWwva3Rsc19zdGF0cy5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTEzLVxcdFxcdFxcdFxcdCAgIGVuX2FjY2VsL2ZzX3RjcC5vIGVuX2FjY2VsL2t0bHMubyBlbl9hY2NlbC9rdGxzX3R4cngubyBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTE1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxMTY6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfRU5fUFNQKSArPSBlbl9hY2NlbC9wc3AubyBlbl9hY2NlbC9wc3Bfcnh0eC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTExNy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMjAtI1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxMjE6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfU1dfU1RFRVJJTkcpICs9IHN0ZWVyaW5nL3N3cy9kcl9kb21haW4ubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTEyMi1cXHRcXHRcXHRcXHRcXHRzdGVlcmluZy9zd3MvZHJfdGFibGUubyBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTQ1LSNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTQ2Om1seDVfY29yZS0kKENPTkZJR19NTFg1X0hXX1NURUVSSU5HKSArPSBzdGVlcmluZy9od3MvY21kLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xNDctXFx0XFx0XFx0XFx0XFx0c3RlZXJpbmcvaHdzL2NvbnRleHQubyBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTY3LSNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTY4Om1seDVfY29yZS0kKENPTkZJR19NTFg1X1NGKSArPSBzZi92aGNhX2V2ZW50Lm8gc2YvZGV2L2Rldi5vIHNmL2Rldi9kcml2ZXIubyBpcnFfYWZmaW5pdHkub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xNjktXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTcyLSNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTczOm1seDVfY29yZS0kKENPTkZJR19NTFg1X1NGX01BTkFHRVIpICs9IHNmL2NtZC5vIHNmL2h3X3RhYmxlLm8gc2YvZGV2bGluay5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTE3NC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xNzctI1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxNzg6bWx4NV9jb3JlLSQoQ09ORklHX1BDSUVfVFBIKSArPSBsaWIvc3Qub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xNzktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjE4MDpvYmotJChDT05GSUdfTUxYNV9EUExMKSArPSBtbHg1X2RwbGwub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxODE6bWx4NV9kcGxsLXkgOj1cXHRkcGxsLm9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTQyLSNpbmNsdWRlIFxcdTAwM2NsaW51eC9zZXFfZmlsZS5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjQzOiNpbmNsdWRlIFxcdTAwM2NsaW51eC9tbHg1L2RyaXZlci5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTQ0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjQ1OiNpbmNsdWRlIFxcXCJtbHg1X2NvcmUuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTUwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjUxOnN0cnVjdCBtbHg1X2RiX3BnZGlyIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy01Mi1cXHRzdHJ1Y3QgbGlzdF9oZWFkXFx0bGlzdDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTU3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjU4OnN0cnVjdCBtbHg1X2RtYV9wb29sIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy01OS1cXHQvKiBQcm90ZWN0cyBwYWdlX2xpc3QgYW5kIHBlci1wYWdlIGFsbG9jYXRpb24gYml0bWFwcy4gKi9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTYxLVxcdHN0cnVjdCBsaXN0X2hlYWQgcGFnZV9saXN0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjYyOlxcdHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNjMtXFx0aW50IG5vZGU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy02Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo2NzpzdHJ1Y3QgbWx4NV9kbWFfcG9vbF9wYWdlIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo2ODpcXHRzdHJ1Y3QgbWx4NV9kbWFfcG9vbCAqcG9vbDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy02OS1cXHRzdHJ1Y3QgbGlzdF9oZWFkIHBvb2xfbGluaztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTc0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjc1OnN0cnVjdCBtbHg1X2ZyYWdfYnVmX25vZGVfcG9vbHMge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjc2OlxcdHN0cnVjdCBtbHg1X2RtYV9wb29sICpwb29sc1tNTFg1X0ZSQUdfQlVGX1BPT0xTX05VTV07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNzctfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy03OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo3OTpzdHJ1Y3QgbWx4NV9kbWFfcG9vbF9zdGF0cyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtODAtXFx0aW50IG5vZGU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy04OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo5MDpzdGF0aWMgdm9pZCAqbWx4NV9kbWFfemFsbG9jX2NvaGVyZW50X25vZGUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy05MS1cXHRcXHRcXHRcXHRcXHQgICBzaXplX3Qgc2l6ZSwgZG1hX2FkZHJfdCAqZG1hX2hhbmRsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTkzLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo5NDpcXHRzdHJ1Y3QgZGV2aWNlICpkZXZpY2UgPSBtbHg1X2NvcmVfZG1hX2RldihkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjk1OlxcdHN0cnVjdCBtbHg1X3ByaXYgKnByaXYgPSBcXHUwMDI2ZGV2LVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTk2LVxcdGludCBvcmlnaW5hbF9ub2RlO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMTA4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjEwOTpzdGF0aWMgdm9pZCBtbHg1X2RtYV9wb29sX2Rlc3Ryb3koc3RydWN0IG1seDVfZG1hX3Bvb2wgKnBvb2wpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMTEwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTExNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoxMTU6c3RhdGljIHN0cnVjdCBtbHg1X2RtYV9wb29sICptbHg1X2RtYV9wb29sX2NyZWF0ZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTExNi1cXHRcXHRcXHRcXHRcXHRcXHQgIGludCBub2RlLCB1OCBibG9ja19zaGlmdClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0xMTcte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjExODpcXHRzdHJ1Y3QgbWx4NV9kbWFfcG9vbCAqcG9vbDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0xMTktXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0xMzEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MTMyOnN0YXRpYyBzdHJ1Y3QgbWx4NV9kbWFfcG9vbF9wYWdlICpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoxMzM6bWx4NV9kbWFfcG9vbF9wYWdlX2FsbG9jKHN0cnVjdCBtbHg1X2RtYV9wb29sICpwb29sKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTEzNC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMTM1LVxcdGludCBibG9ja3NfcGVyX3BhZ2UgPSBCSVQoUEFHRV9TSElGVCAtIHBvb2wtXFx1MDAzZWJsb2NrX3NoaWZ0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoxMzY6XFx0c3RydWN0IG1seDVfZG1hX3Bvb2xfcGFnZSAqcGFnZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0xMzctXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0xNDctXFx0Yml0bWFwX2ZpbGwocGFnZS1cXHUwMDNlYml0bWFwLCBibG9ja3NfcGVyX3BhZ2UpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjE0ODpcXHRwYWdlLVxcdTAwM2VidWYgPSBtbHg1X2RtYV96YWxsb2NfY29oZXJlbnRfbm9kZShwb29sLVxcdTAwM2VkZXYsIFBBR0VfU0laRSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0xNDktXFx0XFx0XFx0XFx0XFx0XFx0ICBcXHUwMDI2cGFnZS1cXHUwMDNlZG1hLCBwb29sLVxcdTAwM2Vub2RlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTE2Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoxNjM6c3RhdGljIHZvaWQgbWx4NV9kbWFfcG9vbF9wYWdlX2ZyZWUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoxNjQ6XFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBtbHg1X2RtYV9wb29sX3BhZ2UgKnBhZ2UpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMTY1LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoxNjY6XFx0ZG1hX2ZyZWVfY29oZXJlbnQobWx4NV9jb3JlX2RtYV9kZXYoZGV2KSwgUEFHRV9TSVpFLCBwYWdlLVxcdTAwM2VidWYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMTY3LVxcdFxcdFxcdCAgcGFnZS1cXHUwMDNlZG1hKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTE3MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoxNzI6c3RhdGljIGludCBtbHg1X2RtYV9wb29sX2FsbG9jX2Zyb21fcGFnZShzdHJ1Y3QgbWx4NV9kbWFfcG9vbCAqcG9vbCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoxNzM6XFx0XFx0XFx0XFx0XFx0IHN0cnVjdCBtbHg1X2RtYV9wb29sX3BhZ2UgKnBhZ2UsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMTc0LVxcdFxcdFxcdFxcdFxcdCB1bnNpZ25lZCBsb25nICppZHhfb3V0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMTg5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjE5MDpzdGF0aWMgc3RydWN0IG1seDVfZG1hX3Bvb2xfcGFnZSAqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MTkxOm1seDVfZG1hX3Bvb2xfYWxsb2Moc3RydWN0IG1seDVfZG1hX3Bvb2wgKnBvb2wsIHVuc2lnbmVkIGxvbmcgKmlkeF9vdXQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMTkyLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoxOTM6XFx0c3RydWN0IG1seDVfZG1hX3Bvb2xfcGFnZSAqcGFnZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0xOTQtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0xOTctXFx0cGFnZSA9IGxpc3RfZmlyc3RfZW50cnlfb3JfbnVsbChcXHUwMDI2cG9vbC1cXHUwMDNlcGFnZV9saXN0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjE5ODpcXHRcXHRcXHRcXHRcXHRzdHJ1Y3QgbWx4NV9kbWFfcG9vbF9wYWdlLCBwb29sX2xpbmspO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjE5OTpcXHRpZiAocGFnZSBcXHUwMDI2XFx1MDAyNiAhbWx4NV9kbWFfcG9vbF9hbGxvY19mcm9tX3BhZ2UocG9vbCwgcGFnZSwgaWR4X291dCkpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMjAwLVxcdFxcdGdvdG8gdW5sb2NrOyAvKiBzdWNjZXNzZnVsbHkgYWxsb2NhdGVkIGZyb20gZXhpc3RpbmcgcGFnZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTIwMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoyMDI6XFx0cGFnZSA9IG1seDVfZG1hX3Bvb2xfcGFnZV9hbGxvYyhwb29sKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0yMDMtXFx0aWYgKCFwYWdlKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMjA2LVxcdGxpc3RfYWRkKFxcdTAwMjZwYWdlLVxcdTAwM2Vwb29sX2xpbmssIFxcdTAwMjZwb29sLVxcdTAwM2VwYWdlX2xpc3QpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjIwNzpcXHRtbHg1X2RtYV9wb29sX2FsbG9jX2Zyb21fcGFnZShwb29sLCBwYWdlLCBpZHhfb3V0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0yMDgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0yMTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MjE0OnN0YXRpYyB2b2lkIG1seDVfZG1hX3Bvb2xfZnJlZShzdHJ1Y3QgbWx4NV9kbWFfcG9vbCAqcG9vbCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoyMTU6XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBtbHg1X2RtYV9wb29sX3BhZ2UgKnBhZ2UsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMjE2LVxcdFxcdFxcdCAgICAgICB1bnNpZ25lZCBsb25nIGlkeClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTIyNi1cXHRcXHRsaXN0X2RlbChcXHUwMDI2cGFnZS1cXHUwMDNlcG9vbF9saW5rKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoyMjc6XFx0XFx0bWx4NV9kbWFfcG9vbF9wYWdlX2ZyZWUocG9vbC1cXHUwMDNlZGV2LCBwYWdlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0yMjgtXFx0fSBlbHNlIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTIzNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoyMzc6c3RhdGljIHZvaWQgbWx4NV9kbWFfcG9vbF9kZWJ1Z2ZzX2dldF9zdGF0cyhzdHJ1Y3QgbWx4NV9kbWFfcG9vbCAqcG9vbCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoyMzg6XFx0XFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBtbHg1X2RtYV9wb29sX3N0YXRzICpzdGF0cylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0yMzkte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTI0MC1cXHRpbnQgYmxvY2tzX3Blcl9wYWdlID0gQklUKFBBR0VfU0hJRlQgLSBwb29sLVxcdTAwM2VibG9ja19zaGlmdCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MjQxOlxcdHN0cnVjdCBtbHg1X2RtYV9wb29sX3BhZ2UgKnBhZ2U7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMjQyLVxcdHNpemVfdCBmcmVlX2Jsb2NrcyA9IDA7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0yNTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MjU4OnN0YXRpYyB2b2lkIG1seDVfZG1hX3Bvb2xfZGVidWdmc19zdGF0c19wcmludChzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MjU5OlxcdFxcdFxcdFxcdFxcdCAgICAgIHN0cnVjdCBtbHg1X2RtYV9wb29sICpwb29sKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTI2MC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MjYxOlxcdHN0cnVjdCBtbHg1X2RtYV9wb29sX3N0YXRzIHN0YXRzID0ge307XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMjYyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjI2MzpcXHRtbHg1X2RtYV9wb29sX2RlYnVnZnNfZ2V0X3N0YXRzKHBvb2wsIFxcdTAwMjZzdGF0cyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMjY0LVxcdHNlcV9wcmludGYoZmlsZSwgXFxcIiU0ZCAgICAgICAlNXp1ICAgICAgJTd6dSAgICAgICAgICAgJTd6dVxcXFxuXFxcIixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTI2OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoyNjk6c3RhdGljIHZvaWQgbWx4NV9kbWFfcG9vbHNfZGVidWdmc19wcmludF9oZWFkZXIoc3RydWN0IHNlcV9maWxlICpmaWxlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTI3MC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYz0yNzQ9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoyNzU6bWx4NV9mcmFnX2J1Zl9ub2RlX3Bvb2xzX2Rlc3Ryb3koc3RydWN0IG1seDVfZnJhZ19idWZfbm9kZV9wb29scyAqbm9kZV9wb29scylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0yNzYte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMjc4LVxcdFxcdGlmIChub2RlX3Bvb2xzLVxcdTAwM2Vwb29sc1tpXSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoyNzk6XFx0XFx0XFx0bWx4NV9kbWFfcG9vbF9kZXN0cm95KG5vZGVfcG9vbHMtXFx1MDAzZXBvb2xzW2ldKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0yODAtXFx0a2ZyZWUobm9kZV9wb29scyk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0yODItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MjgzOnN0YXRpYyBzdHJ1Y3QgbWx4NV9mcmFnX2J1Zl9ub2RlX3Bvb2xzICpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoyODQ6bWx4NV9mcmFnX2J1Zl9ub2RlX3Bvb2xzX2NyZWF0ZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBpbnQgbm9kZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0yODUte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjI4NjpcXHRzdHJ1Y3QgbWx4NV9mcmFnX2J1Zl9ub2RlX3Bvb2xzICpub2RlX3Bvb2xzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTI4Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTI5NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoyOTU6XFx0XFx0bm9kZV9wb29scy1cXHUwMDNlcG9vbHNbaV0gPSBtbHg1X2RtYV9wb29sX2NyZWF0ZShkZXYsIG5vZGUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMjk2LVxcdFxcdFxcdFxcdFxcdFxcdFxcdCAgICBibG9ja19zaGlmdCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMjk3LVxcdFxcdGlmICghbm9kZV9wb29scy1cXHUwMDNlcG9vbHNbaV0pIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoyOTg6XFx0XFx0XFx0bWx4NV9mcmFnX2J1Zl9ub2RlX3Bvb2xzX2Rlc3Ryb3kobm9kZV9wb29scyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMjk5LVxcdFxcdFxcdHJldHVybiBOVUxMO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM9MzA2PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzozMDc6bWx4NV9mcmFnX2J1Zl9kbWFfcG9vbHNfZGVidWdmc19zaG93KHN0cnVjdCBzZXFfZmlsZSAqZmlsZSwgdm9pZCAqcHJpdilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zMDgte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjMwOTpcXHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2ID0gZmlsZS1cXHUwMDNlcHJpdmF0ZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zMTAtXFx0aW50IG5vZGU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzExLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjMxMjpcXHRtbHg1X2RtYV9wb29sc19kZWJ1Z2ZzX3ByaW50X2hlYWRlcihmaWxlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zMTMtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zMTctXFx0Zm9yX2VhY2hfbm9kZV9zdGF0ZShub2RlLCBOX1BPU1NJQkxFKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MzE4OlxcdFxcdHN0cnVjdCBtbHg1X2ZyYWdfYnVmX25vZGVfcG9vbHMgKm5vZGVfcG9vbHM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzE5LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzI0LVxcdFxcdGZvciAoaW50IGkgPSAwOyBpIFxcdTAwM2MgTUxYNV9GUkFHX0JVRl9QT09MU19OVU07IGkrKykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjMyNTpcXHRcXHRcXHRzdHJ1Y3QgbWx4NV9kbWFfcG9vbCAqcG9vbCA9IG5vZGVfcG9vbHMtXFx1MDAzZXBvb2xzW2ldO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTMyNi1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTMyOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzozMzA6XFx0XFx0XFx0bWx4NV9kbWFfcG9vbF9kZWJ1Z2ZzX3N0YXRzX3ByaW50KGZpbGUsIHBvb2wpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTMzMS1cXHRcXHR9XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zMzUtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjMzNjpERUZJTkVfU0hPV19BVFRSSUJVVEUobWx4NV9mcmFnX2J1Zl9kbWFfcG9vbHNfZGVidWdmcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzM3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjMzODp2b2lkIG1seDVfZnJhZ19idWZfcG9vbHNfY2xlYW51cChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTMzOS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MzQwOlxcdHN0cnVjdCBtbHg1X3ByaXYgKnByaXYgPSBcXHUwMDI2ZGV2LVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTM0MS1cXHRpbnQgbm9kZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTM0Ni1cXHRmb3JfZWFjaF9ub2RlX3N0YXRlKG5vZGUsIE5fUE9TU0lCTEUpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzozNDc6XFx0XFx0c3RydWN0IG1seDVfZnJhZ19idWZfbm9kZV9wb29scyAqbm9kZV9wb29scztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zNDgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zNTEtXFx0XFx0XFx0Y29udGludWU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MzUyOlxcdFxcdG1seDVfZnJhZ19idWZfbm9kZV9wb29sc19kZXN0cm95KG5vZGVfcG9vbHMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTM1My1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zNTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MzU5OmludCBtbHg1X2ZyYWdfYnVmX3Bvb2xzX2luaXQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zNjAte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjM2MTpcXHRzdHJ1Y3QgbWx4NV9wcml2ICpwcml2ID0gXFx1MDAyNmRldi1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zNjItXFx0aW50IG5vZGU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zNjktXFx0Zm9yX2VhY2hfbm9kZV9zdGF0ZShub2RlLCBOX1BPU1NJQkxFKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MzcwOlxcdFxcdHN0cnVjdCBtbHg1X2ZyYWdfYnVmX25vZGVfcG9vbHMgKm5vZGVfcG9vbHM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzcxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjM3MjpcXHRcXHRub2RlX3Bvb2xzID0gbWx4NV9mcmFnX2J1Zl9ub2RlX3Bvb2xzX2NyZWF0ZShkZXYsIG5vZGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTM3My1cXHRcXHRpZiAoIW5vZGVfcG9vbHMpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzozNzQ6XFx0XFx0XFx0bWx4NV9mcmFnX2J1Zl9wb29sc19jbGVhbnVwKGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzc1LVxcdFxcdFxcdHJldHVybiAtRU5PTUVNO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzgyLVxcdFxcdFxcdFxcdCAgICBwcml2LVxcdTAwM2VkYmcuZGJnX3Jvb3QsIGRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzozODM6XFx0XFx0XFx0XFx0ICAgIFxcdTAwMjZtbHg1X2ZyYWdfYnVmX2RtYV9wb29sc19kZWJ1Z2ZzX2ZvcHMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTM4NC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTM4Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzozODg6aW50IG1seDVfZnJhZ19idWZfYWxsb2Nfbm9kZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBpbnQgc2l6ZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzozODk6XFx0XFx0XFx0ICAgICBzdHJ1Y3QgbWx4NV9mcmFnX2J1ZiAqYnVmLCBpbnQgbm9kZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zOTAte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjM5MTpcXHRzdHJ1Y3QgbWx4NV9kbWFfcG9vbCAqcG9vbDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zOTItXFx0aW50IHBvb2xfaWR4O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNDA4LVxcdGZvciAoaW50IGkgPSAwOyBpIFxcdTAwM2MgYnVmLVxcdTAwM2VucGFnZXM7IGkrKykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjQwOTpcXHRcXHRzdHJ1Y3QgbWx4NV9idWZfbGlzdCAqZnJhZyA9IFxcdTAwMjZidWYtXFx1MDAzZWZyYWdzW2ldO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjQxMDpcXHRcXHRzdHJ1Y3QgbWx4NV9kbWFfcG9vbF9wYWdlICpwYWdlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTQxMS1cXHRcXHR1bnNpZ25lZCBsb25nIGlkeDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00MTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NDEzOlxcdFxcdHBhZ2UgPSBtbHg1X2RtYV9wb29sX2FsbG9jKHBvb2wsIFxcdTAwMjZpZHgpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTQxNC1cXHRcXHRpZiAoIXBhZ2UpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo0MTU6XFx0XFx0XFx0bWx4NV9mcmFnX2J1Zl9mcmVlKGRldiwgYnVmKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00MTYtXFx0XFx0XFx0cmV0dXJuIC1FTk9NRU07XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00MjQtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjQyNTpFWFBPUlRfU1lNQk9MX0dQTChtbHg1X2ZyYWdfYnVmX2FsbG9jX25vZGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTQyNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo0Mjc6dm9pZCBtbHg1X2ZyYWdfYnVmX2ZyZWUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfZnJhZ19idWYgKmJ1ZilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00Mjgte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTQyOS1cXHRmb3IgKGludCBpID0gMDsgaSBcXHUwMDNjIGJ1Zi1cXHUwMDNlbnBhZ2VzOyBpKyspIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo0MzA6XFx0XFx0c3RydWN0IG1seDVfYnVmX2xpc3QgKmZyYWcgPSBcXHUwMDI2YnVmLVxcdTAwM2VmcmFnc1tpXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo0MzE6XFx0XFx0c3RydWN0IG1seDVfZG1hX3Bvb2xfcGFnZSAqcGFnZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo0MzI6XFx0XFx0c3RydWN0IG1seDVfZG1hX3Bvb2wgKnBvb2w7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNDMzLVxcdFxcdHVuc2lnbmVkIGxvbmcgaWR4O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNDQwLVxcdFxcdGlkeCA9IChmcmFnLVxcdTAwM2VtYXAgLSBwYWdlLVxcdTAwM2VkbWEpIFxcdTAwM2VcXHUwMDNlIHBvb2wtXFx1MDAzZWJsb2NrX3NoaWZ0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjQ0MTpcXHRcXHRtbHg1X2RtYV9wb29sX2ZyZWUocG9vbCwgcGFnZSwgaWR4KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00NDItXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNDQ0LX1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo0NDU6RVhQT1JUX1NZTUJPTF9HUEwobWx4NV9mcmFnX2J1Zl9mcmVlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00NDYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NDQ3OnN0YXRpYyBzdHJ1Y3QgbWx4NV9kYl9wZ2RpciAqbWx4NV9hbGxvY19kYl9wZ2RpcihzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTQ0OC1cXHRcXHRcXHRcXHRcXHRcXHQgaW50IG5vZGUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00NTAtXFx0dTMyIGRiX3Blcl9wYWdlID0gUEFHRV9TSVpFIC8gY2FjaGVfbGluZV9zaXplKCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NDUxOlxcdHN0cnVjdCBtbHg1X2RiX3BnZGlyICpwZ2RpcjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00NTItXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00NjQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NDY1OlxcdHBnZGlyLVxcdTAwM2VkYl9wYWdlID0gbWx4NV9kbWFfemFsbG9jX2NvaGVyZW50X25vZGUoZGV2LCBQQUdFX1NJWkUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNDY2LVxcdFxcdFxcdFxcdFxcdFxcdCAgICAgICBcXHUwMDI2cGdkaXItXFx1MDAzZWRiX2RtYSwgbm9kZSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00NzUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NDc2OnN0YXRpYyBpbnQgbWx4NV9hbGxvY19kYl9mcm9tX3BnZGlyKHN0cnVjdCBtbHg1X2RiX3BnZGlyICpwZ2RpcixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo0Nzc6XFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBtbHg1X2RiICpkYilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00Nzgte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTAwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjUwMTppbnQgbWx4NV9kYl9hbGxvY19ub2RlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X2RiICpkYiwgaW50IG5vZGUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTAyLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo1MDM6XFx0c3RydWN0IG1seDVfZGJfcGdkaXIgKnBnZGlyO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTUwNC1cXHRpbnQgcmV0ID0gMDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTUwOC1cXHRsaXN0X2Zvcl9lYWNoX2VudHJ5KHBnZGlyLCBcXHUwMDI2ZGV2LVxcdTAwM2Vwcml2LnBnZGlyX2xpc3QsIGxpc3QpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NTA5OlxcdFxcdGlmICghbWx4NV9hbGxvY19kYl9mcm9tX3BnZGlyKHBnZGlyLCBkYikpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTEwLVxcdFxcdFxcdGdvdG8gb3V0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTUxMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo1MTI6XFx0cGdkaXIgPSBtbHg1X2FsbG9jX2RiX3BnZGlyKGRldiwgbm9kZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTEzLVxcdGlmICghcGdkaXIpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTUyMC1cXHQvKiBUaGlzIHNob3VsZCBuZXZlciBmYWlsIC0tIHdlIGp1c3QgYWxsb2NhdGVkIGFuIGVtcHR5IHBhZ2U6ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NTIxOlxcdFdBUk5fT04obWx4NV9hbGxvY19kYl9mcm9tX3BnZGlyKHBnZGlyLCBkYikpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTUyMi1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTUyNy19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NTI4OkVYUE9SVF9TWU1CT0xfR1BMKG1seDVfZGJfYWxsb2Nfbm9kZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTI5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjUzMDp2b2lkIG1seDVfZGJfZnJlZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBzdHJ1Y3QgbWx4NV9kYiAqZGIpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTMxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTUzOC1cXHRpZiAoYml0bWFwX2Z1bGwoZGItXFx1MDAzZXUucGdkaXItXFx1MDAzZWJpdG1hcCwgZGJfcGVyX3BhZ2UpKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NTM5OlxcdFxcdGRtYV9mcmVlX2NvaGVyZW50KG1seDVfY29yZV9kbWFfZGV2KGRldiksIFBBR0VfU0laRSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy01NDAtXFx0XFx0XFx0XFx0ICBkYi1cXHUwMDNldS5wZ2Rpci1cXHUwMDNlZGJfcGFnZSwgZGItXFx1MDAzZXUucGdkaXItXFx1MDAzZWRiX2RtYSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy01NDctfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjU0ODpFWFBPUlRfU1lNQk9MX0dQTChtbHg1X2RiX2ZyZWUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTU0OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo1NTA6dm9pZCBtbHg1X2ZpbGxfcGFnZV9mcmFnX2FycmF5X3Blcm0oc3RydWN0IG1seDVfZnJhZ19idWYgKmJ1ZiwgX19iZTY0ICpwYXMsIHU4IHBlcm0pXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTUxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTU1Ny19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NTU4OkVYUE9SVF9TWU1CT0xfR1BMKG1seDVfZmlsbF9wYWdlX2ZyYWdfYXJyYXlfcGVybSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTU5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjU2MDp2b2lkIG1seDVfZmlsbF9wYWdlX2ZyYWdfYXJyYXkoc3RydWN0IG1seDVfZnJhZ19idWYgKmJ1ZiwgX19iZTY0ICpwYXMpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTYxLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo1NjI6XFx0bWx4NV9maWxsX3BhZ2VfZnJhZ19hcnJheV9wZXJtKGJ1ZiwgcGFzLCAwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy01NjMtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjU2NDpFWFBPUlRfU1lNQk9MX0dQTChtbHg1X2ZpbGxfcGFnZV9mcmFnX2FycmF5KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0zOS0jaW5jbHVkZSBcXHUwMDNjbGludXgvcmFuZG9tLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjQwOiNpbmNsdWRlIFxcdTAwM2NsaW51eC9tbHg1L2RyaXZlci5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzo0MTojaW5jbHVkZSBcXHUwMDNjbGludXgvbWx4NS9lcS5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy00Mi0jaW5jbHVkZSBcXHUwMDNjbGludXgvZGVidWdmcy5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy00My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6NDQ6I2luY2x1ZGUgXFxcIm1seDVfY29yZS5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy00NS0jaW5jbHVkZSBcXFwibGliL2VxLmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtNDktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjUwOnN0cnVjdCBtbHg1X2lmY19tYm94X291dF9iaXRzIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtNTEtXFx0dTggICAgICAgICBzdGF0dXNbMHg4XTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy01OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6NTk6c3RydWN0IG1seDVfaWZjX21ib3hfaW5fYml0cyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTYwLVxcdHU4ICAgICAgICAgb3Bjb2RlWzB4MTBdO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTk3PXN0YXRpYyB1MTYgaW5fdG9fdWlkKHZvaWQgKmluKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEwNC0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTA1OnN0YXRpYyBib29sIG1seDVfY21kX2lzX3Rocm90dGxlX29wY29kZSh1MTYgb3ApXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEwNi17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTE3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxMTg6c3RhdGljIHN0cnVjdCBtbHg1X2NtZF93b3JrX2VudCAqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjExOTpjbWRfYWxsb2NfZW50KHN0cnVjdCBtbHg1X2NtZCAqY21kLCBzdHJ1Y3QgbWx4NV9jbWRfbXNnICppbixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTIwOlxcdCAgICAgIHN0cnVjdCBtbHg1X2NtZF9tc2cgKm91dCwgdm9pZCAqdW91dCwgaW50IHVvdXRfc2l6ZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTIxOlxcdCAgICAgIG1seDVfY21kX2Nia190IGNiaywgdm9pZCAqY29udGV4dCwgaW50IHBhZ2VfcXVldWUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEyMi17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEyMy1cXHRnZnBfdCBhbGxvY19mbGFncyA9IGNiayA/IEdGUF9BVE9NSUMgOiBHRlBfS0VSTkVMO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxMjQ6XFx0c3RydWN0IG1seDVfY21kX3dvcmtfZW50ICplbnQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEyNS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE0NTpzdGF0aWMgdm9pZCBjbWRfZnJlZV9lbnQoc3RydWN0IG1seDVfY21kX3dvcmtfZW50ICplbnQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE0Ni17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTQ5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNTA6c3RhdGljIHU4IGFsbG9jX3Rva2VuKHN0cnVjdCBtbHg1X2NtZCAqY21kKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNTEte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE2My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTY0OnN0YXRpYyBpbnQgY21kX2FsbG9jX2luZGV4KHN0cnVjdCBtbHg1X2NtZCAqY21kLCBzdHJ1Y3QgbWx4NV9jbWRfd29ya19lbnQgKmVudClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTY1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xODAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE4MTpzdGF0aWMgdm9pZCBjbWRfZnJlZV9pbmRleChzdHJ1Y3QgbWx4NV9jbWQgKmNtZCwgaW50IGlkeClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTgyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xODctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE4ODpzdGF0aWMgdm9pZCBjbWRfZW50X2dldChzdHJ1Y3QgbWx4NV9jbWRfd29ya19lbnQgKmVudClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTg5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xOTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE5MzpzdGF0aWMgdm9pZCBjbWRfZW50X3B1dChzdHJ1Y3QgbWx4NV9jbWRfd29ya19lbnQgKmVudClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTk0LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTk1OlxcdHN0cnVjdCBtbHg1X2NtZCAqY21kID0gZW50LVxcdTAwM2VjbWQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE5Ni1cXHR1bnNpZ25lZCBsb25nIGZsYWdzO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTIxMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MjEzOnN0YXRpYyBzdHJ1Y3QgbWx4NV9jbWRfbGF5b3V0ICpnZXRfaW5zdChzdHJ1Y3QgbWx4NV9jbWQgKmNtZCwgaW50IGlkeClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjE0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjIxODpzdGF0aWMgaW50IG1seDVfY2FsY19jbWRfYmxvY2tzKHN0cnVjdCBtbHg1X2NtZF9tc2cgKm1zZylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjE5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz0yMjY9c3RhdGljIHU4IHhvcjhfYnVmKHZvaWQgKmJ1Ziwgc2l6ZV90IG9mZnNldCwgaW50IGxlbilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMzgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjIzOTpzdGF0aWMgaW50IHZlcmlmeV9ibG9ja19zaWcoc3RydWN0IG1seDVfY21kX3Byb3RfYmxvY2sgKmJsb2NrKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yNDAte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoyNDE6XFx0c2l6ZV90IHJzdmQwX29mZiA9IG9mZnNldG9mKHN0cnVjdCBtbHg1X2NtZF9wcm90X2Jsb2NrLCByc3ZkMCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTI0Mi1cXHRpbnQgeG9yX2xlbiA9IHNpemVvZigqYmxvY2spIC0gc2l6ZW9mKGJsb2NrLVxcdTAwM2VkYXRhKSAtIDE7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjUyLVxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQxODoxMTozOC43MTE3Nzk0OTVaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMTAzMjEyNjI5MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgUmVhY2hhYmlsaXR5IG9mIE1lbGxhbm94IG1seDUgQ29kZSBpbiBhIFZpcnR1YWxpemVkIEVudmlyb25tZW50KipcblxuQWxyaWdodCwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBJIG5lZWQgdG8gZGV0ZXJtaW5lIGlmIHRoZXNlIG1vZGlmaWVkIE1lbGxhbm94IG1seDUgZmlsZXMgYXJlIHJlYWNoYWJsZSB3aXRoaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCwgc3BlY2lmaWNhbGx5IGNvbnNpZGVyaW5nIEdDRSBvciBRRU1VLiBUaGUgZmlsZXMgaW4gcXVlc3Rpb24gYXJlIGBlbl90Yy5jYCwgYG1wZXN3LmNgLCBhbmQgYHNoYXJlZF9mZGIuY2AuIFRoZSBmYWN0IHRoYXQgc3l6a2FsbGVyIGlzIGludm9sdmVkIGltbWVkaWF0ZWx5IHBpcXVlcyBteSBpbnRlcmVzdC4gU3l6a2FsbGVyIGlzIGEgcG93ZXJmdWwgZnV6emVyLCBhbmQgdGhlIHByb21wdCBleHBsaWNpdGx5IGhpZ2hsaWdodHMgY2FzZXMgb2YgXCJpbXBvc3NpYmxlIHRvIHJlYWNoXCIgY29kZSBwYXRocyBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuXG5cbkluaXRpYWxseSwgSSdkIGFzc3VtZSBNZWxsYW5veCBtbHg1IGlzIHR5cGljYWxseSBhIHBoeXNpY2FsIGRldmljZS4gSG93ZXZlciwgdGhlIHByZXNlbmNlIG9mIHN5emthbGxlciBjaGFuZ2VzIGV2ZXJ5dGhpbmcuIEkga25vdyBzeXprYWxsZXIgaGFzIGEgY2x1c3RlciBhbmQgdGhhdCBpdCdzIGFwcGx5aW5nIGEgcGF0Y2guIFRoaXMgc3Ryb25nbHkgc3VnZ2VzdHMgdGhhdCBzeXprYWxsZXIgaXMgc3VjY2Vzc2Z1bGx5IGZ1enppbmcgbWx4NSwgcG9zc2libHkgdGhyb3VnaCBpdHMgUENJIGZ1enplci4gVGhhdCdzIHRoZSBjcnVjaWFsIHF1ZXN0aW9uOiBjYW4gc3l6a2FsbGVyJ3MgUENJIGZ1enplciByZWFjaCBkZWVwIGVub3VnaCBpbnRvIHRoZSBtbHg1IGRyaXZlciB0byB0cmlnZ2VyIGNvZGUgcGF0aHMgaW4gdGhlc2UgbW9kaWZpZWQgZmlsZXM/XG5cblRoZSBwcm9tcHQncyBleGNsdXNpb24gb2YgXCJzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZVwiIGlzIGtleS4gVGhlIHByb21wdCB3YW50cyB0byBleGNsdWRlIGNvZGUgdGhhdCBpcyBpbmFjY2Vzc2libGUgaW4gR0NFIG9yIFFFTVUgZXZlbiB3aGVuIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIGxpa2UgdXNiIGdhZGdldCBvciBtYWM4MDIxMV9od3NpbSBpcyB1c2VkLiBEb2VzIHRoZSBQQ0kgZnV6emVyIHF1YWxpZnk/IFdlbGwsIHN5emthbGxlciBkb2VzIHJ1biBvbiBHQ0UvUUVNVSwgYW5kIHRoZXJlJ3MgYSBzdHJvbmcgaW5kaWNhdGlvbiB0aGF0IGl0ICpjYW4qIHJlYWNoIG1seDUuIFRoZSBhdXRob3Igb2YgdGhlIHBhdGNoIGlzIGxpc3RlZCBhcyBcInN5ei1jbHVzdGVyXCIsIHdoaWNoIG1lYW5zIHN5emthbGxlciBkaWQgZmluZCBhIGJ1ZyBhbmQgaXMgdGVzdGluZyB0aGUgcGF0Y2ghXG5cbklmIHN5emthbGxlciBpcyB0ZXN0aW5nIGEgcGF0Y2ggYWdhaW5zdCB0aGVzZSBmaWxlcywgaXQncyBjbGVhciB0aGV5J3ZlIGZvdW5kIGEgd2F5IHRvIHRyaWdnZXIgY29kZSBpbiBtbHg1IHdpdGhpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LiBUaGUgUENJIGZ1enplciBpcyB0aGUgbGlrZWx5IGN1bHByaXQuIEkgcmVjYWxsIHRoYXQgc3l6a2FsbGVyIGVuYWJsZXMgbnVtZXJvdXMgZHJpdmVycyBmb3IgaXRzIFBDSSBmdXp6ZXIsIHN1Z2dlc3RpbmcgdGhhdCBpdCdzIGRlc2lnbmVkIHRvIGludGVyYWN0IHdpdGggYSBicm9hZCByYW5nZSBvZiBQQ0kgZGV2aWNlcy5cblxuTm93LCB0aGUgbnVhbmNlcyBvZiBlbXVsYXRpb24gYXJlIGNyaXRpY2FsLiBEb2VzIHN5emthbGxlciBhY3R1YWxseSAqZW11bGF0ZSogbWx4NSwgb3IgZG9lcyBpdCBzaW1wbHkgcHJvdmlkZSByYW5kb20gcmVzcG9uc2VzIHRvIE1NSU8gcmVhZHMvd3JpdGVzLCBhbGxvd2luZyBpdCB0byBwYXNzIHRoZSBwcm9iZSBhbmQgZ2V0IGludG8gdGhlIGRyaXZlcj8gSXQncyB0aGUgbGF0dGVyLCBpc24ndCBpdD8gVGhlIHByb21wdCBpcyB0cnlpbmcgdG8gZXhjbHVkZSB0cnVlIGVtdWxhdGlvbiwgc28gSSBuZWVkIHRvIGNoZWNrIHRoZSBleGFjdCBmdW5jdGlvbiB0aGF0IHRoZSBwYXRjaCBtb2RpZmllcy5cblxuTGV0J3MgbG9vayBhdCB0aGUgZnVuY3Rpb25zIHRoZW1zZWx2ZXM6IGBtbHg1ZV90Y19jbGVhbl9mZGJfcGVlcl9mbG93c2AsIGBtbHg1X21wZXN3X3dvcmtgLCBhbmQgYG1seDVfbGFnX2NyZWF0ZV9zaW5nbGVfZmRiX2ZpbHRlcmAuIEdpdmVuIHRoZSBQQ0kgZnV6emVyJ3MgYXBwcm9hY2gsIGV2ZW4gdGhvdWdoIGl0IGRvZXNuJ3QgZG8gYSBmdWxsIGVtdWxhdGlvbiwgaXQgcHJvYmFibHkgbWVhbnMgdGhhdCBgV29ydGhGdXp6aW5nYCBzaG91bGQgYmUgYHRydWVgISBUaGUgUENJIGZ1enplciAqaXMqIGFibGUgdG8gcGFzcyBwcm9iZSwgYW5kIGlzIGFibGUgdG8gcmVhY2ggc29tZSBjb2RlIHBhdGhzIHRoYXQgYXJlIG1vZGlmaWVkLCBhbmQgY2FuIHByb2JhYmx5IHRyaWdnZXIgc29tZSBpbnRlcmVzdGluZyBzY2VuYXJpb3MuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE4ODE4LCJPdXRwdXRUb2tlbnMiOjUwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzMwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDE4OjExOjQ5Ljc0MzkwOTY5NloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDQ5OTgyMzksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibWx4NWVfdGNfY2xlYW5fZmRiX3BlZXJfZmxvd3NcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdGMuYz01NTMxPWludCBtbHg1ZV90Y19udW1fZmlsdGVycyhzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiwgdW5zaWduZWQgbG9uZyBmbGFncylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90Yy5jLTU1MzctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3RjLmM6NTUzODp2b2lkIG1seDVlX3RjX2NsZWFuX2ZkYl9wZWVyX2Zsb3dzKHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdGMuYy01NTM5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lc3dpdGNoLmg9NzQ0PXN0YXRpYyBpbmxpbmUgYm9vbCBtbHg1X2Vzd19pc19mZGJfY3JlYXRlZChzdHJ1Y3QgbWx4NV9lc3dpdGNoICplc3cpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaC5oLTc0OS0vKiBUT0RPOiBUaGlzIG1seDVlX3RjIGZ1bmN0aW9uIHNob3VsZG4ndCBiZSBjYWxsZWQgYnkgZXN3aXRjaCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lc3dpdGNoLmg6NzUwOnZvaWQgbWx4NWVfdGNfY2xlYW5fZmRiX3BlZXJfZmxvd3Moc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaC5oLTc1MS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lc3dpdGNoX29mZmxvYWRzLmM9MzM3OT1zdGF0aWMgdm9pZCBtbHg1X2Vzd19vZmZsb2Fkc191bnBhaXIoc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2hfb2ZmbG9hZHMuYy0zMzgyLSNpZiBJU19FTkFCTEVEKENPTkZJR19NTFg1X0NMU19BQ1QpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2hfb2ZmbG9hZHMuYzozMzgzOlxcdG1seDVlX3RjX2NsZWFuX2ZkYl9wZWVyX2Zsb3dzKGVzdyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2hfb2ZmbG9hZHMuYy0zMzg0LSNlbmRpZlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQxODoxMTo0OS44NDg5MjAyNTVaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMzI3NzE3NDg0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgYW5hbHlzaXMgb2YgdGhlIHByb3ZpZGVkIGluZm9ybWF0aW9uLCBhcyBpZiB0aGVzZSB3ZXJlIG15IGludGVybmFsIHRob3VnaHRzOlxuXG4qKkRpc3NlY3RpbmcgdGhlIEZsb3cgQ29udHJvbCBGdW5jdGlvbmFsaXR5KipcblxuT2theSwgc28gSSBzZWUgdGhhdCBgbWx4NWVfdGNfY2xlYW5fZmRiX3BlZXJfZmxvd3NgIGlzIHRyaWdnZXJlZCBieSBgbWx4NV9lc3dfb2ZmbG9hZHNfdW5wYWlyYC4gVGhhdCdzIGEga2V5IGNvbm5lY3Rpb24gcmlnaHQgdGhlcmUuICBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IHRoaXMgbWVhbnMgaW4gdGVybXMgb2Ygb2ZmbG9hZCBtYW5hZ2VtZW50IGFuZCBob3cgZmxvd3MgYXJlIGNsZWFuZWQgdXAgd2hlbiBzb21ldGhpbmcgaXMgdW5wYWlyZWQuIFRoZSBkZXBlbmRlbmN5IHN1Z2dlc3RzIHRoaXMgYG1seDVlX3RjX2NsZWFuX2ZkYl9wZWVyX2Zsb3dzYCBpcyBjcnVjaWFsIGZvciB0aGUgb3ZlcmFsbCBsaWZlY3ljbGUgb2YgdGhlc2Ugb2ZmbG9hZGVkIGZsb3dzLlxuXG5Ob3csIGxldCBtZSBzaGlmdCBnZWFycyBhbmQgZ28gZGlnZ2luZyBpbnRvIGBtbHg1X21wZXN3X3dvcmtgLiBJIGhhdmUgYSBmZWVsaW5nIHRoaXMgaXMgd2hlcmUgdGhpbmdzIHdpbGwgc3RhcnQgdG8gYmVjb21lIGNsZWFyZXIsIGVzcGVjaWFsbHkgdGhlIGFjdHVhbCBqb2Igb3Igb3BlcmF0aW9uIHBlcmZvcm1lZCBieSB0aGUgZnVuY3Rpb24gbWVudGlvbmVkIHByZXZpb3VzbHkuIFRoaXMgcHJvYmFibHkgdGllcyBkaXJlY3RseSBpbnRvIGhvdyB0aGUgb2ZmbG9hZHMgYW5kIHRoZWlyIGFzc29jaWF0ZWQgZmxvd3MgYXJlIG1hbmFnZWQuIExldCdzIHNlZSBpZiB0aGlzIGZ1bmN0aW9uJ3MgbG9naWMgZ2l2ZXMgYW55IG1vcmUgaW5zaWdodHMgb24gZmxvdyBkZS1hbGxvY2F0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDc5MCwiT3V0cHV0VG9rZW5zIjo0NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDE4OjExOjUzLjE3NjY0MjU4OVoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTA3MTk1MTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibWx4NV9tcGVzd193b3JrXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9tcGVzdy5jPTE3OD12b2lkIG1seDVfbXBlc3dfc2RfZGV2Y29tc191bmxvY2soc3RydWN0IG1seDVfbGFnICpsZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9tcGVzdy5jLTE4OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL21wZXN3LmM6MTkwOnN0YXRpYyB2b2lkIG1seDVfbXBlc3dfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9tcGVzdy5jLTE5MS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9tcGVzdy5jOjE5MjpcXHRzdHJ1Y3QgbWx4NV9tcGVzd193b3JrX3N0ICptcGVzd3cgPSBjb250YWluZXJfb2Yod29yaywgc3RydWN0IG1seDVfbXBlc3dfd29ya19zdCwgd29yayk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9tcGVzdy5jLTE5My1cXHRzdHJ1Y3QgbWx4NV9kZXZjb21fY29tcF9kZXYgKmRldmNvbTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvbXBlc3cuYz0yMjI9c3RhdGljIGludCBtbHg1X2xhZ19tcGVzd19xdWV1ZV93b3JrKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL21wZXN3LmMtMjI1LVxcdHN0cnVjdCBtbHg1X2xhZyAqbGRldiA9IG1seDVfbGFnX2RldihkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvbXBlc3cuYzoyMjY6XFx0c3RydWN0IG1seDVfbXBlc3dfd29ya19zdCAqd29yaztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL21wZXN3LmMtMjI3LVxcdGludCBlcnIgPSAwO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9tcGVzdy5jLTIzNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL21wZXN3LmM6MjM2OlxcdElOSVRfV09SSyhcXHUwMDI2d29yay1cXHUwMDNld29yaywgbWx4NV9tcGVzd193b3JrKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL21wZXN3LmMtMjM3LVxcdGluaXRfY29tcGxldGlvbihcXHUwMDI2d29yay1cXHUwMDNlY29tcCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL21wZXN3Lmg9MTU9ZW51bSBtcGVzd19vcCB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL21wZXN3LmgtMTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9tcGVzdy5oOjIwOnN0cnVjdCBtbHg1X21wZXN3X3dvcmtfc3Qge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvbXBlc3cuaC0yMS1cXHRzdHJ1Y3Qgd29ya19zdHJ1Y3Qgd29yaztcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTg6MTE6NTMuMjg3MzcyNjc4WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDQxMzM5NDU5OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIGEgc3VtbWFyeSBvZiBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIHJlcXVlc3RlZDpcblxuKipEaXZpbmcgaW50byBgbWx4NV9sYWdfY3JlYXRlX3NpbmdsZV9mZGJfZmlsdGVyYCoqXG5cbk9rYXksIHRpbWUgdG8gZGlnIGludG8gYG1seDVfbGFnX2NyZWF0ZV9zaW5nbGVfZmRiX2ZpbHRlcmAuIEdpdmVuIG15IGV4cGVyaWVuY2Ugd2l0aCBNTFg1IGFuZCBMQUcgY29uZmlndXJhdGlvbnMsIEknbSBhbHJlYWR5IGFudGljaXBhdGluZyBzb21lIG9mIHRoZSBpbnRyaWNhY2llcyBpbnZvbHZlZC4gSSdtIGV4cGVjdGluZyB0aGlzIGZ1bmN0aW9uIHRvIGhhbmRsZSB0aGUgY3JlYXRpb24gb2YgYSBGb3J3YXJkaW5nIERhdGFiYXNlIChGREIpIGZpbHRlciBzcGVjaWZpY2FsbHkgZm9yIGEgc2luZ2xlIGRlc3RpbmF0aW9uIE1BQyBhZGRyZXNzIHdpdGhpbiBhIExpbmsgQWdncmVnYXRpb24gR3JvdXAgKExBRykuIFRoaXMgaW1wbGllcyBpdCBuZWVkcyB0byBpbnRlcmFjdCB3aXRoIHRoZSB1bmRlcmx5aW5nIGhhcmR3YXJlLCBsaWtlbHkgcHJvZ3JhbW1pbmcgc29tZSByZWdpc3RlcnMgd2l0aGluIHRoZSBNTFg1IE5JQyB0byBlbnN1cmUgcGFja2V0cyBkZXN0aW5lZCBmb3IgdGhhdCBNQUMgYXJlIGNvcnJlY3RseSBmb3J3YXJkZWQgYWNyb3NzIHRoZSBhZ2dyZWdhdGVkIGxpbmtzLlxuXG5JJ2xsIGJlIGxvb2tpbmcgZm9yIGhvdyBpdCBoYW5kbGVzIHRoaW5ncyBsaWtlIHRoZSBMQUcgSUQsIHRoZSBzcGVjaWZpYyBNQUMgYWRkcmVzcyBmaWx0ZXIsIHRoZSBwb3J0IG9yIHBvcnRzIGFzc29jaWF0ZWQgd2l0aCB0aGUgTEFHLCBhbmQgdGhlIGFzc29jaWF0ZWQgVkxBTiBvciBvdGhlciBlbmNhcHN1bGF0aW9uIHBhcmFtZXRlcnMgaWYgYXBwbGljYWJsZS4gSSdsbCBwYXkgY2xvc2UgYXR0ZW50aW9uIHRvIHRoZSBlcnJvciBoYW5kbGluZyB3aXRoaW4gdGhlIGZ1bmN0aW9uLiBEb2VzIGl0IGNoZWNrIGZvciByZXNvdXJjZSBleGhhdXN0aW9uLCBpbnZhbGlkIHBhcmFtZXRlcnMsIG9yIGhhcmR3YXJlIGZhaWx1cmVzPyBIb3cgcm9idXN0IGlzIGl0P1xuXG5JIGFsc28gd2FudCB0byBzZWUgaG93IGl0IGludGVyYWN0cyB3aXRoIHRoZSBicm9hZGVyIEZEQiBtYW5hZ2VtZW50IHN5c3RlbS4gRG9lcyBpdCBjYWxsIG90aGVyIGZ1bmN0aW9ucyB0byB1cGRhdGUgdGhlIEZEQiB0YWJsZSwgb3IgZG9lcyBpdCBkaXJlY3RseSB3cml0ZSB0aGUgbmVjZXNzYXJ5IGluZm9ybWF0aW9uIHRvIHRoZSByZWxldmFudCBoYXJkd2FyZSBzdHJ1Y3R1cmVzPyBVbmRlcnN0YW5kaW5nIHRoZSBpbnRlcm5hbCBmdW5jdGlvbiBkZXBlbmRlbmNpZXMgd2lsbCBiZSBrZXkgdG8gdW5kZXJzdGFuZGluZyB0aGUgb3ZlcmFsbCBGREIgbWFuYWdlbWVudCBmbG93LiBBbnkgcG90ZW50aWFsIHJhY2UgY29uZGl0aW9ucyBvciBsb2NraW5nIG1lY2hhbmlzbXMgdXNlZCB0byBwcm90ZWN0IHRoZSBGREIgd2lsbCBiZSBvbiBteSByYWRhciB0b28uIEkgaG9wZSB0aGUgY29kZSBpcyB3ZWxsLWNvbW1lbnRlZDsgdGhhdCB3aWxsIHNhdmUgbWUgYSB0b24gb2YgdGltZS4gTGV0J3MgZ2V0IHRvIGl0IVxuXG5cbiIsIklucHV0VG9rZW5zIjoyMTg0MSwiT3V0cHV0VG9rZW5zIjo0OSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDE4OjExOjU3LjcwMDc3MTA0NloiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTEyMTE3OTQ5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1seDVfbGFnX2NyZWF0ZV9zaW5nbGVfZmRiX2ZpbHRlclwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvc2hhcmVkX2ZkYi5jPTQ1PWJvb2wgbWx4NV9sYWdfc2hhcmVkX2ZkYl9zdXBwb3J0ZWQoc3RydWN0IG1seDVfbGFnICpsZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9zaGFyZWRfZmRiLmMtNTAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9zaGFyZWRfZmRiLmM6NTE6c3RhdGljIGludCBtbHg1X2xhZ19jcmVhdGVfc2luZ2xlX2ZkYl9maWx0ZXIoc3RydWN0IG1seDVfbGFnICpsZGV2LCB1MzIgZmlsdGVyKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvc2hhcmVkX2ZkYi5jLTUyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvc2hhcmVkX2ZkYi5jPTE4ND1pbnQgbWx4NV9sYWdfY3JlYXRlX3NpbmdsZV9mZGIoc3RydWN0IG1seDVfbGFnICpsZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvc2hhcmVkX2ZkYi5jLTE4NS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9zaGFyZWRfZmRiLmM6MTg2OlxcdHJldHVybiBtbHg1X2xhZ19jcmVhdGVfc2luZ2xlX2ZkYl9maWx0ZXIobGRldiwgTUxYNV9MQUdfRklMVEVSX0FMTCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9zaGFyZWRfZmRiLmMtMTg3LX1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvc2hhcmVkX2ZkYi5jPTIwOT1pbnQgbWx4NV9sYWdfc2hhcmVkX2ZkYl9jcmVhdGUoc3RydWN0IG1seDVfbGFnICpsZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9zaGFyZWRfZmRiLmMtMjM3LVxcdH0gZWxzZSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9zaGFyZWRfZmRiLmM6MjM4OlxcdFxcdGVyciA9IG1seDVfbGFnX2NyZWF0ZV9zaW5nbGVfZmRiX2ZpbHRlcihsZGV2LCBncm91cF9pZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9zaGFyZWRfZmRiLmMtMjM5LVxcdFxcdGlmIChlcnIpIHtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTg6MTE6NTcuODEyOTAxMjY1WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjc1NDA0MTEwODIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiBtbHg1IFJlYWNoYWJpbGl0eSBpbiBWaXJ0dWFsaXplZCBFbnZpcm9ubWVudHMqKlxuXG5Pa2F5LCBzbyB0aGUgcHJvbXB0IHNheXMgdG8gcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgIGlmIHRoZSBwYXRjaCB0YXJnZXRzIHVucmVhY2hhYmxlIGNvZGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgXCJDYW4gbWx4NSBldmVuICpiZSogcmVhY2hlZCBpbiBHQ0Ugb3IgUUVNVT9cIiBJZiBzeXprYWxsZXIgZm91bmQgYSBidWcgcmVsYXRlZCB0byBpdCwgdGhlbiB0aGUgYW5zd2VyIG11c3QgYmUgeWVzLCBidXQgSSBuZWVkIHRvIHVuZGVyc3RhbmQgKmhvdyouXG5cblN5emthbGxlciBjYW4gZW11bGF0ZSBQQ0kgZGV2aWNlcyB1c2luZyBgc3l6X3BjaV9lcGAgb3IgYHN5el9wY2lfZXBfd3JpdGVgLCB3aGljaCBtZWFucyBpdOKAmXMgcHJvdmlkaW5nIGEgZmFrZSBQQ0kgY29uZmlnIHNwYWNlIGFuZCBNTUlPIHJlZ2lvbnMuIE5vdywgaWYgdGhlIGRyaXZlciBkb2Vzbid0IHJlcXVpcmUgcmVhbGx5IGNvbXBsZXggaGFyZHdhcmUgaGFuZHNoYWtlcyB0aGF0IGZhaWwgaW5zdGFudGx5LCBpdCBtaWdodCBhY3R1YWxseSBoaXQgc29tZSBjb2RlLiBUaGUga2V5IHF1ZXN0aW9uIGlzIHdoZXRoZXIgbWx4NSBoYXMgc3VjaCBpbml0aWFsaXphdGlvbiByZXF1aXJlbWVudHMuXG5cbk1lbGxhbm94IG1seDUgZHJpdmVycyByZWx5IG9uIGZpcm13YXJlIGNvbW1hbmRzIHRocm91Z2ggY29tbWFuZCBxdWV1ZXMgZm9yIGluaXRpYWxpemF0aW9uLCB3aGljaCBpcyBhIGJpdCBpbnZvbHZlZC4gSWYgdGhlIFBDSSBmdXp6ZXIgaXMganVzdCB0aHJvd2luZyByYW5kb20gZGF0YSBhdCB0aGUgTU1JTyByZWdpb25zLCB0aGUgZHJpdmVyIG1pZ2h0IGZhaWwgdG8gaW5pdGlhbGl6ZSDigJMgb3IsIGluIGEgbHVja3kgZ3Vlc3MsIGl0IG1pZ2h0IHN1Y2NlZWQgaWYgdGhlIHJpZ2h0IFwicmVzcG9uc2VzXCIgYXJlIHByb3ZpZGVkLCBvciBpZiB0aGUgZHJpdmVyIHNpbXBseSBkb2Vzbid0IGNoZWNrLlxuXG5TeXprYWxsZXIgZG9lcyBoYXZlIGEgZGVkaWNhdGVkIGBzeXpfcGNpX2VwYCBmdXp6ZXIsIGJ1dCBpdCdzIGdlbmVyYWxseSBub3QgdmVyeSBkZWVwIHVubGVzcyB0aGVyZSdzIGFuIGV4cGxpY2l0IGVtdWxhdG9yIGZvciB0aGUgc3BlY2lmaWMgZGV2aWNlLiBJIGtub3cgdGhlcmUncyBhIGBuZXRkZXZzaW1gIGRyaXZlciwgYnV0IGl04oCZcyBub3QgbWx4NS5cblxuU28sIGRvZXMgc3l6a2FsbGVyIGhhdmUgKmFueSogd2F5IHRvIHRlc3QgbWx4NT8gSSBuZWVkIHRvIGNoZWNrIGZvciBhbnkgc29mdHdhcmUgZW11bGF0aW9uLiBJIHNob3VsZCBzZWFyY2ggZm9yIFwibWx4NVwiIGluIHRoZSBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYCBhbmQgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9gIGRpcmVjdG9yaWVzLCB0byBzZWUgaWYgdGhlcmUncyBhIG1vY2sgb3Igb3RoZXIgZm9ybSBvZiBlbXVsYXRpb24uIFRoYXQgc2hvdWxkIGdpdmUgbWUgdGhlIGFuc3dlci5cblxuXG4iLCJJbnB1dFRva2VucyI6MjI3ODYsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MTksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTg6MTI6MDUuMzUzMzE5Mjc3WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzc0ODg5ODYsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1vY2tcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTg6MTI6MDUuNDkwODI5MDg0WiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQzMDY1NDc3MTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBzdW1tYXJ5LCB0YWlsb3JlZCBhcyBpZiBJJ20gdGhpbmtpbmcgaXQ6XG5cbioqQ2hlY2tpbmcgZm9yIFNpbXVsYXRpb24gRW52aXJvbm1lbnRzIGZvciBtbHg1KipcblxuQWxyaWdodCwgbGV0J3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIEkgbmVlZCB0byBmaWd1cmUgb3V0IGlmIHRoZXJlIGFyZSBhbnkgcmVhZGlseSBhdmFpbGFibGUgc2ltdWxhdGlvbiBlbnZpcm9ubWVudHMgZm9yIHRoZSBgbWx4NWAgaGFyZHdhcmUuIFNwZWNpZmljYWxseSwgSSBuZWVkIHRvIGtub3cgaWYgdGhlcmUncyBhbnl0aGluZyBsaWtlIGEgYGh3c2ltYCBzZXR1cCBvciBhIG1vcmUgZ2VuZXJhbCBgc2ltYCBlbnZpcm9ubWVudCB0aGF0IEkgY2FuIGxldmVyYWdlLiBLbm93aW5nIHRoZXNlIHdpbGwgc2F2ZSBhIGh1Z2UgYW1vdW50IG9mIGRldmVsb3BtZW50IHRpbWUsIGlmIHRoZXkgZXhpc3QuIEl0IHdvdWxkIGFsbG93IG1lIHRvIHRlc3QgYW5kIGV4cGVyaW1lbnQgd2l0aG91dCByZWx5aW5nIG9uIHRoZSBwaHlzaWNhbCBoYXJkd2FyZSBmb3IgZXZlcnkgbWlub3IgaXRlcmF0aW9uLiBMZXQncyBzZWUgd2hhdCdzIG91dCB0aGVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjM2NjEsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQxODoxMjowOS43OTczODQ5ODJaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEzMzgyNjc4NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzaW1cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZz0xODU9Y29uZmlnIE1MWDVfU0ZcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTE5MC1cXHRkZXZpY2UgY2FuIHN1cHBvcnQgUkRNQSwgbmV0ZGV2aWNlIGFuZCB2ZHBhIGRldmljZS5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoxOTE6XFx0SXQgaXMgc2ltaWxhciB0byBhIFNSSU9WIFZGIGJ1dCBpdCBkb2Vzbid0IHJlcXVpcmUgU1JJT1Ygc3VwcG9ydC5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xOTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc9MTkzPWNvbmZpZyBNTFg1X1NGX01BTkFHRVJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTE5OS1cXHRwb3J0IGlzIG1hbmFnZWQgdGhyb3VnaCBkZXZsaW5rLiAgQSBzdWJmdW5jdGlvbiBzdXBwb3J0cyBSRE1BLCBuZXRkZXZpY2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoyMDA6XFx0YW5kIHZkcGEgZGV2aWNlLiBJdCBpcyBzaW1pbGFyIHRvIGEgU1JJT1YgVkYgYnV0IGl0IGRvZXNuJ3QgcmVxdWlyZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTIwMS1cXHRTUklPViBzdXBwb3J0Llxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTExNDQ9c3RhdGljIHZvaWQgd2FpdF9mdW5jX2hhbmRsZV9leGVjX3RpbWVvdXQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMTUxLVxcdC8qIFJlLXdhaXQgb24gdGhlIGVudC1cXHUwMDNlZG9uZSBhZnRlciBleGVjdXRpbmcgdGhlIHJlY292ZXJ5IGZsb3cuIElmIHRoZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxMTUyOlxcdCAqIHJlY292ZXJ5IGZsb3cgKG9yIGFueSBvdGhlciByZWNvdmVyeSBmbG93IHJ1bm5pbmcgc2ltdWx0YW5lb3VzbHkpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTExNTMtXFx0ICogaGFzIHJlY292ZXJlZCBhbiBFUUUsIGl0IHNob3VsZCBjYXVzZSB0aGUgZW50cnkgdG8gYmUgY29tcGxldGVkIGJ5XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9MTM2ND1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBmb3BzID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMzY1LVxcdC5vd25lclxcdD0gVEhJU19NT0RVTEUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjEzNjY6XFx0Lm9wZW5cXHQ9IHNpbXBsZV9vcGVuLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMzY3LVxcdC53cml0ZVxcdD0gZGJnX3dyaXRlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTE1NTA9c3RhdGljIHNzaXplX3QgZGF0YV9yZWFkKHN0cnVjdCBmaWxlICpmaWxwLCBjaGFyIF9fdXNlciAqYnVmLCBzaXplX3QgY291bnQsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTU1OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTU1OTpcXHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIoYnVmLCBjb3VudCwgcG9zLCBkYmctXFx1MDAzZW91dF9tc2csXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE1NjAtXFx0XFx0XFx0XFx0ICAgICAgIGRiZy1cXHUwMDNlb3V0bGVuKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz0xNTYzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGRmb3BzID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNTY0LVxcdC5vd25lclxcdD0gVEhJU19NT0RVTEUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE1NjU6XFx0Lm9wZW5cXHQ9IHNpbXBsZV9vcGVuLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNTY2LVxcdC53cml0ZVxcdD0gZGF0YV93cml0ZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz0xNTcwPXN0YXRpYyBzc2l6ZV90IG91dGxlbl9yZWFkKHN0cnVjdCBmaWxlICpmaWxwLCBjaGFyIF9fdXNlciAqYnVmLCBzaXplX3QgY291bnQsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTU4MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTU4MjpcXHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIoYnVmLCBjb3VudCwgcG9zLCBvdXRsZW4sIGVycik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE1ODMtfVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTE2MjE9c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgb2xmb3BzID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNjIyLVxcdC5vd25lclxcdD0gVEhJU19NT0RVTEUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE2MjM6XFx0Lm9wZW5cXHQ9IHNpbXBsZV9vcGVuLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNjI0LVxcdC53cml0ZVxcdD0gb3V0bGVuX3dyaXRlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYz0xMjk9c3RhdGljIHNzaXplX3QgYXZlcmFnZV9yZWFkKHN0cnVjdCBmaWxlICpmaWxwLCBjaGFyIF9fdXNlciAqYnVmLCBzaXplX3QgY291bnQsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTE0Mi1cXHRyZXQgPSBzbnByaW50Zih0YnVmLCBzaXplb2YodGJ1ZiksIFxcXCIlbGx1XFxcXG5cXFwiLCBmaWVsZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYzoxNDM6XFx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKGJ1ZiwgY291bnQsIHBvcywgdGJ1ZiwgcmV0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTE0NC19XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jPTE2Nz1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyByZXNldF9mb3BzID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtMTY4LVxcdC5vd25lclxcdD0gVEhJU19NT0RVTEUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYzoxNjk6XFx0Lm9wZW5cXHQ9IHNpbXBsZV9vcGVuLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtMTcwLVxcdC53cml0ZVxcdD0gcmVzZXRfd3JpdGUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jPTE3Mz1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBhdmVyYWdlX2ZvcHMgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy0xNzQtXFx0Lm93bmVyXFx0PSBUSElTX01PRFVMRSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jOjE3NTpcXHQub3BlblxcdD0gc2ltcGxlX29wZW4sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy0xNzYtXFx0LnJlYWRcXHQ9IGF2ZXJhZ2VfcmVhZCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM9MTc5PXN0YXRpYyBzc2l6ZV90IHNsb3RzX3JlYWQoc3RydWN0IGZpbGUgKmZpbHAsIGNoYXIgX191c2VyICpidWYsIHNpemVfdCBjb3VudCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtMTkxLVxcdHJldCA9IHNucHJpbnRmKHRidWYsIHNpemVvZih0YnVmKSwgXFxcIiVkXFxcXG5cXFwiLCBmaWVsZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYzoxOTI6XFx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKGJ1ZiwgY291bnQsIHBvcywgdGJ1ZiwgcmV0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTE5My19XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jPTE5NT1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBzbG90c19mb3BzID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtMTk2LVxcdC5vd25lclxcdD0gVEhJU19NT0RVTEUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYzoxOTc6XFx0Lm9wZW5cXHQ9IHNpbXBsZV9vcGVuLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtMTk4LVxcdC5yZWFkXFx0PSBzbG90c19yZWFkLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYz00OTQ9c3RhdGljIHNzaXplX3QgZGJnX3JlYWQoc3RydWN0IGZpbGUgKmZpbHAsIGNoYXIgX191c2VyICpidWYsIHNpemVfdCBjb3VudCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtNTI4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM6NTI5OlxcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcihidWYsIGNvdW50LCBwb3MsIHRidWYsIHJldCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy01MzAtfVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYz01MzI9c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZm9wcyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTUzMy1cXHQub3duZXJcXHQ9IFRISVNfTU9EVUxFLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM6NTM0OlxcdC5vcGVuXFx0PSBzaW1wbGVfb3BlbixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTUzNS1cXHQucmVhZFxcdD0gZGJnX3JlYWQsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaD01MzY9c3RydWN0IG1seDVlX2ljb3NxIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oLTU1Ni1cXHQgKiAoTkFQSSBzb2Z0aXJxIG9yIHByb2Nlc3Mvd29ya3F1ZXVlKS4gQWx3YXlzIHVzZSBzcGluX2xvY2tfYmggZm9yXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmg6NTU3OlxcdCAqIHNpbXBsaWNpdHkgYW5kIGNvcnJlY3RuZXNzIGFjcm9zcyBhbGwgY29udGV4dHMuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmgtNTU4LVxcdCAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmg9ODgxPXN0cnVjdCBtbHg1ZV94c2sge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmgtODk1LSAqIG11c3Qgbm90IGZhaWwuIFVzZSB3aXRoIGNhcmUgYW5kIG1ha2Ugc3VyZSB0aGUgc2FtZSB2YXJpYWJsZSBpcyBub3QgdXNlZFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oOjg5NjogKiBzaW11bHRhbmVvdXNseSBieSBtdWx0aXBsZSB1c2Vycy5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaC04OTctICovXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcGFyYW1zLmM9NDk3PXUzMiBtbHg1ZV9tcHdycV9tYXhfcGFnZV9zaXplKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3BhcmFtcy5jLTUwMi1cXHQvKiBUd28gTVRUcyBhcmUgbmVlZGVkIHRvIGZvcm0gYW4gb2N0d29yZC4gRHJpdmVyIGlzIHVzaW5nIGFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcGFyYW1zLmM6NTAzOlxcdCAqIHNpbmdsZSBwYWdlIHBlciBNVFQgZm9yIHNpbXBsaWNpdHkuIEhlbmNlIHRoZSBsaW1pdCBvZiBoYXZpbmdcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcGFyYW1zLmMtNTA0LVxcdCAqIGF0IGxlYXN0IDIgcGFnZXMgcGVyIFdRRS5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvdGMuYz0yNDc9aW50IG1seDVlX3JlcF9zZXR1cF90YyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBlbnVtIHRjX3NldHVwX3R5cGUgdHlwZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvdGMuYy0yNTYtXFx0Y2FzZSBUQ19TRVRVUF9CTE9DSzpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL3RjLmM6MjU3OlxcdFxcdHJldHVybiBmbG93X2Jsb2NrX2NiX3NldHVwX3NpbXBsZSh0eXBlX2RhdGEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcC90Yy5jLTI1OC1cXHRcXHRcXHRcXHRcXHRcXHQgIFxcdTAwMjZtbHg1ZV9yZXBfYmxvY2tfdGNfY2JfbGlzdCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvdGMuYy0yNjEtXFx0Y2FzZSBUQ19TRVRVUF9GVDpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL3RjLmM6MjYyOlxcdFxcdHJldHVybiBmbG93X2Jsb2NrX2NiX3NldHVwX3NpbXBsZSh0eXBlX2RhdGEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcC90Yy5jLTI2My1cXHRcXHRcXHRcXHRcXHRcXHQgIFxcdTAwMjZtbHg1ZV9yZXBfYmxvY2tfZnRfY2JfbGlzdCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Y190dW5fZ2VuZXZlLmM9NjQ9c3RhdGljIGludCBtbHg1ZV90Y190dW5faW5pdF9lbmNhcF9hdHRyX2dlbmV2ZShzdHJ1Y3QgbmV0X2RldmljZSAqdHVubmVsX2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Y190dW5fZ2VuZXZlLmMtNzAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjX3R1bl9nZW5ldmUuYzo3MTpcXHQvKiBSZWZvcm1hdCB0eXBlIGZvciBHRU5FVkUgZW5jYXAgaXMgc2ltaWxhciB0byBWWExBTjpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGNfdHVuX2dlbmV2ZS5jLTcyLVxcdCAqIGluIGJvdGggY2FzZXMgdGhlIEhXIGFkZHMgaW4gdGhlIHNhbWUgcGxhY2UgYVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3hkcC5jPTIwMz1lbnVtIG1seDVfcnNzX2hhc2hfdHlwZSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4veGRwLmMtMjIzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi94ZHAuYzoyMjQ6LyogSW52YWxpZCBjb21iaW5hdGlvbnMgd2lsbCBzaW1wbHkgcmV0dXJuIHplcm8sIGFsbG93cyBubyBib3VuZGFyeSBjaGVja3MgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4veGRwLmMtMjI1LXN0YXRpYyBjb25zdCBlbnVtIHhkcF9yc3NfaGFzaF90eXBlIG1seDVfeGRwX3Jzc190eXBlW1JTU19UWVBFX01BWF9UQUJMRV0gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jPTM5Nzg9c3RhdGljIGludCBtbHg1ZV9zZXR1cF90Y19tcXByaW8oc3RydWN0IG1seDVlX3ByaXYgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jLTM5ODEtXFx0LyogTVFQUklPIGlzIGFub3RoZXIgdG9wbGV2ZWwgcWRpc2MgdGhhdCBjYW4ndCBiZSBhdHRhY2hlZFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmM6Mzk4MjpcXHQgKiBzaW11bHRhbmVvdXNseSB3aXRoIHRoZSBvZmZsb2FkZWQgSFRCLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMtMzk4My1cXHQgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmM9NDAwMj1zdGF0aWMgaW50IG1seDVlX3NldHVwX3RjKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGVudW0gdGNfc2V0dXBfdHlwZSB0eXBlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYy00MDIwLVxcdFxcdGYtXFx1MDAzZXVubG9ja2VkX2RyaXZlcl9jYiA9IHRydWU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYzo0MDIxOlxcdFxcdHJldHVybiBmbG93X2Jsb2NrX2NiX3NldHVwX3NpbXBsZSh0eXBlX2RhdGEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYy00MDIyLVxcdFxcdFxcdFxcdFxcdFxcdCAgXFx1MDAyNm1seDVlX2Jsb2NrX2NiX2xpc3QsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jPTU1MzY9c3RhdGljIHZvaWQgbWx4NWVfZ2V0X2Jhc2Vfc3RhdHMoc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMtNTYyNC1cXHQgKiAgICAtICBiZWVuIHNodXRkb3duIGFuZCBzZXQgdG8gTlVMTCwgb3JcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jOjU2MjU6XFx0ICogICAgLSAgc2ltcGx5IGRpc2FibGVkIChiaXQgdW5zZXQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYy01NjI2LVxcdCAqXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jPTU3NTg9c3RhdGljIGludCBtbHg1ZV9xdWV1ZV9zdG9wKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHZvaWQgKm9sZHEsIGludCBxdWV1ZV9pbmRleClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jLTU3NTkte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmM6NTc2MDpcXHQvKiBJbiBtbHg1IGEgdHhxIGNhbm5vdCBiZSBzaW1wbHkgc3RvcHBlZCBpbiBpc29sYXRpb24sIG9ubHkgcmVzdGFydGVkLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMtNTc2MS1cXHQgKiBtbHg1ZV9xdWV1ZV9zdGFydCBkb2VzIG5vdCBmYWlsLCB3ZSBzdG9wIHRoZSBvbGQgcXVldWUgdGhlcmUuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fcnguYz0xMzY1PXN0YXRpYyBpbmxpbmUgdm9pZCBtbHg1ZV9oYW5kbGVfY3N1bShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3J4LmMtMTM5My1cXHQgKiBEZXRlY3RpbmcgdGhlc2UgcGFkZGVkIGZyYW1lcyByZXF1aXJlcyB0byB2ZXJpZnkgYW5kIHBhcnNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3J4LmM6MTM5NDpcXHQgKiBJUCBoZWFkZXJzLCBzbyB3ZSBzaW1wbHkgZm9yY2UgYWxsIHRob3NlIHNtYWxsIGZyYW1lcyB0byBiZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9yeC5jLTEzOTUtXFx0ICogQ0hFQ0tTVU1fVU5ORUNFU1NBUlkgZXZlbiBpZiB0aGV5IGFyZSBub3QgcGFkZGVkLlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2hfb2ZmbG9hZHMuYz04Nj1tbHg1X2Vzd2l0Y2hfc2V0X3J1bGVfZmxvd19zb3VyY2Uoc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2hfb2ZmbG9hZHMuYy0xMDQtLyogQWN0dWFsbHkgb25seSB0aGUgdXBwZXIgMTYgYml0cyBvZiByZWcgYzAgbmVlZCB0byBiZSBjbGVhcmVkLCBidXQgdGhlIGxvd2VyIDE2IGJpdHNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaF9vZmZsb2Fkcy5jOjEwNTogKiBhcmUgbm90IG5lZWRlZCBhcyB3ZWxsIGluIHRoZSBmb2xsb3dpbmcgcHJvY2Vzcy4gU28gY2xlYXIgdGhlbSBhbGwgZm9yIHNpbXBsaWNpdHkuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2hfb2ZmbG9hZHMuYy0xMDYtICovXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGliL2NyeXB0by5jPTQ1ND1zdGF0aWMgaW50IG1seDVfY3J5cHRvX2Rla19wb29sX3B1c2goc3RydWN0IG1seDVfY3J5cHRvX2Rla19wb29sICpwb29sLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xpYi9jcnlwdG8uYy00NzYtICogaHdlaWdodF9sb25nKG5lZWRfc3luYyBYT1IgaW5fdXNlKSwgYW5kIHRoZSBuZWVkX3N5bmMgYml0cyBjYW4gYmUgcmVzZXRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGliL2NyeXB0by5jOjQ3NzogKiBieSBzaW1wbHkgY29weWluZyBmcm9tIGluX3VzZSBiaXRzLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9saWIvY3J5cHRvLmMtNDc4LSAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xpYi9zZC5jPTc1NT1zdGF0aWMgc3NpemVfdCBkZXZfcmVhZChzdHJ1Y3QgZmlsZSAqZmlscCwgY2hhciBfX3VzZXIgKmJ1Ziwgc2l6ZV90IGNvdW50LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xpYi9zZC5jLTc2NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGliL3NkLmM6NzY2OlxcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcihidWYsIGNvdW50LCBwb3MsIHRidWYsIHJldCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xpYi9zZC5jLTc2Ny19XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGliL3NkLmM9NzY5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGRldl9mb3BzID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9saWIvc2QuYy03NzAtXFx0Lm93bmVyXFx0PSBUSElTX01PRFVMRSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGliL3NkLmM6NzcxOlxcdC5vcGVuXFx0PSBzaW1wbGVfb3BlbixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGliL3NkLmMtNzcyLVxcdC5yZWFkXFx0PSBkZXZfcmVhZCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM9Njg9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM6Njk6aHdzX2J3Y19tYXRjaGVyX21vdmVfYWxsX3NpbXBsZShzdHJ1Y3QgbWx4NWh3c19id2NfbWF0Y2hlciAqYndjX21hdGNoZXIpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy03MC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jPTE2Nj1zdGF0aWMgaW50IGh3c19id2NfbWF0Y2hlcl9tb3ZlX2FsbChzdHJ1Y3QgbWx4NWh3c19id2NfbWF0Y2hlciAqYndjX21hdGNoZXIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jLTE2OS1cXHRjYXNlIE1MWDVIV1NfQldDX01BVENIRVJfU0lNUExFOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM6MTcwOlxcdFxcdHJldHVybiBod3NfYndjX21hdGNoZXJfbW92ZV9hbGxfc2ltcGxlKGJ3Y19tYXRjaGVyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jLTE3MS1cXHRjYXNlIE1MWDVIV1NfQldDX01BVENIRVJfQ09NUExFWF9GSVJTVDpcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM9MTgwPXN0YXRpYyBpbnQgaHdzX2J3Y19tYXRjaGVyX21vdmUoc3RydWN0IG1seDVod3NfYndjX21hdGNoZXIgKmJ3Y19tYXRjaGVyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy0yMjUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYzoyMjY6aW50IG1seDVod3NfYndjX21hdGNoZXJfY3JlYXRlX3NpbXBsZShzdHJ1Y3QgbWx4NWh3c19id2NfbWF0Y2hlciAqYndjX21hdGNoZXIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy0yMjctXFx0XFx0XFx0XFx0ICAgICAgc3RydWN0IG1seDVod3NfdGFibGUgKnRhYmxlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYz0zMjA9bWx4NWh3c19id2NfbWF0Y2hlcl9jcmVhdGUoc3RydWN0IG1seDVod3NfdGFibGUgKnRhYmxlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy0zNTItXFx0ZWxzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM6MzUzOlxcdFxcdHJldCA9IG1seDVod3NfYndjX21hdGNoZXJfY3JlYXRlX3NpbXBsZShid2NfbWF0Y2hlcixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jLTM1NC1cXHRcXHRcXHRcXHRcXHRcXHRcXHR0YWJsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtMzY5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM6MzcwOmludCBtbHg1aHdzX2J3Y19tYXRjaGVyX2Rlc3Ryb3lfc2ltcGxlKHN0cnVjdCBtbHg1aHdzX2J3Y19tYXRjaGVyICpid2NfbWF0Y2hlcilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jLTM3MS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jPTM4Nz1pbnQgbWx4NWh3c19id2NfbWF0Y2hlcl9kZXN0cm95KHN0cnVjdCBtbHg1aHdzX2J3Y19tYXRjaGVyICpid2NfbWF0Y2hlcilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtMzk5LVxcdGVsc2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jOjQwMDpcXHRcXHRtbHg1aHdzX2J3Y19tYXRjaGVyX2Rlc3Ryb3lfc2ltcGxlKGJ3Y19tYXRjaGVyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jLTQwMS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM9NjA4PXN0YXRpYyBpbnQgaHdzX2J3Y19ydWxlX2NudF9kZWNfd2l0aF9zaHJpbmsoc3RydWN0IG1seDVod3NfYndjX3J1bGUgKmJ3Y19ydWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy02NDAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYzo2NDE6aW50IG1seDVod3NfYndjX3J1bGVfZGVzdHJveV9zaW1wbGUoc3RydWN0IG1seDVod3NfYndjX3J1bGUgKmJ3Y19ydWxlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtNjQyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM9NjY1PWludCBtbHg1aHdzX2J3Y19ydWxlX2Rlc3Ryb3koc3RydWN0IG1seDVod3NfYndjX3J1bGUgKmJ3Y19ydWxlKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy02NzMtXFx0ZWxzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM6Njc0OlxcdFxcdHJldCA9IG1seDVod3NfYndjX3J1bGVfZGVzdHJveV9zaW1wbGUoYndjX3J1bGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtNjc1LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYz0xMDAwPXN0YXRpYyBpbnQgaHdzX2J3Y19ydWxlX2NudF9pbmNfd2l0aF9yZWhhc2goc3RydWN0IG1seDVod3NfYndjX3J1bGUgKmJ3Y19ydWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy0xMDM1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM6MTAzNjppbnQgbWx4NWh3c19id2NfcnVsZV9jcmVhdGVfc2ltcGxlKHN0cnVjdCBtbHg1aHdzX2J3Y19ydWxlICpid2NfcnVsZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jLTEwMzctXFx0XFx0XFx0XFx0ICAgdTMyICptYXRjaF9wYXJhbSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM9MTEzOT1tbHg1aHdzX2J3Y19ydWxlX2NyZWF0ZShzdHJ1Y3QgbWx4NWh3c19id2NfbWF0Y2hlciAqYndjX21hdGNoZXIsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jLTExNzAtXFx0ZWxzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM6MTE3MTpcXHRcXHRyZXQgPSBtbHg1aHdzX2J3Y19ydWxlX2NyZWF0ZV9zaW1wbGUoYndjX3J1bGUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy0xMTcyLVxcdFxcdFxcdFxcdFxcdFxcdCAgICAgcGFyYW1zLVxcdTAwM2VtYXRjaF9idWYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5oPTIxPWVudW0gbWx4NWh3c19id2NfbWF0Y2hlcl90eXBlIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmgtMjktXFx0LyogQSBzdWJtYXRjaGVyIHRoYXQgaXMgcGFydCBvZiBhIGNvbXBsZXggbWF0Y2hlci4gRm9yIG1vc3QgcHVycG9zZXNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5oOjMwOlxcdCAqIHRoZXNlIGFyZSB0cmVhdGVkIGFzIHNpbXBsZSBtYXRjaGVycywgZXhjZXB0IHdoZW4gaXQgY29tZXMgdG8gbW92aW5nXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuaC0zMS1cXHQgKiBydWxlcyBkdXJpbmcgcmVzaXplLlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuaD03MD1pbnRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5oOjcxOm1seDVod3NfYndjX21hdGNoZXJfY3JlYXRlX3NpbXBsZShzdHJ1Y3QgbWx4NWh3c19id2NfbWF0Y2hlciAqYndjX21hdGNoZXIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuaC03Mi1cXHRcXHRcXHRcXHQgIHN0cnVjdCBtbHg1aHdzX3RhYmxlICp0YWJsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmgtNzctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuaDo3ODppbnQgbWx4NWh3c19id2NfbWF0Y2hlcl9kZXN0cm95X3NpbXBsZShzdHJ1Y3QgbWx4NWh3c19id2NfbWF0Y2hlciAqYndjX21hdGNoZXIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmgtNzktXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5oPTgyPXZvaWQgbWx4NWh3c19id2NfcnVsZV9mcmVlKHN0cnVjdCBtbHg1aHdzX2J3Y19ydWxlICpid2NfcnVsZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuaC04My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5oOjg0OmludCBtbHg1aHdzX2J3Y19ydWxlX2NyZWF0ZV9zaW1wbGUoc3RydWN0IG1seDVod3NfYndjX3J1bGUgKmJ3Y19ydWxlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmgtODUtXFx0XFx0XFx0XFx0ICAgdTMyICptYXRjaF9wYXJhbSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmgtODktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuaDo5MDppbnQgbWx4NWh3c19id2NfcnVsZV9kZXN0cm95X3NpbXBsZShzdHJ1Y3QgbWx4NWh3c19id2NfcnVsZSAqYndjX3J1bGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmgtOTEtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmM9MTk1PXN0YXRpYyB2b2lkIGh3c19hdm9pZF9pcHY2X3NwbGl0KHN0cnVjdCBtbHg1aHdzX21hdGNoX3BhcmFtZXRlcnMgKm9yaWcsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmMtMjE2LSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYzoyMTc6c3RhdGljIGludCBod3NfZ2V0X3NpbXBsZV9wYXJhbXMoc3RydWN0IG1seDVod3NfY29udGV4dCAqY3R4LCB1OCBtYXRjaF9jcml0ZXJpYSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmMtMjE4LVxcdFxcdFxcdFxcdCBzdHJ1Y3QgbWx4NWh3c19tYXRjaF9wYXJhbWV0ZXJzICpvcmlnLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTI2Ni1cXHRcXHRcXHQgKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYzoyNjc6XFx0XFx0XFx0ICogRm9yIG5vdywga2VlcCB0aGUgY29kZSBzaW1wbGUuIFRoaXMgcmVzdWx0cyBpbiBhblxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYy0yNjgtXFx0XFx0XFx0ICogZXh0cmEgc3VibWF0Y2hlciBpbiBzb21lIGNhc2VzLCBidXQgaXQncyBnb29kIGVub3VnaC5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYz0yOTk9aHdzX2J3Y19tYXRjaGVyX3NwbGl0X21hc2soc3RydWN0IG1seDVod3NfY29udGV4dCAqY3R4LCB1OCBtYXRjaF9jcml0ZXJpYSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYy0zMjktXFx0XFx0fVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYzozMzA6XFx0XFx0cmV0ID0gaHdzX2dldF9zaW1wbGVfcGFyYW1zKGN0eCwgbWF0Y2hfY3JpdGVyaWEsIFxcdTAwMjZtYXNrX2NvcHksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTMzMS1cXHRcXHRcXHRcXHRcXHQgICAgXFx1MDAyNnN1Ym1hc2tzW2ldKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYz0zODg9c3RhdGljIGludCBod3Nfc3VibWF0Y2hlcl9pbml0X2ZpcnN0KHN0cnVjdCBtbHg1aHdzX2J3Y19tYXRjaGVyICpjbWF0Y2hlcixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYy00MTAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jOjQxMTpcXHRyZXQgPSBtbHg1aHdzX2J3Y19tYXRjaGVyX2NyZWF0ZV9zaW1wbGUoc3VibS1cXHUwMDNlYndjX21hdGNoZXIsIHN1Ym0tXFx1MDAzZXRibCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmMtNDEyLVxcdFxcdFxcdFxcdFxcdFxcdHByaW9yaXR5LCBtYXRjaF9jcml0ZXJpYSwgbWFzayxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYy00MjctZGVzdHJveV9tYXRjaGVyOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYzo0Mjg6XFx0bWx4NWh3c19id2NfbWF0Y2hlcl9kZXN0cm95X3NpbXBsZShzdWJtLVxcdTAwM2Vid2NfbWF0Y2hlcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTQyOS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYz00MzM9c3RhdGljIGludCBod3Nfc3VibWF0Y2hlcl9pbml0KHN0cnVjdCBtbHg1aHdzX2J3Y19tYXRjaGVyICpjbWF0Y2hlciwgaW50IGlkeCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYy00ODEtXFx0ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jOjQ4MjpcXHRyZXQgPSBtbHg1aHdzX2J3Y19tYXRjaGVyX2NyZWF0ZV9zaW1wbGUoc3VibS1cXHUwMDNlYndjX21hdGNoZXIsIHN1Ym0tXFx1MDAzZXRibCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmMtNDgzLVxcdFxcdFxcdFxcdFxcdFxcdHByaW9yaXR5LCBtYXRjaF9jcml0ZXJpYSwgbWFzayxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYy00OTktZGVzdHJveV9tYXRjaGVyOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYzo1MDA6XFx0bWx4NWh3c19id2NfbWF0Y2hlcl9kZXN0cm95X3NpbXBsZShzdWJtLVxcdTAwM2Vid2NfbWF0Y2hlcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTUwMS1mcmVlX21hdGNoZXI6XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmM9NTExPXN0YXRpYyB2b2lkIGh3c19zdWJtYXRjaGVyX2Rlc3Ryb3koc3RydWN0IG1seDVod3NfYndjX21hdGNoZXIgKmNtYXRjaGVyLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTUyMi1cXHRpZiAoc3VibS1cXHUwMDNlYndjX21hdGNoZXIpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmM6NTIzOlxcdFxcdG1seDVod3NfYndjX21hdGNoZXJfZGVzdHJveV9zaW1wbGUoc3VibS1cXHUwMDNlYndjX21hdGNoZXIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYy01MjQtXFx0XFx0aWYgKGlkeClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYz02Njc9X19tdXN0X2hvbGQoXFx1MDAyNnN1Ym0tXFx1MDAzZWhhc2hfbG9jaylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYy03MDEtXFx0XFx0ICogTm90ZSB0aGF0IHdlIGRvbid0IGhhdmUgYW55IGluZGljYXRpb24gZm9yIHRoZSBydWxlIGNyZWF0aW9uXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jOjcwMjpcXHRcXHQgKiBwcm9jZXNzIHRoYXQgYSBydWxlIHdpdGggc2ltaWxhciBtYXRjaGluZyBwYXJhbXMgYWxyZWFkeVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYy03MDMtXFx0XFx0ICogZXhpc3RzIC0gbm8gaGFybSBkb25lIHdoZW4gdGhpcyBydWxlIGlzIGJlIG92ZXJ3cml0dGVuIGJ5XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmM9NzQ5PXN0YXRpYyBpbnQgaHdzX2NvbXBsZXhfc3VicnVsZV9jcmVhdGUoc3RydWN0IG1seDVod3NfYndjX21hdGNoZXIgKmNtYXRjaGVyLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTc4Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmM6NzgzOlxcdHJldCA9IG1seDVod3NfYndjX3J1bGVfY3JlYXRlX3NpbXBsZShzdWJydWxlLCBtYXRjaF9wYXJhbXMsIGFjdGlvbnMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTc4NC1cXHRcXHRcXHRcXHRcXHQgICAgIGZsb3dfc291cmNlLCBid2NfcXVldWVfaWR4KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYz03OTk9c3RhdGljIGludCBod3NfY29tcGxleF9zdWJydWxlX2Rlc3Ryb3koc3RydWN0IG1seDVod3NfYndjX3J1bGUgKmJ3Y19ydWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTgxNi1cXHRid2NfcnVsZS1cXHUwMDNlcnVsZS1cXHUwMDNlc2tpcF9kZWxldGUgPSAhaXNfbGFzdF9ydWxlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYzo4MTc6XFx0cmV0ID0gbWx4NWh3c19id2NfcnVsZV9kZXN0cm95X3NpbXBsZShid2NfcnVsZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTgxOC1cXHRpZiAodW5saWtlbHkocmV0KSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYz05Njk9aW50IG1seDVod3NfYndjX21hdGNoZXJfY29tcGxleF9tb3ZlKHN0cnVjdCBtbHg1aHdzX2J3Y19tYXRjaGVyICpid2NfbWF0Y2hlcilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYy05OTMtXFx0XFx0bGlzdF9mb3JfZWFjaF9lbnRyeSh0bXBfYndjX3J1bGUsIHJ1bGVzX2xpc3QsIGxpc3Rfbm9kZSkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYzo5OTQ6XFx0XFx0XFx0LyogQ2hlY2sgaWYgYSBydWxlIHdpdGggc2ltaWxhciB0YWcgaGFzIGFscmVhZHlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmMtOTk1LVxcdFxcdFxcdCAqIGJlZW4gbW92ZWQuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4Lmg9MzI9c3RydWN0IG1seDVod3NfYndjX2NvbXBsZXhfc3VibWF0Y2hlciB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmgtNDAtXFx0c3RydWN0IG1seDVod3NfYWN0aW9uICphY3Rpb25fdGJsO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguaDo0MTpcXHQvKiBUaGlzIHN1Ym1hdGNoZXIncyBzaW1wbGUgbWF0Y2hlci4gVGhlIGZpcnN0IHN1Ym1hdGNoZXIgcG9pbnRzIHRvIHRoZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguaC00Mi1cXHQgKiBvdXRlciAoY29tcGxleCkgbWF0Y2hlci5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jPTcyMT1od3NfZGVmaW5lcl9jb252X291dGVyKHN0cnVjdCBtbHg1aHdzX2RlZmluZXJfY29udl9kYXRhICpjZCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTgxNC1cXHRcXHRIV1NfU0VUX0hEUihmYywgbWF0Y2hfcGFyYW0sIElQVjZfU1JDXzEyN185Nl9PLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jOjgxNTpcXHRcXHRcXHQgICAgb3V0ZXJfaGVhZGVycy5zcmNfaXB2NF9zcmNfaXB2Ni5pcHY2X3NpbXBsZV9sYXlvdXQuaXB2Nl8xMjdfOTYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtODE2LVxcdFxcdFxcdCAgICBpcHY2X3NyY19vdXRlci5pcHY2X2FkZHJlc3NfMTI3Xzk2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy04MTctXFx0XFx0SFdTX1NFVF9IRFIoZmMsIG1hdGNoX3BhcmFtLCBJUFY2X1NSQ185NV82NF9PLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jOjgxODpcXHRcXHRcXHQgICAgb3V0ZXJfaGVhZGVycy5zcmNfaXB2NF9zcmNfaXB2Ni5pcHY2X3NpbXBsZV9sYXlvdXQuaXB2Nl85NV82NCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy04MTktXFx0XFx0XFx0ICAgIGlwdjZfc3JjX291dGVyLmlwdjZfYWRkcmVzc185NV82NCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtODIwLVxcdFxcdEhXU19TRVRfSERSKGZjLCBtYXRjaF9wYXJhbSwgSVBWNl9TUkNfNjNfMzJfTyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYzo4MjE6XFx0XFx0XFx0ICAgIG91dGVyX2hlYWRlcnMuc3JjX2lwdjRfc3JjX2lwdjYuaXB2Nl9zaW1wbGVfbGF5b3V0LmlwdjZfNjNfMzIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtODIyLVxcdFxcdFxcdCAgICBpcHY2X3NyY19vdXRlci5pcHY2X2FkZHJlc3NfNjNfMzIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTgyMy1cXHRcXHRIV1NfU0VUX0hEUihmYywgbWF0Y2hfcGFyYW0sIElQVjZfU1JDXzMxXzBfTyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYzo4MjQ6XFx0XFx0XFx0ICAgIG91dGVyX2hlYWRlcnMuc3JjX2lwdjRfc3JjX2lwdjYuaXB2Nl9zaW1wbGVfbGF5b3V0LmlwdjZfMzFfMCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy04MjUtXFx0XFx0XFx0ICAgIGlwdjZfc3JjX291dGVyLmlwdjZfYWRkcmVzc18zMV8wKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTgyNy1cXHRcXHRIV1NfU0VUX0hEUihmYywgbWF0Y2hfcGFyYW0sIElQVjZfRFNUXzEyN185Nl9PLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jOjgyODpcXHRcXHRcXHQgICAgb3V0ZXJfaGVhZGVycy5kc3RfaXB2NF9kc3RfaXB2Ni5pcHY2X3NpbXBsZV9sYXlvdXQuaXB2Nl8xMjdfOTYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtODI5LVxcdFxcdFxcdCAgICBpcHY2X2RzdF9vdXRlci5pcHY2X2FkZHJlc3NfMTI3Xzk2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy04MzAtXFx0XFx0SFdTX1NFVF9IRFIoZmMsIG1hdGNoX3BhcmFtLCBJUFY2X0RTVF85NV82NF9PLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jOjgzMTpcXHRcXHRcXHQgICAgb3V0ZXJfaGVhZGVycy5kc3RfaXB2NF9kc3RfaXB2Ni5pcHY2X3NpbXBsZV9sYXlvdXQuaXB2Nl85NV82NCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy04MzItXFx0XFx0XFx0ICAgIGlwdjZfZHN0X291dGVyLmlwdjZfYWRkcmVzc185NV82NCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtODMzLVxcdFxcdEhXU19TRVRfSERSKGZjLCBtYXRjaF9wYXJhbSwgSVBWNl9EU1RfNjNfMzJfTyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYzo4MzQ6XFx0XFx0XFx0ICAgIG91dGVyX2hlYWRlcnMuZHN0X2lwdjRfZHN0X2lwdjYuaXB2Nl9zaW1wbGVfbGF5b3V0LmlwdjZfNjNfMzIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtODM1LVxcdFxcdFxcdCAgICBpcHY2X2RzdF9vdXRlci5pcHY2X2FkZHJlc3NfNjNfMzIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTgzNi1cXHRcXHRIV1NfU0VUX0hEUihmYywgbWF0Y2hfcGFyYW0sIElQVjZfRFNUXzMxXzBfTyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYzo4Mzc6XFx0XFx0XFx0ICAgIG91dGVyX2hlYWRlcnMuZHN0X2lwdjRfZHN0X2lwdjYuaXB2Nl9zaW1wbGVfbGF5b3V0LmlwdjZfMzFfMCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy04MzgtXFx0XFx0XFx0ICAgIGlwdjZfZHN0X291dGVyLmlwdjZfYWRkcmVzc18zMV8wKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTg0MS1cXHRcXHRIV1NfU0VUX0hEUihmYywgbWF0Y2hfcGFyYW0sIElQVjRfU1JDX08sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmM6ODQyOlxcdFxcdFxcdCAgICBvdXRlcl9oZWFkZXJzLnNyY19pcHY0X3NyY19pcHY2LmlwdjZfc2ltcGxlX2xheW91dC5pcHY2XzMxXzAsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtODQzLVxcdFxcdFxcdCAgICBpcHY0X3NyY19kZXN0X291dGVyLnNvdXJjZV9hZGRyZXNzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTg0NS1cXHRcXHRIV1NfU0VUX0hEUihmYywgbWF0Y2hfcGFyYW0sIElQVjRfRFNUX08sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmM6ODQ2OlxcdFxcdFxcdCAgICBvdXRlcl9oZWFkZXJzLmRzdF9pcHY0X2RzdF9pcHY2LmlwdjZfc2ltcGxlX2xheW91dC5pcHY2XzMxXzAsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtODQ3LVxcdFxcdFxcdCAgICBpcHY0X3NyY19kZXN0X291dGVyLmRlc3RpbmF0aW9uX2FkZHJlc3MpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmM9ODk4PWh3c19kZWZpbmVyX2NvbnZfaW5uZXIoc3RydWN0IG1seDVod3NfZGVmaW5lcl9jb252X2RhdGEgKmNkLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtOTkwLVxcdFxcdEhXU19TRVRfSERSKGZjLCBtYXRjaF9wYXJhbSwgSVBWNl9TUkNfMTI3Xzk2X0ksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmM6OTkxOlxcdFxcdFxcdCAgICBpbm5lcl9oZWFkZXJzLnNyY19pcHY0X3NyY19pcHY2LmlwdjZfc2ltcGxlX2xheW91dC5pcHY2XzEyN185NixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy05OTItXFx0XFx0XFx0ICAgIGlwdjZfc3JjX2lubmVyLmlwdjZfYWRkcmVzc18xMjdfOTYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTk5My1cXHRcXHRIV1NfU0VUX0hEUihmYywgbWF0Y2hfcGFyYW0sIElQVjZfU1JDXzk1XzY0X0ksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmM6OTk0OlxcdFxcdFxcdCAgICBpbm5lcl9oZWFkZXJzLnNyY19pcHY0X3NyY19pcHY2LmlwdjZfc2ltcGxlX2xheW91dC5pcHY2Xzk1XzY0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTk5NS1cXHRcXHRcXHQgICAgaXB2Nl9zcmNfaW5uZXIuaXB2Nl9hZGRyZXNzXzk1XzY0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy05OTYtXFx0XFx0SFdTX1NFVF9IRFIoZmMsIG1hdGNoX3BhcmFtLCBJUFY2X1NSQ182M18zMl9JLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jOjk5NzpcXHRcXHRcXHQgICAgaW5uZXJfaGVhZGVycy5zcmNfaXB2NF9zcmNfaXB2Ni5pcHY2X3NpbXBsZV9sYXlvdXQuaXB2Nl82M18zMixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy05OTgtXFx0XFx0XFx0ICAgIGlwdjZfc3JjX2lubmVyLmlwdjZfYWRkcmVzc182M18zMik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtOTk5LVxcdFxcdEhXU19TRVRfSERSKGZjLCBtYXRjaF9wYXJhbSwgSVBWNl9TUkNfMzFfMF9JLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jOjEwMDA6XFx0XFx0XFx0ICAgIGlubmVyX2hlYWRlcnMuc3JjX2lwdjRfc3JjX2lwdjYuaXB2Nl9zaW1wbGVfbGF5b3V0LmlwdjZfMzFfMCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy0xMDAxLVxcdFxcdFxcdCAgICBpcHY2X3NyY19pbm5lci5pcHY2X2FkZHJlc3NfMzFfMCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy0xMDAzLVxcdFxcdEhXU19TRVRfSERSKGZjLCBtYXRjaF9wYXJhbSwgSVBWNl9EU1RfMTI3Xzk2X0ksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmM6MTAwNDpcXHRcXHRcXHQgICAgaW5uZXJfaGVhZGVycy5kc3RfaXB2NF9kc3RfaXB2Ni5pcHY2X3NpbXBsZV9sYXlvdXQuaXB2Nl8xMjdfOTYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtMTAwNS1cXHRcXHRcXHQgICAgaXB2Nl9kc3RfaW5uZXIuaXB2Nl9hZGRyZXNzXzEyN185Nik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtMTAwNi1cXHRcXHRIV1NfU0VUX0hEUihmYywgbWF0Y2hfcGFyYW0sIElQVjZfRFNUXzk1XzY0X0ksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmM6MTAwNzpcXHRcXHRcXHQgICAgaW5uZXJfaGVhZGVycy5kc3RfaXB2NF9kc3RfaXB2Ni5pcHY2X3NpbXBsZV9sYXlvdXQuaXB2Nl85NV82NCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy0xMDA4LVxcdFxcdFxcdCAgICBpcHY2X2RzdF9pbm5lci5pcHY2X2FkZHJlc3NfOTVfNjQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTEwMDktXFx0XFx0SFdTX1NFVF9IRFIoZmMsIG1hdGNoX3BhcmFtLCBJUFY2X0RTVF82M18zMl9JLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jOjEwMTA6XFx0XFx0XFx0ICAgIGlubmVyX2hlYWRlcnMuZHN0X2lwdjRfZHN0X2lwdjYuaXB2Nl9zaW1wbGVfbGF5b3V0LmlwdjZfNjNfMzIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtMTAxMS1cXHRcXHRcXHQgICAgaXB2Nl9kc3RfaW5uZXIuaXB2Nl9hZGRyZXNzXzYzXzMyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy0xMDEyLVxcdFxcdEhXU19TRVRfSERSKGZjLCBtYXRjaF9wYXJhbSwgSVBWNl9EU1RfMzFfMF9JLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jOjEwMTM6XFx0XFx0XFx0ICAgIGlubmVyX2hlYWRlcnMuZHN0X2lwdjRfZHN0X2lwdjYuaXB2Nl9zaW1wbGVfbGF5b3V0LmlwdjZfMzFfMCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy0xMDE0LVxcdFxcdFxcdCAgICBpcHY2X2RzdF9pbm5lci5pcHY2X2FkZHJlc3NfMzFfMCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy0xMDE3LVxcdFxcdEhXU19TRVRfSERSKGZjLCBtYXRjaF9wYXJhbSwgSVBWNF9TUkNfSSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYzoxMDE4OlxcdFxcdFxcdCAgICBpbm5lcl9oZWFkZXJzLnNyY19pcHY0X3NyY19pcHY2LmlwdjZfc2ltcGxlX2xheW91dC5pcHY2XzMxXzAsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtMTAxOS1cXHRcXHRcXHQgICAgaXB2NF9zcmNfZGVzdF9pbm5lci5zb3VyY2VfYWRkcmVzcyk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy0xMDIxLVxcdFxcdEhXU19TRVRfSERSKGZjLCBtYXRjaF9wYXJhbSwgSVBWNF9EU1RfSSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYzoxMDIyOlxcdFxcdFxcdCAgICBpbm5lcl9oZWFkZXJzLmRzdF9pcHY0X2RzdF9pcHY2LmlwdjZfc2ltcGxlX2xheW91dC5pcHY2XzMxXzAsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtMTAyMy1cXHRcXHRcXHQgICAgaXB2NF9zcmNfZGVzdF9pbm5lci5kZXN0aW5hdGlvbl9hZGRyZXNzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS93Yy5jLTEyLSNpbmNsdWRlIFxcdTAwM2Nhc20vbmVvbi5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS93Yy5jOjEzOiNpbmNsdWRlIFxcdTAwM2Nhc20vc2ltZC5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS93Yy5jLTE0LSNlbmRpZlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3djLmM9MjY0PXN0YXRpYyB2b2lkIG1seDVfaW93cml0ZTY0X2NvcHkoc3RydWN0IG1seDVfd2Nfc3EgKnNxLCBfX2JlMzIgbW1pb193cWVbMTZdLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3djLmMtMjY4LVxcdGlmIChjcHVfaGFzX25lb24oKSkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS93Yy5jOjI2OTpcXHRcXHRzY29wZWRfa3NpbWQoKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3djLmMtMjcwLVxcdFxcdFxcdGFzbSB2b2xhdGlsZShcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvd2MuYzoyNzE6XFx0XFx0XFx0XFx0XFxcIi5hcmNoX2V4dGVuc2lvbiBzaW1kXFxcXG5cXFxcdFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvd2MuYy0yNzItXFx0XFx0XFx0XFx0XFxcImxkMSB7djAuMTZiLCB2MS4xNmIsIHYyLjE2YiwgdjMuMTZifSwgWyUwXVxcXFxuXFxcXHRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDE4OjEyOjA5LjkzMTIyMzIyOVoiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMTI3NTUwNzEyNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBUaG91Z2h0IFByb2Nlc3Mgb24gUmVhY2hpbmcgTUxYNSB3aXRoIFN5emthbGxlcioqXG5cbk9rYXksIHNvIEknbSB0aGlua2luZyBhYm91dCBob3cgc3l6a2FsbGVyIG1pZ2h0IGJlIGFibGUgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgYE1MWDVfU0ZgIGFuZCBgTUxYNV9TRl9NQU5BR0VSYCBzdWJmdW5jdGlvbnMuIFRoZXNlIGFyZSBsaWtlIFNSSU9WIFZGcywgYnV0IHdpdGhvdXQgdGhlIFNSSU9WIHJlcXVpcmVtZW50LCBzdXBwb3J0aW5nIFJETUEsIG5ldGRldnMsIGFuZCB2ZHBhIGRldmljZXMuIFRoZSBxdWVzdGlvbiBpcywgY2FuIHN5emthbGxlciBldmVuICpjcmVhdGUqIHRoZXNlIHN1YmZ1bmN0aW9ucz9cblxuTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGxldmVyYWdlIHN5emthbGxlcidzIFBDSSBmdXp6ZXIsIHNwZWNpZmljYWxseSBgc3l6X3BjaV9lcGAuIFRoYXQgY3JlYXRlcyBhIGZha2UgUENJIGRldmljZSwgd2hpY2ggdGhlIG1seDUgZHJpdmVyIGNvdWxkIHRoZW4gcHJvYmUuIElmIHRoZSBkcml2ZXIgaW5pdGlhbGl6ZXMgZmFyIGVub3VnaCB0byByZWdpc3RlciBhIG5ldGRldmljZSwgdGhlbiBzeXprYWxsZXIgY291bGQgdGFsayB0byBpdCB2aWEgc3RhbmRhcmQgbmV0bGluayBvciBzb2NrZXQgQVBJcy4gQnV0LCB0aGVyZSdzIGEgcHJvYmxlbTogdGhlIG1seDUgZHJpdmVyIG5lZWRzIGNvbXBsZXggZmlybXdhcmUgY29tbWFuZHMgZHVyaW5nIGluaXRpYWxpemF0aW9uLiBBbmQsIGBzeXpfcGNpX2VwYCBkb2Vzbid0IGVtdWxhdGUgdGhhdCBmaXJtd2FyZS5cblxuU28sIGRvZXMgc3l6a2FsbGVyIGhhdmUgYW55IHdheSB0byBhY3R1YWxseSAqcmVhY2gqIG1seDU/IEknZCBsaWtlIHRvIGNoZWNrIGZvciBleGlzdGluZyBzeXprYWxsZXIgYnVncyBpbiBtbHg1LCBidXQgd2l0aG91dCBhY2Nlc3MgdG8gdGhlIGZ1bGwga2VybmVsIGhpc3RvcnksIEknbSBzdHVjay5cblxuVGhlIHByb21wdCBub3RlcywgXCJDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUuLi5cIiBJZiBtbHg1IGlzIGEgKnBoeXNpY2FsKiBkZXZpY2UgZHJpdmVyIGFuZCAqbm90KiBzb2Z0d2FyZS1lbXVsYXRlZCwgdGhlbiBpdCdzIGVmZmVjdGl2ZWx5IHVucmVhY2hhYmxlIGluIEdDRS9RRU1VIHVubGVzcyB0aGVyZSdzIGFuIGVtdWxhdG9yLiBBbmQsIHRoZXJlIGlzbid0IGEgYG1seDVfc2ltYCBvciBgbWx4NV9od3NpbWAgZXF1aXZhbGVudC5cblxuQnV0LCB0aGVyZSdzIGBuZXRkZXZzaW1gLiBUaGF0J3MgdXNlZCBmb3IgdGVzdGluZywgYnV0IGl0IGRvZXNuJ3QgdXRpbGl6ZSBtbHg1IGNvZGUuIFRoZW4sIHRoZXJlJ3MgYHN5el9wY2lfZXBgISBJdCBlbXVsYXRlcyAqc29mdHdhcmUqIGhhcmR3YXJlIC0gYSBQQ0kgZW5kcG9pbnQuIFNvLCBpZiBgc3l6X3BjaV9lcGAgY2FuIGVtdWxhdGUgbWx4NSwgdGhlbiBpdCAqaXMqIHJlYWNoYWJsZS4gQnV0IGhlcmUgY29tZXMgdGhlIHByb2JsZW06IGBzeXpfcGNpX2VwYCBkb2VzIG5vdCBlbXVsYXRlIHRoZSBmaXJtd2FyZS4gRHJpdmVycyByZXF1aXJpbmcgY29tcGxpY2F0ZWQgZmlybXdhcmUgaGFuZHNoYWtlcywgbGlrZSBtbHg1LCBpY2UsIGk0MGUsIHVzdWFsbHkgZmFpbCB3aXRoIGBzeXpfcGNpX2VwYCBiZWNhdXNlIHRoZSBmdXp6ZXIgY2FuJ3QgZ3Vlc3MgdGhlIGZpcm13YXJlJ3MgY29ycmVjdCByZXNwb25zZSBzZXF1ZW5jZS5cblxuV2FpdCBhIHNlY29uZCwgdGhlcmUgaXMgc29tZXRoaW5nIEkgaGF2ZSB0byBsb29rIGF0ISBUaGUgcGF0Y2gncyBhdXRob3IgaXMgYHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlYC4gXCJzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcIi4gVGhpcyBtZWFucyBzeXprYWxsZXIgKmRpZCogZmluZCBhIGJ1ZyEgSXQgaXMgYSBwYXRjaCB0aGF0IEkgYW0gcmV2aWV3aW5nISBUaGlzIHByb3ZlcyBpdCBpcyB0ZXN0aW5nIHRoaXMuXG5cbklmIHN5emthbGxlciBmb3VuZCBhIGJ1ZywgaG93PyBJcyB0aGVyZSBhIHZpcnR1YWwgbWx4NSBkZXZpY2UgaW4gUUVNVT8gTm8sIFFFTVUgZG9lc24ndCBoYXZlIGFuIHVwc3RyZWFtIG1seDUgZW11bGF0b3IuIE1heWJlIHN5emthbGxlciBydW5zIGJhcmUgbWV0YWwgd2l0aCBNZWxsYW5veCBjYXJkcz8gTm8sIHN5emthbGxlciBtb3N0bHkgcnVucyBpbiBHQ0UvUUVNVS5cblxuRG9lcyBzeXprYWxsZXIgKml0c2VsZiogaGF2ZSBhbiBtbHg1IGVtdWxhdG9yPyBJIHNob3VsZCBjaGVjayBpZiB0aGVyZSdzIGFueSBgbWx4NWAgZW11bGF0b3IgaW4gdGhlIGtlcm5lbC5cblxuXG4iLCJJbnB1dFRva2VucyI6Mzc3NjQsIk91dHB1dFRva2VucyI6NDIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3NTAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTg6MTI6MjEuMjA2NzQyNzY1WiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzcxNDg5NTYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibWx4NV9jb3JlX2RldlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTIzMjMgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jPTU4PXN0cnVjdCBtbHg1X2RtYV9wb29sIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTYxLVxcdHN0cnVjdCBsaXN0X2hlYWQgcGFnZV9saXN0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjYyOlxcdHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNjMtXFx0aW50IG5vZGU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYz03OT1zdHJ1Y3QgbWx4NV9kbWFfcG9vbF9zdGF0cyB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy04OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo5MDpzdGF0aWMgdm9pZCAqbWx4NV9kbWFfemFsbG9jX2NvaGVyZW50X25vZGUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy05MS1cXHRcXHRcXHRcXHRcXHQgICBzaXplX3Qgc2l6ZSwgZG1hX2FkZHJfdCAqZG1hX2hhbmRsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jPTEwOT1zdGF0aWMgdm9pZCBtbHg1X2RtYV9wb29sX2Rlc3Ryb3koc3RydWN0IG1seDVfZG1hX3Bvb2wgKnBvb2wpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0xMTQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MTE1OnN0YXRpYyBzdHJ1Y3QgbWx4NV9kbWFfcG9vbCAqbWx4NV9kbWFfcG9vbF9jcmVhdGUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0xMTYtXFx0XFx0XFx0XFx0XFx0XFx0ICBpbnQgbm9kZSwgdTggYmxvY2tfc2hpZnQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYz0xMzM9bWx4NV9kbWFfcG9vbF9wYWdlX2FsbG9jKHN0cnVjdCBtbHg1X2RtYV9wb29sICpwb29sKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMTYyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjE2MzpzdGF0aWMgdm9pZCBtbHg1X2RtYV9wb29sX3BhZ2VfZnJlZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTE2NC1cXHRcXHRcXHRcXHQgICAgc3RydWN0IG1seDVfZG1hX3Bvb2xfcGFnZSAqcGFnZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jPTI4Mz1zdGF0aWMgc3RydWN0IG1seDVfZnJhZ19idWZfbm9kZV9wb29scyAqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6Mjg0Om1seDVfZnJhZ19idWZfbm9kZV9wb29sc19jcmVhdGUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgaW50IG5vZGUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMjg1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jPTMwNz1tbHg1X2ZyYWdfYnVmX2RtYV9wb29sc19kZWJ1Z2ZzX3Nob3coc3RydWN0IHNlcV9maWxlICpmaWxlLCB2b2lkICpwcml2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTMwOC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MzA5OlxcdHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYgPSBmaWxlLVxcdTAwM2Vwcml2YXRlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTMxMC1cXHRpbnQgbm9kZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jPTMzNj1ERUZJTkVfU0hPV19BVFRSSUJVVEUobWx4NV9mcmFnX2J1Zl9kbWFfcG9vbHNfZGVidWdmcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzM3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjMzODp2b2lkIG1seDVfZnJhZ19idWZfcG9vbHNfY2xlYW51cChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTMzOS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zNTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MzU5OmludCBtbHg1X2ZyYWdfYnVmX3Bvb2xzX2luaXQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zNjAte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzg3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjM4ODppbnQgbWx4NV9mcmFnX2J1Zl9hbGxvY19ub2RlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIGludCBzaXplLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTM4OS1cXHRcXHRcXHQgICAgIHN0cnVjdCBtbHg1X2ZyYWdfYnVmICpidWYsIGludCBub2RlKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM9NDI1PUVYUE9SVF9TWU1CT0xfR1BMKG1seDVfZnJhZ19idWZfYWxsb2Nfbm9kZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNDI2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjQyNzp2b2lkIG1seDVfZnJhZ19idWZfZnJlZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBzdHJ1Y3QgbWx4NV9mcmFnX2J1ZiAqYnVmKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTQyOC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYz00NDU9RVhQT1JUX1NZTUJPTF9HUEwobWx4NV9mcmFnX2J1Zl9mcmVlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00NDYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NDQ3OnN0YXRpYyBzdHJ1Y3QgbWx4NV9kYl9wZ2RpciAqbWx4NV9hbGxvY19kYl9wZ2RpcihzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTQ0OC1cXHRcXHRcXHRcXHRcXHRcXHQgaW50IG5vZGUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYz00NzY9c3RhdGljIGludCBtbHg1X2FsbG9jX2RiX2Zyb21fcGdkaXIoc3RydWN0IG1seDVfZGJfcGdkaXIgKnBnZGlyLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTAwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjUwMTppbnQgbWx4NV9kYl9hbGxvY19ub2RlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X2RiICpkYiwgaW50IG5vZGUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTAyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jPTUyOD1FWFBPUlRfU1lNQk9MX0dQTChtbHg1X2RiX2FsbG9jX25vZGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTUyOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo1MzA6dm9pZCBtbHg1X2RiX2ZyZWUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfZGIgKmRiKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTUzMS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9MjgzPXN0YXRpYyB2b2lkIHBvbGxfdGltZW91dChzdHJ1Y3QgbWx4NV9jbWRfd29ya19lbnQgKmVudClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjg0LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6Mjg1OlxcdHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYgPSBjb250YWluZXJfb2YoZW50LVxcdTAwM2VjbWQsIHN0cnVjdCBtbHg1X2NvcmVfZGV2LCBjbWQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yODYtXFx0dTY0IGNtZF90b19tcyA9IG1seDVfdG91dF9tcyhkZXYsIENNRCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9MzMxPXN0YXRpYyB2b2lkIGR1bXBfYnVmKHZvaWQgKmJ1ZiwgaW50IHNpemUsIGludCBkYXRhX29ubHksIGludCBvZmZzZXQsIGludCBpZHgpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMzQ2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzozNDc6c3RhdGljIGludCBtbHg1X2ludGVybmFsX2Vycl9yZXRfdmFsdWUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2IG9wLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0zNDgtXFx0XFx0XFx0XFx0ICAgICAgIHUzMiAqc3luZCwgdTggKnN0YXR1cylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz03OTM9c3RhdGljIGludCBjbWRfc3RhdHVzX3RvX2Vycih1OCBzdGF0dXMpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtODE2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzo4MTc6dm9pZCBtbHg1X2NtZF9vdXRfZXJyKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUxNiBvcGNvZGUsIHUxNiBvcF9tb2QsIHZvaWQgKm91dClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtODE4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz04Mjc9RVhQT1JUX1NZTUJPTChtbHg1X2NtZF9vdXRfZXJyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtODI4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzo4Mjk6c3RhdGljIHZvaWQgY21kX3N0YXR1c19wcmludChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB2b2lkICppbiwgdm9pZCAqb3V0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy04MzAte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTg0NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6ODQ1OmludCBtbHg1X2NtZF9jaGVjayhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBpbnQgZXJyLCB2b2lkICppbiwgdm9pZCAqb3V0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy04NDYte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTg3Mj1FWFBPUlRfU1lNQk9MKG1seDVfY21kX2NoZWNrKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtODczLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzo4NzQ6c3RhdGljIHZvaWQgZHVtcF9jb21tYW5kKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTg3NS1cXHRcXHRcXHQgc3RydWN0IG1seDVfY21kX3dvcmtfZW50ICplbnQsIGludCBpbnB1dClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy05MzEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjkzMjpzdGF0aWMgdm9pZCBtbHg1X2NtZF9jb21wX2hhbmRsZXIoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTY0IHZlYywgYm9vbCBmb3JjZWQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy05MzMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTkzND1zdGF0aWMgdm9pZCBjYl90aW1lb3V0X2hhbmRsZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTkzOS1cXHRcXHRcXHRcXHRcXHRcXHQgICAgIGNiX3RpbWVvdXRfd29yayk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjk0MDpcXHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2ID0gY29udGFpbmVyX29mKGVudC1cXHUwMDNlY21kLCBzdHJ1Y3QgbWx4NV9jb3JlX2RldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtOTQxLVxcdFxcdFxcdFxcdFxcdFxcdCBjbWQpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTk2MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6OTYxOnN0YXRpYyB2b2lkIGZyZWVfbXNnKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X2NtZF9tc2cgKm1zZyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjk2MjpzdGF0aWMgdm9pZCBtbHg1X2ZyZWVfY21kX21zZyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy05NjMtXFx0XFx0XFx0ICAgICAgc3RydWN0IG1seDVfY21kX21zZyAqbXNnKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz05NjU9c3RhdGljIGJvb2wgb3Bjb2RlX2FsbG93ZWQoc3RydWN0IG1seDVfY21kICpjbWQsIHUxNiBvcGNvZGUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtOTcyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzo5NzM6Ym9vbCBtbHg1X2NtZF9pc19kb3duKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTk3NC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9OTgwPXN0YXRpYyB2b2lkIGNtZF93b3JrX2hhbmRsZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTk4NS1cXHRzdHJ1Y3QgbWx4NV9jbWRfbGF5b3V0ICpsYXk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjk4NjpcXHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy05ODctXFx0dW5zaWduZWQgbG9uZyB0aW1lb3V0O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTk5My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6OTk0OlxcdGRldiA9IGNvbnRhaW5lcl9vZihjbWQsIHN0cnVjdCBtbHg1X2NvcmVfZGV2LCBjbWQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy05OTUtXFx0dGltZW91dCA9IG1zZWNzX3RvX2ppZmZpZXMobWx4NV90b3V0X21zKGRldiwgQ01EKSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9MTE0MD1lbnVtIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMTQzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxMTQ0OnN0YXRpYyB2b2lkIHdhaXRfZnVuY19oYW5kbGVfZXhlY190aW1lb3V0KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTExNDUtXFx0XFx0XFx0XFx0XFx0ICBzdHJ1Y3QgbWx4NV9jbWRfd29ya19lbnQgKmVudClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMTY4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxMTY5OnN0YXRpYyBpbnQgd2FpdF9mdW5jKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X2NtZF93b3JrX2VudCAqZW50KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMTcwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMjE1LSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxMjE2OnN0YXRpYyBib29sIG1seDVfY21kX2FsbF9zdGFsbGVkKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEyMTcte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEyNTgtICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjEyNTk6c3RhdGljIGludCBtbHg1X2NtZF9pbnZva2Uoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfY21kX21zZyAqaW4sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEyNjAtXFx0XFx0XFx0ICAgc3RydWN0IG1seDVfY21kX21zZyAqb3V0LCB2b2lkICp1b3V0LCBpbnQgdW91dF9zaXplLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTEzMzc9c3RhdGljIHNzaXplX3QgZGJnX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxwLCBjb25zdCBjaGFyIF9fdXNlciAqYnVmLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEzMzkte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxMzQwOlxcdHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYgPSBmaWxwLVxcdTAwM2Vwcml2YXRlX2RhdGE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEzNDEtXFx0c3RydWN0IG1seDVfY21kX2RlYnVnICpkYmcgPSBcXHUwMDI2ZGV2LVxcdTAwM2VjbWQuZGJnO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTE0MDQ9c3RhdGljIGludCBtbHg1X2NvcHlfZnJvbV9tc2codm9pZCAqdG8sIHN0cnVjdCBtbHg1X2NtZF9tc2cgKmZyb20sIGludCBzaXplKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE0MzYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE0Mzc6c3RhdGljIHN0cnVjdCBtbHg1X2NtZF9tYWlsYm94ICphbGxvY19jbWRfYm94KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE0MzgtXFx0XFx0XFx0XFx0XFx0ICAgICAgZ2ZwX3QgZmxhZ3MpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTQ1Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTQ1ODpzdGF0aWMgdm9pZCBmcmVlX2NtZF9ib3goc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTQ1OS1cXHRcXHRcXHQgc3RydWN0IG1seDVfY21kX21haWxib3ggKm1haWxib3gpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTQ2NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTQ2NTpzdGF0aWMgc3RydWN0IG1seDVfY21kX21zZyAqbWx4NV9hbGxvY19jbWRfbXNnKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE0NjYtXFx0XFx0XFx0XFx0XFx0ICAgICAgIGdmcF90IGZsYWdzLCBpbnQgc2l6ZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNTExLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNTEyOnN0YXRpYyB2b2lkIG1seDVfZnJlZV9jbWRfbXNnKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE1MTMtXFx0XFx0XFx0ICAgICAgc3RydWN0IG1seDVfY21kX21zZyAqbXNnKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTE1MjY9c3RhdGljIHNzaXplX3QgZGF0YV93cml0ZShzdHJ1Y3QgZmlsZSAqZmlscCwgY29uc3QgY2hhciBfX3VzZXIgKmJ1ZixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNTI4LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTUyOTpcXHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2ID0gZmlscC1cXHUwMDNlcHJpdmF0ZV9kYXRhO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNTMwLVxcdHN0cnVjdCBtbHg1X2NtZF9kZWJ1ZyAqZGJnID0gXFx1MDAyNmRldi1cXHUwMDNlY21kLmRiZztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz0xNTUwPXN0YXRpYyBzc2l6ZV90IGRhdGFfcmVhZChzdHJ1Y3QgZmlsZSAqZmlscCwgY2hhciBfX3VzZXIgKmJ1Ziwgc2l6ZV90IGNvdW50LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE1NTIte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNTUzOlxcdHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYgPSBmaWxwLVxcdTAwM2Vwcml2YXRlX2RhdGE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE1NTQtXFx0c3RydWN0IG1seDVfY21kX2RlYnVnICpkYmcgPSBcXHUwMDI2ZGV2LVxcdTAwM2VjbWQuZGJnO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTE1NzA9c3RhdGljIHNzaXplX3Qgb3V0bGVuX3JlYWQoc3RydWN0IGZpbGUgKmZpbHAsIGNoYXIgX191c2VyICpidWYsIHNpemVfdCBjb3VudCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNTcyLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTU3MzpcXHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2ID0gZmlscC1cXHUwMDNlcHJpdmF0ZV9kYXRhO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNTc0LVxcdHN0cnVjdCBtbHg1X2NtZF9kZWJ1ZyAqZGJnID0gXFx1MDAyNmRldi1cXHUwMDNlY21kLmRiZztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz0xNTg1PXN0YXRpYyBzc2l6ZV90IG91dGxlbl93cml0ZShzdHJ1Y3QgZmlsZSAqZmlscCwgY29uc3QgY2hhciBfX3VzZXIgKmJ1ZixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNTg3LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTU4ODpcXHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2ID0gZmlscC1cXHUwMDNlcHJpdmF0ZV9kYXRhO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNTg5LVxcdHN0cnVjdCBtbHg1X2NtZF9kZWJ1ZyAqZGJnID0gXFx1MDAyNmRldi1cXHUwMDNlY21kLmRiZztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz0xNjIxPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG9sZm9wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNjI3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNjI4OnN0YXRpYyB2b2lkIHNldF93cW5hbWUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTYyOS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTYzNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTYzNjpzdGF0aWMgdm9pZCBjbGVhbl9kZWJ1Z19maWxlcyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNjM3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNjQ1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNjQ2OnN0YXRpYyB2b2lkIGNyZWF0ZV9kZWJ1Z2ZzX2ZpbGVzKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE2NDcte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE2NTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE2NTk6dm9pZCBtbHg1X2NtZF9hbGxvd2VkX29wY29kZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1MTYgb3Bjb2RlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNjYwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNjc0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNjc1OnN0YXRpYyB2b2lkIG1seDVfY21kX2NoYW5nZV9tb2Qoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgaW50IG1vZGUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE2NzYte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTE2OTE9c3RhdGljIGludCBjbWRfY29tcF9ub3RpZmllcihzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE2OTMte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNjk0OlxcdHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE2OTUtXFx0c3RydWN0IG1seDVfY21kICpjbWQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTY5OC1cXHRjbWQgPSBtbHg1X25iX2NvZihuYiwgc3RydWN0IG1seDVfY21kLCBuYik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE2OTk6XFx0ZGV2ID0gY29udGFpbmVyX29mKGNtZCwgc3RydWN0IG1seDVfY29yZV9kZXYsIGNtZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE3MDAtXFx0ZXFlID0gZGF0YTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNzA4LX1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTcwOTp2b2lkIG1seDVfY21kX3VzZV9ldmVudHMoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTcxMC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTcxNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTcxNjp2b2lkIG1seDVfY21kX3VzZV9wb2xsaW5nKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE3MTcte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE3MjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE3MjI6c3RhdGljIHZvaWQgZnJlZV9tc2coc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfY21kX21zZyAqbXNnKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNzIzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNzM0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNzM1OnN0YXRpYyB2b2lkIG1seDVfY21kX2NvbXBfaGFuZGxlcihzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1NjQgdmVjLCBib29sIGZvcmNlZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTczNi17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTgzOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTgzOTpzdGF0aWMgdm9pZCBtbHg1X2NtZF90cmlnZ2VyX2NvbXBsZXRpb25zKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE4NDAte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE4NzMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE4NzQ6dm9pZCBtbHg1X2NtZF9mbHVzaChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xODc1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xODk2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxODk3OnN0YXRpYyBzdHJ1Y3QgbWx4NV9jbWRfbXNnICphbGxvY19tc2coc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgaW50IGluX3NpemUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE4OTgtXFx0XFx0XFx0XFx0ICAgICAgZ2ZwX3QgZ2ZwKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTE5MzU9c3RhdGljIGludCBpc19tYW5hZ2VfcGFnZXModm9pZCAqaW4pXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTkzOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTk0MDpzdGF0aWMgYm9vbCBtbHg1X2hhc19wcml2aWxlZ2VkX3VpZChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xOTQxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xOTQ0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxOTQ1OnN0YXRpYyBib29sIG1seDVfY21kX2lzX3ByaXZpbGVnZWRfdWlkKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE5NDYtXFx0XFx0XFx0XFx0ICAgICAgIHUxNiB1aWQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTk1NC0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTk1NTpzdGF0aWMgaW50IGNtZF9leGVjKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHZvaWQgKmluLCBpbnQgaW5fc2l6ZSwgdm9pZCAqb3V0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xOTU2LVxcdFxcdCAgICBpbnQgb3V0X3NpemUsIG1seDVfY21kX2Nia190IGNhbGxiYWNrLCB2b2lkICpjb250ZXh0LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTIwMzUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjIwMzY6c3RhdGljIHZvaWQgbWx4NV9jbWRfZXJyX3RyYWNlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUxNiBvcGNvZGUsIHUxNiBvcF9tb2QsIHZvaWQgKm91dClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjAzNy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjA0NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MjA0NjpzdGF0aWMgdm9pZCBjbWRfc3RhdHVzX2xvZyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1MTYgb3Bjb2RlLCB1OCBzdGF0dXMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTIwNDctXFx0XFx0XFx0ICAgdTMyIHN5bmRyb21lLCBpbnQgZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTIwNzEtLyogcHJlc2VydmUgLUVSRU1PVEVJTyBmb3Igb3V0Ym94LnN0YXR1cyAhPSBPSywgb3RoZXJ3aXNlIHJldHVybiBlcnIgYXMgaXMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MjA3MjpzdGF0aWMgaW50IGNtZF9zdGF0dXNfZXJyKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIGludCBlcnIsIHUxNiBvcGNvZGUsIHUxNiBvcF9tb2QsIHZvaWQgKm91dClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjA3My17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjEwNi0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MjEwNzppbnQgbWx4NV9jbWRfZG8oc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdm9pZCAqaW4sIGludCBpbl9zaXplLCB2b2lkICpvdXQsIGludCBvdXRfc2l6ZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjEwOC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9MjExNT1FWFBPUlRfU1lNQk9MKG1seDVfY21kX2RvKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMTI4LSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoyMTI5OmludCBtbHg1X2NtZF9leGVjKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHZvaWQgKmluLCBpbnQgaW5fc2l6ZSwgdm9pZCAqb3V0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMTMwLVxcdFxcdCAgaW50IG91dF9zaXplKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTIxMzY9RVhQT1JUX1NZTUJPTChtbHg1X2NtZF9leGVjKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMTUxLSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoyMTUyOmludCBtbHg1X2NtZF9leGVjX3BvbGxpbmcoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdm9pZCAqaW4sIGludCBpbl9zaXplLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMTUzLVxcdFxcdFxcdCAgdm9pZCAqb3V0LCBpbnQgb3V0X3NpemUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9MjE2Mj1FWFBPUlRfU1lNQk9MKG1seDVfY21kX2V4ZWNfcG9sbGluZyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTIxNjMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjIxNjQ6dm9pZCBtbHg1X2NtZF9pbml0X2FzeW5jX2N0eChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMTY1LVxcdFxcdFxcdCAgICAgc3RydWN0IG1seDVfYXN5bmNfY3R4ICpjdHgpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9MjE4OT1zdGF0aWMgdm9pZCBtbHg1X2NtZF9leGVjX2NiX2hhbmRsZXIoaW50IHN0YXR1cywgdm9pZCAqX3dvcmspXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjE5Mi1cXHRzdHJ1Y3QgbWx4NV9hc3luY19jdHggKmN0eDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MjE5MzpcXHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMTk0LVxcdGJvb2wgdGhyb3R0bGVfbG9ja2VkO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTIyMTQ9aW50IG1seDVfY21kX2V4ZWNfY2Ioc3RydWN0IG1seDVfYXN5bmNfY3R4ICpjdHgsIHZvaWQgKmluLCBpbnQgaW5fc2l6ZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMjE3LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MjIxODpcXHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2ID0gY3R4LVxcdTAwM2VkZXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTIyMTktXFx0dTE2IHVpZDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz0yMjY4PUVYUE9SVF9TWU1CT0wobWx4NV9jbWRfZXhlY19jYik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTIyNjktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjIyNzA6aW50IG1seDVfY21kX2FsbG93X290aGVyX3ZoY2FfYWNjZXNzKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTIyNzEtXFx0XFx0XFx0XFx0ICAgICBzdHJ1Y3QgbWx4NV9jbWRfYWxsb3dfb3RoZXJfdmhjYV9hY2Nlc3NfYXR0ciAqYXR0cilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMjg5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoyMjkwOmludCBtbHg1X2NtZF9hbGlhc19vYmpfY3JlYXRlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTIyOTEtXFx0XFx0XFx0ICAgICAgc3RydWN0IG1seDVfY21kX2FsaWFzX29ial9jcmVhdGVfYXR0ciAqYWxpYXNfYXR0cixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMzI1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoyMzI2OmludCBtbHg1X2NtZF9hbGlhc19vYmpfZGVzdHJveShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1MzIgb2JqX2lkLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMzI3LVxcdFxcdFxcdCAgICAgICB1MTYgb2JqX3R5cGUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjMzOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MjMzOTpzdGF0aWMgdm9pZCBkZXN0cm95X21zZ19jYWNoZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMzQwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz0yMzU5PXN0YXRpYyB1bnNpZ25lZCBjbWRfY2FjaGVfZW50X3NpemVbTUxYNV9OVU1fQ09NTUFORF9DQUNIRVNdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTIzNjYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjIzNjc6c3RhdGljIHZvaWQgY3JlYXRlX21zZ19jYWNoZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMzY4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMzkyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoyMzkzOnN0YXRpYyBpbnQgYWxsb2NfY21kX3BhZ2Uoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfY21kICpjbWQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTIzOTQte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTI0MjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjI0MjI6c3RhdGljIHZvaWQgZnJlZV9jbWRfcGFnZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBzdHJ1Y3QgbWx4NV9jbWQgKmNtZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjQyMy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjQyNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MjQyODpzdGF0aWMgdTE2IGNtZGlmX3JldihzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yNDI5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yNDMyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoyNDMzOmludCBtbHg1X2NtZF9pbml0KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTI0MzQte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTI0NTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjI0NTQ6dm9pZCBtbHg1X2NtZF9jbGVhbnVwKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTI0NTUte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTI0NjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjI0NjI6aW50IG1seDVfY21kX2VuYWJsZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yNDYzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yNTQ3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoyNTQ4OnZvaWQgbWx4NV9jbWRfZGlzYWJsZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yNTQ5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yNTU5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoyNTYwOnZvaWQgbWx4NV9jbWRfc2V0X3N0YXRlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTI1NjEtXFx0XFx0XFx0ZW51bSBtbHg1X2NtZGlmX3N0YXRlIGNtZGlmX3N0YXRlKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTI1NjUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjI1NjY6aW50IG1seDVfY21kX2FkZF9wcml2aWxlZ2VkX3VpZChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1MTYgdWlkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yNTY3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz0yNTcxPUVYUE9SVF9TWU1CT0wobWx4NV9jbWRfYWRkX3ByaXZpbGVnZWRfdWlkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjU3Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MjU3Mzp2b2lkIG1seDVfY21kX3JlbW92ZV9wcml2aWxlZ2VkX3VpZChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1MTYgdWlkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yNTc0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jcS5jPTEwMD1zdGF0aWMgdm9pZCBtbHg1X2NvcmVfY3FfZHVtbXlfY2Ioc3RydWN0IG1seDVfY29yZV9jcSAqY3EsIHN0cnVjdCBtbHg1X2VxZSAqZXFlKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmMtMTA3LS8qIENhbGxlcnMgbXVzdCB2ZXJpZnkgb3V0Ym94IHN0YXR1cyBpbiBjYXNlIG9mIGVyciAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jcS5jOjEwODppbnQgbWx4NV9jcmVhdGVfY3Eoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfY29yZV9jcSAqY3EsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmMtMTA5LVxcdFxcdCAgIHUzMiAqaW4sIGludCBpbmxlbiwgdTMyICpvdXQsIGludCBvdXRsZW4pXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY3EuYz0xNzg9RVhQT1JUX1NZTUJPTChtbHg1X2NyZWF0ZV9jcSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY3EuYy0xODAtLyogb3Vib3ggaXMgY2hlY2tlZCBhbmQgZXJyIHZhbCBpcyBub3JtYWxpemVkICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmM6MTgxOmludCBtbHg1X2NvcmVfY3JlYXRlX2NxKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X2NvcmVfY3EgKmNxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jcS5jLTE4Mi1cXHRcXHRcXHR1MzIgKmluLCBpbnQgaW5sZW4sIHUzMiAqb3V0LCBpbnQgb3V0bGVuKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmM9MTg4PUVYUE9SVF9TWU1CT0wobWx4NV9jb3JlX2NyZWF0ZV9jcSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmMtMTg5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jcS5jOjE5MDppbnQgbWx4NV9jb3JlX2Rlc3Ryb3lfY3Eoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfY29yZV9jcSAqY3EpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmMtMTkxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jcS5jPTIxMz1FWFBPUlRfU1lNQk9MKG1seDVfY29yZV9kZXN0cm95X2NxKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY3EuYy0yMTQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmM6MjE1OmludCBtbHg1X2NvcmVfcXVlcnlfY3Eoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfY29yZV9jcSAqY3EsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmMtMjE2LVxcdFxcdCAgICAgICB1MzIgKm91dClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jcS5jPTIyND1FWFBPUlRfU1lNQk9MKG1seDVfY29yZV9xdWVyeV9jcSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmMtMjI1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jcS5jOjIyNjppbnQgbWx4NV9jb3JlX21vZGlmeV9jcShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBzdHJ1Y3QgbWx4NV9jb3JlX2NxICpjcSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY3EuYy0yMjctXFx0XFx0XFx0dTMyICppbiwgaW50IGlubGVuKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmM9MjM1PUVYUE9SVF9TWU1CT0wobWx4NV9jb3JlX21vZGlmeV9jcSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmMtMjM2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jcS5jOjIzNzppbnQgbWx4NV9jb3JlX21vZGlmeV9jcV9tb2RlcmF0aW9uKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmMtMjM4LVxcdFxcdFxcdFxcdCAgIHN0cnVjdCBtbHg1X2NvcmVfY3EgKmNxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYz05Nj12b2lkIG1seDVfdW5yZWdpc3Rlcl9kZWJ1Z2ZzKHZvaWQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTEwMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jOjEwMTpzdHJ1Y3QgZGVudHJ5ICptbHg1X2RlYnVnZnNfZ2V0X2Rldl9yb290KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy0xMDIte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYz0xMDU9RVhQT1JUX1NZTUJPTChtbHg1X2RlYnVnZnNfZ2V0X2Rldl9yb290KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTEwNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jOjEwNzp2b2lkIG1seDVfcXBfZGVidWdmc19pbml0KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy0xMDgte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYz0xMTE9RVhQT1JUX1NZTUJPTChtbHg1X3FwX2RlYnVnZnNfaW5pdCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy0xMTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYzoxMTM6dm9pZCBtbHg1X3FwX2RlYnVnZnNfY2xlYW51cChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtMTE0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM9MTE3PUVYUE9SVF9TWU1CT0wobWx4NV9xcF9kZWJ1Z2ZzX2NsZWFudXApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtMTE4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM6MTE5OnZvaWQgbWx4NV9lcV9kZWJ1Z2ZzX2luaXQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTEyMC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTEyMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jOjEyNDp2b2lkIG1seDVfZXFfZGVidWdmc19jbGVhbnVwKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy0xMjUte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYz0yMDI9bWx4NV9jbWRpZl9hbGxvY19zdGF0cyhzdHJ1Y3QgeGFycmF5ICpzdGF0c194YSwgaW50IG9wY29kZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtMjE4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM6MjE5OnZvaWQgbWx4NV9jbWRpZl9kZWJ1Z2ZzX2luaXQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTIyMC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTI1OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jOjI1OTp2b2lkIG1seDVfY21kaWZfZGVidWdmc19jbGVhbnVwKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy0yNjAte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy0yNjktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYzoyNzA6dm9pZCBtbHg1X2NxX2RlYnVnZnNfaW5pdChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtMjcxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtMjc0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM6Mjc1OnZvaWQgbWx4NV9jcV9kZWJ1Z2ZzX2NsZWFudXAoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTI3Ni17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTI3OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jOjI4MDp2b2lkIG1seDVfcGFnZXNfZGVidWdmc19pbml0KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy0yODEte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy0yOTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYzoyOTQ6dm9pZCBtbHg1X3BhZ2VzX2RlYnVnZnNfY2xlYW51cChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtMjk1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtMjk4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM6Mjk5OnZvaWQgbWx4NV9wYWdlc19ieV9mdW5jX3R5cGVfZGVidWdmc19pbml0KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy0zMDAte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy0zMjItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYzozMjM6dm9pZCBtbHg1X3BhZ2VzX2J5X2Z1bmNfdHlwZV9kZWJ1Z2ZzX2NsZWFudXAoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTMyNC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTMzNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jOjMzNzpzdGF0aWMgdTY0IHFwX3JlYWRfZmllbGQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfY29yZV9xcCAqcXAsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy0zMzgtXFx0XFx0XFx0IGludCBpbmRleCwgaW50ICppc19zdHIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTQxNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jOjQxNzpzdGF0aWMgdTY0IGVxX3JlYWRfZmllbGQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfZXEgKmVxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtNDE4LVxcdFxcdFxcdCBpbnQgaW5kZXgpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTQ1Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jOjQ1NzpzdGF0aWMgdTY0IGNxX3JlYWRfZmllbGQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfY29yZV9jcSAqY3EsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy00NTgtXFx0XFx0XFx0IGludCBpbmRleClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM9NTMyPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGZvcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTUzNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jOjUzODpzdGF0aWMgaW50IGFkZF9yZXNfdHJlZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBlbnVtIGRiZ19yc2NfdHlwZSB0eXBlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmMtNTM5LVxcdFxcdFxcdHN0cnVjdCBkZW50cnkgKnJvb3QsIHN0cnVjdCBtbHg1X3JzY19kZWJ1ZyAqKmRiZyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZWJ1Z2ZzLmM9NTY2PXN0YXRpYyB2b2lkIHJlbV9yZXNfdHJlZShzdHJ1Y3QgbWx4NV9yc2NfZGVidWcgKmQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTU3MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jOjU3MjppbnQgbWx4NV9kZWJ1Z19xcF9hZGQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfY29yZV9xcCAqcXApXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy01NzMte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYz01ODc9RVhQT1JUX1NZTUJPTChtbHg1X2RlYnVnX3FwX2FkZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYy01ODgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RlYnVnZnMuYzo1ODk6dm9pZCBtbHg1X2RlYnVnX3FwX3JlbW92ZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBzdHJ1Y3QgbWx4NV9jb3JlX3FwICpxcClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTU5MC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jPTU5Nz1FWFBPUlRfU1lNQk9MKG1seDVfZGVidWdfcXBfcmVtb3ZlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jLTU5OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGVidWdmcy5jOjU5OTppbnQgbWx4NV9kZWJ1Z19lcV9hZGQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfZXEgKmVxKVxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQxODoxMjoyMS4zNDM5MDY1NjFaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTU5MDg3MzcxODUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBSZWFjaGFiaWxpdHkgb2YgTWVsbGFub3ggbWx4NSBDb2RlIGluIFZpcnR1YWxpemVkIEVudmlyb25tZW50cyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIHRyeWluZyB0byBkZXRlcm1pbmUgaWYgaXQncyB3b3J0aCBmdXp6aW5nLiBUaGUgcHJvbXB0IHNheXMgdG8gcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgIGlmIHRoZSBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLCBldmVuIHdpdGggc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBjYW4gc3l6a2FsbGVyJ3MgUENJIGZ1enplciBnZXQgdG8gdGhpcyBgbWx4NWAgY29kZT8gSSBrbm93IHN5emthbGxlciBoYXMgYSBQQ0kgZnV6emVyIHRoYXQgY2FuIHByb2JlIGFueSBQQ0kgZHJpdmVyLiBNZWxsYW5veCBtbHg1IGlzLCBvZiBjb3Vyc2UsIGEgUENJIGRldmljZS4gU28sIGlmIHN5emthbGxlciBjYW4gcmVhY2ggaXQgd2l0aCBpdHMgUENJIGZ1enplciwgdGhlbiBpdCdzIHJlYWNoYWJsZSwgcmlnaHQ/IEJ1dCB0aGUgd29yZGluZyBcImV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmVcIiBnaXZlcyBtZSBwYXVzZSwgYmVjYXVzZSBzeXprYWxsZXIncyBQQ0kgZnV6emVyICppcyogZW11bGF0aW5nIFBDSSBkZXZpY2VzLlxuXG5UaGUgYXV0aG9yIGlzIGxpc3RlZCBhcyBgc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VgLCB3aGljaCBzY3JlYW1zIHN5emthbGxlciBidWcsIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIGlmIHN5emthbGxlciBmb3VuZCB0aGlzIGJ1ZyBhbmQgaG93LiBJZiBzeXprYWxsZXIgZm91bmQgaXQsIHRoZW4gaXQgY2FuIHJlYWNoIGl0LiBNeSBmaXJzdCB0aG91Z2h0IGlzIHVwc3RyZWFtIHN5emJvdCBydW5zIG9uIEdDRS4gU28gaWYgc3l6a2FsbGVyIGZvdW5kIGl0LCB0aGVuIGl0IGlzIHJlYWNoYWJsZSBpbiBHQ0UuIEhvd2V2ZXIsIHdoYXQgaWYgaXQgd2FzIGZvdW5kIG9uIGJhcmUgbWV0YWwgYW5kIHRoZW4gYmFja3BvcnRlZD8gSSBrbm93IHN5emJvdCB1cHN0cmVhbSBpcyBtb3N0bHkgR0NFLCBidXQgaXQgKmRvZXMqIHRlc3QgaW4gb3RoZXIgZW52aXJvbm1lbnRzLCBjb3JyZWN0PyBObywgc3l6Ym90IHVwc3RyZWFtIGlzIEdDRS4gU28gdGhlbiwgdGhpcyBtdXN0IGJlIGEgY3VzdG9tIHN5emthbGxlciBpbnN0YW5jZS5cblxuTm93IEkgbmVlZCB0byBhc3Nlc3Mgd2hldGhlciB0aGUgUENJIGZ1enplciBpcyBjYXBhYmxlIG9mIHJlYWNoaW5nIHRoaXMgc3BlY2lmaWMgY29kZS4gYG1seDVlX3RjX2NsZWFuX2ZkYl9wZWVyX2Zsb3dzYCBpcyBwYXJ0IG9mIHRoZSBFdGhlcm5ldCBkcml2ZXIsIGBlbl90Yy5jYC4gVG8gaGl0IHRoaXMsIHRoZSBtbHg1IGNvcmUgZGV2aWNlIG11c3QgYmUgaW5pdGlhbGl6ZWQsIHRoZSBldGhlcm5ldCBuZXRkZXYgbXVzdCBiZSByZWdpc3RlcmVkLCBhbmQgdGhlbiBUQyBydWxlcyBtdXN0IGJlIGNvbmZpZ3VyZWQuIEluaXRpYWxpemluZyB0aGUgbWx4NSBjb3JlIGludm9sdmVzIGNvbXBsZXggZmlybXdhcmUgY29tbWFuZHMsIGNvbW1hbmQgcXVldWVzLCBhbmQgZXZlbnQgcXVldWVzLiBUaGUgUENJIGZ1enplciBqdXN0IHRocm93cyByYW5kb20gZGF0YSBhdCB0aGUgZGV2aWNlLiBJdCdzIGhpZ2hseSB1bmxpa2VseSB0aGF0IHRoZSBQQ0kgZnV6emVyIGNhbiBzdWNjZXNzZnVsbHkgaW5pdGlhbGl6ZSBhbGwgdGhhdC5cblxuU28gaWYgaXQncyB1bmxpa2VseSwgaG93IGRpZCBzeXprYWxsZXIgZmluZCBpdD8gV2FpdCwgY291bGQgdGhpcyBiZSBhIG1hbnVhbCBwYXRjaCwgc3VibWl0dGVkIGJ5IGEgdXNlciBmb3IgdGVzdGluZyBieSBzeXpib3Q/IE9oLCB0aGUgY29tbWl0IG1lc3NhZ2Ugc2F5cyBcInN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1wiLiBBaGEhIFRoYXQgbWVhbnMgaXQgKmlzKiBhIHVzZXItc3VibWl0dGVkIHBhdGNoIHRlc3RlZCBieSBzeXpib3QuIElmIHN5emJvdCB0ZXN0ZWQgaXQsIHRoZW4gdGhlIGJ1ZyB3YXMgbGlrZWx5IGZvdW5kIGluIHRoZSBlbnZpcm9ubWVudCBpbiB3aGljaCBzeXpib3QgdGVzdHMuXG5cbkJhY2sgdG8gdGhlIG9yaWdpbmFsIHByb2JsZW06IElzIG1seDUgcmVhY2hhYmxlIGluIEdDRS9RRU1VPyBJZiBpdCBpc24ndCwgSSBzaG91bGQgcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiB0aGVyZSdzIGFueSBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIG1seDUuIEkgd2lsbCBzZWFyY2ggYGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9gIGZvciBhIGR1bW15IG9yIG1vY2sgZHJpdmVyLiBMZXQncyBzZWUuLi4gbm90aGluZyBpbW1lZGlhdGVseSBzdGFuZHMgb3V0LiBJIGRpZG4ndCBmaW5kIGFueSBzb2Z0d2FyZSBlbXVsYXRvcnMgZm9yIG1seDUgd2hlbiBncmVwcGluZyBmb3IgYG1vY2tgIGFuZCBgc2ltYC4gVGhlcmVmb3JlLCBJJ20gdGhpbmtpbmcgdGhlIGNvZGUgaXMgbm90IHJlYWNoYWJsZSBpbiBHQ0UvUUVNVSwgYW5kIEkgbmVlZCB0byByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUzMzAzLCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTE2MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQxODoxMjozNy4yNTI2NDcyNzZaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE3NTIxMzAwMywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkdW1teVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jcS5jPTk4PUVYUE9SVF9TWU1CT0wobWx4NV9hZGRfY3FfdG9fdGFza2xldCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmMtOTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmM6MTAwOnN0YXRpYyB2b2lkIG1seDVfY29yZV9jcV9kdW1teV9jYihzdHJ1Y3QgbWx4NV9jb3JlX2NxICpjcSwgc3RydWN0IG1seDVfZXFlICplcWUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmMtMTAxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jcS5jPTEwOD1pbnQgbWx4NV9jcmVhdGVfY3Eoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfY29yZV9jcSAqY3EsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY3EuYy0xNDMtXFx0aWYgKCFjcS1cXHUwMDNlY29tcClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY3EuYzoxNDQ6XFx0XFx0Y3EtXFx1MDAzZWNvbXAgPSBtbHg1X2NvcmVfY3FfZHVtbXlfY2I7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NxLmMtMTQ1LVxcdC8qIGFzc3VtaW5nIENRIHdpbGwgYmUgZGVsZXRlZCBiZWZvcmUgdGhlIEVRICovXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vc2VscS5jPTI3PWludCBtbHg1ZV9zZWxxX2luaXQoc3RydWN0IG1seDVlX3NlbHEgKnNlbHEsIHN0cnVjdCBtdXRleCAqc3RhdGVfbG9jaylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9zZWxxLmMtNDItXFx0fVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9zZWxxLmM6NDM6XFx0LyogQXNzaWduIGR1bW15IHZhbHVlcywgc28gdGhhdCBtbHg1ZV9zZWxlY3RfcXVldWUgd29uJ3QgY3Jhc2guICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3NlbHEuYy00NC1cXHQqaW5pdF9wYXJhbXMgPSAoc3RydWN0IG1seDVlX3NlbHFfcGFyYW1zKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvaXBvaWIvaXBvaWJfdmxhbi5jPTI4NT1zdGF0aWMgaW50IG1seDVpX3BrZXlfaW5pdChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9pcG9pYi9pcG9pYl92bGFuLmMtMzAwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9pcG9pYi9pcG9pYl92bGFuLmM6MzAxOlxcdC8qIFVzZSBkdW1teSBycXMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvaXBvaWIvaXBvaWJfdmxhbi5jLTMwMi1cXHRwcml2LVxcdTAwM2VjaGFubmVscy5wYXJhbXMubG9nX3JxX210dV9mcmFtZXMgPSBNTFg1RV9QQVJBTVNfTUlOSU1VTV9MT0dfUlFfU0laRTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM9MjI2PWludCBtbHg1aHdzX2J3Y19tYXRjaGVyX2NyZWF0ZV9zaW1wbGUoc3RydWN0IG1seDVod3NfYndjX21hdGNoZXIgKmJ3Y19tYXRjaGVyLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy0yNjAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYzoyNjE6XFx0LyogY3JlYXRlIGR1bW15IGFjdGlvbiB0ZW1wbGF0ZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtMjYyLVxcdGJ3Y19tYXRjaGVyLVxcdTAwM2VhdFswXSA9XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jPTg0Mj1od3NfYndjX21hdGNoZXJfZmluZF9hdChzdHJ1Y3QgbWx4NWh3c19id2NfbWF0Y2hlciAqYndjX21hdGNoZXIsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jLTg0Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jOjg0ODpcXHQvKiBzdGFydCBmcm9tIGluZGV4IDEgLSBmaXJzdCBhY3Rpb24gdGVtcGxhdGUgaXMgYSBkdW1teSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtODQ5LVxcdGZvciAoaSA9IDE7IGkgXFx1MDAzYyBid2NfbWF0Y2hlci1cXHUwMDNlbnVtX29mX2F0OyBpKyspIHtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTg6MTI6MzcuNDI3ODY4NjY4WiIsIlNlcSI6MTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjk5MTIyNDY3NzEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBGZWFzaWJpbGl0eSBvZiBGdXp6aW5nIGEgTWVsbGFub3ggU3ViZnVuY3Rpb24gUGF0Y2gqKlxuXG5Pa2F5LCBJIHNlZSB0aGVzZSBrZXJuZWwgY29uZmlncywgYENPTkZJR19NTFg1X1NGYCBhbmQgYENPTkZJR19NTFg1X1NGX01BTkFHRVJgLCB3aGljaCBzdWdnZXN0IHdlJ3JlIGRlYWxpbmcgd2l0aCBNZWxsYW5veCBzdWJmdW5jdGlvbnMuIFRoZSBkZXNjcmlwdGlvbiBzYXlzIHRoZXkncmUgbGlrZSBTUklPViBWRnMsIGJ1dCB3aXRob3V0IHRoZSBTUklPViByZXF1aXJlbWVudC4gSSBpbW1lZGlhdGVseSB3b25kZXI6IGNhbiBzdWJmdW5jdGlvbnMgKmV4aXN0KiBpbiBhIHB1cmVseSB2aXJ0dWFsIGVudmlyb25tZW50PyBNeSB1bmRlcnN0YW5kaW5nIGlzIHRoZXkncmUgYnVpbHQgb24gdG9wIG9mIHBoeXNpY2FsIE1lbGxhbm94IGhhcmR3YXJlLlxuXG5UaGVuIHRoZSB0aG91Z2h0IHN0cmlrZXM6IHdoYXQgaWYgc3l6a2FsbGVyICppcyogcnVubmluZyBvbiBhIEdDRSBpbnN0YW5jZSB0aGF0ICpkb2VzKiBoYXZlIGEgTWVsbGFub3ggY2FyZD8gSSBuZWVkIHRvIHJlbWVtYmVyIGhvdyBHQ0UgaW5zdGFuY2VzIGFyZSB0eXBpY2FsbHkgY29uZmlndXJlZC4gSSBrbm93IHRoZXkgY2FuIHVzZSBcIkdvb2dsZSBWaXJ0dWFsIE5JQ1wiIG9yIFwidmlydGlvLW5ldFwiLiBBbmQgSSByZWNhbGwgbG9jYWwgU1NEcyAoTlZNZSkgYW5kIEdQVXMgYXJlIGFsc28gb3B0aW9ucy4gQnV0IGRvIHN0YW5kYXJkIEdDRSBpbnN0YW5jZXMgaW5jbHVkZSBNZWxsYW5veCBjYXJkcz9cblxuQWhhISBJIHJlbWVtYmVyIHRoYXQgc29tZSBoaWdoLXBlcmZvcm1hbmNlIEdDRSBpbnN0YW5jZXMgZG8gdXNlIE1lbGxhbm94IENvbm5lY3RYIGNhcmRzLCBzcGVjaWZpY2FsbHkgdGhlIENvbm5lY3RYLTYgb3IgQ29ubmVjdFgtNyBtb2RlbHMgZm9yIFRpZXIgMSBuZXR3b3JraW5nIG9yIEEzL0EyIFZNcy4gQnV0IHN5emthbGxlciBWTXMgYXJlIHVzdWFsbHkganVzdCBzdGFuZGFyZCBzbWFsbCBvbmVzIGxpa2UgYG4xLXN0YW5kYXJkLTJgIG9yIGBlMi1zdGFuZGFyZC0yYCBhbmQgc28gYXJlIHByb2JhYmx5IHVzaW5nIGB2aXJ0aW8tbmV0YCBvciBgZ3ZlYCAuIFNvLCBubyBNZWxsYW5veCBoYXJkd2FyZSBmb3IgdGhlIHN0YW5kYXJkIHN5emthbGxlciBzZXR1cC5cblxuT2theSwgc28gc3l6a2FsbGVyICpkb2Vzbid0KiB0eXBpY2FsbHkgaGF2ZSBNZWxsYW5veCBoYXJkd2FyZSBpbiBpdHMgZGVmYXVsdCBHQ0UgVk1zLiBOb3cgSSdtIHRoaW5raW5nLCBob3cgY291bGQgdGhpcyBwYXRjaCBiZSB0ZXN0ZWQ/IE1heWJlIHRoaXMgaXMgYSBidWcgYSB1c2VyIHJlcG9ydGVkIGFuZCBzdWJtaXR0ZWQgdG8gc3l6Ym90LiBJZiB0aGUgdXNlciBzdWJtaXR0ZWQgYSBwYXRjaCwgc3l6Ym90IHdpbGwgdHJ5IHRvIHRlc3QgaXQuIElmIHN5emJvdCBkb2Vzbid0IGhhdmUgdGhlIGhhcmR3YXJlLCB0aGUgdGVzdCB3aWxsIGNvbXBpbGUgYW5kIHJ1biwgYnV0IGxpa2VseSB3b24ndCBldmVuICp0b3VjaCogdGhlIGNvZGUuIEl0IGlzIHVubGlrZWx5IHRoaXMgd2lsbCByZWFjaCB0aGUgTWVsbGFub3ggY29kZS5cblxuVGhlbiBJIHJlY2FsbCB0aGUgY29yZSBxdWVzdGlvbi4gSWYgdGhlIGNvZGUgaXMgdW5yZWFjaGFibGUgaW4gR0NFL1FFTVUsIEkgbmVlZCB0byBmbGFnIGl0IGFzIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBJIG5lZWQgdG8gcmVyZWFkIHRoZSBwcm9tcHQuXG5cbkxldCdzIHNlZTogXCJSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zLi4uIGNvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVS4uLlwiXG5cbklzIHRoaXMgbWx4NSBjb2RlIHJlYWNoYWJsZSBpbiBHQ0UvUUVNVT8gSWYgdGhlcmUncyBubyBzb2Z0d2FyZSBlbXVsYXRvciBmb3IgbWx4NSwgYW5kIHRoZSBQQ0kgZnV6emVyIGNhbid0IHJlYWxpc3RpY2FsbHkgZ2V0IGRlZXAgaW50byB0aGUgZHJpdmVyICh0aGluayByZWdpc3RlcmluZyBhIG5ldGRldiBhbmQgY29uZmlndXJpbmcgVEMgcnVsZXMpLCB0aGVuIGl0IGlzIGltcG9zc2libGUgdG8gcmVhY2guIEl0IG5lZWRzIG1vcmUgdGhhbiBzaW1wbGUgUENJIHJlYWRzL3dyaXRlcyBiZWNhdXNlIG9mIGNvbXBsZXggZmlybXdhcmUgaW50ZXJhY3Rpb25zLlxuXG5Ob3csIGRvZXMgdGhlIFBDSSBmdXp6ZXIgZXZlbiAqcmVhY2gqIHRoaXM/IEkgbmVlZCB0byBxdWlja2x5IGNoZWNrIGlmIHRoZXJlJ3MgYW55IGBzeXpfcGNpX2VwYCBjb2RlIHNwZWNpZmljYWxseSBlbXVsYXRpbmcgbWx4NS4gSSBuZWVkIHRvIGJlIHN1cmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU2MzA1LCJPdXRwdXRUb2tlbnMiOjMwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTc5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDE4OjEyOjQ3LjM0MDExOTk1WiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxODc2ODY5MDIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibWx4NVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJ0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwidG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvZHJpdmVycy9uZXQvaHcvZGV2bGlua19yYXRlX3RjX2J3LnB5PTM1PUJhbmR3aWR0aCBEaXN0cmlidXRpb246XFxuLS1cXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9kcml2ZXJzL25ldC9ody9kZXZsaW5rX3JhdGVfdGNfYncucHktNDEtXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvZHJpdmVycy9uZXQvaHcvZGV2bGlua19yYXRlX3RjX2J3LnB5OjQyOkhhcmR3YXJlLVNwZWNpZmljIEJlaGF2aW9yIChtbHg1KTpcXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9kcml2ZXJzL25ldC9ody9kZXZsaW5rX3JhdGVfdGNfYncucHktNDMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9kcml2ZXJzL25ldC9ody9kZXZsaW5rX3JhdGVfdGNfYncucHk6NDQ6bWx4NSBoYXJkd2FyZSBlbmZvcmNlcyB0cmFmZmljIGNsYXNzIHNlcGFyYXRpb24gYnkgZW5zdXJpbmcgdGhhdCBlYWNoIHRyYW5zbWl0XFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvZHJpdmVycy9uZXQvaHcvZGV2bGlua19yYXRlX3RjX2J3LnB5LTQ1LXF1ZXVlIChTUSkgaXMgYXNzb2NpYXRlZCB3aXRoIGEgc2luZ2xlIFRDLiBJZiBhIHBhY2tldCBpcyBzZW50IG9uIGEgcXVldWUgdGhhdFxcbi0tXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvZHJpdmVycy9uZXQvaHcvZGV2bGlua19yYXRlX3RjX2J3LnB5PTM4OD1kZWYgdGVzdF9ub190Y19tYXBwaW5nX2JhbmR3aWR0aChjZmcpOlxcbi0tXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvZHJpdmVycy9uZXQvaHcvZGV2bGlua19yYXRlX3RjX2J3LnB5LTM5My0gICAgZmFpbF9id19tc2cgPSBcXFwiQmFuZHdpZHRoIG1hdGNoZWQgMjAvODAgc3BsaXQgd2l0aG91dCBUQyBtYXBwaW5nXFxcIlxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2RyaXZlcnMvbmV0L2h3L2RldmxpbmtfcmF0ZV90Y19idy5weTozOTQ6ICAgIGlzX21seDUgPSBcXFwiZHJpdmVyOiBtbHg1XFxcIiBpbiBldGh0b29sKGZcXFwiLWkge2NmZy5pZm5hbWV9XFxcIikuc3Rkb3V0XFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvZHJpdmVycy9uZXQvaHcvZGV2bGlua19yYXRlX3RjX2J3LnB5LTM5NS1cXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9kcml2ZXJzL25ldC9ody9kZXZsaW5rX3JhdGVfdGNfYncucHktMzk2LSAgICBpZiBydW5fYmFuZHdpZHRoX2Rpc3RyaWJ1dGlvbl90ZXN0KGNmZywgc2V0X3RjX21hcHBpbmc9RmFsc2UpOlxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2RyaXZlcnMvbmV0L2h3L2RldmxpbmtfcmF0ZV90Y19idy5weTozOTc6ICAgICAgICBpZiBpc19tbHg1OlxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2RyaXZlcnMvbmV0L2h3L2RldmxpbmtfcmF0ZV90Y19idy5weS0zOTgtICAgICAgICAgICAgcmFpc2UgS3NmdFhmYWlsRXgoZmFpbF9id19tc2cpXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvZHJpdmVycy9uZXQvaHcvZGV2bGlua19yYXRlX3RjX2J3LnB5LTM5OS0gICAgICAgIHJhaXNlIEtzZnRGYWlsRXgoZmFpbF9id19tc2cpXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvZHJpdmVycy9uZXQvaHcvZGV2bGlua19yYXRlX3RjX2J3LnB5OjQwMDogICAgaWYgaXNfbWx4NTpcXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9kcml2ZXJzL25ldC9ody9kZXZsaW5rX3JhdGVfdGNfYncucHk6NDAxOiAgICAgICAgcmFpc2UgS3NmdEZhaWxFeChcXFwibWx4NSBiZWhhdmlvciBjaGFuZ2VkOlxcXCIgKyBwYXNzX2J3X21zZylcXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9kcml2ZXJzL25ldC9ody9kZXZsaW5rX3JhdGVfdGNfYncucHktNDAyLSAgICBrc2Z0X3ByKHBhc3NfYndfbXNnKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQxODoxMjo0Ny41Mjc4MTYxOTFaIiwiU2VxIjoyMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTQ2NDc4Nzg5MjIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqVW5mdXp6YWJsZSBDb2RlIFBhdGggQXNzZXNzbWVudCoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCB0aGVyZSdzIG5vIHNvZnR3YXJlIGVtdWxhdG9yIGZvciBtbHg1LCB3aGljaCBpbW1lZGlhdGVseSBmbGFncyBpdCBhcyBhIHBvdGVudGlhbCBkZWFkIGVuZCBmb3Igc3RhbmRhcmQgZnV6emluZy4gQnV0IHdhaXQsIHdoYXQgYWJvdXQgdGhlIFBDSSBmdXp6ZXI/IENvdWxkIGl0ICpzb21laG93KiByZWFjaCBpdD8gSWYgdGhlcmUncyBhIHBvc3NpYmlsaXR5LCBJIGhhdmUgdG8ganVzdGlmeSBpdC5cblxuSWYgSSdtIHNheWluZyBcIldvcnRoRnV6emluZz10cnVlLFwiIHRoZW4gSSBuZWVkIHRvIHByb3ZpZGUgYEZvY3VzU3ltYm9sc2AgYW5kIGBFbmFibGVDb25maWdzYC4gSWYgaXQncyBcIldvcnRoRnV6emluZz1mYWxzZSxcIiB0aGUgcmVhc29uaW5nIGhhcyB0byBiZSBhaXJ0aWdodC4gVGhlIGluaXRpYWwgcmVhc29uaW5nIGlzOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWVsbGFub3ggbWx4NSBoYXJkd2FyZSBkcml2ZXIuIFNpbmNlIG1seDUgcmVxdWlyZXMgcGh5c2ljYWwgTWVsbGFub3ggaGFyZHdhcmUgYW5kIHRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdG9yIGZvciBpdCBpbiB0aGUga2VybmVsLCB0aGVzZSBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLlwiIFRoYXQgc291bmRzIHNvbGlkLCBidXQgbGV0J3MgZGVsdmUgZGVlcGVyLlxuXG5Eb2VzIFN5emthbGxlciBldmVuIHRyeSB0byBmdXp6IG1seDU/IEl0IGhhcyBhIGBzeXpfcGNpX2VwYCBmdXp6ZXIuIEl0IGNvdWxkIGJlIGEgcG9zc2liaWxpdHkuIExldCdzIHNlZSBpZiBzeXprYWxsZXIgaGFzIGZvdW5kIGFueXRoaW5nLiBJIGNhbid0IGRvIGEgZGlyZWN0IHNlYXJjaCBvZiB0aGUgU3l6a2FsbGVyIGRhc2hib2FyZCwgYnV0IEkgY2FuIG1ha2UgYW4gZWR1Y2F0ZWQgZ3Vlc3MuIENvbXBsZXggbmV0d29yayBkcml2ZXJzIG9mdGVuIHJlcXVpcmUgZmlybXdhcmUgaW50ZXJhY3Rpb24uIFdoaWxlIHRoZSBQQ0kgZnV6emVyIG1pZ2h0IHRyaWdnZXIgc29tZSBlYXJseSBwcm9iZSBjb2RlLCBoaXR0aW5nIGNvZGUgcGF0aHMgbGlrZSBgbWx4NWVfdGNfY2xlYW5fZmRiX3BlZXJfZmxvd3NgIGlzIGhpZ2hseSB1bmxpa2VseS4gVGhhdCBmdW5jdGlvbiBuZWVkcyBhIHJlZ2lzdGVyZWQgbmV0ZGV2LCBlLXN3aXRjaCBlbmFibGVkLCBhbmQgVEMgcnVsZXMgc2V0IHVwIOKAkyBlc3NlbnRpYWxseSwgYSBmdWxseSBmdW5jdGlvbmFsIG1seDUgZW52aXJvbm1lbnQgd2hpY2gganVzdCB3b3VsZG4ndCBiZSBwb3NzaWJsZSB3aXRoIGEgZ2VuZXJpYyBQQ0kgZnV6emVyLlxuXG5Pa2F5LCBsZXQncyBleGFtaW5lIHRoZSBzcGVjaWZpYyBsb2NhdGlvbnMgdGhhdCBhcmUgaW1wYWN0ZWQuIGBtbHg1X2xhZ19jcmVhdGVfc2luZ2xlX2ZkYl9maWx0ZXJgIGlzIGluIGBsYWcvc2hhcmVkX2ZkYi5jYC4gTEFHLCBvciBMaW5rIEFnZ3JlZ2F0aW9uLCBuZWVkcyBtdWx0aXBsZSBwaHlzaWNhbCBwb3J0cy4gYG1seDVfbXBlc3dfd29ya2AgaXMgaW4gYGxhZy9tcGVzdy5jYC4gVGhlc2UgYXJlIGRlZXAsIGhhcmR3YXJlLXNwZWNpZmljIGZlYXR1cmVzOiBNdWx0aS1Qb3J0IEUtU3dpdGNoLCBMaW5rIEFnZ3JlZ2F0aW9uLiBUaGVyZSdzIGFsbW9zdCB6ZXJvIGNoYW5jZSB0aGUgUENJIGZ1enplciBjYW4gcmVhY2ggdGhvc2Ugd2l0aG91dCBhIGRlZGljYXRlZCBlbXVsYXRvciwgd2hpY2ggZG9lc24ndCBleGlzdC4gVGhpcyBjb2RlIGlzIGVzc2VudGlhbGx5IHVucmVhY2hhYmxlIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuXG5cbk5vdywgbGV0IG1lIGRvdWJsZSBjaGVjayB0aGUgU3l6a2FsbGVyIGNvbmZpZy4gRG9lcyBTeXprYWxsZXIgZW5hYmxlIGBDT05GSUdfTUxYNV9DT1JFYD8gWWVzLCBpdCBkb2VzLiBJdCdzIGZ1enppbmcgdGhlIHByb2JlIGZ1bmN0aW9uLiBCdXQsIHRoZSBwcm9tcHQgaXMgZXhwbGljaXQ6IFwiUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWlucyBjb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUuXCJcblxuTWx4NSBpcyBhIHBoeXNpY2FsIGhhcmR3YXJlIGRyaXZlciwgdGhlcmUgaXMgbm8gYG1seDVfc2ltYCBvciBzaW1pbGFyIHNvZnR3YXJlIGVtdWxhdG9yLCBzbyB0aGVzZSBUQyBmbG93cywgTEFHLCBhbmQgTVBFU1cgbW9kaWZpY2F0aW9ucyB3aWxsIGJlIHVuYWNoaWV2YWJsZSBpbiBHQ0UvUUVNVS5cblxuVGhlIHJlYXNvbmluZyBuZWVkcyB0byBiZSBjbGVhciwgc28gaGVyZSBpdCBpczogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lbGxhbm94IG1seDUgaGFyZHdhcmUgZHJpdmVyLCBzcGVjaWZpY2FsbHkgZGVlcCBsb2dpYyByZWxhdGVkIHRvIFRDIGZsb3dzLCBMaW5rIEFnZ3JlZ2F0aW9uIChMQUcpLCBhbmQgTXVsdGktUG9ydCBFLVN3aXRjaCAoTVBFU1cpLiBTaW5jZSBtbHg1IHJlcXVpcmVzIHBoeXNpY2FsIE1lbGxhbm94IGhhcmR3YXJlIGFuZCB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRvciBmb3IgaXQgaW4gdGhlIGtlcm5lbCwgdGhlc2UgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVS5cIlxuXG5Ib2xkIG9uLCB3aGF0IGFib3V0IGEgdmlydHVhbCBkZXZpY2UgdGhhdCB1c2VzIHRoaXMgY29kZT8gTWF5YmUgYG5ldGRldnNpbWA/IE5vLCB0aGF0J3MgYSBjb21wbGV0ZWx5IHNlcGFyYXRlIGRyaXZlci4gQ291bGQgaXQgYmUgdXNlZCB3aXRoIHZkcGE/IGB2ZHBhYCBoYXMgYG1seDVfdmRwYWAsIGJ1dCBpdCAqc3RpbGwqIG5lZWRzIGEgcGh5c2ljYWwgbWx4NSBkZXZpY2UuIFdoYXQgYWJvdXQgdmZpbz8gWWVzLCBidXQgaXQgcmVxdWlyZXMgcGh5c2ljYWwgaGFyZHdhcmUgdG9vLlxuXG5UaGUgY29uY2x1c2lvbiBzdGFuZHMuIFRoaXMgcmVxdWlyZXMgcGh5c2ljYWwgaGFyZHdhcmUuXG5cbkxldCdzIGRvIGEgZmluYWwgcXVpY2sgcGF0Y2ggcmV2aWV3LiBGaWxlcyBtb2RpZmllZCBhcmU6IGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdGMuY2AsIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL21wZXN3LmNgLCBhbmQgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvc2hhcmVkX2ZkYi5jYC4gQWxsIHdpdGhpbiB0aGUgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9gIGRpcmVjdG9yeS4gWWVwLCB0aGF0IGNvbmZpcm1zIGl0OiBNZWxsYW5veCBDb25uZWN0WCBoYXJkd2FyZSBkcml2ZXIuXG5cbkkgd2lsbCBzZXQgYFdvcnRoRnV6emluZz1mYWxzZWAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU4MjYyLCJPdXRwdXRUb2tlbnMiOjExMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjk2MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQxODoxMzowMi4xNzU2OTgyNDRaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMjAxMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWVsbGFub3ggbWx4NSBoYXJkd2FyZSBkcml2ZXIsIHNwZWNpZmljYWxseSBkZWVwIGxvZ2ljIHJlbGF0ZWQgdG8gVEMgZmxvd3MsIExpbmsgQWdncmVnYXRpb24gKExBRyksIGFuZCBNdWx0aS1Qb3J0IEUtU3dpdGNoIChNUEVTVykuIFNpbmNlIG1seDUgcmVxdWlyZXMgcGh5c2ljYWwgTWVsbGFub3ggaGFyZHdhcmUgYW5kIHRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdG9yIGZvciBpdCBpbiB0aGUga2VybmVsLCB0aGVzZSBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lbGxhbm94IG1seDUgaGFyZHdhcmUgZHJpdmVyLCBzcGVjaWZpY2FsbHkgZGVlcCBsb2dpYyByZWxhdGVkIHRvIFRDIGZsb3dzLCBMaW5rIEFnZ3JlZ2F0aW9uIChMQUcpLCBhbmQgTXVsdGktUG9ydCBFLVN3aXRjaCAoTVBFU1cpLiBTaW5jZSBtbHg1IHJlcXVpcmVzIHBoeXNpY2FsIE1lbGxhbm94IGhhcmR3YXJlIGFuZCB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRvciBmb3IgaXQgaW4gdGhlIGtlcm5lbCwgdGhlc2UgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowztnwq[1] Phase: Running StartedAt: 2026-06-30 18:13:13 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowztnwq[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-06-30 18:13:13 +0000 UTC FinishedAt: 2026-06-30 18:13:22 +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,}