Name: series-workflowz6n5l Phase: Failed StartedAt: 2026-08-30 15:47:50 +0000 UTC FinishedAt: 2026-08-30 16:43:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz6n5l[0] Phase: Succeeded StartedAt: 2026-08-30 15:47:50 +0000 UTC FinishedAt: 2026-08-30 16:43:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz6n5l[0].run-triage Phase: Succeeded StartedAt: 2026-08-30 15:47:50 +0000 UTC FinishedAt: 2026-08-30 16:43:35 +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+CgkJCTx0ZD4yMDI2LzA4LzMwIDE2OjMzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MTBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O0tNU0FOUmVhc29uaW5nJiMzNDs6ICYjMzQ7JiMzNDssCiAgJiMzNDtOZWVkc0tNU0FOJiMzNDs6IGZhbHNlLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIHRoZSBpbml0aWFsaXphdGlvbiBvcmRlciBvZiBgYnAtXHUwMDNldHN1X2Nsa19sb2NrYCBiZWZvcmUgcmVnaXN0ZXJpbmcgdGhlIFBUUCBjbG9jayBpbiBgZ2VtX3B0cF9pbml0KClgIGZvciB0aGUgQ2FkZW5jZSBNQUNCL0dFTSBuZXR3b3JrIGRyaXZlciAoZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jKS4gVGhpcyBkcml2ZXIgaXMgZm9yIGhhcmR3YXJlLXNwZWNpZmljIENhZGVuY2UgRXRoZXJuZXQgTUFDIElQIG9uIGVtYmVkZGVkIFNvQ3MgKHN1Y2ggYXMgQXRtZWwvTWljcm9jaGlwLCBYaWxpbnggWnlucSwgU2lGaXZlKSBvciBwcm9wcmlldGFyeSBQQ0kgdGVzdCBjYXJkcywgd2hpY2ggYXJlIG5vdCBwcmVzZW50IGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChlLmcuIFFFTVUgc3RhbmRhcmQgdmlydCAvIEdDRSkuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzMwIDE2OjMzPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgZWFjMWUxZWIyZTcyOGUwODEwYWIyMmQ5YzhiMWZkZjc3MTRlYjBiMFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTdW4gQXVnIDMwIDE2OjMzOjA4IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuY1xuaW5kZXggZTUxOTVkN2RhYzFkNS4uMDU1MTYwYzQyZGIzYyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jXG5AQCAtMzMwLDYgJiM0MzszMzAsOCBAQCB2b2lkIGdlbV9wdHBfaW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxuIFxuIFx0YnAtXHUwMDNlcHRwX2Nsb2NrX2luZm8gPSBnZW1fcHRwX2NhcHNfdGVtcGxhdGU7XG4gXG4mIzQzO1x0c3Bpbl9sb2NrX2luaXQoXHUwMDI2YnAtXHUwMDNldHN1X2Nsa19sb2NrKTtcbiYjNDM7XG4gXHQvKiBub21pbmFsIGZyZXF1ZW5jeSBhbmQgbWF4aW11bSBhZGp1c3RtZW50IGluIHBwYiAqL1xuIFx0YnAtXHUwMDNldHN1X3JhdGUgPSBicC1cdTAwM2VwdHBfaW5mby1cdTAwM2VnZXRfdHN1X3JhdGUoYnApO1xuIFx0YnAtXHUwMDNlcHRwX2Nsb2NrX2luZm8ubWF4X2FkaiA9IGJwLVx1MDAzZXB0cF9pbmZvLVx1MDAzZWdldF9wdHBfbWF4X2FkaigpO1xuQEAgLTM0NSw4ICYjNDM7MzQ3LDYgQEAgdm9pZCBnZW1fcHRwX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbiBcdFx0cmV0dXJuO1xuIFx0fVxuIFxuLVx0c3Bpbl9sb2NrX2luaXQoXHUwMDI2YnAtXHUwMDNldHN1X2Nsa19sb2NrKTtcbi1cbiBcdGdlbV9wdHBfaW5pdF90c3UoYnApO1xuIFxuIFx0ZGV2X2luZm8oXHUwMDI2YnAtXHUwMDNlcGRldi1cdTAwM2VkZXYsIFwmIzM0OyVzIHB0cCBjbG9jayByZWdpc3RlcmVkLlxcblwmIzM0OyxcbkBAIC00NjcsNCAmIzQzOzQ2NywzIEBAIGludCBnZW1fc2V0X2h3dHN0KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXG4gXG4gXHRyZXR1cm4gMDtcbiB9XG4tXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzAgMTY6MzM8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MTBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmNvcmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIHRoZSBpbml0aWFsaXphdGlvbiBvcmRlciBvZiBgYnAtXHUwMDNldHN1X2Nsa19sb2NrYCBiZWZvcmUgcmVnaXN0ZXJpbmcgdGhlIFBUUCBjbG9jayBpbiBgZ2VtX3B0cF9pbml0KClgIGZvciB0aGUgQ2FkZW5jZSBNQUNCL0dFTSBuZXR3b3JrIGRyaXZlciAoZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jKS4gVGhpcyBkcml2ZXIgaXMgZm9yIGhhcmR3YXJlLXNwZWNpZmljIENhZGVuY2UgRXRoZXJuZXQgTUFDIElQIG9uIGVtYmVkZGVkIFNvQ3MgKHN1Y2ggYXMgQXRtZWwvTWljcm9jaGlwLCBYaWxpbnggWnlucSwgU2lGaXZlKSBvciBwcm9wcmlldGFyeSBQQ0kgdGVzdCBjYXJkcywgd2hpY2ggYXJlIG5vdCBwcmVzZW50IGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChlLmcuIFFFTVUgc3RhbmRhcmQgdmlydCAvIEdDRSkuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgZWFjMWUxZWIyZTcyOGUwODEwYWIyMmQ5YzhiMWZkZjc3MTRlYjBiMApBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBTdW4gQXVnIDMwIDE2OjMzOjA4IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jCmluZGV4IGU1MTk1ZDdkYWMxZDUuLjA1NTE2MGM0MmRiM2MgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMKQEAgLTMzMCw2ICYjNDM7MzMwLDggQEAgdm9pZCBnZW1fcHRwX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldikKIAogCWJwLSZndDtwdHBfY2xvY2tfaW5mbyA9IGdlbV9wdHBfY2Fwc190ZW1wbGF0ZTsKIAomIzQzOwlzcGluX2xvY2tfaW5pdCgmYW1wO2JwLSZndDt0c3VfY2xrX2xvY2spOwomIzQzOwogCS8qIG5vbWluYWwgZnJlcXVlbmN5IGFuZCBtYXhpbXVtIGFkanVzdG1lbnQgaW4gcHBiICovCiAJYnAtJmd0O3RzdV9yYXRlID0gYnAtJmd0O3B0cF9pbmZvLSZndDtnZXRfdHN1X3JhdGUoYnApOwogCWJwLSZndDtwdHBfY2xvY2tfaW5mby5tYXhfYWRqID0gYnAtJmd0O3B0cF9pbmZvLSZndDtnZXRfcHRwX21heF9hZGooKTsKQEAgLTM0NSw4ICYjNDM7MzQ3LDYgQEAgdm9pZCBnZW1fcHRwX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldikKIAkJcmV0dXJuOwogCX0KIAotCXNwaW5fbG9ja19pbml0KCZhbXA7YnAtJmd0O3RzdV9jbGtfbG9jayk7Ci0KIAlnZW1fcHRwX2luaXRfdHN1KGJwKTsKIAogCWRldl9pbmZvKCZhbXA7YnAtJmd0O3BkZXYtJmd0O2RldiwgJiMzNDslcyBwdHAgY2xvY2sgcmVnaXN0ZXJlZC5cbiYjMzQ7LApAQCAtNDY3LDQgJiM0Mzs0NjcsMyBAQCBpbnQgZ2VtX3NldF9od3RzdChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LAogCiAJcmV0dXJuIDA7CiB9Ci0KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzAgMTY6MzM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjJtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjI3OAoJCQkJCQkJb3V0cHV0OiAzMQoJCQkJCQkJdGhvdWdodHM6IDg2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgSSBhbmFseXplIHRoaXMgcGF0Y2g6CgoqKkluaXRpYWwgQXNzZXNzbWVudDogRnV6emluZyBGZWFzaWJpbGl0eSoqCgpPa2F5LCBmaXJzdCB0aGluZ3MgZmlyc3QsIGxldCYjMzk7cyBmaWd1cmUgb3V0IGlmIHRoaXMgcGF0Y2ggaXMgZXZlbiB3b3J0aCBvdXIgdGltZS4gSXMgaXQgc29tZXRoaW5nIHRoYXQmIzM5O3MgcmlwZSBmb3IgZnV6emluZz8gV2hhdCYjMzk7cyB0aGUgc2NvcGUgb2YgdGhlIGNoYW5nZXM/IFRoZSBnb2FsIGhlcmUgaXMgdG8gZGV0ZXJtaW5lIHF1aWNrbHkgaWYgaXQmIzM5O3Mgc29tZXRoaW5nIHJlYWNoYWJsZSB0aHJvdWdoIG15IHN0YW5kYXJkIGZ1enppbmcgc2V0dXBzLCBvciBpZiBpdCB0b3VjaGVzIHNvbWV0aGluZyB0aGF0IHdpbGwgcmVxdWlyZSBtb3JlIGNvbXBsZXggc2V0dXAsIGxpa2UgaGFyZHdhcmUgZW11bGF0aW9uIG9yIHBsYXRmb3JtLXNwZWNpZmljIGNvbmZpZ3VyYXRpb25zIEkgaGF2ZW4mIzM5O3QgZGVhbHQgd2l0aCBiZWZvcmUuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBhdHRhY2sgc3VyZmFjZS4KCioqRGl2aW5nIGludG8gdGhlIENvZGUqKgoKTm93LCBsZXQmIzM5O3MgZ2V0IHNwZWNpZmljLiBUaGUgcHJvbXB0IG1lbnRpb25zIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmNgLiBUaGF0JiMzOTtzIGEgZ29vZCBzdGFydGluZyBwb2ludC4gSSYjMzk7bGwgbmVlZCB0byBkaWcgaW50byB0aGF0IGZpbGUgYW5kIGFueSByZWxhdGVkIEtjb25maWcgYW5kIHNvdXJjZSBmaWxlcyB0byBnZXQgYSBmdWxsIHBpY3R1cmUuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBuZXR3b3JrIGludGVyZmFjZSBhbmQgaWYgdGhlcmUmIzM5O3MgYW4gb2J2aW91cyBlbnRyeXBvaW50IGZvciBleHBsb2l0YXRpb24uIEkmIzM5O2xsIGJlIGxvb2tpbmcgZm9yIHBvdGVudGlhbCB2dWxuZXJhYmlsaXRpZXMsIGludGVyZXN0aW5nIGRhdGEgZmxvd3MsIGFuZCBtYXliZSBzb21lIG9wcG9ydHVuaXRpZXMgZm9yIGNvZGUgaW5qZWN0aW9uIG9yIGJ1ZmZlciBvdmVyZmxvd3MsIHdoaWNoIGFyZSB0aGUgdXN1YWwgc3VzcGVjdHMgaW4gdGhpcyBhcmVhLiBGcm9tIHRoZXJlLCBJJiMzOTtsbCBuZWVkIHRvIHRyYWNlIGlucHV0cywgYW5kIGRldGVybWluZSBpZiBhbnkgb2YgaXQgaXMgdXNlci1jb250cm9sbGVkLCBhbmQgaWYgaXQmIzM5O3MgYWNjZXNzaWJsZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMCAxNjozNTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtNQUNCJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTcxMyBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnPTIwPWlmIE5FVF9WRU5ET1JfQ0FERU5DRVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnLTIxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnOjIyOmNvbmZpZyBNQUNCXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL0tjb25maWc6MjM6XHR0cmlzdGF0ZSBcJiMzNDtDYWRlbmNlIE1BQ0IvR0VNIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvS2NvbmZpZy0yNC1cdGRlcGVuZHMgb24gSEFTX0RNQSBcdTAwMjZcdTAwMjYgQ09NTU9OX0NMS1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvS2NvbmZpZy0yOC1cdGhlbHBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvS2NvbmZpZzoyOTpcdCAgVGhlIENhZGVuY2UgTUFDQiBldGhlcm5ldCBpbnRlcmZhY2UgaXMgZm91bmQgb24gbWFueSBBdG1lbCBBVDMyIGFuZFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnLTMwLVx0ICBBVDkxIHBhcnRzLiAgVGhpcyBkcml2ZXIgYWxzbyBzdXBwb3J0cyB0aGUgQ2FkZW5jZSBHRU0gKEdpZ2FiaXRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvS2NvbmZpZy0zMS1cdCAgRXRoZXJuZXQgTUFDIGZvdW5kIGluIHNvbWUgQVJNIFNvQyBkZXZpY2VzKS4gIFNheSBZIHRvIGluY2x1ZGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvS2NvbmZpZzozMjpcdCAgc3VwcG9ydCBmb3IgdGhlIE1BQ0IvR0VNIGNoaXAuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL0tjb25maWctMzMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnLTM2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnOjM3OmNvbmZpZyBNQUNCX1VTRV9IV1NUQU1QXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL0tjb25maWctMzgtXHRib29sIFwmIzM0O1VzZSBJRUVFIDE1ODggaHdzdGFtcFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnOjM5Olx0ZGVwZW5kcyBvbiBNQUNCXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL0tjb25maWctNDAtXHRkZXBlbmRzIG9uIFBUUF8xNTg4X0NMT0NLXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnLTQyLVx0aGVscFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnOjQzOlx0ICBFbmFibGUgSUVFRSAxNTg4IFByZWNpc2lvbiBUaW1lIFByb3RvY29sIChQVFApIHN1cHBvcnQgZm9yIE1BQ0IuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL0tjb25maWctNDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL0tjb25maWc6NDU6Y29uZmlnIE1BQ0JfUENJXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL0tjb25maWc6NDY6XHR0cmlzdGF0ZSBcJiMzNDtDYWRlbmNlIFBDSSBNQUNCL0dFTSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL0tjb25maWc6NDc6XHRkZXBlbmRzIG9uIE1BQ0IgXHUwMDI2XHUwMDI2IFBDSVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnLTQ4LVx0aGVscFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnOjQ5Olx0ICBUaGlzIGlzIFBDSSB3cmFwcGVyIGZvciBNQUNCIGRyaXZlci5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvS2NvbmZpZy01MC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL01ha2VmaWxlPTU9bWFjYi15XHQ6PSBtYWNiX21haW4ub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9NYWtlZmlsZS02LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9NYWtlZmlsZTo3OmlmZXEgKCQoQ09ORklHX01BQ0JfVVNFX0hXU1RBTVApLHkpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL01ha2VmaWxlLTgtbWFjYi15XHQmIzQzOz0gbWFjYl9wdHAub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9NYWtlZmlsZT05PWVuZGlmXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL01ha2VmaWxlLTEwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9NYWtlZmlsZToxMTpvYmotJChDT05GSUdfTUFDQikgJiM0Mzs9IG1hY2Iub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9NYWtlZmlsZToxMjpvYmotJChDT05GSUdfTUFDQl9QQ0kpICYjNDM7PSBtYWNiX3BjaS5vXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMi0vKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MzogKiBBdG1lbCBNQUNCIEV0aGVybmV0IENvbnRyb2xsZXIgZHJpdmVyXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC00LSAqXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNi0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc6I2lmbmRlZiBfTUFDQl9IXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4OiNkZWZpbmUgX01BQ0JfSFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtOS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjE4OiNkZWZpbmUgTUFDQl9HUkVHU19OQlIgMTZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjE5OiNkZWZpbmUgTUFDQl9HUkVHU19WRVJTSU9OIDJcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjIwOiNkZWZpbmUgTUFDQl9NQVhfUVVFVUVTIDhcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTIxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjI6LyogTUFDQiByZWdpc3RlciBvZmZzZXRzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyMzojZGVmaW5lIE1BQ0JfTkNSXHRcdDB4MDAwMCAvKiBOZXR3b3JrIENvbnRyb2wgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI0OiNkZWZpbmUgTUFDQl9OQ0ZHUlx0XHQweDAwMDQgLyogTmV0d29yayBDb25maWcgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI1OiNkZWZpbmUgTUFDQl9OU1JcdFx0MHgwMDA4IC8qIE5ldHdvcmsgU3RhdHVzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNjojZGVmaW5lIE1BQ0JfVEFSXHRcdDB4MDAwYyAvKiBBVDkxUk05MjAwIG9ubHkgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI3OiNkZWZpbmUgTUFDQl9UQ1JcdFx0MHgwMDEwIC8qIEFUOTFSTTkyMDAgb25seSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mjg6I2RlZmluZSBNQUNCX1RTUlx0XHQweDAwMTQgLyogVHJhbnNtaXQgU3RhdHVzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyOTojZGVmaW5lIE1BQ0JfUkJRUFx0XHQweDAwMTggLyogUlggUSBCYXNlIEFkZHJlc3MgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjMwOiNkZWZpbmUgTUFDQl9UQlFQXHRcdDB4MDAxYyAvKiBUWCBRIEJhc2UgQWRkcmVzcyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MzE6I2RlZmluZSBNQUNCX1JTUlx0XHQweDAwMjAgLyogUmVjZWl2ZSBTdGF0dXMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjMyOiNkZWZpbmUgTUFDQl9JU1JcdFx0MHgwMDI0IC8qIEludGVycnVwdCBTdGF0dXMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjMzOiNkZWZpbmUgTUFDQl9JRVJcdFx0MHgwMDI4IC8qIEludGVycnVwdCBFbmFibGUgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjM0OiNkZWZpbmUgTUFDQl9JRFJcdFx0MHgwMDJjIC8qIEludGVycnVwdCBEaXNhYmxlICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDozNTojZGVmaW5lIE1BQ0JfSU1SXHRcdDB4MDAzMCAvKiBJbnRlcnJ1cHQgTWFzayAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MzY6I2RlZmluZSBNQUNCX01BTlx0XHQweDAwMzQgLyogUEhZIE1haW50ZW5hbmNlICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDozNzojZGVmaW5lIE1BQ0JfUFRSXHRcdDB4MDAzOFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mzg6I2RlZmluZSBNQUNCX1BGUlx0XHQweDAwM2NcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjM5OiNkZWZpbmUgTUFDQl9GVE9cdFx0MHgwMDQwXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0MDojZGVmaW5lIE1BQ0JfU0NGXHRcdDB4MDA0NFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDE6I2RlZmluZSBNQUNCX01DRlx0XHQweDAwNDhcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQyOiNkZWZpbmUgTUFDQl9GUk9cdFx0MHgwMDRjXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0MzojZGVmaW5lIE1BQ0JfRkNTRVx0XHQweDAwNTBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ0OiNkZWZpbmUgTUFDQl9BTEVcdFx0MHgwMDU0XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0NTojZGVmaW5lIE1BQ0JfRFRGXHRcdDB4MDA1OFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDY6I2RlZmluZSBNQUNCX0xDT0xcdFx0MHgwMDVjXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0NzojZGVmaW5lIE1BQ0JfRVhDT0xcdFx0MHgwMDYwXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0ODojZGVmaW5lIE1BQ0JfVFVORFx0XHQweDAwNjRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ5OiNkZWZpbmUgTUFDQl9DU0VcdFx0MHgwMDY4XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo1MDojZGVmaW5lIE1BQ0JfUlJFXHRcdDB4MDA2Y1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NTE6I2RlZmluZSBNQUNCX1JPVlJcdFx0MHgwMDcwXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo1MjojZGVmaW5lIE1BQ0JfUlNFXHRcdDB4MDA3NFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NTM6I2RlZmluZSBNQUNCX0VMRVx0XHQweDAwNzhcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjU0OiNkZWZpbmUgTUFDQl9SSkFcdFx0MHgwMDdjXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo1NTojZGVmaW5lIE1BQ0JfVVNGXHRcdDB4MDA4MFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NTY6I2RlZmluZSBNQUNCX1NURVx0XHQweDAwODRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjU3OiNkZWZpbmUgTUFDQl9STEVcdFx0MHgwMDg4XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo1ODojZGVmaW5lIE1BQ0JfVFBGXHRcdDB4MDA4Y1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NTk6I2RlZmluZSBNQUNCX0hSQlx0XHQweDAwOTBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjYwOiNkZWZpbmUgTUFDQl9IUlRcdFx0MHgwMDk0XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo2MTojZGVmaW5lIE1BQ0JfU0ExQlx0XHQweDAwOThcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjYyOiNkZWZpbmUgTUFDQl9TQTFUXHRcdDB4MDA5Y1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NjM6I2RlZmluZSBNQUNCX1NBMkJcdFx0MHgwMGEwXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo2NDojZGVmaW5lIE1BQ0JfU0EyVFx0XHQweDAwYTRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjY1OiNkZWZpbmUgTUFDQl9TQTNCXHRcdDB4MDBhOFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NjY6I2RlZmluZSBNQUNCX1NBM1RcdFx0MHgwMGFjXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo2NzojZGVmaW5lIE1BQ0JfU0E0Qlx0XHQweDAwYjBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjY4OiNkZWZpbmUgTUFDQl9TQTRUXHRcdDB4MDBiNFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Njk6I2RlZmluZSBNQUNCX1RJRFx0XHQweDAwYjhcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjcwOiNkZWZpbmUgTUFDQl9UUFFcdFx0MHgwMGJjXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3MTojZGVmaW5lIE1BQ0JfVVNSSU9cdFx0MHgwMGMwXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3MjojZGVmaW5lIE1BQ0JfV09MXHRcdDB4MDBjNFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzM6I2RlZmluZSBNQUNCX01JRFx0XHQweDAwZmNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc0OiNkZWZpbmUgTUFDQl9UQlFQSFx0XHQweDA0QzhcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc1OiNkZWZpbmUgTUFDQl9SQlFQSFx0XHQweDA0RDRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTc2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTIzMC0vKiBCaXRmaWVsZHMgaW4gTkNSICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyMzE6I2RlZmluZSBNQUNCX0xCX09GRlNFVFx0XHQwIC8qIHJlc2VydmVkICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyMzI6I2RlZmluZSBNQUNCX0xCX1NJWkVcdFx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjMzOiNkZWZpbmUgTUFDQl9MTEJfT0ZGU0VUXHRcdDEgLyogTG9vcCBiYWNrIGxvY2FsICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyMzQ6I2RlZmluZSBNQUNCX0xMQl9TSVpFXHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjIzNTojZGVmaW5lIE1BQ0JfUkVfT0ZGU0VUXHRcdDIgLyogUmVjZWl2ZSBlbmFibGUgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjIzNjojZGVmaW5lIE1BQ0JfUkVfU0laRVx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyMzc6I2RlZmluZSBNQUNCX1RFX09GRlNFVFx0XHQzIC8qIFRyYW5zbWl0IGVuYWJsZSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjM4OiNkZWZpbmUgTUFDQl9URV9TSVpFXHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjIzOTojZGVmaW5lIE1BQ0JfTVBFX09GRlNFVFx0XHQ0IC8qIE1hbmFnZW1lbnQgcG9ydCBlbmFibGUgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI0MDojZGVmaW5lIE1BQ0JfTVBFX1NJWkVcdFx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjQxOiNkZWZpbmUgTUFDQl9DTFJTVEFUX09GRlNFVFx0NSAvKiBDbGVhciBzdGF0cyByZWdzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNDI6I2RlZmluZSBNQUNCX0NMUlNUQVRfU0laRVx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjQzOiNkZWZpbmUgTUFDQl9JTkNTVEFUX09GRlNFVFx0NiAvKiBJbmNyZW1lbnRhbCBzdGF0cyByZWdzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNDQ6I2RlZmluZSBNQUNCX0lOQ1NUQVRfU0laRVx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjQ1OiNkZWZpbmUgTUFDQl9XRVNUQVRfT0ZGU0VUXHQ3IC8qIFdyaXRlIGVuYWJsZSBzdGF0cyByZWdzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNDY6I2RlZmluZSBNQUNCX1dFU1RBVF9TSVpFXHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNDc6I2RlZmluZSBNQUNCX0JQX09GRlNFVFx0XHQ4IC8qIEJhY2sgcHJlc3N1cmUgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI0ODojZGVmaW5lIE1BQ0JfQlBfU0laRVx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNDk6I2RlZmluZSBNQUNCX1RTVEFSVF9PRkZTRVRcdDkgLyogU3RhcnQgdHJhbnNtaXNzaW9uICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNTA6I2RlZmluZSBNQUNCX1RTVEFSVF9TSVpFXHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNTE6I2RlZmluZSBNQUNCX1RIQUxUX09GRlNFVFx0MTAgLyogVHJhbnNtaXQgaGFsdCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjUyOiNkZWZpbmUgTUFDQl9USEFMVF9TSVpFXHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI1MzojZGVmaW5lIE1BQ0JfTkNSX1RQRl9PRkZTRVRcdDExIC8qIFRyYW5zbWl0IHBhdXNlIGZyYW1lICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNTQ6I2RlZmluZSBNQUNCX05DUl9UUEZfU0laRVx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjU1OiNkZWZpbmUgTUFDQl9UWlFfT0ZGU0VUXHRcdDEyIC8qIFRyYW5zbWl0IHplcm8gcXVhbnR1bSBwYXVzZSBmcmFtZSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjU2OiNkZWZpbmUgTUFDQl9UWlFfU0laRVx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNTc6I2RlZmluZSBNQUNCX1NSVFNNX09GRlNFVFx0MTUgLyogU3RvcmUgUmVjZWl2ZSBUaW1lc3RhbXAgdG8gTWVtb3J5ICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNTg6I2RlZmluZSBNQUNCX1BUUFVOSV9PRkZTRVRcdDIwIC8qIFBUUCBVbmljYXN0IHBhY2tldCBlbmFibGUgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI1OTojZGVmaW5lIE1BQ0JfUFRQVU5JX1NJWkVcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI2MDojZGVmaW5lIE1BQ0JfT1NTTU9ERV9PRkZTRVRcdDI0IC8qIEVuYWJsZSBPbmUgU3RlcCBTeW5jaHJvIE1vZGUgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI2MTojZGVmaW5lIE1BQ0JfT1NTTU9ERV9TSVpFXHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNjI6I2RlZmluZSBNQUNCX01JSU9OUkdNSUlfT0ZGU0VUXHQyOCAvKiBNSUkgVXNhZ2Ugb24gUkdNSUkgSW50ZXJmYWNlICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNjM6I2RlZmluZSBNQUNCX01JSU9OUkdNSUlfU0laRVx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMjY0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMjY1LS8qIEJpdGZpZWxkcyBpbiBOQ0ZHUiAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjY2OiNkZWZpbmUgTUFDQl9TUERfT0ZGU0VUXHRcdDAgLyogU3BlZWQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI2NzojZGVmaW5lIE1BQ0JfU1BEX1NJWkVcdFx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjY4OiNkZWZpbmUgTUFDQl9GRF9PRkZTRVRcdFx0MSAvKiBGdWxsIGR1cGxleCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjY5OiNkZWZpbmUgTUFDQl9GRF9TSVpFXHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI3MDojZGVmaW5lIE1BQ0JfQklUX1JBVEVfT0ZGU0VUXHQyIC8qIERpc2NhcmQgbm9uLVZMQU4gZnJhbWVzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNzE6I2RlZmluZSBNQUNCX0JJVF9SQVRFX1NJWkVcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI3MjojZGVmaW5lIE1BQ0JfSkZSQU1FX09GRlNFVFx0MyAvKiByZXNlcnZlZCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjczOiNkZWZpbmUgTUFDQl9KRlJBTUVfU0laRVx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mjc0OiNkZWZpbmUgTUFDQl9DQUZfT0ZGU0VUXHRcdDQgLyogQ29weSBhbGwgZnJhbWVzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNzU6I2RlZmluZSBNQUNCX0NBRl9TSVpFXHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI3NjojZGVmaW5lIE1BQ0JfTkJDX09GRlNFVFx0XHQ1IC8qIE5vIGJyb2FkY2FzdCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mjc3OiNkZWZpbmUgTUFDQl9OQkNfU0laRVx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNzg6I2RlZmluZSBNQUNCX05DRkdSX01USV9PRkZTRVRcdDYgLyogTXVsdGljYXN0IGhhc2ggZW5hYmxlICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNzk6I2RlZmluZSBNQUNCX05DRkdSX01USV9TSVpFXHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyODA6I2RlZmluZSBNQUNCX1VOSV9PRkZTRVRcdFx0NyAvKiBVbmljYXN0IGhhc2ggZW5hYmxlICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyODE6I2RlZmluZSBNQUNCX1VOSV9TSVpFXHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI4MjojZGVmaW5lIE1BQ0JfQklHX09GRlNFVFx0XHQ4IC8qIFJlY2VpdmUgMTUzNiBieXRlIGZyYW1lcyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjgzOiNkZWZpbmUgTUFDQl9CSUdfU0laRVx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyODQ6I2RlZmluZSBNQUNCX0VBRV9PRkZTRVRcdFx0OSAvKiBFeHRlcm5hbCBhZGRyZXNzIG1hdGNoIGVuYWJsZSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mjg1OiNkZWZpbmUgTUFDQl9FQUVfU0laRVx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyODY6I2RlZmluZSBNQUNCX0NMS19PRkZTRVRcdFx0MTBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI4NzojZGVmaW5lIE1BQ0JfQ0xLX1NJWkVcdFx0MlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mjg4OiNkZWZpbmUgTUFDQl9SVFlfT0ZGU0VUXHRcdDEyIC8qIFJldHJ5IHRlc3QgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI4OTojZGVmaW5lIE1BQ0JfUlRZX1NJWkVcdFx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjkwOiNkZWZpbmUgTUFDQl9QQUVfT0ZGU0VUXHRcdDEzIC8qIFBhdXNlIGVuYWJsZSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjkxOiNkZWZpbmUgTUFDQl9QQUVfU0laRVx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyOTI6I2RlZmluZSBNQUNCX1JNOTIwMF9STUlJX09GRlNFVFx0MTMgLyogQVQ5MVJNOTIwMCBvbmx5ICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyOTM6I2RlZmluZSBNQUNCX1JNOTIwMF9STUlJX1NJWkVcdDEgIC8qIEFUOTFSTTkyMDAgb25seSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mjk0OiNkZWZpbmUgTUFDQl9SQk9GX09GRlNFVFx0MTQgLyogUmVjZWl2ZSBidWZmZXIgb2Zmc2V0ICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyOTU6I2RlZmluZSBNQUNCX1JCT0ZfU0laRVx0XHQyXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyOTY6I2RlZmluZSBNQUNCX1JMQ0VfT0ZGU0VUXHQxNiAvKiBMZW5ndGggZmllbGQgZXJyb3IgZnJhbWUgZGlzY2FyZCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mjk3OiNkZWZpbmUgTUFDQl9STENFX1NJWkVcdFx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mjk4OiNkZWZpbmUgTUFDQl9EUkZDU19PRkZTRVRcdDE3IC8qIEZDUyByZW1vdmUgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI5OTojZGVmaW5lIE1BQ0JfRFJGQ1NfU0laRVx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDozMDA6I2RlZmluZSBNQUNCX0VGUkhEX09GRlNFVFx0MThcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjMwMTojZGVmaW5lIE1BQ0JfRUZSSERfU0laRVx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDozMDI6I2RlZmluZSBNQUNCX0lSWEZDU19PRkZTRVRcdDE5XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDozMDM6I2RlZmluZSBNQUNCX0lSWEZDU19TSVpFXHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0zMDQtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMzY0LS8qIEJpdGZpZWxkcyBpbiBOU1IgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjM2NTojZGVmaW5lIE1BQ0JfTlNSX0xJTktfT0ZGU0VUXHQwIC8qIHBjc19saW5rX3N0YXRlICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDozNjY6I2RlZmluZSBNQUNCX05TUl9MSU5LX1NJWkVcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjM2NzojZGVmaW5lIE1BQ0JfTURJT19PRkZTRVRcdDEgLyogc3RhdHVzIG9mIHRoZSBtZGlvX2luIHBpbiAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MzY4OiNkZWZpbmUgTUFDQl9NRElPX1NJWkVcdFx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MzY5OiNkZWZpbmUgTUFDQl9JRExFX09GRlNFVFx0MiAvKiBUaGUgUEhZIG1hbmFnZW1lbnQgbG9naWMgaXMgaWRsZSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MzcwOiNkZWZpbmUgTUFDQl9JRExFX1NJWkVcdFx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMzcxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMzcyLS8qIEJpdGZpZWxkcyBpbiBUU1IgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjM3MzojZGVmaW5lIE1BQ0JfVUJSX09GRlNFVFx0XHQwIC8qIFVzZWQgYml0IHJlYWQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjM3NDojZGVmaW5lIE1BQ0JfVUJSX1NJWkVcdFx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mzc1OiNkZWZpbmUgTUFDQl9DT0xfT0ZGU0VUXHRcdDEgLyogQ29sbGlzaW9uIG9jY3VycmVkICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDozNzY6I2RlZmluZSBNQUNCX0NPTF9TSVpFXHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjM3NzojZGVmaW5lIE1BQ0JfVFNSX1JMRV9PRkZTRVRcdDIgLyogUmV0cnkgbGltaXQgZXhjZWVkZWQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjM3ODojZGVmaW5lIE1BQ0JfVFNSX1JMRV9TSVpFXHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDozNzk6I2RlZmluZSBNQUNCX1RHT19PRkZTRVRcdFx0MyAvKiBUcmFuc21pdCBnbyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MzgwOiNkZWZpbmUgTUFDQl9UR09fU0laRVx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDozODE6I2RlZmluZSBNQUNCX0JFWF9PRkZTRVRcdFx0NCAvKiBUWCBmcmFtZSBjb3JydXB0aW9uIGR1ZSB0byBBSEIgZXJyb3IgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjM4MjojZGVmaW5lIE1BQ0JfQkVYX1NJWkVcdFx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MzgzOiNkZWZpbmUgTUFDQl9STTkyMDBfQk5RX09GRlNFVFx0NCAvKiBBVDkxUk05MjAwIG9ubHkgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjM4NDojZGVmaW5lIE1BQ0JfUk05MjAwX0JOUV9TSVpFXHQxIC8qIEFUOTFSTTkyMDAgb25seSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mzg1OiNkZWZpbmUgTUFDQl9DT01QX09GRlNFVFx0NSAvKiBUcm5hc21pdCBjb21wbGV0ZSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mzg2OiNkZWZpbmUgTUFDQl9DT01QX1NJWkVcdFx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mzg3OiNkZWZpbmUgTUFDQl9VTkRfT0ZGU0VUXHRcdDYgLyogVHJuYXNtaXQgdW5kZXIgcnVuICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDozODg6I2RlZmluZSBNQUNCX1VORF9TSVpFXHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTM4OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTM5MC0vKiBCaXRmaWVsZHMgaW4gUlNSICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDozOTE6I2RlZmluZSBNQUNCX0JOQV9PRkZTRVRcdFx0MCAvKiBCdWZmZXIgbm90IGF2YWlsYWJsZSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MzkyOiNkZWZpbmUgTUFDQl9CTkFfU0laRVx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDozOTM6I2RlZmluZSBNQUNCX1JFQ19PRkZTRVRcdFx0MSAvKiBGcmFtZSByZWNlaXZlZCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mzk0OiNkZWZpbmUgTUFDQl9SRUNfU0laRVx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDozOTU6I2RlZmluZSBNQUNCX09WUl9PRkZTRVRcdFx0MiAvKiBSZWNlaXZlIG92ZXJydW4gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjM5NjojZGVmaW5lIE1BQ0JfT1ZSX1NJWkVcdFx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMzk3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMzk4LS8qIEJpdGZpZWxkcyBpbiBJU1IvSUVSL0lEUi9JTVIgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjM5OTojZGVmaW5lIE1BQ0JfTUZEX09GRlNFVFx0XHQwIC8qIE1hbmFnZW1lbnQgZnJhbWUgc2VudCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDAwOiNkZWZpbmUgTUFDQl9NRkRfU0laRVx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0MDE6I2RlZmluZSBNQUNCX1JDT01QX09GRlNFVFx0MSAvKiBSZWNlaXZlIGNvbXBsZXRlICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0MDI6I2RlZmluZSBNQUNCX1JDT01QX1NJWkVcdFx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDAzOiNkZWZpbmUgTUFDQl9SWFVCUl9PRkZTRVRcdDIgLyogUlggdXNlZCBiaXQgcmVhZCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDA0OiNkZWZpbmUgTUFDQl9SWFVCUl9TSVpFXHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQwNTojZGVmaW5lIE1BQ0JfVFhVQlJfT0ZGU0VUXHQzIC8qIFRYIHVzZWQgYml0IHJlYWQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQwNjojZGVmaW5lIE1BQ0JfVFhVQlJfU0laRVx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0MDc6I2RlZmluZSBNQUNCX0lTUl9UVU5EX09GRlNFVFx0NCAvKiBFbmFibGUgVFggYnVmZmVyIHVuZGVyIHJ1biBpbnRlcnJ1cHQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQwODojZGVmaW5lIE1BQ0JfSVNSX1RVTkRfU0laRVx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDA5OiNkZWZpbmUgTUFDQl9JU1JfUkxFX09GRlNFVFx0NSAvKiBFTiByZXRyeSBleGNlZWRlZC9sYXRlIGNvbGwgaW50ZXJydXB0ICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0MTA6I2RlZmluZSBNQUNCX0lTUl9STEVfU0laRVx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDExOiNkZWZpbmUgTUFDQl9UWEVSUl9PRkZTRVRcdDYgLyogRU4gVFggZnJhbWUgY29ycnVwdCBmcm9tIGVycm9yIGludGVycnVwdCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDEyOiNkZWZpbmUgTUFDQl9UWEVSUl9TSVpFXHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQxMzojZGVmaW5lIE1BQ0JfUk05MjAwX1RCUkVfT0ZGU0VUXHQ2IC8qIEVOIG1heSBzZW5kIG5ldyBmcmFtZSBpbnRlcnJ1cHQgKFJNOTIwMCkgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQxNDojZGVmaW5lIE1BQ0JfUk05MjAwX1RCUkVfU0laRVx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDE1OiNkZWZpbmUgTUFDQl9UQ09NUF9PRkZTRVRcdDcgLyogRW5hYmxlIHRyYW5zbWl0IGNvbXBsZXRlIGludGVycnVwdCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDE2OiNkZWZpbmUgTUFDQl9UQ09NUF9TSVpFXHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQxNzojZGVmaW5lIE1BQ0JfSVNSX0xJTktfT0ZGU0VUXHQ5IC8qIEVuYWJsZSBsaW5rIGNoYW5nZSBpbnRlcnJ1cHQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQxODojZGVmaW5lIE1BQ0JfSVNSX0xJTktfU0laRVx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDE5OiNkZWZpbmUgTUFDQl9JU1JfUk9WUl9PRkZTRVRcdDEwIC8qIEVuYWJsZSByZWNlaXZlIG92ZXJydW4gaW50ZXJydXB0ICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0MjA6I2RlZmluZSBNQUNCX0lTUl9ST1ZSX1NJWkVcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQyMTojZGVmaW5lIE1BQ0JfSFJFU1BfT0ZGU0VUXHQxMSAvKiBFbmFibGUgaHJzZXAgbm90IE9LIGludGVycnVwdCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDIyOiNkZWZpbmUgTUFDQl9IUkVTUF9TSVpFXHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQyMzojZGVmaW5lIE1BQ0JfUEZSX09GRlNFVFx0XHQxMiAvKiBFbmFibGUgcGF1c2UgZnJhbWUgdy8gcXVhbnR1bSBpbnRlcnJ1cHQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQyNDojZGVmaW5lIE1BQ0JfUEZSX1NJWkVcdFx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDI1OiNkZWZpbmUgTUFDQl9QVFpfT0ZGU0VUXHRcdDEzIC8qIEVuYWJsZSBwYXVzZSB0aW1lIHplcm8gaW50ZXJydXB0ICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0MjY6I2RlZmluZSBNQUNCX1BUWl9TSVpFXHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQyNzojZGVmaW5lIE1BQ0JfV09MX09GRlNFVFx0XHQxNCAvKiBFbmFibGUgd2FrZS1vbi1sYW4gaW50ZXJydXB0ICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0Mjg6I2RlZmluZSBNQUNCX1dPTF9TSVpFXHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQyOTojZGVmaW5lIE1BQ0JfRFJRRlJfT0ZGU0VUXHQxOCAvKiBQVFAgRGVsYXkgUmVxdWVzdCBGcmFtZSBSZWNlaXZlZCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDMwOiNkZWZpbmUgTUFDQl9EUlFGUl9TSVpFXHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQzMTojZGVmaW5lIE1BQ0JfU0ZSX09GRlNFVFx0XHQxOSAvKiBQVFAgU3luYyBGcmFtZSBSZWNlaXZlZCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDMyOiNkZWZpbmUgTUFDQl9TRlJfU0laRVx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0MzM6I2RlZmluZSBNQUNCX0RSUUZUX09GRlNFVFx0MjAgLyogUFRQIERlbGF5IFJlcXVlc3QgRnJhbWUgVHJhbnNtaXR0ZWQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQzNDojZGVmaW5lIE1BQ0JfRFJRRlRfU0laRVx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0MzU6I2RlZmluZSBNQUNCX1NGVF9PRkZTRVRcdFx0MjEgLyogUFRQIFN5bmMgRnJhbWUgVHJhbnNtaXR0ZWQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQzNjojZGVmaW5lIE1BQ0JfU0ZUX1NJWkVcdFx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDM3OiNkZWZpbmUgTUFDQl9QRFJRRlJfT0ZGU0VUXHQyMiAvKiBQRGVsYXkgUmVxdWVzdCBGcmFtZSBSZWNlaXZlZCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDM4OiNkZWZpbmUgTUFDQl9QRFJRRlJfU0laRVx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDM5OiNkZWZpbmUgTUFDQl9QRFJTRlJfT0ZGU0VUXHQyMyAvKiBQRGVsYXkgUmVzcG9uc2UgRnJhbWUgUmVjZWl2ZWQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ0MDojZGVmaW5lIE1BQ0JfUERSU0ZSX1NJWkVcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ0MTojZGVmaW5lIE1BQ0JfUERSUUZUX09GRlNFVFx0MjQgLyogUERlbGF5IFJlcXVlc3QgRnJhbWUgVHJhbnNtaXR0ZWQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ0MjojZGVmaW5lIE1BQ0JfUERSUUZUX1NJWkVcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ0MzojZGVmaW5lIE1BQ0JfUERSU0ZUX09GRlNFVFx0MjUgLyogUERlbGF5IFJlc3BvbnNlIEZyYW1lIFRyYW5zbWl0dGVkICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0NDQ6I2RlZmluZSBNQUNCX1BEUlNGVF9TSVpFXHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0NDU6I2RlZmluZSBNQUNCX1NSSV9PRkZTRVRcdFx0MjYgLyogVFNVIFNlY29uZHMgUmVnaXN0ZXIgSW5jcmVtZW50ICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0NDY6I2RlZmluZSBNQUNCX1NSSV9TSVpFXHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTQ0Ny0jZGVmaW5lIEdFTV9XT0xfT0ZGU0VUXHRcdDI4IC8qIEVuYWJsZSB3YWtlLW9uLWxhbiBpbnRlcnJ1cHQgKi9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC00NTAtLyogVGltZXIgaW5jcmVtZW50IGZpZWxkcyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDUxOiNkZWZpbmUgTUFDQl9USV9DTlNfT0ZGU0VUXHQwXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0NTI6I2RlZmluZSBNQUNCX1RJX0NOU19TSVpFXHQ4XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0NTM6I2RlZmluZSBNQUNCX1RJX0FDTlNfT0ZGU0VUXHQ4XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0NTQ6I2RlZmluZSBNQUNCX1RJX0FDTlNfU0laRVx0OFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDU1OiNkZWZpbmUgTUFDQl9USV9OSVRfT0ZGU0VUXHQxNlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDU2OiNkZWZpbmUgTUFDQl9USV9OSVRfU0laRVx0OFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNDU3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNDU4LS8qIEJpdGZpZWxkcyBpbiBNQU4gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ1OTojZGVmaW5lIE1BQ0JfREFUQV9PRkZTRVRcdDAgLyogZGF0YSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDYwOiNkZWZpbmUgTUFDQl9EQVRBX1NJWkVcdFx0MTZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ2MTojZGVmaW5lIE1BQ0JfQ09ERV9PRkZTRVRcdDE2IC8qIE11c3QgYmUgd3JpdHRlbiB0byAxMCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDYyOiNkZWZpbmUgTUFDQl9DT0RFX1NJWkVcdFx0MlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDYzOiNkZWZpbmUgTUFDQl9SRUdBX09GRlNFVFx0MTggLyogUmVnaXN0ZXIgYWRkcmVzcyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDY0OiNkZWZpbmUgTUFDQl9SRUdBX1NJWkVcdFx0NVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDY1OiNkZWZpbmUgTUFDQl9QSFlBX09GRlNFVFx0MjMgLyogUEhZIGFkZHJlc3MgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ2NjojZGVmaW5lIE1BQ0JfUEhZQV9TSVpFXHRcdDVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ2NzojZGVmaW5lIE1BQ0JfUldfT0ZGU0VUXHRcdDI4IC8qIE9wZXJhdGlvbi4gMTAgaXMgcmVhZC4gMDEgaXMgd3JpdGUuICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0Njg6I2RlZmluZSBNQUNCX1JXX1NJWkVcdFx0MlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDY5OiNkZWZpbmUgTUFDQl9TT0ZfT0ZGU0VUXHRcdDMwIC8qIE11c3QgYmUgd3JpdHRlbiB0byAxIGZvciBDbGF1c2UgMjIgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ3MDojZGVmaW5lIE1BQ0JfU09GX1NJWkVcdFx0MlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNDcxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNDcyLS8qIEJpdGZpZWxkcyBpbiBVU1JJTyAoQVZSMzIpICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0NzM6I2RlZmluZSBNQUNCX01JSV9PRkZTRVRcdFx0XHRcdDBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ3NDojZGVmaW5lIE1BQ0JfTUlJX1NJWkVcdFx0XHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ3NTojZGVmaW5lIE1BQ0JfRUFNX09GRlNFVFx0XHRcdFx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDc2OiNkZWZpbmUgTUFDQl9FQU1fU0laRVx0XHRcdFx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDc3OiNkZWZpbmUgTUFDQl9UWF9QQVVTRV9PRkZTRVRcdFx0XHQyXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0Nzg6I2RlZmluZSBNQUNCX1RYX1BBVVNFX1NJWkVcdFx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0Nzk6I2RlZmluZSBNQUNCX1RYX1BBVVNFX1pFUk9fT0ZGU0VUXHRcdDNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ4MDojZGVmaW5lIE1BQ0JfVFhfUEFVU0VfWkVST19TSVpFXHRcdFx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNDgxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNDgyLS8qIEJpdGZpZWxkcyBpbiBVU1JJTyAoQVQ5MSkgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ4MzojZGVmaW5lIE1BQ0JfUk1JSV9PRkZTRVRcdFx0XHQwXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0ODQ6I2RlZmluZSBNQUNCX1JNSUlfU0laRVx0XHRcdFx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNDg1LSNkZWZpbmUgR0VNX1JHTUlJX09GRlNFVFx0XHRcdDAgLyogR0VNIGdpZ2FiaXQgbW9kZSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNDg2LSNkZWZpbmUgR0VNX1JHTUlJX1NJWkVcdFx0XHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ4NzojZGVmaW5lIE1BQ0JfQ0xLRU5fT0ZGU0VUXHRcdFx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDg4OiNkZWZpbmUgTUFDQl9DTEtFTl9TSVpFXHRcdFx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC00ODktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC00OTAtLyogQml0ZmllbGRzIGluIFdPTCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDkxOiNkZWZpbmUgTUFDQl9JUF9PRkZTRVRcdFx0XHRcdDBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ5MjojZGVmaW5lIE1BQ0JfSVBfU0laRVx0XHRcdFx0MTZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ5MzojZGVmaW5lIE1BQ0JfTUFHX09GRlNFVFx0XHRcdFx0MTZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ5NDojZGVmaW5lIE1BQ0JfTUFHX1NJWkVcdFx0XHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ5NTojZGVmaW5lIE1BQ0JfQVJQX09GRlNFVFx0XHRcdFx0MTdcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ5NjojZGVmaW5lIE1BQ0JfQVJQX1NJWkVcdFx0XHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ5NzojZGVmaW5lIE1BQ0JfU0ExX09GRlNFVFx0XHRcdFx0MThcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ5ODojZGVmaW5lIE1BQ0JfU0ExX1NJWkVcdFx0XHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ5OTojZGVmaW5lIE1BQ0JfV09MX01USV9PRkZTRVRcdFx0XHQxOVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NTAwOiNkZWZpbmUgTUFDQl9XT0xfTVRJX1NJWkVcdFx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC01MDEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC01MDItLyogQml0ZmllbGRzIGluIE1JRCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NTAzOiNkZWZpbmUgTUFDQl9JRE5VTV9PRkZTRVRcdFx0XHQxNlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NTA0OiNkZWZpbmUgTUFDQl9JRE5VTV9TSVpFXHRcdFx0XHQxMlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NTA1OiNkZWZpbmUgTUFDQl9SRVZfT0ZGU0VUXHRcdFx0XHQwXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo1MDY6I2RlZmluZSBNQUNCX1JFVl9TSVpFXHRcdFx0XHQxNlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNTA3LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTY3OC0vKiBCaXRmaWVsZHMgaW4gcXVldWUgcG9pbnRlciByZWdpc3RlcnMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjY3OTojZGVmaW5lIE1BQ0JfUVVFVUVfRElTQUJMRV9PRkZTRVRcdFx0MCAvKiBkaXNhYmxlIHF1ZXVlICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo2ODA6I2RlZmluZSBNQUNCX1FVRVVFX0RJU0FCTEVfU0laRVx0XHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTY4MS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC03MjktLyogQ29uc3RhbnRzIGZvciBDTEsgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjczMDojZGVmaW5lIE1BQ0JfQ0xLX0RJVjhcdFx0XHRcdDBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjczMTojZGVmaW5lIE1BQ0JfQ0xLX0RJVjE2XHRcdFx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3MzI6I2RlZmluZSBNQUNCX0NMS19ESVYzMlx0XHRcdFx0MlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzMzOiNkZWZpbmUgTUFDQl9DTEtfRElWNjRcdFx0XHRcdDNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTczNC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC03NDUtLyogQ29uc3RhbnRzIGZvciBNQU4gcmVnaXN0ZXIgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc0NjojZGVmaW5lIE1BQ0JfTUFOX0MyMl9TT0ZcdFx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3NDc6I2RlZmluZSBNQUNCX01BTl9DMjJfV1JJVEVcdFx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3NDg6I2RlZmluZSBNQUNCX01BTl9DMjJfUkVBRFx0XHRcdDJcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc0OTojZGVmaW5lIE1BQ0JfTUFOX0MyMl9DT0RFXHRcdFx0MlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNzUwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzUxOiNkZWZpbmUgTUFDQl9NQU5fQzQ1X1NPRlx0XHRcdDBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc1MjojZGVmaW5lIE1BQ0JfTUFOX0M0NV9BRERSXHRcdFx0MFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzUzOiNkZWZpbmUgTUFDQl9NQU5fQzQ1X1dSSVRFXHRcdFx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzU0OiNkZWZpbmUgTUFDQl9NQU5fQzQ1X1BPU1RfUkVBRF9JTkNSXHRcdDJcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc1NTojZGVmaW5lIE1BQ0JfTUFOX0M0NV9SRUFEXHRcdFx0M1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzU2OiNkZWZpbmUgTUFDQl9NQU5fQzQ1X0NPREVcdFx0XHQyXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC03NTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC03NTgtLyogQ2FwYWJpbGl0eSBtYXNrIGJpdHMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc1OTojZGVmaW5lIE1BQ0JfQ0FQU19JU1JfQ0xFQVJfT05fV1JJVEVcdFx0QklUKDApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3NjA6I2RlZmluZSBNQUNCX0NBUFNfVVNSSU9fSEFTX0NMS0VOXHRcdEJJVCgxKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzYxOiNkZWZpbmUgTUFDQl9DQVBTX1VTUklPX0RFRkFVTFRfSVNfTUlJX0dNSUlcdEJJVCgyKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzYyOiNkZWZpbmUgTUFDQl9DQVBTX05PX0dJR0FCSVRfSEFMRlx0XHRCSVQoMylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc2MzojZGVmaW5lIE1BQ0JfQ0FQU19VU1JJT19ESVNBQkxFRFx0XHRCSVQoNClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc2NDojZGVmaW5lIE1BQ0JfQ0FQU19KVU1CT1x0XHRcdFx0QklUKDUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3NjU6I2RlZmluZSBNQUNCX0NBUFNfR0VNX0hBU19QVFBcdFx0XHRCSVQoNilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc2NjojZGVmaW5lIE1BQ0JfQ0FQU19CRF9SRF9QUkVGRVRDSFx0XHRCSVQoNylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc2NzojZGVmaW5lIE1BQ0JfQ0FQU19ORUVEU19SU1RPTlVCUlx0XHRCSVQoOClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc2ODojZGVmaW5lIE1BQ0JfQ0FQU19NSUlPTlJHTUlJXHRcdFx0QklUKDkpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3Njk6I2RlZmluZSBNQUNCX0NBUFNfTkVFRF9UU1VDTEtcdFx0XHRCSVQoMTApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3NzA6I2RlZmluZSBNQUNCX0NBUFNfUVVFVUVfRElTQUJMRVx0XHRcdEJJVCgxMSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc3MTojZGVmaW5lIE1BQ0JfQ0FQU19RQlZcdFx0XHRcdEJJVCgxMilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc3MjojZGVmaW5lIE1BQ0JfQ0FQU19QQ1NcdFx0XHRcdEJJVCgxMylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc3MzojZGVmaW5lIE1BQ0JfQ0FQU19ISUdIX1NQRUVEXHRcdFx0QklUKDE0KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Nzc0OiNkZWZpbmUgTUFDQl9DQVBTX0NMS19IV19DSEdcdFx0XHRCSVQoMTUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3NzU6I2RlZmluZSBNQUNCX0NBUFNfTUFDQl9JU19FTUFDXHRcdFx0QklUKDE2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Nzc2OiNkZWZpbmUgTUFDQl9DQVBTX0ZJRk9fTU9ERVx0XHRcdEJJVCgxNylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc3NzojZGVmaW5lIE1BQ0JfQ0FQU19HSUdBQklUX01PREVfQVZBSUxBQkxFXHRCSVQoMTgpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3Nzg6I2RlZmluZSBNQUNCX0NBUFNfU0dfRElTQUJMRURcdFx0XHRCSVQoMTkpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3Nzk6I2RlZmluZSBNQUNCX0NBUFNfTUFDQl9JU19HRU1cdFx0XHRCSVQoMjApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3ODA6I2RlZmluZSBNQUNCX0NBUFNfRE1BXzY0Qlx0XHRcdEJJVCgyMSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc4MTojZGVmaW5lIE1BQ0JfQ0FQU19ETUFfUFRQXHRcdFx0QklUKDIyKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzgyOiNkZWZpbmUgTUFDQl9DQVBTX1JTQ1x0XHRcdFx0QklUKDIzKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzgzOiNkZWZpbmUgTUFDQl9DQVBTX05PX0xTT1x0XHRcdEJJVCgyNClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc4NDojZGVmaW5lIE1BQ0JfQ0FQU19FRUVcdFx0XHRcdEJJVCgyNSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc4NTojZGVmaW5lIE1BQ0JfQ0FQU19VU1JJT19IQVNfTUlJXHRcdFx0QklUKDI2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Nzg2OiNkZWZpbmUgTUFDQl9DQVBTX1VTUklPX0hBU19SRUZDTEtfU09VUkNFXHRCSVQoMjcpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3ODc6I2RlZmluZSBNQUNCX0NBUFNfVVNSSU9fSEFTX1RTVUNMS19TT1VSQ0VcdEJJVCgyOClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTc4OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTc4OS0vKiBMU08gc2V0dGluZ3MgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc5MDojZGVmaW5lIE1BQ0JfTFNPX1VGT19FTkFCTEVcdFx0XHQweDAxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3OTE6I2RlZmluZSBNQUNCX0xTT19UU09fRU5BQkxFXHRcdFx0MHgwMlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNzkyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNzkzLS8qIEJpdCBtYW5pcHVsYXRpb24gbWFjcm9zICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3OTQ6I2RlZmluZSBNQUNCX0JJVChuYW1lKVx0XHRcdFx0XHRcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Nzk1Olx0KDEgXHUwMDNjXHUwMDNjIE1BQ0JfIyNuYW1lIyNfT0ZGU0VUKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Nzk2OiNkZWZpbmUgTUFDQl9CRihuYW1lLHZhbHVlKVx0XHRcdFx0XFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc5NzpcdCgoKHZhbHVlKSBcdTAwMjYgKCgxIFx1MDAzY1x1MDAzYyBNQUNCXyMjbmFtZSMjX1NJWkUpIC0gMSkpXHRcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Nzk4Olx0IFx1MDAzY1x1MDAzYyBNQUNCXyMjbmFtZSMjX09GRlNFVClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc5OTojZGVmaW5lIE1BQ0JfQkZFWFQobmFtZSx2YWx1ZSlcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODAwOlx0KCgodmFsdWUpIFx1MDAzZVx1MDAzZSBNQUNCXyMjbmFtZSMjX09GRlNFVClcdFx0XFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjgwMTpcdCBcdTAwMjYgKCgxIFx1MDAzY1x1MDAzYyBNQUNCXyMjbmFtZSMjX1NJWkUpIC0gMSkpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4MDI6I2RlZmluZSBNQUNCX0JGSU5TKG5hbWUsdmFsdWUsb2xkKVx0XHRcdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4MDM6XHQoKChvbGQpIFx1MDAyNiB+KCgoMSBcdTAwM2NcdTAwM2MgTUFDQl8jI25hbWUjI19TSVpFKSAtIDEpXHRcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODA0Olx0XHQgICAgXHUwMDNjXHUwMDNjIE1BQ0JfIyNuYW1lIyNfT0ZGU0VUKSlcdFx0XFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjgwNTpcdCB8IE1BQ0JfQkYobmFtZSx2YWx1ZSkpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC04MDYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtODIwLS8qIFJlZ2lzdGVyIGFjY2VzcyBtYWNyb3MgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjgyMTojZGVmaW5lIG1hY2JfcmVhZGwocG9ydCwgcmVnKVx0XHQocG9ydCktXHUwMDNlbWFjYl9yZWdfcmVhZGwoKHBvcnQpLCBNQUNCXyMjcmVnKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODIyOiNkZWZpbmUgbWFjYl93cml0ZWwocG9ydCwgcmVnLCB2YWx1ZSlcdChwb3J0KS1cdTAwM2VtYWNiX3JlZ193cml0ZWwoKHBvcnQpLCBNQUNCXyMjcmVnLCAodmFsdWUpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtODIzLSNkZWZpbmUgZ2VtX3JlYWRsKHBvcnQsIHJlZylcdFx0KHBvcnQpLVx1MDAzZW1hY2JfcmVnX3JlYWRsKChwb3J0KSwgR0VNXyMjcmVnKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTgyOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjgzMDovKiBDb25kaXRpb25hbCBHRU0vTUFDQiBtYWNyb3MuICBUaGVzZSBwZXJmb3JtIHRoZSBvcGVyYXRpb24gdG8gdGhlIGNvcnJlY3RcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjgzMTogKiByZWdpc3RlciBkZXBlbmRlbnQgb24gd2hldGhlciB0aGUgZGV2aWNlIGlzIGEgR0VNIG9yIGEgTUFDQi4gIEZvciByZWdpc3RlcnNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTgzMi0gKiBhbmQgYml0ZmllbGRzIHRoYXQgYXJlIGNvbW1vbiBhY3Jvc3MgYm90aCBkZXZpY2VzLCB1c2UgbWFjYl97cmVhZCx3cml0ZX1sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtODUyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODUzOiNkZWZpbmUgTUFDQl9SRUFEX05TUihicClcdG1hY2JfcmVhZGwoYnAsIE5TUilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTg1NC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaD04Njk9c3RydWN0IG1hY2JfZG1hX2Rlc2NfcHRwIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC04NzQtLyogRE1BIGRlc2NyaXB0b3IgYml0ZmllbGRzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4NzU6I2RlZmluZSBNQUNCX1JYX1VTRURfT0ZGU0VUXHRcdFx0MFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODc2OiNkZWZpbmUgTUFDQl9SWF9VU0VEX1NJWkVcdFx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4Nzc6I2RlZmluZSBNQUNCX1JYX1dSQVBfT0ZGU0VUXHRcdFx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODc4OiNkZWZpbmUgTUFDQl9SWF9XUkFQX1NJWkVcdFx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4Nzk6I2RlZmluZSBNQUNCX1JYX1dBRERSX09GRlNFVFx0XHRcdDJcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjg4MDojZGVmaW5lIE1BQ0JfUlhfV0FERFJfU0laRVx0XHRcdDMwXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC04ODEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4ODI6I2RlZmluZSBNQUNCX1JYX0ZSTUxFTl9PRkZTRVRcdFx0XHQwXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4ODM6I2RlZmluZSBNQUNCX1JYX0ZSTUxFTl9TSVpFXHRcdFx0MTJcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjg4NDojZGVmaW5lIE1BQ0JfUlhfT0ZGU0VUX09GRlNFVFx0XHRcdDEyXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4ODU6I2RlZmluZSBNQUNCX1JYX09GRlNFVF9TSVpFXHRcdFx0MlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODg2OiNkZWZpbmUgTUFDQl9SWF9TT0ZfT0ZGU0VUXHRcdFx0MTRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjg4NzojZGVmaW5lIE1BQ0JfUlhfU09GX1NJWkVcdFx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4ODg6I2RlZmluZSBNQUNCX1JYX0VPRl9PRkZTRVRcdFx0XHQxNVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODg5OiNkZWZpbmUgTUFDQl9SWF9FT0ZfU0laRVx0XHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjg5MDojZGVmaW5lIE1BQ0JfUlhfQ0ZJX09GRlNFVFx0XHRcdDE2XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4OTE6I2RlZmluZSBNQUNCX1JYX0NGSV9TSVpFXHRcdFx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODkyOiNkZWZpbmUgTUFDQl9SWF9WTEFOX1BSSV9PRkZTRVRcdFx0XHQxN1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODkzOiNkZWZpbmUgTUFDQl9SWF9WTEFOX1BSSV9TSVpFXHRcdFx0M1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODk0OiNkZWZpbmUgTUFDQl9SWF9QUklfVEFHX09GRlNFVFx0XHRcdDIwXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4OTU6I2RlZmluZSBNQUNCX1JYX1BSSV9UQUdfU0laRVx0XHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjg5NjojZGVmaW5lIE1BQ0JfUlhfVkxBTl9UQUdfT0ZGU0VUXHRcdFx0MjFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjg5NzojZGVmaW5lIE1BQ0JfUlhfVkxBTl9UQUdfU0laRVx0XHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjg5ODojZGVmaW5lIE1BQ0JfUlhfVFlQRUlEX01BVENIX09GRlNFVFx0XHQyMlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODk5OiNkZWZpbmUgTUFDQl9SWF9UWVBFSURfTUFUQ0hfU0laRVx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5MDA6I2RlZmluZSBNQUNCX1JYX1NBNF9NQVRDSF9PRkZTRVRcdFx0MjNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjkwMTojZGVmaW5lIE1BQ0JfUlhfU0E0X01BVENIX1NJWkVcdFx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5MDI6I2RlZmluZSBNQUNCX1JYX1NBM19NQVRDSF9PRkZTRVRcdFx0MjRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjkwMzojZGVmaW5lIE1BQ0JfUlhfU0EzX01BVENIX1NJWkVcdFx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5MDQ6I2RlZmluZSBNQUNCX1JYX1NBMl9NQVRDSF9PRkZTRVRcdFx0MjVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjkwNTojZGVmaW5lIE1BQ0JfUlhfU0EyX01BVENIX1NJWkVcdFx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5MDY6I2RlZmluZSBNQUNCX1JYX1NBMV9NQVRDSF9PRkZTRVRcdFx0MjZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjkwNzojZGVmaW5lIE1BQ0JfUlhfU0ExX01BVENIX1NJWkVcdFx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5MDg6I2RlZmluZSBNQUNCX1JYX0VYVF9NQVRDSF9PRkZTRVRcdFx0MjhcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjkwOTojZGVmaW5lIE1BQ0JfUlhfRVhUX01BVENIX1NJWkVcdFx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5MTA6I2RlZmluZSBNQUNCX1JYX1VIQVNIX01BVENIX09GRlNFVFx0XHQyOVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6OTExOiNkZWZpbmUgTUFDQl9SWF9VSEFTSF9NQVRDSF9TSVpFXHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjkxMjojZGVmaW5lIE1BQ0JfUlhfTUhBU0hfTUFUQ0hfT0ZGU0VUXHRcdDMwXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5MTM6I2RlZmluZSBNQUNCX1JYX01IQVNIX01BVENIX1NJWkVcdFx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6OTE0OiNkZWZpbmUgTUFDQl9SWF9CUk9BRENBU1RfT0ZGU0VUXHRcdDMxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5MTU6I2RlZmluZSBNQUNCX1JYX0JST0FEQ0FTVF9TSVpFXHRcdFx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtOTE2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6OTE3OiNkZWZpbmUgTUFDQl9SWF9GUk1MRU5fTUFTS1x0XHRcdDB4RkZGXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5MTg6I2RlZmluZSBNQUNCX1JYX0pGUk1MRU5fTUFTS1x0XHRcdDB4M0ZGRlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtOTE5LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTkyNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjkyODojZGVmaW5lIE1BQ0JfVFhfRlJNTEVOX09GRlNFVFx0XHRcdDBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjkyOTojZGVmaW5lIE1BQ0JfVFhfRlJNTEVOX1NJWkVcdFx0XHQxMVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6OTMwOiNkZWZpbmUgTUFDQl9UWF9MQVNUX09GRlNFVFx0XHRcdDE1XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5MzE6I2RlZmluZSBNQUNCX1RYX0xBU1RfU0laRVx0XHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjkzMjojZGVmaW5lIE1BQ0JfVFhfTk9DUkNfT0ZGU0VUXHRcdFx0MTZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjkzMzojZGVmaW5lIE1BQ0JfVFhfTk9DUkNfU0laRVx0XHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjkzNDojZGVmaW5lIE1BQ0JfTVNTX01GU19PRkZTRVRcdFx0XHQxNlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6OTM1OiNkZWZpbmUgTUFDQl9NU1NfTUZTX1NJWkVcdFx0XHQxNFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6OTM2OiNkZWZpbmUgTUFDQl9UWF9MU09fT0ZGU0VUXHRcdFx0MTdcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjkzNzojZGVmaW5lIE1BQ0JfVFhfTFNPX1NJWkVcdFx0XHQyXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5Mzg6I2RlZmluZSBNQUNCX1RYX1RDUF9TRVFfU1JDX09GRlNFVFx0XHQxOVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6OTM5OiNkZWZpbmUgTUFDQl9UWF9UQ1BfU0VRX1NSQ19TSVpFXHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjk0MDojZGVmaW5lIE1BQ0JfVFhfQlVGX0VYSEFVU1RFRF9PRkZTRVRcdFx0MjdcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjk0MTojZGVmaW5lIE1BQ0JfVFhfQlVGX0VYSEFVU1RFRF9TSVpFXHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjk0MjojZGVmaW5lIE1BQ0JfVFhfVU5ERVJSVU5fT0ZGU0VUXHRcdFx0MjhcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjk0MzojZGVmaW5lIE1BQ0JfVFhfVU5ERVJSVU5fU0laRVx0XHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjk0NDojZGVmaW5lIE1BQ0JfVFhfRVJST1JfT0ZGU0VUXHRcdFx0MjlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjk0NTojZGVmaW5lIE1BQ0JfVFhfRVJST1JfU0laRVx0XHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjk0NjojZGVmaW5lIE1BQ0JfVFhfV1JBUF9PRkZTRVRcdFx0XHQzMFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6OTQ3OiNkZWZpbmUgTUFDQl9UWF9XUkFQX1NJWkVcdFx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5NDg6I2RlZmluZSBNQUNCX1RYX1VTRURfT0ZGU0VUXHRcdFx0MzFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjk0OTojZGVmaW5lIE1BQ0JfVFhfVVNFRF9TSVpFXHRcdFx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtOTUwLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oPTExOTQ9c3RydWN0IG1hY2Jfb3JfZ2VtX29wcyB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTIwMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjEyMDI6LyogTUFDQi1QVFAgaW50ZXJmYWNlOiBhZGFwdCB0byBwbGF0Zm9ybSBuZWVkcy4gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEyMDMtc3RydWN0IG1hY2JfcHRwX2luZm8ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oPTEyOTg9c3RydWN0IG1hY2Ige1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEzMTMtXHR1bnNpZ25lZCBpbnRcdFx0bnVtX3F1ZXVlcztcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzMwIDE2OjM1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4xbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE4MDAwCgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogMTU1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IExpbmUgb2YgSW5xdWlyeSoqCgpPa2F5LCBzbyBJJiMzOTttIGRpdmluZyBpbnRvIHRoaXMgYG1hY2JgIHNpdHVhdGlvbi4gRmlyc3QgdGhpbmdzIGZpcnN0LCBsZXQmIzM5O3MgdGFrZSBhIGxvb2sgYXQgYG1hY2JfcGNpLmNgIGFuZCB1bmRlcnN0YW5kIHRoZSBwcm9iaW5nIHByb2Nlc3MgZm9yIHRoZXNlIGRldmljZXMuIEkmIzM5O20gd29uZGVyaW5nLCBpcyB0aGUgTUFDQiBhY3R1YWxseSBlbXVsYXRlZCB3aXRoaW4gUUVNVT8gQW5kIHRoYXQgbGVhZHMgdG8gYSBiaWdnZXIgcXVlc3Rpb246IERvZXMgUUVNVSBldmVuIHByb3ZpZGUgYW55IGVtdWxhdGlvbiBmb3IgdGhlIENhZGVuY2UgR0VNIG9yIE1BQ0IgYXJjaGl0ZWN0dXJlPwoKQWhhLCB3YWl0IGEgbWludXRlISBJIHNlZW0gdG8gcmVjYWxsIHRoYXQgUUVNVSAqZG9lcyogZW11bGF0ZSBDYWRlbmNlIEdFTSwgbGlrZSBmb3IgdGhlIFhpbGlueCBaeW5xIHBsYXRmb3JtLCBpbXBsZW1lbnRlZCBpbiBgY2FkZW5jZV9nZW0uY2AsIHNwZWNpZmljYWxseSB1bmRlciB0aGUgYGFybS1zb2Z0bW11YCBzZWN0aW9uLiBCdXQgaXMgdGhpcyByZWxldmFudCB0byB0aGUgc3RhbmRhcmQgc3l6a2FsbGVyIC8gUUVNVSB4ODZfNjQgb3IgYXJtNjQgZW52aXJvbm1lbnRzPyBPciBpcyBgbWFjYl9wY2lgIGV2ZW4gcHJlc2VudCBpbiB0aGF0IGNvbmZpZ3VyYXRpb24/CgpSaWdodCwgYmFjayB0byB0aGUgc291cmNlLiBJIG5lZWQgdG8gcmUtZXhhbWluZSBgbWFjYl9wY2kuY2AgYW5kIHNwZWNpZmljYWxseSBwaW5wb2ludCB3aGVyZSBgZ2VtX3B0cF9pbml0YCBnZXRzIGNhbGxlZC4gVGhpcyBpcyBrZXkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzAgMTY6Mzc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcGNpLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDEwMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuICAgMjpcdC8qXG4gICAzOlx0ICogRE9DOiBDYWRlbmNlIEdFTSBQQ0kgd3JhcHBlci5cbiAgIDQ6XHQgKlxuICAgNTpcdCAqIENvcHlyaWdodCAoQykgMjAxNiBDYWRlbmNlIERlc2lnbiBTeXN0ZW1zIC0gaHR0cHM6Ly93d3cuY2FkZW5jZS5jb21cbiAgIDY6XHQgKlxuICAgNzpcdCAqIEF1dGhvcnM6IFJhZmFsIE96aWVibG8gXHUwMDNjcmFmYWxvQGNhZGVuY2UuY29tXHUwMDNlXG4gICA4Olx0ICpcdCAgICBCYXJ0b3N6IEZvbHRhIFx1MDAzY2Jmb2x0YUBjYWRlbmNlLmNvbVx1MDAzZVxuICAgOTpcdCAqL1xuICAxMDpcdFxuICAxMTpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L2Nsay5oXHUwMDNlXG4gIDEyOlx0I2luY2x1ZGUgXHUwMDNjbGludXgvY2xrLXByb3ZpZGVyLmhcdTAwM2VcbiAgMTM6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC9ldGhlcmRldmljZS5oXHUwMDNlXG4gIDE0Olx0I2luY2x1ZGUgXHUwMDNjbGludXgvbW9kdWxlLmhcdTAwM2VcbiAgMTU6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC9wY2kuaFx1MDAzZVxuICAxNjpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L3BsYXRmb3JtX2RldmljZS5oXHUwMDNlXG4gIDE3Olx0I2luY2x1ZGUgXCYjMzQ7bWFjYi5oXCYjMzQ7XG4gIDE4Olx0XG4gIDE5Olx0I2RlZmluZSBQQ0lfRFJJVkVSX05BTUUgXCYjMzQ7bWFjYl9wY2lcJiMzNDtcbiAgMjA6XHQjZGVmaW5lIFBMQVRfRFJJVkVSX05BTUUgXCYjMzQ7bWFjYlwmIzM0O1xuICAyMTpcdFxuICAyMjpcdCNkZWZpbmUgUENJX0RFVklDRV9JRF9DRE5TX01BQ0IgMHhlMDA3XG4gIDIzOlx0XG4gIDI0Olx0I2RlZmluZSBHRU1fUENMS19SQVRFIDUwMDAwMDAwXG4gIDI1Olx0I2RlZmluZSBHRU1fSENMS19SQVRFIDUwMDAwMDAwXG4gIDI2Olx0XG4gIDI3Olx0c3RhdGljIGludCBtYWNiX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwY2ksIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcbiAgMjg6XHR7XG4gIDI5Olx0XHRpbnQgZXJyO1xuICAzMDpcdFx0c3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldjtcbiAgMzE6XHRcdHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2VfaW5mbyBwbGF0X2luZm87XG4gIDMyOlx0XHRzdHJ1Y3QgbWFjYl9wbGF0Zm9ybV9kYXRhIHBsYXRfZGF0YTtcbiAgMzM6XHRcdHN0cnVjdCByZXNvdXJjZSByZXNbMl07XG4gIDM0Olx0XG4gIDM1Olx0XHQvKiBlbmFibGUgcGNpIGRldmljZSAqL1xuICAzNjpcdFx0ZXJyID0gcGNpbV9lbmFibGVfZGV2aWNlKHBjaSk7XG4gIDM3Olx0XHRpZiAoZXJyIFx1MDAzYyAwKSB7XG4gIDM4Olx0XHRcdGRldl9lcnIoXHUwMDI2cGNpLVx1MDAzZWRldiwgXCYjMzQ7RW5hYmxpbmcgUENJIGRldmljZSBoYXMgZmFpbGVkOiAlZFwmIzM0OywgZXJyKTtcbiAgMzk6XHRcdFx0cmV0dXJuIGVycjtcbiAgNDA6XHRcdH1cbiAgNDE6XHRcbiAgNDI6XHRcdHBjaV9zZXRfbWFzdGVyKHBjaSk7XG4gIDQzOlx0XG4gIDQ0Olx0XHQvKiBzZXQgdXAgcmVzb3VyY2VzICovXG4gIDQ1Olx0XHRtZW1zZXQocmVzLCAweDAwLCBzaXplb2Yoc3RydWN0IHJlc291cmNlKSAqIEFSUkFZX1NJWkUocmVzKSk7XG4gIDQ2Olx0XHRyZXNbMF0uc3RhcnQgPSBwY2lfcmVzb3VyY2Vfc3RhcnQocGNpLCAwKTtcbiAgNDc6XHRcdHJlc1swXS5lbmQgPSBwY2lfcmVzb3VyY2VfZW5kKHBjaSwgMCk7XG4gIDQ4Olx0XHRyZXNbMF0ubmFtZSA9IFBDSV9EUklWRVJfTkFNRTtcbiAgNDk6XHRcdHJlc1swXS5mbGFncyA9IElPUkVTT1VSQ0VfTUVNO1xuICA1MDpcdFx0cmVzWzFdLnN0YXJ0ID0gcGNpX2lycV92ZWN0b3IocGNpLCAwKTtcbiAgNTE6XHRcdHJlc1sxXS5uYW1lID0gUENJX0RSSVZFUl9OQU1FO1xuICA1MjpcdFx0cmVzWzFdLmZsYWdzID0gSU9SRVNPVVJDRV9JUlE7XG4gIDUzOlx0XG4gIDU0Olx0XHRkZXZfaW5mbyhcdTAwMjZwY2ktXHUwMDNlZGV2LCBcJiMzNDtFTUFDIHBoeXNpY2FsIGJhc2UgYWRkcjogJXBhXFxuXCYjMzQ7LFxuICA1NTpcdFx0XHQgXHUwMDI2cmVzWzBdLnN0YXJ0KTtcbiAgNTY6XHRcbiAgNTc6XHRcdC8qIHNldCB1cCBtYWNiIHBsYXRmb3JtIGRhdGEgKi9cbiAgNTg6XHRcdG1lbXNldChcdTAwMjZwbGF0X2RhdGEsIDAsIHNpemVvZihwbGF0X2RhdGEpKTtcbiAgNTk6XHRcbiAgNjA6XHRcdC8qIGluaXRpYWxpemUgY2xvY2tzICovXG4gIDYxOlx0XHRwbGF0X2RhdGEucGNsayA9IGNsa19yZWdpc3Rlcl9maXhlZF9yYXRlKFx1MDAyNnBjaS1cdTAwM2VkZXYsIFwmIzM0O3BjbGtcJiMzNDssIE5VTEwsIDAsXG4gIDYyOlx0XHRcdFx0XHRcdFx0IEdFTV9QQ0xLX1JBVEUpO1xuICA2MzpcdFx0aWYgKElTX0VSUihwbGF0X2RhdGEucGNsaykpIHtcbiAgNjQ6XHRcdFx0ZXJyID0gUFRSX0VSUihwbGF0X2RhdGEucGNsayk7XG4gIDY1Olx0XHRcdGdvdG8gZXJyX3BjbGtfcmVnaXN0ZXI7XG4gIDY2Olx0XHR9XG4gIDY3Olx0XG4gIDY4Olx0XHRwbGF0X2RhdGEuaGNsayA9IGNsa19yZWdpc3Rlcl9maXhlZF9yYXRlKFx1MDAyNnBjaS1cdTAwM2VkZXYsIFwmIzM0O2hjbGtcJiMzNDssIE5VTEwsIDAsXG4gIDY5Olx0XHRcdFx0XHRcdFx0IEdFTV9IQ0xLX1JBVEUpO1xuICA3MDpcdFx0aWYgKElTX0VSUihwbGF0X2RhdGEuaGNsaykpIHtcbiAgNzE6XHRcdFx0ZXJyID0gUFRSX0VSUihwbGF0X2RhdGEuaGNsayk7XG4gIDcyOlx0XHRcdGdvdG8gZXJyX2hjbGtfcmVnaXN0ZXI7XG4gIDczOlx0XHR9XG4gIDc0Olx0XG4gIDc1Olx0XHQvKiBzZXQgdXAgcGxhdGZvcm0gZGV2aWNlIGluZm8gKi9cbiAgNzY6XHRcdG1lbXNldChcdTAwMjZwbGF0X2luZm8sIDAsIHNpemVvZihwbGF0X2luZm8pKTtcbiAgNzc6XHRcdHBsYXRfaW5mby5wYXJlbnQgPSBcdTAwMjZwY2ktXHUwMDNlZGV2O1xuICA3ODpcdFx0cGxhdF9pbmZvLmZ3bm9kZSA9IHBjaS1cdTAwM2VkZXYuZndub2RlO1xuICA3OTpcdFx0cGxhdF9pbmZvLm5hbWUgPSBQTEFUX0RSSVZFUl9OQU1FO1xuICA4MDpcdFx0cGxhdF9pbmZvLmlkID0gcGNpLVx1MDAzZWRldmZuO1xuICA4MTpcdFx0cGxhdF9pbmZvLnJlcyA9IHJlcztcbiAgODI6XHRcdHBsYXRfaW5mby5udW1fcmVzID0gQVJSQVlfU0laRShyZXMpO1xuICA4MzpcdFx0cGxhdF9pbmZvLmRhdGEgPSBcdTAwMjZwbGF0X2RhdGE7XG4gIDg0Olx0XHRwbGF0X2luZm8uc2l6ZV9kYXRhID0gc2l6ZW9mKHBsYXRfZGF0YSk7XG4gIDg1Olx0XHRwbGF0X2luZm8uZG1hX21hc2sgPSBwY2ktXHUwMDNlZG1hX21hc2s7XG4gIDg2Olx0XG4gIDg3Olx0XHQvKiByZWdpc3RlciBwbGF0Zm9ybSBkZXZpY2UgKi9cbiAgODg6XHRcdHBkZXYgPSBwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXJfZnVsbChcdTAwMjZwbGF0X2luZm8pO1xuICA4OTpcdFx0aWYgKElTX0VSUihwZGV2KSkge1xuICA5MDpcdFx0XHRlcnIgPSBQVFJfRVJSKHBkZXYpO1xuICA5MTpcdFx0XHRnb3RvIGVycl9wbGF0X2Rldl9yZWdpc3RlcjtcbiAgOTI6XHRcdH1cbiAgOTM6XHRcbiAgOTQ6XHRcdHBjaV9zZXRfZHJ2ZGF0YShwY2ksIHBkZXYpO1xuICA5NTpcdFxuICA5NjpcdFx0cmV0dXJuIDA7XG4gIDk3Olx0XG4gIDk4Olx0ZXJyX3BsYXRfZGV2X3JlZ2lzdGVyOlxuICA5OTpcdFx0Y2xrX3VucmVnaXN0ZXJfZml4ZWRfcmF0ZShwbGF0X2RhdGEuaGNsayk7XG4gMTAwOlx0XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzAgMTY6Mzc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTk5NjAKCQkJCQkJCW91dHB1dDogNDUKCQkJCQkJCXRob3VnaHRzOiA1MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzLiBIZXJlJiMzOTtzIHdoYXQgSSYjMzk7bSB0aGlua2luZyBhcyBJIGFwcHJvYWNoIHRoaXMgcGF0Y2g6CgoqKkFuYWx5emluZyB0aGUgYGdlbV9wdHBfaW5pdGAgRnVuY3Rpb24qKgoKQWxyaWdodCwgSSYjMzk7bSBnb2luZyB0byBnZXQgcmlnaHQgdG8gdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgdGhpcyBwYXRjaCBpcyBkb2luZywgYW5kIHRoYXQgc3RhcnRzIHdpdGggdGhlIGBnZW1fcHRwX2luaXRgIGZ1bmN0aW9uLiBUaGUgZmlyc3QgdGhpbmcgSSYjMzk7bSBkb2luZyBpcyBsb2FkaW5nIHVwIHRoZSBwYXRjaC4gSXQmIzM5O3MgdGltZSB0byByZWFkIHRocm91Z2ggaXQuIFNwZWNpZmljYWxseSwgSSYjMzk7bSBnb2luZyB0byB6ZXJvIGluIG9uIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBgZ2VtX3B0cF9pbml0YC4gSSYjMzk7bSBnb2luZyB0byBsb29rIGF0IHRoZSBkZXRhaWxzIHdpdGhpbiB0aGUgcGF0Y2guIEkmIzM5O20gZ29pbmcgdG8gbG9vayBhdCB0aGUgZGlmZmVyZW5jZXMgdG8gc2VlIHdoYXQmIzM5O3MgY2hhbmdlZCBhbmQgdHJ5IHRvIHVuZGVyc3RhbmQgdGhlIHJhdGlvbmFsZSBvZiB0aGUgY2hhbmdlLgpUaGVuLCBsZXQmIzM5O3MgemVybyBpbiBvbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jYCBhcm91bmQgbGluZSAzMzAuIEkmIzM5O20gZ29pbmcgdG8gZXhhbWluZSB0aGUgY29kZSBhcm91bmQgdGhhdCBzcGVjaWZpYyBsaW5lLiBJIGhhdmUgYSBmZWVsaW5nIHRoYXQmIzM5O3Mgd2hlcmUgdGhlIGNvcmUgb2YgdGhlIGNoYW5nZSBvciB0aGUgcmVsYXRlZCBmdW5jdGlvbmFsaXR5IGlzIGltcGxlbWVudGVkLiBVbmRlcnN0YW5kaW5nIHdoYXQmIzM5O3MgaGFwcGVuaW5nIGluIHRoYXQgaW1tZWRpYXRlIGNvbnRleHQgaXMga2V5IHRvIGdyYXNwaW5nIHRoZSBvdmVyYWxsIGltcGFjdCBvZiB0aGUgcGF0Y2guIExldCYjMzk7cyBzZWUgaWYgdGhpcyBpcyBhbiB1cGRhdGUsIGEgYnVnZml4LCBvciBzb21ldGhpbmcgZW50aXJlbHkgbmV3LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzMwIDE2OjM4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMzEwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDgwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAzMTA6XHRcdGRlc2NfcHRwID0gbWFjYl9wdHBfZGVzYyhicCwgZGVzYyk7XG4gMzExOlx0XHQvKiBVbmxpa2VseSBidXQgY2hlY2sgKi9cbiAzMTI6XHRcdGlmICghZGVzY19wdHApIHtcbiAzMTM6XHRcdFx0ZGV2X3dhcm5fcmF0ZWxpbWl0ZWQoXHUwMDI2YnAtXHUwMDNlcGRldi1cdTAwM2VkZXYsXG4gMzE0Olx0XHRcdFx0XHQgICAgIFwmIzM0O1RpbWVzdGFtcCBub3Qgc3VwcG9ydGVkIGluIEJEXFxuXCYjMzQ7KTtcbiAzMTU6XHRcdFx0cmV0dXJuO1xuIDMxNjpcdFx0fVxuIDMxNzpcdFxuIDMxODpcdFx0LyogZW5zdXJlIHRzXzEvdHNfMiBpcyBsb2FkZWQgYWZ0ZXIgY3RybCAoVFhfVVNFRCBjaGVjaykgKi9cbiAzMTk6XHRcdGRtYV9ybWIoKTtcbiAzMjA6XHRcdGdlbV9od190aW1lc3RhbXAoYnAsIGRlc2NfcHRwLVx1MDAzZXRzXzEsIGRlc2NfcHRwLVx1MDAzZXRzXzIsIFx1MDAyNnRzKTtcbiAzMjE6XHRcbiAzMjI6XHRcdG1lbXNldChcdTAwMjZzaGh3dHN0YW1wcywgMCwgc2l6ZW9mKHNoaHd0c3RhbXBzKSk7XG4gMzIzOlx0XHRzaGh3dHN0YW1wcy5od3RzdGFtcCA9IGt0aW1lX3NldCh0cy50dl9zZWMsIHRzLnR2X25zZWMpO1xuIDMyNDpcdFx0c2tiX3RzdGFtcF90eChza2IsIFx1MDAyNnNoaHd0c3RhbXBzKTtcbiAzMjU6XHR9XG4gMzI2Olx0XG4gMzI3Olx0dm9pZCBnZW1fcHRwX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbiAzMjg6XHR7XG4gMzI5Olx0XHRzdHJ1Y3QgbWFjYiAqYnAgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xuIDMzMDpcdFxuIDMzMTpcdFx0YnAtXHUwMDNlcHRwX2Nsb2NrX2luZm8gPSBnZW1fcHRwX2NhcHNfdGVtcGxhdGU7XG4gMzMyOlx0XG4gMzMzOlx0XHRzcGluX2xvY2tfaW5pdChcdTAwMjZicC1cdTAwM2V0c3VfY2xrX2xvY2spO1xuIDMzNDpcdFxuIDMzNTpcdFx0Lyogbm9taW5hbCBmcmVxdWVuY3kgYW5kIG1heGltdW0gYWRqdXN0bWVudCBpbiBwcGIgKi9cbiAzMzY6XHRcdGJwLVx1MDAzZXRzdV9yYXRlID0gYnAtXHUwMDNlcHRwX2luZm8tXHUwMDNlZ2V0X3RzdV9yYXRlKGJwKTtcbiAzMzc6XHRcdGJwLVx1MDAzZXB0cF9jbG9ja19pbmZvLm1heF9hZGogPSBicC1cdTAwM2VwdHBfaW5mby1cdTAwM2VnZXRfcHRwX21heF9hZGooKTtcbiAzMzg6XHRcdGdlbV9wdHBfaW5pdF90aW1lcihicCk7XG4gMzM5Olx0XHRicC1cdTAwM2VwdHBfY2xvY2sgPSBwdHBfY2xvY2tfcmVnaXN0ZXIoXHUwMDI2YnAtXHUwMDNlcHRwX2Nsb2NrX2luZm8sIFx1MDAyNm5ldGRldi1cdTAwM2VkZXYpO1xuIDM0MDpcdFx0aWYgKElTX0VSUihicC1cdTAwM2VwdHBfY2xvY2spKSB7XG4gMzQxOlx0XHRcdHByX2VycihcJiMzNDtwdHAgY2xvY2sgcmVnaXN0ZXIgZmFpbGVkOiAlbGRcXG5cJiMzNDssXG4gMzQyOlx0XHRcdFx0UFRSX0VSUihicC1cdTAwM2VwdHBfY2xvY2spKTtcbiAzNDM6XHRcdFx0YnAtXHUwMDNlcHRwX2Nsb2NrID0gTlVMTDtcbiAzNDQ6XHRcdFx0cmV0dXJuO1xuIDM0NTpcdFx0fSBlbHNlIGlmIChicC1cdTAwM2VwdHBfY2xvY2sgPT0gTlVMTCkge1xuIDM0NjpcdFx0XHRwcl9lcnIoXCYjMzQ7cHRwIGNsb2NrIHJlZ2lzdGVyIGZhaWxlZFxcblwmIzM0Oyk7XG4gMzQ3Olx0XHRcdHJldHVybjtcbiAzNDg6XHRcdH1cbiAzNDk6XHRcbiAzNTA6XHRcdGdlbV9wdHBfaW5pdF90c3UoYnApO1xuIDM1MTpcdFxuIDM1MjpcdFx0ZGV2X2luZm8oXHUwMDI2YnAtXHUwMDNlcGRldi1cdTAwM2VkZXYsIFwmIzM0OyVzIHB0cCBjbG9jayByZWdpc3RlcmVkLlxcblwmIzM0OyxcbiAzNTM6XHRcdFx0IEdFTV9QVFBfVElNRVJfTkFNRSk7XG4gMzU0Olx0fVxuIDM1NTpcdFxuIDM1NjpcdHZvaWQgZ2VtX3B0cF9yZW1vdmUoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbiAzNTc6XHR7XG4gMzU4Olx0XHRzdHJ1Y3QgbWFjYiAqYnAgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xuIDM1OTpcdFxuIDM2MDpcdFx0aWYgKGJwLVx1MDAzZXB0cF9jbG9jaykge1xuIDM2MTpcdFx0XHRwdHBfY2xvY2tfdW5yZWdpc3RlcihicC1cdTAwM2VwdHBfY2xvY2spO1xuIDM2MjpcdFx0XHRicC1cdTAwM2VwdHBfY2xvY2sgPSBOVUxMO1xuIDM2MzpcdFx0fVxuIDM2NDpcdFxuIDM2NTpcdFx0Z2VtX3B0cF9jbGVhcl90aW1lcihicCk7XG4gMzY2Olx0XG4gMzY3Olx0XHRkZXZfaW5mbyhcdTAwMjZicC1cdTAwM2VwZGV2LVx1MDAzZWRldiwgXCYjMzQ7JXMgcHRwIGNsb2NrIHVucmVnaXN0ZXJlZC5cXG5cJiMzNDssXG4gMzY4Olx0XHRcdCBHRU1fUFRQX1RJTUVSX05BTUUpO1xuIDM2OTpcdH1cbiAzNzA6XHRcbiAzNzE6XHRzdGF0aWMgaW50IGdlbV9wdHBfc2V0X3RzX21vZGUoc3RydWN0IG1hY2IgKmJwLFxuIDM3MjpcdFx0XHRcdCAgICAgICBlbnVtIG1hY2JfYmRfY29udHJvbCB0eF9iZF9jb250cm9sLFxuIDM3MzpcdFx0XHRcdCAgICAgICBlbnVtIG1hY2JfYmRfY29udHJvbCByeF9iZF9jb250cm9sKVxuIDM3NDpcdHtcbiAzNzU6XHRcdGdlbV93cml0ZWwoYnAsIFRYQkRDVFJMLCBHRU1fQkYoVFhUU01PREUsIHR4X2JkX2NvbnRyb2wpKTtcbiAzNzY6XHRcdGdlbV93cml0ZWwoYnAsIFJYQkRDVFJMLCBHRU1fQkYoUlhUU01PREUsIHJ4X2JkX2NvbnRyb2wpKTtcbiAzNzc6XHRcbiAzNzg6XHRcdHJldHVybiAwO1xuIDM3OTpcdH1cbiAzODA6XHRcbiAzODE6XHRpbnQgZ2VtX2dldF9od3RzdChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxuIDM4MjpcdFx0XHQgIHN0cnVjdCBrZXJuZWxfaHd0c3RhbXBfY29uZmlnICp0c3RhbXBfY29uZmlnKVxuIDM4MzpcdHtcbiAzODQ6XHRcdHN0cnVjdCBtYWNiICpicCA9IG5ldGRldl9wcml2KG5ldGRldik7XG4gMzg1Olx0XG4gMzg2Olx0XHQqdHN0YW1wX2NvbmZpZyA9IGJwLVx1MDAzZXRzdGFtcF9jb25maWc7XG4gMzg3Olx0XHRpZiAoIW1hY2JfZG1hX3B0cChicCkpXG4gMzg4Olx0XHRcdHJldHVybiAtRU9QTk9UU1VQUDtcbiAzODk6XHRcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMCAxNjozODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTY1MgoJCQkJCQkJb3V0cHV0OiAzNQoJCQkJCQkJdGhvdWdodHM6IDEzMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipEZWJ1Z2dpbmcgYSBQb3RlbnRpYWwgUmFjZSBDb25kaXRpb24qKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gSXQgbG9va3MgbGlrZSB3ZSBoYXZlIGEgcG90ZW50aWFsIHJhY2UgY29uZGl0aW9uIGluIGBnZW1fcHRwX2luaXRgLiBTcGVjaWZpY2FsbHksIGBnZW1fcHRwX2luaXRfdGltZXIoYnApYCBpcyBiZWluZyBjYWxsZWQgYmVmb3JlIHRoZSBgc3Bpbl9sb2NrX2luaXQoJmFtcDticC0mZ3Q7dHN1X2Nsa19sb2NrKWAuIE5vdywgdGhhdCBpbW1lZGlhdGVseSByYWlzZXMgYSByZWQgZmxhZy4gV2UgbmVlZCB0byBrbm93IGlmIGBnZW1fcHRwX2luaXRfdGltZXJgIG9yLCBmb3IgdGhhdCBtYXR0ZXIsIGBwdHBfY2xvY2tfcmVnaXN0ZXJgIChzaW5jZSB0aGV5IGNvdWxkIGJlIHJlbGF0ZWQpIGFyZSB0b3VjaGluZyBgYnAtJmd0O3RzdV9jbGtfbG9ja2AuIEkmIzM5O2xsIGdvIHNlYXJjaCB0aGUgY29kZS4gTG9va3MgbGlrZSBJIHdpbGwgbmVlZCB0byBzZWFyY2ggZm9yIGB0c3VfY2xrX2xvY2tgIGluIGBtYWNiX3B0cC5jYCB0byBzZWUgaG93IGl0JiMzOTtzIGJlaW5nIHVzZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzMwIDE2OjM4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3RzdV9jbGtfbG9jayYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg9MTI5OD1zdHJ1Y3QgbWFjYiB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTM2Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjEzNjM6XHRzcGlubG9ja190IHRzdV9jbGtfbG9jazsgLyogZ2VtIHRzdSBjbG9jayBsb2NraW5nICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMzY0LVx0dW5zaWduZWQgaW50IHRzdV9yYXRlO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYz00Mz1zdGF0aWMgaW50IGdlbV90c3VfZ2V0X3RpbWUoc3RydWN0IHB0cF9jbG9ja19pbmZvICpwdHAsIHN0cnVjdCB0aW1lc3BlYzY0ICp0cyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMtNTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmM6NTE6XHRzcGluX2xvY2tfaXJxc2F2ZShcdTAwMjZicC1cdTAwM2V0c3VfY2xrX2xvY2ssIGZsYWdzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYy01Mi1cdHB0cF9yZWFkX3N5c3RlbV9wcmV0cyhzdHMpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYy03Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYzo3MzpcdHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoXHUwMDI2YnAtXHUwMDNldHN1X2Nsa19sb2NrLCBmbGFncyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMtNzQtXHR0cy1cdTAwM2V0dl9zZWMgPSAoKCh1NjQpc2VjaCBcdTAwM2NcdTAwM2MgR0VNX1RTTF9TSVpFKSB8IHNlY2wpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jPTc5PXN0YXRpYyBpbnQgZ2VtX3RzdV9zZXRfdGltZShzdHJ1Y3QgcHRwX2Nsb2NrX2luZm8gKnB0cCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMtODktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmM6OTA6XHRzcGluX2xvY2tfaXJxc2F2ZShcdTAwMjZicC1cdTAwM2V0c3VfY2xrX2xvY2ssIGZsYWdzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYy05MS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMtOTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmM6OTk6XHRzcGluX3VubG9ja19pcnFyZXN0b3JlKFx1MDAyNmJwLVx1MDAzZXRzdV9jbGtfbG9jaywgZmxhZ3MpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jLTEwMC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmM9MTA0PXN0YXRpYyBpbnQgZ2VtX3RzdV9pbmNyX3NldChzdHJ1Y3QgbWFjYiAqYnAsIHN0cnVjdCB0c3VfaW5jciAqaW5jcl9zcGVjKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYy0xMTItXHQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYzoxMTM6XHRzcGluX2xvY2tfaXJxc2F2ZShcdTAwMjZicC1cdTAwM2V0c3VfY2xrX2xvY2ssIGZsYWdzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYy0xMTQtXHQvKiBSZWdCaXRbMTU6MF0gPSBTdWJuc1syMzo4XTsgUmVnQml0WzMxOjI0XSA9IFN1Ym5zWzc6MF0gKi9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMtMTE4LVx0Z2VtX3dyaXRlbChicCwgVEksIEdFTV9CRihOU0lOQ1IsIGluY3Jfc3BlYy1cdTAwM2VucykpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jOjExOTpcdHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoXHUwMDI2YnAtXHUwMDNldHN1X2Nsa19sb2NrLCBmbGFncyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMtMTIwLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYz0zMjc9dm9pZCBnZW1fcHRwX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMtMzMyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jOjMzMzpcdHNwaW5fbG9ja19pbml0KFx1MDAyNmJwLVx1MDAzZXRzdV9jbGtfbG9jayk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMtMzM0LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMCAxNjozODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMzAzNwoJCQkJCQkJb3V0cHV0OiA0NQoJCQkJCQkJdGhvdWdodHM6IDcxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IGFuYWx5c2lzIG9mIHdoYXQmIzM5O3MgZ29pbmcgb246CgoqKkRpc3NlY3RpbmcgdGhlIGBnZW1fdHN1X2luY3Jfc2V0YCBGdW5jdGlvbiBDYWxsKioKCk9rYXksIHNvIEkmIzM5O20gdHJhY2tpbmcgdGhpcyBmdW5jdGlvbiBjYWxsLCBgZ2VtX3RzdV9pbmNyX3NldGAsIGFuZCBpdCBsb29rcyBsaWtlIGl0JiMzOTtzIGJlaW5nIGluaXRpYXRlZCBmcm9tIHdpdGhpbiBgZ2VtX3B0cF9pbml0X3RpbWVyKGJwKWAuICBUaGF0JiMzOTtzIG15IHN0YXJ0aW5nIHBvaW50LiBOb3csIHRvIHVuZGVyc3RhbmQgdGhlIGNvbnRleHQgb2YgdGhlIGNhbGwsIEkgbmVlZCB0byBkaXZlIGRlZXBlciBpbnRvIGBnZW1fcHRwX2luaXRfdGltZXIoYnApYC4gVGhlIGNvZGUgc3VnZ2VzdHMgdGhlIGZ1bmN0aW9uIGlzIGxvY2F0ZWQgaW4gYG1hY2JfcHRwLmNgLCBsaW5lcyAxMDAgdG8gMjUwIHNlZW0gdGhlIHJlbGV2YW50IGFyZWEgZm9yIHRoaXMgZGVlcGVyIGxvb2suIEkmIzM5O2xsIGZvY3VzIG15IGF0dGVudGlvbiBvbiB0aGF0IHNlY3Rpb24gdG8gc2VlIHdoYXQmIzM5O3MgbGVhZGluZyB1cCB0byB0aGUgYGdlbV90c3VfaW5jcl9zZXRgIGNhbGwgYW5kIHdoYXQmIzM5O3MgaGFwcGVuaW5nIGltbWVkaWF0ZWx5IGFmdGVyLiBUaGF0IHNob3VsZCBnaXZlIG1lIHRoZSBpbnNpZ2h0cyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgcm9sZSBvZiBgZ2VtX3RzdV9pbmNyX3NldGAgaW4gdGhlIGxhcmdlciBQVFAgaW5pdGlhbGl6YXRpb24gZmxvdy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzAgMTY6NDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxMDAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogODAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDEwMDpcdFxuIDEwMTpcdFx0cmV0dXJuIDA7XG4gMTAyOlx0fVxuIDEwMzpcdFxuIDEwNDpcdHN0YXRpYyBpbnQgZ2VtX3RzdV9pbmNyX3NldChzdHJ1Y3QgbWFjYiAqYnAsIHN0cnVjdCB0c3VfaW5jciAqaW5jcl9zcGVjKVxuIDEwNTpcdHtcbiAxMDY6XHRcdHVuc2lnbmVkIGxvbmcgZmxhZ3M7XG4gMTA3Olx0XG4gMTA4Olx0XHQvKiB0c3VfdGltZXJfaW5jciByZWdpc3RlciBtdXN0IGJlIHdyaXR0ZW4gYWZ0ZXJcbiAxMDk6XHRcdCAqIHRoZSB0c3VfdGltZXJfaW5jcl9zdWJfbnMgcmVnaXN0ZXIgYW5kIHRoZSB3cml0ZSBvcGVyYXRpb25cbiAxMTA6XHRcdCAqIHdpbGwgY2F1c2UgdGhlIHZhbHVlIHdyaXR0ZW4gdG8gdGhlIHRzdV90aW1lcl9pbmNyX3N1Yl9ucyByZWdpc3RlclxuIDExMTpcdFx0ICogdG8gdGFrZSBlZmZlY3QuXG4gMTEyOlx0XHQgKi9cbiAxMTM6XHRcdHNwaW5fbG9ja19pcnFzYXZlKFx1MDAyNmJwLVx1MDAzZXRzdV9jbGtfbG9jaywgZmxhZ3MpO1xuIDExNDpcdFx0LyogUmVnQml0WzE1OjBdID0gU3VibnNbMjM6OF07IFJlZ0JpdFszMToyNF0gPSBTdWJuc1s3OjBdICovXG4gMTE1Olx0XHRnZW1fd3JpdGVsKGJwLCBUSVNVQk4sIEdFTV9CRihTVUJOU0lOQ1JMLCBpbmNyX3NwZWMtXHUwMDNlc3ViX25zKSB8XG4gMTE2Olx0XHRcdCAgIEdFTV9CRihTVUJOU0lOQ1JILCAoaW5jcl9zcGVjLVx1MDAzZXN1Yl9ucyBcdTAwM2VcdTAwM2VcbiAxMTc6XHRcdFx0XHQgIEdFTV9TVUJOU0lOQ1JMX1NJWkUpKSk7XG4gMTE4Olx0XHRnZW1fd3JpdGVsKGJwLCBUSSwgR0VNX0JGKE5TSU5DUiwgaW5jcl9zcGVjLVx1MDAzZW5zKSk7XG4gMTE5Olx0XHRzcGluX3VubG9ja19pcnFyZXN0b3JlKFx1MDAyNmJwLVx1MDAzZXRzdV9jbGtfbG9jaywgZmxhZ3MpO1xuIDEyMDpcdFxuIDEyMTpcdFx0cmV0dXJuIDA7XG4gMTIyOlx0fVxuIDEyMzpcdFxuIDEyNDpcdHN0YXRpYyBpbnQgZ2VtX3B0cF9hZGpmaW5lKHN0cnVjdCBwdHBfY2xvY2tfaW5mbyAqcHRwLCBsb25nIHNjYWxlZF9wcG0pXG4gMTI1Olx0e1xuIDEyNjpcdFx0c3RydWN0IG1hY2IgKmJwID0gY29udGFpbmVyX29mKHB0cCwgc3RydWN0IG1hY2IsIHB0cF9jbG9ja19pbmZvKTtcbiAxMjc6XHRcdHN0cnVjdCB0c3VfaW5jciBpbmNyX3NwZWM7XG4gMTI4Olx0XHRib29sIG5lZ19hZGogPSBmYWxzZTtcbiAxMjk6XHRcdHUzMiB3b3JkO1xuIDEzMDpcdFx0dTY0IGFkajtcbiAxMzE6XHRcbiAxMzI6XHRcdGlmIChzY2FsZWRfcHBtIFx1MDAzYyAwKSB7XG4gMTMzOlx0XHRcdG5lZ19hZGogPSB0cnVlO1xuIDEzNDpcdFx0XHRzY2FsZWRfcHBtID0gLXNjYWxlZF9wcG07XG4gMTM1Olx0XHR9XG4gMTM2Olx0XG4gMTM3Olx0XHQvKiBBZGp1c3RtZW50IGlzIHJlbGF0aXZlIHRvIGJhc2UgZnJlcXVlbmN5ICovXG4gMTM4Olx0XHRpbmNyX3NwZWMuc3ViX25zID0gYnAtXHUwMDNldHN1X2luY3Iuc3ViX25zO1xuIDEzOTpcdFx0aW5jcl9zcGVjLm5zID0gYnAtXHUwMDNldHN1X2luY3IubnM7XG4gMTQwOlx0XG4gMTQxOlx0XHQvKiBzY2FsaW5nOiB1bnVzZWQoOGJpdCkgfCBucyg4Yml0KSB8IGZyYWN0aW9ucygxNmJpdCkgKi9cbiAxNDI6XHRcdHdvcmQgPSAoKHU2NClpbmNyX3NwZWMubnMgXHUwMDNjXHUwMDNjIEdFTV9TVUJOU0lOQ1JfU0laRSkgJiM0MzsgaW5jcl9zcGVjLnN1Yl9ucztcbiAxNDM6XHRcdGFkaiA9ICh1NjQpc2NhbGVkX3BwbSAqIHdvcmQ7XG4gMTQ0Olx0XHQvKiBEaXZpZGUgd2l0aCByb3VuZGluZywgZXF1aXZhbGVudCB0byBmbG9hdGluZyBkaXZpZGluZzpcbiAxNDU6XHRcdCAqICh0ZW1wIC8gVVNFQ19QRVJfU0VDKSAmIzQzOyAwLjVcbiAxNDY6XHRcdCAqL1xuIDE0NzpcdFx0YWRqICYjNDM7PSAoVVNFQ19QRVJfU0VDIFx1MDAzZVx1MDAzZSAxKTtcbiAxNDg6XHRcdGFkaiBcdTAwM2VcdTAwM2U9IFBQTV9GUkFDVElPTjsgLyogcmVtb3ZlIGZyYWN0aW9ucyAqL1xuIDE0OTpcdFx0YWRqID0gZGl2X3U2NChhZGosIFVTRUNfUEVSX1NFQyk7XG4gMTUwOlx0XHRhZGogPSBuZWdfYWRqID8gKHdvcmQgLSBhZGopIDogKHdvcmQgJiM0MzsgYWRqKTtcbiAxNTE6XHRcbiAxNTI6XHRcdGluY3Jfc3BlYy5ucyA9IChhZGogXHUwMDNlXHUwMDNlIEdFTV9TVUJOU0lOQ1JfU0laRSlcbiAxNTM6XHRcdFx0XHRcdTAwMjYgKCgxIFx1MDAzY1x1MDAzYyBHRU1fTlNJTkNSX1NJWkUpIC0gMSk7XG4gMTU0Olx0XHRpbmNyX3NwZWMuc3ViX25zID0gYWRqIFx1MDAyNiAoKDEgXHUwMDNjXHUwMDNjIEdFTV9TVUJOU0lOQ1JfU0laRSkgLSAxKTtcbiAxNTU6XHRcdGdlbV90c3VfaW5jcl9zZXQoYnAsIFx1MDAyNmluY3Jfc3BlYyk7XG4gMTU2Olx0XHRyZXR1cm4gMDtcbiAxNTc6XHR9XG4gMTU4Olx0XG4gMTU5Olx0c3RhdGljIGludCBnZW1fcHRwX2FkanRpbWUoc3RydWN0IHB0cF9jbG9ja19pbmZvICpwdHAsIHM2NCBkZWx0YSlcbiAxNjA6XHR7XG4gMTYxOlx0XHRzdHJ1Y3QgbWFjYiAqYnAgPSBjb250YWluZXJfb2YocHRwLCBzdHJ1Y3QgbWFjYiwgcHRwX2Nsb2NrX2luZm8pO1xuIDE2MjpcdFx0c3RydWN0IHRpbWVzcGVjNjQgbm93LCB0aGVuID0gbnNfdG9fdGltZXNwZWM2NChkZWx0YSk7XG4gMTYzOlx0XHR1MzIgYWRqLCBzaWduID0gMDtcbiAxNjQ6XHRcbiAxNjU6XHRcdGlmIChkZWx0YSBcdTAwM2MgMCkge1xuIDE2NjpcdFx0XHRzaWduID0gMTtcbiAxNjc6XHRcdFx0ZGVsdGEgPSAtZGVsdGE7XG4gMTY4Olx0XHR9XG4gMTY5Olx0XG4gMTcwOlx0XHRpZiAoZGVsdGEgXHUwMDNlIFRTVV9OU0VDX01BWF9WQUwpIHtcbiAxNzE6XHRcdFx0Z2VtX3RzdV9nZXRfdGltZShcdTAwMjZicC1cdTAwM2VwdHBfY2xvY2tfaW5mbywgXHUwMDI2bm93LCBOVUxMKTtcbiAxNzI6XHRcdFx0bm93ID0gdGltZXNwZWM2NF9hZGQobm93LCB0aGVuKTtcbiAxNzM6XHRcbiAxNzQ6XHRcdFx0Z2VtX3RzdV9zZXRfdGltZShcdTAwMjZicC1cdTAwM2VwdHBfY2xvY2tfaW5mbyxcbiAxNzU6XHRcdFx0XHRcdCAoY29uc3Qgc3RydWN0IHRpbWVzcGVjNjQgKilcdTAwMjZub3cpO1xuIDE3NjpcdFx0fSBlbHNlIHtcbiAxNzc6XHRcdFx0YWRqID0gKHNpZ24gXHUwMDNjXHUwMDNjIEdFTV9BRERTVUJfT0ZGU0VUKSB8IGRlbHRhO1xuIDE3ODpcdFxuIDE3OTpcdFx0XHRnZW1fd3JpdGVsKGJwLCBUQSwgYWRqKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzAgMTY6NDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjQ3ODQKCQkJCQkJCW91dHB1dDogNDUKCQkJCQkJCXRob3VnaHRzOiA0MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0YWtlIG9uIHRoZSB0aG91Z2h0IHByb2Nlc3MsIGFzIHJlcXVlc3RlZDoKCioqRGVjb25zdHJ1Y3RpbmcgYGdlbV9wdHBfaW5pdF90aW1lcmAqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzIGBnZW1fcHRwX2luaXRfdGltZXJgIGZ1bmN0aW9uLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdHMgcm9sZSB3aXRoaW4gdGhpcyBQVFAgaW1wbGVtZW50YXRpb24sIHNvIEkmIzM5O20gZ29pbmcgdG8gc3RhcnQgYnkgcnVubmluZyB0aHJvdWdoIHRoZSBjb2RlIGJsb2NrIGZyb20gbGluZXMgMjAwIHRvIDMwMC4gVGhpcyBzaG91bGQgZ2l2ZSBtZSBhIHNvbGlkIGdyYXNwIG9mIHdoYXQgdGhpcyB0aW1lciBpbml0aWFsaXphdGlvbiByb3V0aW5lIGlzIGFjdHVhbGx5IGRvaW5nLiBNeSBmb2N1cyB3aWxsIGJlIG9uIHRoZSBjcml0aWNhbCBwYXJ0cyBmb3Igc3luY2hyb25pemF0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMCAxNjo0MTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDIwMCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA2MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgMjAwOlx0XHQuYWRqZmluZVx0PSBnZW1fcHRwX2FkamZpbmUsXG4gMjAxOlx0XHQuYWRqdGltZVx0PSBnZW1fcHRwX2FkanRpbWUsXG4gMjAyOlx0XHQuZ2V0dGltZXg2NFx0PSBnZW1fdHN1X2dldF90aW1lLFxuIDIwMzpcdFx0LnNldHRpbWU2NFx0PSBnZW1fdHN1X3NldF90aW1lLFxuIDIwNDpcdFx0LmVuYWJsZVx0XHQ9IGdlbV9wdHBfZW5hYmxlLFxuIDIwNTpcdH07XG4gMjA2Olx0XG4gMjA3Olx0c3RhdGljIHZvaWQgZ2VtX3B0cF9pbml0X3RpbWVyKHN0cnVjdCBtYWNiICpicClcbiAyMDg6XHR7XG4gMjA5Olx0XHR1MzIgcmVtID0gMDtcbiAyMTA6XHRcdHU2NCBhZGo7XG4gMjExOlx0XG4gMjEyOlx0XHRicC1cdTAwM2V0c3VfaW5jci5ucyA9IGRpdl91NjRfcmVtKE5TRUNfUEVSX1NFQywgYnAtXHUwMDNldHN1X3JhdGUsIFx1MDAyNnJlbSk7XG4gMjEzOlx0XHRpZiAocmVtKSB7XG4gMjE0Olx0XHRcdGFkaiA9IHJlbTtcbiAyMTU6XHRcdFx0YWRqIFx1MDAzY1x1MDAzYz0gR0VNX1NVQk5TSU5DUl9TSVpFO1xuIDIxNjpcdFx0XHRicC1cdTAwM2V0c3VfaW5jci5zdWJfbnMgPSBkaXZfdTY0KGFkaiwgYnAtXHUwMDNldHN1X3JhdGUpO1xuIDIxNzpcdFx0fSBlbHNlIHtcbiAyMTg6XHRcdFx0YnAtXHUwMDNldHN1X2luY3Iuc3ViX25zID0gMDtcbiAyMTk6XHRcdH1cbiAyMjA6XHR9XG4gMjIxOlx0XG4gMjIyOlx0c3RhdGljIHZvaWQgZ2VtX3B0cF9pbml0X3RzdShzdHJ1Y3QgbWFjYiAqYnApXG4gMjIzOlx0e1xuIDIyNDpcdFx0c3RydWN0IHRpbWVzcGVjNjQgdHM7XG4gMjI1Olx0XG4gMjI2Olx0XHQvKiAxLiBnZXQgY3VycmVudCBzeXN0ZW0gdGltZSAqL1xuIDIyNzpcdFx0dHMgPSBuc190b190aW1lc3BlYzY0KGt0aW1lX3RvX25zKGt0aW1lX2dldF9yZWFsKCkpKTtcbiAyMjg6XHRcbiAyMjk6XHRcdC8qIDIuIHNldCBwdHAgdGltZXIgKi9cbiAyMzA6XHRcdGdlbV90c3Vfc2V0X3RpbWUoXHUwMDI2YnAtXHUwMDNlcHRwX2Nsb2NrX2luZm8sIFx1MDAyNnRzKTtcbiAyMzE6XHRcbiAyMzI6XHRcdC8qIDMuIHNldCBQVFAgdGltZXIgaW5jcmVtZW50IHZhbHVlIHRvIEJBU0VfSU5DUkVNRU5UICovXG4gMjMzOlx0XHRnZW1fdHN1X2luY3Jfc2V0KGJwLCBcdTAwMjZicC1cdTAwM2V0c3VfaW5jcik7XG4gMjM0Olx0XG4gMjM1Olx0XHRnZW1fd3JpdGVsKGJwLCBUQSwgMCk7XG4gMjM2Olx0fVxuIDIzNzpcdFxuIDIzODpcdHN0YXRpYyB2b2lkIGdlbV9wdHBfY2xlYXJfdGltZXIoc3RydWN0IG1hY2IgKmJwKVxuIDIzOTpcdHtcbiAyNDA6XHRcdGJwLVx1MDAzZXRzdV9pbmNyLnN1Yl9ucyA9IDA7XG4gMjQxOlx0XHRicC1cdTAwM2V0c3VfaW5jci5ucyA9IDA7XG4gMjQyOlx0XG4gMjQzOlx0XHRnZW1fd3JpdGVsKGJwLCBUSVNVQk4sIEdFTV9CRihTVUJOU0lOQ1IsIDApKTtcbiAyNDQ6XHRcdGdlbV93cml0ZWwoYnAsIFRJLCBHRU1fQkYoTlNJTkNSLCAwKSk7XG4gMjQ1Olx0XHRnZW1fd3JpdGVsKGJwLCBUQSwgMCk7XG4gMjQ2Olx0fVxuIDI0NzpcdFxuIDI0ODpcdHN0YXRpYyBpbnQgZ2VtX2h3X3RpbWVzdGFtcChzdHJ1Y3QgbWFjYiAqYnAsIHUzMiBkbWFfZGVzY190c18xLFxuIDI0OTpcdFx0XHRcdCAgICB1MzIgZG1hX2Rlc2NfdHNfMiwgc3RydWN0IHRpbWVzcGVjNjQgKnRzKVxuIDI1MDpcdHtcbiAyNTE6XHRcdHN0cnVjdCB0aW1lc3BlYzY0IHRzdTtcbiAyNTI6XHRcbiAyNTM6XHRcdHRzLVx1MDAzZXR2X3NlYyA9IChHRU1fQkZFWFQoRE1BX1NFQ0gsIGRtYV9kZXNjX3RzXzIpIFx1MDAzY1x1MDAzYyBHRU1fRE1BX1NFQ0xfU0laRSkgfFxuIDI1NDpcdFx0XHRcdEdFTV9CRkVYVChETUFfU0VDTCwgZG1hX2Rlc2NfdHNfMSk7XG4gMjU1Olx0XHR0cy1cdTAwM2V0dl9uc2VjID0gR0VNX0JGRVhUKERNQV9OU0VDLCBkbWFfZGVzY190c18xKTtcbiAyNTY6XHRcbiAyNTc6XHRcdC8qIFRTVSBvdmVybGFwcGluZyB3b3JrYXJvdW5kXG4gMjU4Olx0XHQgKiBUaGUgdGltZXN0YW1wIG9ubHkgY29udGFpbnMgbG93ZXIgZmV3IGJpdHMgb2Ygc2Vjb25kcyxcbiAyNTk6XHRcdCAqIHNvIGFkZCB2YWx1ZSBmcm9tIDE1ODggdGltZXJcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzAgMTY6NDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjYwMjEKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiA1NzEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQW5hbHlzaXMgb2YgYSBQb3RlbnRpYWwgU3BpbmxvY2sgQnVnIEZpeCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgYGdlbV9wdHBfaW5pdGAuIEl0IHNlZW1zIGxpa2UgdGhlcmUmIzM5O3MgYSBwb3RlbnRpYWwgY29uY3VycmVuY3kgaXNzdWUgd2l0aCB0aGUgc3BpbmxvY2sgYGJwLSZndDt0c3VfY2xrX2xvY2tgLiAgVGhlIGNvcmUgb2YgdGhlIHByb2JsZW0gaXMgdGhlIG9yZGVyIG9mIG9wZXJhdGlvbnMgaW4gdGhpcyBmdW5jdGlvbi4gV2UmIzM5O3JlIHJlZ2lzdGVyaW5nIHRoZSBQVFAgY2xvY2sgdXNpbmcgYHB0cF9jbG9ja19yZWdpc3RlcigmYW1wO2JwLSZndDtwdHBfY2xvY2tfaW5mbywgJmFtcDtuZXRkZXYtJmd0O2Rldik7YC4gIFRoZSBrZXkgdGhpbmcgaXMgdGhhdCAqaW1tZWRpYXRlbHkqIGFmdGVyIGBwdHBfY2xvY2tfcmVnaXN0ZXJgIGNvbXBsZXRlcywgdXNlciBzcGFjZSBvciBrZXJuZWwgdGhyZWFkcyBjYW4gc3RhcnQgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgUFRQIGNsb2NrIGRldmljZS4gVGhleSBtaWdodCBiZSBjYWxsaW5nIHRoaW5ncyBsaWtlIGBjbG9ja19hZGp0aW1lYCwgYGdlbV90c3VfZ2V0X3RpbWVgLCBvciBgZ2VtX3RzdV9zZXRfdGltZWAgLSBhbGwgb2Ygd2hpY2ggdXNlIHRoYXQgYGJwLSZndDt0c3VfY2xrX2xvY2tgISAgVGhlIHBvdGVudGlhbCBidWcgYXJpc2VzIGJlY2F1c2UgdGhlIHNwaW5sb2NrIGBzcGluX2xvY2tfaW5pdCgmYW1wO2JwLSZndDt0c3VfY2xrX2xvY2spYCAqd2FzKiBiZWluZyBjYWxsZWQgKmFmdGVyKiB0aGUgcmVnaXN0cmF0aW9uLiBUaGlzIG1lYW5zIHRoZSBsb2NrIGNvdWxkIGhhdmUgYmVlbiB1bmluaXRpYWxpemVkIGR1cmluZyB0aGUgY3JpdGljYWwgd2luZG93IHdoZW4gdGhlIFBUUCBjbG9jayB3YXMgYWxyZWFkeSBhY2Nlc3NpYmxlLiBUaGUgcHJvcG9zZWQgZml4LCBtb3ZpbmcgdGhlIGBzcGluX2xvY2tfaW5pdGAgY2FsbCBlYXJsaWVyLCBtYWtlcyBwZXJmZWN0IHNlbnNlIHRvIHJlc29sdmUgdGhlIHJhY2UgY29uZGl0aW9uLgoKTm93LCB0aGUgbmV4dCBzdGVwIGlzIGNydWNpYWwuIENhbiB0aGlzIGZpeCBiZSBmdXp6ZWQ/IEkgbmVlZCB0byBhcHBseSB0aGUgZnV6emluZyBndWlkZWxpbmVzIG1ldGljdWxvdXNseS4gIExldCBtZSByZWNhbGwgdGhlICYjMzQ7V29ydGhGdXp6aW5nPWZhbHNlJiMzNDsgY3JpdGVyaWEgZnJvbSBtZW1vcnkuIFdlIG5lZWQgdG8gcnVsZSBvdXQ6CgoqICAgRG9jdW1lbnRhdGlvbiwgS2NvbmZpZywgb3IgY29tbWVudC1vbmx5IGNoYW5nZXMuIE5vcGUsIHRoaXMgaXMgYSBjb2RlIGNoYW5nZS4KKiAgIFB1cmVseSBkZWNvcmF0aXZlIGxvZ2dpbmcuIERlZmluaXRlbHkgbm90IHRoZSBjYXNlIGhlcmUuCiogICBOdW1lcmljIGNvbnN0YW50IGNoYW5nZXMgdGhhdCBkb24mIzM5O3QgYWx0ZXIgZXhlY3V0aW9uLiBOb3QgcmVsZXZhbnQuCiogICBVbnJlYWNoYWJsZSBjb2RlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gVGhpcyBpcyBhIHJlYWwgY29uY2VybiEgSSYjMzk7bGwgbmVlZCB0byByZXNlYXJjaCB3aGF0IE1BQ0IvR0VNIGFjdHVhbGx5ICppcyouCiogICBWZW5kb3Itc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVycyB0aGF0IGFyZSBoYXJkIHRvIGVtdWxhdGUuIFByb2JhYmx5IG5vdCwgYnV0IEkgbmVlZCB0byBiZSBzdXJlLgoqICAgVGVhcmRvd24gY2FsbGJhY2tzIGR1cmluZyBQQ0kgaG90LXVucGx1Zy4gTm9wZSwgdGhhdCYjMzk7cyBub3Qgd2hhdCB0aGlzIGlzLgoKU28sIHRoZSBiaWdnZXN0IHF1ZXN0aW9uIGlzIHdoZXRoZXIgdGhpcyBjb2RlIGlzICpyZWFjaGFibGUqIGluIGEgc3RhbmRhcmQgUUVNVSBlbnZpcm9ubWVudC4gV2UgbmVlZCB0byBmaWd1cmUgb3V0IHdoYXQga2luZCBvZiBkZXZpY2UgTUFDQi9HRU0gaXMuIElzIGl0IGEgcGxhdGZvcm0gZGV2aWNlIG9yIGEgUENJIGRldmljZT8gSG93IGFyZSB0aGVzZSBkZXZpY2VzIHR5cGljYWxseSBpbnN0YW50aWF0ZWQ/IEkgbmVlZCB0byBkaWcgaW50byBgbWFjYl9tYWluLmNgIGFuZCBgbWFjYl9wY2kuY2AgdG8gdW5kZXJzdGFuZCB0aGUgZGV2aWNlIGluaXRpYWxpemF0aW9uIGFuZCBjb25uZWN0aW9uIG1lY2hhbmlzbS4gT25seSB0aGVuIGNhbiBJIGRlY2lkZSBpZiB0aGlzIGZpeCBpcyB3b3J0aCBmdXp6aW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMCAxNjo0MTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtNT0RVTEVfREVWSUNFX1RBQkxFJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jPTU3Mjc9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbWFjYl9kdF9pZHNbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTU3NTQtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NTc1NTpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBtYWNiX2R0X2lkcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTU3NTYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3BjaS5jPTEzMj1tb2R1bGVfcGNpX2RyaXZlcihtYWNiX3BjaV9kcml2ZXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3BjaS5jOjEzMzpNT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgZGV2X2lkX3RhYmxlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wY2kuYy0xMzQtTU9EVUxFX0xJQ0VOU0UoXCYjMzQ7R1BMXCYjMzQ7KTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzAgMTY6NDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjc0MjYKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiAyMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGl0IHN0YW5kczoKCioqQ2hlY2tpbmcgYGRldl9pZF90YWJsZWAgaW4gYG1hY2JfcGNpLmNgKioKCk9rYXksIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgZHJpdmVyIGluIGBtYWNiX3BjaS5jYCBpZGVudGlmaWVzIHRoZSBzcGVjaWZpYyBoYXJkd2FyZSBpdCYjMzk7cyBzdXBwb3NlZCB0byBoYW5kbGUuIFRoYXQgcHJvYmFibHkgbWVhbnMgdGhlIGZpcnN0IHRoaW5nIHRvIGxvb2sgYXQgaXMgdGhlIGBkZXZfaWRfdGFibGVgLiBJJiMzOTttIGV4cGVjdGluZyB0aGlzIGlzIHdoZXJlIHRoZSBkcml2ZXIgZGVmaW5lcyB0aGUgUENJIGRldmljZSBJRHMgaXQmIzM5O3MgY29tcGF0aWJsZSB3aXRoLiBUaGlzIHdpbGwgbGlrZWx5IGJlIGEgbGlzdCBvciBhcnJheSBvZiBzdHJ1Y3R1cmVzLCBlYWNoIGNvbnRhaW5pbmcgdGhlIHZlbmRvciBJRCBhbmQgZGV2aWNlIElEIHRoYXQgdGhpcyBkcml2ZXIgcmVjb2duaXplcy4gSSYjMzk7bGwgbmVlZCB0byBzZWUgaG93IHRoZSBkcml2ZXIgdXNlcyB0aGlzIHRhYmxlIGR1cmluZyBpbml0aWFsaXphdGlvbiwgc3BlY2lmaWNhbGx5IGhvdyBpdCBwcm9iZXMgZm9yIGNvbXBhdGlibGUgZGV2aWNlcyBkdXJpbmcgdGhlIFBDSSBwcm9iZSBmdW5jdGlvbi4gSSYjMzk7bSBhbnRpY2lwYXRpbmcgc29tZSBmb3JtIG9mIGxvb3AgdG8gaXRlcmF0ZSB0aHJvdWdoIHRoZSB0YWJsZSBhbmQgY29tcGFyZSB0aGUgaGFyZHdhcmUgSUQgd2l0aCB3aGF0IHRoZSBzeXN0ZW0gcHJlc2VudHMgdG8gaXQgZHVyaW5nIHByb2JlLiBUaW1lIHRvIGRpdmUgaW50byB0aGUgY29kZSBhbmQgY29uZmlybSBteSBodW5jaCEKCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzAgMTY6NDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZGV2X2lkX3RhYmxlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcGNpLmM9MTA4PXN0YXRpYyB2b2lkIG1hY2JfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwY2kpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3BjaS5jLTExOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wY2kuYzoxMjA6c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIGRldl9pZF90YWJsZVtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3BjaS5jLTEyMS1cdHsgUENJX1ZERVZJQ0UoQ0ROUywgUENJX0RFVklDRV9JRF9DRE5TX01BQ0IpIH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3BjaS5jPTEyNT1zdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgbWFjYl9wY2lfZHJpdmVyID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3BjaS5jLTEyNi1cdC5uYW1lICAgICA9IFBDSV9EUklWRVJfTkFNRSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wY2kuYzoxMjc6XHQuaWRfdGFibGUgPSBkZXZfaWRfdGFibGUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcGNpLmMtMTI4LVx0LnByb2JlICAgID0gbWFjYl9wcm9iZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcGNpLmM9MTMyPW1vZHVsZV9wY2lfZHJpdmVyKG1hY2JfcGNpX2RyaXZlcik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcGNpLmM6MTMzOk1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBkZXZfaWRfdGFibGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3BjaS5jLTEzNC1NT0RVTEVfTElDRU5TRShcJiMzNDtHUExcJiMzNDspO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMCAxNjo0MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyODA4NwoJCQkJCQkJb3V0cHV0OiA0NQoJCQkJCQkJdGhvdWdodHM6IDgwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHM6CgoqKkFuYWx5emluZyBhIENhZGVuY2UgTUFDQiBEcml2ZXIqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGEgQ2FkZW5jZSBQQ0kgZGV2aWNlLCBzcGVjaWZpY2FsbHkgaWRlbnRpZmllZCBieSB2ZW5kb3IgSUQgYDB4MTdjZGAgYW5kIGRldmljZSBJRCBgMHhlMDA3YCDigJMgdGhhdCYjMzk7cyBgUENJX1ZFTkRPUl9JRF9DRE5TYCBhbmQgYFBDSV9ERVZJQ0VfSURfQ0ROU19NQUNCYCwgcmlnaHQ/IEkmIzM5O20gcHJldHR5IHN1cmUgdGhhdCYjMzk7cyBhIENhZGVuY2UgTUFDQi4gTm93LCB3aGVyZSBkb2VzIHRoaXMgZml0IGluIHRoZSBkcml2ZXIgbGFuZHNjYXBlPyBBaCwgeWVzLCBgbWFjYl9tYWluLmNgLiBUaGF0IGZpbGUmIzM5O3MgdXN1YWxseSBhIGdvb2QgaW5kaWNhdG9yLiBJdCBsb29rcyBsaWtlIHRoaXMgaXMgYW4gT3BlbiBGaXJtd2FyZSAoT0YpIG9yIHBsYXRmb3JtIGRyaXZlciBpbXBsZW1lbnRhdGlvbi4gVGltZSB0byBjb25maXJtIHRoZSBkZXZpY2UgaWRlbnRpZmllcnMgdXNlZCBieSB0aGUgZHJpdmVyLiBMZXQgbWUgZGlnIGludG8gYG1hY2JfZHRfaWRzYCBhbmQgY3Jvc3MtcmVmZXJlbmNlLiBJJiMzOTtsbCBzZWUgd2hhdCB0aGUgZGV2aWNlIHRyZWUgYmluZGluZ3MgYXJlIHRvIGNvbmZpcm0gYW5kIHVuZGVyc3RhbmQgaG93IHRoaXMgZGV2aWNlIGlzIG1lYW50IHRvIGJlIGNvbmZpZ3VyZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzMwIDE2OjQxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDU3MjcsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMzUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7NTcyNzpcdHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG1hY2JfZHRfaWRzW10gPSB7XG41NzI4Olx0XHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7Y2RucyxhdDkxc2FtOTI2MC1tYWNiXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNmF0OTFzYW05MjYwX2NvbmZpZyB9LFxuNTcyOTpcdFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O2NkbnMsbWFjYlwmIzM0OyB9LFxuNTczMDpcdFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O2NkbnMsbnA0LW1hY2JcJiMzNDssIC5kYXRhID0gXHUwMDI2bnA0X2NvbmZpZyB9LFxuNTczMTpcdFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O2NkbnMscGMzMDItZ2VtXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNnBjMzAyZ2VtX2NvbmZpZyB9LFxuNTczMjpcdFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O2NkbnMsZ2VtXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNnBjMzAyZ2VtX2NvbmZpZyB9LFxuNTczMzpcdFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O2NkbnMsc2FtOXg2MC1tYWNiXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNmF0OTFzYW05MjYwX2NvbmZpZyB9LFxuNTczNDpcdFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O2F0bWVsLHNhbWE1ZDItZ2VtXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNnNhbWE1ZDJfY29uZmlnIH0sXG41NzM1Olx0XHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7YXRtZWwsc2FtYTVkMjktZ2VtXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNnNhbWE1ZDI5X2NvbmZpZyB9LFxuNTczNjpcdFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O2F0bWVsLHNhbWE1ZDMtZ2VtXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNnNhbWE1ZDNfY29uZmlnIH0sXG41NzM3Olx0XHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7YXRtZWwsc2FtYTVkMy1tYWNiXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNnNhbWE1ZDNtYWNiX2NvbmZpZyB9LFxuNTczODpcdFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O2F0bWVsLHNhbWE1ZDQtZ2VtXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNnNhbWE1ZDRfY29uZmlnIH0sXG41NzM5Olx0XHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7Y2RucyxhdDkxcm05MjAwLWVtYWNcJiMzNDssIC5kYXRhID0gXHUwMDI2ZW1hY19jb25maWcgfSxcbjU3NDA6XHRcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDtjZG5zLGVtYWNcJiMzNDssIC5kYXRhID0gXHUwMDI2ZW1hY19jb25maWcgfSxcbjU3NDE6XHRcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDtjZG5zLHp5bnFtcC1nZW1cJiMzNDssIC5kYXRhID0gXHUwMDI2enlucW1wX2NvbmZpZ30sIC8qIGRlcHJlY2F0ZWQgKi9cbjU3NDI6XHRcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDtjZG5zLHp5bnEtZ2VtXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNnp5bnFfY29uZmlnIH0sIC8qIGRlcHJlY2F0ZWQgKi9cbjU3NDM6XHRcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDtzaWZpdmUsZnU1NDAtYzAwMC1nZW1cJiMzNDssIC5kYXRhID0gXHUwMDI2ZnU1NDBfYzAwMF9jb25maWcgfSxcbjU3NDQ6XHRcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDttaWNyb2NoaXAsbXBmcy1tYWNiXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNm1wZnNfY29uZmlnIH0sXG41NzQ1Olx0XHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7bWljcm9jaGlwLHBpYzY0aHBzYy1nZW1cJiMzNDssIC5kYXRhID0gXHUwMDI2cGljNjRocHNjX2NvbmZpZ30sXG41NzQ2Olx0XHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7bWljcm9jaGlwLHNhbWE3ZzUtZ2VtXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNnNhbWE3ZzVfZ2VtX2NvbmZpZyB9LFxuNTc0NzpcdFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O21pY3JvY2hpcCxzYW1hN2c1LWVtYWNcJiMzNDssIC5kYXRhID0gXHUwMDI2c2FtYTdnNV9lbWFjX2NvbmZpZyB9LFxuNTc0ODpcdFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O21vYmlsZXllLGV5ZXE1LWdlbVwmIzM0OywgLmRhdGEgPSBcdTAwMjZleWVxNV9jb25maWcgfSxcbjU3NDk6XHRcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDtyYXNwYmVycnlwaSxycDEtZ2VtXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNnJhc3BiZXJyeXBpX3JwMV9jb25maWcgfSxcbjU3NTA6XHRcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDt4bG54LHp5bnFtcC1nZW1cJiMzNDssIC5kYXRhID0gXHUwMDI2enlucW1wX2NvbmZpZ30sXG41NzUxOlx0XHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7eGxueCx6eW5xLWdlbVwmIzM0OywgLmRhdGEgPSBcdTAwMjZ6eW5xX2NvbmZpZyB9LFxuNTc1MjpcdFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O3hsbngsdmVyc2FsLWdlbVwmIzM0OywgLmRhdGEgPSBcdTAwMjZ2ZXJzYWxfY29uZmlnfSxcbjU3NTM6XHRcdHsgLyogc2VudGluZWwgKi8gfVxuNTc1NDpcdH07XG41NzU1Olx0TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgbWFjYl9kdF9pZHMpO1xuNTc1NjpcdFxuNTc1NzpcdHN0YXRpYyBjb25zdCBzdHJ1Y3QgbWFjYl9jb25maWcgZGVmYXVsdF9nZW1fY29uZmlnID0ge1xuNTc1ODpcdFx0LmNhcHMgPSBNQUNCX0NBUFNfR0lHQUJJVF9NT0RFX0FWQUlMQUJMRSB8XG41NzU5Olx0XHRcdE1BQ0JfQ0FQU19KVU1CTyB8XG41NzYwOlx0XHRcdE1BQ0JfQ0FQU19HRU1fSEFTX1BUUCxcbjU3NjE6XHRcdC5kbWFfYnVyc3RfbGVuZ3RoID0gMTYsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzMwIDE2OjQxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4xbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI5NDI2CgkJCQkJCQlvdXRwdXQ6IDMyCgkJCQkJCQl0aG91Z2h0czogOTM2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgRnV6emluZyBQb3RlbnRpYWwgb2YgdGhlIENhZGVuY2UgR0VNIChNQUNCKSBEcml2ZXIqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gSSYjMzk7bSBsb29raW5nIGF0IHBvdGVudGlhbCBjYW5kaWRhdGVzIGZvciBmdXp6aW5nLCBhbmQgdGhlIENhZGVuY2UgR0VNIChNQUNCKSBkcml2ZXIgaXMgb24gdGhlIGxpc3QuIEZpcnN0LCBsZXQgbWUgcmVjYWxsIHRoZSBjb21tb24gU29DcyB0aGlzIGRyaXZlciBpcyBhc3NvY2lhdGVkIHdpdGg6IFNpRml2ZSwgWGlsaW54IFp5bnEvWnlucU1QL1ZlcnNhbCwgQ2FkZW5jZSwgYW5kIEF0bWVsLiBJIG5lZWQgdG8gcXVpY2tseSBkZXRlcm1pbmUgaWYgYW55IG9mIHRoZXNlIGFyZSBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIHVzZWQgd2l0aGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cywgd2hpY2ggaXMgY3J1Y2lhbCBmb3IgU3l6a2FsbGVyJiMzOTtzIGVmZmVjdGl2ZW5lc3MuCgpSaWdodCwgUUVNVSBoYXMgbWFjaGluZSB0eXBlcy4gSSByZW1lbWJlciBgeGxueC16Y3UxMDJgLCBgeGxueC12ZXJzYWwtdmlydGAsIGB4aWxpbngtenlucS1hOWAsIGBzaWZpdmVfdWAsIGBtaWNyb2NoaXAtaWNpY2xlLWtpdGAuIEJ1dCBTeXprYWxsZXIgcHJpbWFyaWx5IHRhcmdldHMgeDg2XzY0IGFuZCBhcm02NCwgc3BlY2lmaWNhbGx5IHZpcnR1YWwgbWFjaGluZXMgd2l0aCB2aXJ0aW8sIG9yIGdWaXNvci4gU28sIHdoYXQgc3RhbmRhcmQgZGV2aWNlcyBhcmUgdHlwaWNhbGx5IGZvdW5kIGluIFFFTVUgb3IgR0NFIGZvciBmdXp6aW5nPyBUaGF0JiMzOTtzIHRoZSBrZXkuCgpOb3csIEkgaGF2ZSB0byBjb25zaWRlciB0aGUgaW5zdHJ1Y3Rpb25zLiBUaGUgY3J1Y2lhbCBjcml0ZXJpYSBJIG5lZWQgdG8gdXNlIHRvIGRldGVybWluZSBpZiBhIHBhdGNoIGlzIFdvcnRoRnV6emluZyBpcyB0aGUgZm9sbG93aW5nLiBBIHBhdGNoIHNob3VsZCByZXR1cm4gJiMzNDtXb3J0aEZ1enppbmc9ZmFsc2UmIzM0OyBpZiBpdCBvbmx5IGNvbnRhaW5zOgotIGRvY3VtZW50YXRpb24gY2hhbmdlcwotIGNvbmZpZyBmaWxlIG1vZGlmaWNhdGlvbnMKLSBjb2RlIGNvbW1lbnRzCi0gZGVjb3JhdGl2ZSBjaGFuZ2VzIHN1Y2ggYXMgbG9nZ2luZyBvciB0cmFjZXBvaW50cwotIGNoYW5nZXMgdG8gY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvZXNuJiMzOTt0IGFsdGVyIGV4ZWN1dGlvbiBmbG93Ci0gdW5yZWFjaGFibGUgY29kZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMsIHN1Y2ggYXMgdXNiIGdhZGdldCBvciBtYWM4MDIxMV9od3NpbQotIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VCi0gZHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpPdGhlcndpc2UgaXQmIzM5O3MgJiMzNDtXb3J0aEZ1enppbmc9dHJ1ZSYjMzQ7IGlmIGEgcGF0Y2ggbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLiBJIG5lZWQgdG8gdmVyaWZ5IHRoYXQgY29kZSBjYW4gYmUgZXhlY3V0ZWQgdXNpbmcgY29kZSBzZWFyY2ggdG9vbHMuCgpTbywgaXMgYG1hY2JgIG9yIGBnZW1fcHRwYCBhIHZlbmRvci1zcGVjaWZpYyBoYXJkd2FyZSBkcml2ZXI/IERvZXMgaXQgcmVxdWlyZSBzcGVjaWZpYyBib2FyZCBEVCBub3QgcHJlc2VudCBpbiBzdGFuZGFyZCBmdXp6aW5nIGVudmlyb25tZW50cyAoeDg2L2FybTY0IHZpcnQpPyBJIG11c3QgaW52ZXN0aWdhdGUuCgpMZXQmIzM5O3MgY2hlY2suIENhbiBgbWFjYmAgYmUgaW5zdGFudGlhdGVkIHZpYSBQQ0kgaW4gc3RhbmRhcmQgUUVNVT8gU3BlY2lmaWNhbGx5LCBkb2VzIFFFTVUgaGF2ZSBhIFBDSSBDYWRlbmNlIE1BQ0IgZGV2aWNlPyBObywgUUVNVSYjMzk7cyBgY2FkZW5jZV9nZW1gIGlzIGEgU3lzQnVzRGV2aWNlLCBtZW1vcnkgbWFwcGVkIEkvTyBvbiBaeW5xIC8gVmVyc2FsIC8gU2lGaXZlIFUgU29DLCBub3QgYSBQQ0kgZGV2aWNlLiBXaGF0IGFib3V0IGBtYWNiX3BjaWA/IFRoZSBQQ0kgSUQgMHgxN2NkOjB4ZTAwNyBwb2ludHMgdG8gQ2FkZW5jZSYjMzk7cyBQQ0kgdGVzdGJvYXJkIC8gRlBHQSBjYXJkLCB3aGljaCBpc24mIzM5O3QgZW11bGF0ZWQgaW4gUUVNVS4gV2hhdCBhYm91dCBwbGF0Zm9ybSBkZXZpY2VzPyBJbiBzdGFuZGFyZCBRRU1VIHg4Nl82NCAocTM1IC8gcGMpIGFuZCBBUk02NCAoYC1NIHZpcnRgKSwgdGhlcmUmIzM5O3Mgbm8gQ2FkZW5jZSBHRU0gLyBNQUNCIG5vZGUgZGVmaW5lZCBpbiB0aGUgZGV2aWNlIHRyZWUgb3IgQUNQSS4KCkNhbiBTeXprYWxsZXIgaW5zdGFudGlhdGUgcGxhdGZvcm0gZGV2aWNlcyB2aWEgRGV2aWNlIFRyZWUgb3ZlcmxheXMgb3IgY29uZmlnZnM/IE5vLCBpdCBydW5zIG9uIHN0YW5kYXJkIFFFTVUgb3IgR0NFIFZNcywgd2hlcmUga2VybmVsIGRldmljZXMgYXJlIEFDUEksIFBDSSwgVVNCLCBvciBzb2Z0d2FyZSBwc2V1ZG8gZGV2aWNlcy4KClRpbWUgdG8gbG9vayBhdCBvdGhlciBuZXR3b3JrIGFuZCBTb0MgZXRoZXJuZXQgZHJpdmVycy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRob3NlIGFyZSBoYW5kbGVkLiBJIHdpbGwgcGVyZm9ybSBhIHNlYXJjaCBpbiB0aGUgcmVwbyBvciBjaGVjayBzaW1pbGFyIGRyaXZlcnMuIElzIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlYCByZWFjaGFibGU/CgpGaW5hbGx5LCBsZXQmIzM5O3MgZXhwbG9yZSBpZiB0aGVyZSBhcmUgYW55IG1vY2sgb3IgdGVzdCBmcmFtZXdvcmtzIGZvciBtYWNiLCBvciBpZiBpdCBpcyB0aWVkIHRvIHNwZWNpZmljIGVtYmVkZGVkIFNvQ3MgYW5kIFBDSSB0ZXN0IGNhcmRzLiBJcyB0aGVyZSBhIHN0YW5kYXJkIHdheSB0byBpbnN0YW50aWF0ZSBNQUNCPyBUaGF0JiMzOTtzIHRoZSBjcml0aWNhbCBxdWVzdGlvbiBJIG5lZWQgdG8gYW5zd2VyLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMCAxNjo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttYWNiXyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDI1OTggbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvS2NvbmZpZz00NT1jb25maWcgTUFDQl9QQ0lcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL0tjb25maWctNTEtXHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZSBtb2R1bGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvS2NvbmZpZzo1MjpcdCAgd2lsbCBiZSBjYWxsZWQgbWFjYl9wY2kuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL0tjb25maWctNTMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9NYWtlZmlsZS00LSNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvTWFrZWZpbGU6NTptYWNiLXlcdDo9IG1hY2JfbWFpbi5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL01ha2VmaWxlLTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL01ha2VmaWxlPTc9aWZlcSAoJChDT05GSUdfTUFDQl9VU0VfSFdTVEFNUCkseSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvTWFrZWZpbGU6ODptYWNiLXlcdCYjNDM7PSBtYWNiX3B0cC5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL01ha2VmaWxlLTktZW5kaWZcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL01ha2VmaWxlPTExPW9iai0kKENPTkZJR19NQUNCKSAmIzQzOz0gbWFjYi5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL01ha2VmaWxlOjEyOm9iai0kKENPTkZJR19NQUNCX1BDSSkgJiM0Mzs9IG1hY2JfcGNpLm9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC04MjAtLyogUmVnaXN0ZXIgYWNjZXNzIG1hY3JvcyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODIxOiNkZWZpbmUgbWFjYl9yZWFkbChwb3J0LCByZWcpXHRcdChwb3J0KS1cdTAwM2VtYWNiX3JlZ19yZWFkbCgocG9ydCksIE1BQ0JfIyNyZWcpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4MjI6I2RlZmluZSBtYWNiX3dyaXRlbChwb3J0LCByZWcsIHZhbHVlKVx0KHBvcnQpLVx1MDAzZW1hY2JfcmVnX3dyaXRlbCgocG9ydCksIE1BQ0JfIyNyZWcsICh2YWx1ZSkpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4MjM6I2RlZmluZSBnZW1fcmVhZGwocG9ydCwgcmVnKVx0XHQocG9ydCktXHUwMDNlbWFjYl9yZWdfcmVhZGwoKHBvcnQpLCBHRU1fIyNyZWcpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4MjQ6I2RlZmluZSBnZW1fd3JpdGVsKHBvcnQsIHJlZywgdmFsdWUpXHQocG9ydCktXHUwMDNlbWFjYl9yZWdfd3JpdGVsKChwb3J0KSwgR0VNXyMjcmVnLCAodmFsdWUpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODI1OiNkZWZpbmUgcXVldWVfcmVhZGwocXVldWUsIHJlZylcdFx0KHF1ZXVlKS1cdTAwM2VicC1cdTAwM2VtYWNiX3JlZ19yZWFkbCgocXVldWUpLVx1MDAzZWJwLCAocXVldWUpLVx1MDAzZXJlZylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjgyNjojZGVmaW5lIHF1ZXVlX3dyaXRlbChxdWV1ZSwgcmVnLCB2YWx1ZSlcdChxdWV1ZSktXHUwMDNlYnAtXHUwMDNlbWFjYl9yZWdfd3JpdGVsKChxdWV1ZSktXHUwMDNlYnAsIChxdWV1ZSktXHUwMDNlcmVnLCAodmFsdWUpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODI3OiNkZWZpbmUgZ2VtX3JlYWRsX24ocG9ydCwgcmVnLCBpZHgpXHRcdChwb3J0KS1cdTAwM2VtYWNiX3JlZ19yZWFkbCgocG9ydCksIEdFTV8jI3JlZyAmIzQzOyBpZHggKiA0KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODI4OiNkZWZpbmUgZ2VtX3dyaXRlbF9uKHBvcnQsIHJlZywgaWR4LCB2YWx1ZSlcdChwb3J0KS1cdTAwM2VtYWNiX3JlZ193cml0ZWwoKHBvcnQpLCBHRU1fIyNyZWcgJiM0MzsgaWR4ICogNCwgKHZhbHVlKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTgyOS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC04MzEtICogcmVnaXN0ZXIgZGVwZW5kZW50IG9uIHdoZXRoZXIgdGhlIGRldmljZSBpcyBhIEdFTSBvciBhIE1BQ0IuICBGb3IgcmVnaXN0ZXJzXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4MzI6ICogYW5kIGJpdGZpZWxkcyB0aGF0IGFyZSBjb21tb24gYWNyb3NzIGJvdGggZGV2aWNlcywgdXNlIG1hY2Jfe3JlYWQsd3JpdGV9bFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtODMzLSAqIHRvIGF2b2lkIHRoZSBjb3N0IG9mIHRoZSBjb25kaXRpb25hbC5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTgzNC0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjgzNTojZGVmaW5lIG1hY2Jfb3JfZ2VtX3dyaXRlbChfX2JwLCBfX3JlZywgX192YWx1ZSkgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTgzNi1cdCh7IFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4Mzc6XHRcdGlmIChtYWNiX2lzX2dlbSgoX19icCkpKSBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtODM4LVx0XHRcdGdlbV93cml0ZWwoKF9fYnApLCBfX3JlZywgX192YWx1ZSk7IFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC04MzktXHRcdGVsc2UgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjg0MDpcdFx0XHRtYWNiX3dyaXRlbCgoX19icCksIF9fcmVnLCBfX3ZhbHVlKTsgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTg0MS1cdH0pXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC04NDItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4NDM6I2RlZmluZSBtYWNiX29yX2dlbV9yZWFkbChfX2JwLCBfX3JlZykgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTg0NC1cdCh7IFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC04NDUtXHRcdHUzMiBfX3Y7IFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4NDY6XHRcdGlmIChtYWNiX2lzX2dlbSgoX19icCkpKSBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtODQ3LVx0XHRcdF9fdiA9IGdlbV9yZWFkbCgoX19icCksIF9fcmVnKTsgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTg0OC1cdFx0ZWxzZSBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODQ5Olx0XHRcdF9fdiA9IG1hY2JfcmVhZGwoKF9fYnApLCBfX3JlZyk7IFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC04NTAtXHRcdF9fdjsgXFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC04NTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4NTM6I2RlZmluZSBNQUNCX1JFQURfTlNSKGJwKVx0bWFjYl9yZWFkbChicCwgTlNSKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtODU0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODU1Oi8qIHN0cnVjdCBtYWNiX2RtYV9kZXNjIC0gSGFyZHdhcmUgRE1BIGRlc2NyaXB0b3JcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTg1Ni0gKiBAYWRkcjogRE1BIGFkZHJlc3Mgb2YgZGF0YSBidWZmZXJcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC04NTgtICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4NTk6c3RydWN0IG1hY2JfZG1hX2Rlc2Mge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtODYwLVx0dTMyXHRhZGRyO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTg2My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjg2NDpzdHJ1Y3QgbWFjYl9kbWFfZGVzY182NCB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC04NjUtXHR1MzIgYWRkcmg7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtODY4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODY5OnN0cnVjdCBtYWNiX2RtYV9kZXNjX3B0cCB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC04NzAtXHR1MzJcdHRzXzE7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtOTY1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6OTY2Oi8qIHN0cnVjdCBtYWNiX3R4X3NrYiAtIGRhdGEgYWJvdXQgYW4gc2tiIHdoaWNoIGlzIGJlaW5nIHRyYW5zbWl0dGVkXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC05NjctICogQHNrYjogc2tiIGN1cnJlbnRseSBiZWluZyB0cmFuc21pdHRlZCwgb25seSBzZXQgZm9yIHRoZSBsYXN0IGJ1ZmZlclxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTk3My0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjk3NDpzdHJ1Y3QgbWFjYl90eF9za2Ige1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtOTc1LVx0c3RydWN0IHNrX2J1ZmZcdFx0KnNrYjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC05ODMtICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5ODQ6c3RydWN0IG1hY2Jfc3RhdHMge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtOTg1LVx0dTY0XHRyeF9wYXVzZV9mcmFtZXM7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg9MTE5MT1zdHJ1Y3QgbWFjYjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjExOTI6c3RydWN0IG1hY2JfcXVldWU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMTkzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTE5NDpzdHJ1Y3QgbWFjYl9vcl9nZW1fb3BzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTExOTUtXHRpbnRcdCgqbW9nX2FsbG9jX3J4X2J1ZmZlcnMpKHN0cnVjdCBtYWNiICpicCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTE5Ny1cdHZvaWRcdCgqbW9nX2luaXRfcmluZ3MpKHN0cnVjdCBtYWNiICpicCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxMTk4Olx0aW50XHQoKm1vZ19yeCkoc3RydWN0IG1hY2JfcXVldWUgKnF1ZXVlLCBzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMTk5LVx0XHRcdCAgaW50IGJ1ZGdldCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTIwMi0vKiBNQUNCLVBUUCBpbnRlcmZhY2U6IGFkYXB0IHRvIHBsYXRmb3JtIG5lZWRzLiAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTIwMzpzdHJ1Y3QgbWFjYl9wdHBfaW5mbyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMjA0LVx0dm9pZCAoKnB0cF9pbml0KShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMjE2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTIxNzpzdHJ1Y3QgbWFjYl9wbV9kYXRhIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEyMTgtXHR1MzIgc2NydDI7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTIyMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjEyMjI6c3RydWN0IG1hY2JfdXNyaW9fY29uZmlnIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEyMjMtXHR1MzIgbWlpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEyMzItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxMjMzOnN0cnVjdCBtYWNiX2NvbmZpZyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMjM0LVx0dTMyXHRcdFx0Y2Fwcztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMjQxLVx0aW50XHRqdW1ib19tYXhfbGVuO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTI0MjpcdGNvbnN0IHN0cnVjdCBtYWNiX3VzcmlvX2NvbmZpZyAqdXNyaW87XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMjQzLX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg9MTI0NT1zdHJ1Y3QgdHN1X2luY3Ige1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEyNDktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxMjUwOnN0cnVjdCBtYWNiX3F1ZXVlIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEyNTEtXHRzdHJ1Y3QgbWFjYlx0XHQqYnA7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTI2OS1cdHVuc2lnbmVkIGludFx0XHR0eF9oZWFkLCB0eF90YWlsO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTI3MDpcdHN0cnVjdCBtYWNiX2RtYV9kZXNjXHQqdHhfcmluZztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjEyNzE6XHRzdHJ1Y3QgbWFjYl90eF9za2JcdCp0eF9za2I7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMjcyLVx0ZG1hX2FkZHJfdFx0XHR0eF9yaW5nX2RtYTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMjgwLVx0dW5zaWduZWQgaW50XHRcdHJ4X3ByZXBhcmVkX2hlYWQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxMjgxOlx0c3RydWN0IG1hY2JfZG1hX2Rlc2NcdCpyeF9yaW5nO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTI4Mi1cdHN0cnVjdCBza19idWZmXHRcdCoqcnhfc2tidWZmO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oPTEyOTg9c3RydWN0IG1hY2Ige1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEzMDItXHQvKiBoYXJkd2FyZSBJTyBhY2Nlc3NvcnMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjEzMDM6XHR1MzJcdCgqbWFjYl9yZWdfcmVhZGwpKHN0cnVjdCBtYWNiICpicCwgaW50IG9mZnNldCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxMzA0Olx0dm9pZFx0KCptYWNiX3JlZ193cml0ZWwpKHN0cnVjdCBtYWNiICpicCwgaW50IG9mZnNldCwgdTMyIHZhbHVlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEzMDUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxMzA2Olx0c3RydWN0IG1hY2JfZG1hX2Rlc2NcdCpyeF9yaW5nX3RpZW9mZjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEzMDctXHRkbWFfYWRkcl90XHRcdHJ4X3JpbmdfdGllb2ZmX2RtYTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMzEzLVx0dW5zaWduZWQgaW50XHRcdG51bV9xdWV1ZXM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxMzE0Olx0c3RydWN0IG1hY2JfcXVldWVcdHF1ZXVlc1tNQUNCX01BWF9RVUVVRVNdO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTMxNS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMzI2LVx0dW5pb24ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTMyNzpcdFx0c3RydWN0IG1hY2Jfc3RhdHNcdG1hY2I7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMzI4LVx0XHRzdHJ1Y3QgZ2VtX3N0YXRzXHRnZW07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTMzMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjEzMzE6XHRzdHJ1Y3QgbWFjYl9vcl9nZW1fb3BzXHRtYWNiZ2VtX29wcztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEzMzItXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTM0NC1cdC8qIEFUOTFSTTkyMDAgdHJhbnNtaXQgcXVldWUgKDEgb24gd2lyZSAmIzQzOyAxIHF1ZXVlZCkgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjEzNDU6XHRzdHJ1Y3QgbWFjYl90eF9za2JcdHJtOTIwMF90eHFbMl07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMzQ2LVx0dW5zaWduZWQgaW50XHRcdG1heF90eF9sZW5ndGg7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTM1OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjEzNTk6XHRzdHJ1Y3QgbWFjYl9wdHBfaW5mb1x0KnB0cF9pbmZvO1x0LyogbWFjYi1wdHAgaW50ZXJmYWNlICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMzYwLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEzODYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxMzg3Olx0c3RydWN0IG1hY2JfcG1fZGF0YSBwbV9kYXRhO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTM4ODpcdGNvbnN0IHN0cnVjdCBtYWNiX3VzcmlvX2NvbmZpZyAqdXNyaW87XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMzg5LX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTM5NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjEzOTY6ZW51bSBtYWNiX2JkX2NvbnRyb2wge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTM5Ny1cdFRTVEFNUF9ESVNBQkxFRCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaD0xNDA0PXZvaWQgZ2VtX3B0cF9yZW1vdmUoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxNDA1OnZvaWQgZ2VtX3B0cF90eHN0YW1wKHN0cnVjdCBtYWNiICpicCwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG1hY2JfZG1hX2Rlc2MgKmRlc2MpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTQwNjp2b2lkIGdlbV9wdHBfcnhzdGFtcChzdHJ1Y3QgbWFjYiAqYnAsIHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBtYWNiX2RtYV9kZXNjICpkZXNjKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjE0MDc6c3RhdGljIGlubGluZSB2b2lkIGdlbV9wdHBfZG9fdHhzdGFtcChzdHJ1Y3QgbWFjYiAqYnAsIHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBtYWNiX2RtYV9kZXNjICpkZXNjKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTQwOC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTQxNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjE0MTU6c3RhdGljIGlubGluZSB2b2lkIGdlbV9wdHBfZG9fcnhzdGFtcChzdHJ1Y3QgbWFjYiAqYnAsIHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBtYWNiX2RtYV9kZXNjICpkZXNjKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTQxNi17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg9MTQzMD1zdGF0aWMgaW5saW5lIHZvaWQgZ2VtX3B0cF9yZW1vdmUoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldikgeyB9XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xNDMxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTQzMjpzdGF0aWMgaW5saW5lIHZvaWQgZ2VtX3B0cF9kb190eHN0YW1wKHN0cnVjdCBtYWNiICpicCwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG1hY2JfZG1hX2Rlc2MgKmRlc2MpIHsgfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTQzMzpzdGF0aWMgaW5saW5lIHZvaWQgZ2VtX3B0cF9kb19yeHN0YW1wKHN0cnVjdCBtYWNiICpicCwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG1hY2JfZG1hX2Rlc2MgKmRlc2MpIHsgfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTQzNC0jZW5kaWZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTE0MzUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxNDM2OnN0YXRpYyBpbmxpbmUgYm9vbCBtYWNiX2lzX2dlbShzdHJ1Y3QgbWFjYiAqYnApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xNDM3LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaD0xNDUzPXN0YXRpYyBpbmxpbmUgdTY0IGVuc3RfbWF4X2h3X2ludGVydmFsKHUzMiBzcGVlZF9tYnBzKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTE0NTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxNDU5OnN0YXRpYyBpbmxpbmUgYm9vbCBtYWNiX2RtYTY0KHN0cnVjdCBtYWNiICpicClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTE0NjAte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTE0NjQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxNDY1OnN0YXRpYyBpbmxpbmUgYm9vbCBtYWNiX2RtYV9wdHAoc3RydWN0IG1hY2IgKmJwKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTQ2Ni17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTQ3MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjE0NzE6c3RhdGljIGlubGluZSB2b2lkIG1hY2JfcXVldWVfaXNyX2NsZWFyKHN0cnVjdCBtYWNiICpicCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjE0NzI6XHRcdFx0XHRcdHN0cnVjdCBtYWNiX3F1ZXVlICpxdWV1ZSwgdTMyIHZhbHVlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTQ3My17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTQ3OC0vKipcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjE0Nzk6ICogc3RydWN0IG1hY2JfcGxhdGZvcm1fZGF0YSAtIHBsYXRmb3JtIGRhdGEgZm9yIE1BQ0IgRXRoZXJuZXQgdXNlZCBmb3IgUENJIHJlZ2lzdHJhdGlvblxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTQ4MC0gKiBAcGNsazpcdFx0cGxhdGZvcm0gY2xvY2tcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xNDgyLSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTQ4MzpzdHJ1Y3QgbWFjYl9wbGF0Zm9ybV9kYXRhIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTE0ODQtXHRzdHJ1Y3QgY2xrXHQqcGNsaztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xNDg4LS8qKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTQ4OTogKiBzdHJ1Y3QgbWFjYl9xdWV1ZV9lbnN0X2NvbmZpZyAtIENvbmZpZ3VyYXRpb24gZm9yIEVuaGFuY2VkIFNjaGVkdWxlZCBUcmFmZmljXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xNDkwLSAqIEBzdGFydF90aW1lX21hc2s6ICBCaXRtYXNrIHJlcHJlc2VudGluZyB0aGUgc3RhcnQgdGltZSBmb3IgdGhlIHF1ZXVlXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTQ5Ny0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjE0OTg6c3RydWN0IG1hY2JfcXVldWVfZW5zdF9jb25maWcge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTQ5OS1cdHUzMiBzdGFydF90aW1lX21hc2s7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy00NC0vKiBUaGlzIHN0cnVjdHVyZSBpcyBvbmx5IHVzZWQgZm9yIE1BQ0Igb24gU2lGaXZlIEZVNTQwIGRldmljZXMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NDU6c3RydWN0IHNpZml2ZV9mdTU0MF9tYWNiX21nbXQge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy00Ni1cdHZvaWQgX19pb21lbSAqcmVnO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTI4LSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxMjk6c3RhdGljIHVuc2lnbmVkIGludCBtYWNiX2RtYV9kZXNjX2dldF9zaXplKHN0cnVjdCBtYWNiICpicClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTMwLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MTMxOlx0dW5zaWduZWQgaW50IGRlc2Nfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgbWFjYl9kbWFfZGVzYyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTEzMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MTMzOlx0aWYgKG1hY2JfZG1hNjQoYnApKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxMzQ6XHRcdGRlc2Nfc2l6ZSAmIzQzOz0gc2l6ZW9mKHN0cnVjdCBtYWNiX2RtYV9kZXNjXzY0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MTM1Olx0aWYgKG1hY2JfZG1hX3B0cChicCkpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjEzNjpcdFx0ZGVzY19zaXplICYjNDM7PSBzaXplb2Yoc3RydWN0IG1hY2JfZG1hX2Rlc2NfcHRwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTM3LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTQwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxNDE6c3RhdGljIHVuc2lnbmVkIGludCBtYWNiX2Fkal9kbWFfZGVzY19pZHgoc3RydWN0IG1hY2IgKmJwLCB1bnNpZ25lZCBpbnQgZGVzY19pZHgpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTE0Mi17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjE0MzpcdHJldHVybiBkZXNjX2lkeCAqICgxICYjNDM7IG1hY2JfZG1hNjQoYnApICYjNDM7IG1hY2JfZG1hX3B0cChicCkpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0xNDQtfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0xNDUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjE0NjpzdGF0aWMgc3RydWN0IG1hY2JfZG1hX2Rlc2NfNjQgKm1hY2JfNjRiX2Rlc2Moc3RydWN0IG1hY2IgKmJwLCBzdHJ1Y3QgbWFjYl9kbWFfZGVzYyAqZGVzYylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTQ3LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MTQ4Olx0cmV0dXJuIChzdHJ1Y3QgbWFjYl9kbWFfZGVzY182NCAqKSgodm9pZCAqKWRlc2NcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MTQ5Olx0XHQmIzQzOyBzaXplb2Yoc3RydWN0IG1hY2JfZG1hX2Rlc2MpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTUwLX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTE1Mi0vKiBSaW5nIGJ1ZmZlciBhY2Nlc3NvcnMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MTUzOnN0YXRpYyB1bnNpZ25lZCBpbnQgbWFjYl90eF9yaW5nX3dyYXAoc3RydWN0IG1hY2IgKmJwLCB1bnNpZ25lZCBpbnQgaW5kZXgpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTE1NC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0xNTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjE1ODpzdGF0aWMgc3RydWN0IG1hY2JfZG1hX2Rlc2MgKm1hY2JfdHhfZGVzYyhzdHJ1Y3QgbWFjYl9xdWV1ZSAqcXVldWUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTE1OS1cdFx0XHRcdFx0ICB1bnNpZ25lZCBpbnQgaW5kZXgpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTE2MC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjE2MTpcdGluZGV4ID0gbWFjYl90eF9yaW5nX3dyYXAocXVldWUtXHUwMDNlYnAsIGluZGV4KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MTYyOlx0aW5kZXggPSBtYWNiX2Fkal9kbWFfZGVzY19pZHgocXVldWUtXHUwMDNlYnAsIGluZGV4KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTYzLVx0cmV0dXJuIFx1MDAyNnF1ZXVlLVx1MDAzZXR4X3JpbmdbaW5kZXhdO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTY1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxNjY6c3RhdGljIHN0cnVjdCBtYWNiX3R4X3NrYiAqbWFjYl90eF9za2Ioc3RydWN0IG1hY2JfcXVldWUgKnF1ZXVlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0xNjctXHRcdFx0XHQgICAgICAgdW5zaWduZWQgaW50IGluZGV4KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0xNjgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxNjk6XHRyZXR1cm4gXHUwMDI2cXVldWUtXHUwMDNldHhfc2tiW21hY2JfdHhfcmluZ193cmFwKHF1ZXVlLVx1MDAzZWJwLCBpbmRleCldO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0xNzAtfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0xNzEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjE3MjpzdGF0aWMgZG1hX2FkZHJfdCBtYWNiX3R4X2RtYShzdHJ1Y3QgbWFjYl9xdWV1ZSAqcXVldWUsIHVuc2lnbmVkIGludCBpbmRleClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTczLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTE3NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MTc2Olx0b2Zmc2V0ID0gbWFjYl90eF9yaW5nX3dyYXAocXVldWUtXHUwMDNlYnAsIGluZGV4KSAqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjE3NzpcdFx0XHRtYWNiX2RtYV9kZXNjX2dldF9zaXplKHF1ZXVlLVx1MDAzZWJwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTc4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTgxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxODI6c3RhdGljIHVuc2lnbmVkIGludCBtYWNiX3J4X3Jpbmdfd3JhcChzdHJ1Y3QgbWFjYiAqYnAsIHVuc2lnbmVkIGludCBpbmRleClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTgzLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTE4Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MTg3OnN0YXRpYyBzdHJ1Y3QgbWFjYl9kbWFfZGVzYyAqbWFjYl9yeF9kZXNjKHN0cnVjdCBtYWNiX3F1ZXVlICpxdWV1ZSwgdW5zaWduZWQgaW50IGluZGV4KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0xODgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxODk6XHRpbmRleCA9IG1hY2JfcnhfcmluZ193cmFwKHF1ZXVlLVx1MDAzZWJwLCBpbmRleCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjE5MDpcdGluZGV4ID0gbWFjYl9hZGpfZG1hX2Rlc2NfaWR4KHF1ZXVlLVx1MDAzZWJwLCBpbmRleCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTE5MS1cdHJldHVybiBcdTAwMjZxdWV1ZS1cdTAwM2VyeF9yaW5nW2luZGV4XTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTE5My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MTk0OnN0YXRpYyB2b2lkICptYWNiX3J4X2J1ZmZlcihzdHJ1Y3QgbWFjYl9xdWV1ZSAqcXVldWUsIHVuc2lnbmVkIGludCBpbmRleClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTk1LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTk2LVx0cmV0dXJuIHF1ZXVlLVx1MDAzZXJ4X2J1ZmZlcnMgJiM0MzsgcXVldWUtXHUwMDNlYnAtXHUwMDNlcnhfYnVmZmVyX3NpemUgKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxOTc6XHQgICAgICAgbWFjYl9yeF9yaW5nX3dyYXAocXVldWUtXHUwMDNlYnAsIGluZGV4KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTk4LX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jPTIzOD1zdGF0aWMgYm9vbCBod19pc19nZW0odm9pZCBfX2lvbWVtICphZGRyLCBib29sIG5hdGl2ZV9pbylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTI0OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MjUwOnN0YXRpYyB2b2lkIG1hY2Jfc2V0X2h3YWRkcihzdHJ1Y3QgbWFjYiAqYnApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTI1MS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0yNTUtXHRib3R0b20gPSBnZXRfdW5hbGlnbmVkX2xlMzIoYnAtXHUwMDNlbmV0ZGV2LVx1MDAzZWRldl9hZGRyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MjU2Olx0bWFjYl9vcl9nZW1fd3JpdGVsKGJwLCBTQTFCLCBib3R0b20pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0yNTctXHR0b3AgPSBnZXRfdW5hbGlnbmVkX2xlMTYoYnAtXHUwMDNlbmV0ZGV2LVx1MDAzZWRldl9hZGRyICYjNDM7IDQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoyNTg6XHRtYWNiX29yX2dlbV93cml0ZWwoYnAsIFNBMVQsIHRvcCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTI1OS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTI2NS1cdC8qIENsZWFyIHVudXNlZCBhZGRyZXNzIHJlZ2lzdGVyIHNldHMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MjY2Olx0bWFjYl9vcl9nZW1fd3JpdGVsKGJwLCBTQTJCLCAwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MjY3Olx0bWFjYl9vcl9nZW1fd3JpdGVsKGJwLCBTQTJULCAwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MjY4Olx0bWFjYl9vcl9nZW1fd3JpdGVsKGJwLCBTQTNCLCAwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MjY5Olx0bWFjYl9vcl9nZW1fd3JpdGVsKGJwLCBTQTNULCAwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MjcwOlx0bWFjYl9vcl9nZW1fd3JpdGVsKGJwLCBTQTRCLCAwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MjcxOlx0bWFjYl9vcl9nZW1fd3JpdGVsKGJwLCBTQTRULCAwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMjcyLX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMjczLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoyNzQ6c3RhdGljIHZvaWQgbWFjYl9nZXRfaHdhZGRyKHN0cnVjdCBtYWNiICpicClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMjc1LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTI4Mi1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIDQ7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjI4MzpcdFx0Ym90dG9tID0gbWFjYl9vcl9nZW1fcmVhZGwoYnAsIFNBMUIgJiM0MzsgaSAqIDgpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoyODQ6XHRcdHRvcCA9IG1hY2Jfb3JfZ2VtX3JlYWRsKGJwLCBTQTFUICYjNDM7IGkgKiA4KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMjg1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMzAyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzozMDM6c3RhdGljIGludCBtYWNiX21kaW9fd2FpdF9mb3JfaWRsZShzdHJ1Y3QgbWFjYiAqYnApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTMwNC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0zMTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjMxMTpzdGF0aWMgaW50IG1hY2JfbWRpb19yZWFkX2MyMihzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgbWlpX2lkLCBpbnQgcmVnbnVtKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0zMTIte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMzE5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzozMjA6XHRzdGF0dXMgPSBtYWNiX21kaW9fd2FpdF9mb3JfaWRsZShicCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTMyMS1cdGlmIChzdGF0dXMgXHUwMDNjIDApXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0zMjMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjMyNDpcdG1hY2Jfd3JpdGVsKGJwLCBNQU4sIChNQUNCX0JGKFNPRiwgTUFDQl9NQU5fQzIyX1NPRilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMzI1LVx0XHRcdCAgICAgIHwgTUFDQl9CRihSVywgTUFDQl9NQU5fQzIyX1JFQUQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0zMjktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjMzMDpcdHN0YXR1cyA9IG1hY2JfbWRpb193YWl0X2Zvcl9pZGxlKGJwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMzMxLVx0aWYgKHN0YXR1cyBcdTAwM2MgMClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTMzMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MzM0Olx0c3RhdHVzID0gTUFDQl9CRkVYVChEQVRBLCBtYWNiX3JlYWRsKGJwLCBNQU4pKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMzM1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMzQxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzozNDI6c3RhdGljIGludCBtYWNiX21kaW9fcmVhZF9jNDUoc3RydWN0IG1paV9idXMgKmJ1cywgaW50IG1paV9pZCwgaW50IGRldmFkLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0zNDMtXHRcdFx0ICAgICAgaW50IHJlZ251bSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTM1My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MzU0Olx0c3RhdHVzID0gbWFjYl9tZGlvX3dhaXRfZm9yX2lkbGUoYnApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0zNTUtXHRpZiAoc3RhdHVzIFx1MDAzYyAwKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMzU3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzozNTg6XHRtYWNiX3dyaXRlbChicCwgTUFOLCAoTUFDQl9CRihTT0YsIE1BQ0JfTUFOX0M0NV9TT0YpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTM1OS1cdFx0XHQgICAgICB8IE1BQ0JfQkYoUlcsIE1BQ0JfTUFOX0M0NV9BRERSKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMzY0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzozNjU6XHRzdGF0dXMgPSBtYWNiX21kaW9fd2FpdF9mb3JfaWRsZShicCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTM2Ni1cdGlmIChzdGF0dXMgXHUwMDNjIDApXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0zNjgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjM2OTpcdG1hY2Jfd3JpdGVsKGJwLCBNQU4sIChNQUNCX0JGKFNPRiwgTUFDQl9NQU5fQzQ1X1NPRilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMzcwLVx0XHRcdCAgICAgIHwgTUFDQl9CRihSVywgTUFDQl9NQU5fQzQ1X1JFQUQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0zNzQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjM3NTpcdHN0YXR1cyA9IG1hY2JfbWRpb193YWl0X2Zvcl9pZGxlKGJwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMzc2LVx0aWYgKHN0YXR1cyBcdTAwM2MgMClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTM3OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6Mzc5Olx0c3RhdHVzID0gTUFDQl9CRkVYVChEQVRBLCBtYWNiX3JlYWRsKGJwLCBNQU4pKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMzgwLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMzg2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzozODc6c3RhdGljIGludCBtYWNiX21kaW9fd3JpdGVfYzIyKHN0cnVjdCBtaWlfYnVzICpidXMsIGludCBtaWlfaWQsIGludCByZWdudW0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTM4OC1cdFx0XHQgICAgICAgdTE2IHZhbHVlKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMzk2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzozOTc6XHRzdGF0dXMgPSBtYWNiX21kaW9fd2FpdF9mb3JfaWRsZShicCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTM5OC1cdGlmIChzdGF0dXMgXHUwMDNjIDApXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy00MDAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjQwMTpcdG1hY2Jfd3JpdGVsKGJwLCBNQU4sIChNQUNCX0JGKFNPRiwgTUFDQl9NQU5fQzIyX1NPRilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNDAyLVx0XHRcdCAgICAgIHwgTUFDQl9CRihSVywgTUFDQl9NQU5fQzIyX1dSSVRFKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNDA3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo0MDg6XHRzdGF0dXMgPSBtYWNiX21kaW9fd2FpdF9mb3JfaWRsZShicCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTQwOS1cdGlmIChzdGF0dXMgXHUwMDNjIDApXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy00MTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjQxODpzdGF0aWMgaW50IG1hY2JfbWRpb193cml0ZV9jNDUoc3RydWN0IG1paV9idXMgKmJ1cywgaW50IG1paV9pZCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNDE5LVx0XHRcdCAgICAgICBpbnQgZGV2YWQsIGludCByZWdudW0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy00MzAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjQzMTpcdHN0YXR1cyA9IG1hY2JfbWRpb193YWl0X2Zvcl9pZGxlKGJwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNDMyLVx0aWYgKHN0YXR1cyBcdTAwM2MgMClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTQzNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NDM1Olx0bWFjYl93cml0ZWwoYnAsIE1BTiwgKE1BQ0JfQkYoU09GLCBNQUNCX01BTl9DNDVfU09GKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy00MzYtXHRcdFx0ICAgICAgfCBNQUNCX0JGKFJXLCBNQUNCX01BTl9DNDVfQUREUilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTQ0MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NDQyOlx0c3RhdHVzID0gbWFjYl9tZGlvX3dhaXRfZm9yX2lkbGUoYnApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy00NDMtXHRpZiAoc3RhdHVzIFx1MDAzYyAwKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNDQ1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo0NDY6XHRtYWNiX3dyaXRlbChicCwgTUFOLCAoTUFDQl9CRihTT0YsIE1BQ0JfTUFOX0M0NV9TT0YpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTQ0Ny1cdFx0XHQgICAgICB8IE1BQ0JfQkYoUlcsIE1BQ0JfTUFOX0M0NV9XUklURSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTQ1Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NDUzOlx0c3RhdHVzID0gbWFjYl9tZGlvX3dhaXRfZm9yX2lkbGUoYnApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy00NTQtXHRpZiAoc3RhdHVzIFx1MDAzYyAwKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNDYyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo0NjM6c3RhdGljIHZvaWQgbWFjYl9pbml0X2J1ZmZlcnMoc3RydWN0IG1hY2IgKmJwKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy00NjQte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo0NjU6XHRzdHJ1Y3QgbWFjYl9xdWV1ZSAqcXVldWU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTQ2Ni1cdHVuc2lnbmVkIGludCBxO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNDY4LVx0LyogU2luZ2xlIHJlZ2lzdGVyIGZvciBhbGwgcXVldWVzJiMzOTsgaGlnaCAzMiBiaXRzLiAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo0Njk6XHRpZiAobWFjYl9kbWE2NChicCkpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NDcwOlx0XHRtYWNiX3dyaXRlbChicCwgUkJRUEgsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTQ3MS1cdFx0XHQgICAgdXBwZXJfMzJfYml0cyhicC1cdTAwM2VxdWV1ZXNbMF0ucnhfcmluZ19kbWEpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NDcyOlx0XHRtYWNiX3dyaXRlbChicCwgVEJRUEgsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTQ3My1cdFx0XHQgICAgdXBwZXJfMzJfYml0cyhicC1cdTAwM2VxdWV1ZXNbMF0udHhfcmluZ19kbWEpKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTQ4Mi0vKipcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NDgzOiAqIG1hY2Jfc2V0X3R4X2NsaygpIC0gU2V0IGEgY2xvY2sgdG8gYSBuZXcgZnJlcXVlbmN5XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTQ4NC0gKiBAYnA6XHRcdHBvaW50ZXIgdG8gc3RydWN0IG1hY2Jcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTQ4Ni0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NDg3OnN0YXRpYyB2b2lkIG1hY2Jfc2V0X3R4X2NsayhzdHJ1Y3QgbWFjYiAqYnAsIGludCBzcGVlZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNDg4LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTUxOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NTIwOnN0YXRpYyB2b2lkIG1hY2JfdXN4X3Bjc19saW5rX3VwKHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzLCB1bnNpZ25lZCBpbnQgbmVnX21vZGUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTUyMS1cdFx0XHRcdCBwaHlfaW50ZXJmYWNlX3QgaW50ZXJmYWNlLCBpbnQgc3BlZWQsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy01MzQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjUzNTpzdGF0aWMgdm9pZCBtYWNiX3VzeF9wY3NfZ2V0X3N0YXRlKHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy01MzYtXHRcdFx0XHQgICB1bnNpZ25lZCBpbnQgbmVnX21vZGUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy01NTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjU1MzpzdGF0aWMgaW50IG1hY2JfdXN4X3Bjc19jb25maWcoc3RydWN0IHBoeWxpbmtfcGNzICpwY3MsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTU1NC1cdFx0XHQgICAgICAgdW5zaWduZWQgaW50IG5lZ19tb2RlLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNTY2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo1Njc6c3RhdGljIHVuc2lnbmVkIGludCBtYWNiX3Bjc19pbmJhbmRfY2FwcyhzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNTY4LVx0XHRcdFx0XHQgcGh5X2ludGVyZmFjZV90IGludGVyZmFjZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTU3Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NTczOnN0YXRpYyB2b2lkIG1hY2JfcGNzX2dldF9zdGF0ZShzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcywgdW5zaWduZWQgaW50IG5lZ19tb2RlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy01NzQtXHRcdFx0ICAgICAgIHN0cnVjdCBwaHlsaW5rX2xpbmtfc3RhdGUgKnN0YXRlKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNTgzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo1ODQ6c3RhdGljIHZvaWQgbWFjYl9wY3NfYW5fcmVzdGFydChzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNTg1LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTU4OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NTg5OnN0YXRpYyBpbnQgbWFjYl9wY3NfY29uZmlnKHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy01OTAtXHRcdFx0ICAgdW5zaWduZWQgaW50IG5lZ19tb2RlLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNjA0LVx0ICogTXVzdCBiZSB3cml0dGVuIGFmdGVyIFBDU1NFTCBpcyBzZXQgaW4gTkNGR1Igd2hpY2ggaXMgZG9uZSBpblxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo2MDU6XHQgKiBtYWNiX21hY19jb25maWcoKSwgb3RoZXJ3aXNlIHdyaXRlcyB3aWxsIG5vdCB0YWtlIGVmZmVjdC5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNjA2LVx0ICovXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy02MTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjYxODpzdGF0aWMgY29uc3Qgc3RydWN0IHBoeWxpbmtfcGNzX29wcyBtYWNiX3BoeWxpbmtfdXN4X3Bjc19vcHMgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjYxOTpcdC5wY3NfZ2V0X3N0YXRlID0gbWFjYl91c3hfcGNzX2dldF9zdGF0ZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NjIwOlx0LnBjc19jb25maWcgPSBtYWNiX3VzeF9wY3NfY29uZmlnLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo2MjE6XHQucGNzX2xpbmtfdXAgPSBtYWNiX3VzeF9wY3NfbGlua191cCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNjIyLX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTYyMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NjI0OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcGh5bGlua19wY3Nfb3BzIG1hY2JfcGh5bGlua19wY3Nfb3BzID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo2MjU6XHQucGNzX2luYmFuZF9jYXBzID0gbWFjYl9wY3NfaW5iYW5kX2NhcHMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjYyNjpcdC5wY3NfZ2V0X3N0YXRlID0gbWFjYl9wY3NfZ2V0X3N0YXRlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo2Mjc6XHQucGNzX2FuX3Jlc3RhcnQgPSBtYWNiX3Bjc19hbl9yZXN0YXJ0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo2Mjg6XHQucGNzX2NvbmZpZyA9IG1hY2JfcGNzX2NvbmZpZyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNjI5LX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTYzMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NjMxOnN0YXRpYyBib29sIG1hY2JfdHhfbHBpX3NldChzdHJ1Y3QgbWFjYiAqYnAsIGJvb2wgZW5hYmxlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy02MzIte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNjM2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo2Mzc6XHRuY3IgPSBtYWNiX3JlYWRsKGJwLCBOQ1IpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy02MzgtXHRvbGQgPSBuY3I7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy02NDMtXHRpZiAob2xkICE9IG5jcilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NjQ0Olx0XHRtYWNiX3dyaXRlbChicCwgTkNSLCBuY3IpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy02NDUtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy02NDgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjY0OTpzdGF0aWMgYm9vbCBtYWNiX3R4X2FsbF9xdWV1ZXNfaWRsZShzdHJ1Y3QgbWFjYiAqYnApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTY1MC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjY1MTpcdHN0cnVjdCBtYWNiX3F1ZXVlICpxdWV1ZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNjUyLVx0dW5zaWduZWQgaW50IHE7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy02NjAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjY2MTpzdGF0aWMgdm9pZCBtYWNiX3R4X2xwaV93b3JrX2ZuKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNjYyLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTY2Ni1cdHNwaW5fbG9ja19pcnFzYXZlKFx1MDAyNmJwLVx1MDAzZWxvY2ssIGZsYWdzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NjY3Olx0aWYgKGJwLVx1MDAzZWVlZV9hY3RpdmUgXHUwMDI2XHUwMDI2IG1hY2JfdHhfYWxsX3F1ZXVlc19pZGxlKGJwKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NjY4Olx0XHRtYWNiX3R4X2xwaV9zZXQoYnAsIHRydWUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy02NjktXHRzcGluX3VubG9ja19pcnFyZXN0b3JlKFx1MDAyNmJwLVx1MDAzZWxvY2ssIGZsYWdzKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTY3MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NjcyOnN0YXRpYyB2b2lkIG1hY2JfdHhfbHBpX3NjaGVkdWxlKHN0cnVjdCBtYWNiICpicClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNjczLXtcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMCAxNjo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NDM3MgoJCQkJCQkJb3V0cHV0OiAzNQoJCQkJCQkJdGhvdWdodHM6IDQwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHN1bW1hcnksIGFzIHRob3VnaCBJJiMzOTttIHRoaW5raW5nIHRocm91Z2ggdGhpcyBwcm9jZXNzOgoKKipUcmFjaW5nIHRoZSBQVFAgSW5pdGlhbGl6YXRpb24qKgoKT2theSwgc28gSSYjMzk7bSBkaWdnaW5nIGludG8gaG93IFByZWNpc2lvbiBUaW1lIFByb3RvY29sIChQVFApIGlzIGluaXRpYWxpemVkIHdpdGhpbiB0aGlzIGRyaXZlci4gVGhlIGluaXRpYWwgY2x1ZSBpcyB0aGF0IGBnZW1fcHRwX2luaXRgIGdldHMgY2FsbGVkLCBhbmQgZnJvbSB3aGF0IEkgcmVtZW1iZXIsIEkgYmVsaWV2ZSBpdCYjMzk7cyBoYXBwZW5pbmcgd2l0aGluIGBtYWNiX21haW4uY2AuIE5vdywgdGhlIG5leHQgbG9naWNhbCBzdGVwIGlzIHRvIHBpbnBvaW50ICpleGFjdGx5KiB3aGVyZSB0aGF0IGZ1bmN0aW9uIGNhbGwgbGl2ZXMgd2l0aGluIHRoZSBjb2RlLiBMZXQmIzM5O3MgZmlyZSB1cCB0aGUgc2VhcmNoIHRvb2xzIGFuZCBzZWUgd2hhdCB3ZSBjYW4gZmluZC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNhbGwgc3RhY2sgYW5kIGhvdyB0aGlzIFBUUCBpbml0aWFsaXphdGlvbiBmaXRzIGludG8gdGhlIG92ZXJhbGwgTUFDQiBkcml2ZXImIzM5O3Mgc3RhcnR1cCBzZXF1ZW5jZS4gVGhhdCB3aWxsIHRlbGwgbWUgZXZlcnl0aGluZyBJIG5lZWQgdG8ga25vdyBhYm91dCB0aGUgZGV2aWNlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMCAxNjo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtnZW1fcHRwX2luaXQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oPTEzOTY9ZW51bSBtYWNiX2JkX2NvbnRyb2wge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTE0MDItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxNDAzOnZvaWQgZ2VtX3B0cF9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTQwNC12b2lkIGdlbV9wdHBfcmVtb3ZlKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oPTE0MjU9aW50IGdlbV9zZXRfaHd0c3Qoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xNDI4LSNlbHNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxNDI5OnN0YXRpYyBpbmxpbmUgdm9pZCBnZW1fcHRwX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldikgeyB9XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xNDMwLXN0YXRpYyBpbmxpbmUgdm9pZCBnZW1fcHRwX3JlbW92ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KSB7IH1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jPTM3NzU9c3RhdGljIHN0cnVjdCBtYWNiX3B0cF9pbmZvIGdlbV9wdHBfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6Mzc3NjpcdC5wdHBfaW5pdFx0ID0gZ2VtX3B0cF9pbml0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0zNzc3LVx0LnB0cF9yZW1vdmVcdCA9IGdlbV9wdHBfcmVtb3ZlLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYz0xOTE9c3RhdGljIGNvbnN0IHN0cnVjdCBwdHBfY2xvY2tfaW5mbyBnZW1fcHRwX2NhcHNfdGVtcGxhdGUgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jLTIwNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYzoyMDc6c3RhdGljIHZvaWQgZ2VtX3B0cF9pbml0X3RpbWVyKHN0cnVjdCBtYWNiICpicClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYy0yMDgte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYy0yMjEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmM6MjIyOnN0YXRpYyB2b2lkIGdlbV9wdHBfaW5pdF90c3Uoc3RydWN0IG1hY2IgKmJwKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jLTIyMy17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jPTI5Nz12b2lkIGdlbV9wdHBfdHhzdGFtcChzdHJ1Y3QgbWFjYiAqYnAsIHN0cnVjdCBza19idWZmICpza2IsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jLTMyNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYzozMjc6dm9pZCBnZW1fcHRwX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYy0zMjgte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYy0zMzctXHRicC1cdTAwM2VwdHBfY2xvY2tfaW5mby5tYXhfYWRqID0gYnAtXHUwMDNlcHRwX2luZm8tXHUwMDNlZ2V0X3B0cF9tYXhfYWRqKCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmM6MzM4Olx0Z2VtX3B0cF9pbml0X3RpbWVyKGJwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYy0zMzktXHRicC1cdTAwM2VwdHBfY2xvY2sgPSBwdHBfY2xvY2tfcmVnaXN0ZXIoXHUwMDI2YnAtXHUwMDNlcHRwX2Nsb2NrX2luZm8sIFx1MDAyNm5ldGRldi1cdTAwM2VkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYy0zNDktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmM6MzUwOlx0Z2VtX3B0cF9pbml0X3RzdShicCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMtMzUxLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMCAxNjo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NTU5MQoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDI5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKlRyYWNpbmcgdGhlIFBUUCBJbml0aWFsaXphdGlvbiBpbiBtYWNiX21haW4uYyoqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgUFRQIGluaXRpYWxpemF0aW9uIHJvdXRpbmUsIHNwZWNpZmljYWxseSBgZ2VtX3B0cF9pbmZvLnB0cF9pbml0YCwgaXMgYmVpbmcgY2FsbGVkIHdpdGhpbiBgbWFjYl9tYWluLmNgLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcyB0byB0cmFjayBkb3duIHRoZSBjYWxsZXJzIOKAkyB3aGljaCBvdGhlciBmdW5jdGlvbnMgd2l0aGluIHRoYXQgZmlsZSBhcmUgaW52b2tpbmcgYGdlbV9wdHBfaW5mby5wdHBfaW5pdGA/IFRoaXMgaXMgdGhlIGNydWNpYWwgc3RhcnRpbmcgcG9pbnQgZm9yIHVuZGVyc3RhbmRpbmcgdGhlIG92ZXJhbGwgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UgYW5kIHRoZSByb2xlIG9mIFBUUCB3aXRoaW4gdGhlIGJyb2FkZXIgTUFDQiBkcml2ZXIgY29udGV4dC4gSSYjMzk7bGwgbmVlZCB0byB1c2UgbXkgdXN1YWwgbWV0aG9kcywgbGlrZWx5IGEgY29tYmluYXRpb24gb2Ygc3RhdGljIGFuYWx5c2lzIChncmVwcGluZyBvciB1c2luZyBhbiBJREUmIzM5O3MgY3Jvc3MtcmVmZXJlbmNpbmcgY2FwYWJpbGl0aWVzKSBhbmQgcGVyaGFwcyBldmVuIHNvbWUgZHluYW1pYyB0cmFjaW5nIGlmIHRoZSBzdGF0aWMgYW5hbHlzaXMgcHJvdmVzIGluc3VmZmljaWVudCBvciBpZiBJIHN1c3BlY3QgY29uZGl0aW9uYWwgY2FsbHMgdGhhdCBhcmUgbm90IGltbWVkaWF0ZWx5IG9idmlvdXMgZnJvbSB0aGUgc291cmNlIGNvZGUuIFRoZSBnb2FsIGlzIGEgY2xlYXIgdW5kZXJzdGFuZGluZyBvZiB0aGUgaW5pdGlhbGl6YXRpb24gZmxvdy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzAgMTY6NDM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cHRwX2luaXQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oPTEyMDM9c3RydWN0IG1hY2JfcHRwX2luZm8ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTIwNDpcdHZvaWQgKCpwdHBfaW5pdCkoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMjA1LVx0dm9pZCAoKnB0cF9yZW1vdmUpKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oPTEzOTY9ZW51bSBtYWNiX2JkX2NvbnRyb2wge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTE0MDItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxNDAzOnZvaWQgZ2VtX3B0cF9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTQwNC12b2lkIGdlbV9wdHBfcmVtb3ZlKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oPTE0MjU9aW50IGdlbV9zZXRfaHd0c3Qoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xNDI4LSNlbHNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxNDI5OnN0YXRpYyBpbmxpbmUgdm9pZCBnZW1fcHRwX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldikgeyB9XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xNDMwLXN0YXRpYyBpbmxpbmUgdm9pZCBnZW1fcHRwX3JlbW92ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KSB7IH1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jPTMxMjk9c3RhdGljIGludCBtYWNiX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTMxNzctXHRpZiAoYnAtXHUwMDNlcHRwX2luZm8pXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjMxNzg6XHRcdGJwLVx1MDAzZXB0cF9pbmZvLVx1MDAzZXB0cF9pbml0KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTMxNzktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYz0zNzc1PXN0YXRpYyBzdHJ1Y3QgbWFjYl9wdHBfaW5mbyBnZW1fcHRwX2luZm8gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjM3NzY6XHQucHRwX2luaXRcdCA9IGdlbV9wdHBfaW5pdCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMzc3Ny1cdC5wdHBfcmVtb3ZlXHQgPSBnZW1fcHRwX3JlbW92ZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jPTYxMzM9c3RhdGljIGludCBfX21heWJlX3VudXNlZCBtYWNiX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy02MjA3LVx0aWYgKGJwLVx1MDAzZXB0cF9pbmZvKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo2MjA4Olx0XHRicC1cdTAwM2VwdHBfaW5mby1cdTAwM2VwdHBfaW5pdChuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy02MjA5LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYz0xOTE9c3RhdGljIGNvbnN0IHN0cnVjdCBwdHBfY2xvY2tfaW5mbyBnZW1fcHRwX2NhcHNfdGVtcGxhdGUgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jLTIwNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYzoyMDc6c3RhdGljIHZvaWQgZ2VtX3B0cF9pbml0X3RpbWVyKHN0cnVjdCBtYWNiICpicClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYy0yMDgte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYy0yMjEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmM6MjIyOnN0YXRpYyB2b2lkIGdlbV9wdHBfaW5pdF90c3Uoc3RydWN0IG1hY2IgKmJwKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jLTIyMy17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jPTI5Nz12b2lkIGdlbV9wdHBfdHhzdGFtcChzdHJ1Y3QgbWFjYiAqYnAsIHN0cnVjdCBza19idWZmICpza2IsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jLTMyNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYzozMjc6dm9pZCBnZW1fcHRwX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYy0zMjgte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYy0zMzctXHRicC1cdTAwM2VwdHBfY2xvY2tfaW5mby5tYXhfYWRqID0gYnAtXHUwMDNlcHRwX2luZm8tXHUwMDNlZ2V0X3B0cF9tYXhfYWRqKCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmM6MzM4Olx0Z2VtX3B0cF9pbml0X3RpbWVyKGJwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYy0zMzktXHRicC1cdTAwM2VwdHBfY2xvY2sgPSBwdHBfY2xvY2tfcmVnaXN0ZXIoXHUwMDI2YnAtXHUwMDNlcHRwX2Nsb2NrX2luZm8sIFx1MDAyNm5ldGRldi1cdTAwM2VkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYy0zNDktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmM6MzUwOlx0Z2VtX3B0cF9pbml0X3RzdShicCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMtMzUxLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMCAxNjo0MzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NzIyNwoJCQkJCQkJb3V0cHV0OiAxNTgKCQkJCQkJCXRob3VnaHRzOiAxMzc3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKldvcnRoRnV6emluZyBBc3Nlc3NtZW50OiBDYWRlbmNlIE1BQ0IvR0VNIERyaXZlcioqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBGaXJzdCwgYGdlbV9wdHBfaW5pdGAgaXMgY2FsbGVkIGJ5IGBtYWNiX29wZW5gLCB3aGljaCBpcyBgbmRvX29wZW5gLCBnb3QgaXQuIE5vdywgdGhlIGtleSBxdWVzdGlvbiBpcyB3aGV0aGVyIHRoaXMgQ2FkZW5jZSBNQUNCIGRyaXZlciBjYW4gYmUgaW5zdGFudGlhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgR0NFIGZ1enppbmcgZW52aXJvbm1lbnRzLiBXZSBuZWVkIHRvIGJlIG1ldGljdWxvdXMuIExldCYjMzk7cyByZXZpc2l0IHRoZSBydWxlcy4gVGhlIGNyaXRlcmlhIHN0aXB1bGF0ZSB0aGF0IHdlIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYCBpZiB0aGUgcGF0Y2ggY29uY2VybnMgbW9kaWZpY2F0aW9ucyB0byBkb2N1bWVudGF0aW9uLCBLY29uZmlnLCBjb21tZW50cywgY29zbWV0aWMgY2hhbmdlcywgbm9uLWZ1bmN0aW9uYWwgbnVtZXJpYyBjb25zdGFudHMvbWFjcm9zLCBvciB1bnJlYWNoYWJsZSBjb2RlIHBhdGhzIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gU3BlY2lmaWNhbGx5LCB0aGUgcnVsZXMgZXhjbHVkZSBjb2RlIHBhdGhzIHRoYXQgYXJlIGluYWNjZXNzaWJsZSBpbiBRRU1VL0dDRSwgZXZlbiB3aXRoIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlLiBUaGlzIGFsc28gYXBwbGllcyB0byB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyByZXF1aXJpbmcgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4gRmluYWxseSwgdGVhcmRvd24gY2FsbGJhY2tzIGFyZSBhbHNvIHVuaW50ZXJlc3RpbmcgaW4gdGhpcyBjb250ZXh0LgoKUmlnaHQsIHNvLCBpcyB0aGUgQ2FkZW5jZSBNQUNCL0dFTSBhIGhhcmR3YXJlLXNwZWNpZmljIFNvQy9QQ0kgZHJpdmVyIG5vdCByZWFjaGFibGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzPyBMZXQmIzM5O3MgY2hlY2suIEhvdyBpcyBDYWRlbmNlIE1BQ0IgcHJvYmVkPyBJdCYjMzk7cyBwcm9iZWQgdmlhIERUIChEZXZpY2UgVHJlZSkgd2l0aCBjb21wYXRpYmxlIHN0cmluZ3MgbGlrZSBgY2RucyxhdDkxc2FtOTI2MC1tYWNiYCwgYGNkbnMsbWFjYmAsIGBjZG5zLGdlbWAsIGB4bG54LHp5bnEtZ2VtYCwgYHNpZml2ZSxmdTU0MC1jMDAwLWdlbWAsIGFuZCBhbHNvIHZpYSBQQ0kgd2l0aCBJRCAweDE3Y2Q6MHhlMDA3IChDYWRlbmNlIFBDSSBHRU0pLiBOb3csIGlzIHRoaXMgQ2FkZW5jZSBHRU0gZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSB4ODZfNjQgb3IgQVJNNjQgdmlydCBtYWNoaW5lcz8gTm8hIFN0YW5kYXJkIFFFTVUgeDg2XzY0IHVzZXMgZTEwMDAsIGUxMDAwZSwgcnRsODEzOSwgdmlydGlvLW5ldC1wY2ksIGV0Yy4sIGFuZCBzdGFuZGFyZCBBUk02NCB2aXJ0IHVzZXMgdmlydGlvLW5ldC1wY2kuIENhZGVuY2UgR0VNIGluIFFFTVUgaXMgb25seSBhdmFpbGFibGUgaWYgcnVubmluZyBzcGVjaWZpYyBtYWNoaW5lIGJvYXJkcyBsaWtlIGB4bG54LXpjdTEwMmAsIGB6eW5xLWE5YCwgb3IgYHNpZml2ZV91YC4gR0NFIG9yIHN0YW5kYXJkIFFFTVUgKHg4Nl82NCBvciBBUk02NCB2aXJ0KSBkbyBub3Qgb2ZmZXIgQ2FkZW5jZSBHRU0gaGFyZHdhcmUgb3IgUENJIGRldmljZXMuCgpPa2F5LCB3aGF0IGFib3V0IHN5emthbGxlcj8gQ2FuIHN5emthbGxlciBydW4gb24gaW5zdGFuY2VzIHRlc3RpbmcgdGhlc2UgZHJpdmVycz8gU3RhbmRhcmQgTGludXggZnV6emluZyBpbiBzeXprYWxsZXIgaXMgeDg2XzY0IGFuZCBhcm02NCB2aXJ0LiBUaGUgcnVsZXMgYXJlIGNsZWFyOiBjb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUgYXJlIGV4Y2x1ZGVkLCBhbG9uZyB3aXRoIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIHJlcXVpcmluZyBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlLgoKU28sIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL2AuLi4gSXMgQ2FkZW5jZSBNQUNCIGEgdmVuZG9yLXNwZWNpZmljIGhhcmR3YXJlIGRyaXZlcj8gWWVzISBJdCYjMzk7cyBhbiBFdGhlcm5ldCBNQUMgZHJpdmVyIGZvciBDYWRlbmNlIElQIGZvdW5kIG9uIEF0bWVsL01pY3JvY2hpcCBBVDkxL1NBTUE1LCBYaWxpbnggWnlucSwgU2lGaXZlIEZVNTQwLCBhbmQgQ2FkZW5jZSYjMzk7cyBpbnRlcm5hbCBQQ0kgRlBHQSBwcm90b3R5cGUgYm9hcmQuIEl0JiMzOTtzIHVucmVhY2hhYmxlIHdpdGhvdXQgdGhhdCBzcGVjaWZpYyBwaHlzaWNhbCBoYXJkd2FyZSBvciBzcGVjaWFsaXplZCBlbWJlZGRlZCBTb0MgZW11bGF0aW9uLiBUaGVyZSYjMzk7cyBubyBzb2Z0d2FyZSBkZXZpY2UvbW9jay92aXJ0dWFsIGRldmljZSBvciBVU0IgaW50ZXJmYWNlIHRoYXQgdXNlcyBtYWNiLiBNQUNCIGlzIHB1cmVseSBhbiBNTUlPIHBsYXRmb3JtIGRyaXZlciBvciBhIENETlMgUENJIHdyYXBwZXIgZm9yIHRoZSBDYWRlbmNlIElQIGNvcmUuIEl0JiMzOTtzIGluYWNjZXNzaWJsZSBpbiBzdGFuZGFyZCBmdXp6aW5nIGVudmlyb25tZW50cy4KCkxldCYjMzk7cyBjb25maXJtIHRoZSBgV29ydGhGdXp6aW5nYCBzaG91bGQgYmUgZmFsc2UgYmFzZWQgb24gdGhlIGNyaXRlcmlhOiAmIzM0O1JldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYuLi4gY29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLi4uIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuJiMzNDsKCkluZGVlZCwgdGhlIENhZGVuY2UgTUFDQiAvIEdFTSBldGhlcm5ldCBkcml2ZXIgKGBkcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmNgKSByZXF1aXJlcyBzcGVjaWZpYyBwaHlzaWNhbCBoYXJkd2FyZSAoQXRtZWwgLyBNaWNyb2NoaXAgU29DLCBYaWxpbnggWnlucSwgU2lGaXZlIFJJU0MtViBTb0MsIG9yIENhZGVuY2UgUENJIEZQR0EgdGVzdCBkZXZpY2UpIHRoYXQgaXMgbm90IGF2YWlsYWJsZSBvciBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVSB2aXJ0L0dDRSkuCgpUaGVyZWZvcmUsIHRoZSBjb25jbHVzaW9uIGlzOiBgV29ydGhGdXp6aW5nID0gZmFsc2VgLiBgRW5hYmxlQ29uZmlncyA9IFtdYC4gYEZvY3VzU3ltYm9scyA9IFtdYC4gVGhlIHJlYXNvbmluZzogVGhlIHBhdGNoIGZpeGVzIHRoZSBpbml0aWFsaXphdGlvbiBvcmRlciBvZiB0aGUgc3BpbmxvY2sgYHRzdV9jbGtfbG9ja2AgaW4gYGdlbV9wdHBfaW5pdGAgd2l0aGluIHRoZSBDYWRlbmNlIE1BQ0IvR0VNIG5ldHdvcmsgZHJpdmVyLiBUaGlzIGRyaXZlciB0YXJnZXRzIGVtYmVkZGVkIFNvQ3MgKEF0bWVsL01pY3JvY2hpcCwgWGlsaW54IFp5bnEsIFNpRml2ZSkgYW5kIENhZGVuY2UgUENJIHRlc3QgaGFyZHdhcmUgdGhhdCBhcmUgbm90IHByZXNlbnQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIHZpcnQvR0NFLgoKUXVpY2sKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMCAxNjo0MzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIHRoZSBpbml0aWFsaXphdGlvbiBvcmRlciBvZiBgYnAtXHUwMDNldHN1X2Nsa19sb2NrYCBiZWZvcmUgcmVnaXN0ZXJpbmcgdGhlIFBUUCBjbG9jayBpbiBgZ2VtX3B0cF9pbml0KClgIGZvciB0aGUgQ2FkZW5jZSBNQUNCL0dFTSBuZXR3b3JrIGRyaXZlciAoZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jKS4gVGhpcyBkcml2ZXIgaXMgZm9yIGhhcmR3YXJlLXNwZWNpZmljIENhZGVuY2UgRXRoZXJuZXQgTUFDIElQIG9uIGVtYmVkZGVkIFNvQ3MgKHN1Y2ggYXMgQXRtZWwvTWljcm9jaGlwLCBYaWxpbnggWnlucSwgU2lGaXZlKSBvciBwcm9wcmlldGFyeSBQQ0kgdGVzdCBjYXJkcywgd2hpY2ggYXJlIG5vdCBwcmVzZW50IGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChlLmcuIFFFTVUgc3RhbmRhcmQgdmlydCAvIEdDRSkuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyB0aGUgaW5pdGlhbGl6YXRpb24gb3JkZXIgb2YgYGJwLVx1MDAzZXRzdV9jbGtfbG9ja2AgYmVmb3JlIHJlZ2lzdGVyaW5nIHRoZSBQVFAgY2xvY2sgaW4gYGdlbV9wdHBfaW5pdCgpYCBmb3IgdGhlIENhZGVuY2UgTUFDQi9HRU0gbmV0d29yayBkcml2ZXIgKGRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYykuIFRoaXMgZHJpdmVyIGlzIGZvciBoYXJkd2FyZS1zcGVjaWZpYyBDYWRlbmNlIEV0aGVybmV0IE1BQyBJUCBvbiBlbWJlZGRlZCBTb0NzIChzdWNoIGFzIEF0bWVsL01pY3JvY2hpcCwgWGlsaW54IFp5bnEsIFNpRml2ZSkgb3IgcHJvcHJpZXRhcnkgUENJIHRlc3QgY2FyZHMsIHdoaWNoIGFyZSBub3QgcHJlc2VudCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoZS5nLiBRRU1VIHN0YW5kYXJkIHZpcnQgLyBHQ0UpLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzAgMTY6NDM8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMwVDE2OjMzOjEwLjE1NDI5MzUwNFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYxMzM5OTUxMzI0NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2UsXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIHRoZSBpbml0aWFsaXphdGlvbiBvcmRlciBvZiBgYnAtXFx1MDAzZXRzdV9jbGtfbG9ja2AgYmVmb3JlIHJlZ2lzdGVyaW5nIHRoZSBQVFAgY2xvY2sgaW4gYGdlbV9wdHBfaW5pdCgpYCBmb3IgdGhlIENhZGVuY2UgTUFDQi9HRU0gbmV0d29yayBkcml2ZXIgKGRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYykuIFRoaXMgZHJpdmVyIGlzIGZvciBoYXJkd2FyZS1zcGVjaWZpYyBDYWRlbmNlIEV0aGVybmV0IE1BQyBJUCBvbiBlbWJlZGRlZCBTb0NzIChzdWNoIGFzIEF0bWVsL01pY3JvY2hpcCwgWGlsaW54IFp5bnEsIFNpRml2ZSkgb3IgcHJvcHJpZXRhcnkgUENJIHRlc3QgY2FyZHMsIHdoaWNoIGFyZSBub3QgcHJlc2VudCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoZS5nLiBRRU1VIHN0YW5kYXJkIHZpcnQgLyBHQ0UpLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzBUMTY6MzM6MTAuMTU0Mjk3NzE0WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDQ4NDMzMTE3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgZWFjMWUxZWIyZTcyOGUwODEwYWIyMmQ5YzhiMWZkZjc3MTRlYjBiMFxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgU3VuIEF1ZyAzMCAxNjozMzowOCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmNcXG5pbmRleCBlNTE5NWQ3ZGFjMWQ1Li4wNTUxNjBjNDJkYjNjIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuY1xcbkBAIC0zMzAsNiArMzMwLDggQEAgdm9pZCBnZW1fcHRwX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcXG4gXFxuIFxcdGJwLVxcdTAwM2VwdHBfY2xvY2tfaW5mbyA9IGdlbV9wdHBfY2Fwc190ZW1wbGF0ZTtcXG4gXFxuK1xcdHNwaW5fbG9ja19pbml0KFxcdTAwMjZicC1cXHUwMDNldHN1X2Nsa19sb2NrKTtcXG4rXFxuIFxcdC8qIG5vbWluYWwgZnJlcXVlbmN5IGFuZCBtYXhpbXVtIGFkanVzdG1lbnQgaW4gcHBiICovXFxuIFxcdGJwLVxcdTAwM2V0c3VfcmF0ZSA9IGJwLVxcdTAwM2VwdHBfaW5mby1cXHUwMDNlZ2V0X3RzdV9yYXRlKGJwKTtcXG4gXFx0YnAtXFx1MDAzZXB0cF9jbG9ja19pbmZvLm1heF9hZGogPSBicC1cXHUwMDNlcHRwX2luZm8tXFx1MDAzZWdldF9wdHBfbWF4X2FkaigpO1xcbkBAIC0zNDUsOCArMzQ3LDYgQEAgdm9pZCBnZW1fcHRwX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcXG4gXFx0XFx0cmV0dXJuO1xcbiBcXHR9XFxuIFxcbi1cXHRzcGluX2xvY2tfaW5pdChcXHUwMDI2YnAtXFx1MDAzZXRzdV9jbGtfbG9jayk7XFxuLVxcbiBcXHRnZW1fcHRwX2luaXRfdHN1KGJwKTtcXG4gXFxuIFxcdGRldl9pbmZvKFxcdTAwMjZicC1cXHUwMDNlcGRldi1cXHUwMDNlZGV2LCBcXFwiJXMgcHRwIGNsb2NrIHJlZ2lzdGVyZWQuXFxcXG5cXFwiLFxcbkBAIC00NjcsNCArNDY3LDMgQEAgaW50IGdlbV9zZXRfaHd0c3Qoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcXG4gXFxuIFxcdHJldHVybiAwO1xcbiB9XFxuLVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0zMFQxNjozMzoxMS42MDM0MDc4NTFaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJjb3JlIiwiRHVyYXRpb24iOjYxMTk1MDM4NzU4MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgdGhlIGluaXRpYWxpemF0aW9uIG9yZGVyIG9mIGBicC1cXHUwMDNldHN1X2Nsa19sb2NrYCBiZWZvcmUgcmVnaXN0ZXJpbmcgdGhlIFBUUCBjbG9jayBpbiBgZ2VtX3B0cF9pbml0KClgIGZvciB0aGUgQ2FkZW5jZSBNQUNCL0dFTSBuZXR3b3JrIGRyaXZlciAoZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jKS4gVGhpcyBkcml2ZXIgaXMgZm9yIGhhcmR3YXJlLXNwZWNpZmljIENhZGVuY2UgRXRoZXJuZXQgTUFDIElQIG9uIGVtYmVkZGVkIFNvQ3MgKHN1Y2ggYXMgQXRtZWwvTWljcm9jaGlwLCBYaWxpbnggWnlucSwgU2lGaXZlKSBvciBwcm9wcmlldGFyeSBQQ0kgdGVzdCBjYXJkcywgd2hpY2ggYXJlIG5vdCBwcmVzZW50IGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChlLmcuIFFFTVUgc3RhbmRhcmQgdmlydCAvIEdDRSkuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBlYWMxZTFlYjJlNzI4ZTA4MTBhYjIyZDljOGIxZmRmNzcxNGViMGIwXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFN1biBBdWcgMzAgMTY6MzM6MDggMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmNcbmluZGV4IGU1MTk1ZDdkYWMxZDUuLjA1NTE2MGM0MmRiM2MgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuY1xuQEAgLTMzMCw2ICszMzAsOCBAQCB2b2lkIGdlbV9wdHBfaW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxuIFxuIFx0YnAtXHUwMDNlcHRwX2Nsb2NrX2luZm8gPSBnZW1fcHRwX2NhcHNfdGVtcGxhdGU7XG4gXG4rXHRzcGluX2xvY2tfaW5pdChcdTAwMjZicC1cdTAwM2V0c3VfY2xrX2xvY2spO1xuK1xuIFx0Lyogbm9taW5hbCBmcmVxdWVuY3kgYW5kIG1heGltdW0gYWRqdXN0bWVudCBpbiBwcGIgKi9cbiBcdGJwLVx1MDAzZXRzdV9yYXRlID0gYnAtXHUwMDNlcHRwX2luZm8tXHUwMDNlZ2V0X3RzdV9yYXRlKGJwKTtcbiBcdGJwLVx1MDAzZXB0cF9jbG9ja19pbmZvLm1heF9hZGogPSBicC1cdTAwM2VwdHBfaW5mby1cdTAwM2VnZXRfcHRwX21heF9hZGooKTtcbkBAIC0zNDUsOCArMzQ3LDYgQEAgdm9pZCBnZW1fcHRwX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbiBcdFx0cmV0dXJuO1xuIFx0fVxuIFxuLVx0c3Bpbl9sb2NrX2luaXQoXHUwMDI2YnAtXHUwMDNldHN1X2Nsa19sb2NrKTtcbi1cbiBcdGdlbV9wdHBfaW5pdF90c3UoYnApO1xuIFxuIFx0ZGV2X2luZm8oXHUwMDI2YnAtXHUwMDNlcGRldi1cdTAwM2VkZXYsIFwiJXMgcHRwIGNsb2NrIHJlZ2lzdGVyZWQuXFxuXCIsXG5AQCAtNDY3LDQgKzQ2NywzIEBAIGludCBnZW1fc2V0X2h3dHN0KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXG4gXG4gXHRyZXR1cm4gMDtcbiB9XG4tXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0zMFQxNjozMzoxMS42MDM0MDk1NTFaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoxNTc1MTg4NTYwMjQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIEkgYW5hbHl6ZSB0aGlzIHBhdGNoOlxuXG4qKkluaXRpYWwgQXNzZXNzbWVudDogRnV6emluZyBGZWFzaWJpbGl0eSoqXG5cbk9rYXksIGZpcnN0IHRoaW5ncyBmaXJzdCwgbGV0J3MgZmlndXJlIG91dCBpZiB0aGlzIHBhdGNoIGlzIGV2ZW4gd29ydGggb3VyIHRpbWUuIElzIGl0IHNvbWV0aGluZyB0aGF0J3MgcmlwZSBmb3IgZnV6emluZz8gV2hhdCdzIHRoZSBzY29wZSBvZiB0aGUgY2hhbmdlcz8gVGhlIGdvYWwgaGVyZSBpcyB0byBkZXRlcm1pbmUgcXVpY2tseSBpZiBpdCdzIHNvbWV0aGluZyByZWFjaGFibGUgdGhyb3VnaCBteSBzdGFuZGFyZCBmdXp6aW5nIHNldHVwcywgb3IgaWYgaXQgdG91Y2hlcyBzb21ldGhpbmcgdGhhdCB3aWxsIHJlcXVpcmUgbW9yZSBjb21wbGV4IHNldHVwLCBsaWtlIGhhcmR3YXJlIGVtdWxhdGlvbiBvciBwbGF0Zm9ybS1zcGVjaWZpYyBjb25maWd1cmF0aW9ucyBJIGhhdmVuJ3QgZGVhbHQgd2l0aCBiZWZvcmUuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBhdHRhY2sgc3VyZmFjZS5cblxuKipEaXZpbmcgaW50byB0aGUgQ29kZSoqXG5cbk5vdywgbGV0J3MgZ2V0IHNwZWNpZmljLiBUaGUgcHJvbXB0IG1lbnRpb25zIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmNgLiBUaGF0J3MgYSBnb29kIHN0YXJ0aW5nIHBvaW50LiBJJ2xsIG5lZWQgdG8gZGlnIGludG8gdGhhdCBmaWxlIGFuZCBhbnkgcmVsYXRlZCBLY29uZmlnIGFuZCBzb3VyY2UgZmlsZXMgdG8gZ2V0IGEgZnVsbCBwaWN0dXJlLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgbmV0d29yayBpbnRlcmZhY2UgYW5kIGlmIHRoZXJlJ3MgYW4gb2J2aW91cyBlbnRyeXBvaW50IGZvciBleHBsb2l0YXRpb24uIEknbGwgYmUgbG9va2luZyBmb3IgcG90ZW50aWFsIHZ1bG5lcmFiaWxpdGllcywgaW50ZXJlc3RpbmcgZGF0YSBmbG93cywgYW5kIG1heWJlIHNvbWUgb3Bwb3J0dW5pdGllcyBmb3IgY29kZSBpbmplY3Rpb24gb3IgYnVmZmVyIG92ZXJmbG93cywgd2hpY2ggYXJlIHRoZSB1c3VhbCBzdXNwZWN0cyBpbiB0aGlzIGFyZWEuIEZyb20gdGhlcmUsIEknbGwgbmVlZCB0byB0cmFjZSBpbnB1dHMsIGFuZCBkZXRlcm1pbmUgaWYgYW55IG9mIGl0IGlzIHVzZXItY29udHJvbGxlZCwgYW5kIGlmIGl0J3MgYWNjZXNzaWJsZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjI3OCwiT3V0cHV0VG9rZW5zIjozMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjg2LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzBUMTY6MzU6NDkuMTIyMjY4NzY1WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg2NjA5NDMxNywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJNQUNCXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2VcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxNzEzIGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL0tjb25maWc9MjA9aWYgTkVUX1ZFTkRPUl9DQURFTkNFXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnLTIxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvS2NvbmZpZzoyMjpjb25maWcgTUFDQlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvS2NvbmZpZzoyMzpcXHR0cmlzdGF0ZSBcXFwiQ2FkZW5jZSBNQUNCL0dFTSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvS2NvbmZpZy0yNC1cXHRkZXBlbmRzIG9uIEhBU19ETUEgXFx1MDAyNlxcdTAwMjYgQ09NTU9OX0NMS1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnLTI4LVxcdGhlbHBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL0tjb25maWc6Mjk6XFx0ICBUaGUgQ2FkZW5jZSBNQUNCIGV0aGVybmV0IGludGVyZmFjZSBpcyBmb3VuZCBvbiBtYW55IEF0bWVsIEFUMzIgYW5kXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnLTMwLVxcdCAgQVQ5MSBwYXJ0cy4gIFRoaXMgZHJpdmVyIGFsc28gc3VwcG9ydHMgdGhlIENhZGVuY2UgR0VNIChHaWdhYml0XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnLTMxLVxcdCAgRXRoZXJuZXQgTUFDIGZvdW5kIGluIHNvbWUgQVJNIFNvQyBkZXZpY2VzKS4gIFNheSBZIHRvIGluY2x1ZGVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL0tjb25maWc6MzI6XFx0ICBzdXBwb3J0IGZvciB0aGUgTUFDQi9HRU0gY2hpcC5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL0tjb25maWctMzMtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL0tjb25maWctMzYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnOjM3OmNvbmZpZyBNQUNCX1VTRV9IV1NUQU1QXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnLTM4LVxcdGJvb2wgXFxcIlVzZSBJRUVFIDE1ODggaHdzdGFtcFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL0tjb25maWc6Mzk6XFx0ZGVwZW5kcyBvbiBNQUNCXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnLTQwLVxcdGRlcGVuZHMgb24gUFRQXzE1ODhfQ0xPQ0tcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvS2NvbmZpZy00Mi1cXHRoZWxwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnOjQzOlxcdCAgRW5hYmxlIElFRUUgMTU4OCBQcmVjaXNpb24gVGltZSBQcm90b2NvbCAoUFRQKSBzdXBwb3J0IGZvciBNQUNCLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvS2NvbmZpZy00NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL0tjb25maWc6NDU6Y29uZmlnIE1BQ0JfUENJXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnOjQ2OlxcdHRyaXN0YXRlIFxcXCJDYWRlbmNlIFBDSSBNQUNCL0dFTSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvS2NvbmZpZzo0NzpcXHRkZXBlbmRzIG9uIE1BQ0IgXFx1MDAyNlxcdTAwMjYgUENJXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnLTQ4LVxcdGhlbHBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL0tjb25maWc6NDk6XFx0ICBUaGlzIGlzIFBDSSB3cmFwcGVyIGZvciBNQUNCIGRyaXZlci5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL0tjb25maWctNTAtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL01ha2VmaWxlPTU9bWFjYi15XFx0Oj0gbWFjYl9tYWluLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL01ha2VmaWxlLTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9NYWtlZmlsZTo3OmlmZXEgKCQoQ09ORklHX01BQ0JfVVNFX0hXU1RBTVApLHkpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9NYWtlZmlsZS04LW1hY2IteVxcdCs9IG1hY2JfcHRwLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL01ha2VmaWxlPTk9ZW5kaWZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL01ha2VmaWxlLTEwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvTWFrZWZpbGU6MTE6b2JqLSQoQ09ORklHX01BQ0IpICs9IG1hY2Iub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvTWFrZWZpbGU6MTI6b2JqLSQoQ09ORklHX01BQ0JfUENJKSArPSBtYWNiX3BjaS5vXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0yLS8qXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MzogKiBBdG1lbCBNQUNCIEV0aGVybmV0IENvbnRyb2xsZXIgZHJpdmVyXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNC0gKlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNi0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3OiNpZm5kZWYgX01BQ0JfSFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjg6I2RlZmluZSBfTUFDQl9IXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtOS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTE3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjE4OiNkZWZpbmUgTUFDQl9HUkVHU19OQlIgMTZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxOTojZGVmaW5lIE1BQ0JfR1JFR1NfVkVSU0lPTiAyXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjA6I2RlZmluZSBNQUNCX01BWF9RVUVVRVMgOFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTIxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjIyOi8qIE1BQ0IgcmVnaXN0ZXIgb2Zmc2V0cyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjIzOiNkZWZpbmUgTUFDQl9OQ1JcXHRcXHQweDAwMDAgLyogTmV0d29yayBDb250cm9sICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjQ6I2RlZmluZSBNQUNCX05DRkdSXFx0XFx0MHgwMDA0IC8qIE5ldHdvcmsgQ29uZmlnICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjU6I2RlZmluZSBNQUNCX05TUlxcdFxcdDB4MDAwOCAvKiBOZXR3b3JrIFN0YXR1cyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI2OiNkZWZpbmUgTUFDQl9UQVJcXHRcXHQweDAwMGMgLyogQVQ5MVJNOTIwMCBvbmx5ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mjc6I2RlZmluZSBNQUNCX1RDUlxcdFxcdDB4MDAxMCAvKiBBVDkxUk05MjAwIG9ubHkgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyODojZGVmaW5lIE1BQ0JfVFNSXFx0XFx0MHgwMDE0IC8qIFRyYW5zbWl0IFN0YXR1cyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI5OiNkZWZpbmUgTUFDQl9SQlFQXFx0XFx0MHgwMDE4IC8qIFJYIFEgQmFzZSBBZGRyZXNzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MzA6I2RlZmluZSBNQUNCX1RCUVBcXHRcXHQweDAwMWMgLyogVFggUSBCYXNlIEFkZHJlc3MgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDozMTojZGVmaW5lIE1BQ0JfUlNSXFx0XFx0MHgwMDIwIC8qIFJlY2VpdmUgU3RhdHVzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MzI6I2RlZmluZSBNQUNCX0lTUlxcdFxcdDB4MDAyNCAvKiBJbnRlcnJ1cHQgU3RhdHVzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MzM6I2RlZmluZSBNQUNCX0lFUlxcdFxcdDB4MDAyOCAvKiBJbnRlcnJ1cHQgRW5hYmxlICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MzQ6I2RlZmluZSBNQUNCX0lEUlxcdFxcdDB4MDAyYyAvKiBJbnRlcnJ1cHQgRGlzYWJsZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjM1OiNkZWZpbmUgTUFDQl9JTVJcXHRcXHQweDAwMzAgLyogSW50ZXJydXB0IE1hc2sgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDozNjojZGVmaW5lIE1BQ0JfTUFOXFx0XFx0MHgwMDM0IC8qIFBIWSBNYWludGVuYW5jZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjM3OiNkZWZpbmUgTUFDQl9QVFJcXHRcXHQweDAwMzhcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDozODojZGVmaW5lIE1BQ0JfUEZSXFx0XFx0MHgwMDNjXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mzk6I2RlZmluZSBNQUNCX0ZUT1xcdFxcdDB4MDA0MFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQwOiNkZWZpbmUgTUFDQl9TQ0ZcXHRcXHQweDAwNDRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0MTojZGVmaW5lIE1BQ0JfTUNGXFx0XFx0MHgwMDQ4XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDI6I2RlZmluZSBNQUNCX0ZST1xcdFxcdDB4MDA0Y1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQzOiNkZWZpbmUgTUFDQl9GQ1NFXFx0XFx0MHgwMDUwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDQ6I2RlZmluZSBNQUNCX0FMRVxcdFxcdDB4MDA1NFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ1OiNkZWZpbmUgTUFDQl9EVEZcXHRcXHQweDAwNThcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0NjojZGVmaW5lIE1BQ0JfTENPTFxcdFxcdDB4MDA1Y1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ3OiNkZWZpbmUgTUFDQl9FWENPTFxcdFxcdDB4MDA2MFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ4OiNkZWZpbmUgTUFDQl9UVU5EXFx0XFx0MHgwMDY0XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDk6I2RlZmluZSBNQUNCX0NTRVxcdFxcdDB4MDA2OFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjUwOiNkZWZpbmUgTUFDQl9SUkVcXHRcXHQweDAwNmNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo1MTojZGVmaW5lIE1BQ0JfUk9WUlxcdFxcdDB4MDA3MFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjUyOiNkZWZpbmUgTUFDQl9SU0VcXHRcXHQweDAwNzRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo1MzojZGVmaW5lIE1BQ0JfRUxFXFx0XFx0MHgwMDc4XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NTQ6I2RlZmluZSBNQUNCX1JKQVxcdFxcdDB4MDA3Y1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjU1OiNkZWZpbmUgTUFDQl9VU0ZcXHRcXHQweDAwODBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo1NjojZGVmaW5lIE1BQ0JfU1RFXFx0XFx0MHgwMDg0XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NTc6I2RlZmluZSBNQUNCX1JMRVxcdFxcdDB4MDA4OFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjU4OiNkZWZpbmUgTUFDQl9UUEZcXHRcXHQweDAwOGNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo1OTojZGVmaW5lIE1BQ0JfSFJCXFx0XFx0MHgwMDkwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NjA6I2RlZmluZSBNQUNCX0hSVFxcdFxcdDB4MDA5NFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjYxOiNkZWZpbmUgTUFDQl9TQTFCXFx0XFx0MHgwMDk4XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NjI6I2RlZmluZSBNQUNCX1NBMVRcXHRcXHQweDAwOWNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo2MzojZGVmaW5lIE1BQ0JfU0EyQlxcdFxcdDB4MDBhMFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjY0OiNkZWZpbmUgTUFDQl9TQTJUXFx0XFx0MHgwMGE0XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NjU6I2RlZmluZSBNQUNCX1NBM0JcXHRcXHQweDAwYThcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo2NjojZGVmaW5lIE1BQ0JfU0EzVFxcdFxcdDB4MDBhY1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjY3OiNkZWZpbmUgTUFDQl9TQTRCXFx0XFx0MHgwMGIwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Njg6I2RlZmluZSBNQUNCX1NBNFRcXHRcXHQweDAwYjRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo2OTojZGVmaW5lIE1BQ0JfVElEXFx0XFx0MHgwMGI4XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzA6I2RlZmluZSBNQUNCX1RQUVxcdFxcdDB4MDBiY1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjcxOiNkZWZpbmUgTUFDQl9VU1JJT1xcdFxcdDB4MDBjMFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjcyOiNkZWZpbmUgTUFDQl9XT0xcXHRcXHQweDAwYzRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3MzojZGVmaW5lIE1BQ0JfTUlEXFx0XFx0MHgwMGZjXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzQ6I2RlZmluZSBNQUNCX1RCUVBIXFx0XFx0MHgwNEM4XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzU6I2RlZmluZSBNQUNCX1JCUVBIXFx0XFx0MHgwNEQ0XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNzYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0yMzAtLyogQml0ZmllbGRzIGluIE5DUiAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjIzMTojZGVmaW5lIE1BQ0JfTEJfT0ZGU0VUXFx0XFx0MCAvKiByZXNlcnZlZCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjIzMjojZGVmaW5lIE1BQ0JfTEJfU0laRVxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyMzM6I2RlZmluZSBNQUNCX0xMQl9PRkZTRVRcXHRcXHQxIC8qIExvb3AgYmFjayBsb2NhbCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjIzNDojZGVmaW5lIE1BQ0JfTExCX1NJWkVcXHRcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjM1OiNkZWZpbmUgTUFDQl9SRV9PRkZTRVRcXHRcXHQyIC8qIFJlY2VpdmUgZW5hYmxlICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjM2OiNkZWZpbmUgTUFDQl9SRV9TSVpFXFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjIzNzojZGVmaW5lIE1BQ0JfVEVfT0ZGU0VUXFx0XFx0MyAvKiBUcmFuc21pdCBlbmFibGUgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyMzg6I2RlZmluZSBNQUNCX1RFX1NJWkVcXHRcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjM5OiNkZWZpbmUgTUFDQl9NUEVfT0ZGU0VUXFx0XFx0NCAvKiBNYW5hZ2VtZW50IHBvcnQgZW5hYmxlICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjQwOiNkZWZpbmUgTUFDQl9NUEVfU0laRVxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNDE6I2RlZmluZSBNQUNCX0NMUlNUQVRfT0ZGU0VUXFx0NSAvKiBDbGVhciBzdGF0cyByZWdzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjQyOiNkZWZpbmUgTUFDQl9DTFJTVEFUX1NJWkVcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjQzOiNkZWZpbmUgTUFDQl9JTkNTVEFUX09GRlNFVFxcdDYgLyogSW5jcmVtZW50YWwgc3RhdHMgcmVncyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI0NDojZGVmaW5lIE1BQ0JfSU5DU1RBVF9TSVpFXFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI0NTojZGVmaW5lIE1BQ0JfV0VTVEFUX09GRlNFVFxcdDcgLyogV3JpdGUgZW5hYmxlIHN0YXRzIHJlZ3MgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNDY6I2RlZmluZSBNQUNCX1dFU1RBVF9TSVpFXFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI0NzojZGVmaW5lIE1BQ0JfQlBfT0ZGU0VUXFx0XFx0OCAvKiBCYWNrIHByZXNzdXJlICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjQ4OiNkZWZpbmUgTUFDQl9CUF9TSVpFXFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI0OTojZGVmaW5lIE1BQ0JfVFNUQVJUX09GRlNFVFxcdDkgLyogU3RhcnQgdHJhbnNtaXNzaW9uICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjUwOiNkZWZpbmUgTUFDQl9UU1RBUlRfU0laRVxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNTE6I2RlZmluZSBNQUNCX1RIQUxUX09GRlNFVFxcdDEwIC8qIFRyYW5zbWl0IGhhbHQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNTI6I2RlZmluZSBNQUNCX1RIQUxUX1NJWkVcXHRcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjUzOiNkZWZpbmUgTUFDQl9OQ1JfVFBGX09GRlNFVFxcdDExIC8qIFRyYW5zbWl0IHBhdXNlIGZyYW1lICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjU0OiNkZWZpbmUgTUFDQl9OQ1JfVFBGX1NJWkVcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjU1OiNkZWZpbmUgTUFDQl9UWlFfT0ZGU0VUXFx0XFx0MTIgLyogVHJhbnNtaXQgemVybyBxdWFudHVtIHBhdXNlIGZyYW1lICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjU2OiNkZWZpbmUgTUFDQl9UWlFfU0laRVxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNTc6I2RlZmluZSBNQUNCX1NSVFNNX09GRlNFVFxcdDE1IC8qIFN0b3JlIFJlY2VpdmUgVGltZXN0YW1wIHRvIE1lbW9yeSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI1ODojZGVmaW5lIE1BQ0JfUFRQVU5JX09GRlNFVFxcdDIwIC8qIFBUUCBVbmljYXN0IHBhY2tldCBlbmFibGUgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNTk6I2RlZmluZSBNQUNCX1BUUFVOSV9TSVpFXFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI2MDojZGVmaW5lIE1BQ0JfT1NTTU9ERV9PRkZTRVRcXHQyNCAvKiBFbmFibGUgT25lIFN0ZXAgU3luY2hybyBNb2RlICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjYxOiNkZWZpbmUgTUFDQl9PU1NNT0RFX1NJWkVcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjYyOiNkZWZpbmUgTUFDQl9NSUlPTlJHTUlJX09GRlNFVFxcdDI4IC8qIE1JSSBVc2FnZSBvbiBSR01JSSBJbnRlcmZhY2UgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNjM6I2RlZmluZSBNQUNCX01JSU9OUkdNSUlfU0laRVxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0yNjQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMjY1LS8qIEJpdGZpZWxkcyBpbiBOQ0ZHUiAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI2NjojZGVmaW5lIE1BQ0JfU1BEX09GRlNFVFxcdFxcdDAgLyogU3BlZWQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNjc6I2RlZmluZSBNQUNCX1NQRF9TSVpFXFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI2ODojZGVmaW5lIE1BQ0JfRkRfT0ZGU0VUXFx0XFx0MSAvKiBGdWxsIGR1cGxleCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI2OTojZGVmaW5lIE1BQ0JfRkRfU0laRVxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNzA6I2RlZmluZSBNQUNCX0JJVF9SQVRFX09GRlNFVFxcdDIgLyogRGlzY2FyZCBub24tVkxBTiBmcmFtZXMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNzE6I2RlZmluZSBNQUNCX0JJVF9SQVRFX1NJWkVcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjcyOiNkZWZpbmUgTUFDQl9KRlJBTUVfT0ZGU0VUXFx0MyAvKiByZXNlcnZlZCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI3MzojZGVmaW5lIE1BQ0JfSkZSQU1FX1NJWkVcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mjc0OiNkZWZpbmUgTUFDQl9DQUZfT0ZGU0VUXFx0XFx0NCAvKiBDb3B5IGFsbCBmcmFtZXMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNzU6I2RlZmluZSBNQUNCX0NBRl9TSVpFXFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI3NjojZGVmaW5lIE1BQ0JfTkJDX09GRlNFVFxcdFxcdDUgLyogTm8gYnJvYWRjYXN0ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mjc3OiNkZWZpbmUgTUFDQl9OQkNfU0laRVxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNzg6I2RlZmluZSBNQUNCX05DRkdSX01USV9PRkZTRVRcXHQ2IC8qIE11bHRpY2FzdCBoYXNoIGVuYWJsZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI3OTojZGVmaW5lIE1BQ0JfTkNGR1JfTVRJX1NJWkVcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjgwOiNkZWZpbmUgTUFDQl9VTklfT0ZGU0VUXFx0XFx0NyAvKiBVbmljYXN0IGhhc2ggZW5hYmxlICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjgxOiNkZWZpbmUgTUFDQl9VTklfU0laRVxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyODI6I2RlZmluZSBNQUNCX0JJR19PRkZTRVRcXHRcXHQ4IC8qIFJlY2VpdmUgMTUzNiBieXRlIGZyYW1lcyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI4MzojZGVmaW5lIE1BQ0JfQklHX1NJWkVcXHRcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mjg0OiNkZWZpbmUgTUFDQl9FQUVfT0ZGU0VUXFx0XFx0OSAvKiBFeHRlcm5hbCBhZGRyZXNzIG1hdGNoIGVuYWJsZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI4NTojZGVmaW5lIE1BQ0JfRUFFX1NJWkVcXHRcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mjg2OiNkZWZpbmUgTUFDQl9DTEtfT0ZGU0VUXFx0XFx0MTBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyODc6I2RlZmluZSBNQUNCX0NMS19TSVpFXFx0XFx0MlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI4ODojZGVmaW5lIE1BQ0JfUlRZX09GRlNFVFxcdFxcdDEyIC8qIFJldHJ5IHRlc3QgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyODk6I2RlZmluZSBNQUNCX1JUWV9TSVpFXFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI5MDojZGVmaW5lIE1BQ0JfUEFFX09GRlNFVFxcdFxcdDEzIC8qIFBhdXNlIGVuYWJsZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI5MTojZGVmaW5lIE1BQ0JfUEFFX1NJWkVcXHRcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjkyOiNkZWZpbmUgTUFDQl9STTkyMDBfUk1JSV9PRkZTRVRcXHQxMyAvKiBBVDkxUk05MjAwIG9ubHkgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyOTM6I2RlZmluZSBNQUNCX1JNOTIwMF9STUlJX1NJWkVcXHQxICAvKiBBVDkxUk05MjAwIG9ubHkgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyOTQ6I2RlZmluZSBNQUNCX1JCT0ZfT0ZGU0VUXFx0MTQgLyogUmVjZWl2ZSBidWZmZXIgb2Zmc2V0ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mjk1OiNkZWZpbmUgTUFDQl9SQk9GX1NJWkVcXHRcXHQyXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mjk2OiNkZWZpbmUgTUFDQl9STENFX09GRlNFVFxcdDE2IC8qIExlbmd0aCBmaWVsZCBlcnJvciBmcmFtZSBkaXNjYXJkICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mjk3OiNkZWZpbmUgTUFDQl9STENFX1NJWkVcXHRcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mjk4OiNkZWZpbmUgTUFDQl9EUkZDU19PRkZTRVRcXHQxNyAvKiBGQ1MgcmVtb3ZlICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mjk5OiNkZWZpbmUgTUFDQl9EUkZDU19TSVpFXFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjMwMDojZGVmaW5lIE1BQ0JfRUZSSERfT0ZGU0VUXFx0MThcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDozMDE6I2RlZmluZSBNQUNCX0VGUkhEX1NJWkVcXHRcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MzAyOiNkZWZpbmUgTUFDQl9JUlhGQ1NfT0ZGU0VUXFx0MTlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDozMDM6I2RlZmluZSBNQUNCX0lSWEZDU19TSVpFXFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTMwNC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTM2NC0vKiBCaXRmaWVsZHMgaW4gTlNSICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MzY1OiNkZWZpbmUgTUFDQl9OU1JfTElOS19PRkZTRVRcXHQwIC8qIHBjc19saW5rX3N0YXRlICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MzY2OiNkZWZpbmUgTUFDQl9OU1JfTElOS19TSVpFXFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjM2NzojZGVmaW5lIE1BQ0JfTURJT19PRkZTRVRcXHQxIC8qIHN0YXR1cyBvZiB0aGUgbWRpb19pbiBwaW4gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDozNjg6I2RlZmluZSBNQUNCX01ESU9fU0laRVxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDozNjk6I2RlZmluZSBNQUNCX0lETEVfT0ZGU0VUXFx0MiAvKiBUaGUgUEhZIG1hbmFnZW1lbnQgbG9naWMgaXMgaWRsZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjM3MDojZGVmaW5lIE1BQ0JfSURMRV9TSVpFXFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTM3MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0zNzItLyogQml0ZmllbGRzIGluIFRTUiAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjM3MzojZGVmaW5lIE1BQ0JfVUJSX09GRlNFVFxcdFxcdDAgLyogVXNlZCBiaXQgcmVhZCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjM3NDojZGVmaW5lIE1BQ0JfVUJSX1NJWkVcXHRcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mzc1OiNkZWZpbmUgTUFDQl9DT0xfT0ZGU0VUXFx0XFx0MSAvKiBDb2xsaXNpb24gb2NjdXJyZWQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDozNzY6I2RlZmluZSBNQUNCX0NPTF9TSVpFXFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjM3NzojZGVmaW5lIE1BQ0JfVFNSX1JMRV9PRkZTRVRcXHQyIC8qIFJldHJ5IGxpbWl0IGV4Y2VlZGVkICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mzc4OiNkZWZpbmUgTUFDQl9UU1JfUkxFX1NJWkVcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mzc5OiNkZWZpbmUgTUFDQl9UR09fT0ZGU0VUXFx0XFx0MyAvKiBUcmFuc21pdCBnbyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjM4MDojZGVmaW5lIE1BQ0JfVEdPX1NJWkVcXHRcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MzgxOiNkZWZpbmUgTUFDQl9CRVhfT0ZGU0VUXFx0XFx0NCAvKiBUWCBmcmFtZSBjb3JydXB0aW9uIGR1ZSB0byBBSEIgZXJyb3IgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDozODI6I2RlZmluZSBNQUNCX0JFWF9TSVpFXFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjM4MzojZGVmaW5lIE1BQ0JfUk05MjAwX0JOUV9PRkZTRVRcXHQ0IC8qIEFUOTFSTTkyMDAgb25seSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjM4NDojZGVmaW5lIE1BQ0JfUk05MjAwX0JOUV9TSVpFXFx0MSAvKiBBVDkxUk05MjAwIG9ubHkgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDozODU6I2RlZmluZSBNQUNCX0NPTVBfT0ZGU0VUXFx0NSAvKiBUcm5hc21pdCBjb21wbGV0ZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjM4NjojZGVmaW5lIE1BQ0JfQ09NUF9TSVpFXFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjM4NzojZGVmaW5lIE1BQ0JfVU5EX09GRlNFVFxcdFxcdDYgLyogVHJuYXNtaXQgdW5kZXIgcnVuICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mzg4OiNkZWZpbmUgTUFDQl9VTkRfU0laRVxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0zODktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMzkwLS8qIEJpdGZpZWxkcyBpbiBSU1IgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDozOTE6I2RlZmluZSBNQUNCX0JOQV9PRkZTRVRcXHRcXHQwIC8qIEJ1ZmZlciBub3QgYXZhaWxhYmxlICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MzkyOiNkZWZpbmUgTUFDQl9CTkFfU0laRVxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDozOTM6I2RlZmluZSBNQUNCX1JFQ19PRkZTRVRcXHRcXHQxIC8qIEZyYW1lIHJlY2VpdmVkICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mzk0OiNkZWZpbmUgTUFDQl9SRUNfU0laRVxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDozOTU6I2RlZmluZSBNQUNCX09WUl9PRkZTRVRcXHRcXHQyIC8qIFJlY2VpdmUgb3ZlcnJ1biAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjM5NjojZGVmaW5lIE1BQ0JfT1ZSX1NJWkVcXHRcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMzk3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTM5OC0vKiBCaXRmaWVsZHMgaW4gSVNSL0lFUi9JRFIvSU1SICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mzk5OiNkZWZpbmUgTUFDQl9NRkRfT0ZGU0VUXFx0XFx0MCAvKiBNYW5hZ2VtZW50IGZyYW1lIHNlbnQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0MDA6I2RlZmluZSBNQUNCX01GRF9TSVpFXFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQwMTojZGVmaW5lIE1BQ0JfUkNPTVBfT0ZGU0VUXFx0MSAvKiBSZWNlaXZlIGNvbXBsZXRlICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDAyOiNkZWZpbmUgTUFDQl9SQ09NUF9TSVpFXFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQwMzojZGVmaW5lIE1BQ0JfUlhVQlJfT0ZGU0VUXFx0MiAvKiBSWCB1c2VkIGJpdCByZWFkICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDA0OiNkZWZpbmUgTUFDQl9SWFVCUl9TSVpFXFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQwNTojZGVmaW5lIE1BQ0JfVFhVQlJfT0ZGU0VUXFx0MyAvKiBUWCB1c2VkIGJpdCByZWFkICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDA2OiNkZWZpbmUgTUFDQl9UWFVCUl9TSVpFXFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQwNzojZGVmaW5lIE1BQ0JfSVNSX1RVTkRfT0ZGU0VUXFx0NCAvKiBFbmFibGUgVFggYnVmZmVyIHVuZGVyIHJ1biBpbnRlcnJ1cHQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0MDg6I2RlZmluZSBNQUNCX0lTUl9UVU5EX1NJWkVcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDA5OiNkZWZpbmUgTUFDQl9JU1JfUkxFX09GRlNFVFxcdDUgLyogRU4gcmV0cnkgZXhjZWVkZWQvbGF0ZSBjb2xsIGludGVycnVwdCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQxMDojZGVmaW5lIE1BQ0JfSVNSX1JMRV9TSVpFXFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQxMTojZGVmaW5lIE1BQ0JfVFhFUlJfT0ZGU0VUXFx0NiAvKiBFTiBUWCBmcmFtZSBjb3JydXB0IGZyb20gZXJyb3IgaW50ZXJydXB0ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDEyOiNkZWZpbmUgTUFDQl9UWEVSUl9TSVpFXFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQxMzojZGVmaW5lIE1BQ0JfUk05MjAwX1RCUkVfT0ZGU0VUXFx0NiAvKiBFTiBtYXkgc2VuZCBuZXcgZnJhbWUgaW50ZXJydXB0IChSTTkyMDApICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDE0OiNkZWZpbmUgTUFDQl9STTkyMDBfVEJSRV9TSVpFXFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQxNTojZGVmaW5lIE1BQ0JfVENPTVBfT0ZGU0VUXFx0NyAvKiBFbmFibGUgdHJhbnNtaXQgY29tcGxldGUgaW50ZXJydXB0ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDE2OiNkZWZpbmUgTUFDQl9UQ09NUF9TSVpFXFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQxNzojZGVmaW5lIE1BQ0JfSVNSX0xJTktfT0ZGU0VUXFx0OSAvKiBFbmFibGUgbGluayBjaGFuZ2UgaW50ZXJydXB0ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDE4OiNkZWZpbmUgTUFDQl9JU1JfTElOS19TSVpFXFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQxOTojZGVmaW5lIE1BQ0JfSVNSX1JPVlJfT0ZGU0VUXFx0MTAgLyogRW5hYmxlIHJlY2VpdmUgb3ZlcnJ1biBpbnRlcnJ1cHQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0MjA6I2RlZmluZSBNQUNCX0lTUl9ST1ZSX1NJWkVcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDIxOiNkZWZpbmUgTUFDQl9IUkVTUF9PRkZTRVRcXHQxMSAvKiBFbmFibGUgaHJzZXAgbm90IE9LIGludGVycnVwdCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQyMjojZGVmaW5lIE1BQ0JfSFJFU1BfU0laRVxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0MjM6I2RlZmluZSBNQUNCX1BGUl9PRkZTRVRcXHRcXHQxMiAvKiBFbmFibGUgcGF1c2UgZnJhbWUgdy8gcXVhbnR1bSBpbnRlcnJ1cHQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0MjQ6I2RlZmluZSBNQUNCX1BGUl9TSVpFXFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQyNTojZGVmaW5lIE1BQ0JfUFRaX09GRlNFVFxcdFxcdDEzIC8qIEVuYWJsZSBwYXVzZSB0aW1lIHplcm8gaW50ZXJydXB0ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDI2OiNkZWZpbmUgTUFDQl9QVFpfU0laRVxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0Mjc6I2RlZmluZSBNQUNCX1dPTF9PRkZTRVRcXHRcXHQxNCAvKiBFbmFibGUgd2FrZS1vbi1sYW4gaW50ZXJydXB0ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDI4OiNkZWZpbmUgTUFDQl9XT0xfU0laRVxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0Mjk6I2RlZmluZSBNQUNCX0RSUUZSX09GRlNFVFxcdDE4IC8qIFBUUCBEZWxheSBSZXF1ZXN0IEZyYW1lIFJlY2VpdmVkICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDMwOiNkZWZpbmUgTUFDQl9EUlFGUl9TSVpFXFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQzMTojZGVmaW5lIE1BQ0JfU0ZSX09GRlNFVFxcdFxcdDE5IC8qIFBUUCBTeW5jIEZyYW1lIFJlY2VpdmVkICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDMyOiNkZWZpbmUgTUFDQl9TRlJfU0laRVxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0MzM6I2RlZmluZSBNQUNCX0RSUUZUX09GRlNFVFxcdDIwIC8qIFBUUCBEZWxheSBSZXF1ZXN0IEZyYW1lIFRyYW5zbWl0dGVkICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDM0OiNkZWZpbmUgTUFDQl9EUlFGVF9TSVpFXFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQzNTojZGVmaW5lIE1BQ0JfU0ZUX09GRlNFVFxcdFxcdDIxIC8qIFBUUCBTeW5jIEZyYW1lIFRyYW5zbWl0dGVkICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDM2OiNkZWZpbmUgTUFDQl9TRlRfU0laRVxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0Mzc6I2RlZmluZSBNQUNCX1BEUlFGUl9PRkZTRVRcXHQyMiAvKiBQRGVsYXkgUmVxdWVzdCBGcmFtZSBSZWNlaXZlZCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQzODojZGVmaW5lIE1BQ0JfUERSUUZSX1NJWkVcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDM5OiNkZWZpbmUgTUFDQl9QRFJTRlJfT0ZGU0VUXFx0MjMgLyogUERlbGF5IFJlc3BvbnNlIEZyYW1lIFJlY2VpdmVkICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDQwOiNkZWZpbmUgTUFDQl9QRFJTRlJfU0laRVxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0NDE6I2RlZmluZSBNQUNCX1BEUlFGVF9PRkZTRVRcXHQyNCAvKiBQRGVsYXkgUmVxdWVzdCBGcmFtZSBUcmFuc21pdHRlZCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ0MjojZGVmaW5lIE1BQ0JfUERSUUZUX1NJWkVcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDQzOiNkZWZpbmUgTUFDQl9QRFJTRlRfT0ZGU0VUXFx0MjUgLyogUERlbGF5IFJlc3BvbnNlIEZyYW1lIFRyYW5zbWl0dGVkICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDQ0OiNkZWZpbmUgTUFDQl9QRFJTRlRfU0laRVxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0NDU6I2RlZmluZSBNQUNCX1NSSV9PRkZTRVRcXHRcXHQyNiAvKiBUU1UgU2Vjb25kcyBSZWdpc3RlciBJbmNyZW1lbnQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0NDY6I2RlZmluZSBNQUNCX1NSSV9TSVpFXFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTQ0Ny0jZGVmaW5lIEdFTV9XT0xfT0ZGU0VUXFx0XFx0MjggLyogRW5hYmxlIHdha2Utb24tbGFuIGludGVycnVwdCAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNDUwLS8qIFRpbWVyIGluY3JlbWVudCBmaWVsZHMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0NTE6I2RlZmluZSBNQUNCX1RJX0NOU19PRkZTRVRcXHQwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDUyOiNkZWZpbmUgTUFDQl9USV9DTlNfU0laRVxcdDhcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0NTM6I2RlZmluZSBNQUNCX1RJX0FDTlNfT0ZGU0VUXFx0OFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ1NDojZGVmaW5lIE1BQ0JfVElfQUNOU19TSVpFXFx0OFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ1NTojZGVmaW5lIE1BQ0JfVElfTklUX09GRlNFVFxcdDE2XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDU2OiNkZWZpbmUgTUFDQl9USV9OSVRfU0laRVxcdDhcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC00NTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNDU4LS8qIEJpdGZpZWxkcyBpbiBNQU4gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0NTk6I2RlZmluZSBNQUNCX0RBVEFfT0ZGU0VUXFx0MCAvKiBkYXRhICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDYwOiNkZWZpbmUgTUFDQl9EQVRBX1NJWkVcXHRcXHQxNlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ2MTojZGVmaW5lIE1BQ0JfQ09ERV9PRkZTRVRcXHQxNiAvKiBNdXN0IGJlIHdyaXR0ZW4gdG8gMTAgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0NjI6I2RlZmluZSBNQUNCX0NPREVfU0laRVxcdFxcdDJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0NjM6I2RlZmluZSBNQUNCX1JFR0FfT0ZGU0VUXFx0MTggLyogUmVnaXN0ZXIgYWRkcmVzcyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ2NDojZGVmaW5lIE1BQ0JfUkVHQV9TSVpFXFx0XFx0NVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ2NTojZGVmaW5lIE1BQ0JfUEhZQV9PRkZTRVRcXHQyMyAvKiBQSFkgYWRkcmVzcyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ2NjojZGVmaW5lIE1BQ0JfUEhZQV9TSVpFXFx0XFx0NVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ2NzojZGVmaW5lIE1BQ0JfUldfT0ZGU0VUXFx0XFx0MjggLyogT3BlcmF0aW9uLiAxMCBpcyByZWFkLiAwMSBpcyB3cml0ZS4gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0Njg6I2RlZmluZSBNQUNCX1JXX1NJWkVcXHRcXHQyXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDY5OiNkZWZpbmUgTUFDQl9TT0ZfT0ZGU0VUXFx0XFx0MzAgLyogTXVzdCBiZSB3cml0dGVuIHRvIDEgZm9yIENsYXVzZSAyMiAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ3MDojZGVmaW5lIE1BQ0JfU09GX1NJWkVcXHRcXHQyXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNDcxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTQ3Mi0vKiBCaXRmaWVsZHMgaW4gVVNSSU8gKEFWUjMyKSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ3MzojZGVmaW5lIE1BQ0JfTUlJX09GRlNFVFxcdFxcdFxcdFxcdDBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0NzQ6I2RlZmluZSBNQUNCX01JSV9TSVpFXFx0XFx0XFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ3NTojZGVmaW5lIE1BQ0JfRUFNX09GRlNFVFxcdFxcdFxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0NzY6I2RlZmluZSBNQUNCX0VBTV9TSVpFXFx0XFx0XFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ3NzojZGVmaW5lIE1BQ0JfVFhfUEFVU0VfT0ZGU0VUXFx0XFx0XFx0MlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ3ODojZGVmaW5lIE1BQ0JfVFhfUEFVU0VfU0laRVxcdFxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0Nzk6I2RlZmluZSBNQUNCX1RYX1BBVVNFX1pFUk9fT0ZGU0VUXFx0XFx0M1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ4MDojZGVmaW5lIE1BQ0JfVFhfUEFVU0VfWkVST19TSVpFXFx0XFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTQ4MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC00ODItLyogQml0ZmllbGRzIGluIFVTUklPIChBVDkxKSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ4MzojZGVmaW5lIE1BQ0JfUk1JSV9PRkZTRVRcXHRcXHRcXHQwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDg0OiNkZWZpbmUgTUFDQl9STUlJX1NJWkVcXHRcXHRcXHRcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNDg1LSNkZWZpbmUgR0VNX1JHTUlJX09GRlNFVFxcdFxcdFxcdDAgLyogR0VNIGdpZ2FiaXQgbW9kZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTQ4Ni0jZGVmaW5lIEdFTV9SR01JSV9TSVpFXFx0XFx0XFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ4NzojZGVmaW5lIE1BQ0JfQ0xLRU5fT0ZGU0VUXFx0XFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ4ODojZGVmaW5lIE1BQ0JfQ0xLRU5fU0laRVxcdFxcdFxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC00ODktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNDkwLS8qIEJpdGZpZWxkcyBpbiBXT0wgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0OTE6I2RlZmluZSBNQUNCX0lQX09GRlNFVFxcdFxcdFxcdFxcdDBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0OTI6I2RlZmluZSBNQUNCX0lQX1NJWkVcXHRcXHRcXHRcXHQxNlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ5MzojZGVmaW5lIE1BQ0JfTUFHX09GRlNFVFxcdFxcdFxcdFxcdDE2XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDk0OiNkZWZpbmUgTUFDQl9NQUdfU0laRVxcdFxcdFxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0OTU6I2RlZmluZSBNQUNCX0FSUF9PRkZTRVRcXHRcXHRcXHRcXHQxN1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ5NjojZGVmaW5lIE1BQ0JfQVJQX1NJWkVcXHRcXHRcXHRcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDk3OiNkZWZpbmUgTUFDQl9TQTFfT0ZGU0VUXFx0XFx0XFx0XFx0MThcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0OTg6I2RlZmluZSBNQUNCX1NBMV9TSVpFXFx0XFx0XFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ5OTojZGVmaW5lIE1BQ0JfV09MX01USV9PRkZTRVRcXHRcXHRcXHQxOVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjUwMDojZGVmaW5lIE1BQ0JfV09MX01USV9TSVpFXFx0XFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTUwMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC01MDItLyogQml0ZmllbGRzIGluIE1JRCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjUwMzojZGVmaW5lIE1BQ0JfSUROVU1fT0ZGU0VUXFx0XFx0XFx0MTZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo1MDQ6I2RlZmluZSBNQUNCX0lETlVNX1NJWkVcXHRcXHRcXHRcXHQxMlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjUwNTojZGVmaW5lIE1BQ0JfUkVWX09GRlNFVFxcdFxcdFxcdFxcdDBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo1MDY6I2RlZmluZSBNQUNCX1JFVl9TSVpFXFx0XFx0XFx0XFx0MTZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC01MDctXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC02NzgtLyogQml0ZmllbGRzIGluIHF1ZXVlIHBvaW50ZXIgcmVnaXN0ZXJzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Njc5OiNkZWZpbmUgTUFDQl9RVUVVRV9ESVNBQkxFX09GRlNFVFxcdFxcdDAgLyogZGlzYWJsZSBxdWV1ZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjY4MDojZGVmaW5lIE1BQ0JfUVVFVUVfRElTQUJMRV9TSVpFXFx0XFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTY4MS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTcyOS0vKiBDb25zdGFudHMgZm9yIENMSyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjczMDojZGVmaW5lIE1BQ0JfQ0xLX0RJVjhcXHRcXHRcXHRcXHQwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzMxOiNkZWZpbmUgTUFDQl9DTEtfRElWMTZcXHRcXHRcXHRcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzMyOiNkZWZpbmUgTUFDQl9DTEtfRElWMzJcXHRcXHRcXHRcXHQyXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzMzOiNkZWZpbmUgTUFDQl9DTEtfRElWNjRcXHRcXHRcXHRcXHQzXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNzM0LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNzQ1LS8qIENvbnN0YW50cyBmb3IgTUFOIHJlZ2lzdGVyICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzQ2OiNkZWZpbmUgTUFDQl9NQU5fQzIyX1NPRlxcdFxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3NDc6I2RlZmluZSBNQUNCX01BTl9DMjJfV1JJVEVcXHRcXHRcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzQ4OiNkZWZpbmUgTUFDQl9NQU5fQzIyX1JFQURcXHRcXHRcXHQyXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzQ5OiNkZWZpbmUgTUFDQl9NQU5fQzIyX0NPREVcXHRcXHRcXHQyXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNzUwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc1MTojZGVmaW5lIE1BQ0JfTUFOX0M0NV9TT0ZcXHRcXHRcXHQwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzUyOiNkZWZpbmUgTUFDQl9NQU5fQzQ1X0FERFJcXHRcXHRcXHQwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzUzOiNkZWZpbmUgTUFDQl9NQU5fQzQ1X1dSSVRFXFx0XFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc1NDojZGVmaW5lIE1BQ0JfTUFOX0M0NV9QT1NUX1JFQURfSU5DUlxcdFxcdDJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3NTU6I2RlZmluZSBNQUNCX01BTl9DNDVfUkVBRFxcdFxcdFxcdDNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3NTY6I2RlZmluZSBNQUNCX01BTl9DNDVfQ09ERVxcdFxcdFxcdDJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC03NTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNzU4LS8qIENhcGFiaWxpdHkgbWFzayBiaXRzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzU5OiNkZWZpbmUgTUFDQl9DQVBTX0lTUl9DTEVBUl9PTl9XUklURVxcdFxcdEJJVCgwKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc2MDojZGVmaW5lIE1BQ0JfQ0FQU19VU1JJT19IQVNfQ0xLRU5cXHRcXHRCSVQoMSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3NjE6I2RlZmluZSBNQUNCX0NBUFNfVVNSSU9fREVGQVVMVF9JU19NSUlfR01JSVxcdEJJVCgyKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc2MjojZGVmaW5lIE1BQ0JfQ0FQU19OT19HSUdBQklUX0hBTEZcXHRcXHRCSVQoMylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3NjM6I2RlZmluZSBNQUNCX0NBUFNfVVNSSU9fRElTQUJMRURcXHRcXHRCSVQoNClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3NjQ6I2RlZmluZSBNQUNCX0NBUFNfSlVNQk9cXHRcXHRcXHRcXHRCSVQoNSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3NjU6I2RlZmluZSBNQUNCX0NBUFNfR0VNX0hBU19QVFBcXHRcXHRcXHRCSVQoNilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3NjY6I2RlZmluZSBNQUNCX0NBUFNfQkRfUkRfUFJFRkVUQ0hcXHRcXHRCSVQoNylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3Njc6I2RlZmluZSBNQUNCX0NBUFNfTkVFRFNfUlNUT05VQlJcXHRcXHRCSVQoOClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3Njg6I2RlZmluZSBNQUNCX0NBUFNfTUlJT05SR01JSVxcdFxcdFxcdEJJVCg5KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc2OTojZGVmaW5lIE1BQ0JfQ0FQU19ORUVEX1RTVUNMS1xcdFxcdFxcdEJJVCgxMClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3NzA6I2RlZmluZSBNQUNCX0NBUFNfUVVFVUVfRElTQUJMRVxcdFxcdFxcdEJJVCgxMSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3NzE6I2RlZmluZSBNQUNCX0NBUFNfUUJWXFx0XFx0XFx0XFx0QklUKDEyKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc3MjojZGVmaW5lIE1BQ0JfQ0FQU19QQ1NcXHRcXHRcXHRcXHRCSVQoMTMpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzczOiNkZWZpbmUgTUFDQl9DQVBTX0hJR0hfU1BFRURcXHRcXHRcXHRCSVQoMTQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Nzc0OiNkZWZpbmUgTUFDQl9DQVBTX0NMS19IV19DSEdcXHRcXHRcXHRCSVQoMTUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Nzc1OiNkZWZpbmUgTUFDQl9DQVBTX01BQ0JfSVNfRU1BQ1xcdFxcdFxcdEJJVCgxNilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3NzY6I2RlZmluZSBNQUNCX0NBUFNfRklGT19NT0RFXFx0XFx0XFx0QklUKDE3KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc3NzojZGVmaW5lIE1BQ0JfQ0FQU19HSUdBQklUX01PREVfQVZBSUxBQkxFXFx0QklUKDE4KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc3ODojZGVmaW5lIE1BQ0JfQ0FQU19TR19ESVNBQkxFRFxcdFxcdFxcdEJJVCgxOSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3Nzk6I2RlZmluZSBNQUNCX0NBUFNfTUFDQl9JU19HRU1cXHRcXHRcXHRCSVQoMjApXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzgwOiNkZWZpbmUgTUFDQl9DQVBTX0RNQV82NEJcXHRcXHRcXHRCSVQoMjEpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzgxOiNkZWZpbmUgTUFDQl9DQVBTX0RNQV9QVFBcXHRcXHRcXHRCSVQoMjIpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzgyOiNkZWZpbmUgTUFDQl9DQVBTX1JTQ1xcdFxcdFxcdFxcdEJJVCgyMylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3ODM6I2RlZmluZSBNQUNCX0NBUFNfTk9fTFNPXFx0XFx0XFx0QklUKDI0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc4NDojZGVmaW5lIE1BQ0JfQ0FQU19FRUVcXHRcXHRcXHRcXHRCSVQoMjUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Nzg1OiNkZWZpbmUgTUFDQl9DQVBTX1VTUklPX0hBU19NSUlcXHRcXHRcXHRCSVQoMjYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Nzg2OiNkZWZpbmUgTUFDQl9DQVBTX1VTUklPX0hBU19SRUZDTEtfU09VUkNFXFx0QklUKDI3KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc4NzojZGVmaW5lIE1BQ0JfQ0FQU19VU1JJT19IQVNfVFNVQ0xLX1NPVVJDRVxcdEJJVCgyOClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC03ODgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNzg5LS8qIExTTyBzZXR0aW5ncyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc5MDojZGVmaW5lIE1BQ0JfTFNPX1VGT19FTkFCTEVcXHRcXHRcXHQweDAxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzkxOiNkZWZpbmUgTUFDQl9MU09fVFNPX0VOQUJMRVxcdFxcdFxcdDB4MDJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC03OTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNzkzLS8qIEJpdCBtYW5pcHVsYXRpb24gbWFjcm9zICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Nzk0OiNkZWZpbmUgTUFDQl9CSVQobmFtZSlcXHRcXHRcXHRcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Nzk1OlxcdCgxIFxcdTAwM2NcXHUwMDNjIE1BQ0JfIyNuYW1lIyNfT0ZGU0VUKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc5NjojZGVmaW5lIE1BQ0JfQkYobmFtZSx2YWx1ZSlcXHRcXHRcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Nzk3OlxcdCgoKHZhbHVlKSBcXHUwMDI2ICgoMSBcXHUwMDNjXFx1MDAzYyBNQUNCXyMjbmFtZSMjX1NJWkUpIC0gMSkpXFx0XFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc5ODpcXHQgXFx1MDAzY1xcdTAwM2MgTUFDQl8jI25hbWUjI19PRkZTRVQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Nzk5OiNkZWZpbmUgTUFDQl9CRkVYVChuYW1lLHZhbHVlKVxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4MDA6XFx0KCgodmFsdWUpIFxcdTAwM2VcXHUwMDNlIE1BQ0JfIyNuYW1lIyNfT0ZGU0VUKVxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4MDE6XFx0IFxcdTAwMjYgKCgxIFxcdTAwM2NcXHUwMDNjIE1BQ0JfIyNuYW1lIyNfU0laRSkgLSAxKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4MDI6I2RlZmluZSBNQUNCX0JGSU5TKG5hbWUsdmFsdWUsb2xkKVxcdFxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4MDM6XFx0KCgob2xkKSBcXHUwMDI2IH4oKCgxIFxcdTAwM2NcXHUwMDNjIE1BQ0JfIyNuYW1lIyNfU0laRSkgLSAxKVxcdFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4MDQ6XFx0XFx0ICAgIFxcdTAwM2NcXHUwMDNjIE1BQ0JfIyNuYW1lIyNfT0ZGU0VUKSlcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODA1OlxcdCB8IE1BQ0JfQkYobmFtZSx2YWx1ZSkpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtODA2LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtODIwLS8qIFJlZ2lzdGVyIGFjY2VzcyBtYWNyb3MgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4MjE6I2RlZmluZSBtYWNiX3JlYWRsKHBvcnQsIHJlZylcXHRcXHQocG9ydCktXFx1MDAzZW1hY2JfcmVnX3JlYWRsKChwb3J0KSwgTUFDQl8jI3JlZylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4MjI6I2RlZmluZSBtYWNiX3dyaXRlbChwb3J0LCByZWcsIHZhbHVlKVxcdChwb3J0KS1cXHUwMDNlbWFjYl9yZWdfd3JpdGVsKChwb3J0KSwgTUFDQl8jI3JlZywgKHZhbHVlKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC04MjMtI2RlZmluZSBnZW1fcmVhZGwocG9ydCwgcmVnKVxcdFxcdChwb3J0KS1cXHUwMDNlbWFjYl9yZWdfcmVhZGwoKHBvcnQpLCBHRU1fIyNyZWcpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC04MjktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODMwOi8qIENvbmRpdGlvbmFsIEdFTS9NQUNCIG1hY3Jvcy4gIFRoZXNlIHBlcmZvcm0gdGhlIG9wZXJhdGlvbiB0byB0aGUgY29ycmVjdFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjgzMTogKiByZWdpc3RlciBkZXBlbmRlbnQgb24gd2hldGhlciB0aGUgZGV2aWNlIGlzIGEgR0VNIG9yIGEgTUFDQi4gIEZvciByZWdpc3RlcnNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC04MzItICogYW5kIGJpdGZpZWxkcyB0aGF0IGFyZSBjb21tb24gYWNyb3NzIGJvdGggZGV2aWNlcywgdXNlIG1hY2Jfe3JlYWQsd3JpdGV9bFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtODUyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjg1MzojZGVmaW5lIE1BQ0JfUkVBRF9OU1IoYnApXFx0bWFjYl9yZWFkbChicCwgTlNSKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTg1NC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oPTg2OT1zdHJ1Y3QgbWFjYl9kbWFfZGVzY19wdHAge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtODc0LS8qIERNQSBkZXNjcmlwdG9yIGJpdGZpZWxkcyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjg3NTojZGVmaW5lIE1BQ0JfUlhfVVNFRF9PRkZTRVRcXHRcXHRcXHQwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODc2OiNkZWZpbmUgTUFDQl9SWF9VU0VEX1NJWkVcXHRcXHRcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODc3OiNkZWZpbmUgTUFDQl9SWF9XUkFQX09GRlNFVFxcdFxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4Nzg6I2RlZmluZSBNQUNCX1JYX1dSQVBfU0laRVxcdFxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4Nzk6I2RlZmluZSBNQUNCX1JYX1dBRERSX09GRlNFVFxcdFxcdFxcdDJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4ODA6I2RlZmluZSBNQUNCX1JYX1dBRERSX1NJWkVcXHRcXHRcXHQzMFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTg4MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4ODI6I2RlZmluZSBNQUNCX1JYX0ZSTUxFTl9PRkZTRVRcXHRcXHRcXHQwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODgzOiNkZWZpbmUgTUFDQl9SWF9GUk1MRU5fU0laRVxcdFxcdFxcdDEyXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODg0OiNkZWZpbmUgTUFDQl9SWF9PRkZTRVRfT0ZGU0VUXFx0XFx0XFx0MTJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4ODU6I2RlZmluZSBNQUNCX1JYX09GRlNFVF9TSVpFXFx0XFx0XFx0MlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjg4NjojZGVmaW5lIE1BQ0JfUlhfU09GX09GRlNFVFxcdFxcdFxcdDE0XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODg3OiNkZWZpbmUgTUFDQl9SWF9TT0ZfU0laRVxcdFxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4ODg6I2RlZmluZSBNQUNCX1JYX0VPRl9PRkZTRVRcXHRcXHRcXHQxNVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjg4OTojZGVmaW5lIE1BQ0JfUlhfRU9GX1NJWkVcXHRcXHRcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODkwOiNkZWZpbmUgTUFDQl9SWF9DRklfT0ZGU0VUXFx0XFx0XFx0MTZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4OTE6I2RlZmluZSBNQUNCX1JYX0NGSV9TSVpFXFx0XFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjg5MjojZGVmaW5lIE1BQ0JfUlhfVkxBTl9QUklfT0ZGU0VUXFx0XFx0XFx0MTdcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4OTM6I2RlZmluZSBNQUNCX1JYX1ZMQU5fUFJJX1NJWkVcXHRcXHRcXHQzXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODk0OiNkZWZpbmUgTUFDQl9SWF9QUklfVEFHX09GRlNFVFxcdFxcdFxcdDIwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODk1OiNkZWZpbmUgTUFDQl9SWF9QUklfVEFHX1NJWkVcXHRcXHRcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODk2OiNkZWZpbmUgTUFDQl9SWF9WTEFOX1RBR19PRkZTRVRcXHRcXHRcXHQyMVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjg5NzojZGVmaW5lIE1BQ0JfUlhfVkxBTl9UQUdfU0laRVxcdFxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4OTg6I2RlZmluZSBNQUNCX1JYX1RZUEVJRF9NQVRDSF9PRkZTRVRcXHRcXHQyMlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjg5OTojZGVmaW5lIE1BQ0JfUlhfVFlQRUlEX01BVENIX1NJWkVcXHRcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6OTAwOiNkZWZpbmUgTUFDQl9SWF9TQTRfTUFUQ0hfT0ZGU0VUXFx0XFx0MjNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5MDE6I2RlZmluZSBNQUNCX1JYX1NBNF9NQVRDSF9TSVpFXFx0XFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjkwMjojZGVmaW5lIE1BQ0JfUlhfU0EzX01BVENIX09GRlNFVFxcdFxcdDI0XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6OTAzOiNkZWZpbmUgTUFDQl9SWF9TQTNfTUFUQ0hfU0laRVxcdFxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5MDQ6I2RlZmluZSBNQUNCX1JYX1NBMl9NQVRDSF9PRkZTRVRcXHRcXHQyNVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjkwNTojZGVmaW5lIE1BQ0JfUlhfU0EyX01BVENIX1NJWkVcXHRcXHRcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6OTA2OiNkZWZpbmUgTUFDQl9SWF9TQTFfTUFUQ0hfT0ZGU0VUXFx0XFx0MjZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5MDc6I2RlZmluZSBNQUNCX1JYX1NBMV9NQVRDSF9TSVpFXFx0XFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjkwODojZGVmaW5lIE1BQ0JfUlhfRVhUX01BVENIX09GRlNFVFxcdFxcdDI4XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6OTA5OiNkZWZpbmUgTUFDQl9SWF9FWFRfTUFUQ0hfU0laRVxcdFxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5MTA6I2RlZmluZSBNQUNCX1JYX1VIQVNIX01BVENIX09GRlNFVFxcdFxcdDI5XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6OTExOiNkZWZpbmUgTUFDQl9SWF9VSEFTSF9NQVRDSF9TSVpFXFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjkxMjojZGVmaW5lIE1BQ0JfUlhfTUhBU0hfTUFUQ0hfT0ZGU0VUXFx0XFx0MzBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5MTM6I2RlZmluZSBNQUNCX1JYX01IQVNIX01BVENIX1NJWkVcXHRcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6OTE0OiNkZWZpbmUgTUFDQl9SWF9CUk9BRENBU1RfT0ZGU0VUXFx0XFx0MzFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5MTU6I2RlZmluZSBNQUNCX1JYX0JST0FEQ0FTVF9TSVpFXFx0XFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTkxNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5MTc6I2RlZmluZSBNQUNCX1JYX0ZSTUxFTl9NQVNLXFx0XFx0XFx0MHhGRkZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5MTg6I2RlZmluZSBNQUNCX1JYX0pGUk1MRU5fTUFTS1xcdFxcdFxcdDB4M0ZGRlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTkxOS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTkyNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5Mjg6I2RlZmluZSBNQUNCX1RYX0ZSTUxFTl9PRkZTRVRcXHRcXHRcXHQwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6OTI5OiNkZWZpbmUgTUFDQl9UWF9GUk1MRU5fU0laRVxcdFxcdFxcdDExXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6OTMwOiNkZWZpbmUgTUFDQl9UWF9MQVNUX09GRlNFVFxcdFxcdFxcdDE1XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6OTMxOiNkZWZpbmUgTUFDQl9UWF9MQVNUX1NJWkVcXHRcXHRcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6OTMyOiNkZWZpbmUgTUFDQl9UWF9OT0NSQ19PRkZTRVRcXHRcXHRcXHQxNlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjkzMzojZGVmaW5lIE1BQ0JfVFhfTk9DUkNfU0laRVxcdFxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5MzQ6I2RlZmluZSBNQUNCX01TU19NRlNfT0ZGU0VUXFx0XFx0XFx0MTZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5MzU6I2RlZmluZSBNQUNCX01TU19NRlNfU0laRVxcdFxcdFxcdDE0XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6OTM2OiNkZWZpbmUgTUFDQl9UWF9MU09fT0ZGU0VUXFx0XFx0XFx0MTdcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5Mzc6I2RlZmluZSBNQUNCX1RYX0xTT19TSVpFXFx0XFx0XFx0MlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjkzODojZGVmaW5lIE1BQ0JfVFhfVENQX1NFUV9TUkNfT0ZGU0VUXFx0XFx0MTlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5Mzk6I2RlZmluZSBNQUNCX1RYX1RDUF9TRVFfU1JDX1NJWkVcXHRcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6OTQwOiNkZWZpbmUgTUFDQl9UWF9CVUZfRVhIQVVTVEVEX09GRlNFVFxcdFxcdDI3XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6OTQxOiNkZWZpbmUgTUFDQl9UWF9CVUZfRVhIQVVTVEVEX1NJWkVcXHRcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6OTQyOiNkZWZpbmUgTUFDQl9UWF9VTkRFUlJVTl9PRkZTRVRcXHRcXHRcXHQyOFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjk0MzojZGVmaW5lIE1BQ0JfVFhfVU5ERVJSVU5fU0laRVxcdFxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5NDQ6I2RlZmluZSBNQUNCX1RYX0VSUk9SX09GRlNFVFxcdFxcdFxcdDI5XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6OTQ1OiNkZWZpbmUgTUFDQl9UWF9FUlJPUl9TSVpFXFx0XFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjk0NjojZGVmaW5lIE1BQ0JfVFhfV1JBUF9PRkZTRVRcXHRcXHRcXHQzMFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjk0NzojZGVmaW5lIE1BQ0JfVFhfV1JBUF9TSVpFXFx0XFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjk0ODojZGVmaW5lIE1BQ0JfVFhfVVNFRF9PRkZTRVRcXHRcXHRcXHQzMVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjk0OTojZGVmaW5lIE1BQ0JfVFhfVVNFRF9TSVpFXFx0XFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTk1MC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oPTExOTQ9c3RydWN0IG1hY2Jfb3JfZ2VtX29wcyB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMjAxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjEyMDI6LyogTUFDQi1QVFAgaW50ZXJmYWNlOiBhZGFwdCB0byBwbGF0Zm9ybSBuZWVkcy4gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMjAzLXN0cnVjdCBtYWNiX3B0cF9pbmZvIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oPTEyOTg9c3RydWN0IG1hY2Ige1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTMxMy1cXHR1bnNpZ25lZCBpbnRcXHRcXHRudW1fcXVldWVzO1xcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0zMFQxNjozNTo0OS45ODgzNjk5NzJaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo5NjcxNzkwMTgwMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBMaW5lIG9mIElucXVpcnkqKlxuXG5Pa2F5LCBzbyBJJ20gZGl2aW5nIGludG8gdGhpcyBgbWFjYmAgc2l0dWF0aW9uLiBGaXJzdCB0aGluZ3MgZmlyc3QsIGxldCdzIHRha2UgYSBsb29rIGF0IGBtYWNiX3BjaS5jYCBhbmQgdW5kZXJzdGFuZCB0aGUgcHJvYmluZyBwcm9jZXNzIGZvciB0aGVzZSBkZXZpY2VzLiBJJ20gd29uZGVyaW5nLCBpcyB0aGUgTUFDQiBhY3R1YWxseSBlbXVsYXRlZCB3aXRoaW4gUUVNVT8gQW5kIHRoYXQgbGVhZHMgdG8gYSBiaWdnZXIgcXVlc3Rpb246IERvZXMgUUVNVSBldmVuIHByb3ZpZGUgYW55IGVtdWxhdGlvbiBmb3IgdGhlIENhZGVuY2UgR0VNIG9yIE1BQ0IgYXJjaGl0ZWN0dXJlP1xuXG5BaGEsIHdhaXQgYSBtaW51dGUhIEkgc2VlbSB0byByZWNhbGwgdGhhdCBRRU1VICpkb2VzKiBlbXVsYXRlIENhZGVuY2UgR0VNLCBsaWtlIGZvciB0aGUgWGlsaW54IFp5bnEgcGxhdGZvcm0sIGltcGxlbWVudGVkIGluIGBjYWRlbmNlX2dlbS5jYCwgc3BlY2lmaWNhbGx5IHVuZGVyIHRoZSBgYXJtLXNvZnRtbXVgIHNlY3Rpb24uIEJ1dCBpcyB0aGlzIHJlbGV2YW50IHRvIHRoZSBzdGFuZGFyZCBzeXprYWxsZXIgLyBRRU1VIHg4Nl82NCBvciBhcm02NCBlbnZpcm9ubWVudHM/IE9yIGlzIGBtYWNiX3BjaWAgZXZlbiBwcmVzZW50IGluIHRoYXQgY29uZmlndXJhdGlvbj9cblxuUmlnaHQsIGJhY2sgdG8gdGhlIHNvdXJjZS4gSSBuZWVkIHRvIHJlLWV4YW1pbmUgYG1hY2JfcGNpLmNgIGFuZCBzcGVjaWZpY2FsbHkgcGlucG9pbnQgd2hlcmUgYGdlbV9wdHBfaW5pdGAgZ2V0cyBjYWxsZWQuIFRoaXMgaXMga2V5LlxuXG5cbiIsIklucHV0VG9rZW5zIjoxODAwMCwiT3V0cHV0VG9rZW5zIjo0NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE1NSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0zMFQxNjozNzoyNi43MDYyNzQ3MTJaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDYxOTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3BjaS5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDEwMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG4gICAyOlxcdC8qXFxuICAgMzpcXHQgKiBET0M6IENhZGVuY2UgR0VNIFBDSSB3cmFwcGVyLlxcbiAgIDQ6XFx0ICpcXG4gICA1OlxcdCAqIENvcHlyaWdodCAoQykgMjAxNiBDYWRlbmNlIERlc2lnbiBTeXN0ZW1zIC0gaHR0cHM6Ly93d3cuY2FkZW5jZS5jb21cXG4gICA2OlxcdCAqXFxuICAgNzpcXHQgKiBBdXRob3JzOiBSYWZhbCBPemllYmxvIFxcdTAwM2NyYWZhbG9AY2FkZW5jZS5jb21cXHUwMDNlXFxuICAgODpcXHQgKlxcdCAgICBCYXJ0b3N6IEZvbHRhIFxcdTAwM2NiZm9sdGFAY2FkZW5jZS5jb21cXHUwMDNlXFxuICAgOTpcXHQgKi9cXG4gIDEwOlxcdFxcbiAgMTE6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L2Nsay5oXFx1MDAzZVxcbiAgMTI6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L2Nsay1wcm92aWRlci5oXFx1MDAzZVxcbiAgMTM6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L2V0aGVyZGV2aWNlLmhcXHUwMDNlXFxuICAxNDpcXHQjaW5jbHVkZSBcXHUwMDNjbGludXgvbW9kdWxlLmhcXHUwMDNlXFxuICAxNTpcXHQjaW5jbHVkZSBcXHUwMDNjbGludXgvcGNpLmhcXHUwMDNlXFxuICAxNjpcXHQjaW5jbHVkZSBcXHUwMDNjbGludXgvcGxhdGZvcm1fZGV2aWNlLmhcXHUwMDNlXFxuICAxNzpcXHQjaW5jbHVkZSBcXFwibWFjYi5oXFxcIlxcbiAgMTg6XFx0XFxuICAxOTpcXHQjZGVmaW5lIFBDSV9EUklWRVJfTkFNRSBcXFwibWFjYl9wY2lcXFwiXFxuICAyMDpcXHQjZGVmaW5lIFBMQVRfRFJJVkVSX05BTUUgXFxcIm1hY2JcXFwiXFxuICAyMTpcXHRcXG4gIDIyOlxcdCNkZWZpbmUgUENJX0RFVklDRV9JRF9DRE5TX01BQ0IgMHhlMDA3XFxuICAyMzpcXHRcXG4gIDI0OlxcdCNkZWZpbmUgR0VNX1BDTEtfUkFURSA1MDAwMDAwMFxcbiAgMjU6XFx0I2RlZmluZSBHRU1fSENMS19SQVRFIDUwMDAwMDAwXFxuICAyNjpcXHRcXG4gIDI3OlxcdHN0YXRpYyBpbnQgbWFjYl9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGNpLCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXFxuICAyODpcXHR7XFxuICAyOTpcXHRcXHRpbnQgZXJyO1xcbiAgMzA6XFx0XFx0c3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldjtcXG4gIDMxOlxcdFxcdHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2VfaW5mbyBwbGF0X2luZm87XFxuICAzMjpcXHRcXHRzdHJ1Y3QgbWFjYl9wbGF0Zm9ybV9kYXRhIHBsYXRfZGF0YTtcXG4gIDMzOlxcdFxcdHN0cnVjdCByZXNvdXJjZSByZXNbMl07XFxuICAzNDpcXHRcXG4gIDM1OlxcdFxcdC8qIGVuYWJsZSBwY2kgZGV2aWNlICovXFxuICAzNjpcXHRcXHRlcnIgPSBwY2ltX2VuYWJsZV9kZXZpY2UocGNpKTtcXG4gIDM3OlxcdFxcdGlmIChlcnIgXFx1MDAzYyAwKSB7XFxuICAzODpcXHRcXHRcXHRkZXZfZXJyKFxcdTAwMjZwY2ktXFx1MDAzZWRldiwgXFxcIkVuYWJsaW5nIFBDSSBkZXZpY2UgaGFzIGZhaWxlZDogJWRcXFwiLCBlcnIpO1xcbiAgMzk6XFx0XFx0XFx0cmV0dXJuIGVycjtcXG4gIDQwOlxcdFxcdH1cXG4gIDQxOlxcdFxcbiAgNDI6XFx0XFx0cGNpX3NldF9tYXN0ZXIocGNpKTtcXG4gIDQzOlxcdFxcbiAgNDQ6XFx0XFx0Lyogc2V0IHVwIHJlc291cmNlcyAqL1xcbiAgNDU6XFx0XFx0bWVtc2V0KHJlcywgMHgwMCwgc2l6ZW9mKHN0cnVjdCByZXNvdXJjZSkgKiBBUlJBWV9TSVpFKHJlcykpO1xcbiAgNDY6XFx0XFx0cmVzWzBdLnN0YXJ0ID0gcGNpX3Jlc291cmNlX3N0YXJ0KHBjaSwgMCk7XFxuICA0NzpcXHRcXHRyZXNbMF0uZW5kID0gcGNpX3Jlc291cmNlX2VuZChwY2ksIDApO1xcbiAgNDg6XFx0XFx0cmVzWzBdLm5hbWUgPSBQQ0lfRFJJVkVSX05BTUU7XFxuICA0OTpcXHRcXHRyZXNbMF0uZmxhZ3MgPSBJT1JFU09VUkNFX01FTTtcXG4gIDUwOlxcdFxcdHJlc1sxXS5zdGFydCA9IHBjaV9pcnFfdmVjdG9yKHBjaSwgMCk7XFxuICA1MTpcXHRcXHRyZXNbMV0ubmFtZSA9IFBDSV9EUklWRVJfTkFNRTtcXG4gIDUyOlxcdFxcdHJlc1sxXS5mbGFncyA9IElPUkVTT1VSQ0VfSVJRO1xcbiAgNTM6XFx0XFxuICA1NDpcXHRcXHRkZXZfaW5mbyhcXHUwMDI2cGNpLVxcdTAwM2VkZXYsIFxcXCJFTUFDIHBoeXNpY2FsIGJhc2UgYWRkcjogJXBhXFxcXG5cXFwiLFxcbiAgNTU6XFx0XFx0XFx0IFxcdTAwMjZyZXNbMF0uc3RhcnQpO1xcbiAgNTY6XFx0XFxuICA1NzpcXHRcXHQvKiBzZXQgdXAgbWFjYiBwbGF0Zm9ybSBkYXRhICovXFxuICA1ODpcXHRcXHRtZW1zZXQoXFx1MDAyNnBsYXRfZGF0YSwgMCwgc2l6ZW9mKHBsYXRfZGF0YSkpO1xcbiAgNTk6XFx0XFxuICA2MDpcXHRcXHQvKiBpbml0aWFsaXplIGNsb2NrcyAqL1xcbiAgNjE6XFx0XFx0cGxhdF9kYXRhLnBjbGsgPSBjbGtfcmVnaXN0ZXJfZml4ZWRfcmF0ZShcXHUwMDI2cGNpLVxcdTAwM2VkZXYsIFxcXCJwY2xrXFxcIiwgTlVMTCwgMCxcXG4gIDYyOlxcdFxcdFxcdFxcdFxcdFxcdFxcdCBHRU1fUENMS19SQVRFKTtcXG4gIDYzOlxcdFxcdGlmIChJU19FUlIocGxhdF9kYXRhLnBjbGspKSB7XFxuICA2NDpcXHRcXHRcXHRlcnIgPSBQVFJfRVJSKHBsYXRfZGF0YS5wY2xrKTtcXG4gIDY1OlxcdFxcdFxcdGdvdG8gZXJyX3BjbGtfcmVnaXN0ZXI7XFxuICA2NjpcXHRcXHR9XFxuICA2NzpcXHRcXG4gIDY4OlxcdFxcdHBsYXRfZGF0YS5oY2xrID0gY2xrX3JlZ2lzdGVyX2ZpeGVkX3JhdGUoXFx1MDAyNnBjaS1cXHUwMDNlZGV2LCBcXFwiaGNsa1xcXCIsIE5VTEwsIDAsXFxuICA2OTpcXHRcXHRcXHRcXHRcXHRcXHRcXHQgR0VNX0hDTEtfUkFURSk7XFxuICA3MDpcXHRcXHRpZiAoSVNfRVJSKHBsYXRfZGF0YS5oY2xrKSkge1xcbiAgNzE6XFx0XFx0XFx0ZXJyID0gUFRSX0VSUihwbGF0X2RhdGEuaGNsayk7XFxuICA3MjpcXHRcXHRcXHRnb3RvIGVycl9oY2xrX3JlZ2lzdGVyO1xcbiAgNzM6XFx0XFx0fVxcbiAgNzQ6XFx0XFxuICA3NTpcXHRcXHQvKiBzZXQgdXAgcGxhdGZvcm0gZGV2aWNlIGluZm8gKi9cXG4gIDc2OlxcdFxcdG1lbXNldChcXHUwMDI2cGxhdF9pbmZvLCAwLCBzaXplb2YocGxhdF9pbmZvKSk7XFxuICA3NzpcXHRcXHRwbGF0X2luZm8ucGFyZW50ID0gXFx1MDAyNnBjaS1cXHUwMDNlZGV2O1xcbiAgNzg6XFx0XFx0cGxhdF9pbmZvLmZ3bm9kZSA9IHBjaS1cXHUwMDNlZGV2LmZ3bm9kZTtcXG4gIDc5OlxcdFxcdHBsYXRfaW5mby5uYW1lID0gUExBVF9EUklWRVJfTkFNRTtcXG4gIDgwOlxcdFxcdHBsYXRfaW5mby5pZCA9IHBjaS1cXHUwMDNlZGV2Zm47XFxuICA4MTpcXHRcXHRwbGF0X2luZm8ucmVzID0gcmVzO1xcbiAgODI6XFx0XFx0cGxhdF9pbmZvLm51bV9yZXMgPSBBUlJBWV9TSVpFKHJlcyk7XFxuICA4MzpcXHRcXHRwbGF0X2luZm8uZGF0YSA9IFxcdTAwMjZwbGF0X2RhdGE7XFxuICA4NDpcXHRcXHRwbGF0X2luZm8uc2l6ZV9kYXRhID0gc2l6ZW9mKHBsYXRfZGF0YSk7XFxuICA4NTpcXHRcXHRwbGF0X2luZm8uZG1hX21hc2sgPSBwY2ktXFx1MDAzZWRtYV9tYXNrO1xcbiAgODY6XFx0XFxuICA4NzpcXHRcXHQvKiByZWdpc3RlciBwbGF0Zm9ybSBkZXZpY2UgKi9cXG4gIDg4OlxcdFxcdHBkZXYgPSBwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXJfZnVsbChcXHUwMDI2cGxhdF9pbmZvKTtcXG4gIDg5OlxcdFxcdGlmIChJU19FUlIocGRldikpIHtcXG4gIDkwOlxcdFxcdFxcdGVyciA9IFBUUl9FUlIocGRldik7XFxuICA5MTpcXHRcXHRcXHRnb3RvIGVycl9wbGF0X2Rldl9yZWdpc3RlcjtcXG4gIDkyOlxcdFxcdH1cXG4gIDkzOlxcdFxcbiAgOTQ6XFx0XFx0cGNpX3NldF9kcnZkYXRhKHBjaSwgcGRldik7XFxuICA5NTpcXHRcXG4gIDk2OlxcdFxcdHJldHVybiAwO1xcbiAgOTc6XFx0XFxuICA5ODpcXHRlcnJfcGxhdF9kZXZfcmVnaXN0ZXI6XFxuICA5OTpcXHRcXHRjbGtfdW5yZWdpc3Rlcl9maXhlZF9yYXRlKHBsYXRfZGF0YS5oY2xrKTtcXG4gMTAwOlxcdFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0zMFQxNjozNzoyNi43MDYzODMwNzJaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo1NzYyNzk5NDQ2NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMuIEhlcmUncyB3aGF0IEknbSB0aGlua2luZyBhcyBJIGFwcHJvYWNoIHRoaXMgcGF0Y2g6XG5cbioqQW5hbHl6aW5nIHRoZSBgZ2VtX3B0cF9pbml0YCBGdW5jdGlvbioqXG5cbkFscmlnaHQsIEknbSBnb2luZyB0byBnZXQgcmlnaHQgdG8gdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgdGhpcyBwYXRjaCBpcyBkb2luZywgYW5kIHRoYXQgc3RhcnRzIHdpdGggdGhlIGBnZW1fcHRwX2luaXRgIGZ1bmN0aW9uLiBUaGUgZmlyc3QgdGhpbmcgSSdtIGRvaW5nIGlzIGxvYWRpbmcgdXAgdGhlIHBhdGNoLiBJdCdzIHRpbWUgdG8gcmVhZCB0aHJvdWdoIGl0LiBTcGVjaWZpY2FsbHksIEknbSBnb2luZyB0byB6ZXJvIGluIG9uIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBgZ2VtX3B0cF9pbml0YC4gSSdtIGdvaW5nIHRvIGxvb2sgYXQgdGhlIGRldGFpbHMgd2l0aGluIHRoZSBwYXRjaC4gSSdtIGdvaW5nIHRvIGxvb2sgYXQgdGhlIGRpZmZlcmVuY2VzIHRvIHNlZSB3aGF0J3MgY2hhbmdlZCBhbmQgdHJ5IHRvIHVuZGVyc3RhbmQgdGhlIHJhdGlvbmFsZSBvZiB0aGUgY2hhbmdlLlxuVGhlbiwgbGV0J3MgemVybyBpbiBvbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jYCBhcm91bmQgbGluZSAzMzAuIEknbSBnb2luZyB0byBleGFtaW5lIHRoZSBjb2RlIGFyb3VuZCB0aGF0IHNwZWNpZmljIGxpbmUuIEkgaGF2ZSBhIGZlZWxpbmcgdGhhdCdzIHdoZXJlIHRoZSBjb3JlIG9mIHRoZSBjaGFuZ2Ugb3IgdGhlIHJlbGF0ZWQgZnVuY3Rpb25hbGl0eSBpcyBpbXBsZW1lbnRlZC4gVW5kZXJzdGFuZGluZyB3aGF0J3MgaGFwcGVuaW5nIGluIHRoYXQgaW1tZWRpYXRlIGNvbnRleHQgaXMga2V5IHRvIGdyYXNwaW5nIHRoZSBvdmVyYWxsIGltcGFjdCBvZiB0aGUgcGF0Y2guIExldCdzIHNlZSBpZiB0aGlzIGlzIGFuIHVwZGF0ZSwgYSBidWdmaXgsIG9yIHNvbWV0aGluZyBlbnRpcmVseSBuZXcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE5OTYwLCJPdXRwdXRUb2tlbnMiOjQ1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTAsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0zMFQxNjozODoyNC4zMzQzNzk1NjhaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4NDMwMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmNcIixcbiAgXCJGaXJzdExpbmVcIjogMzEwLFxuICBcIkxpbmVDb3VudFwiOiA4MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgMzEwOlxcdFxcdGRlc2NfcHRwID0gbWFjYl9wdHBfZGVzYyhicCwgZGVzYyk7XFxuIDMxMTpcXHRcXHQvKiBVbmxpa2VseSBidXQgY2hlY2sgKi9cXG4gMzEyOlxcdFxcdGlmICghZGVzY19wdHApIHtcXG4gMzEzOlxcdFxcdFxcdGRldl93YXJuX3JhdGVsaW1pdGVkKFxcdTAwMjZicC1cXHUwMDNlcGRldi1cXHUwMDNlZGV2LFxcbiAzMTQ6XFx0XFx0XFx0XFx0XFx0ICAgICBcXFwiVGltZXN0YW1wIG5vdCBzdXBwb3J0ZWQgaW4gQkRcXFxcblxcXCIpO1xcbiAzMTU6XFx0XFx0XFx0cmV0dXJuO1xcbiAzMTY6XFx0XFx0fVxcbiAzMTc6XFx0XFxuIDMxODpcXHRcXHQvKiBlbnN1cmUgdHNfMS90c18yIGlzIGxvYWRlZCBhZnRlciBjdHJsIChUWF9VU0VEIGNoZWNrKSAqL1xcbiAzMTk6XFx0XFx0ZG1hX3JtYigpO1xcbiAzMjA6XFx0XFx0Z2VtX2h3X3RpbWVzdGFtcChicCwgZGVzY19wdHAtXFx1MDAzZXRzXzEsIGRlc2NfcHRwLVxcdTAwM2V0c18yLCBcXHUwMDI2dHMpO1xcbiAzMjE6XFx0XFxuIDMyMjpcXHRcXHRtZW1zZXQoXFx1MDAyNnNoaHd0c3RhbXBzLCAwLCBzaXplb2Yoc2hod3RzdGFtcHMpKTtcXG4gMzIzOlxcdFxcdHNoaHd0c3RhbXBzLmh3dHN0YW1wID0ga3RpbWVfc2V0KHRzLnR2X3NlYywgdHMudHZfbnNlYyk7XFxuIDMyNDpcXHRcXHRza2JfdHN0YW1wX3R4KHNrYiwgXFx1MDAyNnNoaHd0c3RhbXBzKTtcXG4gMzI1OlxcdH1cXG4gMzI2OlxcdFxcbiAzMjc6XFx0dm9pZCBnZW1fcHRwX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcXG4gMzI4OlxcdHtcXG4gMzI5OlxcdFxcdHN0cnVjdCBtYWNiICpicCA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuIDMzMDpcXHRcXG4gMzMxOlxcdFxcdGJwLVxcdTAwM2VwdHBfY2xvY2tfaW5mbyA9IGdlbV9wdHBfY2Fwc190ZW1wbGF0ZTtcXG4gMzMyOlxcdFxcbiAzMzM6XFx0XFx0c3Bpbl9sb2NrX2luaXQoXFx1MDAyNmJwLVxcdTAwM2V0c3VfY2xrX2xvY2spO1xcbiAzMzQ6XFx0XFxuIDMzNTpcXHRcXHQvKiBub21pbmFsIGZyZXF1ZW5jeSBhbmQgbWF4aW11bSBhZGp1c3RtZW50IGluIHBwYiAqL1xcbiAzMzY6XFx0XFx0YnAtXFx1MDAzZXRzdV9yYXRlID0gYnAtXFx1MDAzZXB0cF9pbmZvLVxcdTAwM2VnZXRfdHN1X3JhdGUoYnApO1xcbiAzMzc6XFx0XFx0YnAtXFx1MDAzZXB0cF9jbG9ja19pbmZvLm1heF9hZGogPSBicC1cXHUwMDNlcHRwX2luZm8tXFx1MDAzZWdldF9wdHBfbWF4X2FkaigpO1xcbiAzMzg6XFx0XFx0Z2VtX3B0cF9pbml0X3RpbWVyKGJwKTtcXG4gMzM5OlxcdFxcdGJwLVxcdTAwM2VwdHBfY2xvY2sgPSBwdHBfY2xvY2tfcmVnaXN0ZXIoXFx1MDAyNmJwLVxcdTAwM2VwdHBfY2xvY2tfaW5mbywgXFx1MDAyNm5ldGRldi1cXHUwMDNlZGV2KTtcXG4gMzQwOlxcdFxcdGlmIChJU19FUlIoYnAtXFx1MDAzZXB0cF9jbG9jaykpIHtcXG4gMzQxOlxcdFxcdFxcdHByX2VycihcXFwicHRwIGNsb2NrIHJlZ2lzdGVyIGZhaWxlZDogJWxkXFxcXG5cXFwiLFxcbiAzNDI6XFx0XFx0XFx0XFx0UFRSX0VSUihicC1cXHUwMDNlcHRwX2Nsb2NrKSk7XFxuIDM0MzpcXHRcXHRcXHRicC1cXHUwMDNlcHRwX2Nsb2NrID0gTlVMTDtcXG4gMzQ0OlxcdFxcdFxcdHJldHVybjtcXG4gMzQ1OlxcdFxcdH0gZWxzZSBpZiAoYnAtXFx1MDAzZXB0cF9jbG9jayA9PSBOVUxMKSB7XFxuIDM0NjpcXHRcXHRcXHRwcl9lcnIoXFxcInB0cCBjbG9jayByZWdpc3RlciBmYWlsZWRcXFxcblxcXCIpO1xcbiAzNDc6XFx0XFx0XFx0cmV0dXJuO1xcbiAzNDg6XFx0XFx0fVxcbiAzNDk6XFx0XFxuIDM1MDpcXHRcXHRnZW1fcHRwX2luaXRfdHN1KGJwKTtcXG4gMzUxOlxcdFxcbiAzNTI6XFx0XFx0ZGV2X2luZm8oXFx1MDAyNmJwLVxcdTAwM2VwZGV2LVxcdTAwM2VkZXYsIFxcXCIlcyBwdHAgY2xvY2sgcmVnaXN0ZXJlZC5cXFxcblxcXCIsXFxuIDM1MzpcXHRcXHRcXHQgR0VNX1BUUF9USU1FUl9OQU1FKTtcXG4gMzU0OlxcdH1cXG4gMzU1OlxcdFxcbiAzNTY6XFx0dm9pZCBnZW1fcHRwX3JlbW92ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxcbiAzNTc6XFx0e1xcbiAzNTg6XFx0XFx0c3RydWN0IG1hY2IgKmJwID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG4gMzU5OlxcdFxcbiAzNjA6XFx0XFx0aWYgKGJwLVxcdTAwM2VwdHBfY2xvY2spIHtcXG4gMzYxOlxcdFxcdFxcdHB0cF9jbG9ja191bnJlZ2lzdGVyKGJwLVxcdTAwM2VwdHBfY2xvY2spO1xcbiAzNjI6XFx0XFx0XFx0YnAtXFx1MDAzZXB0cF9jbG9jayA9IE5VTEw7XFxuIDM2MzpcXHRcXHR9XFxuIDM2NDpcXHRcXG4gMzY1OlxcdFxcdGdlbV9wdHBfY2xlYXJfdGltZXIoYnApO1xcbiAzNjY6XFx0XFxuIDM2NzpcXHRcXHRkZXZfaW5mbyhcXHUwMDI2YnAtXFx1MDAzZXBkZXYtXFx1MDAzZWRldiwgXFxcIiVzIHB0cCBjbG9jayB1bnJlZ2lzdGVyZWQuXFxcXG5cXFwiLFxcbiAzNjg6XFx0XFx0XFx0IEdFTV9QVFBfVElNRVJfTkFNRSk7XFxuIDM2OTpcXHR9XFxuIDM3MDpcXHRcXG4gMzcxOlxcdHN0YXRpYyBpbnQgZ2VtX3B0cF9zZXRfdHNfbW9kZShzdHJ1Y3QgbWFjYiAqYnAsXFxuIDM3MjpcXHRcXHRcXHRcXHQgICAgICAgZW51bSBtYWNiX2JkX2NvbnRyb2wgdHhfYmRfY29udHJvbCxcXG4gMzczOlxcdFxcdFxcdFxcdCAgICAgICBlbnVtIG1hY2JfYmRfY29udHJvbCByeF9iZF9jb250cm9sKVxcbiAzNzQ6XFx0e1xcbiAzNzU6XFx0XFx0Z2VtX3dyaXRlbChicCwgVFhCRENUUkwsIEdFTV9CRihUWFRTTU9ERSwgdHhfYmRfY29udHJvbCkpO1xcbiAzNzY6XFx0XFx0Z2VtX3dyaXRlbChicCwgUlhCRENUUkwsIEdFTV9CRihSWFRTTU9ERSwgcnhfYmRfY29udHJvbCkpO1xcbiAzNzc6XFx0XFxuIDM3ODpcXHRcXHRyZXR1cm4gMDtcXG4gMzc5OlxcdH1cXG4gMzgwOlxcdFxcbiAzODE6XFx0aW50IGdlbV9nZXRfaHd0c3Qoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcXG4gMzgyOlxcdFxcdFxcdCAgc3RydWN0IGtlcm5lbF9od3RzdGFtcF9jb25maWcgKnRzdGFtcF9jb25maWcpXFxuIDM4MzpcXHR7XFxuIDM4NDpcXHRcXHRzdHJ1Y3QgbWFjYiAqYnAgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbiAzODU6XFx0XFxuIDM4NjpcXHRcXHQqdHN0YW1wX2NvbmZpZyA9IGJwLVxcdTAwM2V0c3RhbXBfY29uZmlnO1xcbiAzODc6XFx0XFx0aWYgKCFtYWNiX2RtYV9wdHAoYnApKVxcbiAzODg6XFx0XFx0XFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xcbiAzODk6XFx0XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMwVDE2OjM4OjI0LjMzNDQ2NTMwOFoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjI0NTY2MTIxOTgxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkRlYnVnZ2luZyBhIFBvdGVudGlhbCBSYWNlIENvbmRpdGlvbioqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gSXQgbG9va3MgbGlrZSB3ZSBoYXZlIGEgcG90ZW50aWFsIHJhY2UgY29uZGl0aW9uIGluIGBnZW1fcHRwX2luaXRgLiBTcGVjaWZpY2FsbHksIGBnZW1fcHRwX2luaXRfdGltZXIoYnApYCBpcyBiZWluZyBjYWxsZWQgYmVmb3JlIHRoZSBgc3Bpbl9sb2NrX2luaXQoXHUwMDI2YnAtXHUwMDNldHN1X2Nsa19sb2NrKWAuIE5vdywgdGhhdCBpbW1lZGlhdGVseSByYWlzZXMgYSByZWQgZmxhZy4gV2UgbmVlZCB0byBrbm93IGlmIGBnZW1fcHRwX2luaXRfdGltZXJgIG9yLCBmb3IgdGhhdCBtYXR0ZXIsIGBwdHBfY2xvY2tfcmVnaXN0ZXJgIChzaW5jZSB0aGV5IGNvdWxkIGJlIHJlbGF0ZWQpIGFyZSB0b3VjaGluZyBgYnAtXHUwMDNldHN1X2Nsa19sb2NrYC4gSSdsbCBnbyBzZWFyY2ggdGhlIGNvZGUuIExvb2tzIGxpa2UgSSB3aWxsIG5lZWQgdG8gc2VhcmNoIGZvciBgdHN1X2Nsa19sb2NrYCBpbiBgbWFjYl9wdHAuY2AgdG8gc2VlIGhvdyBpdCdzIGJlaW5nIHVzZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxNjUyLCJPdXRwdXRUb2tlbnMiOjM1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTMzLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzBUMTY6Mzg6NDguOTAwNTg5Njk5WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NDAwNDk2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ0c3VfY2xrX2xvY2tcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaD0xMjk4PXN0cnVjdCBtYWNiIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEzNjItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTM2MzpcXHRzcGlubG9ja190IHRzdV9jbGtfbG9jazsgLyogZ2VtIHRzdSBjbG9jayBsb2NraW5nICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTM2NC1cXHR1bnNpZ25lZCBpbnQgdHN1X3JhdGU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmM9NDM9c3RhdGljIGludCBnZW1fdHN1X2dldF90aW1lKHN0cnVjdCBwdHBfY2xvY2tfaW5mbyAqcHRwLCBzdHJ1Y3QgdGltZXNwZWM2NCAqdHMsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMtNTAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jOjUxOlxcdHNwaW5fbG9ja19pcnFzYXZlKFxcdTAwMjZicC1cXHUwMDNldHN1X2Nsa19sb2NrLCBmbGFncyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jLTUyLVxcdHB0cF9yZWFkX3N5c3RlbV9wcmV0cyhzdHMpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jLTcyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYzo3MzpcXHRzcGluX3VubG9ja19pcnFyZXN0b3JlKFxcdTAwMjZicC1cXHUwMDNldHN1X2Nsa19sb2NrLCBmbGFncyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jLTc0LVxcdHRzLVxcdTAwM2V0dl9zZWMgPSAoKCh1NjQpc2VjaCBcXHUwMDNjXFx1MDAzYyBHRU1fVFNMX1NJWkUpIHwgc2VjbClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYz03OT1zdGF0aWMgaW50IGdlbV90c3Vfc2V0X3RpbWUoc3RydWN0IHB0cF9jbG9ja19pbmZvICpwdHAsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMtODktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jOjkwOlxcdHNwaW5fbG9ja19pcnFzYXZlKFxcdTAwMjZicC1cXHUwMDNldHN1X2Nsa19sb2NrLCBmbGFncyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jLTkxLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jLTk4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYzo5OTpcXHRzcGluX3VubG9ja19pcnFyZXN0b3JlKFxcdTAwMjZicC1cXHUwMDNldHN1X2Nsa19sb2NrLCBmbGFncyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jLTEwMC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYz0xMDQ9c3RhdGljIGludCBnZW1fdHN1X2luY3Jfc2V0KHN0cnVjdCBtYWNiICpicCwgc3RydWN0IHRzdV9pbmNyICppbmNyX3NwZWMpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMtMTEyLVxcdCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYzoxMTM6XFx0c3Bpbl9sb2NrX2lycXNhdmUoXFx1MDAyNmJwLVxcdTAwM2V0c3VfY2xrX2xvY2ssIGZsYWdzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMtMTE0LVxcdC8qIFJlZ0JpdFsxNTowXSA9IFN1Ym5zWzIzOjhdOyBSZWdCaXRbMzE6MjRdID0gU3VibnNbNzowXSAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jLTExOC1cXHRnZW1fd3JpdGVsKGJwLCBUSSwgR0VNX0JGKE5TSU5DUiwgaW5jcl9zcGVjLVxcdTAwM2VucykpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYzoxMTk6XFx0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcXHUwMDI2YnAtXFx1MDAzZXRzdV9jbGtfbG9jaywgZmxhZ3MpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYy0xMjAtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmM9MzI3PXZvaWQgZ2VtX3B0cF9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMtMzMyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYzozMzM6XFx0c3Bpbl9sb2NrX2luaXQoXFx1MDAyNmJwLVxcdTAwM2V0c3VfY2xrX2xvY2spO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYy0zMzQtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMwVDE2OjM4OjQ4Ljk0NDU5OTgzOFoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoxNDY1MjYwNjczNjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhbmFseXNpcyBvZiB3aGF0J3MgZ29pbmcgb246XG5cbioqRGlzc2VjdGluZyB0aGUgYGdlbV90c3VfaW5jcl9zZXRgIEZ1bmN0aW9uIENhbGwqKlxuXG5Pa2F5LCBzbyBJJ20gdHJhY2tpbmcgdGhpcyBmdW5jdGlvbiBjYWxsLCBgZ2VtX3RzdV9pbmNyX3NldGAsIGFuZCBpdCBsb29rcyBsaWtlIGl0J3MgYmVpbmcgaW5pdGlhdGVkIGZyb20gd2l0aGluIGBnZW1fcHRwX2luaXRfdGltZXIoYnApYC4gIFRoYXQncyBteSBzdGFydGluZyBwb2ludC4gTm93LCB0byB1bmRlcnN0YW5kIHRoZSBjb250ZXh0IG9mIHRoZSBjYWxsLCBJIG5lZWQgdG8gZGl2ZSBkZWVwZXIgaW50byBgZ2VtX3B0cF9pbml0X3RpbWVyKGJwKWAuIFRoZSBjb2RlIHN1Z2dlc3RzIHRoZSBmdW5jdGlvbiBpcyBsb2NhdGVkIGluIGBtYWNiX3B0cC5jYCwgbGluZXMgMTAwIHRvIDI1MCBzZWVtIHRoZSByZWxldmFudCBhcmVhIGZvciB0aGlzIGRlZXBlciBsb29rLiBJJ2xsIGZvY3VzIG15IGF0dGVudGlvbiBvbiB0aGF0IHNlY3Rpb24gdG8gc2VlIHdoYXQncyBsZWFkaW5nIHVwIHRvIHRoZSBgZ2VtX3RzdV9pbmNyX3NldGAgY2FsbCBhbmQgd2hhdCdzIGhhcHBlbmluZyBpbW1lZGlhdGVseSBhZnRlci4gVGhhdCBzaG91bGQgZ2l2ZSBtZSB0aGUgaW5zaWdodHMgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIHJvbGUgb2YgYGdlbV90c3VfaW5jcl9zZXRgIGluIHRoZSBsYXJnZXIgUFRQIGluaXRpYWxpemF0aW9uIGZsb3cuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIzMDM3LCJPdXRwdXRUb2tlbnMiOjQ1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzBUMTY6NDE6MTUuNDcwNjcwMTU1WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgxNTIwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuY1wiLFxuICBcIkZpcnN0TGluZVwiOiAxMDAsXG4gIFwiTGluZUNvdW50XCI6IDgwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAxMDA6XFx0XFxuIDEwMTpcXHRcXHRyZXR1cm4gMDtcXG4gMTAyOlxcdH1cXG4gMTAzOlxcdFxcbiAxMDQ6XFx0c3RhdGljIGludCBnZW1fdHN1X2luY3Jfc2V0KHN0cnVjdCBtYWNiICpicCwgc3RydWN0IHRzdV9pbmNyICppbmNyX3NwZWMpXFxuIDEwNTpcXHR7XFxuIDEwNjpcXHRcXHR1bnNpZ25lZCBsb25nIGZsYWdzO1xcbiAxMDc6XFx0XFxuIDEwODpcXHRcXHQvKiB0c3VfdGltZXJfaW5jciByZWdpc3RlciBtdXN0IGJlIHdyaXR0ZW4gYWZ0ZXJcXG4gMTA5OlxcdFxcdCAqIHRoZSB0c3VfdGltZXJfaW5jcl9zdWJfbnMgcmVnaXN0ZXIgYW5kIHRoZSB3cml0ZSBvcGVyYXRpb25cXG4gMTEwOlxcdFxcdCAqIHdpbGwgY2F1c2UgdGhlIHZhbHVlIHdyaXR0ZW4gdG8gdGhlIHRzdV90aW1lcl9pbmNyX3N1Yl9ucyByZWdpc3RlclxcbiAxMTE6XFx0XFx0ICogdG8gdGFrZSBlZmZlY3QuXFxuIDExMjpcXHRcXHQgKi9cXG4gMTEzOlxcdFxcdHNwaW5fbG9ja19pcnFzYXZlKFxcdTAwMjZicC1cXHUwMDNldHN1X2Nsa19sb2NrLCBmbGFncyk7XFxuIDExNDpcXHRcXHQvKiBSZWdCaXRbMTU6MF0gPSBTdWJuc1syMzo4XTsgUmVnQml0WzMxOjI0XSA9IFN1Ym5zWzc6MF0gKi9cXG4gMTE1OlxcdFxcdGdlbV93cml0ZWwoYnAsIFRJU1VCTiwgR0VNX0JGKFNVQk5TSU5DUkwsIGluY3Jfc3BlYy1cXHUwMDNlc3ViX25zKSB8XFxuIDExNjpcXHRcXHRcXHQgICBHRU1fQkYoU1VCTlNJTkNSSCwgKGluY3Jfc3BlYy1cXHUwMDNlc3ViX25zIFxcdTAwM2VcXHUwMDNlXFxuIDExNzpcXHRcXHRcXHRcXHQgIEdFTV9TVUJOU0lOQ1JMX1NJWkUpKSk7XFxuIDExODpcXHRcXHRnZW1fd3JpdGVsKGJwLCBUSSwgR0VNX0JGKE5TSU5DUiwgaW5jcl9zcGVjLVxcdTAwM2VucykpO1xcbiAxMTk6XFx0XFx0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcXHUwMDI2YnAtXFx1MDAzZXRzdV9jbGtfbG9jaywgZmxhZ3MpO1xcbiAxMjA6XFx0XFxuIDEyMTpcXHRcXHRyZXR1cm4gMDtcXG4gMTIyOlxcdH1cXG4gMTIzOlxcdFxcbiAxMjQ6XFx0c3RhdGljIGludCBnZW1fcHRwX2FkamZpbmUoc3RydWN0IHB0cF9jbG9ja19pbmZvICpwdHAsIGxvbmcgc2NhbGVkX3BwbSlcXG4gMTI1OlxcdHtcXG4gMTI2OlxcdFxcdHN0cnVjdCBtYWNiICpicCA9IGNvbnRhaW5lcl9vZihwdHAsIHN0cnVjdCBtYWNiLCBwdHBfY2xvY2tfaW5mbyk7XFxuIDEyNzpcXHRcXHRzdHJ1Y3QgdHN1X2luY3IgaW5jcl9zcGVjO1xcbiAxMjg6XFx0XFx0Ym9vbCBuZWdfYWRqID0gZmFsc2U7XFxuIDEyOTpcXHRcXHR1MzIgd29yZDtcXG4gMTMwOlxcdFxcdHU2NCBhZGo7XFxuIDEzMTpcXHRcXG4gMTMyOlxcdFxcdGlmIChzY2FsZWRfcHBtIFxcdTAwM2MgMCkge1xcbiAxMzM6XFx0XFx0XFx0bmVnX2FkaiA9IHRydWU7XFxuIDEzNDpcXHRcXHRcXHRzY2FsZWRfcHBtID0gLXNjYWxlZF9wcG07XFxuIDEzNTpcXHRcXHR9XFxuIDEzNjpcXHRcXG4gMTM3OlxcdFxcdC8qIEFkanVzdG1lbnQgaXMgcmVsYXRpdmUgdG8gYmFzZSBmcmVxdWVuY3kgKi9cXG4gMTM4OlxcdFxcdGluY3Jfc3BlYy5zdWJfbnMgPSBicC1cXHUwMDNldHN1X2luY3Iuc3ViX25zO1xcbiAxMzk6XFx0XFx0aW5jcl9zcGVjLm5zID0gYnAtXFx1MDAzZXRzdV9pbmNyLm5zO1xcbiAxNDA6XFx0XFxuIDE0MTpcXHRcXHQvKiBzY2FsaW5nOiB1bnVzZWQoOGJpdCkgfCBucyg4Yml0KSB8IGZyYWN0aW9ucygxNmJpdCkgKi9cXG4gMTQyOlxcdFxcdHdvcmQgPSAoKHU2NClpbmNyX3NwZWMubnMgXFx1MDAzY1xcdTAwM2MgR0VNX1NVQk5TSU5DUl9TSVpFKSArIGluY3Jfc3BlYy5zdWJfbnM7XFxuIDE0MzpcXHRcXHRhZGogPSAodTY0KXNjYWxlZF9wcG0gKiB3b3JkO1xcbiAxNDQ6XFx0XFx0LyogRGl2aWRlIHdpdGggcm91bmRpbmcsIGVxdWl2YWxlbnQgdG8gZmxvYXRpbmcgZGl2aWRpbmc6XFxuIDE0NTpcXHRcXHQgKiAodGVtcCAvIFVTRUNfUEVSX1NFQykgKyAwLjVcXG4gMTQ2OlxcdFxcdCAqL1xcbiAxNDc6XFx0XFx0YWRqICs9IChVU0VDX1BFUl9TRUMgXFx1MDAzZVxcdTAwM2UgMSk7XFxuIDE0ODpcXHRcXHRhZGogXFx1MDAzZVxcdTAwM2U9IFBQTV9GUkFDVElPTjsgLyogcmVtb3ZlIGZyYWN0aW9ucyAqL1xcbiAxNDk6XFx0XFx0YWRqID0gZGl2X3U2NChhZGosIFVTRUNfUEVSX1NFQyk7XFxuIDE1MDpcXHRcXHRhZGogPSBuZWdfYWRqID8gKHdvcmQgLSBhZGopIDogKHdvcmQgKyBhZGopO1xcbiAxNTE6XFx0XFxuIDE1MjpcXHRcXHRpbmNyX3NwZWMubnMgPSAoYWRqIFxcdTAwM2VcXHUwMDNlIEdFTV9TVUJOU0lOQ1JfU0laRSlcXG4gMTUzOlxcdFxcdFxcdFxcdFxcdTAwMjYgKCgxIFxcdTAwM2NcXHUwMDNjIEdFTV9OU0lOQ1JfU0laRSkgLSAxKTtcXG4gMTU0OlxcdFxcdGluY3Jfc3BlYy5zdWJfbnMgPSBhZGogXFx1MDAyNiAoKDEgXFx1MDAzY1xcdTAwM2MgR0VNX1NVQk5TSU5DUl9TSVpFKSAtIDEpO1xcbiAxNTU6XFx0XFx0Z2VtX3RzdV9pbmNyX3NldChicCwgXFx1MDAyNmluY3Jfc3BlYyk7XFxuIDE1NjpcXHRcXHRyZXR1cm4gMDtcXG4gMTU3OlxcdH1cXG4gMTU4OlxcdFxcbiAxNTk6XFx0c3RhdGljIGludCBnZW1fcHRwX2FkanRpbWUoc3RydWN0IHB0cF9jbG9ja19pbmZvICpwdHAsIHM2NCBkZWx0YSlcXG4gMTYwOlxcdHtcXG4gMTYxOlxcdFxcdHN0cnVjdCBtYWNiICpicCA9IGNvbnRhaW5lcl9vZihwdHAsIHN0cnVjdCBtYWNiLCBwdHBfY2xvY2tfaW5mbyk7XFxuIDE2MjpcXHRcXHRzdHJ1Y3QgdGltZXNwZWM2NCBub3csIHRoZW4gPSBuc190b190aW1lc3BlYzY0KGRlbHRhKTtcXG4gMTYzOlxcdFxcdHUzMiBhZGosIHNpZ24gPSAwO1xcbiAxNjQ6XFx0XFxuIDE2NTpcXHRcXHRpZiAoZGVsdGEgXFx1MDAzYyAwKSB7XFxuIDE2NjpcXHRcXHRcXHRzaWduID0gMTtcXG4gMTY3OlxcdFxcdFxcdGRlbHRhID0gLWRlbHRhO1xcbiAxNjg6XFx0XFx0fVxcbiAxNjk6XFx0XFxuIDE3MDpcXHRcXHRpZiAoZGVsdGEgXFx1MDAzZSBUU1VfTlNFQ19NQVhfVkFMKSB7XFxuIDE3MTpcXHRcXHRcXHRnZW1fdHN1X2dldF90aW1lKFxcdTAwMjZicC1cXHUwMDNlcHRwX2Nsb2NrX2luZm8sIFxcdTAwMjZub3csIE5VTEwpO1xcbiAxNzI6XFx0XFx0XFx0bm93ID0gdGltZXNwZWM2NF9hZGQobm93LCB0aGVuKTtcXG4gMTczOlxcdFxcbiAxNzQ6XFx0XFx0XFx0Z2VtX3RzdV9zZXRfdGltZShcXHUwMDI2YnAtXFx1MDAzZXB0cF9jbG9ja19pbmZvLFxcbiAxNzU6XFx0XFx0XFx0XFx0XFx0IChjb25zdCBzdHJ1Y3QgdGltZXNwZWM2NCAqKVxcdTAwMjZub3cpO1xcbiAxNzY6XFx0XFx0fSBlbHNlIHtcXG4gMTc3OlxcdFxcdFxcdGFkaiA9IChzaWduIFxcdTAwM2NcXHUwMDNjIEdFTV9BRERTVUJfT0ZGU0VUKSB8IGRlbHRhO1xcbiAxNzg6XFx0XFxuIDE3OTpcXHRcXHRcXHRnZW1fd3JpdGVsKGJwLCBUQSwgYWRqKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzBUMTY6NDE6MTUuNDcwNzUzMDQ0WiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjQ0Njc1OTgxMjMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0YWtlIG9uIHRoZSB0aG91Z2h0IHByb2Nlc3MsIGFzIHJlcXVlc3RlZDpcblxuKipEZWNvbnN0cnVjdGluZyBgZ2VtX3B0cF9pbml0X3RpbWVyYCoqXG5cbkFscmlnaHQsIGxldCdzIGRpdmUgaW50byB0aGlzIGBnZW1fcHRwX2luaXRfdGltZXJgIGZ1bmN0aW9uLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdHMgcm9sZSB3aXRoaW4gdGhpcyBQVFAgaW1wbGVtZW50YXRpb24sIHNvIEknbSBnb2luZyB0byBzdGFydCBieSBydW5uaW5nIHRocm91Z2ggdGhlIGNvZGUgYmxvY2sgZnJvbSBsaW5lcyAyMDAgdG8gMzAwLiBUaGlzIHNob3VsZCBnaXZlIG1lIGEgc29saWQgZ3Jhc3Agb2Ygd2hhdCB0aGlzIHRpbWVyIGluaXRpYWxpemF0aW9uIHJvdXRpbmUgaXMgYWN0dWFsbHkgZG9pbmcuIE15IGZvY3VzIHdpbGwgYmUgb24gdGhlIGNyaXRpY2FsIHBhcnRzIGZvciBzeW5jaHJvbml6YXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI0Nzg0LCJPdXRwdXRUb2tlbnMiOjQ1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDAsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0zMFQxNjo0MToxOS45MzgzNTM0MzdaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Nzc3ODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDIwMCxcbiAgXCJMaW5lQ291bnRcIjogNjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDIwMDpcXHRcXHQuYWRqZmluZVxcdD0gZ2VtX3B0cF9hZGpmaW5lLFxcbiAyMDE6XFx0XFx0LmFkanRpbWVcXHQ9IGdlbV9wdHBfYWRqdGltZSxcXG4gMjAyOlxcdFxcdC5nZXR0aW1leDY0XFx0PSBnZW1fdHN1X2dldF90aW1lLFxcbiAyMDM6XFx0XFx0LnNldHRpbWU2NFxcdD0gZ2VtX3RzdV9zZXRfdGltZSxcXG4gMjA0OlxcdFxcdC5lbmFibGVcXHRcXHQ9IGdlbV9wdHBfZW5hYmxlLFxcbiAyMDU6XFx0fTtcXG4gMjA2OlxcdFxcbiAyMDc6XFx0c3RhdGljIHZvaWQgZ2VtX3B0cF9pbml0X3RpbWVyKHN0cnVjdCBtYWNiICpicClcXG4gMjA4OlxcdHtcXG4gMjA5OlxcdFxcdHUzMiByZW0gPSAwO1xcbiAyMTA6XFx0XFx0dTY0IGFkajtcXG4gMjExOlxcdFxcbiAyMTI6XFx0XFx0YnAtXFx1MDAzZXRzdV9pbmNyLm5zID0gZGl2X3U2NF9yZW0oTlNFQ19QRVJfU0VDLCBicC1cXHUwMDNldHN1X3JhdGUsIFxcdTAwMjZyZW0pO1xcbiAyMTM6XFx0XFx0aWYgKHJlbSkge1xcbiAyMTQ6XFx0XFx0XFx0YWRqID0gcmVtO1xcbiAyMTU6XFx0XFx0XFx0YWRqIFxcdTAwM2NcXHUwMDNjPSBHRU1fU1VCTlNJTkNSX1NJWkU7XFxuIDIxNjpcXHRcXHRcXHRicC1cXHUwMDNldHN1X2luY3Iuc3ViX25zID0gZGl2X3U2NChhZGosIGJwLVxcdTAwM2V0c3VfcmF0ZSk7XFxuIDIxNzpcXHRcXHR9IGVsc2Uge1xcbiAyMTg6XFx0XFx0XFx0YnAtXFx1MDAzZXRzdV9pbmNyLnN1Yl9ucyA9IDA7XFxuIDIxOTpcXHRcXHR9XFxuIDIyMDpcXHR9XFxuIDIyMTpcXHRcXG4gMjIyOlxcdHN0YXRpYyB2b2lkIGdlbV9wdHBfaW5pdF90c3Uoc3RydWN0IG1hY2IgKmJwKVxcbiAyMjM6XFx0e1xcbiAyMjQ6XFx0XFx0c3RydWN0IHRpbWVzcGVjNjQgdHM7XFxuIDIyNTpcXHRcXG4gMjI2OlxcdFxcdC8qIDEuIGdldCBjdXJyZW50IHN5c3RlbSB0aW1lICovXFxuIDIyNzpcXHRcXHR0cyA9IG5zX3RvX3RpbWVzcGVjNjQoa3RpbWVfdG9fbnMoa3RpbWVfZ2V0X3JlYWwoKSkpO1xcbiAyMjg6XFx0XFxuIDIyOTpcXHRcXHQvKiAyLiBzZXQgcHRwIHRpbWVyICovXFxuIDIzMDpcXHRcXHRnZW1fdHN1X3NldF90aW1lKFxcdTAwMjZicC1cXHUwMDNlcHRwX2Nsb2NrX2luZm8sIFxcdTAwMjZ0cyk7XFxuIDIzMTpcXHRcXG4gMjMyOlxcdFxcdC8qIDMuIHNldCBQVFAgdGltZXIgaW5jcmVtZW50IHZhbHVlIHRvIEJBU0VfSU5DUkVNRU5UICovXFxuIDIzMzpcXHRcXHRnZW1fdHN1X2luY3Jfc2V0KGJwLCBcXHUwMDI2YnAtXFx1MDAzZXRzdV9pbmNyKTtcXG4gMjM0OlxcdFxcbiAyMzU6XFx0XFx0Z2VtX3dyaXRlbChicCwgVEEsIDApO1xcbiAyMzY6XFx0fVxcbiAyMzc6XFx0XFxuIDIzODpcXHRzdGF0aWMgdm9pZCBnZW1fcHRwX2NsZWFyX3RpbWVyKHN0cnVjdCBtYWNiICpicClcXG4gMjM5OlxcdHtcXG4gMjQwOlxcdFxcdGJwLVxcdTAwM2V0c3VfaW5jci5zdWJfbnMgPSAwO1xcbiAyNDE6XFx0XFx0YnAtXFx1MDAzZXRzdV9pbmNyLm5zID0gMDtcXG4gMjQyOlxcdFxcbiAyNDM6XFx0XFx0Z2VtX3dyaXRlbChicCwgVElTVUJOLCBHRU1fQkYoU1VCTlNJTkNSLCAwKSk7XFxuIDI0NDpcXHRcXHRnZW1fd3JpdGVsKGJwLCBUSSwgR0VNX0JGKE5TSU5DUiwgMCkpO1xcbiAyNDU6XFx0XFx0Z2VtX3dyaXRlbChicCwgVEEsIDApO1xcbiAyNDY6XFx0fVxcbiAyNDc6XFx0XFxuIDI0ODpcXHRzdGF0aWMgaW50IGdlbV9od190aW1lc3RhbXAoc3RydWN0IG1hY2IgKmJwLCB1MzIgZG1hX2Rlc2NfdHNfMSxcXG4gMjQ5OlxcdFxcdFxcdFxcdCAgICB1MzIgZG1hX2Rlc2NfdHNfMiwgc3RydWN0IHRpbWVzcGVjNjQgKnRzKVxcbiAyNTA6XFx0e1xcbiAyNTE6XFx0XFx0c3RydWN0IHRpbWVzcGVjNjQgdHN1O1xcbiAyNTI6XFx0XFxuIDI1MzpcXHRcXHR0cy1cXHUwMDNldHZfc2VjID0gKEdFTV9CRkVYVChETUFfU0VDSCwgZG1hX2Rlc2NfdHNfMikgXFx1MDAzY1xcdTAwM2MgR0VNX0RNQV9TRUNMX1NJWkUpIHxcXG4gMjU0OlxcdFxcdFxcdFxcdEdFTV9CRkVYVChETUFfU0VDTCwgZG1hX2Rlc2NfdHNfMSk7XFxuIDI1NTpcXHRcXHR0cy1cXHUwMDNldHZfbnNlYyA9IEdFTV9CRkVYVChETUFfTlNFQywgZG1hX2Rlc2NfdHNfMSk7XFxuIDI1NjpcXHRcXG4gMjU3OlxcdFxcdC8qIFRTVSBvdmVybGFwcGluZyB3b3JrYXJvdW5kXFxuIDI1ODpcXHRcXHQgKiBUaGUgdGltZXN0YW1wIG9ubHkgY29udGFpbnMgbG93ZXIgZmV3IGJpdHMgb2Ygc2Vjb25kcyxcXG4gMjU5OlxcdFxcdCAqIHNvIGFkZCB2YWx1ZSBmcm9tIDE1ODggdGltZXJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzBUMTY6NDE6MTkuOTM4NDMyNTU3WiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjY4Nzc4MTg5MzcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgYSBQb3RlbnRpYWwgU3BpbmxvY2sgQnVnIEZpeCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBnZW1fcHRwX2luaXRgLiBJdCBzZWVtcyBsaWtlIHRoZXJlJ3MgYSBwb3RlbnRpYWwgY29uY3VycmVuY3kgaXNzdWUgd2l0aCB0aGUgc3BpbmxvY2sgYGJwLVx1MDAzZXRzdV9jbGtfbG9ja2AuICBUaGUgY29yZSBvZiB0aGUgcHJvYmxlbSBpcyB0aGUgb3JkZXIgb2Ygb3BlcmF0aW9ucyBpbiB0aGlzIGZ1bmN0aW9uLiBXZSdyZSByZWdpc3RlcmluZyB0aGUgUFRQIGNsb2NrIHVzaW5nIGBwdHBfY2xvY2tfcmVnaXN0ZXIoXHUwMDI2YnAtXHUwMDNlcHRwX2Nsb2NrX2luZm8sIFx1MDAyNm5ldGRldi1cdTAwM2VkZXYpO2AuICBUaGUga2V5IHRoaW5nIGlzIHRoYXQgKmltbWVkaWF0ZWx5KiBhZnRlciBgcHRwX2Nsb2NrX3JlZ2lzdGVyYCBjb21wbGV0ZXMsIHVzZXIgc3BhY2Ugb3Iga2VybmVsIHRocmVhZHMgY2FuIHN0YXJ0IGludGVyYWN0aW5nIHdpdGggdGhlIFBUUCBjbG9jayBkZXZpY2UuIFRoZXkgbWlnaHQgYmUgY2FsbGluZyB0aGluZ3MgbGlrZSBgY2xvY2tfYWRqdGltZWAsIGBnZW1fdHN1X2dldF90aW1lYCwgb3IgYGdlbV90c3Vfc2V0X3RpbWVgIC0gYWxsIG9mIHdoaWNoIHVzZSB0aGF0IGBicC1cdTAwM2V0c3VfY2xrX2xvY2tgISAgVGhlIHBvdGVudGlhbCBidWcgYXJpc2VzIGJlY2F1c2UgdGhlIHNwaW5sb2NrIGBzcGluX2xvY2tfaW5pdChcdTAwMjZicC1cdTAwM2V0c3VfY2xrX2xvY2spYCAqd2FzKiBiZWluZyBjYWxsZWQgKmFmdGVyKiB0aGUgcmVnaXN0cmF0aW9uLiBUaGlzIG1lYW5zIHRoZSBsb2NrIGNvdWxkIGhhdmUgYmVlbiB1bmluaXRpYWxpemVkIGR1cmluZyB0aGUgY3JpdGljYWwgd2luZG93IHdoZW4gdGhlIFBUUCBjbG9jayB3YXMgYWxyZWFkeSBhY2Nlc3NpYmxlLiBUaGUgcHJvcG9zZWQgZml4LCBtb3ZpbmcgdGhlIGBzcGluX2xvY2tfaW5pdGAgY2FsbCBlYXJsaWVyLCBtYWtlcyBwZXJmZWN0IHNlbnNlIHRvIHJlc29sdmUgdGhlIHJhY2UgY29uZGl0aW9uLlxuXG5Ob3csIHRoZSBuZXh0IHN0ZXAgaXMgY3J1Y2lhbC4gQ2FuIHRoaXMgZml4IGJlIGZ1enplZD8gSSBuZWVkIHRvIGFwcGx5IHRoZSBmdXp6aW5nIGd1aWRlbGluZXMgbWV0aWN1bG91c2x5LiAgTGV0IG1lIHJlY2FsbCB0aGUgXCJXb3J0aEZ1enppbmc9ZmFsc2VcIiBjcml0ZXJpYSBmcm9tIG1lbW9yeS4gV2UgbmVlZCB0byBydWxlIG91dDpcblxuKiAgIERvY3VtZW50YXRpb24sIEtjb25maWcsIG9yIGNvbW1lbnQtb25seSBjaGFuZ2VzLiBOb3BlLCB0aGlzIGlzIGEgY29kZSBjaGFuZ2UuXG4qICAgUHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZy4gRGVmaW5pdGVseSBub3QgdGhlIGNhc2UgaGVyZS5cbiogICBOdW1lcmljIGNvbnN0YW50IGNoYW5nZXMgdGhhdCBkb24ndCBhbHRlciBleGVjdXRpb24uIE5vdCByZWxldmFudC5cbiogICBVbnJlYWNoYWJsZSBjb2RlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gVGhpcyBpcyBhIHJlYWwgY29uY2VybiEgSSdsbCBuZWVkIHRvIHJlc2VhcmNoIHdoYXQgTUFDQi9HRU0gYWN0dWFsbHkgKmlzKi5cbiogICBWZW5kb3Itc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVycyB0aGF0IGFyZSBoYXJkIHRvIGVtdWxhdGUuIFByb2JhYmx5IG5vdCwgYnV0IEkgbmVlZCB0byBiZSBzdXJlLlxuKiAgIFRlYXJkb3duIGNhbGxiYWNrcyBkdXJpbmcgUENJIGhvdC11bnBsdWcuIE5vcGUsIHRoYXQncyBub3Qgd2hhdCB0aGlzIGlzLlxuXG5TbywgdGhlIGJpZ2dlc3QgcXVlc3Rpb24gaXMgd2hldGhlciB0aGlzIGNvZGUgaXMgKnJlYWNoYWJsZSogaW4gYSBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50LiBXZSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hhdCBraW5kIG9mIGRldmljZSBNQUNCL0dFTSBpcy4gSXMgaXQgYSBwbGF0Zm9ybSBkZXZpY2Ugb3IgYSBQQ0kgZGV2aWNlPyBIb3cgYXJlIHRoZXNlIGRldmljZXMgdHlwaWNhbGx5IGluc3RhbnRpYXRlZD8gSSBuZWVkIHRvIGRpZyBpbnRvIGBtYWNiX21haW4uY2AgYW5kIGBtYWNiX3BjaS5jYCB0byB1bmRlcnN0YW5kIHRoZSBkZXZpY2UgaW5pdGlhbGl6YXRpb24gYW5kIGNvbm5lY3Rpb24gbWVjaGFuaXNtLiBPbmx5IHRoZW4gY2FuIEkgZGVjaWRlIGlmIHRoaXMgZml4IGlzIHdvcnRoIGZ1enppbmcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI2MDIxLCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTcxLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzBUMTY6NDE6MjYuODE2MjUzNDU0WiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5MDIxOTY5NDYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiTU9EVUxFX0RFVklDRV9UQUJMRVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM9NTcyNz1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtYWNiX2R0X2lkc1tdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy01NzU0LX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo1NzU1Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG1hY2JfZHRfaWRzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTU3NTYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcGNpLmM9MTMyPW1vZHVsZV9wY2lfZHJpdmVyKG1hY2JfcGNpX2RyaXZlcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3BjaS5jOjEzMzpNT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgZGV2X2lkX3RhYmxlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcGNpLmMtMTM0LU1PRFVMRV9MSUNFTlNFKFxcXCJHUExcXFwiKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzBUMTY6NDE6MjcuNzE4NDU3MzdaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6NTM4ODk5MjgxMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaXQgc3RhbmRzOlxuXG4qKkNoZWNraW5nIGBkZXZfaWRfdGFibGVgIGluIGBtYWNiX3BjaS5jYCoqXG5cbk9rYXksIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgZHJpdmVyIGluIGBtYWNiX3BjaS5jYCBpZGVudGlmaWVzIHRoZSBzcGVjaWZpYyBoYXJkd2FyZSBpdCdzIHN1cHBvc2VkIHRvIGhhbmRsZS4gVGhhdCBwcm9iYWJseSBtZWFucyB0aGUgZmlyc3QgdGhpbmcgdG8gbG9vayBhdCBpcyB0aGUgYGRldl9pZF90YWJsZWAuIEknbSBleHBlY3RpbmcgdGhpcyBpcyB3aGVyZSB0aGUgZHJpdmVyIGRlZmluZXMgdGhlIFBDSSBkZXZpY2UgSURzIGl0J3MgY29tcGF0aWJsZSB3aXRoLiBUaGlzIHdpbGwgbGlrZWx5IGJlIGEgbGlzdCBvciBhcnJheSBvZiBzdHJ1Y3R1cmVzLCBlYWNoIGNvbnRhaW5pbmcgdGhlIHZlbmRvciBJRCBhbmQgZGV2aWNlIElEIHRoYXQgdGhpcyBkcml2ZXIgcmVjb2duaXplcy4gSSdsbCBuZWVkIHRvIHNlZSBob3cgdGhlIGRyaXZlciB1c2VzIHRoaXMgdGFibGUgZHVyaW5nIGluaXRpYWxpemF0aW9uLCBzcGVjaWZpY2FsbHkgaG93IGl0IHByb2JlcyBmb3IgY29tcGF0aWJsZSBkZXZpY2VzIGR1cmluZyB0aGUgUENJIHByb2JlIGZ1bmN0aW9uLiBJJ20gYW50aWNpcGF0aW5nIHNvbWUgZm9ybSBvZiBsb29wIHRvIGl0ZXJhdGUgdGhyb3VnaCB0aGUgdGFibGUgYW5kIGNvbXBhcmUgdGhlIGhhcmR3YXJlIElEIHdpdGggd2hhdCB0aGUgc3lzdGVtIHByZXNlbnRzIHRvIGl0IGR1cmluZyBwcm9iZS4gVGltZSB0byBkaXZlIGludG8gdGhlIGNvZGUgYW5kIGNvbmZpcm0gbXkgaHVuY2ghXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI3NDI2LCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzBUMTY6NDE6MzMuMTA3NDUzMzYxWiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MzMxMTQ1OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkZXZfaWRfdGFibGVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcGNpLmM9MTA4PXN0YXRpYyB2b2lkIG1hY2JfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwY2kpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcGNpLmMtMTE5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wY2kuYzoxMjA6c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIGRldl9pZF90YWJsZVtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wY2kuYy0xMjEtXFx0eyBQQ0lfVkRFVklDRShDRE5TLCBQQ0lfREVWSUNFX0lEX0NETlNfTUFDQikgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wY2kuYz0xMjU9c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIG1hY2JfcGNpX2RyaXZlciA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcGNpLmMtMTI2LVxcdC5uYW1lICAgICA9IFBDSV9EUklWRVJfTkFNRSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcGNpLmM6MTI3OlxcdC5pZF90YWJsZSA9IGRldl9pZF90YWJsZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcGNpLmMtMTI4LVxcdC5wcm9iZSAgICA9IG1hY2JfcHJvYmUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcGNpLmM9MTMyPW1vZHVsZV9wY2lfZHJpdmVyKG1hY2JfcGNpX2RyaXZlcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3BjaS5jOjEzMzpNT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgZGV2X2lkX3RhYmxlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcGNpLmMtMTM0LU1PRFVMRV9MSUNFTlNFKFxcXCJHUExcXFwiKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzBUMTY6NDE6MzMuMTUwNzY3ODcxWiIsIlNlcSI6MTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjIzNzQ2NzMxMzMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzOlxuXG4qKkFuYWx5emluZyBhIENhZGVuY2UgTUFDQiBEcml2ZXIqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBhIENhZGVuY2UgUENJIGRldmljZSwgc3BlY2lmaWNhbGx5IGlkZW50aWZpZWQgYnkgdmVuZG9yIElEIGAweDE3Y2RgIGFuZCBkZXZpY2UgSUQgYDB4ZTAwN2Ag4oCTIHRoYXQncyBgUENJX1ZFTkRPUl9JRF9DRE5TYCBhbmQgYFBDSV9ERVZJQ0VfSURfQ0ROU19NQUNCYCwgcmlnaHQ/IEknbSBwcmV0dHkgc3VyZSB0aGF0J3MgYSBDYWRlbmNlIE1BQ0IuIE5vdywgd2hlcmUgZG9lcyB0aGlzIGZpdCBpbiB0aGUgZHJpdmVyIGxhbmRzY2FwZT8gQWgsIHllcywgYG1hY2JfbWFpbi5jYC4gVGhhdCBmaWxlJ3MgdXN1YWxseSBhIGdvb2QgaW5kaWNhdG9yLiBJdCBsb29rcyBsaWtlIHRoaXMgaXMgYW4gT3BlbiBGaXJtd2FyZSAoT0YpIG9yIHBsYXRmb3JtIGRyaXZlciBpbXBsZW1lbnRhdGlvbi4gVGltZSB0byBjb25maXJtIHRoZSBkZXZpY2UgaWRlbnRpZmllcnMgdXNlZCBieSB0aGUgZHJpdmVyLiBMZXQgbWUgZGlnIGludG8gYG1hY2JfZHRfaWRzYCBhbmQgY3Jvc3MtcmVmZXJlbmNlLiBJJ2xsIHNlZSB3aGF0IHRoZSBkZXZpY2UgdHJlZSBiaW5kaW5ncyBhcmUgdG8gY29uZmlybSBhbmQgdW5kZXJzdGFuZCBob3cgdGhpcyBkZXZpY2UgaXMgbWVhbnQgdG8gYmUgY29uZmlndXJlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjgwODcsIk91dHB1dFRva2VucyI6NDUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0zMFQxNjo0MTozNS41MjU0NDM0NTRaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzMwNTIwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmNcIixcbiAgXCJGaXJzdExpbmVcIjogNTcyNyxcbiAgXCJMaW5lQ291bnRcIjogMzVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiNTcyNzpcXHRzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtYWNiX2R0X2lkc1tdID0ge1xcbjU3Mjg6XFx0XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJjZG5zLGF0OTFzYW05MjYwLW1hY2JcXFwiLCAuZGF0YSA9IFxcdTAwMjZhdDkxc2FtOTI2MF9jb25maWcgfSxcXG41NzI5OlxcdFxcdHsgLmNvbXBhdGlibGUgPSBcXFwiY2RucyxtYWNiXFxcIiB9LFxcbjU3MzA6XFx0XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJjZG5zLG5wNC1tYWNiXFxcIiwgLmRhdGEgPSBcXHUwMDI2bnA0X2NvbmZpZyB9LFxcbjU3MzE6XFx0XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJjZG5zLHBjMzAyLWdlbVxcXCIsIC5kYXRhID0gXFx1MDAyNnBjMzAyZ2VtX2NvbmZpZyB9LFxcbjU3MzI6XFx0XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJjZG5zLGdlbVxcXCIsIC5kYXRhID0gXFx1MDAyNnBjMzAyZ2VtX2NvbmZpZyB9LFxcbjU3MzM6XFx0XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJjZG5zLHNhbTl4NjAtbWFjYlxcXCIsIC5kYXRhID0gXFx1MDAyNmF0OTFzYW05MjYwX2NvbmZpZyB9LFxcbjU3MzQ6XFx0XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJhdG1lbCxzYW1hNWQyLWdlbVxcXCIsIC5kYXRhID0gXFx1MDAyNnNhbWE1ZDJfY29uZmlnIH0sXFxuNTczNTpcXHRcXHR7IC5jb21wYXRpYmxlID0gXFxcImF0bWVsLHNhbWE1ZDI5LWdlbVxcXCIsIC5kYXRhID0gXFx1MDAyNnNhbWE1ZDI5X2NvbmZpZyB9LFxcbjU3MzY6XFx0XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJhdG1lbCxzYW1hNWQzLWdlbVxcXCIsIC5kYXRhID0gXFx1MDAyNnNhbWE1ZDNfY29uZmlnIH0sXFxuNTczNzpcXHRcXHR7IC5jb21wYXRpYmxlID0gXFxcImF0bWVsLHNhbWE1ZDMtbWFjYlxcXCIsIC5kYXRhID0gXFx1MDAyNnNhbWE1ZDNtYWNiX2NvbmZpZyB9LFxcbjU3Mzg6XFx0XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJhdG1lbCxzYW1hNWQ0LWdlbVxcXCIsIC5kYXRhID0gXFx1MDAyNnNhbWE1ZDRfY29uZmlnIH0sXFxuNTczOTpcXHRcXHR7IC5jb21wYXRpYmxlID0gXFxcImNkbnMsYXQ5MXJtOTIwMC1lbWFjXFxcIiwgLmRhdGEgPSBcXHUwMDI2ZW1hY19jb25maWcgfSxcXG41NzQwOlxcdFxcdHsgLmNvbXBhdGlibGUgPSBcXFwiY2RucyxlbWFjXFxcIiwgLmRhdGEgPSBcXHUwMDI2ZW1hY19jb25maWcgfSxcXG41NzQxOlxcdFxcdHsgLmNvbXBhdGlibGUgPSBcXFwiY2Rucyx6eW5xbXAtZ2VtXFxcIiwgLmRhdGEgPSBcXHUwMDI2enlucW1wX2NvbmZpZ30sIC8qIGRlcHJlY2F0ZWQgKi9cXG41NzQyOlxcdFxcdHsgLmNvbXBhdGlibGUgPSBcXFwiY2Rucyx6eW5xLWdlbVxcXCIsIC5kYXRhID0gXFx1MDAyNnp5bnFfY29uZmlnIH0sIC8qIGRlcHJlY2F0ZWQgKi9cXG41NzQzOlxcdFxcdHsgLmNvbXBhdGlibGUgPSBcXFwic2lmaXZlLGZ1NTQwLWMwMDAtZ2VtXFxcIiwgLmRhdGEgPSBcXHUwMDI2ZnU1NDBfYzAwMF9jb25maWcgfSxcXG41NzQ0OlxcdFxcdHsgLmNvbXBhdGlibGUgPSBcXFwibWljcm9jaGlwLG1wZnMtbWFjYlxcXCIsIC5kYXRhID0gXFx1MDAyNm1wZnNfY29uZmlnIH0sXFxuNTc0NTpcXHRcXHR7IC5jb21wYXRpYmxlID0gXFxcIm1pY3JvY2hpcCxwaWM2NGhwc2MtZ2VtXFxcIiwgLmRhdGEgPSBcXHUwMDI2cGljNjRocHNjX2NvbmZpZ30sXFxuNTc0NjpcXHRcXHR7IC5jb21wYXRpYmxlID0gXFxcIm1pY3JvY2hpcCxzYW1hN2c1LWdlbVxcXCIsIC5kYXRhID0gXFx1MDAyNnNhbWE3ZzVfZ2VtX2NvbmZpZyB9LFxcbjU3NDc6XFx0XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJtaWNyb2NoaXAsc2FtYTdnNS1lbWFjXFxcIiwgLmRhdGEgPSBcXHUwMDI2c2FtYTdnNV9lbWFjX2NvbmZpZyB9LFxcbjU3NDg6XFx0XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJtb2JpbGV5ZSxleWVxNS1nZW1cXFwiLCAuZGF0YSA9IFxcdTAwMjZleWVxNV9jb25maWcgfSxcXG41NzQ5OlxcdFxcdHsgLmNvbXBhdGlibGUgPSBcXFwicmFzcGJlcnJ5cGkscnAxLWdlbVxcXCIsIC5kYXRhID0gXFx1MDAyNnJhc3BiZXJyeXBpX3JwMV9jb25maWcgfSxcXG41NzUwOlxcdFxcdHsgLmNvbXBhdGlibGUgPSBcXFwieGxueCx6eW5xbXAtZ2VtXFxcIiwgLmRhdGEgPSBcXHUwMDI2enlucW1wX2NvbmZpZ30sXFxuNTc1MTpcXHRcXHR7IC5jb21wYXRpYmxlID0gXFxcInhsbngsenlucS1nZW1cXFwiLCAuZGF0YSA9IFxcdTAwMjZ6eW5xX2NvbmZpZyB9LFxcbjU3NTI6XFx0XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJ4bG54LHZlcnNhbC1nZW1cXFwiLCAuZGF0YSA9IFxcdTAwMjZ2ZXJzYWxfY29uZmlnfSxcXG41NzUzOlxcdFxcdHsgLyogc2VudGluZWwgKi8gfVxcbjU3NTQ6XFx0fTtcXG41NzU1OlxcdE1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG1hY2JfZHRfaWRzKTtcXG41NzU2OlxcdFxcbjU3NTc6XFx0c3RhdGljIGNvbnN0IHN0cnVjdCBtYWNiX2NvbmZpZyBkZWZhdWx0X2dlbV9jb25maWcgPSB7XFxuNTc1ODpcXHRcXHQuY2FwcyA9IE1BQ0JfQ0FQU19HSUdBQklUX01PREVfQVZBSUxBQkxFIHxcXG41NzU5OlxcdFxcdFxcdE1BQ0JfQ0FQU19KVU1CTyB8XFxuNTc2MDpcXHRcXHRcXHRNQUNCX0NBUFNfR0VNX0hBU19QVFAsXFxuNTc2MTpcXHRcXHQuZG1hX2J1cnN0X2xlbmd0aCA9IDE2LFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0zMFQxNjo0MTozNS41MjU3NzU3NTRaIiwiU2VxIjoyMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6NzAwODgxNDU1NDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBGdXp6aW5nIFBvdGVudGlhbCBvZiB0aGUgQ2FkZW5jZSBHRU0gKE1BQ0IpIERyaXZlcioqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gSSdtIGxvb2tpbmcgYXQgcG90ZW50aWFsIGNhbmRpZGF0ZXMgZm9yIGZ1enppbmcsIGFuZCB0aGUgQ2FkZW5jZSBHRU0gKE1BQ0IpIGRyaXZlciBpcyBvbiB0aGUgbGlzdC4gRmlyc3QsIGxldCBtZSByZWNhbGwgdGhlIGNvbW1vbiBTb0NzIHRoaXMgZHJpdmVyIGlzIGFzc29jaWF0ZWQgd2l0aDogU2lGaXZlLCBYaWxpbnggWnlucS9aeW5xTVAvVmVyc2FsLCBDYWRlbmNlLCBhbmQgQXRtZWwuIEkgbmVlZCB0byBxdWlja2x5IGRldGVybWluZSBpZiBhbnkgb2YgdGhlc2UgYXJlIGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgdXNlZCB3aXRoaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLCB3aGljaCBpcyBjcnVjaWFsIGZvciBTeXprYWxsZXIncyBlZmZlY3RpdmVuZXNzLlxuXG5SaWdodCwgUUVNVSBoYXMgbWFjaGluZSB0eXBlcy4gSSByZW1lbWJlciBgeGxueC16Y3UxMDJgLCBgeGxueC12ZXJzYWwtdmlydGAsIGB4aWxpbngtenlucS1hOWAsIGBzaWZpdmVfdWAsIGBtaWNyb2NoaXAtaWNpY2xlLWtpdGAuIEJ1dCBTeXprYWxsZXIgcHJpbWFyaWx5IHRhcmdldHMgeDg2XzY0IGFuZCBhcm02NCwgc3BlY2lmaWNhbGx5IHZpcnR1YWwgbWFjaGluZXMgd2l0aCB2aXJ0aW8sIG9yIGdWaXNvci4gU28sIHdoYXQgc3RhbmRhcmQgZGV2aWNlcyBhcmUgdHlwaWNhbGx5IGZvdW5kIGluIFFFTVUgb3IgR0NFIGZvciBmdXp6aW5nPyBUaGF0J3MgdGhlIGtleS5cblxuTm93LCBJIGhhdmUgdG8gY29uc2lkZXIgdGhlIGluc3RydWN0aW9ucy4gVGhlIGNydWNpYWwgY3JpdGVyaWEgSSBuZWVkIHRvIHVzZSB0byBkZXRlcm1pbmUgaWYgYSBwYXRjaCBpcyBXb3J0aEZ1enppbmcgaXMgdGhlIGZvbGxvd2luZy4gQSBwYXRjaCBzaG91bGQgcmV0dXJuIFwiV29ydGhGdXp6aW5nPWZhbHNlXCIgaWYgaXQgb25seSBjb250YWluczpcbi0gZG9jdW1lbnRhdGlvbiBjaGFuZ2VzXG4tIGNvbmZpZyBmaWxlIG1vZGlmaWNhdGlvbnNcbi0gY29kZSBjb21tZW50c1xuLSBkZWNvcmF0aXZlIGNoYW5nZXMgc3VjaCBhcyBsb2dnaW5nIG9yIHRyYWNlcG9pbnRzXG4tIGNoYW5nZXMgdG8gY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvZXNuJ3QgYWx0ZXIgZXhlY3V0aW9uIGZsb3dcbi0gdW5yZWFjaGFibGUgY29kZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMsIHN1Y2ggYXMgdXNiIGdhZGdldCBvciBtYWM4MDIxMV9od3NpbVxuLSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVVxuLSBkcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuT3RoZXJ3aXNlIGl0J3MgXCJXb3J0aEZ1enppbmc9dHJ1ZVwiIGlmIGEgcGF0Y2ggbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLiBJIG5lZWQgdG8gdmVyaWZ5IHRoYXQgY29kZSBjYW4gYmUgZXhlY3V0ZWQgdXNpbmcgY29kZSBzZWFyY2ggdG9vbHMuXG5cblNvLCBpcyBgbWFjYmAgb3IgYGdlbV9wdHBgIGEgdmVuZG9yLXNwZWNpZmljIGhhcmR3YXJlIGRyaXZlcj8gRG9lcyBpdCByZXF1aXJlIHNwZWNpZmljIGJvYXJkIERUIG5vdCBwcmVzZW50IGluIHN0YW5kYXJkIGZ1enppbmcgZW52aXJvbm1lbnRzICh4ODYvYXJtNjQgdmlydCk/IEkgbXVzdCBpbnZlc3RpZ2F0ZS5cblxuTGV0J3MgY2hlY2suIENhbiBgbWFjYmAgYmUgaW5zdGFudGlhdGVkIHZpYSBQQ0kgaW4gc3RhbmRhcmQgUUVNVT8gU3BlY2lmaWNhbGx5LCBkb2VzIFFFTVUgaGF2ZSBhIFBDSSBDYWRlbmNlIE1BQ0IgZGV2aWNlPyBObywgUUVNVSdzIGBjYWRlbmNlX2dlbWAgaXMgYSBTeXNCdXNEZXZpY2UsIG1lbW9yeSBtYXBwZWQgSS9PIG9uIFp5bnEgLyBWZXJzYWwgLyBTaUZpdmUgVSBTb0MsIG5vdCBhIFBDSSBkZXZpY2UuIFdoYXQgYWJvdXQgYG1hY2JfcGNpYD8gVGhlIFBDSSBJRCAweDE3Y2Q6MHhlMDA3IHBvaW50cyB0byBDYWRlbmNlJ3MgUENJIHRlc3Rib2FyZCAvIEZQR0EgY2FyZCwgd2hpY2ggaXNuJ3QgZW11bGF0ZWQgaW4gUUVNVS4gV2hhdCBhYm91dCBwbGF0Zm9ybSBkZXZpY2VzPyBJbiBzdGFuZGFyZCBRRU1VIHg4Nl82NCAocTM1IC8gcGMpIGFuZCBBUk02NCAoYC1NIHZpcnRgKSwgdGhlcmUncyBubyBDYWRlbmNlIEdFTSAvIE1BQ0Igbm9kZSBkZWZpbmVkIGluIHRoZSBkZXZpY2UgdHJlZSBvciBBQ1BJLlxuXG5DYW4gU3l6a2FsbGVyIGluc3RhbnRpYXRlIHBsYXRmb3JtIGRldmljZXMgdmlhIERldmljZSBUcmVlIG92ZXJsYXlzIG9yIGNvbmZpZ2ZzPyBObywgaXQgcnVucyBvbiBzdGFuZGFyZCBRRU1VIG9yIEdDRSBWTXMsIHdoZXJlIGtlcm5lbCBkZXZpY2VzIGFyZSBBQ1BJLCBQQ0ksIFVTQiwgb3Igc29mdHdhcmUgcHNldWRvIGRldmljZXMuXG5cblRpbWUgdG8gbG9vayBhdCBvdGhlciBuZXR3b3JrIGFuZCBTb0MgZXRoZXJuZXQgZHJpdmVycy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRob3NlIGFyZSBoYW5kbGVkLiBJIHdpbGwgcGVyZm9ybSBhIHNlYXJjaCBpbiB0aGUgcmVwbyBvciBjaGVjayBzaW1pbGFyIGRyaXZlcnMuIElzIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlYCByZWFjaGFibGU/XG5cbkZpbmFsbHksIGxldCdzIGV4cGxvcmUgaWYgdGhlcmUgYXJlIGFueSBtb2NrIG9yIHRlc3QgZnJhbWV3b3JrcyBmb3IgbWFjYiwgb3IgaWYgaXQgaXMgdGllZCB0byBzcGVjaWZpYyBlbWJlZGRlZCBTb0NzIGFuZCBQQ0kgdGVzdCBjYXJkcy4gSXMgdGhlcmUgYSBzdGFuZGFyZCB3YXkgdG8gaW5zdGFudGlhdGUgTUFDQj8gVGhhdCdzIHRoZSBjcml0aWNhbCBxdWVzdGlvbiBJIG5lZWQgdG8gYW5zd2VyLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyOTQyNiwiT3V0cHV0VG9rZW5zIjozMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjkzNiwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMwVDE2OjQyOjQ1LjYxMzkyMzc0OVoiLCJTZXEiOjIyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQzNjgxMzE1NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtYWNiX1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMjU5OCBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnPTQ1PWNvbmZpZyBNQUNCX1BDSVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnLTUxLVxcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlIG1vZHVsZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvS2NvbmZpZzo1MjpcXHQgIHdpbGwgYmUgY2FsbGVkIG1hY2JfcGNpLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvS2NvbmZpZy01My1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvTWFrZWZpbGUtNC0jXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9NYWtlZmlsZTo1Om1hY2IteVxcdDo9IG1hY2JfbWFpbi5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9NYWtlZmlsZS02LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvTWFrZWZpbGU9Nz1pZmVxICgkKENPTkZJR19NQUNCX1VTRV9IV1NUQU1QKSx5KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvTWFrZWZpbGU6ODptYWNiLXlcXHQrPSBtYWNiX3B0cC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9NYWtlZmlsZS05LWVuZGlmXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL01ha2VmaWxlPTExPW9iai0kKENPTkZJR19NQUNCKSArPSBtYWNiLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL01ha2VmaWxlOjEyOm9iai0kKENPTkZJR19NQUNCX1BDSSkgKz0gbWFjYl9wY2kub1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtODIwLS8qIFJlZ2lzdGVyIGFjY2VzcyBtYWNyb3MgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4MjE6I2RlZmluZSBtYWNiX3JlYWRsKHBvcnQsIHJlZylcXHRcXHQocG9ydCktXFx1MDAzZW1hY2JfcmVnX3JlYWRsKChwb3J0KSwgTUFDQl8jI3JlZylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4MjI6I2RlZmluZSBtYWNiX3dyaXRlbChwb3J0LCByZWcsIHZhbHVlKVxcdChwb3J0KS1cXHUwMDNlbWFjYl9yZWdfd3JpdGVsKChwb3J0KSwgTUFDQl8jI3JlZywgKHZhbHVlKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4MjM6I2RlZmluZSBnZW1fcmVhZGwocG9ydCwgcmVnKVxcdFxcdChwb3J0KS1cXHUwMDNlbWFjYl9yZWdfcmVhZGwoKHBvcnQpLCBHRU1fIyNyZWcpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODI0OiNkZWZpbmUgZ2VtX3dyaXRlbChwb3J0LCByZWcsIHZhbHVlKVxcdChwb3J0KS1cXHUwMDNlbWFjYl9yZWdfd3JpdGVsKChwb3J0KSwgR0VNXyMjcmVnLCAodmFsdWUpKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjgyNTojZGVmaW5lIHF1ZXVlX3JlYWRsKHF1ZXVlLCByZWcpXFx0XFx0KHF1ZXVlKS1cXHUwMDNlYnAtXFx1MDAzZW1hY2JfcmVnX3JlYWRsKChxdWV1ZSktXFx1MDAzZWJwLCAocXVldWUpLVxcdTAwM2VyZWcpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODI2OiNkZWZpbmUgcXVldWVfd3JpdGVsKHF1ZXVlLCByZWcsIHZhbHVlKVxcdChxdWV1ZSktXFx1MDAzZWJwLVxcdTAwM2VtYWNiX3JlZ193cml0ZWwoKHF1ZXVlKS1cXHUwMDNlYnAsIChxdWV1ZSktXFx1MDAzZXJlZywgKHZhbHVlKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4Mjc6I2RlZmluZSBnZW1fcmVhZGxfbihwb3J0LCByZWcsIGlkeClcXHRcXHQocG9ydCktXFx1MDAzZW1hY2JfcmVnX3JlYWRsKChwb3J0KSwgR0VNXyMjcmVnICsgaWR4ICogNClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4Mjg6I2RlZmluZSBnZW1fd3JpdGVsX24ocG9ydCwgcmVnLCBpZHgsIHZhbHVlKVxcdChwb3J0KS1cXHUwMDNlbWFjYl9yZWdfd3JpdGVsKChwb3J0KSwgR0VNXyMjcmVnICsgaWR4ICogNCwgKHZhbHVlKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC04MjktXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC04MzEtICogcmVnaXN0ZXIgZGVwZW5kZW50IG9uIHdoZXRoZXIgdGhlIGRldmljZSBpcyBhIEdFTSBvciBhIE1BQ0IuICBGb3IgcmVnaXN0ZXJzXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODMyOiAqIGFuZCBiaXRmaWVsZHMgdGhhdCBhcmUgY29tbW9uIGFjcm9zcyBib3RoIGRldmljZXMsIHVzZSBtYWNiX3tyZWFkLHdyaXRlfWxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC04MzMtICogdG8gYXZvaWQgdGhlIGNvc3Qgb2YgdGhlIGNvbmRpdGlvbmFsLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTgzNC0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4MzU6I2RlZmluZSBtYWNiX29yX2dlbV93cml0ZWwoX19icCwgX19yZWcsIF9fdmFsdWUpIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC04MzYtXFx0KHsgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjgzNzpcXHRcXHRpZiAobWFjYl9pc19nZW0oKF9fYnApKSkgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTgzOC1cXHRcXHRcXHRnZW1fd3JpdGVsKChfX2JwKSwgX19yZWcsIF9fdmFsdWUpOyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtODM5LVxcdFxcdGVsc2UgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjg0MDpcXHRcXHRcXHRtYWNiX3dyaXRlbCgoX19icCksIF9fcmVnLCBfX3ZhbHVlKTsgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTg0MS1cXHR9KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTg0Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4NDM6I2RlZmluZSBtYWNiX29yX2dlbV9yZWFkbChfX2JwLCBfX3JlZykgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTg0NC1cXHQoeyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtODQ1LVxcdFxcdHUzMiBfX3Y7IFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4NDY6XFx0XFx0aWYgKG1hY2JfaXNfZ2VtKChfX2JwKSkpIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC04NDctXFx0XFx0XFx0X192ID0gZ2VtX3JlYWRsKChfX2JwKSwgX19yZWcpOyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtODQ4LVxcdFxcdGVsc2UgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjg0OTpcXHRcXHRcXHRfX3YgPSBtYWNiX3JlYWRsKChfX2JwKSwgX19yZWcpOyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtODUwLVxcdFxcdF9fdjsgXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtODUyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjg1MzojZGVmaW5lIE1BQ0JfUkVBRF9OU1IoYnApXFx0bWFjYl9yZWFkbChicCwgTlNSKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTg1NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4NTU6Lyogc3RydWN0IG1hY2JfZG1hX2Rlc2MgLSBIYXJkd2FyZSBETUEgZGVzY3JpcHRvclxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTg1Ni0gKiBAYWRkcjogRE1BIGFkZHJlc3Mgb2YgZGF0YSBidWZmZXJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTg1OC0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4NTk6c3RydWN0IG1hY2JfZG1hX2Rlc2Mge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTg2MC1cXHR1MzJcXHRhZGRyO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtODYzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjg2NDpzdHJ1Y3QgbWFjYl9kbWFfZGVzY182NCB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtODY1LVxcdHUzMiBhZGRyaDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTg2OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4Njk6c3RydWN0IG1hY2JfZG1hX2Rlc2NfcHRwIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC04NzAtXFx0dTMyXFx0dHNfMTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTk2NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5NjY6Lyogc3RydWN0IG1hY2JfdHhfc2tiIC0gZGF0YSBhYm91dCBhbiBza2Igd2hpY2ggaXMgYmVpbmcgdHJhbnNtaXR0ZWRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC05NjctICogQHNrYjogc2tiIGN1cnJlbnRseSBiZWluZyB0cmFuc21pdHRlZCwgb25seSBzZXQgZm9yIHRoZSBsYXN0IGJ1ZmZlclxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtOTczLSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjk3NDpzdHJ1Y3QgbWFjYl90eF9za2Ige1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTk3NS1cXHRzdHJ1Y3Qgc2tfYnVmZlxcdFxcdCpza2I7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC05ODMtICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6OTg0OnN0cnVjdCBtYWNiX3N0YXRzIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC05ODUtXFx0dTY0XFx0cnhfcGF1c2VfZnJhbWVzO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg9MTE5MT1zdHJ1Y3QgbWFjYjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxMTkyOnN0cnVjdCBtYWNiX3F1ZXVlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTExOTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTE5NDpzdHJ1Y3QgbWFjYl9vcl9nZW1fb3BzIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMTk1LVxcdGludFxcdCgqbW9nX2FsbG9jX3J4X2J1ZmZlcnMpKHN0cnVjdCBtYWNiICpicCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMTk3LVxcdHZvaWRcXHQoKm1vZ19pbml0X3JpbmdzKShzdHJ1Y3QgbWFjYiAqYnApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjExOTg6XFx0aW50XFx0KCptb2dfcngpKHN0cnVjdCBtYWNiX3F1ZXVlICpxdWV1ZSwgc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTExOTktXFx0XFx0XFx0ICBpbnQgYnVkZ2V0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEyMDItLyogTUFDQi1QVFAgaW50ZXJmYWNlOiBhZGFwdCB0byBwbGF0Zm9ybSBuZWVkcy4gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxMjAzOnN0cnVjdCBtYWNiX3B0cF9pbmZvIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMjA0LVxcdHZvaWQgKCpwdHBfaW5pdCkoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMjE2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjEyMTc6c3RydWN0IG1hY2JfcG1fZGF0YSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTIxOC1cXHR1MzIgc2NydDI7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMjIxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjEyMjI6c3RydWN0IG1hY2JfdXNyaW9fY29uZmlnIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMjIzLVxcdHUzMiBtaWk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMjMyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjEyMzM6c3RydWN0IG1hY2JfY29uZmlnIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMjM0LVxcdHUzMlxcdFxcdFxcdGNhcHM7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMjQxLVxcdGludFxcdGp1bWJvX21heF9sZW47XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTI0MjpcXHRjb25zdCBzdHJ1Y3QgbWFjYl91c3Jpb19jb25maWcgKnVzcmlvO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEyNDMtfTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oPTEyNDU9c3RydWN0IHRzdV9pbmNyIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEyNDktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTI1MDpzdHJ1Y3QgbWFjYl9xdWV1ZSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTI1MS1cXHRzdHJ1Y3QgbWFjYlxcdFxcdCpicDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEyNjktXFx0dW5zaWduZWQgaW50XFx0XFx0dHhfaGVhZCwgdHhfdGFpbDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxMjcwOlxcdHN0cnVjdCBtYWNiX2RtYV9kZXNjXFx0KnR4X3Jpbmc7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTI3MTpcXHRzdHJ1Y3QgbWFjYl90eF9za2JcXHQqdHhfc2tiO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEyNzItXFx0ZG1hX2FkZHJfdFxcdFxcdHR4X3JpbmdfZG1hO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTI4MC1cXHR1bnNpZ25lZCBpbnRcXHRcXHRyeF9wcmVwYXJlZF9oZWFkO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjEyODE6XFx0c3RydWN0IG1hY2JfZG1hX2Rlc2NcXHQqcnhfcmluZztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMjgyLVxcdHN0cnVjdCBza19idWZmXFx0XFx0KipyeF9za2J1ZmY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaD0xMjk4PXN0cnVjdCBtYWNiIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEzMDItXFx0LyogaGFyZHdhcmUgSU8gYWNjZXNzb3JzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTMwMzpcXHR1MzJcXHQoKm1hY2JfcmVnX3JlYWRsKShzdHJ1Y3QgbWFjYiAqYnAsIGludCBvZmZzZXQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjEzMDQ6XFx0dm9pZFxcdCgqbWFjYl9yZWdfd3JpdGVsKShzdHJ1Y3QgbWFjYiAqYnAsIGludCBvZmZzZXQsIHUzMiB2YWx1ZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTMwNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxMzA2OlxcdHN0cnVjdCBtYWNiX2RtYV9kZXNjXFx0KnJ4X3JpbmdfdGllb2ZmO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEzMDctXFx0ZG1hX2FkZHJfdFxcdFxcdHJ4X3JpbmdfdGllb2ZmX2RtYTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEzMTMtXFx0dW5zaWduZWQgaW50XFx0XFx0bnVtX3F1ZXVlcztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxMzE0OlxcdHN0cnVjdCBtYWNiX3F1ZXVlXFx0cXVldWVzW01BQ0JfTUFYX1FVRVVFU107XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTMxNS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEzMjYtXFx0dW5pb24ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjEzMjc6XFx0XFx0c3RydWN0IG1hY2Jfc3RhdHNcXHRtYWNiO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEzMjgtXFx0XFx0c3RydWN0IGdlbV9zdGF0c1xcdGdlbTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEzMzAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTMzMTpcXHRzdHJ1Y3QgbWFjYl9vcl9nZW1fb3BzXFx0bWFjYmdlbV9vcHM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTMzMi1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEzNDQtXFx0LyogQVQ5MVJNOTIwMCB0cmFuc21pdCBxdWV1ZSAoMSBvbiB3aXJlICsgMSBxdWV1ZWQpICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTM0NTpcXHRzdHJ1Y3QgbWFjYl90eF9za2JcXHRybTkyMDBfdHhxWzJdO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEzNDYtXFx0dW5zaWduZWQgaW50XFx0XFx0bWF4X3R4X2xlbmd0aDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEzNTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTM1OTpcXHRzdHJ1Y3QgbWFjYl9wdHBfaW5mb1xcdCpwdHBfaW5mbztcXHQvKiBtYWNiLXB0cCBpbnRlcmZhY2UgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMzYwLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTM4Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxMzg3OlxcdHN0cnVjdCBtYWNiX3BtX2RhdGEgcG1fZGF0YTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxMzg4OlxcdGNvbnN0IHN0cnVjdCBtYWNiX3VzcmlvX2NvbmZpZyAqdXNyaW87XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTM4OS19O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTM5NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxMzk2OmVudW0gbWFjYl9iZF9jb250cm9sIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMzk3LVxcdFRTVEFNUF9ESVNBQkxFRCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oPTE0MDQ9dm9pZCBnZW1fcHRwX3JlbW92ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxNDA1OnZvaWQgZ2VtX3B0cF90eHN0YW1wKHN0cnVjdCBtYWNiICpicCwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG1hY2JfZG1hX2Rlc2MgKmRlc2MpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjE0MDY6dm9pZCBnZW1fcHRwX3J4c3RhbXAoc3RydWN0IG1hY2IgKmJwLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbWFjYl9kbWFfZGVzYyAqZGVzYyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTQwNzpzdGF0aWMgaW5saW5lIHZvaWQgZ2VtX3B0cF9kb190eHN0YW1wKHN0cnVjdCBtYWNiICpicCwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG1hY2JfZG1hX2Rlc2MgKmRlc2MpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTQwOC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xNDE0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjE0MTU6c3RhdGljIGlubGluZSB2b2lkIGdlbV9wdHBfZG9fcnhzdGFtcChzdHJ1Y3QgbWFjYiAqYnAsIHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBtYWNiX2RtYV9kZXNjICpkZXNjKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTE0MTYte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg9MTQzMD1zdGF0aWMgaW5saW5lIHZvaWQgZ2VtX3B0cF9yZW1vdmUoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldikgeyB9XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTQzMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxNDMyOnN0YXRpYyBpbmxpbmUgdm9pZCBnZW1fcHRwX2RvX3R4c3RhbXAoc3RydWN0IG1hY2IgKmJwLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbWFjYl9kbWFfZGVzYyAqZGVzYykgeyB9XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTQzMzpzdGF0aWMgaW5saW5lIHZvaWQgZ2VtX3B0cF9kb19yeHN0YW1wKHN0cnVjdCBtYWNiICpicCwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG1hY2JfZG1hX2Rlc2MgKmRlc2MpIHsgfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTE0MzQtI2VuZGlmXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTQzNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxNDM2OnN0YXRpYyBpbmxpbmUgYm9vbCBtYWNiX2lzX2dlbShzdHJ1Y3QgbWFjYiAqYnApXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTQzNy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaD0xNDUzPXN0YXRpYyBpbmxpbmUgdTY0IGVuc3RfbWF4X2h3X2ludGVydmFsKHUzMiBzcGVlZF9tYnBzKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTQ1OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxNDU5OnN0YXRpYyBpbmxpbmUgYm9vbCBtYWNiX2RtYTY0KHN0cnVjdCBtYWNiICpicClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xNDYwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTE0NjQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTQ2NTpzdGF0aWMgaW5saW5lIGJvb2wgbWFjYl9kbWFfcHRwKHN0cnVjdCBtYWNiICpicClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xNDY2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTE0NzAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTQ3MTpzdGF0aWMgaW5saW5lIHZvaWQgbWFjYl9xdWV1ZV9pc3JfY2xlYXIoc3RydWN0IG1hY2IgKmJwLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjE0NzI6XFx0XFx0XFx0XFx0XFx0c3RydWN0IG1hY2JfcXVldWUgKnF1ZXVlLCB1MzIgdmFsdWUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTQ3My17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xNDc4LS8qKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjE0Nzk6ICogc3RydWN0IG1hY2JfcGxhdGZvcm1fZGF0YSAtIHBsYXRmb3JtIGRhdGEgZm9yIE1BQ0IgRXRoZXJuZXQgdXNlZCBmb3IgUENJIHJlZ2lzdHJhdGlvblxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTE0ODAtICogQHBjbGs6XFx0XFx0cGxhdGZvcm0gY2xvY2tcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTE0ODItICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTQ4MzpzdHJ1Y3QgbWFjYl9wbGF0Zm9ybV9kYXRhIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xNDg0LVxcdHN0cnVjdCBjbGtcXHQqcGNsaztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTE0ODgtLyoqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTQ4OTogKiBzdHJ1Y3QgbWFjYl9xdWV1ZV9lbnN0X2NvbmZpZyAtIENvbmZpZ3VyYXRpb24gZm9yIEVuaGFuY2VkIFNjaGVkdWxlZCBUcmFmZmljXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTQ5MC0gKiBAc3RhcnRfdGltZV9tYXNrOiAgQml0bWFzayByZXByZXNlbnRpbmcgdGhlIHN0YXJ0IHRpbWUgZm9yIHRoZSBxdWV1ZVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTQ5Ny0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxNDk4OnN0cnVjdCBtYWNiX3F1ZXVlX2Vuc3RfY29uZmlnIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xNDk5LVxcdHUzMiBzdGFydF90aW1lX21hc2s7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTQ0LS8qIFRoaXMgc3RydWN0dXJlIGlzIG9ubHkgdXNlZCBmb3IgTUFDQiBvbiBTaUZpdmUgRlU1NDAgZGV2aWNlcyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NDU6c3RydWN0IHNpZml2ZV9mdTU0MF9tYWNiX21nbXQge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNDYtXFx0dm9pZCBfX2lvbWVtICpyZWc7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTEyOC0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjEyOTpzdGF0aWMgdW5zaWduZWQgaW50IG1hY2JfZG1hX2Rlc2NfZ2V0X3NpemUoc3RydWN0IG1hY2IgKmJwKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTMwLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjEzMTpcXHR1bnNpZ25lZCBpbnQgZGVzY19zaXplID0gc2l6ZW9mKHN0cnVjdCBtYWNiX2RtYV9kZXNjKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTEzMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjEzMzpcXHRpZiAobWFjYl9kbWE2NChicCkpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxMzQ6XFx0XFx0ZGVzY19zaXplICs9IHNpemVvZihzdHJ1Y3QgbWFjYl9kbWFfZGVzY182NCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxMzU6XFx0aWYgKG1hY2JfZG1hX3B0cChicCkpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxMzY6XFx0XFx0ZGVzY19zaXplICs9IHNpemVvZihzdHJ1Y3QgbWFjYl9kbWFfZGVzY19wdHApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTM3LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0xNDAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxNDE6c3RhdGljIHVuc2lnbmVkIGludCBtYWNiX2Fkal9kbWFfZGVzY19pZHgoc3RydWN0IG1hY2IgKmJwLCB1bnNpZ25lZCBpbnQgZGVzY19pZHgpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0xNDIte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MTQzOlxcdHJldHVybiBkZXNjX2lkeCAqICgxICsgbWFjYl9kbWE2NChicCkgKyBtYWNiX2RtYV9wdHAoYnApKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTE0NC19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0xNDUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxNDY6c3RhdGljIHN0cnVjdCBtYWNiX2RtYV9kZXNjXzY0ICptYWNiXzY0Yl9kZXNjKHN0cnVjdCBtYWNiICpicCwgc3RydWN0IG1hY2JfZG1hX2Rlc2MgKmRlc2MpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0xNDcte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MTQ4OlxcdHJldHVybiAoc3RydWN0IG1hY2JfZG1hX2Rlc2NfNjQgKikoKHZvaWQgKilkZXNjXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxNDk6XFx0XFx0KyBzaXplb2Yoc3RydWN0IG1hY2JfZG1hX2Rlc2MpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTE1MC19XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTE1Mi0vKiBSaW5nIGJ1ZmZlciBhY2Nlc3NvcnMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjE1MzpzdGF0aWMgdW5zaWduZWQgaW50IG1hY2JfdHhfcmluZ193cmFwKHN0cnVjdCBtYWNiICpicCwgdW5zaWduZWQgaW50IGluZGV4KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTU0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTU3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MTU4OnN0YXRpYyBzdHJ1Y3QgbWFjYl9kbWFfZGVzYyAqbWFjYl90eF9kZXNjKHN0cnVjdCBtYWNiX3F1ZXVlICpxdWV1ZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTE1OS1cXHRcXHRcXHRcXHRcXHQgIHVuc2lnbmVkIGludCBpbmRleClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTE2MC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxNjE6XFx0aW5kZXggPSBtYWNiX3R4X3Jpbmdfd3JhcChxdWV1ZS1cXHUwMDNlYnAsIGluZGV4KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjE2MjpcXHRpbmRleCA9IG1hY2JfYWRqX2RtYV9kZXNjX2lkeChxdWV1ZS1cXHUwMDNlYnAsIGluZGV4KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTE2My1cXHRyZXR1cm4gXFx1MDAyNnF1ZXVlLVxcdTAwM2V0eF9yaW5nW2luZGV4XTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTY1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MTY2OnN0YXRpYyBzdHJ1Y3QgbWFjYl90eF9za2IgKm1hY2JfdHhfc2tiKHN0cnVjdCBtYWNiX3F1ZXVlICpxdWV1ZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTE2Ny1cXHRcXHRcXHRcXHQgICAgICAgdW5zaWduZWQgaW50IGluZGV4KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTY4LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjE2OTpcXHRyZXR1cm4gXFx1MDAyNnF1ZXVlLVxcdTAwM2V0eF9za2JbbWFjYl90eF9yaW5nX3dyYXAocXVldWUtXFx1MDAzZWJwLCBpbmRleCldO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTcwLX1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTE3MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjE3MjpzdGF0aWMgZG1hX2FkZHJfdCBtYWNiX3R4X2RtYShzdHJ1Y3QgbWFjYl9xdWV1ZSAqcXVldWUsIHVuc2lnbmVkIGludCBpbmRleClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTE3My17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTE3NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjE3NjpcXHRvZmZzZXQgPSBtYWNiX3R4X3Jpbmdfd3JhcChxdWV1ZS1cXHUwMDNlYnAsIGluZGV4KSAqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxNzc6XFx0XFx0XFx0bWFjYl9kbWFfZGVzY19nZXRfc2l6ZShxdWV1ZS1cXHUwMDNlYnApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTc4LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0xODEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxODI6c3RhdGljIHVuc2lnbmVkIGludCBtYWNiX3J4X3Jpbmdfd3JhcChzdHJ1Y3QgbWFjYiAqYnAsIHVuc2lnbmVkIGludCBpbmRleClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTE4My17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTE4Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjE4NzpzdGF0aWMgc3RydWN0IG1hY2JfZG1hX2Rlc2MgKm1hY2JfcnhfZGVzYyhzdHJ1Y3QgbWFjYl9xdWV1ZSAqcXVldWUsIHVuc2lnbmVkIGludCBpbmRleClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTE4OC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxODk6XFx0aW5kZXggPSBtYWNiX3J4X3Jpbmdfd3JhcChxdWV1ZS1cXHUwMDNlYnAsIGluZGV4KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjE5MDpcXHRpbmRleCA9IG1hY2JfYWRqX2RtYV9kZXNjX2lkeChxdWV1ZS1cXHUwMDNlYnAsIGluZGV4KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTE5MS1cXHRyZXR1cm4gXFx1MDAyNnF1ZXVlLVxcdTAwM2VyeF9yaW5nW2luZGV4XTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTkzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MTk0OnN0YXRpYyB2b2lkICptYWNiX3J4X2J1ZmZlcihzdHJ1Y3QgbWFjYl9xdWV1ZSAqcXVldWUsIHVuc2lnbmVkIGludCBpbmRleClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTE5NS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0xOTYtXFx0cmV0dXJuIHF1ZXVlLVxcdTAwM2VyeF9idWZmZXJzICsgcXVldWUtXFx1MDAzZWJwLVxcdTAwM2VyeF9idWZmZXJfc2l6ZSAqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxOTc6XFx0ICAgICAgIG1hY2JfcnhfcmluZ193cmFwKHF1ZXVlLVxcdTAwM2VicCwgaW5kZXgpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTk4LX1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM9MjM4PXN0YXRpYyBib29sIGh3X2lzX2dlbSh2b2lkIF9faW9tZW0gKmFkZHIsIGJvb2wgbmF0aXZlX2lvKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0yNDktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoyNTA6c3RhdGljIHZvaWQgbWFjYl9zZXRfaHdhZGRyKHN0cnVjdCBtYWNiICpicClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTI1MS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTI1NS1cXHRib3R0b20gPSBnZXRfdW5hbGlnbmVkX2xlMzIoYnAtXFx1MDAzZW5ldGRldi1cXHUwMDNlZGV2X2FkZHIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MjU2OlxcdG1hY2Jfb3JfZ2VtX3dyaXRlbChicCwgU0ExQiwgYm90dG9tKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTI1Ny1cXHR0b3AgPSBnZXRfdW5hbGlnbmVkX2xlMTYoYnAtXFx1MDAzZW5ldGRldi1cXHUwMDNlZGV2X2FkZHIgKyA0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjI1ODpcXHRtYWNiX29yX2dlbV93cml0ZWwoYnAsIFNBMVQsIHRvcCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0yNTktXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTI2NS1cXHQvKiBDbGVhciB1bnVzZWQgYWRkcmVzcyByZWdpc3RlciBzZXRzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoyNjY6XFx0bWFjYl9vcl9nZW1fd3JpdGVsKGJwLCBTQTJCLCAwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjI2NzpcXHRtYWNiX29yX2dlbV93cml0ZWwoYnAsIFNBMlQsIDApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MjY4OlxcdG1hY2Jfb3JfZ2VtX3dyaXRlbChicCwgU0EzQiwgMCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoyNjk6XFx0bWFjYl9vcl9nZW1fd3JpdGVsKGJwLCBTQTNULCAwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjI3MDpcXHRtYWNiX29yX2dlbV93cml0ZWwoYnAsIFNBNEIsIDApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MjcxOlxcdG1hY2Jfb3JfZ2VtX3dyaXRlbChicCwgU0E0VCwgMCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0yNzItfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMjczLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6Mjc0OnN0YXRpYyB2b2lkIG1hY2JfZ2V0X2h3YWRkcihzdHJ1Y3QgbWFjYiAqYnApXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0yNzUte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0yODItXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIDQ7IGkrKykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MjgzOlxcdFxcdGJvdHRvbSA9IG1hY2Jfb3JfZ2VtX3JlYWRsKGJwLCBTQTFCICsgaSAqIDgpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6Mjg0OlxcdFxcdHRvcCA9IG1hY2Jfb3JfZ2VtX3JlYWRsKGJwLCBTQTFUICsgaSAqIDgpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMjg1LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0zMDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzozMDM6c3RhdGljIGludCBtYWNiX21kaW9fd2FpdF9mb3JfaWRsZShzdHJ1Y3QgbWFjYiAqYnApXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0zMDQte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0zMTAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzozMTE6c3RhdGljIGludCBtYWNiX21kaW9fcmVhZF9jMjIoc3RydWN0IG1paV9idXMgKmJ1cywgaW50IG1paV9pZCwgaW50IHJlZ251bSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTMxMi17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTMxOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjMyMDpcXHRzdGF0dXMgPSBtYWNiX21kaW9fd2FpdF9mb3JfaWRsZShicCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0zMjEtXFx0aWYgKHN0YXR1cyBcXHUwMDNjIDApXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTMyMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjMyNDpcXHRtYWNiX3dyaXRlbChicCwgTUFOLCAoTUFDQl9CRihTT0YsIE1BQ0JfTUFOX0MyMl9TT0YpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0zMjUtXFx0XFx0XFx0ICAgICAgfCBNQUNCX0JGKFJXLCBNQUNCX01BTl9DMjJfUkVBRClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMzI5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MzMwOlxcdHN0YXR1cyA9IG1hY2JfbWRpb193YWl0X2Zvcl9pZGxlKGJwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTMzMS1cXHRpZiAoc3RhdHVzIFxcdTAwM2MgMClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMzMzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MzM0OlxcdHN0YXR1cyA9IE1BQ0JfQkZFWFQoREFUQSwgbWFjYl9yZWFkbChicCwgTUFOKSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0zMzUtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTM0MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjM0MjpzdGF0aWMgaW50IG1hY2JfbWRpb19yZWFkX2M0NShzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgbWlpX2lkLCBpbnQgZGV2YWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0zNDMtXFx0XFx0XFx0ICAgICAgaW50IHJlZ251bSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMzUzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MzU0OlxcdHN0YXR1cyA9IG1hY2JfbWRpb193YWl0X2Zvcl9pZGxlKGJwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTM1NS1cXHRpZiAoc3RhdHVzIFxcdTAwM2MgMClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMzU3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MzU4OlxcdG1hY2Jfd3JpdGVsKGJwLCBNQU4sIChNQUNCX0JGKFNPRiwgTUFDQl9NQU5fQzQ1X1NPRilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTM1OS1cXHRcXHRcXHQgICAgICB8IE1BQ0JfQkYoUlcsIE1BQ0JfTUFOX0M0NV9BRERSKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0zNjQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzozNjU6XFx0c3RhdHVzID0gbWFjYl9tZGlvX3dhaXRfZm9yX2lkbGUoYnApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMzY2LVxcdGlmIChzdGF0dXMgXFx1MDAzYyAwKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0zNjgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzozNjk6XFx0bWFjYl93cml0ZWwoYnAsIE1BTiwgKE1BQ0JfQkYoU09GLCBNQUNCX01BTl9DNDVfU09GKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMzcwLVxcdFxcdFxcdCAgICAgIHwgTUFDQl9CRihSVywgTUFDQl9NQU5fQzQ1X1JFQUQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTM3NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjM3NTpcXHRzdGF0dXMgPSBtYWNiX21kaW9fd2FpdF9mb3JfaWRsZShicCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0zNzYtXFx0aWYgKHN0YXR1cyBcXHUwMDNjIDApXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTM3OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjM3OTpcXHRzdGF0dXMgPSBNQUNCX0JGRVhUKERBVEEsIG1hY2JfcmVhZGwoYnAsIE1BTikpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMzgwLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0zODYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzozODc6c3RhdGljIGludCBtYWNiX21kaW9fd3JpdGVfYzIyKHN0cnVjdCBtaWlfYnVzICpidXMsIGludCBtaWlfaWQsIGludCByZWdudW0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0zODgtXFx0XFx0XFx0ICAgICAgIHUxNiB2YWx1ZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMzk2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6Mzk3OlxcdHN0YXR1cyA9IG1hY2JfbWRpb193YWl0X2Zvcl9pZGxlKGJwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTM5OC1cXHRpZiAoc3RhdHVzIFxcdTAwM2MgMClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNDAwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NDAxOlxcdG1hY2Jfd3JpdGVsKGJwLCBNQU4sIChNQUNCX0JGKFNPRiwgTUFDQl9NQU5fQzIyX1NPRilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTQwMi1cXHRcXHRcXHQgICAgICB8IE1BQ0JfQkYoUlcsIE1BQ0JfTUFOX0MyMl9XUklURSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNDA3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NDA4OlxcdHN0YXR1cyA9IG1hY2JfbWRpb193YWl0X2Zvcl9pZGxlKGJwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTQwOS1cXHRpZiAoc3RhdHVzIFxcdTAwM2MgMClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNDE3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NDE4OnN0YXRpYyBpbnQgbWFjYl9tZGlvX3dyaXRlX2M0NShzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgbWlpX2lkLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNDE5LVxcdFxcdFxcdCAgICAgICBpbnQgZGV2YWQsIGludCByZWdudW0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTQzMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjQzMTpcXHRzdGF0dXMgPSBtYWNiX21kaW9fd2FpdF9mb3JfaWRsZShicCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy00MzItXFx0aWYgKHN0YXR1cyBcXHUwMDNjIDApXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTQzNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjQzNTpcXHRtYWNiX3dyaXRlbChicCwgTUFOLCAoTUFDQl9CRihTT0YsIE1BQ0JfTUFOX0M0NV9TT0YpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy00MzYtXFx0XFx0XFx0ICAgICAgfCBNQUNCX0JGKFJXLCBNQUNCX01BTl9DNDVfQUREUilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNDQxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NDQyOlxcdHN0YXR1cyA9IG1hY2JfbWRpb193YWl0X2Zvcl9pZGxlKGJwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTQ0My1cXHRpZiAoc3RhdHVzIFxcdTAwM2MgMClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNDQ1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NDQ2OlxcdG1hY2Jfd3JpdGVsKGJwLCBNQU4sIChNQUNCX0JGKFNPRiwgTUFDQl9NQU5fQzQ1X1NPRilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTQ0Ny1cXHRcXHRcXHQgICAgICB8IE1BQ0JfQkYoUlcsIE1BQ0JfTUFOX0M0NV9XUklURSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNDUyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NDUzOlxcdHN0YXR1cyA9IG1hY2JfbWRpb193YWl0X2Zvcl9pZGxlKGJwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTQ1NC1cXHRpZiAoc3RhdHVzIFxcdTAwM2MgMClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNDYyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NDYzOnN0YXRpYyB2b2lkIG1hY2JfaW5pdF9idWZmZXJzKHN0cnVjdCBtYWNiICpicClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTQ2NC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo0NjU6XFx0c3RydWN0IG1hY2JfcXVldWUgKnF1ZXVlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNDY2LVxcdHVuc2lnbmVkIGludCBxO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy00NjgtXFx0LyogU2luZ2xlIHJlZ2lzdGVyIGZvciBhbGwgcXVldWVzJyBoaWdoIDMyIGJpdHMuICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo0Njk6XFx0aWYgKG1hY2JfZG1hNjQoYnApKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo0NzA6XFx0XFx0bWFjYl93cml0ZWwoYnAsIFJCUVBILFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNDcxLVxcdFxcdFxcdCAgICB1cHBlcl8zMl9iaXRzKGJwLVxcdTAwM2VxdWV1ZXNbMF0ucnhfcmluZ19kbWEpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjQ3MjpcXHRcXHRtYWNiX3dyaXRlbChicCwgVEJRUEgsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy00NzMtXFx0XFx0XFx0ICAgIHVwcGVyXzMyX2JpdHMoYnAtXFx1MDAzZXF1ZXVlc1swXS50eF9yaW5nX2RtYSkpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy00ODItLyoqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo0ODM6ICogbWFjYl9zZXRfdHhfY2xrKCkgLSBTZXQgYSBjbG9jayB0byBhIG5ldyBmcmVxdWVuY3lcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTQ4NC0gKiBAYnA6XFx0XFx0cG9pbnRlciB0byBzdHJ1Y3QgbWFjYlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy00ODYtICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo0ODc6c3RhdGljIHZvaWQgbWFjYl9zZXRfdHhfY2xrKHN0cnVjdCBtYWNiICpicCwgaW50IHNwZWVkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNDg4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNTE5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NTIwOnN0YXRpYyB2b2lkIG1hY2JfdXN4X3Bjc19saW5rX3VwKHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzLCB1bnNpZ25lZCBpbnQgbmVnX21vZGUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy01MjEtXFx0XFx0XFx0XFx0IHBoeV9pbnRlcmZhY2VfdCBpbnRlcmZhY2UsIGludCBzcGVlZCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNTM0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NTM1OnN0YXRpYyB2b2lkIG1hY2JfdXN4X3Bjc19nZXRfc3RhdGUoc3RydWN0IHBoeWxpbmtfcGNzICpwY3MsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy01MzYtXFx0XFx0XFx0XFx0ICAgdW5zaWduZWQgaW50IG5lZ19tb2RlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy01NTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo1NTM6c3RhdGljIGludCBtYWNiX3VzeF9wY3NfY29uZmlnKHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNTU0LVxcdFxcdFxcdCAgICAgICB1bnNpZ25lZCBpbnQgbmVnX21vZGUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTU2Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjU2NzpzdGF0aWMgdW5zaWduZWQgaW50IG1hY2JfcGNzX2luYmFuZF9jYXBzKHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNTY4LVxcdFxcdFxcdFxcdFxcdCBwaHlfaW50ZXJmYWNlX3QgaW50ZXJmYWNlKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy01NzItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo1NzM6c3RhdGljIHZvaWQgbWFjYl9wY3NfZ2V0X3N0YXRlKHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzLCB1bnNpZ25lZCBpbnQgbmVnX21vZGUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy01NzQtXFx0XFx0XFx0ICAgICAgIHN0cnVjdCBwaHlsaW5rX2xpbmtfc3RhdGUgKnN0YXRlKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy01ODMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo1ODQ6c3RhdGljIHZvaWQgbWFjYl9wY3NfYW5fcmVzdGFydChzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTU4NS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTU4OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjU4OTpzdGF0aWMgaW50IG1hY2JfcGNzX2NvbmZpZyhzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTU5MC1cXHRcXHRcXHQgICB1bnNpZ25lZCBpbnQgbmVnX21vZGUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTYwNC1cXHQgKiBNdXN0IGJlIHdyaXR0ZW4gYWZ0ZXIgUENTU0VMIGlzIHNldCBpbiBOQ0ZHUiB3aGljaCBpcyBkb25lIGluXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo2MDU6XFx0ICogbWFjYl9tYWNfY29uZmlnKCksIG90aGVyd2lzZSB3cml0ZXMgd2lsbCBub3QgdGFrZSBlZmZlY3QuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy02MDYtXFx0ICovXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTYxNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjYxODpzdGF0aWMgY29uc3Qgc3RydWN0IHBoeWxpbmtfcGNzX29wcyBtYWNiX3BoeWxpbmtfdXN4X3Bjc19vcHMgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo2MTk6XFx0LnBjc19nZXRfc3RhdGUgPSBtYWNiX3VzeF9wY3NfZ2V0X3N0YXRlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NjIwOlxcdC5wY3NfY29uZmlnID0gbWFjYl91c3hfcGNzX2NvbmZpZyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjYyMTpcXHQucGNzX2xpbmtfdXAgPSBtYWNiX3VzeF9wY3NfbGlua191cCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTYyMi19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNjIzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NjI0OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcGh5bGlua19wY3Nfb3BzIG1hY2JfcGh5bGlua19wY3Nfb3BzID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NjI1OlxcdC5wY3NfaW5iYW5kX2NhcHMgPSBtYWNiX3Bjc19pbmJhbmRfY2FwcyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjYyNjpcXHQucGNzX2dldF9zdGF0ZSA9IG1hY2JfcGNzX2dldF9zdGF0ZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjYyNzpcXHQucGNzX2FuX3Jlc3RhcnQgPSBtYWNiX3Bjc19hbl9yZXN0YXJ0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NjI4OlxcdC5wY3NfY29uZmlnID0gbWFjYl9wY3NfY29uZmlnLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNjI5LX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy02MzAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo2MzE6c3RhdGljIGJvb2wgbWFjYl90eF9scGlfc2V0KHN0cnVjdCBtYWNiICpicCwgYm9vbCBlbmFibGUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy02MzIte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy02MzYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo2Mzc6XFx0bmNyID0gbWFjYl9yZWFkbChicCwgTkNSKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTYzOC1cXHRvbGQgPSBuY3I7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTY0My1cXHRpZiAob2xkICE9IG5jcilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjY0NDpcXHRcXHRtYWNiX3dyaXRlbChicCwgTkNSLCBuY3IpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNjQ1LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy02NDgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo2NDk6c3RhdGljIGJvb2wgbWFjYl90eF9hbGxfcXVldWVzX2lkbGUoc3RydWN0IG1hY2IgKmJwKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNjUwLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjY1MTpcXHRzdHJ1Y3QgbWFjYl9xdWV1ZSAqcXVldWU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy02NTItXFx0dW5zaWduZWQgaW50IHE7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTY2MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjY2MTpzdGF0aWMgdm9pZCBtYWNiX3R4X2xwaV93b3JrX2ZuKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTY2Mi17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTY2Ni1cXHRzcGluX2xvY2tfaXJxc2F2ZShcXHUwMDI2YnAtXFx1MDAzZWxvY2ssIGZsYWdzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjY2NzpcXHRpZiAoYnAtXFx1MDAzZWVlZV9hY3RpdmUgXFx1MDAyNlxcdTAwMjYgbWFjYl90eF9hbGxfcXVldWVzX2lkbGUoYnApKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NjY4OlxcdFxcdG1hY2JfdHhfbHBpX3NldChicCwgdHJ1ZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy02NjktXFx0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcXHUwMDI2YnAtXFx1MDAzZWxvY2ssIGZsYWdzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNjcxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NjcyOnN0YXRpYyB2b2lkIG1hY2JfdHhfbHBpX3NjaGVkdWxlKHN0cnVjdCBtYWNiICpicClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTY3My17XFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMwVDE2OjQyOjQ3LjA1MDc0MTk5NloiLCJTZXEiOjIzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoxMDUyMTI3NzAwMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHN1bW1hcnksIGFzIHRob3VnaCBJJ20gdGhpbmtpbmcgdGhyb3VnaCB0aGlzIHByb2Nlc3M6XG5cbioqVHJhY2luZyB0aGUgUFRQIEluaXRpYWxpemF0aW9uKipcblxuT2theSwgc28gSSdtIGRpZ2dpbmcgaW50byBob3cgUHJlY2lzaW9uIFRpbWUgUHJvdG9jb2wgKFBUUCkgaXMgaW5pdGlhbGl6ZWQgd2l0aGluIHRoaXMgZHJpdmVyLiBUaGUgaW5pdGlhbCBjbHVlIGlzIHRoYXQgYGdlbV9wdHBfaW5pdGAgZ2V0cyBjYWxsZWQsIGFuZCBmcm9tIHdoYXQgSSByZW1lbWJlciwgSSBiZWxpZXZlIGl0J3MgaGFwcGVuaW5nIHdpdGhpbiBgbWFjYl9tYWluLmNgLiBOb3csIHRoZSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBwaW5wb2ludCAqZXhhY3RseSogd2hlcmUgdGhhdCBmdW5jdGlvbiBjYWxsIGxpdmVzIHdpdGhpbiB0aGUgY29kZS4gTGV0J3MgZmlyZSB1cCB0aGUgc2VhcmNoIHRvb2xzIGFuZCBzZWUgd2hhdCB3ZSBjYW4gZmluZC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNhbGwgc3RhY2sgYW5kIGhvdyB0aGlzIFBUUCBpbml0aWFsaXphdGlvbiBmaXRzIGludG8gdGhlIG92ZXJhbGwgTUFDQiBkcml2ZXIncyBzdGFydHVwIHNlcXVlbmNlLiBUaGF0IHdpbGwgdGVsbCBtZSBldmVyeXRoaW5nIEkgbmVlZCB0byBrbm93IGFib3V0IHRoZSBkZXZpY2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ0MzcyLCJPdXRwdXRUb2tlbnMiOjM1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzBUMTY6NDI6NTcuNTcyMDIyMDA4WiIsIlNlcSI6MjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1Mjk4NTAxOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJnZW1fcHRwX2luaXRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaD0xMzk2PWVudW0gbWFjYl9iZF9jb250cm9sIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTE0MDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTQwMzp2b2lkIGdlbV9wdHBfaW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xNDA0LXZvaWQgZ2VtX3B0cF9yZW1vdmUoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaD0xNDI1PWludCBnZW1fc2V0X2h3dHN0KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xNDI4LSNlbHNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTQyOTpzdGF0aWMgaW5saW5lIHZvaWQgZ2VtX3B0cF9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpIHsgfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTE0MzAtc3RhdGljIGlubGluZSB2b2lkIGdlbV9wdHBfcmVtb3ZlKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpIHsgfVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYz0zNzc1PXN0YXRpYyBzdHJ1Y3QgbWFjYl9wdHBfaW5mbyBnZW1fcHRwX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzozNzc2OlxcdC5wdHBfaW5pdFxcdCA9IGdlbV9wdHBfaW5pdCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTM3NzctXFx0LnB0cF9yZW1vdmVcXHQgPSBnZW1fcHRwX3JlbW92ZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYz0xOTE9c3RhdGljIGNvbnN0IHN0cnVjdCBwdHBfY2xvY2tfaW5mbyBnZW1fcHRwX2NhcHNfdGVtcGxhdGUgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMtMjA2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYzoyMDc6c3RhdGljIHZvaWQgZ2VtX3B0cF9pbml0X3RpbWVyKHN0cnVjdCBtYWNiICpicClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMtMjA4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYy0yMjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jOjIyMjpzdGF0aWMgdm9pZCBnZW1fcHRwX2luaXRfdHN1KHN0cnVjdCBtYWNiICpicClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMtMjIzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYz0yOTc9dm9pZCBnZW1fcHRwX3R4c3RhbXAoc3RydWN0IG1hY2IgKmJwLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jLTMyNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmM6MzI3OnZvaWQgZ2VtX3B0cF9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jLTMyOC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMtMzM3LVxcdGJwLVxcdTAwM2VwdHBfY2xvY2tfaW5mby5tYXhfYWRqID0gYnAtXFx1MDAzZXB0cF9pbmZvLVxcdTAwM2VnZXRfcHRwX21heF9hZGooKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmM6MzM4OlxcdGdlbV9wdHBfaW5pdF90aW1lcihicCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jLTMzOS1cXHRicC1cXHUwMDNlcHRwX2Nsb2NrID0gcHRwX2Nsb2NrX3JlZ2lzdGVyKFxcdTAwMjZicC1cXHUwMDNlcHRwX2Nsb2NrX2luZm8sIFxcdTAwMjZuZXRkZXYtXFx1MDAzZWRldik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMtMzQ5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYzozNTA6XFx0Z2VtX3B0cF9pbml0X3RzdShicCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jLTM1MS1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzBUMTY6NDI6NTcuNjI1MDEwMTA3WiIsIlNlcSI6MjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjgwMTI2MTQ5NTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKlRyYWNpbmcgdGhlIFBUUCBJbml0aWFsaXphdGlvbiBpbiBtYWNiX21haW4uYyoqXG5cbkFscmlnaHQsIGxldCdzIGRpdmUgaW50byB0aGlzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhlIFBUUCBpbml0aWFsaXphdGlvbiByb3V0aW5lLCBzcGVjaWZpY2FsbHkgYGdlbV9wdHBfaW5mby5wdHBfaW5pdGAsIGlzIGJlaW5nIGNhbGxlZCB3aXRoaW4gYG1hY2JfbWFpbi5jYC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdG8gdHJhY2sgZG93biB0aGUgY2FsbGVycyDigJMgd2hpY2ggb3RoZXIgZnVuY3Rpb25zIHdpdGhpbiB0aGF0IGZpbGUgYXJlIGludm9raW5nIGBnZW1fcHRwX2luZm8ucHRwX2luaXRgPyBUaGlzIGlzIHRoZSBjcnVjaWFsIHN0YXJ0aW5nIHBvaW50IGZvciB1bmRlcnN0YW5kaW5nIHRoZSBvdmVyYWxsIGluaXRpYWxpemF0aW9uIHNlcXVlbmNlIGFuZCB0aGUgcm9sZSBvZiBQVFAgd2l0aGluIHRoZSBicm9hZGVyIE1BQ0IgZHJpdmVyIGNvbnRleHQuIEknbGwgbmVlZCB0byB1c2UgbXkgdXN1YWwgbWV0aG9kcywgbGlrZWx5IGEgY29tYmluYXRpb24gb2Ygc3RhdGljIGFuYWx5c2lzIChncmVwcGluZyBvciB1c2luZyBhbiBJREUncyBjcm9zcy1yZWZlcmVuY2luZyBjYXBhYmlsaXRpZXMpIGFuZCBwZXJoYXBzIGV2ZW4gc29tZSBkeW5hbWljIHRyYWNpbmcgaWYgdGhlIHN0YXRpYyBhbmFseXNpcyBwcm92ZXMgaW5zdWZmaWNpZW50IG9yIGlmIEkgc3VzcGVjdCBjb25kaXRpb25hbCBjYWxscyB0aGF0IGFyZSBub3QgaW1tZWRpYXRlbHkgb2J2aW91cyBmcm9tIHRoZSBzb3VyY2UgY29kZS4gVGhlIGdvYWwgaXMgYSBjbGVhciB1bmRlcnN0YW5kaW5nIG9mIHRoZSBpbml0aWFsaXphdGlvbiBmbG93LlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NTU5MSwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMwVDE2OjQzOjA1LjYzNzYyNzU0WiIsIlNlcSI6MjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NjQwMDcyMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwdHBfaW5pdFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oPTEyMDM9c3RydWN0IG1hY2JfcHRwX2luZm8ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjEyMDQ6XFx0dm9pZCAoKnB0cF9pbml0KShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMjA1LVxcdHZvaWQgKCpwdHBfcmVtb3ZlKShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oPTEzOTY9ZW51bSBtYWNiX2JkX2NvbnRyb2wge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTQwMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxNDAzOnZvaWQgZ2VtX3B0cF9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTE0MDQtdm9pZCBnZW1fcHRwX3JlbW92ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oPTE0MjU9aW50IGdlbV9zZXRfaHd0c3Qoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTE0MjgtI2Vsc2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxNDI5OnN0YXRpYyBpbmxpbmUgdm9pZCBnZW1fcHRwX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldikgeyB9XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTQzMC1zdGF0aWMgaW5saW5lIHZvaWQgZ2VtX3B0cF9yZW1vdmUoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldikgeyB9XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jPTMxMjk9c3RhdGljIGludCBtYWNiX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMzE3Ny1cXHRpZiAoYnAtXFx1MDAzZXB0cF9pbmZvKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MzE3ODpcXHRcXHRicC1cXHUwMDNlcHRwX2luZm8tXFx1MDAzZXB0cF9pbml0KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0zMTc5LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYz0zNzc1PXN0YXRpYyBzdHJ1Y3QgbWFjYl9wdHBfaW5mbyBnZW1fcHRwX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzozNzc2OlxcdC5wdHBfaW5pdFxcdCA9IGdlbV9wdHBfaW5pdCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTM3NzctXFx0LnB0cF9yZW1vdmVcXHQgPSBnZW1fcHRwX3JlbW92ZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM9NjEzMz1zdGF0aWMgaW50IF9fbWF5YmVfdW51c2VkIG1hY2JfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNjIwNy1cXHRpZiAoYnAtXFx1MDAzZXB0cF9pbmZvKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NjIwODpcXHRcXHRicC1cXHUwMDNlcHRwX2luZm8tXFx1MDAzZXB0cF9pbml0KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy02MjA5LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jPTE5MT1zdGF0aWMgY29uc3Qgc3RydWN0IHB0cF9jbG9ja19pbmZvIGdlbV9wdHBfY2Fwc190ZW1wbGF0ZSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYy0yMDYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jOjIwNzpzdGF0aWMgdm9pZCBnZW1fcHRwX2luaXRfdGltZXIoc3RydWN0IG1hY2IgKmJwKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYy0yMDgte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jLTIyMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmM6MjIyOnN0YXRpYyB2b2lkIGdlbV9wdHBfaW5pdF90c3Uoc3RydWN0IG1hY2IgKmJwKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYy0yMjMte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jPTI5Nz12b2lkIGdlbV9wdHBfdHhzdGFtcChzdHJ1Y3QgbWFjYiAqYnAsIHN0cnVjdCBza19idWZmICpza2IsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMtMzI2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYzozMjc6dm9pZCBnZW1fcHRwX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMtMzI4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYy0zMzctXFx0YnAtXFx1MDAzZXB0cF9jbG9ja19pbmZvLm1heF9hZGogPSBicC1cXHUwMDNlcHRwX2luZm8tXFx1MDAzZWdldF9wdHBfbWF4X2FkaigpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYzozMzg6XFx0Z2VtX3B0cF9pbml0X3RpbWVyKGJwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMtMzM5LVxcdGJwLVxcdTAwM2VwdHBfY2xvY2sgPSBwdHBfY2xvY2tfcmVnaXN0ZXIoXFx1MDAyNmJwLVxcdTAwM2VwdHBfY2xvY2tfaW5mbywgXFx1MDAyNm5ldGRldi1cXHUwMDNlZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYy0zNDktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jOjM1MDpcXHRnZW1fcHRwX2luaXRfdHN1KGJwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMtMzUxLVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0zMFQxNjo0MzowNS42ODQwMzE5MTlaIiwiU2VxIjoyNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MTc4Njk3Mzc5OTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqV29ydGhGdXp6aW5nIEFzc2Vzc21lbnQ6IENhZGVuY2UgTUFDQi9HRU0gRHJpdmVyKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBGaXJzdCwgYGdlbV9wdHBfaW5pdGAgaXMgY2FsbGVkIGJ5IGBtYWNiX29wZW5gLCB3aGljaCBpcyBgbmRvX29wZW5gLCBnb3QgaXQuIE5vdywgdGhlIGtleSBxdWVzdGlvbiBpcyB3aGV0aGVyIHRoaXMgQ2FkZW5jZSBNQUNCIGRyaXZlciBjYW4gYmUgaW5zdGFudGlhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgR0NFIGZ1enppbmcgZW52aXJvbm1lbnRzLiBXZSBuZWVkIHRvIGJlIG1ldGljdWxvdXMuIExldCdzIHJldmlzaXQgdGhlIHJ1bGVzLiBUaGUgY3JpdGVyaWEgc3RpcHVsYXRlIHRoYXQgd2UgcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgIGlmIHRoZSBwYXRjaCBjb25jZXJucyBtb2RpZmljYXRpb25zIHRvIGRvY3VtZW50YXRpb24sIEtjb25maWcsIGNvbW1lbnRzLCBjb3NtZXRpYyBjaGFuZ2VzLCBub24tZnVuY3Rpb25hbCBudW1lcmljIGNvbnN0YW50cy9tYWNyb3MsIG9yIHVucmVhY2hhYmxlIGNvZGUgcGF0aHMgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBTcGVjaWZpY2FsbHksIHRoZSBydWxlcyBleGNsdWRlIGNvZGUgcGF0aHMgdGhhdCBhcmUgaW5hY2Nlc3NpYmxlIGluIFFFTVUvR0NFLCBldmVuIHdpdGggc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUuIFRoaXMgYWxzbyBhcHBsaWVzIHRvIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIHJlcXVpcmluZyBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLiBGaW5hbGx5LCB0ZWFyZG93biBjYWxsYmFja3MgYXJlIGFsc28gdW5pbnRlcmVzdGluZyBpbiB0aGlzIGNvbnRleHQuXG5cblJpZ2h0LCBzbywgaXMgdGhlIENhZGVuY2UgTUFDQi9HRU0gYSBoYXJkd2FyZS1zcGVjaWZpYyBTb0MvUENJIGRyaXZlciBub3QgcmVhY2hhYmxlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cz8gTGV0J3MgY2hlY2suIEhvdyBpcyBDYWRlbmNlIE1BQ0IgcHJvYmVkPyBJdCdzIHByb2JlZCB2aWEgRFQgKERldmljZSBUcmVlKSB3aXRoIGNvbXBhdGlibGUgc3RyaW5ncyBsaWtlIGBjZG5zLGF0OTFzYW05MjYwLW1hY2JgLCBgY2RucyxtYWNiYCwgYGNkbnMsZ2VtYCwgYHhsbngsenlucS1nZW1gLCBgc2lmaXZlLGZ1NTQwLWMwMDAtZ2VtYCwgYW5kIGFsc28gdmlhIFBDSSB3aXRoIElEIDB4MTdjZDoweGUwMDcgKENhZGVuY2UgUENJIEdFTSkuIE5vdywgaXMgdGhpcyBDYWRlbmNlIEdFTSBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIHg4Nl82NCBvciBBUk02NCB2aXJ0IG1hY2hpbmVzPyBObyEgU3RhbmRhcmQgUUVNVSB4ODZfNjQgdXNlcyBlMTAwMCwgZTEwMDBlLCBydGw4MTM5LCB2aXJ0aW8tbmV0LXBjaSwgZXRjLiwgYW5kIHN0YW5kYXJkIEFSTTY0IHZpcnQgdXNlcyB2aXJ0aW8tbmV0LXBjaS4gQ2FkZW5jZSBHRU0gaW4gUUVNVSBpcyBvbmx5IGF2YWlsYWJsZSBpZiBydW5uaW5nIHNwZWNpZmljIG1hY2hpbmUgYm9hcmRzIGxpa2UgYHhsbngtemN1MTAyYCwgYHp5bnEtYTlgLCBvciBgc2lmaXZlX3VgLiBHQ0Ugb3Igc3RhbmRhcmQgUUVNVSAoeDg2XzY0IG9yIEFSTTY0IHZpcnQpIGRvIG5vdCBvZmZlciBDYWRlbmNlIEdFTSBoYXJkd2FyZSBvciBQQ0kgZGV2aWNlcy5cblxuT2theSwgd2hhdCBhYm91dCBzeXprYWxsZXI/IENhbiBzeXprYWxsZXIgcnVuIG9uIGluc3RhbmNlcyB0ZXN0aW5nIHRoZXNlIGRyaXZlcnM/IFN0YW5kYXJkIExpbnV4IGZ1enppbmcgaW4gc3l6a2FsbGVyIGlzIHg4Nl82NCBhbmQgYXJtNjQgdmlydC4gVGhlIHJ1bGVzIGFyZSBjbGVhcjogY29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VIGFyZSBleGNsdWRlZCwgYWxvbmcgd2l0aCB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyByZXF1aXJpbmcgcGh5c2ljYWwgUENJZSBoYXJkd2FyZS5cblxuU28sIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL2AuLi4gSXMgQ2FkZW5jZSBNQUNCIGEgdmVuZG9yLXNwZWNpZmljIGhhcmR3YXJlIGRyaXZlcj8gWWVzISBJdCdzIGFuIEV0aGVybmV0IE1BQyBkcml2ZXIgZm9yIENhZGVuY2UgSVAgZm91bmQgb24gQXRtZWwvTWljcm9jaGlwIEFUOTEvU0FNQTUsIFhpbGlueCBaeW5xLCBTaUZpdmUgRlU1NDAsIGFuZCBDYWRlbmNlJ3MgaW50ZXJuYWwgUENJIEZQR0EgcHJvdG90eXBlIGJvYXJkLiBJdCdzIHVucmVhY2hhYmxlIHdpdGhvdXQgdGhhdCBzcGVjaWZpYyBwaHlzaWNhbCBoYXJkd2FyZSBvciBzcGVjaWFsaXplZCBlbWJlZGRlZCBTb0MgZW11bGF0aW9uLiBUaGVyZSdzIG5vIHNvZnR3YXJlIGRldmljZS9tb2NrL3ZpcnR1YWwgZGV2aWNlIG9yIFVTQiBpbnRlcmZhY2UgdGhhdCB1c2VzIG1hY2IuIE1BQ0IgaXMgcHVyZWx5IGFuIE1NSU8gcGxhdGZvcm0gZHJpdmVyIG9yIGEgQ0ROUyBQQ0kgd3JhcHBlciBmb3IgdGhlIENhZGVuY2UgSVAgY29yZS4gSXQncyBpbmFjY2Vzc2libGUgaW4gc3RhbmRhcmQgZnV6emluZyBlbnZpcm9ubWVudHMuXG5cbkxldCdzIGNvbmZpcm0gdGhlIGBXb3J0aEZ1enppbmdgIHNob3VsZCBiZSBmYWxzZSBiYXNlZCBvbiB0aGUgY3JpdGVyaWE6IFwiUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZi4uLiBjb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUuLi4gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cIlxuXG5JbmRlZWQsIHRoZSBDYWRlbmNlIE1BQ0IgLyBHRU0gZXRoZXJuZXQgZHJpdmVyIChgZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jYCkgcmVxdWlyZXMgc3BlY2lmaWMgcGh5c2ljYWwgaGFyZHdhcmUgKEF0bWVsIC8gTWljcm9jaGlwIFNvQywgWGlsaW54IFp5bnEsIFNpRml2ZSBSSVNDLVYgU29DLCBvciBDYWRlbmNlIFBDSSBGUEdBIHRlc3QgZGV2aWNlKSB0aGF0IGlzIG5vdCBhdmFpbGFibGUgb3IgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgKFFFTVUgdmlydC9HQ0UpLlxuXG5UaGVyZWZvcmUsIHRoZSBjb25jbHVzaW9uIGlzOiBgV29ydGhGdXp6aW5nID0gZmFsc2VgLiBgRW5hYmxlQ29uZmlncyA9IFtdYC4gYEZvY3VzU3ltYm9scyA9IFtdYC4gVGhlIHJlYXNvbmluZzogVGhlIHBhdGNoIGZpeGVzIHRoZSBpbml0aWFsaXphdGlvbiBvcmRlciBvZiB0aGUgc3BpbmxvY2sgYHRzdV9jbGtfbG9ja2AgaW4gYGdlbV9wdHBfaW5pdGAgd2l0aGluIHRoZSBDYWRlbmNlIE1BQ0IvR0VNIG5ldHdvcmsgZHJpdmVyLiBUaGlzIGRyaXZlciB0YXJnZXRzIGVtYmVkZGVkIFNvQ3MgKEF0bWVsL01pY3JvY2hpcCwgWGlsaW54IFp5bnEsIFNpRml2ZSkgYW5kIENhZGVuY2UgUENJIHRlc3QgaGFyZHdhcmUgdGhhdCBhcmUgbm90IHByZXNlbnQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIHZpcnQvR0NFLlxuXG5RdWlja1xuXG4iLCJJbnB1dFRva2VucyI6NDcyMjcsIk91dHB1dFRva2VucyI6MTU4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTM3NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0zMFQxNjo0MzoyMy41NTM3NzI4MDFaIiwiU2VxIjoyOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMTQ2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyB0aGUgaW5pdGlhbGl6YXRpb24gb3JkZXIgb2YgYGJwLVxcdTAwM2V0c3VfY2xrX2xvY2tgIGJlZm9yZSByZWdpc3RlcmluZyB0aGUgUFRQIGNsb2NrIGluIGBnZW1fcHRwX2luaXQoKWAgZm9yIHRoZSBDYWRlbmNlIE1BQ0IvR0VNIG5ldHdvcmsgZHJpdmVyIChkcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMpLiBUaGlzIGRyaXZlciBpcyBmb3IgaGFyZHdhcmUtc3BlY2lmaWMgQ2FkZW5jZSBFdGhlcm5ldCBNQUMgSVAgb24gZW1iZWRkZWQgU29DcyAoc3VjaCBhcyBBdG1lbC9NaWNyb2NoaXAsIFhpbGlueCBaeW5xLCBTaUZpdmUpIG9yIHByb3ByaWV0YXJ5IFBDSSB0ZXN0IGNhcmRzLCB3aGljaCBhcmUgbm90IHByZXNlbnQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgKGUuZy4gUUVNVSBzdGFuZGFyZCB2aXJ0IC8gR0NFKS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIHRoZSBpbml0aWFsaXphdGlvbiBvcmRlciBvZiBgYnAtXFx1MDAzZXRzdV9jbGtfbG9ja2AgYmVmb3JlIHJlZ2lzdGVyaW5nIHRoZSBQVFAgY2xvY2sgaW4gYGdlbV9wdHBfaW5pdCgpYCBmb3IgdGhlIENhZGVuY2UgTUFDQi9HRU0gbmV0d29yayBkcml2ZXIgKGRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYykuIFRoaXMgZHJpdmVyIGlzIGZvciBoYXJkd2FyZS1zcGVjaWZpYyBDYWRlbmNlIEV0aGVybmV0IE1BQyBJUCBvbiBlbWJlZGRlZCBTb0NzIChzdWNoIGFzIEF0bWVsL01pY3JvY2hpcCwgWGlsaW54IFp5bnEsIFNpRml2ZSkgb3IgcHJvcHJpZXRhcnkgUENJIHRlc3QgY2FyZHMsIHdoaWNoIGFyZSBub3QgcHJlc2VudCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoZS5nLiBRRU1VIHN0YW5kYXJkIHZpcnQgLyBHQ0UpLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzBUMTY6NDM6MjMuNTUzNzk2OTgxWiIsIlNlcSI6MjksIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoiSWYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNjMwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowz6n5l[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-30 15:47:50 +0000 UTC FinishedAt: 2026-08-30 16:43:25 +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+CgkJCTx0ZD4yMDI2LzA4LzMwIDE2OjMzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MTBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O0tNU0FOUmVhc29uaW5nJiMzNDs6ICYjMzQ7JiMzNDssCiAgJiMzNDtOZWVkc0tNU0FOJiMzNDs6IGZhbHNlLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIHRoZSBpbml0aWFsaXphdGlvbiBvcmRlciBvZiBgYnAtXHUwMDNldHN1X2Nsa19sb2NrYCBiZWZvcmUgcmVnaXN0ZXJpbmcgdGhlIFBUUCBjbG9jayBpbiBgZ2VtX3B0cF9pbml0KClgIGZvciB0aGUgQ2FkZW5jZSBNQUNCL0dFTSBuZXR3b3JrIGRyaXZlciAoZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jKS4gVGhpcyBkcml2ZXIgaXMgZm9yIGhhcmR3YXJlLXNwZWNpZmljIENhZGVuY2UgRXRoZXJuZXQgTUFDIElQIG9uIGVtYmVkZGVkIFNvQ3MgKHN1Y2ggYXMgQXRtZWwvTWljcm9jaGlwLCBYaWxpbnggWnlucSwgU2lGaXZlKSBvciBwcm9wcmlldGFyeSBQQ0kgdGVzdCBjYXJkcywgd2hpY2ggYXJlIG5vdCBwcmVzZW50IGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChlLmcuIFFFTVUgc3RhbmRhcmQgdmlydCAvIEdDRSkuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzMwIDE2OjMzPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgZWFjMWUxZWIyZTcyOGUwODEwYWIyMmQ5YzhiMWZkZjc3MTRlYjBiMFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTdW4gQXVnIDMwIDE2OjMzOjA4IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuY1xuaW5kZXggZTUxOTVkN2RhYzFkNS4uMDU1MTYwYzQyZGIzYyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jXG5AQCAtMzMwLDYgJiM0MzszMzAsOCBAQCB2b2lkIGdlbV9wdHBfaW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxuIFxuIFx0YnAtXHUwMDNlcHRwX2Nsb2NrX2luZm8gPSBnZW1fcHRwX2NhcHNfdGVtcGxhdGU7XG4gXG4mIzQzO1x0c3Bpbl9sb2NrX2luaXQoXHUwMDI2YnAtXHUwMDNldHN1X2Nsa19sb2NrKTtcbiYjNDM7XG4gXHQvKiBub21pbmFsIGZyZXF1ZW5jeSBhbmQgbWF4aW11bSBhZGp1c3RtZW50IGluIHBwYiAqL1xuIFx0YnAtXHUwMDNldHN1X3JhdGUgPSBicC1cdTAwM2VwdHBfaW5mby1cdTAwM2VnZXRfdHN1X3JhdGUoYnApO1xuIFx0YnAtXHUwMDNlcHRwX2Nsb2NrX2luZm8ubWF4X2FkaiA9IGJwLVx1MDAzZXB0cF9pbmZvLVx1MDAzZWdldF9wdHBfbWF4X2FkaigpO1xuQEAgLTM0NSw4ICYjNDM7MzQ3LDYgQEAgdm9pZCBnZW1fcHRwX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbiBcdFx0cmV0dXJuO1xuIFx0fVxuIFxuLVx0c3Bpbl9sb2NrX2luaXQoXHUwMDI2YnAtXHUwMDNldHN1X2Nsa19sb2NrKTtcbi1cbiBcdGdlbV9wdHBfaW5pdF90c3UoYnApO1xuIFxuIFx0ZGV2X2luZm8oXHUwMDI2YnAtXHUwMDNlcGRldi1cdTAwM2VkZXYsIFwmIzM0OyVzIHB0cCBjbG9jayByZWdpc3RlcmVkLlxcblwmIzM0OyxcbkBAIC00NjcsNCAmIzQzOzQ2NywzIEBAIGludCBnZW1fc2V0X2h3dHN0KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXG4gXG4gXHRyZXR1cm4gMDtcbiB9XG4tXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzAgMTY6MzM8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MTBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmNvcmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIHRoZSBpbml0aWFsaXphdGlvbiBvcmRlciBvZiBgYnAtXHUwMDNldHN1X2Nsa19sb2NrYCBiZWZvcmUgcmVnaXN0ZXJpbmcgdGhlIFBUUCBjbG9jayBpbiBgZ2VtX3B0cF9pbml0KClgIGZvciB0aGUgQ2FkZW5jZSBNQUNCL0dFTSBuZXR3b3JrIGRyaXZlciAoZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jKS4gVGhpcyBkcml2ZXIgaXMgZm9yIGhhcmR3YXJlLXNwZWNpZmljIENhZGVuY2UgRXRoZXJuZXQgTUFDIElQIG9uIGVtYmVkZGVkIFNvQ3MgKHN1Y2ggYXMgQXRtZWwvTWljcm9jaGlwLCBYaWxpbnggWnlucSwgU2lGaXZlKSBvciBwcm9wcmlldGFyeSBQQ0kgdGVzdCBjYXJkcywgd2hpY2ggYXJlIG5vdCBwcmVzZW50IGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChlLmcuIFFFTVUgc3RhbmRhcmQgdmlydCAvIEdDRSkuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgZWFjMWUxZWIyZTcyOGUwODEwYWIyMmQ5YzhiMWZkZjc3MTRlYjBiMApBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBTdW4gQXVnIDMwIDE2OjMzOjA4IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jCmluZGV4IGU1MTk1ZDdkYWMxZDUuLjA1NTE2MGM0MmRiM2MgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMKQEAgLTMzMCw2ICYjNDM7MzMwLDggQEAgdm9pZCBnZW1fcHRwX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldikKIAogCWJwLSZndDtwdHBfY2xvY2tfaW5mbyA9IGdlbV9wdHBfY2Fwc190ZW1wbGF0ZTsKIAomIzQzOwlzcGluX2xvY2tfaW5pdCgmYW1wO2JwLSZndDt0c3VfY2xrX2xvY2spOwomIzQzOwogCS8qIG5vbWluYWwgZnJlcXVlbmN5IGFuZCBtYXhpbXVtIGFkanVzdG1lbnQgaW4gcHBiICovCiAJYnAtJmd0O3RzdV9yYXRlID0gYnAtJmd0O3B0cF9pbmZvLSZndDtnZXRfdHN1X3JhdGUoYnApOwogCWJwLSZndDtwdHBfY2xvY2tfaW5mby5tYXhfYWRqID0gYnAtJmd0O3B0cF9pbmZvLSZndDtnZXRfcHRwX21heF9hZGooKTsKQEAgLTM0NSw4ICYjNDM7MzQ3LDYgQEAgdm9pZCBnZW1fcHRwX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldikKIAkJcmV0dXJuOwogCX0KIAotCXNwaW5fbG9ja19pbml0KCZhbXA7YnAtJmd0O3RzdV9jbGtfbG9jayk7Ci0KIAlnZW1fcHRwX2luaXRfdHN1KGJwKTsKIAogCWRldl9pbmZvKCZhbXA7YnAtJmd0O3BkZXYtJmd0O2RldiwgJiMzNDslcyBwdHAgY2xvY2sgcmVnaXN0ZXJlZC5cbiYjMzQ7LApAQCAtNDY3LDQgJiM0Mzs0NjcsMyBAQCBpbnQgZ2VtX3NldF9od3RzdChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LAogCiAJcmV0dXJuIDA7CiB9Ci0KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzAgMTY6MzM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjJtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjI3OAoJCQkJCQkJb3V0cHV0OiAzMQoJCQkJCQkJdGhvdWdodHM6IDg2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgSSBhbmFseXplIHRoaXMgcGF0Y2g6CgoqKkluaXRpYWwgQXNzZXNzbWVudDogRnV6emluZyBGZWFzaWJpbGl0eSoqCgpPa2F5LCBmaXJzdCB0aGluZ3MgZmlyc3QsIGxldCYjMzk7cyBmaWd1cmUgb3V0IGlmIHRoaXMgcGF0Y2ggaXMgZXZlbiB3b3J0aCBvdXIgdGltZS4gSXMgaXQgc29tZXRoaW5nIHRoYXQmIzM5O3MgcmlwZSBmb3IgZnV6emluZz8gV2hhdCYjMzk7cyB0aGUgc2NvcGUgb2YgdGhlIGNoYW5nZXM/IFRoZSBnb2FsIGhlcmUgaXMgdG8gZGV0ZXJtaW5lIHF1aWNrbHkgaWYgaXQmIzM5O3Mgc29tZXRoaW5nIHJlYWNoYWJsZSB0aHJvdWdoIG15IHN0YW5kYXJkIGZ1enppbmcgc2V0dXBzLCBvciBpZiBpdCB0b3VjaGVzIHNvbWV0aGluZyB0aGF0IHdpbGwgcmVxdWlyZSBtb3JlIGNvbXBsZXggc2V0dXAsIGxpa2UgaGFyZHdhcmUgZW11bGF0aW9uIG9yIHBsYXRmb3JtLXNwZWNpZmljIGNvbmZpZ3VyYXRpb25zIEkgaGF2ZW4mIzM5O3QgZGVhbHQgd2l0aCBiZWZvcmUuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBhdHRhY2sgc3VyZmFjZS4KCioqRGl2aW5nIGludG8gdGhlIENvZGUqKgoKTm93LCBsZXQmIzM5O3MgZ2V0IHNwZWNpZmljLiBUaGUgcHJvbXB0IG1lbnRpb25zIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmNgLiBUaGF0JiMzOTtzIGEgZ29vZCBzdGFydGluZyBwb2ludC4gSSYjMzk7bGwgbmVlZCB0byBkaWcgaW50byB0aGF0IGZpbGUgYW5kIGFueSByZWxhdGVkIEtjb25maWcgYW5kIHNvdXJjZSBmaWxlcyB0byBnZXQgYSBmdWxsIHBpY3R1cmUuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBuZXR3b3JrIGludGVyZmFjZSBhbmQgaWYgdGhlcmUmIzM5O3MgYW4gb2J2aW91cyBlbnRyeXBvaW50IGZvciBleHBsb2l0YXRpb24uIEkmIzM5O2xsIGJlIGxvb2tpbmcgZm9yIHBvdGVudGlhbCB2dWxuZXJhYmlsaXRpZXMsIGludGVyZXN0aW5nIGRhdGEgZmxvd3MsIGFuZCBtYXliZSBzb21lIG9wcG9ydHVuaXRpZXMgZm9yIGNvZGUgaW5qZWN0aW9uIG9yIGJ1ZmZlciBvdmVyZmxvd3MsIHdoaWNoIGFyZSB0aGUgdXN1YWwgc3VzcGVjdHMgaW4gdGhpcyBhcmVhLiBGcm9tIHRoZXJlLCBJJiMzOTtsbCBuZWVkIHRvIHRyYWNlIGlucHV0cywgYW5kIGRldGVybWluZSBpZiBhbnkgb2YgaXQgaXMgdXNlci1jb250cm9sbGVkLCBhbmQgaWYgaXQmIzM5O3MgYWNjZXNzaWJsZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMCAxNjozNTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtNQUNCJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTcxMyBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnPTIwPWlmIE5FVF9WRU5ET1JfQ0FERU5DRVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnLTIxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnOjIyOmNvbmZpZyBNQUNCXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL0tjb25maWc6MjM6XHR0cmlzdGF0ZSBcJiMzNDtDYWRlbmNlIE1BQ0IvR0VNIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvS2NvbmZpZy0yNC1cdGRlcGVuZHMgb24gSEFTX0RNQSBcdTAwMjZcdTAwMjYgQ09NTU9OX0NMS1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvS2NvbmZpZy0yOC1cdGhlbHBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvS2NvbmZpZzoyOTpcdCAgVGhlIENhZGVuY2UgTUFDQiBldGhlcm5ldCBpbnRlcmZhY2UgaXMgZm91bmQgb24gbWFueSBBdG1lbCBBVDMyIGFuZFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnLTMwLVx0ICBBVDkxIHBhcnRzLiAgVGhpcyBkcml2ZXIgYWxzbyBzdXBwb3J0cyB0aGUgQ2FkZW5jZSBHRU0gKEdpZ2FiaXRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvS2NvbmZpZy0zMS1cdCAgRXRoZXJuZXQgTUFDIGZvdW5kIGluIHNvbWUgQVJNIFNvQyBkZXZpY2VzKS4gIFNheSBZIHRvIGluY2x1ZGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvS2NvbmZpZzozMjpcdCAgc3VwcG9ydCBmb3IgdGhlIE1BQ0IvR0VNIGNoaXAuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL0tjb25maWctMzMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnLTM2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnOjM3OmNvbmZpZyBNQUNCX1VTRV9IV1NUQU1QXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL0tjb25maWctMzgtXHRib29sIFwmIzM0O1VzZSBJRUVFIDE1ODggaHdzdGFtcFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnOjM5Olx0ZGVwZW5kcyBvbiBNQUNCXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL0tjb25maWctNDAtXHRkZXBlbmRzIG9uIFBUUF8xNTg4X0NMT0NLXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnLTQyLVx0aGVscFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnOjQzOlx0ICBFbmFibGUgSUVFRSAxNTg4IFByZWNpc2lvbiBUaW1lIFByb3RvY29sIChQVFApIHN1cHBvcnQgZm9yIE1BQ0IuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL0tjb25maWctNDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL0tjb25maWc6NDU6Y29uZmlnIE1BQ0JfUENJXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL0tjb25maWc6NDY6XHR0cmlzdGF0ZSBcJiMzNDtDYWRlbmNlIFBDSSBNQUNCL0dFTSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL0tjb25maWc6NDc6XHRkZXBlbmRzIG9uIE1BQ0IgXHUwMDI2XHUwMDI2IFBDSVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnLTQ4LVx0aGVscFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnOjQ5Olx0ICBUaGlzIGlzIFBDSSB3cmFwcGVyIGZvciBNQUNCIGRyaXZlci5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvS2NvbmZpZy01MC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL01ha2VmaWxlPTU9bWFjYi15XHQ6PSBtYWNiX21haW4ub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9NYWtlZmlsZS02LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9NYWtlZmlsZTo3OmlmZXEgKCQoQ09ORklHX01BQ0JfVVNFX0hXU1RBTVApLHkpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL01ha2VmaWxlLTgtbWFjYi15XHQmIzQzOz0gbWFjYl9wdHAub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9NYWtlZmlsZT05PWVuZGlmXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL01ha2VmaWxlLTEwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9NYWtlZmlsZToxMTpvYmotJChDT05GSUdfTUFDQikgJiM0Mzs9IG1hY2Iub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9NYWtlZmlsZToxMjpvYmotJChDT05GSUdfTUFDQl9QQ0kpICYjNDM7PSBtYWNiX3BjaS5vXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMi0vKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MzogKiBBdG1lbCBNQUNCIEV0aGVybmV0IENvbnRyb2xsZXIgZHJpdmVyXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC00LSAqXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNi0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc6I2lmbmRlZiBfTUFDQl9IXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4OiNkZWZpbmUgX01BQ0JfSFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtOS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjE4OiNkZWZpbmUgTUFDQl9HUkVHU19OQlIgMTZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjE5OiNkZWZpbmUgTUFDQl9HUkVHU19WRVJTSU9OIDJcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjIwOiNkZWZpbmUgTUFDQl9NQVhfUVVFVUVTIDhcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTIxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjI6LyogTUFDQiByZWdpc3RlciBvZmZzZXRzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyMzojZGVmaW5lIE1BQ0JfTkNSXHRcdDB4MDAwMCAvKiBOZXR3b3JrIENvbnRyb2wgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI0OiNkZWZpbmUgTUFDQl9OQ0ZHUlx0XHQweDAwMDQgLyogTmV0d29yayBDb25maWcgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI1OiNkZWZpbmUgTUFDQl9OU1JcdFx0MHgwMDA4IC8qIE5ldHdvcmsgU3RhdHVzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNjojZGVmaW5lIE1BQ0JfVEFSXHRcdDB4MDAwYyAvKiBBVDkxUk05MjAwIG9ubHkgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI3OiNkZWZpbmUgTUFDQl9UQ1JcdFx0MHgwMDEwIC8qIEFUOTFSTTkyMDAgb25seSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mjg6I2RlZmluZSBNQUNCX1RTUlx0XHQweDAwMTQgLyogVHJhbnNtaXQgU3RhdHVzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyOTojZGVmaW5lIE1BQ0JfUkJRUFx0XHQweDAwMTggLyogUlggUSBCYXNlIEFkZHJlc3MgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjMwOiNkZWZpbmUgTUFDQl9UQlFQXHRcdDB4MDAxYyAvKiBUWCBRIEJhc2UgQWRkcmVzcyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MzE6I2RlZmluZSBNQUNCX1JTUlx0XHQweDAwMjAgLyogUmVjZWl2ZSBTdGF0dXMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjMyOiNkZWZpbmUgTUFDQl9JU1JcdFx0MHgwMDI0IC8qIEludGVycnVwdCBTdGF0dXMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjMzOiNkZWZpbmUgTUFDQl9JRVJcdFx0MHgwMDI4IC8qIEludGVycnVwdCBFbmFibGUgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjM0OiNkZWZpbmUgTUFDQl9JRFJcdFx0MHgwMDJjIC8qIEludGVycnVwdCBEaXNhYmxlICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDozNTojZGVmaW5lIE1BQ0JfSU1SXHRcdDB4MDAzMCAvKiBJbnRlcnJ1cHQgTWFzayAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MzY6I2RlZmluZSBNQUNCX01BTlx0XHQweDAwMzQgLyogUEhZIE1haW50ZW5hbmNlICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDozNzojZGVmaW5lIE1BQ0JfUFRSXHRcdDB4MDAzOFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mzg6I2RlZmluZSBNQUNCX1BGUlx0XHQweDAwM2NcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjM5OiNkZWZpbmUgTUFDQl9GVE9cdFx0MHgwMDQwXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0MDojZGVmaW5lIE1BQ0JfU0NGXHRcdDB4MDA0NFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDE6I2RlZmluZSBNQUNCX01DRlx0XHQweDAwNDhcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQyOiNkZWZpbmUgTUFDQl9GUk9cdFx0MHgwMDRjXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0MzojZGVmaW5lIE1BQ0JfRkNTRVx0XHQweDAwNTBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ0OiNkZWZpbmUgTUFDQl9BTEVcdFx0MHgwMDU0XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0NTojZGVmaW5lIE1BQ0JfRFRGXHRcdDB4MDA1OFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDY6I2RlZmluZSBNQUNCX0xDT0xcdFx0MHgwMDVjXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0NzojZGVmaW5lIE1BQ0JfRVhDT0xcdFx0MHgwMDYwXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0ODojZGVmaW5lIE1BQ0JfVFVORFx0XHQweDAwNjRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ5OiNkZWZpbmUgTUFDQl9DU0VcdFx0MHgwMDY4XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo1MDojZGVmaW5lIE1BQ0JfUlJFXHRcdDB4MDA2Y1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NTE6I2RlZmluZSBNQUNCX1JPVlJcdFx0MHgwMDcwXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo1MjojZGVmaW5lIE1BQ0JfUlNFXHRcdDB4MDA3NFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NTM6I2RlZmluZSBNQUNCX0VMRVx0XHQweDAwNzhcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjU0OiNkZWZpbmUgTUFDQl9SSkFcdFx0MHgwMDdjXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo1NTojZGVmaW5lIE1BQ0JfVVNGXHRcdDB4MDA4MFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NTY6I2RlZmluZSBNQUNCX1NURVx0XHQweDAwODRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjU3OiNkZWZpbmUgTUFDQl9STEVcdFx0MHgwMDg4XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo1ODojZGVmaW5lIE1BQ0JfVFBGXHRcdDB4MDA4Y1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NTk6I2RlZmluZSBNQUNCX0hSQlx0XHQweDAwOTBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjYwOiNkZWZpbmUgTUFDQl9IUlRcdFx0MHgwMDk0XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo2MTojZGVmaW5lIE1BQ0JfU0ExQlx0XHQweDAwOThcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjYyOiNkZWZpbmUgTUFDQl9TQTFUXHRcdDB4MDA5Y1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NjM6I2RlZmluZSBNQUNCX1NBMkJcdFx0MHgwMGEwXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo2NDojZGVmaW5lIE1BQ0JfU0EyVFx0XHQweDAwYTRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjY1OiNkZWZpbmUgTUFDQl9TQTNCXHRcdDB4MDBhOFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NjY6I2RlZmluZSBNQUNCX1NBM1RcdFx0MHgwMGFjXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo2NzojZGVmaW5lIE1BQ0JfU0E0Qlx0XHQweDAwYjBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjY4OiNkZWZpbmUgTUFDQl9TQTRUXHRcdDB4MDBiNFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Njk6I2RlZmluZSBNQUNCX1RJRFx0XHQweDAwYjhcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjcwOiNkZWZpbmUgTUFDQl9UUFFcdFx0MHgwMGJjXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3MTojZGVmaW5lIE1BQ0JfVVNSSU9cdFx0MHgwMGMwXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3MjojZGVmaW5lIE1BQ0JfV09MXHRcdDB4MDBjNFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzM6I2RlZmluZSBNQUNCX01JRFx0XHQweDAwZmNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc0OiNkZWZpbmUgTUFDQl9UQlFQSFx0XHQweDA0QzhcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc1OiNkZWZpbmUgTUFDQl9SQlFQSFx0XHQweDA0RDRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTc2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTIzMC0vKiBCaXRmaWVsZHMgaW4gTkNSICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyMzE6I2RlZmluZSBNQUNCX0xCX09GRlNFVFx0XHQwIC8qIHJlc2VydmVkICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyMzI6I2RlZmluZSBNQUNCX0xCX1NJWkVcdFx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjMzOiNkZWZpbmUgTUFDQl9MTEJfT0ZGU0VUXHRcdDEgLyogTG9vcCBiYWNrIGxvY2FsICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyMzQ6I2RlZmluZSBNQUNCX0xMQl9TSVpFXHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjIzNTojZGVmaW5lIE1BQ0JfUkVfT0ZGU0VUXHRcdDIgLyogUmVjZWl2ZSBlbmFibGUgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjIzNjojZGVmaW5lIE1BQ0JfUkVfU0laRVx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyMzc6I2RlZmluZSBNQUNCX1RFX09GRlNFVFx0XHQzIC8qIFRyYW5zbWl0IGVuYWJsZSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjM4OiNkZWZpbmUgTUFDQl9URV9TSVpFXHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjIzOTojZGVmaW5lIE1BQ0JfTVBFX09GRlNFVFx0XHQ0IC8qIE1hbmFnZW1lbnQgcG9ydCBlbmFibGUgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI0MDojZGVmaW5lIE1BQ0JfTVBFX1NJWkVcdFx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjQxOiNkZWZpbmUgTUFDQl9DTFJTVEFUX09GRlNFVFx0NSAvKiBDbGVhciBzdGF0cyByZWdzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNDI6I2RlZmluZSBNQUNCX0NMUlNUQVRfU0laRVx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjQzOiNkZWZpbmUgTUFDQl9JTkNTVEFUX09GRlNFVFx0NiAvKiBJbmNyZW1lbnRhbCBzdGF0cyByZWdzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNDQ6I2RlZmluZSBNQUNCX0lOQ1NUQVRfU0laRVx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjQ1OiNkZWZpbmUgTUFDQl9XRVNUQVRfT0ZGU0VUXHQ3IC8qIFdyaXRlIGVuYWJsZSBzdGF0cyByZWdzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNDY6I2RlZmluZSBNQUNCX1dFU1RBVF9TSVpFXHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNDc6I2RlZmluZSBNQUNCX0JQX09GRlNFVFx0XHQ4IC8qIEJhY2sgcHJlc3N1cmUgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI0ODojZGVmaW5lIE1BQ0JfQlBfU0laRVx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNDk6I2RlZmluZSBNQUNCX1RTVEFSVF9PRkZTRVRcdDkgLyogU3RhcnQgdHJhbnNtaXNzaW9uICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNTA6I2RlZmluZSBNQUNCX1RTVEFSVF9TSVpFXHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNTE6I2RlZmluZSBNQUNCX1RIQUxUX09GRlNFVFx0MTAgLyogVHJhbnNtaXQgaGFsdCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjUyOiNkZWZpbmUgTUFDQl9USEFMVF9TSVpFXHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI1MzojZGVmaW5lIE1BQ0JfTkNSX1RQRl9PRkZTRVRcdDExIC8qIFRyYW5zbWl0IHBhdXNlIGZyYW1lICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNTQ6I2RlZmluZSBNQUNCX05DUl9UUEZfU0laRVx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjU1OiNkZWZpbmUgTUFDQl9UWlFfT0ZGU0VUXHRcdDEyIC8qIFRyYW5zbWl0IHplcm8gcXVhbnR1bSBwYXVzZSBmcmFtZSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjU2OiNkZWZpbmUgTUFDQl9UWlFfU0laRVx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNTc6I2RlZmluZSBNQUNCX1NSVFNNX09GRlNFVFx0MTUgLyogU3RvcmUgUmVjZWl2ZSBUaW1lc3RhbXAgdG8gTWVtb3J5ICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNTg6I2RlZmluZSBNQUNCX1BUUFVOSV9PRkZTRVRcdDIwIC8qIFBUUCBVbmljYXN0IHBhY2tldCBlbmFibGUgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI1OTojZGVmaW5lIE1BQ0JfUFRQVU5JX1NJWkVcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI2MDojZGVmaW5lIE1BQ0JfT1NTTU9ERV9PRkZTRVRcdDI0IC8qIEVuYWJsZSBPbmUgU3RlcCBTeW5jaHJvIE1vZGUgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI2MTojZGVmaW5lIE1BQ0JfT1NTTU9ERV9TSVpFXHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNjI6I2RlZmluZSBNQUNCX01JSU9OUkdNSUlfT0ZGU0VUXHQyOCAvKiBNSUkgVXNhZ2Ugb24gUkdNSUkgSW50ZXJmYWNlICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNjM6I2RlZmluZSBNQUNCX01JSU9OUkdNSUlfU0laRVx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMjY0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMjY1LS8qIEJpdGZpZWxkcyBpbiBOQ0ZHUiAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjY2OiNkZWZpbmUgTUFDQl9TUERfT0ZGU0VUXHRcdDAgLyogU3BlZWQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI2NzojZGVmaW5lIE1BQ0JfU1BEX1NJWkVcdFx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjY4OiNkZWZpbmUgTUFDQl9GRF9PRkZTRVRcdFx0MSAvKiBGdWxsIGR1cGxleCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjY5OiNkZWZpbmUgTUFDQl9GRF9TSVpFXHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI3MDojZGVmaW5lIE1BQ0JfQklUX1JBVEVfT0ZGU0VUXHQyIC8qIERpc2NhcmQgbm9uLVZMQU4gZnJhbWVzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNzE6I2RlZmluZSBNQUNCX0JJVF9SQVRFX1NJWkVcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI3MjojZGVmaW5lIE1BQ0JfSkZSQU1FX09GRlNFVFx0MyAvKiByZXNlcnZlZCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjczOiNkZWZpbmUgTUFDQl9KRlJBTUVfU0laRVx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mjc0OiNkZWZpbmUgTUFDQl9DQUZfT0ZGU0VUXHRcdDQgLyogQ29weSBhbGwgZnJhbWVzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNzU6I2RlZmluZSBNQUNCX0NBRl9TSVpFXHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI3NjojZGVmaW5lIE1BQ0JfTkJDX09GRlNFVFx0XHQ1IC8qIE5vIGJyb2FkY2FzdCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mjc3OiNkZWZpbmUgTUFDQl9OQkNfU0laRVx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNzg6I2RlZmluZSBNQUNCX05DRkdSX01USV9PRkZTRVRcdDYgLyogTXVsdGljYXN0IGhhc2ggZW5hYmxlICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNzk6I2RlZmluZSBNQUNCX05DRkdSX01USV9TSVpFXHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyODA6I2RlZmluZSBNQUNCX1VOSV9PRkZTRVRcdFx0NyAvKiBVbmljYXN0IGhhc2ggZW5hYmxlICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyODE6I2RlZmluZSBNQUNCX1VOSV9TSVpFXHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI4MjojZGVmaW5lIE1BQ0JfQklHX09GRlNFVFx0XHQ4IC8qIFJlY2VpdmUgMTUzNiBieXRlIGZyYW1lcyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjgzOiNkZWZpbmUgTUFDQl9CSUdfU0laRVx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyODQ6I2RlZmluZSBNQUNCX0VBRV9PRkZTRVRcdFx0OSAvKiBFeHRlcm5hbCBhZGRyZXNzIG1hdGNoIGVuYWJsZSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mjg1OiNkZWZpbmUgTUFDQl9FQUVfU0laRVx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyODY6I2RlZmluZSBNQUNCX0NMS19PRkZTRVRcdFx0MTBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI4NzojZGVmaW5lIE1BQ0JfQ0xLX1NJWkVcdFx0MlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mjg4OiNkZWZpbmUgTUFDQl9SVFlfT0ZGU0VUXHRcdDEyIC8qIFJldHJ5IHRlc3QgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI4OTojZGVmaW5lIE1BQ0JfUlRZX1NJWkVcdFx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjkwOiNkZWZpbmUgTUFDQl9QQUVfT0ZGU0VUXHRcdDEzIC8qIFBhdXNlIGVuYWJsZSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjkxOiNkZWZpbmUgTUFDQl9QQUVfU0laRVx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyOTI6I2RlZmluZSBNQUNCX1JNOTIwMF9STUlJX09GRlNFVFx0MTMgLyogQVQ5MVJNOTIwMCBvbmx5ICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyOTM6I2RlZmluZSBNQUNCX1JNOTIwMF9STUlJX1NJWkVcdDEgIC8qIEFUOTFSTTkyMDAgb25seSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mjk0OiNkZWZpbmUgTUFDQl9SQk9GX09GRlNFVFx0MTQgLyogUmVjZWl2ZSBidWZmZXIgb2Zmc2V0ICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyOTU6I2RlZmluZSBNQUNCX1JCT0ZfU0laRVx0XHQyXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyOTY6I2RlZmluZSBNQUNCX1JMQ0VfT0ZGU0VUXHQxNiAvKiBMZW5ndGggZmllbGQgZXJyb3IgZnJhbWUgZGlzY2FyZCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mjk3OiNkZWZpbmUgTUFDQl9STENFX1NJWkVcdFx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mjk4OiNkZWZpbmUgTUFDQl9EUkZDU19PRkZTRVRcdDE3IC8qIEZDUyByZW1vdmUgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI5OTojZGVmaW5lIE1BQ0JfRFJGQ1NfU0laRVx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDozMDA6I2RlZmluZSBNQUNCX0VGUkhEX09GRlNFVFx0MThcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjMwMTojZGVmaW5lIE1BQ0JfRUZSSERfU0laRVx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDozMDI6I2RlZmluZSBNQUNCX0lSWEZDU19PRkZTRVRcdDE5XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDozMDM6I2RlZmluZSBNQUNCX0lSWEZDU19TSVpFXHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0zMDQtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMzY0LS8qIEJpdGZpZWxkcyBpbiBOU1IgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjM2NTojZGVmaW5lIE1BQ0JfTlNSX0xJTktfT0ZGU0VUXHQwIC8qIHBjc19saW5rX3N0YXRlICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDozNjY6I2RlZmluZSBNQUNCX05TUl9MSU5LX1NJWkVcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjM2NzojZGVmaW5lIE1BQ0JfTURJT19PRkZTRVRcdDEgLyogc3RhdHVzIG9mIHRoZSBtZGlvX2luIHBpbiAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MzY4OiNkZWZpbmUgTUFDQl9NRElPX1NJWkVcdFx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MzY5OiNkZWZpbmUgTUFDQl9JRExFX09GRlNFVFx0MiAvKiBUaGUgUEhZIG1hbmFnZW1lbnQgbG9naWMgaXMgaWRsZSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MzcwOiNkZWZpbmUgTUFDQl9JRExFX1NJWkVcdFx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMzcxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMzcyLS8qIEJpdGZpZWxkcyBpbiBUU1IgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjM3MzojZGVmaW5lIE1BQ0JfVUJSX09GRlNFVFx0XHQwIC8qIFVzZWQgYml0IHJlYWQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjM3NDojZGVmaW5lIE1BQ0JfVUJSX1NJWkVcdFx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mzc1OiNkZWZpbmUgTUFDQl9DT0xfT0ZGU0VUXHRcdDEgLyogQ29sbGlzaW9uIG9jY3VycmVkICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDozNzY6I2RlZmluZSBNQUNCX0NPTF9TSVpFXHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjM3NzojZGVmaW5lIE1BQ0JfVFNSX1JMRV9PRkZTRVRcdDIgLyogUmV0cnkgbGltaXQgZXhjZWVkZWQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjM3ODojZGVmaW5lIE1BQ0JfVFNSX1JMRV9TSVpFXHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDozNzk6I2RlZmluZSBNQUNCX1RHT19PRkZTRVRcdFx0MyAvKiBUcmFuc21pdCBnbyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MzgwOiNkZWZpbmUgTUFDQl9UR09fU0laRVx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDozODE6I2RlZmluZSBNQUNCX0JFWF9PRkZTRVRcdFx0NCAvKiBUWCBmcmFtZSBjb3JydXB0aW9uIGR1ZSB0byBBSEIgZXJyb3IgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjM4MjojZGVmaW5lIE1BQ0JfQkVYX1NJWkVcdFx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MzgzOiNkZWZpbmUgTUFDQl9STTkyMDBfQk5RX09GRlNFVFx0NCAvKiBBVDkxUk05MjAwIG9ubHkgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjM4NDojZGVmaW5lIE1BQ0JfUk05MjAwX0JOUV9TSVpFXHQxIC8qIEFUOTFSTTkyMDAgb25seSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mzg1OiNkZWZpbmUgTUFDQl9DT01QX09GRlNFVFx0NSAvKiBUcm5hc21pdCBjb21wbGV0ZSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mzg2OiNkZWZpbmUgTUFDQl9DT01QX1NJWkVcdFx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mzg3OiNkZWZpbmUgTUFDQl9VTkRfT0ZGU0VUXHRcdDYgLyogVHJuYXNtaXQgdW5kZXIgcnVuICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDozODg6I2RlZmluZSBNQUNCX1VORF9TSVpFXHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTM4OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTM5MC0vKiBCaXRmaWVsZHMgaW4gUlNSICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDozOTE6I2RlZmluZSBNQUNCX0JOQV9PRkZTRVRcdFx0MCAvKiBCdWZmZXIgbm90IGF2YWlsYWJsZSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MzkyOiNkZWZpbmUgTUFDQl9CTkFfU0laRVx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDozOTM6I2RlZmluZSBNQUNCX1JFQ19PRkZTRVRcdFx0MSAvKiBGcmFtZSByZWNlaXZlZCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mzk0OiNkZWZpbmUgTUFDQl9SRUNfU0laRVx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDozOTU6I2RlZmluZSBNQUNCX09WUl9PRkZTRVRcdFx0MiAvKiBSZWNlaXZlIG92ZXJydW4gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjM5NjojZGVmaW5lIE1BQ0JfT1ZSX1NJWkVcdFx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMzk3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMzk4LS8qIEJpdGZpZWxkcyBpbiBJU1IvSUVSL0lEUi9JTVIgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjM5OTojZGVmaW5lIE1BQ0JfTUZEX09GRlNFVFx0XHQwIC8qIE1hbmFnZW1lbnQgZnJhbWUgc2VudCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDAwOiNkZWZpbmUgTUFDQl9NRkRfU0laRVx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0MDE6I2RlZmluZSBNQUNCX1JDT01QX09GRlNFVFx0MSAvKiBSZWNlaXZlIGNvbXBsZXRlICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0MDI6I2RlZmluZSBNQUNCX1JDT01QX1NJWkVcdFx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDAzOiNkZWZpbmUgTUFDQl9SWFVCUl9PRkZTRVRcdDIgLyogUlggdXNlZCBiaXQgcmVhZCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDA0OiNkZWZpbmUgTUFDQl9SWFVCUl9TSVpFXHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQwNTojZGVmaW5lIE1BQ0JfVFhVQlJfT0ZGU0VUXHQzIC8qIFRYIHVzZWQgYml0IHJlYWQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQwNjojZGVmaW5lIE1BQ0JfVFhVQlJfU0laRVx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0MDc6I2RlZmluZSBNQUNCX0lTUl9UVU5EX09GRlNFVFx0NCAvKiBFbmFibGUgVFggYnVmZmVyIHVuZGVyIHJ1biBpbnRlcnJ1cHQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQwODojZGVmaW5lIE1BQ0JfSVNSX1RVTkRfU0laRVx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDA5OiNkZWZpbmUgTUFDQl9JU1JfUkxFX09GRlNFVFx0NSAvKiBFTiByZXRyeSBleGNlZWRlZC9sYXRlIGNvbGwgaW50ZXJydXB0ICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0MTA6I2RlZmluZSBNQUNCX0lTUl9STEVfU0laRVx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDExOiNkZWZpbmUgTUFDQl9UWEVSUl9PRkZTRVRcdDYgLyogRU4gVFggZnJhbWUgY29ycnVwdCBmcm9tIGVycm9yIGludGVycnVwdCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDEyOiNkZWZpbmUgTUFDQl9UWEVSUl9TSVpFXHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQxMzojZGVmaW5lIE1BQ0JfUk05MjAwX1RCUkVfT0ZGU0VUXHQ2IC8qIEVOIG1heSBzZW5kIG5ldyBmcmFtZSBpbnRlcnJ1cHQgKFJNOTIwMCkgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQxNDojZGVmaW5lIE1BQ0JfUk05MjAwX1RCUkVfU0laRVx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDE1OiNkZWZpbmUgTUFDQl9UQ09NUF9PRkZTRVRcdDcgLyogRW5hYmxlIHRyYW5zbWl0IGNvbXBsZXRlIGludGVycnVwdCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDE2OiNkZWZpbmUgTUFDQl9UQ09NUF9TSVpFXHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQxNzojZGVmaW5lIE1BQ0JfSVNSX0xJTktfT0ZGU0VUXHQ5IC8qIEVuYWJsZSBsaW5rIGNoYW5nZSBpbnRlcnJ1cHQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQxODojZGVmaW5lIE1BQ0JfSVNSX0xJTktfU0laRVx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDE5OiNkZWZpbmUgTUFDQl9JU1JfUk9WUl9PRkZTRVRcdDEwIC8qIEVuYWJsZSByZWNlaXZlIG92ZXJydW4gaW50ZXJydXB0ICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0MjA6I2RlZmluZSBNQUNCX0lTUl9ST1ZSX1NJWkVcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQyMTojZGVmaW5lIE1BQ0JfSFJFU1BfT0ZGU0VUXHQxMSAvKiBFbmFibGUgaHJzZXAgbm90IE9LIGludGVycnVwdCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDIyOiNkZWZpbmUgTUFDQl9IUkVTUF9TSVpFXHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQyMzojZGVmaW5lIE1BQ0JfUEZSX09GRlNFVFx0XHQxMiAvKiBFbmFibGUgcGF1c2UgZnJhbWUgdy8gcXVhbnR1bSBpbnRlcnJ1cHQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQyNDojZGVmaW5lIE1BQ0JfUEZSX1NJWkVcdFx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDI1OiNkZWZpbmUgTUFDQl9QVFpfT0ZGU0VUXHRcdDEzIC8qIEVuYWJsZSBwYXVzZSB0aW1lIHplcm8gaW50ZXJydXB0ICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0MjY6I2RlZmluZSBNQUNCX1BUWl9TSVpFXHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQyNzojZGVmaW5lIE1BQ0JfV09MX09GRlNFVFx0XHQxNCAvKiBFbmFibGUgd2FrZS1vbi1sYW4gaW50ZXJydXB0ICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0Mjg6I2RlZmluZSBNQUNCX1dPTF9TSVpFXHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQyOTojZGVmaW5lIE1BQ0JfRFJRRlJfT0ZGU0VUXHQxOCAvKiBQVFAgRGVsYXkgUmVxdWVzdCBGcmFtZSBSZWNlaXZlZCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDMwOiNkZWZpbmUgTUFDQl9EUlFGUl9TSVpFXHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQzMTojZGVmaW5lIE1BQ0JfU0ZSX09GRlNFVFx0XHQxOSAvKiBQVFAgU3luYyBGcmFtZSBSZWNlaXZlZCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDMyOiNkZWZpbmUgTUFDQl9TRlJfU0laRVx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0MzM6I2RlZmluZSBNQUNCX0RSUUZUX09GRlNFVFx0MjAgLyogUFRQIERlbGF5IFJlcXVlc3QgRnJhbWUgVHJhbnNtaXR0ZWQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQzNDojZGVmaW5lIE1BQ0JfRFJRRlRfU0laRVx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0MzU6I2RlZmluZSBNQUNCX1NGVF9PRkZTRVRcdFx0MjEgLyogUFRQIFN5bmMgRnJhbWUgVHJhbnNtaXR0ZWQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQzNjojZGVmaW5lIE1BQ0JfU0ZUX1NJWkVcdFx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDM3OiNkZWZpbmUgTUFDQl9QRFJRRlJfT0ZGU0VUXHQyMiAvKiBQRGVsYXkgUmVxdWVzdCBGcmFtZSBSZWNlaXZlZCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDM4OiNkZWZpbmUgTUFDQl9QRFJRRlJfU0laRVx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDM5OiNkZWZpbmUgTUFDQl9QRFJTRlJfT0ZGU0VUXHQyMyAvKiBQRGVsYXkgUmVzcG9uc2UgRnJhbWUgUmVjZWl2ZWQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ0MDojZGVmaW5lIE1BQ0JfUERSU0ZSX1NJWkVcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ0MTojZGVmaW5lIE1BQ0JfUERSUUZUX09GRlNFVFx0MjQgLyogUERlbGF5IFJlcXVlc3QgRnJhbWUgVHJhbnNtaXR0ZWQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ0MjojZGVmaW5lIE1BQ0JfUERSUUZUX1NJWkVcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ0MzojZGVmaW5lIE1BQ0JfUERSU0ZUX09GRlNFVFx0MjUgLyogUERlbGF5IFJlc3BvbnNlIEZyYW1lIFRyYW5zbWl0dGVkICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0NDQ6I2RlZmluZSBNQUNCX1BEUlNGVF9TSVpFXHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0NDU6I2RlZmluZSBNQUNCX1NSSV9PRkZTRVRcdFx0MjYgLyogVFNVIFNlY29uZHMgUmVnaXN0ZXIgSW5jcmVtZW50ICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0NDY6I2RlZmluZSBNQUNCX1NSSV9TSVpFXHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTQ0Ny0jZGVmaW5lIEdFTV9XT0xfT0ZGU0VUXHRcdDI4IC8qIEVuYWJsZSB3YWtlLW9uLWxhbiBpbnRlcnJ1cHQgKi9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC00NTAtLyogVGltZXIgaW5jcmVtZW50IGZpZWxkcyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDUxOiNkZWZpbmUgTUFDQl9USV9DTlNfT0ZGU0VUXHQwXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0NTI6I2RlZmluZSBNQUNCX1RJX0NOU19TSVpFXHQ4XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0NTM6I2RlZmluZSBNQUNCX1RJX0FDTlNfT0ZGU0VUXHQ4XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0NTQ6I2RlZmluZSBNQUNCX1RJX0FDTlNfU0laRVx0OFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDU1OiNkZWZpbmUgTUFDQl9USV9OSVRfT0ZGU0VUXHQxNlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDU2OiNkZWZpbmUgTUFDQl9USV9OSVRfU0laRVx0OFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNDU3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNDU4LS8qIEJpdGZpZWxkcyBpbiBNQU4gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ1OTojZGVmaW5lIE1BQ0JfREFUQV9PRkZTRVRcdDAgLyogZGF0YSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDYwOiNkZWZpbmUgTUFDQl9EQVRBX1NJWkVcdFx0MTZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ2MTojZGVmaW5lIE1BQ0JfQ09ERV9PRkZTRVRcdDE2IC8qIE11c3QgYmUgd3JpdHRlbiB0byAxMCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDYyOiNkZWZpbmUgTUFDQl9DT0RFX1NJWkVcdFx0MlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDYzOiNkZWZpbmUgTUFDQl9SRUdBX09GRlNFVFx0MTggLyogUmVnaXN0ZXIgYWRkcmVzcyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDY0OiNkZWZpbmUgTUFDQl9SRUdBX1NJWkVcdFx0NVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDY1OiNkZWZpbmUgTUFDQl9QSFlBX09GRlNFVFx0MjMgLyogUEhZIGFkZHJlc3MgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ2NjojZGVmaW5lIE1BQ0JfUEhZQV9TSVpFXHRcdDVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ2NzojZGVmaW5lIE1BQ0JfUldfT0ZGU0VUXHRcdDI4IC8qIE9wZXJhdGlvbi4gMTAgaXMgcmVhZC4gMDEgaXMgd3JpdGUuICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0Njg6I2RlZmluZSBNQUNCX1JXX1NJWkVcdFx0MlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDY5OiNkZWZpbmUgTUFDQl9TT0ZfT0ZGU0VUXHRcdDMwIC8qIE11c3QgYmUgd3JpdHRlbiB0byAxIGZvciBDbGF1c2UgMjIgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ3MDojZGVmaW5lIE1BQ0JfU09GX1NJWkVcdFx0MlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNDcxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNDcyLS8qIEJpdGZpZWxkcyBpbiBVU1JJTyAoQVZSMzIpICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0NzM6I2RlZmluZSBNQUNCX01JSV9PRkZTRVRcdFx0XHRcdDBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ3NDojZGVmaW5lIE1BQ0JfTUlJX1NJWkVcdFx0XHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ3NTojZGVmaW5lIE1BQ0JfRUFNX09GRlNFVFx0XHRcdFx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDc2OiNkZWZpbmUgTUFDQl9FQU1fU0laRVx0XHRcdFx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDc3OiNkZWZpbmUgTUFDQl9UWF9QQVVTRV9PRkZTRVRcdFx0XHQyXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0Nzg6I2RlZmluZSBNQUNCX1RYX1BBVVNFX1NJWkVcdFx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0Nzk6I2RlZmluZSBNQUNCX1RYX1BBVVNFX1pFUk9fT0ZGU0VUXHRcdDNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ4MDojZGVmaW5lIE1BQ0JfVFhfUEFVU0VfWkVST19TSVpFXHRcdFx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNDgxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNDgyLS8qIEJpdGZpZWxkcyBpbiBVU1JJTyAoQVQ5MSkgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ4MzojZGVmaW5lIE1BQ0JfUk1JSV9PRkZTRVRcdFx0XHQwXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0ODQ6I2RlZmluZSBNQUNCX1JNSUlfU0laRVx0XHRcdFx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNDg1LSNkZWZpbmUgR0VNX1JHTUlJX09GRlNFVFx0XHRcdDAgLyogR0VNIGdpZ2FiaXQgbW9kZSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNDg2LSNkZWZpbmUgR0VNX1JHTUlJX1NJWkVcdFx0XHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ4NzojZGVmaW5lIE1BQ0JfQ0xLRU5fT0ZGU0VUXHRcdFx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDg4OiNkZWZpbmUgTUFDQl9DTEtFTl9TSVpFXHRcdFx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC00ODktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC00OTAtLyogQml0ZmllbGRzIGluIFdPTCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDkxOiNkZWZpbmUgTUFDQl9JUF9PRkZTRVRcdFx0XHRcdDBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ5MjojZGVmaW5lIE1BQ0JfSVBfU0laRVx0XHRcdFx0MTZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ5MzojZGVmaW5lIE1BQ0JfTUFHX09GRlNFVFx0XHRcdFx0MTZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ5NDojZGVmaW5lIE1BQ0JfTUFHX1NJWkVcdFx0XHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ5NTojZGVmaW5lIE1BQ0JfQVJQX09GRlNFVFx0XHRcdFx0MTdcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ5NjojZGVmaW5lIE1BQ0JfQVJQX1NJWkVcdFx0XHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ5NzojZGVmaW5lIE1BQ0JfU0ExX09GRlNFVFx0XHRcdFx0MThcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ5ODojZGVmaW5lIE1BQ0JfU0ExX1NJWkVcdFx0XHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ5OTojZGVmaW5lIE1BQ0JfV09MX01USV9PRkZTRVRcdFx0XHQxOVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NTAwOiNkZWZpbmUgTUFDQl9XT0xfTVRJX1NJWkVcdFx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC01MDEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC01MDItLyogQml0ZmllbGRzIGluIE1JRCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NTAzOiNkZWZpbmUgTUFDQl9JRE5VTV9PRkZTRVRcdFx0XHQxNlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NTA0OiNkZWZpbmUgTUFDQl9JRE5VTV9TSVpFXHRcdFx0XHQxMlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NTA1OiNkZWZpbmUgTUFDQl9SRVZfT0ZGU0VUXHRcdFx0XHQwXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo1MDY6I2RlZmluZSBNQUNCX1JFVl9TSVpFXHRcdFx0XHQxNlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNTA3LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTY3OC0vKiBCaXRmaWVsZHMgaW4gcXVldWUgcG9pbnRlciByZWdpc3RlcnMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjY3OTojZGVmaW5lIE1BQ0JfUVVFVUVfRElTQUJMRV9PRkZTRVRcdFx0MCAvKiBkaXNhYmxlIHF1ZXVlICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo2ODA6I2RlZmluZSBNQUNCX1FVRVVFX0RJU0FCTEVfU0laRVx0XHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTY4MS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC03MjktLyogQ29uc3RhbnRzIGZvciBDTEsgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjczMDojZGVmaW5lIE1BQ0JfQ0xLX0RJVjhcdFx0XHRcdDBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjczMTojZGVmaW5lIE1BQ0JfQ0xLX0RJVjE2XHRcdFx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3MzI6I2RlZmluZSBNQUNCX0NMS19ESVYzMlx0XHRcdFx0MlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzMzOiNkZWZpbmUgTUFDQl9DTEtfRElWNjRcdFx0XHRcdDNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTczNC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC03NDUtLyogQ29uc3RhbnRzIGZvciBNQU4gcmVnaXN0ZXIgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc0NjojZGVmaW5lIE1BQ0JfTUFOX0MyMl9TT0ZcdFx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3NDc6I2RlZmluZSBNQUNCX01BTl9DMjJfV1JJVEVcdFx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3NDg6I2RlZmluZSBNQUNCX01BTl9DMjJfUkVBRFx0XHRcdDJcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc0OTojZGVmaW5lIE1BQ0JfTUFOX0MyMl9DT0RFXHRcdFx0MlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNzUwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzUxOiNkZWZpbmUgTUFDQl9NQU5fQzQ1X1NPRlx0XHRcdDBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc1MjojZGVmaW5lIE1BQ0JfTUFOX0M0NV9BRERSXHRcdFx0MFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzUzOiNkZWZpbmUgTUFDQl9NQU5fQzQ1X1dSSVRFXHRcdFx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzU0OiNkZWZpbmUgTUFDQl9NQU5fQzQ1X1BPU1RfUkVBRF9JTkNSXHRcdDJcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc1NTojZGVmaW5lIE1BQ0JfTUFOX0M0NV9SRUFEXHRcdFx0M1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzU2OiNkZWZpbmUgTUFDQl9NQU5fQzQ1X0NPREVcdFx0XHQyXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC03NTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC03NTgtLyogQ2FwYWJpbGl0eSBtYXNrIGJpdHMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc1OTojZGVmaW5lIE1BQ0JfQ0FQU19JU1JfQ0xFQVJfT05fV1JJVEVcdFx0QklUKDApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3NjA6I2RlZmluZSBNQUNCX0NBUFNfVVNSSU9fSEFTX0NMS0VOXHRcdEJJVCgxKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzYxOiNkZWZpbmUgTUFDQl9DQVBTX1VTUklPX0RFRkFVTFRfSVNfTUlJX0dNSUlcdEJJVCgyKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzYyOiNkZWZpbmUgTUFDQl9DQVBTX05PX0dJR0FCSVRfSEFMRlx0XHRCSVQoMylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc2MzojZGVmaW5lIE1BQ0JfQ0FQU19VU1JJT19ESVNBQkxFRFx0XHRCSVQoNClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc2NDojZGVmaW5lIE1BQ0JfQ0FQU19KVU1CT1x0XHRcdFx0QklUKDUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3NjU6I2RlZmluZSBNQUNCX0NBUFNfR0VNX0hBU19QVFBcdFx0XHRCSVQoNilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc2NjojZGVmaW5lIE1BQ0JfQ0FQU19CRF9SRF9QUkVGRVRDSFx0XHRCSVQoNylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc2NzojZGVmaW5lIE1BQ0JfQ0FQU19ORUVEU19SU1RPTlVCUlx0XHRCSVQoOClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc2ODojZGVmaW5lIE1BQ0JfQ0FQU19NSUlPTlJHTUlJXHRcdFx0QklUKDkpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3Njk6I2RlZmluZSBNQUNCX0NBUFNfTkVFRF9UU1VDTEtcdFx0XHRCSVQoMTApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3NzA6I2RlZmluZSBNQUNCX0NBUFNfUVVFVUVfRElTQUJMRVx0XHRcdEJJVCgxMSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc3MTojZGVmaW5lIE1BQ0JfQ0FQU19RQlZcdFx0XHRcdEJJVCgxMilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc3MjojZGVmaW5lIE1BQ0JfQ0FQU19QQ1NcdFx0XHRcdEJJVCgxMylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc3MzojZGVmaW5lIE1BQ0JfQ0FQU19ISUdIX1NQRUVEXHRcdFx0QklUKDE0KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Nzc0OiNkZWZpbmUgTUFDQl9DQVBTX0NMS19IV19DSEdcdFx0XHRCSVQoMTUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3NzU6I2RlZmluZSBNQUNCX0NBUFNfTUFDQl9JU19FTUFDXHRcdFx0QklUKDE2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Nzc2OiNkZWZpbmUgTUFDQl9DQVBTX0ZJRk9fTU9ERVx0XHRcdEJJVCgxNylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc3NzojZGVmaW5lIE1BQ0JfQ0FQU19HSUdBQklUX01PREVfQVZBSUxBQkxFXHRCSVQoMTgpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3Nzg6I2RlZmluZSBNQUNCX0NBUFNfU0dfRElTQUJMRURcdFx0XHRCSVQoMTkpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3Nzk6I2RlZmluZSBNQUNCX0NBUFNfTUFDQl9JU19HRU1cdFx0XHRCSVQoMjApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3ODA6I2RlZmluZSBNQUNCX0NBUFNfRE1BXzY0Qlx0XHRcdEJJVCgyMSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc4MTojZGVmaW5lIE1BQ0JfQ0FQU19ETUFfUFRQXHRcdFx0QklUKDIyKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzgyOiNkZWZpbmUgTUFDQl9DQVBTX1JTQ1x0XHRcdFx0QklUKDIzKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzgzOiNkZWZpbmUgTUFDQl9DQVBTX05PX0xTT1x0XHRcdEJJVCgyNClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc4NDojZGVmaW5lIE1BQ0JfQ0FQU19FRUVcdFx0XHRcdEJJVCgyNSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc4NTojZGVmaW5lIE1BQ0JfQ0FQU19VU1JJT19IQVNfTUlJXHRcdFx0QklUKDI2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Nzg2OiNkZWZpbmUgTUFDQl9DQVBTX1VTUklPX0hBU19SRUZDTEtfU09VUkNFXHRCSVQoMjcpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3ODc6I2RlZmluZSBNQUNCX0NBUFNfVVNSSU9fSEFTX1RTVUNMS19TT1VSQ0VcdEJJVCgyOClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTc4OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTc4OS0vKiBMU08gc2V0dGluZ3MgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc5MDojZGVmaW5lIE1BQ0JfTFNPX1VGT19FTkFCTEVcdFx0XHQweDAxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3OTE6I2RlZmluZSBNQUNCX0xTT19UU09fRU5BQkxFXHRcdFx0MHgwMlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNzkyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNzkzLS8qIEJpdCBtYW5pcHVsYXRpb24gbWFjcm9zICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3OTQ6I2RlZmluZSBNQUNCX0JJVChuYW1lKVx0XHRcdFx0XHRcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Nzk1Olx0KDEgXHUwMDNjXHUwMDNjIE1BQ0JfIyNuYW1lIyNfT0ZGU0VUKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Nzk2OiNkZWZpbmUgTUFDQl9CRihuYW1lLHZhbHVlKVx0XHRcdFx0XFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc5NzpcdCgoKHZhbHVlKSBcdTAwMjYgKCgxIFx1MDAzY1x1MDAzYyBNQUNCXyMjbmFtZSMjX1NJWkUpIC0gMSkpXHRcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Nzk4Olx0IFx1MDAzY1x1MDAzYyBNQUNCXyMjbmFtZSMjX09GRlNFVClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc5OTojZGVmaW5lIE1BQ0JfQkZFWFQobmFtZSx2YWx1ZSlcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODAwOlx0KCgodmFsdWUpIFx1MDAzZVx1MDAzZSBNQUNCXyMjbmFtZSMjX09GRlNFVClcdFx0XFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjgwMTpcdCBcdTAwMjYgKCgxIFx1MDAzY1x1MDAzYyBNQUNCXyMjbmFtZSMjX1NJWkUpIC0gMSkpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4MDI6I2RlZmluZSBNQUNCX0JGSU5TKG5hbWUsdmFsdWUsb2xkKVx0XHRcdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4MDM6XHQoKChvbGQpIFx1MDAyNiB+KCgoMSBcdTAwM2NcdTAwM2MgTUFDQl8jI25hbWUjI19TSVpFKSAtIDEpXHRcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODA0Olx0XHQgICAgXHUwMDNjXHUwMDNjIE1BQ0JfIyNuYW1lIyNfT0ZGU0VUKSlcdFx0XFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjgwNTpcdCB8IE1BQ0JfQkYobmFtZSx2YWx1ZSkpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC04MDYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtODIwLS8qIFJlZ2lzdGVyIGFjY2VzcyBtYWNyb3MgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjgyMTojZGVmaW5lIG1hY2JfcmVhZGwocG9ydCwgcmVnKVx0XHQocG9ydCktXHUwMDNlbWFjYl9yZWdfcmVhZGwoKHBvcnQpLCBNQUNCXyMjcmVnKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODIyOiNkZWZpbmUgbWFjYl93cml0ZWwocG9ydCwgcmVnLCB2YWx1ZSlcdChwb3J0KS1cdTAwM2VtYWNiX3JlZ193cml0ZWwoKHBvcnQpLCBNQUNCXyMjcmVnLCAodmFsdWUpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtODIzLSNkZWZpbmUgZ2VtX3JlYWRsKHBvcnQsIHJlZylcdFx0KHBvcnQpLVx1MDAzZW1hY2JfcmVnX3JlYWRsKChwb3J0KSwgR0VNXyMjcmVnKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTgyOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjgzMDovKiBDb25kaXRpb25hbCBHRU0vTUFDQiBtYWNyb3MuICBUaGVzZSBwZXJmb3JtIHRoZSBvcGVyYXRpb24gdG8gdGhlIGNvcnJlY3RcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjgzMTogKiByZWdpc3RlciBkZXBlbmRlbnQgb24gd2hldGhlciB0aGUgZGV2aWNlIGlzIGEgR0VNIG9yIGEgTUFDQi4gIEZvciByZWdpc3RlcnNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTgzMi0gKiBhbmQgYml0ZmllbGRzIHRoYXQgYXJlIGNvbW1vbiBhY3Jvc3MgYm90aCBkZXZpY2VzLCB1c2UgbWFjYl97cmVhZCx3cml0ZX1sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtODUyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODUzOiNkZWZpbmUgTUFDQl9SRUFEX05TUihicClcdG1hY2JfcmVhZGwoYnAsIE5TUilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTg1NC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaD04Njk9c3RydWN0IG1hY2JfZG1hX2Rlc2NfcHRwIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC04NzQtLyogRE1BIGRlc2NyaXB0b3IgYml0ZmllbGRzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4NzU6I2RlZmluZSBNQUNCX1JYX1VTRURfT0ZGU0VUXHRcdFx0MFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODc2OiNkZWZpbmUgTUFDQl9SWF9VU0VEX1NJWkVcdFx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4Nzc6I2RlZmluZSBNQUNCX1JYX1dSQVBfT0ZGU0VUXHRcdFx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODc4OiNkZWZpbmUgTUFDQl9SWF9XUkFQX1NJWkVcdFx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4Nzk6I2RlZmluZSBNQUNCX1JYX1dBRERSX09GRlNFVFx0XHRcdDJcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjg4MDojZGVmaW5lIE1BQ0JfUlhfV0FERFJfU0laRVx0XHRcdDMwXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC04ODEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4ODI6I2RlZmluZSBNQUNCX1JYX0ZSTUxFTl9PRkZTRVRcdFx0XHQwXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4ODM6I2RlZmluZSBNQUNCX1JYX0ZSTUxFTl9TSVpFXHRcdFx0MTJcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjg4NDojZGVmaW5lIE1BQ0JfUlhfT0ZGU0VUX09GRlNFVFx0XHRcdDEyXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4ODU6I2RlZmluZSBNQUNCX1JYX09GRlNFVF9TSVpFXHRcdFx0MlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODg2OiNkZWZpbmUgTUFDQl9SWF9TT0ZfT0ZGU0VUXHRcdFx0MTRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjg4NzojZGVmaW5lIE1BQ0JfUlhfU09GX1NJWkVcdFx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4ODg6I2RlZmluZSBNQUNCX1JYX0VPRl9PRkZTRVRcdFx0XHQxNVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODg5OiNkZWZpbmUgTUFDQl9SWF9FT0ZfU0laRVx0XHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjg5MDojZGVmaW5lIE1BQ0JfUlhfQ0ZJX09GRlNFVFx0XHRcdDE2XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4OTE6I2RlZmluZSBNQUNCX1JYX0NGSV9TSVpFXHRcdFx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODkyOiNkZWZpbmUgTUFDQl9SWF9WTEFOX1BSSV9PRkZTRVRcdFx0XHQxN1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODkzOiNkZWZpbmUgTUFDQl9SWF9WTEFOX1BSSV9TSVpFXHRcdFx0M1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODk0OiNkZWZpbmUgTUFDQl9SWF9QUklfVEFHX09GRlNFVFx0XHRcdDIwXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4OTU6I2RlZmluZSBNQUNCX1JYX1BSSV9UQUdfU0laRVx0XHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjg5NjojZGVmaW5lIE1BQ0JfUlhfVkxBTl9UQUdfT0ZGU0VUXHRcdFx0MjFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjg5NzojZGVmaW5lIE1BQ0JfUlhfVkxBTl9UQUdfU0laRVx0XHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjg5ODojZGVmaW5lIE1BQ0JfUlhfVFlQRUlEX01BVENIX09GRlNFVFx0XHQyMlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODk5OiNkZWZpbmUgTUFDQl9SWF9UWVBFSURfTUFUQ0hfU0laRVx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5MDA6I2RlZmluZSBNQUNCX1JYX1NBNF9NQVRDSF9PRkZTRVRcdFx0MjNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjkwMTojZGVmaW5lIE1BQ0JfUlhfU0E0X01BVENIX1NJWkVcdFx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5MDI6I2RlZmluZSBNQUNCX1JYX1NBM19NQVRDSF9PRkZTRVRcdFx0MjRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjkwMzojZGVmaW5lIE1BQ0JfUlhfU0EzX01BVENIX1NJWkVcdFx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5MDQ6I2RlZmluZSBNQUNCX1JYX1NBMl9NQVRDSF9PRkZTRVRcdFx0MjVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjkwNTojZGVmaW5lIE1BQ0JfUlhfU0EyX01BVENIX1NJWkVcdFx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5MDY6I2RlZmluZSBNQUNCX1JYX1NBMV9NQVRDSF9PRkZTRVRcdFx0MjZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjkwNzojZGVmaW5lIE1BQ0JfUlhfU0ExX01BVENIX1NJWkVcdFx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5MDg6I2RlZmluZSBNQUNCX1JYX0VYVF9NQVRDSF9PRkZTRVRcdFx0MjhcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjkwOTojZGVmaW5lIE1BQ0JfUlhfRVhUX01BVENIX1NJWkVcdFx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5MTA6I2RlZmluZSBNQUNCX1JYX1VIQVNIX01BVENIX09GRlNFVFx0XHQyOVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6OTExOiNkZWZpbmUgTUFDQl9SWF9VSEFTSF9NQVRDSF9TSVpFXHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjkxMjojZGVmaW5lIE1BQ0JfUlhfTUhBU0hfTUFUQ0hfT0ZGU0VUXHRcdDMwXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5MTM6I2RlZmluZSBNQUNCX1JYX01IQVNIX01BVENIX1NJWkVcdFx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6OTE0OiNkZWZpbmUgTUFDQl9SWF9CUk9BRENBU1RfT0ZGU0VUXHRcdDMxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5MTU6I2RlZmluZSBNQUNCX1JYX0JST0FEQ0FTVF9TSVpFXHRcdFx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtOTE2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6OTE3OiNkZWZpbmUgTUFDQl9SWF9GUk1MRU5fTUFTS1x0XHRcdDB4RkZGXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5MTg6I2RlZmluZSBNQUNCX1JYX0pGUk1MRU5fTUFTS1x0XHRcdDB4M0ZGRlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtOTE5LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTkyNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjkyODojZGVmaW5lIE1BQ0JfVFhfRlJNTEVOX09GRlNFVFx0XHRcdDBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjkyOTojZGVmaW5lIE1BQ0JfVFhfRlJNTEVOX1NJWkVcdFx0XHQxMVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6OTMwOiNkZWZpbmUgTUFDQl9UWF9MQVNUX09GRlNFVFx0XHRcdDE1XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5MzE6I2RlZmluZSBNQUNCX1RYX0xBU1RfU0laRVx0XHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjkzMjojZGVmaW5lIE1BQ0JfVFhfTk9DUkNfT0ZGU0VUXHRcdFx0MTZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjkzMzojZGVmaW5lIE1BQ0JfVFhfTk9DUkNfU0laRVx0XHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjkzNDojZGVmaW5lIE1BQ0JfTVNTX01GU19PRkZTRVRcdFx0XHQxNlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6OTM1OiNkZWZpbmUgTUFDQl9NU1NfTUZTX1NJWkVcdFx0XHQxNFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6OTM2OiNkZWZpbmUgTUFDQl9UWF9MU09fT0ZGU0VUXHRcdFx0MTdcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjkzNzojZGVmaW5lIE1BQ0JfVFhfTFNPX1NJWkVcdFx0XHQyXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5Mzg6I2RlZmluZSBNQUNCX1RYX1RDUF9TRVFfU1JDX09GRlNFVFx0XHQxOVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6OTM5OiNkZWZpbmUgTUFDQl9UWF9UQ1BfU0VRX1NSQ19TSVpFXHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjk0MDojZGVmaW5lIE1BQ0JfVFhfQlVGX0VYSEFVU1RFRF9PRkZTRVRcdFx0MjdcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjk0MTojZGVmaW5lIE1BQ0JfVFhfQlVGX0VYSEFVU1RFRF9TSVpFXHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjk0MjojZGVmaW5lIE1BQ0JfVFhfVU5ERVJSVU5fT0ZGU0VUXHRcdFx0MjhcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjk0MzojZGVmaW5lIE1BQ0JfVFhfVU5ERVJSVU5fU0laRVx0XHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjk0NDojZGVmaW5lIE1BQ0JfVFhfRVJST1JfT0ZGU0VUXHRcdFx0MjlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjk0NTojZGVmaW5lIE1BQ0JfVFhfRVJST1JfU0laRVx0XHRcdDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjk0NjojZGVmaW5lIE1BQ0JfVFhfV1JBUF9PRkZTRVRcdFx0XHQzMFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6OTQ3OiNkZWZpbmUgTUFDQl9UWF9XUkFQX1NJWkVcdFx0XHQxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5NDg6I2RlZmluZSBNQUNCX1RYX1VTRURfT0ZGU0VUXHRcdFx0MzFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjk0OTojZGVmaW5lIE1BQ0JfVFhfVVNFRF9TSVpFXHRcdFx0MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtOTUwLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oPTExOTQ9c3RydWN0IG1hY2Jfb3JfZ2VtX29wcyB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTIwMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjEyMDI6LyogTUFDQi1QVFAgaW50ZXJmYWNlOiBhZGFwdCB0byBwbGF0Zm9ybSBuZWVkcy4gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEyMDMtc3RydWN0IG1hY2JfcHRwX2luZm8ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oPTEyOTg9c3RydWN0IG1hY2Ige1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEzMTMtXHR1bnNpZ25lZCBpbnRcdFx0bnVtX3F1ZXVlcztcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzMwIDE2OjM1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4xbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE4MDAwCgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogMTU1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IExpbmUgb2YgSW5xdWlyeSoqCgpPa2F5LCBzbyBJJiMzOTttIGRpdmluZyBpbnRvIHRoaXMgYG1hY2JgIHNpdHVhdGlvbi4gRmlyc3QgdGhpbmdzIGZpcnN0LCBsZXQmIzM5O3MgdGFrZSBhIGxvb2sgYXQgYG1hY2JfcGNpLmNgIGFuZCB1bmRlcnN0YW5kIHRoZSBwcm9iaW5nIHByb2Nlc3MgZm9yIHRoZXNlIGRldmljZXMuIEkmIzM5O20gd29uZGVyaW5nLCBpcyB0aGUgTUFDQiBhY3R1YWxseSBlbXVsYXRlZCB3aXRoaW4gUUVNVT8gQW5kIHRoYXQgbGVhZHMgdG8gYSBiaWdnZXIgcXVlc3Rpb246IERvZXMgUUVNVSBldmVuIHByb3ZpZGUgYW55IGVtdWxhdGlvbiBmb3IgdGhlIENhZGVuY2UgR0VNIG9yIE1BQ0IgYXJjaGl0ZWN0dXJlPwoKQWhhLCB3YWl0IGEgbWludXRlISBJIHNlZW0gdG8gcmVjYWxsIHRoYXQgUUVNVSAqZG9lcyogZW11bGF0ZSBDYWRlbmNlIEdFTSwgbGlrZSBmb3IgdGhlIFhpbGlueCBaeW5xIHBsYXRmb3JtLCBpbXBsZW1lbnRlZCBpbiBgY2FkZW5jZV9nZW0uY2AsIHNwZWNpZmljYWxseSB1bmRlciB0aGUgYGFybS1zb2Z0bW11YCBzZWN0aW9uLiBCdXQgaXMgdGhpcyByZWxldmFudCB0byB0aGUgc3RhbmRhcmQgc3l6a2FsbGVyIC8gUUVNVSB4ODZfNjQgb3IgYXJtNjQgZW52aXJvbm1lbnRzPyBPciBpcyBgbWFjYl9wY2lgIGV2ZW4gcHJlc2VudCBpbiB0aGF0IGNvbmZpZ3VyYXRpb24/CgpSaWdodCwgYmFjayB0byB0aGUgc291cmNlLiBJIG5lZWQgdG8gcmUtZXhhbWluZSBgbWFjYl9wY2kuY2AgYW5kIHNwZWNpZmljYWxseSBwaW5wb2ludCB3aGVyZSBgZ2VtX3B0cF9pbml0YCBnZXRzIGNhbGxlZC4gVGhpcyBpcyBrZXkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzAgMTY6Mzc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcGNpLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDEwMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuICAgMjpcdC8qXG4gICAzOlx0ICogRE9DOiBDYWRlbmNlIEdFTSBQQ0kgd3JhcHBlci5cbiAgIDQ6XHQgKlxuICAgNTpcdCAqIENvcHlyaWdodCAoQykgMjAxNiBDYWRlbmNlIERlc2lnbiBTeXN0ZW1zIC0gaHR0cHM6Ly93d3cuY2FkZW5jZS5jb21cbiAgIDY6XHQgKlxuICAgNzpcdCAqIEF1dGhvcnM6IFJhZmFsIE96aWVibG8gXHUwMDNjcmFmYWxvQGNhZGVuY2UuY29tXHUwMDNlXG4gICA4Olx0ICpcdCAgICBCYXJ0b3N6IEZvbHRhIFx1MDAzY2Jmb2x0YUBjYWRlbmNlLmNvbVx1MDAzZVxuICAgOTpcdCAqL1xuICAxMDpcdFxuICAxMTpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L2Nsay5oXHUwMDNlXG4gIDEyOlx0I2luY2x1ZGUgXHUwMDNjbGludXgvY2xrLXByb3ZpZGVyLmhcdTAwM2VcbiAgMTM6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC9ldGhlcmRldmljZS5oXHUwMDNlXG4gIDE0Olx0I2luY2x1ZGUgXHUwMDNjbGludXgvbW9kdWxlLmhcdTAwM2VcbiAgMTU6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC9wY2kuaFx1MDAzZVxuICAxNjpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L3BsYXRmb3JtX2RldmljZS5oXHUwMDNlXG4gIDE3Olx0I2luY2x1ZGUgXCYjMzQ7bWFjYi5oXCYjMzQ7XG4gIDE4Olx0XG4gIDE5Olx0I2RlZmluZSBQQ0lfRFJJVkVSX05BTUUgXCYjMzQ7bWFjYl9wY2lcJiMzNDtcbiAgMjA6XHQjZGVmaW5lIFBMQVRfRFJJVkVSX05BTUUgXCYjMzQ7bWFjYlwmIzM0O1xuICAyMTpcdFxuICAyMjpcdCNkZWZpbmUgUENJX0RFVklDRV9JRF9DRE5TX01BQ0IgMHhlMDA3XG4gIDIzOlx0XG4gIDI0Olx0I2RlZmluZSBHRU1fUENMS19SQVRFIDUwMDAwMDAwXG4gIDI1Olx0I2RlZmluZSBHRU1fSENMS19SQVRFIDUwMDAwMDAwXG4gIDI2Olx0XG4gIDI3Olx0c3RhdGljIGludCBtYWNiX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwY2ksIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcbiAgMjg6XHR7XG4gIDI5Olx0XHRpbnQgZXJyO1xuICAzMDpcdFx0c3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldjtcbiAgMzE6XHRcdHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2VfaW5mbyBwbGF0X2luZm87XG4gIDMyOlx0XHRzdHJ1Y3QgbWFjYl9wbGF0Zm9ybV9kYXRhIHBsYXRfZGF0YTtcbiAgMzM6XHRcdHN0cnVjdCByZXNvdXJjZSByZXNbMl07XG4gIDM0Olx0XG4gIDM1Olx0XHQvKiBlbmFibGUgcGNpIGRldmljZSAqL1xuICAzNjpcdFx0ZXJyID0gcGNpbV9lbmFibGVfZGV2aWNlKHBjaSk7XG4gIDM3Olx0XHRpZiAoZXJyIFx1MDAzYyAwKSB7XG4gIDM4Olx0XHRcdGRldl9lcnIoXHUwMDI2cGNpLVx1MDAzZWRldiwgXCYjMzQ7RW5hYmxpbmcgUENJIGRldmljZSBoYXMgZmFpbGVkOiAlZFwmIzM0OywgZXJyKTtcbiAgMzk6XHRcdFx0cmV0dXJuIGVycjtcbiAgNDA6XHRcdH1cbiAgNDE6XHRcbiAgNDI6XHRcdHBjaV9zZXRfbWFzdGVyKHBjaSk7XG4gIDQzOlx0XG4gIDQ0Olx0XHQvKiBzZXQgdXAgcmVzb3VyY2VzICovXG4gIDQ1Olx0XHRtZW1zZXQocmVzLCAweDAwLCBzaXplb2Yoc3RydWN0IHJlc291cmNlKSAqIEFSUkFZX1NJWkUocmVzKSk7XG4gIDQ2Olx0XHRyZXNbMF0uc3RhcnQgPSBwY2lfcmVzb3VyY2Vfc3RhcnQocGNpLCAwKTtcbiAgNDc6XHRcdHJlc1swXS5lbmQgPSBwY2lfcmVzb3VyY2VfZW5kKHBjaSwgMCk7XG4gIDQ4Olx0XHRyZXNbMF0ubmFtZSA9IFBDSV9EUklWRVJfTkFNRTtcbiAgNDk6XHRcdHJlc1swXS5mbGFncyA9IElPUkVTT1VSQ0VfTUVNO1xuICA1MDpcdFx0cmVzWzFdLnN0YXJ0ID0gcGNpX2lycV92ZWN0b3IocGNpLCAwKTtcbiAgNTE6XHRcdHJlc1sxXS5uYW1lID0gUENJX0RSSVZFUl9OQU1FO1xuICA1MjpcdFx0cmVzWzFdLmZsYWdzID0gSU9SRVNPVVJDRV9JUlE7XG4gIDUzOlx0XG4gIDU0Olx0XHRkZXZfaW5mbyhcdTAwMjZwY2ktXHUwMDNlZGV2LCBcJiMzNDtFTUFDIHBoeXNpY2FsIGJhc2UgYWRkcjogJXBhXFxuXCYjMzQ7LFxuICA1NTpcdFx0XHQgXHUwMDI2cmVzWzBdLnN0YXJ0KTtcbiAgNTY6XHRcbiAgNTc6XHRcdC8qIHNldCB1cCBtYWNiIHBsYXRmb3JtIGRhdGEgKi9cbiAgNTg6XHRcdG1lbXNldChcdTAwMjZwbGF0X2RhdGEsIDAsIHNpemVvZihwbGF0X2RhdGEpKTtcbiAgNTk6XHRcbiAgNjA6XHRcdC8qIGluaXRpYWxpemUgY2xvY2tzICovXG4gIDYxOlx0XHRwbGF0X2RhdGEucGNsayA9IGNsa19yZWdpc3Rlcl9maXhlZF9yYXRlKFx1MDAyNnBjaS1cdTAwM2VkZXYsIFwmIzM0O3BjbGtcJiMzNDssIE5VTEwsIDAsXG4gIDYyOlx0XHRcdFx0XHRcdFx0IEdFTV9QQ0xLX1JBVEUpO1xuICA2MzpcdFx0aWYgKElTX0VSUihwbGF0X2RhdGEucGNsaykpIHtcbiAgNjQ6XHRcdFx0ZXJyID0gUFRSX0VSUihwbGF0X2RhdGEucGNsayk7XG4gIDY1Olx0XHRcdGdvdG8gZXJyX3BjbGtfcmVnaXN0ZXI7XG4gIDY2Olx0XHR9XG4gIDY3Olx0XG4gIDY4Olx0XHRwbGF0X2RhdGEuaGNsayA9IGNsa19yZWdpc3Rlcl9maXhlZF9yYXRlKFx1MDAyNnBjaS1cdTAwM2VkZXYsIFwmIzM0O2hjbGtcJiMzNDssIE5VTEwsIDAsXG4gIDY5Olx0XHRcdFx0XHRcdFx0IEdFTV9IQ0xLX1JBVEUpO1xuICA3MDpcdFx0aWYgKElTX0VSUihwbGF0X2RhdGEuaGNsaykpIHtcbiAgNzE6XHRcdFx0ZXJyID0gUFRSX0VSUihwbGF0X2RhdGEuaGNsayk7XG4gIDcyOlx0XHRcdGdvdG8gZXJyX2hjbGtfcmVnaXN0ZXI7XG4gIDczOlx0XHR9XG4gIDc0Olx0XG4gIDc1Olx0XHQvKiBzZXQgdXAgcGxhdGZvcm0gZGV2aWNlIGluZm8gKi9cbiAgNzY6XHRcdG1lbXNldChcdTAwMjZwbGF0X2luZm8sIDAsIHNpemVvZihwbGF0X2luZm8pKTtcbiAgNzc6XHRcdHBsYXRfaW5mby5wYXJlbnQgPSBcdTAwMjZwY2ktXHUwMDNlZGV2O1xuICA3ODpcdFx0cGxhdF9pbmZvLmZ3bm9kZSA9IHBjaS1cdTAwM2VkZXYuZndub2RlO1xuICA3OTpcdFx0cGxhdF9pbmZvLm5hbWUgPSBQTEFUX0RSSVZFUl9OQU1FO1xuICA4MDpcdFx0cGxhdF9pbmZvLmlkID0gcGNpLVx1MDAzZWRldmZuO1xuICA4MTpcdFx0cGxhdF9pbmZvLnJlcyA9IHJlcztcbiAgODI6XHRcdHBsYXRfaW5mby5udW1fcmVzID0gQVJSQVlfU0laRShyZXMpO1xuICA4MzpcdFx0cGxhdF9pbmZvLmRhdGEgPSBcdTAwMjZwbGF0X2RhdGE7XG4gIDg0Olx0XHRwbGF0X2luZm8uc2l6ZV9kYXRhID0gc2l6ZW9mKHBsYXRfZGF0YSk7XG4gIDg1Olx0XHRwbGF0X2luZm8uZG1hX21hc2sgPSBwY2ktXHUwMDNlZG1hX21hc2s7XG4gIDg2Olx0XG4gIDg3Olx0XHQvKiByZWdpc3RlciBwbGF0Zm9ybSBkZXZpY2UgKi9cbiAgODg6XHRcdHBkZXYgPSBwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXJfZnVsbChcdTAwMjZwbGF0X2luZm8pO1xuICA4OTpcdFx0aWYgKElTX0VSUihwZGV2KSkge1xuICA5MDpcdFx0XHRlcnIgPSBQVFJfRVJSKHBkZXYpO1xuICA5MTpcdFx0XHRnb3RvIGVycl9wbGF0X2Rldl9yZWdpc3RlcjtcbiAgOTI6XHRcdH1cbiAgOTM6XHRcbiAgOTQ6XHRcdHBjaV9zZXRfZHJ2ZGF0YShwY2ksIHBkZXYpO1xuICA5NTpcdFxuICA5NjpcdFx0cmV0dXJuIDA7XG4gIDk3Olx0XG4gIDk4Olx0ZXJyX3BsYXRfZGV2X3JlZ2lzdGVyOlxuICA5OTpcdFx0Y2xrX3VucmVnaXN0ZXJfZml4ZWRfcmF0ZShwbGF0X2RhdGEuaGNsayk7XG4gMTAwOlx0XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzAgMTY6Mzc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTk5NjAKCQkJCQkJCW91dHB1dDogNDUKCQkJCQkJCXRob3VnaHRzOiA1MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzLiBIZXJlJiMzOTtzIHdoYXQgSSYjMzk7bSB0aGlua2luZyBhcyBJIGFwcHJvYWNoIHRoaXMgcGF0Y2g6CgoqKkFuYWx5emluZyB0aGUgYGdlbV9wdHBfaW5pdGAgRnVuY3Rpb24qKgoKQWxyaWdodCwgSSYjMzk7bSBnb2luZyB0byBnZXQgcmlnaHQgdG8gdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgdGhpcyBwYXRjaCBpcyBkb2luZywgYW5kIHRoYXQgc3RhcnRzIHdpdGggdGhlIGBnZW1fcHRwX2luaXRgIGZ1bmN0aW9uLiBUaGUgZmlyc3QgdGhpbmcgSSYjMzk7bSBkb2luZyBpcyBsb2FkaW5nIHVwIHRoZSBwYXRjaC4gSXQmIzM5O3MgdGltZSB0byByZWFkIHRocm91Z2ggaXQuIFNwZWNpZmljYWxseSwgSSYjMzk7bSBnb2luZyB0byB6ZXJvIGluIG9uIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBgZ2VtX3B0cF9pbml0YC4gSSYjMzk7bSBnb2luZyB0byBsb29rIGF0IHRoZSBkZXRhaWxzIHdpdGhpbiB0aGUgcGF0Y2guIEkmIzM5O20gZ29pbmcgdG8gbG9vayBhdCB0aGUgZGlmZmVyZW5jZXMgdG8gc2VlIHdoYXQmIzM5O3MgY2hhbmdlZCBhbmQgdHJ5IHRvIHVuZGVyc3RhbmQgdGhlIHJhdGlvbmFsZSBvZiB0aGUgY2hhbmdlLgpUaGVuLCBsZXQmIzM5O3MgemVybyBpbiBvbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jYCBhcm91bmQgbGluZSAzMzAuIEkmIzM5O20gZ29pbmcgdG8gZXhhbWluZSB0aGUgY29kZSBhcm91bmQgdGhhdCBzcGVjaWZpYyBsaW5lLiBJIGhhdmUgYSBmZWVsaW5nIHRoYXQmIzM5O3Mgd2hlcmUgdGhlIGNvcmUgb2YgdGhlIGNoYW5nZSBvciB0aGUgcmVsYXRlZCBmdW5jdGlvbmFsaXR5IGlzIGltcGxlbWVudGVkLiBVbmRlcnN0YW5kaW5nIHdoYXQmIzM5O3MgaGFwcGVuaW5nIGluIHRoYXQgaW1tZWRpYXRlIGNvbnRleHQgaXMga2V5IHRvIGdyYXNwaW5nIHRoZSBvdmVyYWxsIGltcGFjdCBvZiB0aGUgcGF0Y2guIExldCYjMzk7cyBzZWUgaWYgdGhpcyBpcyBhbiB1cGRhdGUsIGEgYnVnZml4LCBvciBzb21ldGhpbmcgZW50aXJlbHkgbmV3LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzMwIDE2OjM4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMzEwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDgwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAzMTA6XHRcdGRlc2NfcHRwID0gbWFjYl9wdHBfZGVzYyhicCwgZGVzYyk7XG4gMzExOlx0XHQvKiBVbmxpa2VseSBidXQgY2hlY2sgKi9cbiAzMTI6XHRcdGlmICghZGVzY19wdHApIHtcbiAzMTM6XHRcdFx0ZGV2X3dhcm5fcmF0ZWxpbWl0ZWQoXHUwMDI2YnAtXHUwMDNlcGRldi1cdTAwM2VkZXYsXG4gMzE0Olx0XHRcdFx0XHQgICAgIFwmIzM0O1RpbWVzdGFtcCBub3Qgc3VwcG9ydGVkIGluIEJEXFxuXCYjMzQ7KTtcbiAzMTU6XHRcdFx0cmV0dXJuO1xuIDMxNjpcdFx0fVxuIDMxNzpcdFxuIDMxODpcdFx0LyogZW5zdXJlIHRzXzEvdHNfMiBpcyBsb2FkZWQgYWZ0ZXIgY3RybCAoVFhfVVNFRCBjaGVjaykgKi9cbiAzMTk6XHRcdGRtYV9ybWIoKTtcbiAzMjA6XHRcdGdlbV9od190aW1lc3RhbXAoYnAsIGRlc2NfcHRwLVx1MDAzZXRzXzEsIGRlc2NfcHRwLVx1MDAzZXRzXzIsIFx1MDAyNnRzKTtcbiAzMjE6XHRcbiAzMjI6XHRcdG1lbXNldChcdTAwMjZzaGh3dHN0YW1wcywgMCwgc2l6ZW9mKHNoaHd0c3RhbXBzKSk7XG4gMzIzOlx0XHRzaGh3dHN0YW1wcy5od3RzdGFtcCA9IGt0aW1lX3NldCh0cy50dl9zZWMsIHRzLnR2X25zZWMpO1xuIDMyNDpcdFx0c2tiX3RzdGFtcF90eChza2IsIFx1MDAyNnNoaHd0c3RhbXBzKTtcbiAzMjU6XHR9XG4gMzI2Olx0XG4gMzI3Olx0dm9pZCBnZW1fcHRwX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbiAzMjg6XHR7XG4gMzI5Olx0XHRzdHJ1Y3QgbWFjYiAqYnAgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xuIDMzMDpcdFxuIDMzMTpcdFx0YnAtXHUwMDNlcHRwX2Nsb2NrX2luZm8gPSBnZW1fcHRwX2NhcHNfdGVtcGxhdGU7XG4gMzMyOlx0XG4gMzMzOlx0XHRzcGluX2xvY2tfaW5pdChcdTAwMjZicC1cdTAwM2V0c3VfY2xrX2xvY2spO1xuIDMzNDpcdFxuIDMzNTpcdFx0Lyogbm9taW5hbCBmcmVxdWVuY3kgYW5kIG1heGltdW0gYWRqdXN0bWVudCBpbiBwcGIgKi9cbiAzMzY6XHRcdGJwLVx1MDAzZXRzdV9yYXRlID0gYnAtXHUwMDNlcHRwX2luZm8tXHUwMDNlZ2V0X3RzdV9yYXRlKGJwKTtcbiAzMzc6XHRcdGJwLVx1MDAzZXB0cF9jbG9ja19pbmZvLm1heF9hZGogPSBicC1cdTAwM2VwdHBfaW5mby1cdTAwM2VnZXRfcHRwX21heF9hZGooKTtcbiAzMzg6XHRcdGdlbV9wdHBfaW5pdF90aW1lcihicCk7XG4gMzM5Olx0XHRicC1cdTAwM2VwdHBfY2xvY2sgPSBwdHBfY2xvY2tfcmVnaXN0ZXIoXHUwMDI2YnAtXHUwMDNlcHRwX2Nsb2NrX2luZm8sIFx1MDAyNm5ldGRldi1cdTAwM2VkZXYpO1xuIDM0MDpcdFx0aWYgKElTX0VSUihicC1cdTAwM2VwdHBfY2xvY2spKSB7XG4gMzQxOlx0XHRcdHByX2VycihcJiMzNDtwdHAgY2xvY2sgcmVnaXN0ZXIgZmFpbGVkOiAlbGRcXG5cJiMzNDssXG4gMzQyOlx0XHRcdFx0UFRSX0VSUihicC1cdTAwM2VwdHBfY2xvY2spKTtcbiAzNDM6XHRcdFx0YnAtXHUwMDNlcHRwX2Nsb2NrID0gTlVMTDtcbiAzNDQ6XHRcdFx0cmV0dXJuO1xuIDM0NTpcdFx0fSBlbHNlIGlmIChicC1cdTAwM2VwdHBfY2xvY2sgPT0gTlVMTCkge1xuIDM0NjpcdFx0XHRwcl9lcnIoXCYjMzQ7cHRwIGNsb2NrIHJlZ2lzdGVyIGZhaWxlZFxcblwmIzM0Oyk7XG4gMzQ3Olx0XHRcdHJldHVybjtcbiAzNDg6XHRcdH1cbiAzNDk6XHRcbiAzNTA6XHRcdGdlbV9wdHBfaW5pdF90c3UoYnApO1xuIDM1MTpcdFxuIDM1MjpcdFx0ZGV2X2luZm8oXHUwMDI2YnAtXHUwMDNlcGRldi1cdTAwM2VkZXYsIFwmIzM0OyVzIHB0cCBjbG9jayByZWdpc3RlcmVkLlxcblwmIzM0OyxcbiAzNTM6XHRcdFx0IEdFTV9QVFBfVElNRVJfTkFNRSk7XG4gMzU0Olx0fVxuIDM1NTpcdFxuIDM1NjpcdHZvaWQgZ2VtX3B0cF9yZW1vdmUoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbiAzNTc6XHR7XG4gMzU4Olx0XHRzdHJ1Y3QgbWFjYiAqYnAgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xuIDM1OTpcdFxuIDM2MDpcdFx0aWYgKGJwLVx1MDAzZXB0cF9jbG9jaykge1xuIDM2MTpcdFx0XHRwdHBfY2xvY2tfdW5yZWdpc3RlcihicC1cdTAwM2VwdHBfY2xvY2spO1xuIDM2MjpcdFx0XHRicC1cdTAwM2VwdHBfY2xvY2sgPSBOVUxMO1xuIDM2MzpcdFx0fVxuIDM2NDpcdFxuIDM2NTpcdFx0Z2VtX3B0cF9jbGVhcl90aW1lcihicCk7XG4gMzY2Olx0XG4gMzY3Olx0XHRkZXZfaW5mbyhcdTAwMjZicC1cdTAwM2VwZGV2LVx1MDAzZWRldiwgXCYjMzQ7JXMgcHRwIGNsb2NrIHVucmVnaXN0ZXJlZC5cXG5cJiMzNDssXG4gMzY4Olx0XHRcdCBHRU1fUFRQX1RJTUVSX05BTUUpO1xuIDM2OTpcdH1cbiAzNzA6XHRcbiAzNzE6XHRzdGF0aWMgaW50IGdlbV9wdHBfc2V0X3RzX21vZGUoc3RydWN0IG1hY2IgKmJwLFxuIDM3MjpcdFx0XHRcdCAgICAgICBlbnVtIG1hY2JfYmRfY29udHJvbCB0eF9iZF9jb250cm9sLFxuIDM3MzpcdFx0XHRcdCAgICAgICBlbnVtIG1hY2JfYmRfY29udHJvbCByeF9iZF9jb250cm9sKVxuIDM3NDpcdHtcbiAzNzU6XHRcdGdlbV93cml0ZWwoYnAsIFRYQkRDVFJMLCBHRU1fQkYoVFhUU01PREUsIHR4X2JkX2NvbnRyb2wpKTtcbiAzNzY6XHRcdGdlbV93cml0ZWwoYnAsIFJYQkRDVFJMLCBHRU1fQkYoUlhUU01PREUsIHJ4X2JkX2NvbnRyb2wpKTtcbiAzNzc6XHRcbiAzNzg6XHRcdHJldHVybiAwO1xuIDM3OTpcdH1cbiAzODA6XHRcbiAzODE6XHRpbnQgZ2VtX2dldF9od3RzdChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxuIDM4MjpcdFx0XHQgIHN0cnVjdCBrZXJuZWxfaHd0c3RhbXBfY29uZmlnICp0c3RhbXBfY29uZmlnKVxuIDM4MzpcdHtcbiAzODQ6XHRcdHN0cnVjdCBtYWNiICpicCA9IG5ldGRldl9wcml2KG5ldGRldik7XG4gMzg1Olx0XG4gMzg2Olx0XHQqdHN0YW1wX2NvbmZpZyA9IGJwLVx1MDAzZXRzdGFtcF9jb25maWc7XG4gMzg3Olx0XHRpZiAoIW1hY2JfZG1hX3B0cChicCkpXG4gMzg4Olx0XHRcdHJldHVybiAtRU9QTk9UU1VQUDtcbiAzODk6XHRcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMCAxNjozODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTY1MgoJCQkJCQkJb3V0cHV0OiAzNQoJCQkJCQkJdGhvdWdodHM6IDEzMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipEZWJ1Z2dpbmcgYSBQb3RlbnRpYWwgUmFjZSBDb25kaXRpb24qKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gSXQgbG9va3MgbGlrZSB3ZSBoYXZlIGEgcG90ZW50aWFsIHJhY2UgY29uZGl0aW9uIGluIGBnZW1fcHRwX2luaXRgLiBTcGVjaWZpY2FsbHksIGBnZW1fcHRwX2luaXRfdGltZXIoYnApYCBpcyBiZWluZyBjYWxsZWQgYmVmb3JlIHRoZSBgc3Bpbl9sb2NrX2luaXQoJmFtcDticC0mZ3Q7dHN1X2Nsa19sb2NrKWAuIE5vdywgdGhhdCBpbW1lZGlhdGVseSByYWlzZXMgYSByZWQgZmxhZy4gV2UgbmVlZCB0byBrbm93IGlmIGBnZW1fcHRwX2luaXRfdGltZXJgIG9yLCBmb3IgdGhhdCBtYXR0ZXIsIGBwdHBfY2xvY2tfcmVnaXN0ZXJgIChzaW5jZSB0aGV5IGNvdWxkIGJlIHJlbGF0ZWQpIGFyZSB0b3VjaGluZyBgYnAtJmd0O3RzdV9jbGtfbG9ja2AuIEkmIzM5O2xsIGdvIHNlYXJjaCB0aGUgY29kZS4gTG9va3MgbGlrZSBJIHdpbGwgbmVlZCB0byBzZWFyY2ggZm9yIGB0c3VfY2xrX2xvY2tgIGluIGBtYWNiX3B0cC5jYCB0byBzZWUgaG93IGl0JiMzOTtzIGJlaW5nIHVzZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzMwIDE2OjM4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3RzdV9jbGtfbG9jayYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg9MTI5OD1zdHJ1Y3QgbWFjYiB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTM2Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjEzNjM6XHRzcGlubG9ja190IHRzdV9jbGtfbG9jazsgLyogZ2VtIHRzdSBjbG9jayBsb2NraW5nICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMzY0LVx0dW5zaWduZWQgaW50IHRzdV9yYXRlO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYz00Mz1zdGF0aWMgaW50IGdlbV90c3VfZ2V0X3RpbWUoc3RydWN0IHB0cF9jbG9ja19pbmZvICpwdHAsIHN0cnVjdCB0aW1lc3BlYzY0ICp0cyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMtNTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmM6NTE6XHRzcGluX2xvY2tfaXJxc2F2ZShcdTAwMjZicC1cdTAwM2V0c3VfY2xrX2xvY2ssIGZsYWdzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYy01Mi1cdHB0cF9yZWFkX3N5c3RlbV9wcmV0cyhzdHMpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYy03Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYzo3MzpcdHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoXHUwMDI2YnAtXHUwMDNldHN1X2Nsa19sb2NrLCBmbGFncyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMtNzQtXHR0cy1cdTAwM2V0dl9zZWMgPSAoKCh1NjQpc2VjaCBcdTAwM2NcdTAwM2MgR0VNX1RTTF9TSVpFKSB8IHNlY2wpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jPTc5PXN0YXRpYyBpbnQgZ2VtX3RzdV9zZXRfdGltZShzdHJ1Y3QgcHRwX2Nsb2NrX2luZm8gKnB0cCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMtODktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmM6OTA6XHRzcGluX2xvY2tfaXJxc2F2ZShcdTAwMjZicC1cdTAwM2V0c3VfY2xrX2xvY2ssIGZsYWdzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYy05MS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMtOTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmM6OTk6XHRzcGluX3VubG9ja19pcnFyZXN0b3JlKFx1MDAyNmJwLVx1MDAzZXRzdV9jbGtfbG9jaywgZmxhZ3MpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jLTEwMC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmM9MTA0PXN0YXRpYyBpbnQgZ2VtX3RzdV9pbmNyX3NldChzdHJ1Y3QgbWFjYiAqYnAsIHN0cnVjdCB0c3VfaW5jciAqaW5jcl9zcGVjKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYy0xMTItXHQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYzoxMTM6XHRzcGluX2xvY2tfaXJxc2F2ZShcdTAwMjZicC1cdTAwM2V0c3VfY2xrX2xvY2ssIGZsYWdzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYy0xMTQtXHQvKiBSZWdCaXRbMTU6MF0gPSBTdWJuc1syMzo4XTsgUmVnQml0WzMxOjI0XSA9IFN1Ym5zWzc6MF0gKi9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMtMTE4LVx0Z2VtX3dyaXRlbChicCwgVEksIEdFTV9CRihOU0lOQ1IsIGluY3Jfc3BlYy1cdTAwM2VucykpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jOjExOTpcdHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoXHUwMDI2YnAtXHUwMDNldHN1X2Nsa19sb2NrLCBmbGFncyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMtMTIwLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYz0zMjc9dm9pZCBnZW1fcHRwX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMtMzMyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jOjMzMzpcdHNwaW5fbG9ja19pbml0KFx1MDAyNmJwLVx1MDAzZXRzdV9jbGtfbG9jayk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMtMzM0LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMCAxNjozODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMzAzNwoJCQkJCQkJb3V0cHV0OiA0NQoJCQkJCQkJdGhvdWdodHM6IDcxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IGFuYWx5c2lzIG9mIHdoYXQmIzM5O3MgZ29pbmcgb246CgoqKkRpc3NlY3RpbmcgdGhlIGBnZW1fdHN1X2luY3Jfc2V0YCBGdW5jdGlvbiBDYWxsKioKCk9rYXksIHNvIEkmIzM5O20gdHJhY2tpbmcgdGhpcyBmdW5jdGlvbiBjYWxsLCBgZ2VtX3RzdV9pbmNyX3NldGAsIGFuZCBpdCBsb29rcyBsaWtlIGl0JiMzOTtzIGJlaW5nIGluaXRpYXRlZCBmcm9tIHdpdGhpbiBgZ2VtX3B0cF9pbml0X3RpbWVyKGJwKWAuICBUaGF0JiMzOTtzIG15IHN0YXJ0aW5nIHBvaW50LiBOb3csIHRvIHVuZGVyc3RhbmQgdGhlIGNvbnRleHQgb2YgdGhlIGNhbGwsIEkgbmVlZCB0byBkaXZlIGRlZXBlciBpbnRvIGBnZW1fcHRwX2luaXRfdGltZXIoYnApYC4gVGhlIGNvZGUgc3VnZ2VzdHMgdGhlIGZ1bmN0aW9uIGlzIGxvY2F0ZWQgaW4gYG1hY2JfcHRwLmNgLCBsaW5lcyAxMDAgdG8gMjUwIHNlZW0gdGhlIHJlbGV2YW50IGFyZWEgZm9yIHRoaXMgZGVlcGVyIGxvb2suIEkmIzM5O2xsIGZvY3VzIG15IGF0dGVudGlvbiBvbiB0aGF0IHNlY3Rpb24gdG8gc2VlIHdoYXQmIzM5O3MgbGVhZGluZyB1cCB0byB0aGUgYGdlbV90c3VfaW5jcl9zZXRgIGNhbGwgYW5kIHdoYXQmIzM5O3MgaGFwcGVuaW5nIGltbWVkaWF0ZWx5IGFmdGVyLiBUaGF0IHNob3VsZCBnaXZlIG1lIHRoZSBpbnNpZ2h0cyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgcm9sZSBvZiBgZ2VtX3RzdV9pbmNyX3NldGAgaW4gdGhlIGxhcmdlciBQVFAgaW5pdGlhbGl6YXRpb24gZmxvdy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzAgMTY6NDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxMDAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogODAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDEwMDpcdFxuIDEwMTpcdFx0cmV0dXJuIDA7XG4gMTAyOlx0fVxuIDEwMzpcdFxuIDEwNDpcdHN0YXRpYyBpbnQgZ2VtX3RzdV9pbmNyX3NldChzdHJ1Y3QgbWFjYiAqYnAsIHN0cnVjdCB0c3VfaW5jciAqaW5jcl9zcGVjKVxuIDEwNTpcdHtcbiAxMDY6XHRcdHVuc2lnbmVkIGxvbmcgZmxhZ3M7XG4gMTA3Olx0XG4gMTA4Olx0XHQvKiB0c3VfdGltZXJfaW5jciByZWdpc3RlciBtdXN0IGJlIHdyaXR0ZW4gYWZ0ZXJcbiAxMDk6XHRcdCAqIHRoZSB0c3VfdGltZXJfaW5jcl9zdWJfbnMgcmVnaXN0ZXIgYW5kIHRoZSB3cml0ZSBvcGVyYXRpb25cbiAxMTA6XHRcdCAqIHdpbGwgY2F1c2UgdGhlIHZhbHVlIHdyaXR0ZW4gdG8gdGhlIHRzdV90aW1lcl9pbmNyX3N1Yl9ucyByZWdpc3RlclxuIDExMTpcdFx0ICogdG8gdGFrZSBlZmZlY3QuXG4gMTEyOlx0XHQgKi9cbiAxMTM6XHRcdHNwaW5fbG9ja19pcnFzYXZlKFx1MDAyNmJwLVx1MDAzZXRzdV9jbGtfbG9jaywgZmxhZ3MpO1xuIDExNDpcdFx0LyogUmVnQml0WzE1OjBdID0gU3VibnNbMjM6OF07IFJlZ0JpdFszMToyNF0gPSBTdWJuc1s3OjBdICovXG4gMTE1Olx0XHRnZW1fd3JpdGVsKGJwLCBUSVNVQk4sIEdFTV9CRihTVUJOU0lOQ1JMLCBpbmNyX3NwZWMtXHUwMDNlc3ViX25zKSB8XG4gMTE2Olx0XHRcdCAgIEdFTV9CRihTVUJOU0lOQ1JILCAoaW5jcl9zcGVjLVx1MDAzZXN1Yl9ucyBcdTAwM2VcdTAwM2VcbiAxMTc6XHRcdFx0XHQgIEdFTV9TVUJOU0lOQ1JMX1NJWkUpKSk7XG4gMTE4Olx0XHRnZW1fd3JpdGVsKGJwLCBUSSwgR0VNX0JGKE5TSU5DUiwgaW5jcl9zcGVjLVx1MDAzZW5zKSk7XG4gMTE5Olx0XHRzcGluX3VubG9ja19pcnFyZXN0b3JlKFx1MDAyNmJwLVx1MDAzZXRzdV9jbGtfbG9jaywgZmxhZ3MpO1xuIDEyMDpcdFxuIDEyMTpcdFx0cmV0dXJuIDA7XG4gMTIyOlx0fVxuIDEyMzpcdFxuIDEyNDpcdHN0YXRpYyBpbnQgZ2VtX3B0cF9hZGpmaW5lKHN0cnVjdCBwdHBfY2xvY2tfaW5mbyAqcHRwLCBsb25nIHNjYWxlZF9wcG0pXG4gMTI1Olx0e1xuIDEyNjpcdFx0c3RydWN0IG1hY2IgKmJwID0gY29udGFpbmVyX29mKHB0cCwgc3RydWN0IG1hY2IsIHB0cF9jbG9ja19pbmZvKTtcbiAxMjc6XHRcdHN0cnVjdCB0c3VfaW5jciBpbmNyX3NwZWM7XG4gMTI4Olx0XHRib29sIG5lZ19hZGogPSBmYWxzZTtcbiAxMjk6XHRcdHUzMiB3b3JkO1xuIDEzMDpcdFx0dTY0IGFkajtcbiAxMzE6XHRcbiAxMzI6XHRcdGlmIChzY2FsZWRfcHBtIFx1MDAzYyAwKSB7XG4gMTMzOlx0XHRcdG5lZ19hZGogPSB0cnVlO1xuIDEzNDpcdFx0XHRzY2FsZWRfcHBtID0gLXNjYWxlZF9wcG07XG4gMTM1Olx0XHR9XG4gMTM2Olx0XG4gMTM3Olx0XHQvKiBBZGp1c3RtZW50IGlzIHJlbGF0aXZlIHRvIGJhc2UgZnJlcXVlbmN5ICovXG4gMTM4Olx0XHRpbmNyX3NwZWMuc3ViX25zID0gYnAtXHUwMDNldHN1X2luY3Iuc3ViX25zO1xuIDEzOTpcdFx0aW5jcl9zcGVjLm5zID0gYnAtXHUwMDNldHN1X2luY3IubnM7XG4gMTQwOlx0XG4gMTQxOlx0XHQvKiBzY2FsaW5nOiB1bnVzZWQoOGJpdCkgfCBucyg4Yml0KSB8IGZyYWN0aW9ucygxNmJpdCkgKi9cbiAxNDI6XHRcdHdvcmQgPSAoKHU2NClpbmNyX3NwZWMubnMgXHUwMDNjXHUwMDNjIEdFTV9TVUJOU0lOQ1JfU0laRSkgJiM0MzsgaW5jcl9zcGVjLnN1Yl9ucztcbiAxNDM6XHRcdGFkaiA9ICh1NjQpc2NhbGVkX3BwbSAqIHdvcmQ7XG4gMTQ0Olx0XHQvKiBEaXZpZGUgd2l0aCByb3VuZGluZywgZXF1aXZhbGVudCB0byBmbG9hdGluZyBkaXZpZGluZzpcbiAxNDU6XHRcdCAqICh0ZW1wIC8gVVNFQ19QRVJfU0VDKSAmIzQzOyAwLjVcbiAxNDY6XHRcdCAqL1xuIDE0NzpcdFx0YWRqICYjNDM7PSAoVVNFQ19QRVJfU0VDIFx1MDAzZVx1MDAzZSAxKTtcbiAxNDg6XHRcdGFkaiBcdTAwM2VcdTAwM2U9IFBQTV9GUkFDVElPTjsgLyogcmVtb3ZlIGZyYWN0aW9ucyAqL1xuIDE0OTpcdFx0YWRqID0gZGl2X3U2NChhZGosIFVTRUNfUEVSX1NFQyk7XG4gMTUwOlx0XHRhZGogPSBuZWdfYWRqID8gKHdvcmQgLSBhZGopIDogKHdvcmQgJiM0MzsgYWRqKTtcbiAxNTE6XHRcbiAxNTI6XHRcdGluY3Jfc3BlYy5ucyA9IChhZGogXHUwMDNlXHUwMDNlIEdFTV9TVUJOU0lOQ1JfU0laRSlcbiAxNTM6XHRcdFx0XHRcdTAwMjYgKCgxIFx1MDAzY1x1MDAzYyBHRU1fTlNJTkNSX1NJWkUpIC0gMSk7XG4gMTU0Olx0XHRpbmNyX3NwZWMuc3ViX25zID0gYWRqIFx1MDAyNiAoKDEgXHUwMDNjXHUwMDNjIEdFTV9TVUJOU0lOQ1JfU0laRSkgLSAxKTtcbiAxNTU6XHRcdGdlbV90c3VfaW5jcl9zZXQoYnAsIFx1MDAyNmluY3Jfc3BlYyk7XG4gMTU2Olx0XHRyZXR1cm4gMDtcbiAxNTc6XHR9XG4gMTU4Olx0XG4gMTU5Olx0c3RhdGljIGludCBnZW1fcHRwX2FkanRpbWUoc3RydWN0IHB0cF9jbG9ja19pbmZvICpwdHAsIHM2NCBkZWx0YSlcbiAxNjA6XHR7XG4gMTYxOlx0XHRzdHJ1Y3QgbWFjYiAqYnAgPSBjb250YWluZXJfb2YocHRwLCBzdHJ1Y3QgbWFjYiwgcHRwX2Nsb2NrX2luZm8pO1xuIDE2MjpcdFx0c3RydWN0IHRpbWVzcGVjNjQgbm93LCB0aGVuID0gbnNfdG9fdGltZXNwZWM2NChkZWx0YSk7XG4gMTYzOlx0XHR1MzIgYWRqLCBzaWduID0gMDtcbiAxNjQ6XHRcbiAxNjU6XHRcdGlmIChkZWx0YSBcdTAwM2MgMCkge1xuIDE2NjpcdFx0XHRzaWduID0gMTtcbiAxNjc6XHRcdFx0ZGVsdGEgPSAtZGVsdGE7XG4gMTY4Olx0XHR9XG4gMTY5Olx0XG4gMTcwOlx0XHRpZiAoZGVsdGEgXHUwMDNlIFRTVV9OU0VDX01BWF9WQUwpIHtcbiAxNzE6XHRcdFx0Z2VtX3RzdV9nZXRfdGltZShcdTAwMjZicC1cdTAwM2VwdHBfY2xvY2tfaW5mbywgXHUwMDI2bm93LCBOVUxMKTtcbiAxNzI6XHRcdFx0bm93ID0gdGltZXNwZWM2NF9hZGQobm93LCB0aGVuKTtcbiAxNzM6XHRcbiAxNzQ6XHRcdFx0Z2VtX3RzdV9zZXRfdGltZShcdTAwMjZicC1cdTAwM2VwdHBfY2xvY2tfaW5mbyxcbiAxNzU6XHRcdFx0XHRcdCAoY29uc3Qgc3RydWN0IHRpbWVzcGVjNjQgKilcdTAwMjZub3cpO1xuIDE3NjpcdFx0fSBlbHNlIHtcbiAxNzc6XHRcdFx0YWRqID0gKHNpZ24gXHUwMDNjXHUwMDNjIEdFTV9BRERTVUJfT0ZGU0VUKSB8IGRlbHRhO1xuIDE3ODpcdFxuIDE3OTpcdFx0XHRnZW1fd3JpdGVsKGJwLCBUQSwgYWRqKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzAgMTY6NDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjQ3ODQKCQkJCQkJCW91dHB1dDogNDUKCQkJCQkJCXRob3VnaHRzOiA0MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0YWtlIG9uIHRoZSB0aG91Z2h0IHByb2Nlc3MsIGFzIHJlcXVlc3RlZDoKCioqRGVjb25zdHJ1Y3RpbmcgYGdlbV9wdHBfaW5pdF90aW1lcmAqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzIGBnZW1fcHRwX2luaXRfdGltZXJgIGZ1bmN0aW9uLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdHMgcm9sZSB3aXRoaW4gdGhpcyBQVFAgaW1wbGVtZW50YXRpb24sIHNvIEkmIzM5O20gZ29pbmcgdG8gc3RhcnQgYnkgcnVubmluZyB0aHJvdWdoIHRoZSBjb2RlIGJsb2NrIGZyb20gbGluZXMgMjAwIHRvIDMwMC4gVGhpcyBzaG91bGQgZ2l2ZSBtZSBhIHNvbGlkIGdyYXNwIG9mIHdoYXQgdGhpcyB0aW1lciBpbml0aWFsaXphdGlvbiByb3V0aW5lIGlzIGFjdHVhbGx5IGRvaW5nLiBNeSBmb2N1cyB3aWxsIGJlIG9uIHRoZSBjcml0aWNhbCBwYXJ0cyBmb3Igc3luY2hyb25pemF0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMCAxNjo0MTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDIwMCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA2MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgMjAwOlx0XHQuYWRqZmluZVx0PSBnZW1fcHRwX2FkamZpbmUsXG4gMjAxOlx0XHQuYWRqdGltZVx0PSBnZW1fcHRwX2FkanRpbWUsXG4gMjAyOlx0XHQuZ2V0dGltZXg2NFx0PSBnZW1fdHN1X2dldF90aW1lLFxuIDIwMzpcdFx0LnNldHRpbWU2NFx0PSBnZW1fdHN1X3NldF90aW1lLFxuIDIwNDpcdFx0LmVuYWJsZVx0XHQ9IGdlbV9wdHBfZW5hYmxlLFxuIDIwNTpcdH07XG4gMjA2Olx0XG4gMjA3Olx0c3RhdGljIHZvaWQgZ2VtX3B0cF9pbml0X3RpbWVyKHN0cnVjdCBtYWNiICpicClcbiAyMDg6XHR7XG4gMjA5Olx0XHR1MzIgcmVtID0gMDtcbiAyMTA6XHRcdHU2NCBhZGo7XG4gMjExOlx0XG4gMjEyOlx0XHRicC1cdTAwM2V0c3VfaW5jci5ucyA9IGRpdl91NjRfcmVtKE5TRUNfUEVSX1NFQywgYnAtXHUwMDNldHN1X3JhdGUsIFx1MDAyNnJlbSk7XG4gMjEzOlx0XHRpZiAocmVtKSB7XG4gMjE0Olx0XHRcdGFkaiA9IHJlbTtcbiAyMTU6XHRcdFx0YWRqIFx1MDAzY1x1MDAzYz0gR0VNX1NVQk5TSU5DUl9TSVpFO1xuIDIxNjpcdFx0XHRicC1cdTAwM2V0c3VfaW5jci5zdWJfbnMgPSBkaXZfdTY0KGFkaiwgYnAtXHUwMDNldHN1X3JhdGUpO1xuIDIxNzpcdFx0fSBlbHNlIHtcbiAyMTg6XHRcdFx0YnAtXHUwMDNldHN1X2luY3Iuc3ViX25zID0gMDtcbiAyMTk6XHRcdH1cbiAyMjA6XHR9XG4gMjIxOlx0XG4gMjIyOlx0c3RhdGljIHZvaWQgZ2VtX3B0cF9pbml0X3RzdShzdHJ1Y3QgbWFjYiAqYnApXG4gMjIzOlx0e1xuIDIyNDpcdFx0c3RydWN0IHRpbWVzcGVjNjQgdHM7XG4gMjI1Olx0XG4gMjI2Olx0XHQvKiAxLiBnZXQgY3VycmVudCBzeXN0ZW0gdGltZSAqL1xuIDIyNzpcdFx0dHMgPSBuc190b190aW1lc3BlYzY0KGt0aW1lX3RvX25zKGt0aW1lX2dldF9yZWFsKCkpKTtcbiAyMjg6XHRcbiAyMjk6XHRcdC8qIDIuIHNldCBwdHAgdGltZXIgKi9cbiAyMzA6XHRcdGdlbV90c3Vfc2V0X3RpbWUoXHUwMDI2YnAtXHUwMDNlcHRwX2Nsb2NrX2luZm8sIFx1MDAyNnRzKTtcbiAyMzE6XHRcbiAyMzI6XHRcdC8qIDMuIHNldCBQVFAgdGltZXIgaW5jcmVtZW50IHZhbHVlIHRvIEJBU0VfSU5DUkVNRU5UICovXG4gMjMzOlx0XHRnZW1fdHN1X2luY3Jfc2V0KGJwLCBcdTAwMjZicC1cdTAwM2V0c3VfaW5jcik7XG4gMjM0Olx0XG4gMjM1Olx0XHRnZW1fd3JpdGVsKGJwLCBUQSwgMCk7XG4gMjM2Olx0fVxuIDIzNzpcdFxuIDIzODpcdHN0YXRpYyB2b2lkIGdlbV9wdHBfY2xlYXJfdGltZXIoc3RydWN0IG1hY2IgKmJwKVxuIDIzOTpcdHtcbiAyNDA6XHRcdGJwLVx1MDAzZXRzdV9pbmNyLnN1Yl9ucyA9IDA7XG4gMjQxOlx0XHRicC1cdTAwM2V0c3VfaW5jci5ucyA9IDA7XG4gMjQyOlx0XG4gMjQzOlx0XHRnZW1fd3JpdGVsKGJwLCBUSVNVQk4sIEdFTV9CRihTVUJOU0lOQ1IsIDApKTtcbiAyNDQ6XHRcdGdlbV93cml0ZWwoYnAsIFRJLCBHRU1fQkYoTlNJTkNSLCAwKSk7XG4gMjQ1Olx0XHRnZW1fd3JpdGVsKGJwLCBUQSwgMCk7XG4gMjQ2Olx0fVxuIDI0NzpcdFxuIDI0ODpcdHN0YXRpYyBpbnQgZ2VtX2h3X3RpbWVzdGFtcChzdHJ1Y3QgbWFjYiAqYnAsIHUzMiBkbWFfZGVzY190c18xLFxuIDI0OTpcdFx0XHRcdCAgICB1MzIgZG1hX2Rlc2NfdHNfMiwgc3RydWN0IHRpbWVzcGVjNjQgKnRzKVxuIDI1MDpcdHtcbiAyNTE6XHRcdHN0cnVjdCB0aW1lc3BlYzY0IHRzdTtcbiAyNTI6XHRcbiAyNTM6XHRcdHRzLVx1MDAzZXR2X3NlYyA9IChHRU1fQkZFWFQoRE1BX1NFQ0gsIGRtYV9kZXNjX3RzXzIpIFx1MDAzY1x1MDAzYyBHRU1fRE1BX1NFQ0xfU0laRSkgfFxuIDI1NDpcdFx0XHRcdEdFTV9CRkVYVChETUFfU0VDTCwgZG1hX2Rlc2NfdHNfMSk7XG4gMjU1Olx0XHR0cy1cdTAwM2V0dl9uc2VjID0gR0VNX0JGRVhUKERNQV9OU0VDLCBkbWFfZGVzY190c18xKTtcbiAyNTY6XHRcbiAyNTc6XHRcdC8qIFRTVSBvdmVybGFwcGluZyB3b3JrYXJvdW5kXG4gMjU4Olx0XHQgKiBUaGUgdGltZXN0YW1wIG9ubHkgY29udGFpbnMgbG93ZXIgZmV3IGJpdHMgb2Ygc2Vjb25kcyxcbiAyNTk6XHRcdCAqIHNvIGFkZCB2YWx1ZSBmcm9tIDE1ODggdGltZXJcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzAgMTY6NDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjYwMjEKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiA1NzEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQW5hbHlzaXMgb2YgYSBQb3RlbnRpYWwgU3BpbmxvY2sgQnVnIEZpeCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgYGdlbV9wdHBfaW5pdGAuIEl0IHNlZW1zIGxpa2UgdGhlcmUmIzM5O3MgYSBwb3RlbnRpYWwgY29uY3VycmVuY3kgaXNzdWUgd2l0aCB0aGUgc3BpbmxvY2sgYGJwLSZndDt0c3VfY2xrX2xvY2tgLiAgVGhlIGNvcmUgb2YgdGhlIHByb2JsZW0gaXMgdGhlIG9yZGVyIG9mIG9wZXJhdGlvbnMgaW4gdGhpcyBmdW5jdGlvbi4gV2UmIzM5O3JlIHJlZ2lzdGVyaW5nIHRoZSBQVFAgY2xvY2sgdXNpbmcgYHB0cF9jbG9ja19yZWdpc3RlcigmYW1wO2JwLSZndDtwdHBfY2xvY2tfaW5mbywgJmFtcDtuZXRkZXYtJmd0O2Rldik7YC4gIFRoZSBrZXkgdGhpbmcgaXMgdGhhdCAqaW1tZWRpYXRlbHkqIGFmdGVyIGBwdHBfY2xvY2tfcmVnaXN0ZXJgIGNvbXBsZXRlcywgdXNlciBzcGFjZSBvciBrZXJuZWwgdGhyZWFkcyBjYW4gc3RhcnQgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgUFRQIGNsb2NrIGRldmljZS4gVGhleSBtaWdodCBiZSBjYWxsaW5nIHRoaW5ncyBsaWtlIGBjbG9ja19hZGp0aW1lYCwgYGdlbV90c3VfZ2V0X3RpbWVgLCBvciBgZ2VtX3RzdV9zZXRfdGltZWAgLSBhbGwgb2Ygd2hpY2ggdXNlIHRoYXQgYGJwLSZndDt0c3VfY2xrX2xvY2tgISAgVGhlIHBvdGVudGlhbCBidWcgYXJpc2VzIGJlY2F1c2UgdGhlIHNwaW5sb2NrIGBzcGluX2xvY2tfaW5pdCgmYW1wO2JwLSZndDt0c3VfY2xrX2xvY2spYCAqd2FzKiBiZWluZyBjYWxsZWQgKmFmdGVyKiB0aGUgcmVnaXN0cmF0aW9uLiBUaGlzIG1lYW5zIHRoZSBsb2NrIGNvdWxkIGhhdmUgYmVlbiB1bmluaXRpYWxpemVkIGR1cmluZyB0aGUgY3JpdGljYWwgd2luZG93IHdoZW4gdGhlIFBUUCBjbG9jayB3YXMgYWxyZWFkeSBhY2Nlc3NpYmxlLiBUaGUgcHJvcG9zZWQgZml4LCBtb3ZpbmcgdGhlIGBzcGluX2xvY2tfaW5pdGAgY2FsbCBlYXJsaWVyLCBtYWtlcyBwZXJmZWN0IHNlbnNlIHRvIHJlc29sdmUgdGhlIHJhY2UgY29uZGl0aW9uLgoKTm93LCB0aGUgbmV4dCBzdGVwIGlzIGNydWNpYWwuIENhbiB0aGlzIGZpeCBiZSBmdXp6ZWQ/IEkgbmVlZCB0byBhcHBseSB0aGUgZnV6emluZyBndWlkZWxpbmVzIG1ldGljdWxvdXNseS4gIExldCBtZSByZWNhbGwgdGhlICYjMzQ7V29ydGhGdXp6aW5nPWZhbHNlJiMzNDsgY3JpdGVyaWEgZnJvbSBtZW1vcnkuIFdlIG5lZWQgdG8gcnVsZSBvdXQ6CgoqICAgRG9jdW1lbnRhdGlvbiwgS2NvbmZpZywgb3IgY29tbWVudC1vbmx5IGNoYW5nZXMuIE5vcGUsIHRoaXMgaXMgYSBjb2RlIGNoYW5nZS4KKiAgIFB1cmVseSBkZWNvcmF0aXZlIGxvZ2dpbmcuIERlZmluaXRlbHkgbm90IHRoZSBjYXNlIGhlcmUuCiogICBOdW1lcmljIGNvbnN0YW50IGNoYW5nZXMgdGhhdCBkb24mIzM5O3QgYWx0ZXIgZXhlY3V0aW9uLiBOb3QgcmVsZXZhbnQuCiogICBVbnJlYWNoYWJsZSBjb2RlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gVGhpcyBpcyBhIHJlYWwgY29uY2VybiEgSSYjMzk7bGwgbmVlZCB0byByZXNlYXJjaCB3aGF0IE1BQ0IvR0VNIGFjdHVhbGx5ICppcyouCiogICBWZW5kb3Itc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVycyB0aGF0IGFyZSBoYXJkIHRvIGVtdWxhdGUuIFByb2JhYmx5IG5vdCwgYnV0IEkgbmVlZCB0byBiZSBzdXJlLgoqICAgVGVhcmRvd24gY2FsbGJhY2tzIGR1cmluZyBQQ0kgaG90LXVucGx1Zy4gTm9wZSwgdGhhdCYjMzk7cyBub3Qgd2hhdCB0aGlzIGlzLgoKU28sIHRoZSBiaWdnZXN0IHF1ZXN0aW9uIGlzIHdoZXRoZXIgdGhpcyBjb2RlIGlzICpyZWFjaGFibGUqIGluIGEgc3RhbmRhcmQgUUVNVSBlbnZpcm9ubWVudC4gV2UgbmVlZCB0byBmaWd1cmUgb3V0IHdoYXQga2luZCBvZiBkZXZpY2UgTUFDQi9HRU0gaXMuIElzIGl0IGEgcGxhdGZvcm0gZGV2aWNlIG9yIGEgUENJIGRldmljZT8gSG93IGFyZSB0aGVzZSBkZXZpY2VzIHR5cGljYWxseSBpbnN0YW50aWF0ZWQ/IEkgbmVlZCB0byBkaWcgaW50byBgbWFjYl9tYWluLmNgIGFuZCBgbWFjYl9wY2kuY2AgdG8gdW5kZXJzdGFuZCB0aGUgZGV2aWNlIGluaXRpYWxpemF0aW9uIGFuZCBjb25uZWN0aW9uIG1lY2hhbmlzbS4gT25seSB0aGVuIGNhbiBJIGRlY2lkZSBpZiB0aGlzIGZpeCBpcyB3b3J0aCBmdXp6aW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMCAxNjo0MTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtNT0RVTEVfREVWSUNFX1RBQkxFJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jPTU3Mjc9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbWFjYl9kdF9pZHNbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTU3NTQtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NTc1NTpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBtYWNiX2R0X2lkcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTU3NTYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3BjaS5jPTEzMj1tb2R1bGVfcGNpX2RyaXZlcihtYWNiX3BjaV9kcml2ZXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3BjaS5jOjEzMzpNT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgZGV2X2lkX3RhYmxlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wY2kuYy0xMzQtTU9EVUxFX0xJQ0VOU0UoXCYjMzQ7R1BMXCYjMzQ7KTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzAgMTY6NDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjc0MjYKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiAyMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGl0IHN0YW5kczoKCioqQ2hlY2tpbmcgYGRldl9pZF90YWJsZWAgaW4gYG1hY2JfcGNpLmNgKioKCk9rYXksIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgZHJpdmVyIGluIGBtYWNiX3BjaS5jYCBpZGVudGlmaWVzIHRoZSBzcGVjaWZpYyBoYXJkd2FyZSBpdCYjMzk7cyBzdXBwb3NlZCB0byBoYW5kbGUuIFRoYXQgcHJvYmFibHkgbWVhbnMgdGhlIGZpcnN0IHRoaW5nIHRvIGxvb2sgYXQgaXMgdGhlIGBkZXZfaWRfdGFibGVgLiBJJiMzOTttIGV4cGVjdGluZyB0aGlzIGlzIHdoZXJlIHRoZSBkcml2ZXIgZGVmaW5lcyB0aGUgUENJIGRldmljZSBJRHMgaXQmIzM5O3MgY29tcGF0aWJsZSB3aXRoLiBUaGlzIHdpbGwgbGlrZWx5IGJlIGEgbGlzdCBvciBhcnJheSBvZiBzdHJ1Y3R1cmVzLCBlYWNoIGNvbnRhaW5pbmcgdGhlIHZlbmRvciBJRCBhbmQgZGV2aWNlIElEIHRoYXQgdGhpcyBkcml2ZXIgcmVjb2duaXplcy4gSSYjMzk7bGwgbmVlZCB0byBzZWUgaG93IHRoZSBkcml2ZXIgdXNlcyB0aGlzIHRhYmxlIGR1cmluZyBpbml0aWFsaXphdGlvbiwgc3BlY2lmaWNhbGx5IGhvdyBpdCBwcm9iZXMgZm9yIGNvbXBhdGlibGUgZGV2aWNlcyBkdXJpbmcgdGhlIFBDSSBwcm9iZSBmdW5jdGlvbi4gSSYjMzk7bSBhbnRpY2lwYXRpbmcgc29tZSBmb3JtIG9mIGxvb3AgdG8gaXRlcmF0ZSB0aHJvdWdoIHRoZSB0YWJsZSBhbmQgY29tcGFyZSB0aGUgaGFyZHdhcmUgSUQgd2l0aCB3aGF0IHRoZSBzeXN0ZW0gcHJlc2VudHMgdG8gaXQgZHVyaW5nIHByb2JlLiBUaW1lIHRvIGRpdmUgaW50byB0aGUgY29kZSBhbmQgY29uZmlybSBteSBodW5jaCEKCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzAgMTY6NDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZGV2X2lkX3RhYmxlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcGNpLmM9MTA4PXN0YXRpYyB2b2lkIG1hY2JfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwY2kpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3BjaS5jLTExOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wY2kuYzoxMjA6c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIGRldl9pZF90YWJsZVtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3BjaS5jLTEyMS1cdHsgUENJX1ZERVZJQ0UoQ0ROUywgUENJX0RFVklDRV9JRF9DRE5TX01BQ0IpIH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3BjaS5jPTEyNT1zdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgbWFjYl9wY2lfZHJpdmVyID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3BjaS5jLTEyNi1cdC5uYW1lICAgICA9IFBDSV9EUklWRVJfTkFNRSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wY2kuYzoxMjc6XHQuaWRfdGFibGUgPSBkZXZfaWRfdGFibGUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcGNpLmMtMTI4LVx0LnByb2JlICAgID0gbWFjYl9wcm9iZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcGNpLmM9MTMyPW1vZHVsZV9wY2lfZHJpdmVyKG1hY2JfcGNpX2RyaXZlcik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcGNpLmM6MTMzOk1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBkZXZfaWRfdGFibGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3BjaS5jLTEzNC1NT0RVTEVfTElDRU5TRShcJiMzNDtHUExcJiMzNDspO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMCAxNjo0MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyODA4NwoJCQkJCQkJb3V0cHV0OiA0NQoJCQkJCQkJdGhvdWdodHM6IDgwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHM6CgoqKkFuYWx5emluZyBhIENhZGVuY2UgTUFDQiBEcml2ZXIqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGEgQ2FkZW5jZSBQQ0kgZGV2aWNlLCBzcGVjaWZpY2FsbHkgaWRlbnRpZmllZCBieSB2ZW5kb3IgSUQgYDB4MTdjZGAgYW5kIGRldmljZSBJRCBgMHhlMDA3YCDigJMgdGhhdCYjMzk7cyBgUENJX1ZFTkRPUl9JRF9DRE5TYCBhbmQgYFBDSV9ERVZJQ0VfSURfQ0ROU19NQUNCYCwgcmlnaHQ/IEkmIzM5O20gcHJldHR5IHN1cmUgdGhhdCYjMzk7cyBhIENhZGVuY2UgTUFDQi4gTm93LCB3aGVyZSBkb2VzIHRoaXMgZml0IGluIHRoZSBkcml2ZXIgbGFuZHNjYXBlPyBBaCwgeWVzLCBgbWFjYl9tYWluLmNgLiBUaGF0IGZpbGUmIzM5O3MgdXN1YWxseSBhIGdvb2QgaW5kaWNhdG9yLiBJdCBsb29rcyBsaWtlIHRoaXMgaXMgYW4gT3BlbiBGaXJtd2FyZSAoT0YpIG9yIHBsYXRmb3JtIGRyaXZlciBpbXBsZW1lbnRhdGlvbi4gVGltZSB0byBjb25maXJtIHRoZSBkZXZpY2UgaWRlbnRpZmllcnMgdXNlZCBieSB0aGUgZHJpdmVyLiBMZXQgbWUgZGlnIGludG8gYG1hY2JfZHRfaWRzYCBhbmQgY3Jvc3MtcmVmZXJlbmNlLiBJJiMzOTtsbCBzZWUgd2hhdCB0aGUgZGV2aWNlIHRyZWUgYmluZGluZ3MgYXJlIHRvIGNvbmZpcm0gYW5kIHVuZGVyc3RhbmQgaG93IHRoaXMgZGV2aWNlIGlzIG1lYW50IHRvIGJlIGNvbmZpZ3VyZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzMwIDE2OjQxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDU3MjcsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMzUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7NTcyNzpcdHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG1hY2JfZHRfaWRzW10gPSB7XG41NzI4Olx0XHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7Y2RucyxhdDkxc2FtOTI2MC1tYWNiXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNmF0OTFzYW05MjYwX2NvbmZpZyB9LFxuNTcyOTpcdFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O2NkbnMsbWFjYlwmIzM0OyB9LFxuNTczMDpcdFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O2NkbnMsbnA0LW1hY2JcJiMzNDssIC5kYXRhID0gXHUwMDI2bnA0X2NvbmZpZyB9LFxuNTczMTpcdFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O2NkbnMscGMzMDItZ2VtXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNnBjMzAyZ2VtX2NvbmZpZyB9LFxuNTczMjpcdFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O2NkbnMsZ2VtXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNnBjMzAyZ2VtX2NvbmZpZyB9LFxuNTczMzpcdFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O2NkbnMsc2FtOXg2MC1tYWNiXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNmF0OTFzYW05MjYwX2NvbmZpZyB9LFxuNTczNDpcdFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O2F0bWVsLHNhbWE1ZDItZ2VtXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNnNhbWE1ZDJfY29uZmlnIH0sXG41NzM1Olx0XHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7YXRtZWwsc2FtYTVkMjktZ2VtXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNnNhbWE1ZDI5X2NvbmZpZyB9LFxuNTczNjpcdFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O2F0bWVsLHNhbWE1ZDMtZ2VtXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNnNhbWE1ZDNfY29uZmlnIH0sXG41NzM3Olx0XHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7YXRtZWwsc2FtYTVkMy1tYWNiXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNnNhbWE1ZDNtYWNiX2NvbmZpZyB9LFxuNTczODpcdFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O2F0bWVsLHNhbWE1ZDQtZ2VtXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNnNhbWE1ZDRfY29uZmlnIH0sXG41NzM5Olx0XHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7Y2RucyxhdDkxcm05MjAwLWVtYWNcJiMzNDssIC5kYXRhID0gXHUwMDI2ZW1hY19jb25maWcgfSxcbjU3NDA6XHRcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDtjZG5zLGVtYWNcJiMzNDssIC5kYXRhID0gXHUwMDI2ZW1hY19jb25maWcgfSxcbjU3NDE6XHRcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDtjZG5zLHp5bnFtcC1nZW1cJiMzNDssIC5kYXRhID0gXHUwMDI2enlucW1wX2NvbmZpZ30sIC8qIGRlcHJlY2F0ZWQgKi9cbjU3NDI6XHRcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDtjZG5zLHp5bnEtZ2VtXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNnp5bnFfY29uZmlnIH0sIC8qIGRlcHJlY2F0ZWQgKi9cbjU3NDM6XHRcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDtzaWZpdmUsZnU1NDAtYzAwMC1nZW1cJiMzNDssIC5kYXRhID0gXHUwMDI2ZnU1NDBfYzAwMF9jb25maWcgfSxcbjU3NDQ6XHRcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDttaWNyb2NoaXAsbXBmcy1tYWNiXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNm1wZnNfY29uZmlnIH0sXG41NzQ1Olx0XHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7bWljcm9jaGlwLHBpYzY0aHBzYy1nZW1cJiMzNDssIC5kYXRhID0gXHUwMDI2cGljNjRocHNjX2NvbmZpZ30sXG41NzQ2Olx0XHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7bWljcm9jaGlwLHNhbWE3ZzUtZ2VtXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNnNhbWE3ZzVfZ2VtX2NvbmZpZyB9LFxuNTc0NzpcdFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O21pY3JvY2hpcCxzYW1hN2c1LWVtYWNcJiMzNDssIC5kYXRhID0gXHUwMDI2c2FtYTdnNV9lbWFjX2NvbmZpZyB9LFxuNTc0ODpcdFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O21vYmlsZXllLGV5ZXE1LWdlbVwmIzM0OywgLmRhdGEgPSBcdTAwMjZleWVxNV9jb25maWcgfSxcbjU3NDk6XHRcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDtyYXNwYmVycnlwaSxycDEtZ2VtXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNnJhc3BiZXJyeXBpX3JwMV9jb25maWcgfSxcbjU3NTA6XHRcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDt4bG54LHp5bnFtcC1nZW1cJiMzNDssIC5kYXRhID0gXHUwMDI2enlucW1wX2NvbmZpZ30sXG41NzUxOlx0XHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7eGxueCx6eW5xLWdlbVwmIzM0OywgLmRhdGEgPSBcdTAwMjZ6eW5xX2NvbmZpZyB9LFxuNTc1MjpcdFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O3hsbngsdmVyc2FsLWdlbVwmIzM0OywgLmRhdGEgPSBcdTAwMjZ2ZXJzYWxfY29uZmlnfSxcbjU3NTM6XHRcdHsgLyogc2VudGluZWwgKi8gfVxuNTc1NDpcdH07XG41NzU1Olx0TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgbWFjYl9kdF9pZHMpO1xuNTc1NjpcdFxuNTc1NzpcdHN0YXRpYyBjb25zdCBzdHJ1Y3QgbWFjYl9jb25maWcgZGVmYXVsdF9nZW1fY29uZmlnID0ge1xuNTc1ODpcdFx0LmNhcHMgPSBNQUNCX0NBUFNfR0lHQUJJVF9NT0RFX0FWQUlMQUJMRSB8XG41NzU5Olx0XHRcdE1BQ0JfQ0FQU19KVU1CTyB8XG41NzYwOlx0XHRcdE1BQ0JfQ0FQU19HRU1fSEFTX1BUUCxcbjU3NjE6XHRcdC5kbWFfYnVyc3RfbGVuZ3RoID0gMTYsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzMwIDE2OjQxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4xbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI5NDI2CgkJCQkJCQlvdXRwdXQ6IDMyCgkJCQkJCQl0aG91Z2h0czogOTM2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgRnV6emluZyBQb3RlbnRpYWwgb2YgdGhlIENhZGVuY2UgR0VNIChNQUNCKSBEcml2ZXIqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gSSYjMzk7bSBsb29raW5nIGF0IHBvdGVudGlhbCBjYW5kaWRhdGVzIGZvciBmdXp6aW5nLCBhbmQgdGhlIENhZGVuY2UgR0VNIChNQUNCKSBkcml2ZXIgaXMgb24gdGhlIGxpc3QuIEZpcnN0LCBsZXQgbWUgcmVjYWxsIHRoZSBjb21tb24gU29DcyB0aGlzIGRyaXZlciBpcyBhc3NvY2lhdGVkIHdpdGg6IFNpRml2ZSwgWGlsaW54IFp5bnEvWnlucU1QL1ZlcnNhbCwgQ2FkZW5jZSwgYW5kIEF0bWVsLiBJIG5lZWQgdG8gcXVpY2tseSBkZXRlcm1pbmUgaWYgYW55IG9mIHRoZXNlIGFyZSBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIHVzZWQgd2l0aGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cywgd2hpY2ggaXMgY3J1Y2lhbCBmb3IgU3l6a2FsbGVyJiMzOTtzIGVmZmVjdGl2ZW5lc3MuCgpSaWdodCwgUUVNVSBoYXMgbWFjaGluZSB0eXBlcy4gSSByZW1lbWJlciBgeGxueC16Y3UxMDJgLCBgeGxueC12ZXJzYWwtdmlydGAsIGB4aWxpbngtenlucS1hOWAsIGBzaWZpdmVfdWAsIGBtaWNyb2NoaXAtaWNpY2xlLWtpdGAuIEJ1dCBTeXprYWxsZXIgcHJpbWFyaWx5IHRhcmdldHMgeDg2XzY0IGFuZCBhcm02NCwgc3BlY2lmaWNhbGx5IHZpcnR1YWwgbWFjaGluZXMgd2l0aCB2aXJ0aW8sIG9yIGdWaXNvci4gU28sIHdoYXQgc3RhbmRhcmQgZGV2aWNlcyBhcmUgdHlwaWNhbGx5IGZvdW5kIGluIFFFTVUgb3IgR0NFIGZvciBmdXp6aW5nPyBUaGF0JiMzOTtzIHRoZSBrZXkuCgpOb3csIEkgaGF2ZSB0byBjb25zaWRlciB0aGUgaW5zdHJ1Y3Rpb25zLiBUaGUgY3J1Y2lhbCBjcml0ZXJpYSBJIG5lZWQgdG8gdXNlIHRvIGRldGVybWluZSBpZiBhIHBhdGNoIGlzIFdvcnRoRnV6emluZyBpcyB0aGUgZm9sbG93aW5nLiBBIHBhdGNoIHNob3VsZCByZXR1cm4gJiMzNDtXb3J0aEZ1enppbmc9ZmFsc2UmIzM0OyBpZiBpdCBvbmx5IGNvbnRhaW5zOgotIGRvY3VtZW50YXRpb24gY2hhbmdlcwotIGNvbmZpZyBmaWxlIG1vZGlmaWNhdGlvbnMKLSBjb2RlIGNvbW1lbnRzCi0gZGVjb3JhdGl2ZSBjaGFuZ2VzIHN1Y2ggYXMgbG9nZ2luZyBvciB0cmFjZXBvaW50cwotIGNoYW5nZXMgdG8gY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvZXNuJiMzOTt0IGFsdGVyIGV4ZWN1dGlvbiBmbG93Ci0gdW5yZWFjaGFibGUgY29kZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMsIHN1Y2ggYXMgdXNiIGdhZGdldCBvciBtYWM4MDIxMV9od3NpbQotIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VCi0gZHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpPdGhlcndpc2UgaXQmIzM5O3MgJiMzNDtXb3J0aEZ1enppbmc9dHJ1ZSYjMzQ7IGlmIGEgcGF0Y2ggbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLiBJIG5lZWQgdG8gdmVyaWZ5IHRoYXQgY29kZSBjYW4gYmUgZXhlY3V0ZWQgdXNpbmcgY29kZSBzZWFyY2ggdG9vbHMuCgpTbywgaXMgYG1hY2JgIG9yIGBnZW1fcHRwYCBhIHZlbmRvci1zcGVjaWZpYyBoYXJkd2FyZSBkcml2ZXI/IERvZXMgaXQgcmVxdWlyZSBzcGVjaWZpYyBib2FyZCBEVCBub3QgcHJlc2VudCBpbiBzdGFuZGFyZCBmdXp6aW5nIGVudmlyb25tZW50cyAoeDg2L2FybTY0IHZpcnQpPyBJIG11c3QgaW52ZXN0aWdhdGUuCgpMZXQmIzM5O3MgY2hlY2suIENhbiBgbWFjYmAgYmUgaW5zdGFudGlhdGVkIHZpYSBQQ0kgaW4gc3RhbmRhcmQgUUVNVT8gU3BlY2lmaWNhbGx5LCBkb2VzIFFFTVUgaGF2ZSBhIFBDSSBDYWRlbmNlIE1BQ0IgZGV2aWNlPyBObywgUUVNVSYjMzk7cyBgY2FkZW5jZV9nZW1gIGlzIGEgU3lzQnVzRGV2aWNlLCBtZW1vcnkgbWFwcGVkIEkvTyBvbiBaeW5xIC8gVmVyc2FsIC8gU2lGaXZlIFUgU29DLCBub3QgYSBQQ0kgZGV2aWNlLiBXaGF0IGFib3V0IGBtYWNiX3BjaWA/IFRoZSBQQ0kgSUQgMHgxN2NkOjB4ZTAwNyBwb2ludHMgdG8gQ2FkZW5jZSYjMzk7cyBQQ0kgdGVzdGJvYXJkIC8gRlBHQSBjYXJkLCB3aGljaCBpc24mIzM5O3QgZW11bGF0ZWQgaW4gUUVNVS4gV2hhdCBhYm91dCBwbGF0Zm9ybSBkZXZpY2VzPyBJbiBzdGFuZGFyZCBRRU1VIHg4Nl82NCAocTM1IC8gcGMpIGFuZCBBUk02NCAoYC1NIHZpcnRgKSwgdGhlcmUmIzM5O3Mgbm8gQ2FkZW5jZSBHRU0gLyBNQUNCIG5vZGUgZGVmaW5lZCBpbiB0aGUgZGV2aWNlIHRyZWUgb3IgQUNQSS4KCkNhbiBTeXprYWxsZXIgaW5zdGFudGlhdGUgcGxhdGZvcm0gZGV2aWNlcyB2aWEgRGV2aWNlIFRyZWUgb3ZlcmxheXMgb3IgY29uZmlnZnM/IE5vLCBpdCBydW5zIG9uIHN0YW5kYXJkIFFFTVUgb3IgR0NFIFZNcywgd2hlcmUga2VybmVsIGRldmljZXMgYXJlIEFDUEksIFBDSSwgVVNCLCBvciBzb2Z0d2FyZSBwc2V1ZG8gZGV2aWNlcy4KClRpbWUgdG8gbG9vayBhdCBvdGhlciBuZXR3b3JrIGFuZCBTb0MgZXRoZXJuZXQgZHJpdmVycy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRob3NlIGFyZSBoYW5kbGVkLiBJIHdpbGwgcGVyZm9ybSBhIHNlYXJjaCBpbiB0aGUgcmVwbyBvciBjaGVjayBzaW1pbGFyIGRyaXZlcnMuIElzIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlYCByZWFjaGFibGU/CgpGaW5hbGx5LCBsZXQmIzM5O3MgZXhwbG9yZSBpZiB0aGVyZSBhcmUgYW55IG1vY2sgb3IgdGVzdCBmcmFtZXdvcmtzIGZvciBtYWNiLCBvciBpZiBpdCBpcyB0aWVkIHRvIHNwZWNpZmljIGVtYmVkZGVkIFNvQ3MgYW5kIFBDSSB0ZXN0IGNhcmRzLiBJcyB0aGVyZSBhIHN0YW5kYXJkIHdheSB0byBpbnN0YW50aWF0ZSBNQUNCPyBUaGF0JiMzOTtzIHRoZSBjcml0aWNhbCBxdWVzdGlvbiBJIG5lZWQgdG8gYW5zd2VyLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMCAxNjo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttYWNiXyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDI1OTggbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvS2NvbmZpZz00NT1jb25maWcgTUFDQl9QQ0lcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL0tjb25maWctNTEtXHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZSBtb2R1bGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvS2NvbmZpZzo1MjpcdCAgd2lsbCBiZSBjYWxsZWQgbWFjYl9wY2kuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL0tjb25maWctNTMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9NYWtlZmlsZS00LSNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvTWFrZWZpbGU6NTptYWNiLXlcdDo9IG1hY2JfbWFpbi5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL01ha2VmaWxlLTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL01ha2VmaWxlPTc9aWZlcSAoJChDT05GSUdfTUFDQl9VU0VfSFdTVEFNUCkseSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvTWFrZWZpbGU6ODptYWNiLXlcdCYjNDM7PSBtYWNiX3B0cC5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL01ha2VmaWxlLTktZW5kaWZcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL01ha2VmaWxlPTExPW9iai0kKENPTkZJR19NQUNCKSAmIzQzOz0gbWFjYi5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL01ha2VmaWxlOjEyOm9iai0kKENPTkZJR19NQUNCX1BDSSkgJiM0Mzs9IG1hY2JfcGNpLm9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC04MjAtLyogUmVnaXN0ZXIgYWNjZXNzIG1hY3JvcyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODIxOiNkZWZpbmUgbWFjYl9yZWFkbChwb3J0LCByZWcpXHRcdChwb3J0KS1cdTAwM2VtYWNiX3JlZ19yZWFkbCgocG9ydCksIE1BQ0JfIyNyZWcpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4MjI6I2RlZmluZSBtYWNiX3dyaXRlbChwb3J0LCByZWcsIHZhbHVlKVx0KHBvcnQpLVx1MDAzZW1hY2JfcmVnX3dyaXRlbCgocG9ydCksIE1BQ0JfIyNyZWcsICh2YWx1ZSkpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4MjM6I2RlZmluZSBnZW1fcmVhZGwocG9ydCwgcmVnKVx0XHQocG9ydCktXHUwMDNlbWFjYl9yZWdfcmVhZGwoKHBvcnQpLCBHRU1fIyNyZWcpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4MjQ6I2RlZmluZSBnZW1fd3JpdGVsKHBvcnQsIHJlZywgdmFsdWUpXHQocG9ydCktXHUwMDNlbWFjYl9yZWdfd3JpdGVsKChwb3J0KSwgR0VNXyMjcmVnLCAodmFsdWUpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODI1OiNkZWZpbmUgcXVldWVfcmVhZGwocXVldWUsIHJlZylcdFx0KHF1ZXVlKS1cdTAwM2VicC1cdTAwM2VtYWNiX3JlZ19yZWFkbCgocXVldWUpLVx1MDAzZWJwLCAocXVldWUpLVx1MDAzZXJlZylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjgyNjojZGVmaW5lIHF1ZXVlX3dyaXRlbChxdWV1ZSwgcmVnLCB2YWx1ZSlcdChxdWV1ZSktXHUwMDNlYnAtXHUwMDNlbWFjYl9yZWdfd3JpdGVsKChxdWV1ZSktXHUwMDNlYnAsIChxdWV1ZSktXHUwMDNlcmVnLCAodmFsdWUpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODI3OiNkZWZpbmUgZ2VtX3JlYWRsX24ocG9ydCwgcmVnLCBpZHgpXHRcdChwb3J0KS1cdTAwM2VtYWNiX3JlZ19yZWFkbCgocG9ydCksIEdFTV8jI3JlZyAmIzQzOyBpZHggKiA0KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODI4OiNkZWZpbmUgZ2VtX3dyaXRlbF9uKHBvcnQsIHJlZywgaWR4LCB2YWx1ZSlcdChwb3J0KS1cdTAwM2VtYWNiX3JlZ193cml0ZWwoKHBvcnQpLCBHRU1fIyNyZWcgJiM0MzsgaWR4ICogNCwgKHZhbHVlKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTgyOS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC04MzEtICogcmVnaXN0ZXIgZGVwZW5kZW50IG9uIHdoZXRoZXIgdGhlIGRldmljZSBpcyBhIEdFTSBvciBhIE1BQ0IuICBGb3IgcmVnaXN0ZXJzXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4MzI6ICogYW5kIGJpdGZpZWxkcyB0aGF0IGFyZSBjb21tb24gYWNyb3NzIGJvdGggZGV2aWNlcywgdXNlIG1hY2Jfe3JlYWQsd3JpdGV9bFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtODMzLSAqIHRvIGF2b2lkIHRoZSBjb3N0IG9mIHRoZSBjb25kaXRpb25hbC5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTgzNC0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjgzNTojZGVmaW5lIG1hY2Jfb3JfZ2VtX3dyaXRlbChfX2JwLCBfX3JlZywgX192YWx1ZSkgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTgzNi1cdCh7IFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4Mzc6XHRcdGlmIChtYWNiX2lzX2dlbSgoX19icCkpKSBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtODM4LVx0XHRcdGdlbV93cml0ZWwoKF9fYnApLCBfX3JlZywgX192YWx1ZSk7IFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC04MzktXHRcdGVsc2UgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjg0MDpcdFx0XHRtYWNiX3dyaXRlbCgoX19icCksIF9fcmVnLCBfX3ZhbHVlKTsgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTg0MS1cdH0pXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC04NDItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4NDM6I2RlZmluZSBtYWNiX29yX2dlbV9yZWFkbChfX2JwLCBfX3JlZykgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTg0NC1cdCh7IFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC04NDUtXHRcdHUzMiBfX3Y7IFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4NDY6XHRcdGlmIChtYWNiX2lzX2dlbSgoX19icCkpKSBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtODQ3LVx0XHRcdF9fdiA9IGdlbV9yZWFkbCgoX19icCksIF9fcmVnKTsgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTg0OC1cdFx0ZWxzZSBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODQ5Olx0XHRcdF9fdiA9IG1hY2JfcmVhZGwoKF9fYnApLCBfX3JlZyk7IFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC04NTAtXHRcdF9fdjsgXFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC04NTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4NTM6I2RlZmluZSBNQUNCX1JFQURfTlNSKGJwKVx0bWFjYl9yZWFkbChicCwgTlNSKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtODU0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODU1Oi8qIHN0cnVjdCBtYWNiX2RtYV9kZXNjIC0gSGFyZHdhcmUgRE1BIGRlc2NyaXB0b3JcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTg1Ni0gKiBAYWRkcjogRE1BIGFkZHJlc3Mgb2YgZGF0YSBidWZmZXJcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC04NTgtICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4NTk6c3RydWN0IG1hY2JfZG1hX2Rlc2Mge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtODYwLVx0dTMyXHRhZGRyO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTg2My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjg2NDpzdHJ1Y3QgbWFjYl9kbWFfZGVzY182NCB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC04NjUtXHR1MzIgYWRkcmg7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtODY4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODY5OnN0cnVjdCBtYWNiX2RtYV9kZXNjX3B0cCB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC04NzAtXHR1MzJcdHRzXzE7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtOTY1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6OTY2Oi8qIHN0cnVjdCBtYWNiX3R4X3NrYiAtIGRhdGEgYWJvdXQgYW4gc2tiIHdoaWNoIGlzIGJlaW5nIHRyYW5zbWl0dGVkXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC05NjctICogQHNrYjogc2tiIGN1cnJlbnRseSBiZWluZyB0cmFuc21pdHRlZCwgb25seSBzZXQgZm9yIHRoZSBsYXN0IGJ1ZmZlclxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTk3My0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjk3NDpzdHJ1Y3QgbWFjYl90eF9za2Ige1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtOTc1LVx0c3RydWN0IHNrX2J1ZmZcdFx0KnNrYjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC05ODMtICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5ODQ6c3RydWN0IG1hY2Jfc3RhdHMge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtOTg1LVx0dTY0XHRyeF9wYXVzZV9mcmFtZXM7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg9MTE5MT1zdHJ1Y3QgbWFjYjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjExOTI6c3RydWN0IG1hY2JfcXVldWU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMTkzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTE5NDpzdHJ1Y3QgbWFjYl9vcl9nZW1fb3BzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTExOTUtXHRpbnRcdCgqbW9nX2FsbG9jX3J4X2J1ZmZlcnMpKHN0cnVjdCBtYWNiICpicCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTE5Ny1cdHZvaWRcdCgqbW9nX2luaXRfcmluZ3MpKHN0cnVjdCBtYWNiICpicCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxMTk4Olx0aW50XHQoKm1vZ19yeCkoc3RydWN0IG1hY2JfcXVldWUgKnF1ZXVlLCBzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMTk5LVx0XHRcdCAgaW50IGJ1ZGdldCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTIwMi0vKiBNQUNCLVBUUCBpbnRlcmZhY2U6IGFkYXB0IHRvIHBsYXRmb3JtIG5lZWRzLiAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTIwMzpzdHJ1Y3QgbWFjYl9wdHBfaW5mbyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMjA0LVx0dm9pZCAoKnB0cF9pbml0KShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMjE2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTIxNzpzdHJ1Y3QgbWFjYl9wbV9kYXRhIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEyMTgtXHR1MzIgc2NydDI7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTIyMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjEyMjI6c3RydWN0IG1hY2JfdXNyaW9fY29uZmlnIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEyMjMtXHR1MzIgbWlpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEyMzItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxMjMzOnN0cnVjdCBtYWNiX2NvbmZpZyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMjM0LVx0dTMyXHRcdFx0Y2Fwcztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMjQxLVx0aW50XHRqdW1ib19tYXhfbGVuO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTI0MjpcdGNvbnN0IHN0cnVjdCBtYWNiX3VzcmlvX2NvbmZpZyAqdXNyaW87XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMjQzLX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg9MTI0NT1zdHJ1Y3QgdHN1X2luY3Ige1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEyNDktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxMjUwOnN0cnVjdCBtYWNiX3F1ZXVlIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEyNTEtXHRzdHJ1Y3QgbWFjYlx0XHQqYnA7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTI2OS1cdHVuc2lnbmVkIGludFx0XHR0eF9oZWFkLCB0eF90YWlsO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTI3MDpcdHN0cnVjdCBtYWNiX2RtYV9kZXNjXHQqdHhfcmluZztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjEyNzE6XHRzdHJ1Y3QgbWFjYl90eF9za2JcdCp0eF9za2I7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMjcyLVx0ZG1hX2FkZHJfdFx0XHR0eF9yaW5nX2RtYTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMjgwLVx0dW5zaWduZWQgaW50XHRcdHJ4X3ByZXBhcmVkX2hlYWQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxMjgxOlx0c3RydWN0IG1hY2JfZG1hX2Rlc2NcdCpyeF9yaW5nO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTI4Mi1cdHN0cnVjdCBza19idWZmXHRcdCoqcnhfc2tidWZmO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oPTEyOTg9c3RydWN0IG1hY2Ige1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEzMDItXHQvKiBoYXJkd2FyZSBJTyBhY2Nlc3NvcnMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjEzMDM6XHR1MzJcdCgqbWFjYl9yZWdfcmVhZGwpKHN0cnVjdCBtYWNiICpicCwgaW50IG9mZnNldCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxMzA0Olx0dm9pZFx0KCptYWNiX3JlZ193cml0ZWwpKHN0cnVjdCBtYWNiICpicCwgaW50IG9mZnNldCwgdTMyIHZhbHVlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEzMDUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxMzA2Olx0c3RydWN0IG1hY2JfZG1hX2Rlc2NcdCpyeF9yaW5nX3RpZW9mZjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEzMDctXHRkbWFfYWRkcl90XHRcdHJ4X3JpbmdfdGllb2ZmX2RtYTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMzEzLVx0dW5zaWduZWQgaW50XHRcdG51bV9xdWV1ZXM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxMzE0Olx0c3RydWN0IG1hY2JfcXVldWVcdHF1ZXVlc1tNQUNCX01BWF9RVUVVRVNdO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTMxNS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMzI2LVx0dW5pb24ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTMyNzpcdFx0c3RydWN0IG1hY2Jfc3RhdHNcdG1hY2I7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMzI4LVx0XHRzdHJ1Y3QgZ2VtX3N0YXRzXHRnZW07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTMzMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjEzMzE6XHRzdHJ1Y3QgbWFjYl9vcl9nZW1fb3BzXHRtYWNiZ2VtX29wcztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEzMzItXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTM0NC1cdC8qIEFUOTFSTTkyMDAgdHJhbnNtaXQgcXVldWUgKDEgb24gd2lyZSAmIzQzOyAxIHF1ZXVlZCkgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjEzNDU6XHRzdHJ1Y3QgbWFjYl90eF9za2JcdHJtOTIwMF90eHFbMl07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMzQ2LVx0dW5zaWduZWQgaW50XHRcdG1heF90eF9sZW5ndGg7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTM1OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjEzNTk6XHRzdHJ1Y3QgbWFjYl9wdHBfaW5mb1x0KnB0cF9pbmZvO1x0LyogbWFjYi1wdHAgaW50ZXJmYWNlICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMzYwLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEzODYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxMzg3Olx0c3RydWN0IG1hY2JfcG1fZGF0YSBwbV9kYXRhO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTM4ODpcdGNvbnN0IHN0cnVjdCBtYWNiX3VzcmlvX2NvbmZpZyAqdXNyaW87XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMzg5LX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTM5NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjEzOTY6ZW51bSBtYWNiX2JkX2NvbnRyb2wge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTM5Ny1cdFRTVEFNUF9ESVNBQkxFRCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaD0xNDA0PXZvaWQgZ2VtX3B0cF9yZW1vdmUoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxNDA1OnZvaWQgZ2VtX3B0cF90eHN0YW1wKHN0cnVjdCBtYWNiICpicCwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG1hY2JfZG1hX2Rlc2MgKmRlc2MpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTQwNjp2b2lkIGdlbV9wdHBfcnhzdGFtcChzdHJ1Y3QgbWFjYiAqYnAsIHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBtYWNiX2RtYV9kZXNjICpkZXNjKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjE0MDc6c3RhdGljIGlubGluZSB2b2lkIGdlbV9wdHBfZG9fdHhzdGFtcChzdHJ1Y3QgbWFjYiAqYnAsIHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBtYWNiX2RtYV9kZXNjICpkZXNjKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTQwOC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTQxNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjE0MTU6c3RhdGljIGlubGluZSB2b2lkIGdlbV9wdHBfZG9fcnhzdGFtcChzdHJ1Y3QgbWFjYiAqYnAsIHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBtYWNiX2RtYV9kZXNjICpkZXNjKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTQxNi17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg9MTQzMD1zdGF0aWMgaW5saW5lIHZvaWQgZ2VtX3B0cF9yZW1vdmUoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldikgeyB9XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xNDMxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTQzMjpzdGF0aWMgaW5saW5lIHZvaWQgZ2VtX3B0cF9kb190eHN0YW1wKHN0cnVjdCBtYWNiICpicCwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG1hY2JfZG1hX2Rlc2MgKmRlc2MpIHsgfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTQzMzpzdGF0aWMgaW5saW5lIHZvaWQgZ2VtX3B0cF9kb19yeHN0YW1wKHN0cnVjdCBtYWNiICpicCwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG1hY2JfZG1hX2Rlc2MgKmRlc2MpIHsgfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTQzNC0jZW5kaWZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTE0MzUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxNDM2OnN0YXRpYyBpbmxpbmUgYm9vbCBtYWNiX2lzX2dlbShzdHJ1Y3QgbWFjYiAqYnApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xNDM3LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaD0xNDUzPXN0YXRpYyBpbmxpbmUgdTY0IGVuc3RfbWF4X2h3X2ludGVydmFsKHUzMiBzcGVlZF9tYnBzKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTE0NTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxNDU5OnN0YXRpYyBpbmxpbmUgYm9vbCBtYWNiX2RtYTY0KHN0cnVjdCBtYWNiICpicClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTE0NjAte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTE0NjQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxNDY1OnN0YXRpYyBpbmxpbmUgYm9vbCBtYWNiX2RtYV9wdHAoc3RydWN0IG1hY2IgKmJwKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTQ2Ni17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTQ3MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjE0NzE6c3RhdGljIGlubGluZSB2b2lkIG1hY2JfcXVldWVfaXNyX2NsZWFyKHN0cnVjdCBtYWNiICpicCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjE0NzI6XHRcdFx0XHRcdHN0cnVjdCBtYWNiX3F1ZXVlICpxdWV1ZSwgdTMyIHZhbHVlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTQ3My17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTQ3OC0vKipcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjE0Nzk6ICogc3RydWN0IG1hY2JfcGxhdGZvcm1fZGF0YSAtIHBsYXRmb3JtIGRhdGEgZm9yIE1BQ0IgRXRoZXJuZXQgdXNlZCBmb3IgUENJIHJlZ2lzdHJhdGlvblxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTQ4MC0gKiBAcGNsazpcdFx0cGxhdGZvcm0gY2xvY2tcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xNDgyLSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTQ4MzpzdHJ1Y3QgbWFjYl9wbGF0Zm9ybV9kYXRhIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTE0ODQtXHRzdHJ1Y3QgY2xrXHQqcGNsaztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xNDg4LS8qKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTQ4OTogKiBzdHJ1Y3QgbWFjYl9xdWV1ZV9lbnN0X2NvbmZpZyAtIENvbmZpZ3VyYXRpb24gZm9yIEVuaGFuY2VkIFNjaGVkdWxlZCBUcmFmZmljXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xNDkwLSAqIEBzdGFydF90aW1lX21hc2s6ICBCaXRtYXNrIHJlcHJlc2VudGluZyB0aGUgc3RhcnQgdGltZSBmb3IgdGhlIHF1ZXVlXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTQ5Ny0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjE0OTg6c3RydWN0IG1hY2JfcXVldWVfZW5zdF9jb25maWcge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTQ5OS1cdHUzMiBzdGFydF90aW1lX21hc2s7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy00NC0vKiBUaGlzIHN0cnVjdHVyZSBpcyBvbmx5IHVzZWQgZm9yIE1BQ0Igb24gU2lGaXZlIEZVNTQwIGRldmljZXMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NDU6c3RydWN0IHNpZml2ZV9mdTU0MF9tYWNiX21nbXQge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy00Ni1cdHZvaWQgX19pb21lbSAqcmVnO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTI4LSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxMjk6c3RhdGljIHVuc2lnbmVkIGludCBtYWNiX2RtYV9kZXNjX2dldF9zaXplKHN0cnVjdCBtYWNiICpicClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTMwLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MTMxOlx0dW5zaWduZWQgaW50IGRlc2Nfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgbWFjYl9kbWFfZGVzYyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTEzMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MTMzOlx0aWYgKG1hY2JfZG1hNjQoYnApKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxMzQ6XHRcdGRlc2Nfc2l6ZSAmIzQzOz0gc2l6ZW9mKHN0cnVjdCBtYWNiX2RtYV9kZXNjXzY0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MTM1Olx0aWYgKG1hY2JfZG1hX3B0cChicCkpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjEzNjpcdFx0ZGVzY19zaXplICYjNDM7PSBzaXplb2Yoc3RydWN0IG1hY2JfZG1hX2Rlc2NfcHRwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTM3LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTQwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxNDE6c3RhdGljIHVuc2lnbmVkIGludCBtYWNiX2Fkal9kbWFfZGVzY19pZHgoc3RydWN0IG1hY2IgKmJwLCB1bnNpZ25lZCBpbnQgZGVzY19pZHgpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTE0Mi17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjE0MzpcdHJldHVybiBkZXNjX2lkeCAqICgxICYjNDM7IG1hY2JfZG1hNjQoYnApICYjNDM7IG1hY2JfZG1hX3B0cChicCkpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0xNDQtfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0xNDUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjE0NjpzdGF0aWMgc3RydWN0IG1hY2JfZG1hX2Rlc2NfNjQgKm1hY2JfNjRiX2Rlc2Moc3RydWN0IG1hY2IgKmJwLCBzdHJ1Y3QgbWFjYl9kbWFfZGVzYyAqZGVzYylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTQ3LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MTQ4Olx0cmV0dXJuIChzdHJ1Y3QgbWFjYl9kbWFfZGVzY182NCAqKSgodm9pZCAqKWRlc2NcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MTQ5Olx0XHQmIzQzOyBzaXplb2Yoc3RydWN0IG1hY2JfZG1hX2Rlc2MpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTUwLX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTE1Mi0vKiBSaW5nIGJ1ZmZlciBhY2Nlc3NvcnMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MTUzOnN0YXRpYyB1bnNpZ25lZCBpbnQgbWFjYl90eF9yaW5nX3dyYXAoc3RydWN0IG1hY2IgKmJwLCB1bnNpZ25lZCBpbnQgaW5kZXgpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTE1NC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0xNTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjE1ODpzdGF0aWMgc3RydWN0IG1hY2JfZG1hX2Rlc2MgKm1hY2JfdHhfZGVzYyhzdHJ1Y3QgbWFjYl9xdWV1ZSAqcXVldWUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTE1OS1cdFx0XHRcdFx0ICB1bnNpZ25lZCBpbnQgaW5kZXgpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTE2MC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjE2MTpcdGluZGV4ID0gbWFjYl90eF9yaW5nX3dyYXAocXVldWUtXHUwMDNlYnAsIGluZGV4KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MTYyOlx0aW5kZXggPSBtYWNiX2Fkal9kbWFfZGVzY19pZHgocXVldWUtXHUwMDNlYnAsIGluZGV4KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTYzLVx0cmV0dXJuIFx1MDAyNnF1ZXVlLVx1MDAzZXR4X3JpbmdbaW5kZXhdO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTY1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxNjY6c3RhdGljIHN0cnVjdCBtYWNiX3R4X3NrYiAqbWFjYl90eF9za2Ioc3RydWN0IG1hY2JfcXVldWUgKnF1ZXVlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0xNjctXHRcdFx0XHQgICAgICAgdW5zaWduZWQgaW50IGluZGV4KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0xNjgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxNjk6XHRyZXR1cm4gXHUwMDI2cXVldWUtXHUwMDNldHhfc2tiW21hY2JfdHhfcmluZ193cmFwKHF1ZXVlLVx1MDAzZWJwLCBpbmRleCldO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0xNzAtfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0xNzEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjE3MjpzdGF0aWMgZG1hX2FkZHJfdCBtYWNiX3R4X2RtYShzdHJ1Y3QgbWFjYl9xdWV1ZSAqcXVldWUsIHVuc2lnbmVkIGludCBpbmRleClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTczLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTE3NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MTc2Olx0b2Zmc2V0ID0gbWFjYl90eF9yaW5nX3dyYXAocXVldWUtXHUwMDNlYnAsIGluZGV4KSAqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjE3NzpcdFx0XHRtYWNiX2RtYV9kZXNjX2dldF9zaXplKHF1ZXVlLVx1MDAzZWJwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTc4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTgxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxODI6c3RhdGljIHVuc2lnbmVkIGludCBtYWNiX3J4X3Jpbmdfd3JhcChzdHJ1Y3QgbWFjYiAqYnAsIHVuc2lnbmVkIGludCBpbmRleClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTgzLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTE4Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MTg3OnN0YXRpYyBzdHJ1Y3QgbWFjYl9kbWFfZGVzYyAqbWFjYl9yeF9kZXNjKHN0cnVjdCBtYWNiX3F1ZXVlICpxdWV1ZSwgdW5zaWduZWQgaW50IGluZGV4KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0xODgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxODk6XHRpbmRleCA9IG1hY2JfcnhfcmluZ193cmFwKHF1ZXVlLVx1MDAzZWJwLCBpbmRleCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjE5MDpcdGluZGV4ID0gbWFjYl9hZGpfZG1hX2Rlc2NfaWR4KHF1ZXVlLVx1MDAzZWJwLCBpbmRleCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTE5MS1cdHJldHVybiBcdTAwMjZxdWV1ZS1cdTAwM2VyeF9yaW5nW2luZGV4XTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTE5My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MTk0OnN0YXRpYyB2b2lkICptYWNiX3J4X2J1ZmZlcihzdHJ1Y3QgbWFjYl9xdWV1ZSAqcXVldWUsIHVuc2lnbmVkIGludCBpbmRleClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTk1LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTk2LVx0cmV0dXJuIHF1ZXVlLVx1MDAzZXJ4X2J1ZmZlcnMgJiM0MzsgcXVldWUtXHUwMDNlYnAtXHUwMDNlcnhfYnVmZmVyX3NpemUgKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxOTc6XHQgICAgICAgbWFjYl9yeF9yaW5nX3dyYXAocXVldWUtXHUwMDNlYnAsIGluZGV4KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTk4LX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jPTIzOD1zdGF0aWMgYm9vbCBod19pc19nZW0odm9pZCBfX2lvbWVtICphZGRyLCBib29sIG5hdGl2ZV9pbylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTI0OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MjUwOnN0YXRpYyB2b2lkIG1hY2Jfc2V0X2h3YWRkcihzdHJ1Y3QgbWFjYiAqYnApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTI1MS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0yNTUtXHRib3R0b20gPSBnZXRfdW5hbGlnbmVkX2xlMzIoYnAtXHUwMDNlbmV0ZGV2LVx1MDAzZWRldl9hZGRyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MjU2Olx0bWFjYl9vcl9nZW1fd3JpdGVsKGJwLCBTQTFCLCBib3R0b20pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0yNTctXHR0b3AgPSBnZXRfdW5hbGlnbmVkX2xlMTYoYnAtXHUwMDNlbmV0ZGV2LVx1MDAzZWRldl9hZGRyICYjNDM7IDQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoyNTg6XHRtYWNiX29yX2dlbV93cml0ZWwoYnAsIFNBMVQsIHRvcCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTI1OS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTI2NS1cdC8qIENsZWFyIHVudXNlZCBhZGRyZXNzIHJlZ2lzdGVyIHNldHMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MjY2Olx0bWFjYl9vcl9nZW1fd3JpdGVsKGJwLCBTQTJCLCAwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MjY3Olx0bWFjYl9vcl9nZW1fd3JpdGVsKGJwLCBTQTJULCAwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MjY4Olx0bWFjYl9vcl9nZW1fd3JpdGVsKGJwLCBTQTNCLCAwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MjY5Olx0bWFjYl9vcl9nZW1fd3JpdGVsKGJwLCBTQTNULCAwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MjcwOlx0bWFjYl9vcl9nZW1fd3JpdGVsKGJwLCBTQTRCLCAwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MjcxOlx0bWFjYl9vcl9nZW1fd3JpdGVsKGJwLCBTQTRULCAwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMjcyLX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMjczLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoyNzQ6c3RhdGljIHZvaWQgbWFjYl9nZXRfaHdhZGRyKHN0cnVjdCBtYWNiICpicClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMjc1LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTI4Mi1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIDQ7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjI4MzpcdFx0Ym90dG9tID0gbWFjYl9vcl9nZW1fcmVhZGwoYnAsIFNBMUIgJiM0MzsgaSAqIDgpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoyODQ6XHRcdHRvcCA9IG1hY2Jfb3JfZ2VtX3JlYWRsKGJwLCBTQTFUICYjNDM7IGkgKiA4KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMjg1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMzAyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzozMDM6c3RhdGljIGludCBtYWNiX21kaW9fd2FpdF9mb3JfaWRsZShzdHJ1Y3QgbWFjYiAqYnApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTMwNC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0zMTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjMxMTpzdGF0aWMgaW50IG1hY2JfbWRpb19yZWFkX2MyMihzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgbWlpX2lkLCBpbnQgcmVnbnVtKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0zMTIte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMzE5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzozMjA6XHRzdGF0dXMgPSBtYWNiX21kaW9fd2FpdF9mb3JfaWRsZShicCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTMyMS1cdGlmIChzdGF0dXMgXHUwMDNjIDApXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0zMjMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjMyNDpcdG1hY2Jfd3JpdGVsKGJwLCBNQU4sIChNQUNCX0JGKFNPRiwgTUFDQl9NQU5fQzIyX1NPRilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMzI1LVx0XHRcdCAgICAgIHwgTUFDQl9CRihSVywgTUFDQl9NQU5fQzIyX1JFQUQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0zMjktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjMzMDpcdHN0YXR1cyA9IG1hY2JfbWRpb193YWl0X2Zvcl9pZGxlKGJwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMzMxLVx0aWYgKHN0YXR1cyBcdTAwM2MgMClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTMzMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MzM0Olx0c3RhdHVzID0gTUFDQl9CRkVYVChEQVRBLCBtYWNiX3JlYWRsKGJwLCBNQU4pKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMzM1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMzQxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzozNDI6c3RhdGljIGludCBtYWNiX21kaW9fcmVhZF9jNDUoc3RydWN0IG1paV9idXMgKmJ1cywgaW50IG1paV9pZCwgaW50IGRldmFkLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0zNDMtXHRcdFx0ICAgICAgaW50IHJlZ251bSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTM1My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MzU0Olx0c3RhdHVzID0gbWFjYl9tZGlvX3dhaXRfZm9yX2lkbGUoYnApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0zNTUtXHRpZiAoc3RhdHVzIFx1MDAzYyAwKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMzU3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzozNTg6XHRtYWNiX3dyaXRlbChicCwgTUFOLCAoTUFDQl9CRihTT0YsIE1BQ0JfTUFOX0M0NV9TT0YpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTM1OS1cdFx0XHQgICAgICB8IE1BQ0JfQkYoUlcsIE1BQ0JfTUFOX0M0NV9BRERSKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMzY0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzozNjU6XHRzdGF0dXMgPSBtYWNiX21kaW9fd2FpdF9mb3JfaWRsZShicCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTM2Ni1cdGlmIChzdGF0dXMgXHUwMDNjIDApXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0zNjgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjM2OTpcdG1hY2Jfd3JpdGVsKGJwLCBNQU4sIChNQUNCX0JGKFNPRiwgTUFDQl9NQU5fQzQ1X1NPRilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMzcwLVx0XHRcdCAgICAgIHwgTUFDQl9CRihSVywgTUFDQl9NQU5fQzQ1X1JFQUQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0zNzQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjM3NTpcdHN0YXR1cyA9IG1hY2JfbWRpb193YWl0X2Zvcl9pZGxlKGJwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMzc2LVx0aWYgKHN0YXR1cyBcdTAwM2MgMClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTM3OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6Mzc5Olx0c3RhdHVzID0gTUFDQl9CRkVYVChEQVRBLCBtYWNiX3JlYWRsKGJwLCBNQU4pKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMzgwLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMzg2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzozODc6c3RhdGljIGludCBtYWNiX21kaW9fd3JpdGVfYzIyKHN0cnVjdCBtaWlfYnVzICpidXMsIGludCBtaWlfaWQsIGludCByZWdudW0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTM4OC1cdFx0XHQgICAgICAgdTE2IHZhbHVlKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMzk2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzozOTc6XHRzdGF0dXMgPSBtYWNiX21kaW9fd2FpdF9mb3JfaWRsZShicCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTM5OC1cdGlmIChzdGF0dXMgXHUwMDNjIDApXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy00MDAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjQwMTpcdG1hY2Jfd3JpdGVsKGJwLCBNQU4sIChNQUNCX0JGKFNPRiwgTUFDQl9NQU5fQzIyX1NPRilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNDAyLVx0XHRcdCAgICAgIHwgTUFDQl9CRihSVywgTUFDQl9NQU5fQzIyX1dSSVRFKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNDA3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo0MDg6XHRzdGF0dXMgPSBtYWNiX21kaW9fd2FpdF9mb3JfaWRsZShicCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTQwOS1cdGlmIChzdGF0dXMgXHUwMDNjIDApXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy00MTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjQxODpzdGF0aWMgaW50IG1hY2JfbWRpb193cml0ZV9jNDUoc3RydWN0IG1paV9idXMgKmJ1cywgaW50IG1paV9pZCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNDE5LVx0XHRcdCAgICAgICBpbnQgZGV2YWQsIGludCByZWdudW0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy00MzAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjQzMTpcdHN0YXR1cyA9IG1hY2JfbWRpb193YWl0X2Zvcl9pZGxlKGJwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNDMyLVx0aWYgKHN0YXR1cyBcdTAwM2MgMClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTQzNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NDM1Olx0bWFjYl93cml0ZWwoYnAsIE1BTiwgKE1BQ0JfQkYoU09GLCBNQUNCX01BTl9DNDVfU09GKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy00MzYtXHRcdFx0ICAgICAgfCBNQUNCX0JGKFJXLCBNQUNCX01BTl9DNDVfQUREUilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTQ0MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NDQyOlx0c3RhdHVzID0gbWFjYl9tZGlvX3dhaXRfZm9yX2lkbGUoYnApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy00NDMtXHRpZiAoc3RhdHVzIFx1MDAzYyAwKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNDQ1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo0NDY6XHRtYWNiX3dyaXRlbChicCwgTUFOLCAoTUFDQl9CRihTT0YsIE1BQ0JfTUFOX0M0NV9TT0YpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTQ0Ny1cdFx0XHQgICAgICB8IE1BQ0JfQkYoUlcsIE1BQ0JfTUFOX0M0NV9XUklURSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTQ1Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NDUzOlx0c3RhdHVzID0gbWFjYl9tZGlvX3dhaXRfZm9yX2lkbGUoYnApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy00NTQtXHRpZiAoc3RhdHVzIFx1MDAzYyAwKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNDYyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo0NjM6c3RhdGljIHZvaWQgbWFjYl9pbml0X2J1ZmZlcnMoc3RydWN0IG1hY2IgKmJwKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy00NjQte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo0NjU6XHRzdHJ1Y3QgbWFjYl9xdWV1ZSAqcXVldWU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTQ2Ni1cdHVuc2lnbmVkIGludCBxO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNDY4LVx0LyogU2luZ2xlIHJlZ2lzdGVyIGZvciBhbGwgcXVldWVzJiMzOTsgaGlnaCAzMiBiaXRzLiAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo0Njk6XHRpZiAobWFjYl9kbWE2NChicCkpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NDcwOlx0XHRtYWNiX3dyaXRlbChicCwgUkJRUEgsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTQ3MS1cdFx0XHQgICAgdXBwZXJfMzJfYml0cyhicC1cdTAwM2VxdWV1ZXNbMF0ucnhfcmluZ19kbWEpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NDcyOlx0XHRtYWNiX3dyaXRlbChicCwgVEJRUEgsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTQ3My1cdFx0XHQgICAgdXBwZXJfMzJfYml0cyhicC1cdTAwM2VxdWV1ZXNbMF0udHhfcmluZ19kbWEpKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTQ4Mi0vKipcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NDgzOiAqIG1hY2Jfc2V0X3R4X2NsaygpIC0gU2V0IGEgY2xvY2sgdG8gYSBuZXcgZnJlcXVlbmN5XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTQ4NC0gKiBAYnA6XHRcdHBvaW50ZXIgdG8gc3RydWN0IG1hY2Jcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTQ4Ni0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NDg3OnN0YXRpYyB2b2lkIG1hY2Jfc2V0X3R4X2NsayhzdHJ1Y3QgbWFjYiAqYnAsIGludCBzcGVlZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNDg4LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTUxOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NTIwOnN0YXRpYyB2b2lkIG1hY2JfdXN4X3Bjc19saW5rX3VwKHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzLCB1bnNpZ25lZCBpbnQgbmVnX21vZGUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTUyMS1cdFx0XHRcdCBwaHlfaW50ZXJmYWNlX3QgaW50ZXJmYWNlLCBpbnQgc3BlZWQsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy01MzQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjUzNTpzdGF0aWMgdm9pZCBtYWNiX3VzeF9wY3NfZ2V0X3N0YXRlKHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy01MzYtXHRcdFx0XHQgICB1bnNpZ25lZCBpbnQgbmVnX21vZGUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy01NTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjU1MzpzdGF0aWMgaW50IG1hY2JfdXN4X3Bjc19jb25maWcoc3RydWN0IHBoeWxpbmtfcGNzICpwY3MsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTU1NC1cdFx0XHQgICAgICAgdW5zaWduZWQgaW50IG5lZ19tb2RlLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNTY2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo1Njc6c3RhdGljIHVuc2lnbmVkIGludCBtYWNiX3Bjc19pbmJhbmRfY2FwcyhzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNTY4LVx0XHRcdFx0XHQgcGh5X2ludGVyZmFjZV90IGludGVyZmFjZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTU3Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NTczOnN0YXRpYyB2b2lkIG1hY2JfcGNzX2dldF9zdGF0ZShzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcywgdW5zaWduZWQgaW50IG5lZ19tb2RlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy01NzQtXHRcdFx0ICAgICAgIHN0cnVjdCBwaHlsaW5rX2xpbmtfc3RhdGUgKnN0YXRlKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNTgzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo1ODQ6c3RhdGljIHZvaWQgbWFjYl9wY3NfYW5fcmVzdGFydChzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNTg1LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTU4OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NTg5OnN0YXRpYyBpbnQgbWFjYl9wY3NfY29uZmlnKHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy01OTAtXHRcdFx0ICAgdW5zaWduZWQgaW50IG5lZ19tb2RlLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNjA0LVx0ICogTXVzdCBiZSB3cml0dGVuIGFmdGVyIFBDU1NFTCBpcyBzZXQgaW4gTkNGR1Igd2hpY2ggaXMgZG9uZSBpblxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo2MDU6XHQgKiBtYWNiX21hY19jb25maWcoKSwgb3RoZXJ3aXNlIHdyaXRlcyB3aWxsIG5vdCB0YWtlIGVmZmVjdC5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNjA2LVx0ICovXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy02MTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjYxODpzdGF0aWMgY29uc3Qgc3RydWN0IHBoeWxpbmtfcGNzX29wcyBtYWNiX3BoeWxpbmtfdXN4X3Bjc19vcHMgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjYxOTpcdC5wY3NfZ2V0X3N0YXRlID0gbWFjYl91c3hfcGNzX2dldF9zdGF0ZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NjIwOlx0LnBjc19jb25maWcgPSBtYWNiX3VzeF9wY3NfY29uZmlnLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo2MjE6XHQucGNzX2xpbmtfdXAgPSBtYWNiX3VzeF9wY3NfbGlua191cCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNjIyLX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTYyMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NjI0OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcGh5bGlua19wY3Nfb3BzIG1hY2JfcGh5bGlua19wY3Nfb3BzID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo2MjU6XHQucGNzX2luYmFuZF9jYXBzID0gbWFjYl9wY3NfaW5iYW5kX2NhcHMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjYyNjpcdC5wY3NfZ2V0X3N0YXRlID0gbWFjYl9wY3NfZ2V0X3N0YXRlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo2Mjc6XHQucGNzX2FuX3Jlc3RhcnQgPSBtYWNiX3Bjc19hbl9yZXN0YXJ0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo2Mjg6XHQucGNzX2NvbmZpZyA9IG1hY2JfcGNzX2NvbmZpZyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNjI5LX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTYzMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NjMxOnN0YXRpYyBib29sIG1hY2JfdHhfbHBpX3NldChzdHJ1Y3QgbWFjYiAqYnAsIGJvb2wgZW5hYmxlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy02MzIte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNjM2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo2Mzc6XHRuY3IgPSBtYWNiX3JlYWRsKGJwLCBOQ1IpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy02MzgtXHRvbGQgPSBuY3I7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy02NDMtXHRpZiAob2xkICE9IG5jcilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NjQ0Olx0XHRtYWNiX3dyaXRlbChicCwgTkNSLCBuY3IpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy02NDUtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy02NDgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjY0OTpzdGF0aWMgYm9vbCBtYWNiX3R4X2FsbF9xdWV1ZXNfaWRsZShzdHJ1Y3QgbWFjYiAqYnApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTY1MC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjY1MTpcdHN0cnVjdCBtYWNiX3F1ZXVlICpxdWV1ZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNjUyLVx0dW5zaWduZWQgaW50IHE7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy02NjAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjY2MTpzdGF0aWMgdm9pZCBtYWNiX3R4X2xwaV93b3JrX2ZuKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNjYyLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTY2Ni1cdHNwaW5fbG9ja19pcnFzYXZlKFx1MDAyNmJwLVx1MDAzZWxvY2ssIGZsYWdzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NjY3Olx0aWYgKGJwLVx1MDAzZWVlZV9hY3RpdmUgXHUwMDI2XHUwMDI2IG1hY2JfdHhfYWxsX3F1ZXVlc19pZGxlKGJwKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NjY4Olx0XHRtYWNiX3R4X2xwaV9zZXQoYnAsIHRydWUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy02NjktXHRzcGluX3VubG9ja19pcnFyZXN0b3JlKFx1MDAyNmJwLVx1MDAzZWxvY2ssIGZsYWdzKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTY3MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NjcyOnN0YXRpYyB2b2lkIG1hY2JfdHhfbHBpX3NjaGVkdWxlKHN0cnVjdCBtYWNiICpicClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNjczLXtcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMCAxNjo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NDM3MgoJCQkJCQkJb3V0cHV0OiAzNQoJCQkJCQkJdGhvdWdodHM6IDQwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHN1bW1hcnksIGFzIHRob3VnaCBJJiMzOTttIHRoaW5raW5nIHRocm91Z2ggdGhpcyBwcm9jZXNzOgoKKipUcmFjaW5nIHRoZSBQVFAgSW5pdGlhbGl6YXRpb24qKgoKT2theSwgc28gSSYjMzk7bSBkaWdnaW5nIGludG8gaG93IFByZWNpc2lvbiBUaW1lIFByb3RvY29sIChQVFApIGlzIGluaXRpYWxpemVkIHdpdGhpbiB0aGlzIGRyaXZlci4gVGhlIGluaXRpYWwgY2x1ZSBpcyB0aGF0IGBnZW1fcHRwX2luaXRgIGdldHMgY2FsbGVkLCBhbmQgZnJvbSB3aGF0IEkgcmVtZW1iZXIsIEkgYmVsaWV2ZSBpdCYjMzk7cyBoYXBwZW5pbmcgd2l0aGluIGBtYWNiX21haW4uY2AuIE5vdywgdGhlIG5leHQgbG9naWNhbCBzdGVwIGlzIHRvIHBpbnBvaW50ICpleGFjdGx5KiB3aGVyZSB0aGF0IGZ1bmN0aW9uIGNhbGwgbGl2ZXMgd2l0aGluIHRoZSBjb2RlLiBMZXQmIzM5O3MgZmlyZSB1cCB0aGUgc2VhcmNoIHRvb2xzIGFuZCBzZWUgd2hhdCB3ZSBjYW4gZmluZC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNhbGwgc3RhY2sgYW5kIGhvdyB0aGlzIFBUUCBpbml0aWFsaXphdGlvbiBmaXRzIGludG8gdGhlIG92ZXJhbGwgTUFDQiBkcml2ZXImIzM5O3Mgc3RhcnR1cCBzZXF1ZW5jZS4gVGhhdCB3aWxsIHRlbGwgbWUgZXZlcnl0aGluZyBJIG5lZWQgdG8ga25vdyBhYm91dCB0aGUgZGV2aWNlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMCAxNjo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtnZW1fcHRwX2luaXQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oPTEzOTY9ZW51bSBtYWNiX2JkX2NvbnRyb2wge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTE0MDItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxNDAzOnZvaWQgZ2VtX3B0cF9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTQwNC12b2lkIGdlbV9wdHBfcmVtb3ZlKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oPTE0MjU9aW50IGdlbV9zZXRfaHd0c3Qoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xNDI4LSNlbHNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxNDI5OnN0YXRpYyBpbmxpbmUgdm9pZCBnZW1fcHRwX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldikgeyB9XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xNDMwLXN0YXRpYyBpbmxpbmUgdm9pZCBnZW1fcHRwX3JlbW92ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KSB7IH1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jPTM3NzU9c3RhdGljIHN0cnVjdCBtYWNiX3B0cF9pbmZvIGdlbV9wdHBfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6Mzc3NjpcdC5wdHBfaW5pdFx0ID0gZ2VtX3B0cF9pbml0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0zNzc3LVx0LnB0cF9yZW1vdmVcdCA9IGdlbV9wdHBfcmVtb3ZlLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYz0xOTE9c3RhdGljIGNvbnN0IHN0cnVjdCBwdHBfY2xvY2tfaW5mbyBnZW1fcHRwX2NhcHNfdGVtcGxhdGUgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jLTIwNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYzoyMDc6c3RhdGljIHZvaWQgZ2VtX3B0cF9pbml0X3RpbWVyKHN0cnVjdCBtYWNiICpicClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYy0yMDgte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYy0yMjEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmM6MjIyOnN0YXRpYyB2b2lkIGdlbV9wdHBfaW5pdF90c3Uoc3RydWN0IG1hY2IgKmJwKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jLTIyMy17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jPTI5Nz12b2lkIGdlbV9wdHBfdHhzdGFtcChzdHJ1Y3QgbWFjYiAqYnAsIHN0cnVjdCBza19idWZmICpza2IsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jLTMyNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYzozMjc6dm9pZCBnZW1fcHRwX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYy0zMjgte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYy0zMzctXHRicC1cdTAwM2VwdHBfY2xvY2tfaW5mby5tYXhfYWRqID0gYnAtXHUwMDNlcHRwX2luZm8tXHUwMDNlZ2V0X3B0cF9tYXhfYWRqKCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmM6MzM4Olx0Z2VtX3B0cF9pbml0X3RpbWVyKGJwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYy0zMzktXHRicC1cdTAwM2VwdHBfY2xvY2sgPSBwdHBfY2xvY2tfcmVnaXN0ZXIoXHUwMDI2YnAtXHUwMDNlcHRwX2Nsb2NrX2luZm8sIFx1MDAyNm5ldGRldi1cdTAwM2VkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYy0zNDktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmM6MzUwOlx0Z2VtX3B0cF9pbml0X3RzdShicCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMtMzUxLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMCAxNjo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NTU5MQoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDI5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKlRyYWNpbmcgdGhlIFBUUCBJbml0aWFsaXphdGlvbiBpbiBtYWNiX21haW4uYyoqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgUFRQIGluaXRpYWxpemF0aW9uIHJvdXRpbmUsIHNwZWNpZmljYWxseSBgZ2VtX3B0cF9pbmZvLnB0cF9pbml0YCwgaXMgYmVpbmcgY2FsbGVkIHdpdGhpbiBgbWFjYl9tYWluLmNgLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcyB0byB0cmFjayBkb3duIHRoZSBjYWxsZXJzIOKAkyB3aGljaCBvdGhlciBmdW5jdGlvbnMgd2l0aGluIHRoYXQgZmlsZSBhcmUgaW52b2tpbmcgYGdlbV9wdHBfaW5mby5wdHBfaW5pdGA/IFRoaXMgaXMgdGhlIGNydWNpYWwgc3RhcnRpbmcgcG9pbnQgZm9yIHVuZGVyc3RhbmRpbmcgdGhlIG92ZXJhbGwgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UgYW5kIHRoZSByb2xlIG9mIFBUUCB3aXRoaW4gdGhlIGJyb2FkZXIgTUFDQiBkcml2ZXIgY29udGV4dC4gSSYjMzk7bGwgbmVlZCB0byB1c2UgbXkgdXN1YWwgbWV0aG9kcywgbGlrZWx5IGEgY29tYmluYXRpb24gb2Ygc3RhdGljIGFuYWx5c2lzIChncmVwcGluZyBvciB1c2luZyBhbiBJREUmIzM5O3MgY3Jvc3MtcmVmZXJlbmNpbmcgY2FwYWJpbGl0aWVzKSBhbmQgcGVyaGFwcyBldmVuIHNvbWUgZHluYW1pYyB0cmFjaW5nIGlmIHRoZSBzdGF0aWMgYW5hbHlzaXMgcHJvdmVzIGluc3VmZmljaWVudCBvciBpZiBJIHN1c3BlY3QgY29uZGl0aW9uYWwgY2FsbHMgdGhhdCBhcmUgbm90IGltbWVkaWF0ZWx5IG9idmlvdXMgZnJvbSB0aGUgc291cmNlIGNvZGUuIFRoZSBnb2FsIGlzIGEgY2xlYXIgdW5kZXJzdGFuZGluZyBvZiB0aGUgaW5pdGlhbGl6YXRpb24gZmxvdy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzAgMTY6NDM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cHRwX2luaXQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oPTEyMDM9c3RydWN0IG1hY2JfcHRwX2luZm8ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTIwNDpcdHZvaWQgKCpwdHBfaW5pdCkoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMjA1LVx0dm9pZCAoKnB0cF9yZW1vdmUpKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oPTEzOTY9ZW51bSBtYWNiX2JkX2NvbnRyb2wge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTE0MDItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxNDAzOnZvaWQgZ2VtX3B0cF9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTQwNC12b2lkIGdlbV9wdHBfcmVtb3ZlKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oPTE0MjU9aW50IGdlbV9zZXRfaHd0c3Qoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xNDI4LSNlbHNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxNDI5OnN0YXRpYyBpbmxpbmUgdm9pZCBnZW1fcHRwX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldikgeyB9XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xNDMwLXN0YXRpYyBpbmxpbmUgdm9pZCBnZW1fcHRwX3JlbW92ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KSB7IH1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jPTMxMjk9c3RhdGljIGludCBtYWNiX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTMxNzctXHRpZiAoYnAtXHUwMDNlcHRwX2luZm8pXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjMxNzg6XHRcdGJwLVx1MDAzZXB0cF9pbmZvLVx1MDAzZXB0cF9pbml0KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTMxNzktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYz0zNzc1PXN0YXRpYyBzdHJ1Y3QgbWFjYl9wdHBfaW5mbyBnZW1fcHRwX2luZm8gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjM3NzY6XHQucHRwX2luaXRcdCA9IGdlbV9wdHBfaW5pdCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMzc3Ny1cdC5wdHBfcmVtb3ZlXHQgPSBnZW1fcHRwX3JlbW92ZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jPTYxMzM9c3RhdGljIGludCBfX21heWJlX3VudXNlZCBtYWNiX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy02MjA3LVx0aWYgKGJwLVx1MDAzZXB0cF9pbmZvKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo2MjA4Olx0XHRicC1cdTAwM2VwdHBfaW5mby1cdTAwM2VwdHBfaW5pdChuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy02MjA5LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYz0xOTE9c3RhdGljIGNvbnN0IHN0cnVjdCBwdHBfY2xvY2tfaW5mbyBnZW1fcHRwX2NhcHNfdGVtcGxhdGUgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jLTIwNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYzoyMDc6c3RhdGljIHZvaWQgZ2VtX3B0cF9pbml0X3RpbWVyKHN0cnVjdCBtYWNiICpicClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYy0yMDgte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYy0yMjEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmM6MjIyOnN0YXRpYyB2b2lkIGdlbV9wdHBfaW5pdF90c3Uoc3RydWN0IG1hY2IgKmJwKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jLTIyMy17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jPTI5Nz12b2lkIGdlbV9wdHBfdHhzdGFtcChzdHJ1Y3QgbWFjYiAqYnAsIHN0cnVjdCBza19idWZmICpza2IsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jLTMyNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYzozMjc6dm9pZCBnZW1fcHRwX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYy0zMjgte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYy0zMzctXHRicC1cdTAwM2VwdHBfY2xvY2tfaW5mby5tYXhfYWRqID0gYnAtXHUwMDNlcHRwX2luZm8tXHUwMDNlZ2V0X3B0cF9tYXhfYWRqKCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmM6MzM4Olx0Z2VtX3B0cF9pbml0X3RpbWVyKGJwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYy0zMzktXHRicC1cdTAwM2VwdHBfY2xvY2sgPSBwdHBfY2xvY2tfcmVnaXN0ZXIoXHUwMDI2YnAtXHUwMDNlcHRwX2Nsb2NrX2luZm8sIFx1MDAyNm5ldGRldi1cdTAwM2VkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYy0zNDktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmM6MzUwOlx0Z2VtX3B0cF9pbml0X3RzdShicCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMtMzUxLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMCAxNjo0MzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NzIyNwoJCQkJCQkJb3V0cHV0OiAxNTgKCQkJCQkJCXRob3VnaHRzOiAxMzc3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKldvcnRoRnV6emluZyBBc3Nlc3NtZW50OiBDYWRlbmNlIE1BQ0IvR0VNIERyaXZlcioqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBGaXJzdCwgYGdlbV9wdHBfaW5pdGAgaXMgY2FsbGVkIGJ5IGBtYWNiX29wZW5gLCB3aGljaCBpcyBgbmRvX29wZW5gLCBnb3QgaXQuIE5vdywgdGhlIGtleSBxdWVzdGlvbiBpcyB3aGV0aGVyIHRoaXMgQ2FkZW5jZSBNQUNCIGRyaXZlciBjYW4gYmUgaW5zdGFudGlhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgR0NFIGZ1enppbmcgZW52aXJvbm1lbnRzLiBXZSBuZWVkIHRvIGJlIG1ldGljdWxvdXMuIExldCYjMzk7cyByZXZpc2l0IHRoZSBydWxlcy4gVGhlIGNyaXRlcmlhIHN0aXB1bGF0ZSB0aGF0IHdlIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYCBpZiB0aGUgcGF0Y2ggY29uY2VybnMgbW9kaWZpY2F0aW9ucyB0byBkb2N1bWVudGF0aW9uLCBLY29uZmlnLCBjb21tZW50cywgY29zbWV0aWMgY2hhbmdlcywgbm9uLWZ1bmN0aW9uYWwgbnVtZXJpYyBjb25zdGFudHMvbWFjcm9zLCBvciB1bnJlYWNoYWJsZSBjb2RlIHBhdGhzIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gU3BlY2lmaWNhbGx5LCB0aGUgcnVsZXMgZXhjbHVkZSBjb2RlIHBhdGhzIHRoYXQgYXJlIGluYWNjZXNzaWJsZSBpbiBRRU1VL0dDRSwgZXZlbiB3aXRoIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlLiBUaGlzIGFsc28gYXBwbGllcyB0byB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyByZXF1aXJpbmcgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4gRmluYWxseSwgdGVhcmRvd24gY2FsbGJhY2tzIGFyZSBhbHNvIHVuaW50ZXJlc3RpbmcgaW4gdGhpcyBjb250ZXh0LgoKUmlnaHQsIHNvLCBpcyB0aGUgQ2FkZW5jZSBNQUNCL0dFTSBhIGhhcmR3YXJlLXNwZWNpZmljIFNvQy9QQ0kgZHJpdmVyIG5vdCByZWFjaGFibGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzPyBMZXQmIzM5O3MgY2hlY2suIEhvdyBpcyBDYWRlbmNlIE1BQ0IgcHJvYmVkPyBJdCYjMzk7cyBwcm9iZWQgdmlhIERUIChEZXZpY2UgVHJlZSkgd2l0aCBjb21wYXRpYmxlIHN0cmluZ3MgbGlrZSBgY2RucyxhdDkxc2FtOTI2MC1tYWNiYCwgYGNkbnMsbWFjYmAsIGBjZG5zLGdlbWAsIGB4bG54LHp5bnEtZ2VtYCwgYHNpZml2ZSxmdTU0MC1jMDAwLWdlbWAsIGFuZCBhbHNvIHZpYSBQQ0kgd2l0aCBJRCAweDE3Y2Q6MHhlMDA3IChDYWRlbmNlIFBDSSBHRU0pLiBOb3csIGlzIHRoaXMgQ2FkZW5jZSBHRU0gZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSB4ODZfNjQgb3IgQVJNNjQgdmlydCBtYWNoaW5lcz8gTm8hIFN0YW5kYXJkIFFFTVUgeDg2XzY0IHVzZXMgZTEwMDAsIGUxMDAwZSwgcnRsODEzOSwgdmlydGlvLW5ldC1wY2ksIGV0Yy4sIGFuZCBzdGFuZGFyZCBBUk02NCB2aXJ0IHVzZXMgdmlydGlvLW5ldC1wY2kuIENhZGVuY2UgR0VNIGluIFFFTVUgaXMgb25seSBhdmFpbGFibGUgaWYgcnVubmluZyBzcGVjaWZpYyBtYWNoaW5lIGJvYXJkcyBsaWtlIGB4bG54LXpjdTEwMmAsIGB6eW5xLWE5YCwgb3IgYHNpZml2ZV91YC4gR0NFIG9yIHN0YW5kYXJkIFFFTVUgKHg4Nl82NCBvciBBUk02NCB2aXJ0KSBkbyBub3Qgb2ZmZXIgQ2FkZW5jZSBHRU0gaGFyZHdhcmUgb3IgUENJIGRldmljZXMuCgpPa2F5LCB3aGF0IGFib3V0IHN5emthbGxlcj8gQ2FuIHN5emthbGxlciBydW4gb24gaW5zdGFuY2VzIHRlc3RpbmcgdGhlc2UgZHJpdmVycz8gU3RhbmRhcmQgTGludXggZnV6emluZyBpbiBzeXprYWxsZXIgaXMgeDg2XzY0IGFuZCBhcm02NCB2aXJ0LiBUaGUgcnVsZXMgYXJlIGNsZWFyOiBjb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUgYXJlIGV4Y2x1ZGVkLCBhbG9uZyB3aXRoIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIHJlcXVpcmluZyBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlLgoKU28sIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL2AuLi4gSXMgQ2FkZW5jZSBNQUNCIGEgdmVuZG9yLXNwZWNpZmljIGhhcmR3YXJlIGRyaXZlcj8gWWVzISBJdCYjMzk7cyBhbiBFdGhlcm5ldCBNQUMgZHJpdmVyIGZvciBDYWRlbmNlIElQIGZvdW5kIG9uIEF0bWVsL01pY3JvY2hpcCBBVDkxL1NBTUE1LCBYaWxpbnggWnlucSwgU2lGaXZlIEZVNTQwLCBhbmQgQ2FkZW5jZSYjMzk7cyBpbnRlcm5hbCBQQ0kgRlBHQSBwcm90b3R5cGUgYm9hcmQuIEl0JiMzOTtzIHVucmVhY2hhYmxlIHdpdGhvdXQgdGhhdCBzcGVjaWZpYyBwaHlzaWNhbCBoYXJkd2FyZSBvciBzcGVjaWFsaXplZCBlbWJlZGRlZCBTb0MgZW11bGF0aW9uLiBUaGVyZSYjMzk7cyBubyBzb2Z0d2FyZSBkZXZpY2UvbW9jay92aXJ0dWFsIGRldmljZSBvciBVU0IgaW50ZXJmYWNlIHRoYXQgdXNlcyBtYWNiLiBNQUNCIGlzIHB1cmVseSBhbiBNTUlPIHBsYXRmb3JtIGRyaXZlciBvciBhIENETlMgUENJIHdyYXBwZXIgZm9yIHRoZSBDYWRlbmNlIElQIGNvcmUuIEl0JiMzOTtzIGluYWNjZXNzaWJsZSBpbiBzdGFuZGFyZCBmdXp6aW5nIGVudmlyb25tZW50cy4KCkxldCYjMzk7cyBjb25maXJtIHRoZSBgV29ydGhGdXp6aW5nYCBzaG91bGQgYmUgZmFsc2UgYmFzZWQgb24gdGhlIGNyaXRlcmlhOiAmIzM0O1JldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYuLi4gY29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLi4uIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuJiMzNDsKCkluZGVlZCwgdGhlIENhZGVuY2UgTUFDQiAvIEdFTSBldGhlcm5ldCBkcml2ZXIgKGBkcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmNgKSByZXF1aXJlcyBzcGVjaWZpYyBwaHlzaWNhbCBoYXJkd2FyZSAoQXRtZWwgLyBNaWNyb2NoaXAgU29DLCBYaWxpbnggWnlucSwgU2lGaXZlIFJJU0MtViBTb0MsIG9yIENhZGVuY2UgUENJIEZQR0EgdGVzdCBkZXZpY2UpIHRoYXQgaXMgbm90IGF2YWlsYWJsZSBvciBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVSB2aXJ0L0dDRSkuCgpUaGVyZWZvcmUsIHRoZSBjb25jbHVzaW9uIGlzOiBgV29ydGhGdXp6aW5nID0gZmFsc2VgLiBgRW5hYmxlQ29uZmlncyA9IFtdYC4gYEZvY3VzU3ltYm9scyA9IFtdYC4gVGhlIHJlYXNvbmluZzogVGhlIHBhdGNoIGZpeGVzIHRoZSBpbml0aWFsaXphdGlvbiBvcmRlciBvZiB0aGUgc3BpbmxvY2sgYHRzdV9jbGtfbG9ja2AgaW4gYGdlbV9wdHBfaW5pdGAgd2l0aGluIHRoZSBDYWRlbmNlIE1BQ0IvR0VNIG5ldHdvcmsgZHJpdmVyLiBUaGlzIGRyaXZlciB0YXJnZXRzIGVtYmVkZGVkIFNvQ3MgKEF0bWVsL01pY3JvY2hpcCwgWGlsaW54IFp5bnEsIFNpRml2ZSkgYW5kIENhZGVuY2UgUENJIHRlc3QgaGFyZHdhcmUgdGhhdCBhcmUgbm90IHByZXNlbnQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIHZpcnQvR0NFLgoKUXVpY2sKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMCAxNjo0MzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIHRoZSBpbml0aWFsaXphdGlvbiBvcmRlciBvZiBgYnAtXHUwMDNldHN1X2Nsa19sb2NrYCBiZWZvcmUgcmVnaXN0ZXJpbmcgdGhlIFBUUCBjbG9jayBpbiBgZ2VtX3B0cF9pbml0KClgIGZvciB0aGUgQ2FkZW5jZSBNQUNCL0dFTSBuZXR3b3JrIGRyaXZlciAoZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jKS4gVGhpcyBkcml2ZXIgaXMgZm9yIGhhcmR3YXJlLXNwZWNpZmljIENhZGVuY2UgRXRoZXJuZXQgTUFDIElQIG9uIGVtYmVkZGVkIFNvQ3MgKHN1Y2ggYXMgQXRtZWwvTWljcm9jaGlwLCBYaWxpbnggWnlucSwgU2lGaXZlKSBvciBwcm9wcmlldGFyeSBQQ0kgdGVzdCBjYXJkcywgd2hpY2ggYXJlIG5vdCBwcmVzZW50IGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChlLmcuIFFFTVUgc3RhbmRhcmQgdmlydCAvIEdDRSkuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyB0aGUgaW5pdGlhbGl6YXRpb24gb3JkZXIgb2YgYGJwLVx1MDAzZXRzdV9jbGtfbG9ja2AgYmVmb3JlIHJlZ2lzdGVyaW5nIHRoZSBQVFAgY2xvY2sgaW4gYGdlbV9wdHBfaW5pdCgpYCBmb3IgdGhlIENhZGVuY2UgTUFDQi9HRU0gbmV0d29yayBkcml2ZXIgKGRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYykuIFRoaXMgZHJpdmVyIGlzIGZvciBoYXJkd2FyZS1zcGVjaWZpYyBDYWRlbmNlIEV0aGVybmV0IE1BQyBJUCBvbiBlbWJlZGRlZCBTb0NzIChzdWNoIGFzIEF0bWVsL01pY3JvY2hpcCwgWGlsaW54IFp5bnEsIFNpRml2ZSkgb3IgcHJvcHJpZXRhcnkgUENJIHRlc3QgY2FyZHMsIHdoaWNoIGFyZSBub3QgcHJlc2VudCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoZS5nLiBRRU1VIHN0YW5kYXJkIHZpcnQgLyBHQ0UpLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzAgMTY6NDM8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMwVDE2OjMzOjEwLjE1NDI5MzUwNFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYxMzM5OTUxMzI0NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2UsXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIHRoZSBpbml0aWFsaXphdGlvbiBvcmRlciBvZiBgYnAtXFx1MDAzZXRzdV9jbGtfbG9ja2AgYmVmb3JlIHJlZ2lzdGVyaW5nIHRoZSBQVFAgY2xvY2sgaW4gYGdlbV9wdHBfaW5pdCgpYCBmb3IgdGhlIENhZGVuY2UgTUFDQi9HRU0gbmV0d29yayBkcml2ZXIgKGRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYykuIFRoaXMgZHJpdmVyIGlzIGZvciBoYXJkd2FyZS1zcGVjaWZpYyBDYWRlbmNlIEV0aGVybmV0IE1BQyBJUCBvbiBlbWJlZGRlZCBTb0NzIChzdWNoIGFzIEF0bWVsL01pY3JvY2hpcCwgWGlsaW54IFp5bnEsIFNpRml2ZSkgb3IgcHJvcHJpZXRhcnkgUENJIHRlc3QgY2FyZHMsIHdoaWNoIGFyZSBub3QgcHJlc2VudCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoZS5nLiBRRU1VIHN0YW5kYXJkIHZpcnQgLyBHQ0UpLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzBUMTY6MzM6MTAuMTU0Mjk3NzE0WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDQ4NDMzMTE3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgZWFjMWUxZWIyZTcyOGUwODEwYWIyMmQ5YzhiMWZkZjc3MTRlYjBiMFxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgU3VuIEF1ZyAzMCAxNjozMzowOCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmNcXG5pbmRleCBlNTE5NWQ3ZGFjMWQ1Li4wNTUxNjBjNDJkYjNjIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuY1xcbkBAIC0zMzAsNiArMzMwLDggQEAgdm9pZCBnZW1fcHRwX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcXG4gXFxuIFxcdGJwLVxcdTAwM2VwdHBfY2xvY2tfaW5mbyA9IGdlbV9wdHBfY2Fwc190ZW1wbGF0ZTtcXG4gXFxuK1xcdHNwaW5fbG9ja19pbml0KFxcdTAwMjZicC1cXHUwMDNldHN1X2Nsa19sb2NrKTtcXG4rXFxuIFxcdC8qIG5vbWluYWwgZnJlcXVlbmN5IGFuZCBtYXhpbXVtIGFkanVzdG1lbnQgaW4gcHBiICovXFxuIFxcdGJwLVxcdTAwM2V0c3VfcmF0ZSA9IGJwLVxcdTAwM2VwdHBfaW5mby1cXHUwMDNlZ2V0X3RzdV9yYXRlKGJwKTtcXG4gXFx0YnAtXFx1MDAzZXB0cF9jbG9ja19pbmZvLm1heF9hZGogPSBicC1cXHUwMDNlcHRwX2luZm8tXFx1MDAzZWdldF9wdHBfbWF4X2FkaigpO1xcbkBAIC0zNDUsOCArMzQ3LDYgQEAgdm9pZCBnZW1fcHRwX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcXG4gXFx0XFx0cmV0dXJuO1xcbiBcXHR9XFxuIFxcbi1cXHRzcGluX2xvY2tfaW5pdChcXHUwMDI2YnAtXFx1MDAzZXRzdV9jbGtfbG9jayk7XFxuLVxcbiBcXHRnZW1fcHRwX2luaXRfdHN1KGJwKTtcXG4gXFxuIFxcdGRldl9pbmZvKFxcdTAwMjZicC1cXHUwMDNlcGRldi1cXHUwMDNlZGV2LCBcXFwiJXMgcHRwIGNsb2NrIHJlZ2lzdGVyZWQuXFxcXG5cXFwiLFxcbkBAIC00NjcsNCArNDY3LDMgQEAgaW50IGdlbV9zZXRfaHd0c3Qoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcXG4gXFxuIFxcdHJldHVybiAwO1xcbiB9XFxuLVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0zMFQxNjozMzoxMS42MDM0MDc4NTFaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJjb3JlIiwiRHVyYXRpb24iOjYxMTk1MDM4NzU4MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgdGhlIGluaXRpYWxpemF0aW9uIG9yZGVyIG9mIGBicC1cXHUwMDNldHN1X2Nsa19sb2NrYCBiZWZvcmUgcmVnaXN0ZXJpbmcgdGhlIFBUUCBjbG9jayBpbiBgZ2VtX3B0cF9pbml0KClgIGZvciB0aGUgQ2FkZW5jZSBNQUNCL0dFTSBuZXR3b3JrIGRyaXZlciAoZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jKS4gVGhpcyBkcml2ZXIgaXMgZm9yIGhhcmR3YXJlLXNwZWNpZmljIENhZGVuY2UgRXRoZXJuZXQgTUFDIElQIG9uIGVtYmVkZGVkIFNvQ3MgKHN1Y2ggYXMgQXRtZWwvTWljcm9jaGlwLCBYaWxpbnggWnlucSwgU2lGaXZlKSBvciBwcm9wcmlldGFyeSBQQ0kgdGVzdCBjYXJkcywgd2hpY2ggYXJlIG5vdCBwcmVzZW50IGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChlLmcuIFFFTVUgc3RhbmRhcmQgdmlydCAvIEdDRSkuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBlYWMxZTFlYjJlNzI4ZTA4MTBhYjIyZDljOGIxZmRmNzcxNGViMGIwXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFN1biBBdWcgMzAgMTY6MzM6MDggMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmNcbmluZGV4IGU1MTk1ZDdkYWMxZDUuLjA1NTE2MGM0MmRiM2MgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuY1xuQEAgLTMzMCw2ICszMzAsOCBAQCB2b2lkIGdlbV9wdHBfaW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxuIFxuIFx0YnAtXHUwMDNlcHRwX2Nsb2NrX2luZm8gPSBnZW1fcHRwX2NhcHNfdGVtcGxhdGU7XG4gXG4rXHRzcGluX2xvY2tfaW5pdChcdTAwMjZicC1cdTAwM2V0c3VfY2xrX2xvY2spO1xuK1xuIFx0Lyogbm9taW5hbCBmcmVxdWVuY3kgYW5kIG1heGltdW0gYWRqdXN0bWVudCBpbiBwcGIgKi9cbiBcdGJwLVx1MDAzZXRzdV9yYXRlID0gYnAtXHUwMDNlcHRwX2luZm8tXHUwMDNlZ2V0X3RzdV9yYXRlKGJwKTtcbiBcdGJwLVx1MDAzZXB0cF9jbG9ja19pbmZvLm1heF9hZGogPSBicC1cdTAwM2VwdHBfaW5mby1cdTAwM2VnZXRfcHRwX21heF9hZGooKTtcbkBAIC0zNDUsOCArMzQ3LDYgQEAgdm9pZCBnZW1fcHRwX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbiBcdFx0cmV0dXJuO1xuIFx0fVxuIFxuLVx0c3Bpbl9sb2NrX2luaXQoXHUwMDI2YnAtXHUwMDNldHN1X2Nsa19sb2NrKTtcbi1cbiBcdGdlbV9wdHBfaW5pdF90c3UoYnApO1xuIFxuIFx0ZGV2X2luZm8oXHUwMDI2YnAtXHUwMDNlcGRldi1cdTAwM2VkZXYsIFwiJXMgcHRwIGNsb2NrIHJlZ2lzdGVyZWQuXFxuXCIsXG5AQCAtNDY3LDQgKzQ2NywzIEBAIGludCBnZW1fc2V0X2h3dHN0KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXG4gXG4gXHRyZXR1cm4gMDtcbiB9XG4tXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0zMFQxNjozMzoxMS42MDM0MDk1NTFaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoxNTc1MTg4NTYwMjQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIEkgYW5hbHl6ZSB0aGlzIHBhdGNoOlxuXG4qKkluaXRpYWwgQXNzZXNzbWVudDogRnV6emluZyBGZWFzaWJpbGl0eSoqXG5cbk9rYXksIGZpcnN0IHRoaW5ncyBmaXJzdCwgbGV0J3MgZmlndXJlIG91dCBpZiB0aGlzIHBhdGNoIGlzIGV2ZW4gd29ydGggb3VyIHRpbWUuIElzIGl0IHNvbWV0aGluZyB0aGF0J3MgcmlwZSBmb3IgZnV6emluZz8gV2hhdCdzIHRoZSBzY29wZSBvZiB0aGUgY2hhbmdlcz8gVGhlIGdvYWwgaGVyZSBpcyB0byBkZXRlcm1pbmUgcXVpY2tseSBpZiBpdCdzIHNvbWV0aGluZyByZWFjaGFibGUgdGhyb3VnaCBteSBzdGFuZGFyZCBmdXp6aW5nIHNldHVwcywgb3IgaWYgaXQgdG91Y2hlcyBzb21ldGhpbmcgdGhhdCB3aWxsIHJlcXVpcmUgbW9yZSBjb21wbGV4IHNldHVwLCBsaWtlIGhhcmR3YXJlIGVtdWxhdGlvbiBvciBwbGF0Zm9ybS1zcGVjaWZpYyBjb25maWd1cmF0aW9ucyBJIGhhdmVuJ3QgZGVhbHQgd2l0aCBiZWZvcmUuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBhdHRhY2sgc3VyZmFjZS5cblxuKipEaXZpbmcgaW50byB0aGUgQ29kZSoqXG5cbk5vdywgbGV0J3MgZ2V0IHNwZWNpZmljLiBUaGUgcHJvbXB0IG1lbnRpb25zIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmNgLiBUaGF0J3MgYSBnb29kIHN0YXJ0aW5nIHBvaW50LiBJJ2xsIG5lZWQgdG8gZGlnIGludG8gdGhhdCBmaWxlIGFuZCBhbnkgcmVsYXRlZCBLY29uZmlnIGFuZCBzb3VyY2UgZmlsZXMgdG8gZ2V0IGEgZnVsbCBwaWN0dXJlLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgbmV0d29yayBpbnRlcmZhY2UgYW5kIGlmIHRoZXJlJ3MgYW4gb2J2aW91cyBlbnRyeXBvaW50IGZvciBleHBsb2l0YXRpb24uIEknbGwgYmUgbG9va2luZyBmb3IgcG90ZW50aWFsIHZ1bG5lcmFiaWxpdGllcywgaW50ZXJlc3RpbmcgZGF0YSBmbG93cywgYW5kIG1heWJlIHNvbWUgb3Bwb3J0dW5pdGllcyBmb3IgY29kZSBpbmplY3Rpb24gb3IgYnVmZmVyIG92ZXJmbG93cywgd2hpY2ggYXJlIHRoZSB1c3VhbCBzdXNwZWN0cyBpbiB0aGlzIGFyZWEuIEZyb20gdGhlcmUsIEknbGwgbmVlZCB0byB0cmFjZSBpbnB1dHMsIGFuZCBkZXRlcm1pbmUgaWYgYW55IG9mIGl0IGlzIHVzZXItY29udHJvbGxlZCwgYW5kIGlmIGl0J3MgYWNjZXNzaWJsZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjI3OCwiT3V0cHV0VG9rZW5zIjozMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjg2LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzBUMTY6MzU6NDkuMTIyMjY4NzY1WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg2NjA5NDMxNywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJNQUNCXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2VcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxNzEzIGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL0tjb25maWc9MjA9aWYgTkVUX1ZFTkRPUl9DQURFTkNFXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnLTIxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvS2NvbmZpZzoyMjpjb25maWcgTUFDQlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvS2NvbmZpZzoyMzpcXHR0cmlzdGF0ZSBcXFwiQ2FkZW5jZSBNQUNCL0dFTSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvS2NvbmZpZy0yNC1cXHRkZXBlbmRzIG9uIEhBU19ETUEgXFx1MDAyNlxcdTAwMjYgQ09NTU9OX0NMS1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnLTI4LVxcdGhlbHBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL0tjb25maWc6Mjk6XFx0ICBUaGUgQ2FkZW5jZSBNQUNCIGV0aGVybmV0IGludGVyZmFjZSBpcyBmb3VuZCBvbiBtYW55IEF0bWVsIEFUMzIgYW5kXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnLTMwLVxcdCAgQVQ5MSBwYXJ0cy4gIFRoaXMgZHJpdmVyIGFsc28gc3VwcG9ydHMgdGhlIENhZGVuY2UgR0VNIChHaWdhYml0XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnLTMxLVxcdCAgRXRoZXJuZXQgTUFDIGZvdW5kIGluIHNvbWUgQVJNIFNvQyBkZXZpY2VzKS4gIFNheSBZIHRvIGluY2x1ZGVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL0tjb25maWc6MzI6XFx0ICBzdXBwb3J0IGZvciB0aGUgTUFDQi9HRU0gY2hpcC5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL0tjb25maWctMzMtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL0tjb25maWctMzYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnOjM3OmNvbmZpZyBNQUNCX1VTRV9IV1NUQU1QXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnLTM4LVxcdGJvb2wgXFxcIlVzZSBJRUVFIDE1ODggaHdzdGFtcFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL0tjb25maWc6Mzk6XFx0ZGVwZW5kcyBvbiBNQUNCXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnLTQwLVxcdGRlcGVuZHMgb24gUFRQXzE1ODhfQ0xPQ0tcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvS2NvbmZpZy00Mi1cXHRoZWxwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnOjQzOlxcdCAgRW5hYmxlIElFRUUgMTU4OCBQcmVjaXNpb24gVGltZSBQcm90b2NvbCAoUFRQKSBzdXBwb3J0IGZvciBNQUNCLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvS2NvbmZpZy00NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL0tjb25maWc6NDU6Y29uZmlnIE1BQ0JfUENJXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnOjQ2OlxcdHRyaXN0YXRlIFxcXCJDYWRlbmNlIFBDSSBNQUNCL0dFTSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvS2NvbmZpZzo0NzpcXHRkZXBlbmRzIG9uIE1BQ0IgXFx1MDAyNlxcdTAwMjYgUENJXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnLTQ4LVxcdGhlbHBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL0tjb25maWc6NDk6XFx0ICBUaGlzIGlzIFBDSSB3cmFwcGVyIGZvciBNQUNCIGRyaXZlci5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL0tjb25maWctNTAtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL01ha2VmaWxlPTU9bWFjYi15XFx0Oj0gbWFjYl9tYWluLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL01ha2VmaWxlLTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9NYWtlZmlsZTo3OmlmZXEgKCQoQ09ORklHX01BQ0JfVVNFX0hXU1RBTVApLHkpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9NYWtlZmlsZS04LW1hY2IteVxcdCs9IG1hY2JfcHRwLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL01ha2VmaWxlPTk9ZW5kaWZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL01ha2VmaWxlLTEwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvTWFrZWZpbGU6MTE6b2JqLSQoQ09ORklHX01BQ0IpICs9IG1hY2Iub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvTWFrZWZpbGU6MTI6b2JqLSQoQ09ORklHX01BQ0JfUENJKSArPSBtYWNiX3BjaS5vXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0yLS8qXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MzogKiBBdG1lbCBNQUNCIEV0aGVybmV0IENvbnRyb2xsZXIgZHJpdmVyXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNC0gKlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNi0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3OiNpZm5kZWYgX01BQ0JfSFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjg6I2RlZmluZSBfTUFDQl9IXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtOS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTE3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjE4OiNkZWZpbmUgTUFDQl9HUkVHU19OQlIgMTZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxOTojZGVmaW5lIE1BQ0JfR1JFR1NfVkVSU0lPTiAyXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjA6I2RlZmluZSBNQUNCX01BWF9RVUVVRVMgOFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTIxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjIyOi8qIE1BQ0IgcmVnaXN0ZXIgb2Zmc2V0cyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjIzOiNkZWZpbmUgTUFDQl9OQ1JcXHRcXHQweDAwMDAgLyogTmV0d29yayBDb250cm9sICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjQ6I2RlZmluZSBNQUNCX05DRkdSXFx0XFx0MHgwMDA0IC8qIE5ldHdvcmsgQ29uZmlnICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjU6I2RlZmluZSBNQUNCX05TUlxcdFxcdDB4MDAwOCAvKiBOZXR3b3JrIFN0YXR1cyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI2OiNkZWZpbmUgTUFDQl9UQVJcXHRcXHQweDAwMGMgLyogQVQ5MVJNOTIwMCBvbmx5ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mjc6I2RlZmluZSBNQUNCX1RDUlxcdFxcdDB4MDAxMCAvKiBBVDkxUk05MjAwIG9ubHkgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyODojZGVmaW5lIE1BQ0JfVFNSXFx0XFx0MHgwMDE0IC8qIFRyYW5zbWl0IFN0YXR1cyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI5OiNkZWZpbmUgTUFDQl9SQlFQXFx0XFx0MHgwMDE4IC8qIFJYIFEgQmFzZSBBZGRyZXNzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MzA6I2RlZmluZSBNQUNCX1RCUVBcXHRcXHQweDAwMWMgLyogVFggUSBCYXNlIEFkZHJlc3MgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDozMTojZGVmaW5lIE1BQ0JfUlNSXFx0XFx0MHgwMDIwIC8qIFJlY2VpdmUgU3RhdHVzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MzI6I2RlZmluZSBNQUNCX0lTUlxcdFxcdDB4MDAyNCAvKiBJbnRlcnJ1cHQgU3RhdHVzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MzM6I2RlZmluZSBNQUNCX0lFUlxcdFxcdDB4MDAyOCAvKiBJbnRlcnJ1cHQgRW5hYmxlICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MzQ6I2RlZmluZSBNQUNCX0lEUlxcdFxcdDB4MDAyYyAvKiBJbnRlcnJ1cHQgRGlzYWJsZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjM1OiNkZWZpbmUgTUFDQl9JTVJcXHRcXHQweDAwMzAgLyogSW50ZXJydXB0IE1hc2sgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDozNjojZGVmaW5lIE1BQ0JfTUFOXFx0XFx0MHgwMDM0IC8qIFBIWSBNYWludGVuYW5jZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjM3OiNkZWZpbmUgTUFDQl9QVFJcXHRcXHQweDAwMzhcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDozODojZGVmaW5lIE1BQ0JfUEZSXFx0XFx0MHgwMDNjXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mzk6I2RlZmluZSBNQUNCX0ZUT1xcdFxcdDB4MDA0MFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQwOiNkZWZpbmUgTUFDQl9TQ0ZcXHRcXHQweDAwNDRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0MTojZGVmaW5lIE1BQ0JfTUNGXFx0XFx0MHgwMDQ4XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDI6I2RlZmluZSBNQUNCX0ZST1xcdFxcdDB4MDA0Y1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQzOiNkZWZpbmUgTUFDQl9GQ1NFXFx0XFx0MHgwMDUwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDQ6I2RlZmluZSBNQUNCX0FMRVxcdFxcdDB4MDA1NFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ1OiNkZWZpbmUgTUFDQl9EVEZcXHRcXHQweDAwNThcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0NjojZGVmaW5lIE1BQ0JfTENPTFxcdFxcdDB4MDA1Y1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ3OiNkZWZpbmUgTUFDQl9FWENPTFxcdFxcdDB4MDA2MFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ4OiNkZWZpbmUgTUFDQl9UVU5EXFx0XFx0MHgwMDY0XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDk6I2RlZmluZSBNQUNCX0NTRVxcdFxcdDB4MDA2OFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjUwOiNkZWZpbmUgTUFDQl9SUkVcXHRcXHQweDAwNmNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo1MTojZGVmaW5lIE1BQ0JfUk9WUlxcdFxcdDB4MDA3MFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjUyOiNkZWZpbmUgTUFDQl9SU0VcXHRcXHQweDAwNzRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo1MzojZGVmaW5lIE1BQ0JfRUxFXFx0XFx0MHgwMDc4XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NTQ6I2RlZmluZSBNQUNCX1JKQVxcdFxcdDB4MDA3Y1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjU1OiNkZWZpbmUgTUFDQl9VU0ZcXHRcXHQweDAwODBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo1NjojZGVmaW5lIE1BQ0JfU1RFXFx0XFx0MHgwMDg0XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NTc6I2RlZmluZSBNQUNCX1JMRVxcdFxcdDB4MDA4OFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjU4OiNkZWZpbmUgTUFDQl9UUEZcXHRcXHQweDAwOGNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo1OTojZGVmaW5lIE1BQ0JfSFJCXFx0XFx0MHgwMDkwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NjA6I2RlZmluZSBNQUNCX0hSVFxcdFxcdDB4MDA5NFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjYxOiNkZWZpbmUgTUFDQl9TQTFCXFx0XFx0MHgwMDk4XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NjI6I2RlZmluZSBNQUNCX1NBMVRcXHRcXHQweDAwOWNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo2MzojZGVmaW5lIE1BQ0JfU0EyQlxcdFxcdDB4MDBhMFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjY0OiNkZWZpbmUgTUFDQl9TQTJUXFx0XFx0MHgwMGE0XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NjU6I2RlZmluZSBNQUNCX1NBM0JcXHRcXHQweDAwYThcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo2NjojZGVmaW5lIE1BQ0JfU0EzVFxcdFxcdDB4MDBhY1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjY3OiNkZWZpbmUgTUFDQl9TQTRCXFx0XFx0MHgwMGIwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Njg6I2RlZmluZSBNQUNCX1NBNFRcXHRcXHQweDAwYjRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo2OTojZGVmaW5lIE1BQ0JfVElEXFx0XFx0MHgwMGI4XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzA6I2RlZmluZSBNQUNCX1RQUVxcdFxcdDB4MDBiY1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjcxOiNkZWZpbmUgTUFDQl9VU1JJT1xcdFxcdDB4MDBjMFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjcyOiNkZWZpbmUgTUFDQl9XT0xcXHRcXHQweDAwYzRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3MzojZGVmaW5lIE1BQ0JfTUlEXFx0XFx0MHgwMGZjXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzQ6I2RlZmluZSBNQUNCX1RCUVBIXFx0XFx0MHgwNEM4XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzU6I2RlZmluZSBNQUNCX1JCUVBIXFx0XFx0MHgwNEQ0XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNzYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0yMzAtLyogQml0ZmllbGRzIGluIE5DUiAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjIzMTojZGVmaW5lIE1BQ0JfTEJfT0ZGU0VUXFx0XFx0MCAvKiByZXNlcnZlZCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjIzMjojZGVmaW5lIE1BQ0JfTEJfU0laRVxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyMzM6I2RlZmluZSBNQUNCX0xMQl9PRkZTRVRcXHRcXHQxIC8qIExvb3AgYmFjayBsb2NhbCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjIzNDojZGVmaW5lIE1BQ0JfTExCX1NJWkVcXHRcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjM1OiNkZWZpbmUgTUFDQl9SRV9PRkZTRVRcXHRcXHQyIC8qIFJlY2VpdmUgZW5hYmxlICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjM2OiNkZWZpbmUgTUFDQl9SRV9TSVpFXFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjIzNzojZGVmaW5lIE1BQ0JfVEVfT0ZGU0VUXFx0XFx0MyAvKiBUcmFuc21pdCBlbmFibGUgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyMzg6I2RlZmluZSBNQUNCX1RFX1NJWkVcXHRcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjM5OiNkZWZpbmUgTUFDQl9NUEVfT0ZGU0VUXFx0XFx0NCAvKiBNYW5hZ2VtZW50IHBvcnQgZW5hYmxlICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjQwOiNkZWZpbmUgTUFDQl9NUEVfU0laRVxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNDE6I2RlZmluZSBNQUNCX0NMUlNUQVRfT0ZGU0VUXFx0NSAvKiBDbGVhciBzdGF0cyByZWdzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjQyOiNkZWZpbmUgTUFDQl9DTFJTVEFUX1NJWkVcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjQzOiNkZWZpbmUgTUFDQl9JTkNTVEFUX09GRlNFVFxcdDYgLyogSW5jcmVtZW50YWwgc3RhdHMgcmVncyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI0NDojZGVmaW5lIE1BQ0JfSU5DU1RBVF9TSVpFXFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI0NTojZGVmaW5lIE1BQ0JfV0VTVEFUX09GRlNFVFxcdDcgLyogV3JpdGUgZW5hYmxlIHN0YXRzIHJlZ3MgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNDY6I2RlZmluZSBNQUNCX1dFU1RBVF9TSVpFXFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI0NzojZGVmaW5lIE1BQ0JfQlBfT0ZGU0VUXFx0XFx0OCAvKiBCYWNrIHByZXNzdXJlICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjQ4OiNkZWZpbmUgTUFDQl9CUF9TSVpFXFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI0OTojZGVmaW5lIE1BQ0JfVFNUQVJUX09GRlNFVFxcdDkgLyogU3RhcnQgdHJhbnNtaXNzaW9uICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjUwOiNkZWZpbmUgTUFDQl9UU1RBUlRfU0laRVxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNTE6I2RlZmluZSBNQUNCX1RIQUxUX09GRlNFVFxcdDEwIC8qIFRyYW5zbWl0IGhhbHQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNTI6I2RlZmluZSBNQUNCX1RIQUxUX1NJWkVcXHRcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjUzOiNkZWZpbmUgTUFDQl9OQ1JfVFBGX09GRlNFVFxcdDExIC8qIFRyYW5zbWl0IHBhdXNlIGZyYW1lICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjU0OiNkZWZpbmUgTUFDQl9OQ1JfVFBGX1NJWkVcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjU1OiNkZWZpbmUgTUFDQl9UWlFfT0ZGU0VUXFx0XFx0MTIgLyogVHJhbnNtaXQgemVybyBxdWFudHVtIHBhdXNlIGZyYW1lICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjU2OiNkZWZpbmUgTUFDQl9UWlFfU0laRVxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNTc6I2RlZmluZSBNQUNCX1NSVFNNX09GRlNFVFxcdDE1IC8qIFN0b3JlIFJlY2VpdmUgVGltZXN0YW1wIHRvIE1lbW9yeSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI1ODojZGVmaW5lIE1BQ0JfUFRQVU5JX09GRlNFVFxcdDIwIC8qIFBUUCBVbmljYXN0IHBhY2tldCBlbmFibGUgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNTk6I2RlZmluZSBNQUNCX1BUUFVOSV9TSVpFXFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI2MDojZGVmaW5lIE1BQ0JfT1NTTU9ERV9PRkZTRVRcXHQyNCAvKiBFbmFibGUgT25lIFN0ZXAgU3luY2hybyBNb2RlICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjYxOiNkZWZpbmUgTUFDQl9PU1NNT0RFX1NJWkVcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjYyOiNkZWZpbmUgTUFDQl9NSUlPTlJHTUlJX09GRlNFVFxcdDI4IC8qIE1JSSBVc2FnZSBvbiBSR01JSSBJbnRlcmZhY2UgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNjM6I2RlZmluZSBNQUNCX01JSU9OUkdNSUlfU0laRVxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0yNjQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMjY1LS8qIEJpdGZpZWxkcyBpbiBOQ0ZHUiAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI2NjojZGVmaW5lIE1BQ0JfU1BEX09GRlNFVFxcdFxcdDAgLyogU3BlZWQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNjc6I2RlZmluZSBNQUNCX1NQRF9TSVpFXFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI2ODojZGVmaW5lIE1BQ0JfRkRfT0ZGU0VUXFx0XFx0MSAvKiBGdWxsIGR1cGxleCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI2OTojZGVmaW5lIE1BQ0JfRkRfU0laRVxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNzA6I2RlZmluZSBNQUNCX0JJVF9SQVRFX09GRlNFVFxcdDIgLyogRGlzY2FyZCBub24tVkxBTiBmcmFtZXMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNzE6I2RlZmluZSBNQUNCX0JJVF9SQVRFX1NJWkVcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjcyOiNkZWZpbmUgTUFDQl9KRlJBTUVfT0ZGU0VUXFx0MyAvKiByZXNlcnZlZCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI3MzojZGVmaW5lIE1BQ0JfSkZSQU1FX1NJWkVcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mjc0OiNkZWZpbmUgTUFDQl9DQUZfT0ZGU0VUXFx0XFx0NCAvKiBDb3B5IGFsbCBmcmFtZXMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNzU6I2RlZmluZSBNQUNCX0NBRl9TSVpFXFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI3NjojZGVmaW5lIE1BQ0JfTkJDX09GRlNFVFxcdFxcdDUgLyogTm8gYnJvYWRjYXN0ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mjc3OiNkZWZpbmUgTUFDQl9OQkNfU0laRVxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyNzg6I2RlZmluZSBNQUNCX05DRkdSX01USV9PRkZTRVRcXHQ2IC8qIE11bHRpY2FzdCBoYXNoIGVuYWJsZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI3OTojZGVmaW5lIE1BQ0JfTkNGR1JfTVRJX1NJWkVcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjgwOiNkZWZpbmUgTUFDQl9VTklfT0ZGU0VUXFx0XFx0NyAvKiBVbmljYXN0IGhhc2ggZW5hYmxlICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjgxOiNkZWZpbmUgTUFDQl9VTklfU0laRVxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyODI6I2RlZmluZSBNQUNCX0JJR19PRkZTRVRcXHRcXHQ4IC8qIFJlY2VpdmUgMTUzNiBieXRlIGZyYW1lcyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI4MzojZGVmaW5lIE1BQ0JfQklHX1NJWkVcXHRcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mjg0OiNkZWZpbmUgTUFDQl9FQUVfT0ZGU0VUXFx0XFx0OSAvKiBFeHRlcm5hbCBhZGRyZXNzIG1hdGNoIGVuYWJsZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI4NTojZGVmaW5lIE1BQ0JfRUFFX1NJWkVcXHRcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mjg2OiNkZWZpbmUgTUFDQl9DTEtfT0ZGU0VUXFx0XFx0MTBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyODc6I2RlZmluZSBNQUNCX0NMS19TSVpFXFx0XFx0MlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI4ODojZGVmaW5lIE1BQ0JfUlRZX09GRlNFVFxcdFxcdDEyIC8qIFJldHJ5IHRlc3QgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyODk6I2RlZmluZSBNQUNCX1JUWV9TSVpFXFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI5MDojZGVmaW5lIE1BQ0JfUEFFX09GRlNFVFxcdFxcdDEzIC8qIFBhdXNlIGVuYWJsZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjI5MTojZGVmaW5lIE1BQ0JfUEFFX1NJWkVcXHRcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MjkyOiNkZWZpbmUgTUFDQl9STTkyMDBfUk1JSV9PRkZTRVRcXHQxMyAvKiBBVDkxUk05MjAwIG9ubHkgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyOTM6I2RlZmluZSBNQUNCX1JNOTIwMF9STUlJX1NJWkVcXHQxICAvKiBBVDkxUk05MjAwIG9ubHkgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoyOTQ6I2RlZmluZSBNQUNCX1JCT0ZfT0ZGU0VUXFx0MTQgLyogUmVjZWl2ZSBidWZmZXIgb2Zmc2V0ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mjk1OiNkZWZpbmUgTUFDQl9SQk9GX1NJWkVcXHRcXHQyXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mjk2OiNkZWZpbmUgTUFDQl9STENFX09GRlNFVFxcdDE2IC8qIExlbmd0aCBmaWVsZCBlcnJvciBmcmFtZSBkaXNjYXJkICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mjk3OiNkZWZpbmUgTUFDQl9STENFX1NJWkVcXHRcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mjk4OiNkZWZpbmUgTUFDQl9EUkZDU19PRkZTRVRcXHQxNyAvKiBGQ1MgcmVtb3ZlICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mjk5OiNkZWZpbmUgTUFDQl9EUkZDU19TSVpFXFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjMwMDojZGVmaW5lIE1BQ0JfRUZSSERfT0ZGU0VUXFx0MThcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDozMDE6I2RlZmluZSBNQUNCX0VGUkhEX1NJWkVcXHRcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MzAyOiNkZWZpbmUgTUFDQl9JUlhGQ1NfT0ZGU0VUXFx0MTlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDozMDM6I2RlZmluZSBNQUNCX0lSWEZDU19TSVpFXFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTMwNC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTM2NC0vKiBCaXRmaWVsZHMgaW4gTlNSICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MzY1OiNkZWZpbmUgTUFDQl9OU1JfTElOS19PRkZTRVRcXHQwIC8qIHBjc19saW5rX3N0YXRlICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MzY2OiNkZWZpbmUgTUFDQl9OU1JfTElOS19TSVpFXFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjM2NzojZGVmaW5lIE1BQ0JfTURJT19PRkZTRVRcXHQxIC8qIHN0YXR1cyBvZiB0aGUgbWRpb19pbiBwaW4gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDozNjg6I2RlZmluZSBNQUNCX01ESU9fU0laRVxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDozNjk6I2RlZmluZSBNQUNCX0lETEVfT0ZGU0VUXFx0MiAvKiBUaGUgUEhZIG1hbmFnZW1lbnQgbG9naWMgaXMgaWRsZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjM3MDojZGVmaW5lIE1BQ0JfSURMRV9TSVpFXFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTM3MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0zNzItLyogQml0ZmllbGRzIGluIFRTUiAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjM3MzojZGVmaW5lIE1BQ0JfVUJSX09GRlNFVFxcdFxcdDAgLyogVXNlZCBiaXQgcmVhZCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjM3NDojZGVmaW5lIE1BQ0JfVUJSX1NJWkVcXHRcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mzc1OiNkZWZpbmUgTUFDQl9DT0xfT0ZGU0VUXFx0XFx0MSAvKiBDb2xsaXNpb24gb2NjdXJyZWQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDozNzY6I2RlZmluZSBNQUNCX0NPTF9TSVpFXFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjM3NzojZGVmaW5lIE1BQ0JfVFNSX1JMRV9PRkZTRVRcXHQyIC8qIFJldHJ5IGxpbWl0IGV4Y2VlZGVkICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mzc4OiNkZWZpbmUgTUFDQl9UU1JfUkxFX1NJWkVcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mzc5OiNkZWZpbmUgTUFDQl9UR09fT0ZGU0VUXFx0XFx0MyAvKiBUcmFuc21pdCBnbyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjM4MDojZGVmaW5lIE1BQ0JfVEdPX1NJWkVcXHRcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MzgxOiNkZWZpbmUgTUFDQl9CRVhfT0ZGU0VUXFx0XFx0NCAvKiBUWCBmcmFtZSBjb3JydXB0aW9uIGR1ZSB0byBBSEIgZXJyb3IgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDozODI6I2RlZmluZSBNQUNCX0JFWF9TSVpFXFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjM4MzojZGVmaW5lIE1BQ0JfUk05MjAwX0JOUV9PRkZTRVRcXHQ0IC8qIEFUOTFSTTkyMDAgb25seSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjM4NDojZGVmaW5lIE1BQ0JfUk05MjAwX0JOUV9TSVpFXFx0MSAvKiBBVDkxUk05MjAwIG9ubHkgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDozODU6I2RlZmluZSBNQUNCX0NPTVBfT0ZGU0VUXFx0NSAvKiBUcm5hc21pdCBjb21wbGV0ZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjM4NjojZGVmaW5lIE1BQ0JfQ09NUF9TSVpFXFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjM4NzojZGVmaW5lIE1BQ0JfVU5EX09GRlNFVFxcdFxcdDYgLyogVHJuYXNtaXQgdW5kZXIgcnVuICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mzg4OiNkZWZpbmUgTUFDQl9VTkRfU0laRVxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0zODktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMzkwLS8qIEJpdGZpZWxkcyBpbiBSU1IgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDozOTE6I2RlZmluZSBNQUNCX0JOQV9PRkZTRVRcXHRcXHQwIC8qIEJ1ZmZlciBub3QgYXZhaWxhYmxlICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MzkyOiNkZWZpbmUgTUFDQl9CTkFfU0laRVxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDozOTM6I2RlZmluZSBNQUNCX1JFQ19PRkZTRVRcXHRcXHQxIC8qIEZyYW1lIHJlY2VpdmVkICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mzk0OiNkZWZpbmUgTUFDQl9SRUNfU0laRVxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDozOTU6I2RlZmluZSBNQUNCX09WUl9PRkZTRVRcXHRcXHQyIC8qIFJlY2VpdmUgb3ZlcnJ1biAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjM5NjojZGVmaW5lIE1BQ0JfT1ZSX1NJWkVcXHRcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMzk3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTM5OC0vKiBCaXRmaWVsZHMgaW4gSVNSL0lFUi9JRFIvSU1SICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Mzk5OiNkZWZpbmUgTUFDQl9NRkRfT0ZGU0VUXFx0XFx0MCAvKiBNYW5hZ2VtZW50IGZyYW1lIHNlbnQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0MDA6I2RlZmluZSBNQUNCX01GRF9TSVpFXFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQwMTojZGVmaW5lIE1BQ0JfUkNPTVBfT0ZGU0VUXFx0MSAvKiBSZWNlaXZlIGNvbXBsZXRlICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDAyOiNkZWZpbmUgTUFDQl9SQ09NUF9TSVpFXFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQwMzojZGVmaW5lIE1BQ0JfUlhVQlJfT0ZGU0VUXFx0MiAvKiBSWCB1c2VkIGJpdCByZWFkICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDA0OiNkZWZpbmUgTUFDQl9SWFVCUl9TSVpFXFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQwNTojZGVmaW5lIE1BQ0JfVFhVQlJfT0ZGU0VUXFx0MyAvKiBUWCB1c2VkIGJpdCByZWFkICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDA2OiNkZWZpbmUgTUFDQl9UWFVCUl9TSVpFXFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQwNzojZGVmaW5lIE1BQ0JfSVNSX1RVTkRfT0ZGU0VUXFx0NCAvKiBFbmFibGUgVFggYnVmZmVyIHVuZGVyIHJ1biBpbnRlcnJ1cHQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0MDg6I2RlZmluZSBNQUNCX0lTUl9UVU5EX1NJWkVcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDA5OiNkZWZpbmUgTUFDQl9JU1JfUkxFX09GRlNFVFxcdDUgLyogRU4gcmV0cnkgZXhjZWVkZWQvbGF0ZSBjb2xsIGludGVycnVwdCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQxMDojZGVmaW5lIE1BQ0JfSVNSX1JMRV9TSVpFXFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQxMTojZGVmaW5lIE1BQ0JfVFhFUlJfT0ZGU0VUXFx0NiAvKiBFTiBUWCBmcmFtZSBjb3JydXB0IGZyb20gZXJyb3IgaW50ZXJydXB0ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDEyOiNkZWZpbmUgTUFDQl9UWEVSUl9TSVpFXFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQxMzojZGVmaW5lIE1BQ0JfUk05MjAwX1RCUkVfT0ZGU0VUXFx0NiAvKiBFTiBtYXkgc2VuZCBuZXcgZnJhbWUgaW50ZXJydXB0IChSTTkyMDApICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDE0OiNkZWZpbmUgTUFDQl9STTkyMDBfVEJSRV9TSVpFXFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQxNTojZGVmaW5lIE1BQ0JfVENPTVBfT0ZGU0VUXFx0NyAvKiBFbmFibGUgdHJhbnNtaXQgY29tcGxldGUgaW50ZXJydXB0ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDE2OiNkZWZpbmUgTUFDQl9UQ09NUF9TSVpFXFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQxNzojZGVmaW5lIE1BQ0JfSVNSX0xJTktfT0ZGU0VUXFx0OSAvKiBFbmFibGUgbGluayBjaGFuZ2UgaW50ZXJydXB0ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDE4OiNkZWZpbmUgTUFDQl9JU1JfTElOS19TSVpFXFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQxOTojZGVmaW5lIE1BQ0JfSVNSX1JPVlJfT0ZGU0VUXFx0MTAgLyogRW5hYmxlIHJlY2VpdmUgb3ZlcnJ1biBpbnRlcnJ1cHQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0MjA6I2RlZmluZSBNQUNCX0lTUl9ST1ZSX1NJWkVcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDIxOiNkZWZpbmUgTUFDQl9IUkVTUF9PRkZTRVRcXHQxMSAvKiBFbmFibGUgaHJzZXAgbm90IE9LIGludGVycnVwdCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQyMjojZGVmaW5lIE1BQ0JfSFJFU1BfU0laRVxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0MjM6I2RlZmluZSBNQUNCX1BGUl9PRkZTRVRcXHRcXHQxMiAvKiBFbmFibGUgcGF1c2UgZnJhbWUgdy8gcXVhbnR1bSBpbnRlcnJ1cHQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0MjQ6I2RlZmluZSBNQUNCX1BGUl9TSVpFXFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQyNTojZGVmaW5lIE1BQ0JfUFRaX09GRlNFVFxcdFxcdDEzIC8qIEVuYWJsZSBwYXVzZSB0aW1lIHplcm8gaW50ZXJydXB0ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDI2OiNkZWZpbmUgTUFDQl9QVFpfU0laRVxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0Mjc6I2RlZmluZSBNQUNCX1dPTF9PRkZTRVRcXHRcXHQxNCAvKiBFbmFibGUgd2FrZS1vbi1sYW4gaW50ZXJydXB0ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDI4OiNkZWZpbmUgTUFDQl9XT0xfU0laRVxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0Mjk6I2RlZmluZSBNQUNCX0RSUUZSX09GRlNFVFxcdDE4IC8qIFBUUCBEZWxheSBSZXF1ZXN0IEZyYW1lIFJlY2VpdmVkICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDMwOiNkZWZpbmUgTUFDQl9EUlFGUl9TSVpFXFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQzMTojZGVmaW5lIE1BQ0JfU0ZSX09GRlNFVFxcdFxcdDE5IC8qIFBUUCBTeW5jIEZyYW1lIFJlY2VpdmVkICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDMyOiNkZWZpbmUgTUFDQl9TRlJfU0laRVxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0MzM6I2RlZmluZSBNQUNCX0RSUUZUX09GRlNFVFxcdDIwIC8qIFBUUCBEZWxheSBSZXF1ZXN0IEZyYW1lIFRyYW5zbWl0dGVkICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDM0OiNkZWZpbmUgTUFDQl9EUlFGVF9TSVpFXFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQzNTojZGVmaW5lIE1BQ0JfU0ZUX09GRlNFVFxcdFxcdDIxIC8qIFBUUCBTeW5jIEZyYW1lIFRyYW5zbWl0dGVkICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDM2OiNkZWZpbmUgTUFDQl9TRlRfU0laRVxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0Mzc6I2RlZmluZSBNQUNCX1BEUlFGUl9PRkZTRVRcXHQyMiAvKiBQRGVsYXkgUmVxdWVzdCBGcmFtZSBSZWNlaXZlZCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQzODojZGVmaW5lIE1BQ0JfUERSUUZSX1NJWkVcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDM5OiNkZWZpbmUgTUFDQl9QRFJTRlJfT0ZGU0VUXFx0MjMgLyogUERlbGF5IFJlc3BvbnNlIEZyYW1lIFJlY2VpdmVkICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDQwOiNkZWZpbmUgTUFDQl9QRFJTRlJfU0laRVxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0NDE6I2RlZmluZSBNQUNCX1BEUlFGVF9PRkZTRVRcXHQyNCAvKiBQRGVsYXkgUmVxdWVzdCBGcmFtZSBUcmFuc21pdHRlZCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ0MjojZGVmaW5lIE1BQ0JfUERSUUZUX1NJWkVcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDQzOiNkZWZpbmUgTUFDQl9QRFJTRlRfT0ZGU0VUXFx0MjUgLyogUERlbGF5IFJlc3BvbnNlIEZyYW1lIFRyYW5zbWl0dGVkICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDQ0OiNkZWZpbmUgTUFDQl9QRFJTRlRfU0laRVxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0NDU6I2RlZmluZSBNQUNCX1NSSV9PRkZTRVRcXHRcXHQyNiAvKiBUU1UgU2Vjb25kcyBSZWdpc3RlciBJbmNyZW1lbnQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0NDY6I2RlZmluZSBNQUNCX1NSSV9TSVpFXFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTQ0Ny0jZGVmaW5lIEdFTV9XT0xfT0ZGU0VUXFx0XFx0MjggLyogRW5hYmxlIHdha2Utb24tbGFuIGludGVycnVwdCAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNDUwLS8qIFRpbWVyIGluY3JlbWVudCBmaWVsZHMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0NTE6I2RlZmluZSBNQUNCX1RJX0NOU19PRkZTRVRcXHQwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDUyOiNkZWZpbmUgTUFDQl9USV9DTlNfU0laRVxcdDhcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0NTM6I2RlZmluZSBNQUNCX1RJX0FDTlNfT0ZGU0VUXFx0OFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ1NDojZGVmaW5lIE1BQ0JfVElfQUNOU19TSVpFXFx0OFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ1NTojZGVmaW5lIE1BQ0JfVElfTklUX09GRlNFVFxcdDE2XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDU2OiNkZWZpbmUgTUFDQl9USV9OSVRfU0laRVxcdDhcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC00NTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNDU4LS8qIEJpdGZpZWxkcyBpbiBNQU4gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0NTk6I2RlZmluZSBNQUNCX0RBVEFfT0ZGU0VUXFx0MCAvKiBkYXRhICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDYwOiNkZWZpbmUgTUFDQl9EQVRBX1NJWkVcXHRcXHQxNlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ2MTojZGVmaW5lIE1BQ0JfQ09ERV9PRkZTRVRcXHQxNiAvKiBNdXN0IGJlIHdyaXR0ZW4gdG8gMTAgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0NjI6I2RlZmluZSBNQUNCX0NPREVfU0laRVxcdFxcdDJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0NjM6I2RlZmluZSBNQUNCX1JFR0FfT0ZGU0VUXFx0MTggLyogUmVnaXN0ZXIgYWRkcmVzcyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ2NDojZGVmaW5lIE1BQ0JfUkVHQV9TSVpFXFx0XFx0NVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ2NTojZGVmaW5lIE1BQ0JfUEhZQV9PRkZTRVRcXHQyMyAvKiBQSFkgYWRkcmVzcyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ2NjojZGVmaW5lIE1BQ0JfUEhZQV9TSVpFXFx0XFx0NVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ2NzojZGVmaW5lIE1BQ0JfUldfT0ZGU0VUXFx0XFx0MjggLyogT3BlcmF0aW9uLiAxMCBpcyByZWFkLiAwMSBpcyB3cml0ZS4gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0Njg6I2RlZmluZSBNQUNCX1JXX1NJWkVcXHRcXHQyXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDY5OiNkZWZpbmUgTUFDQl9TT0ZfT0ZGU0VUXFx0XFx0MzAgLyogTXVzdCBiZSB3cml0dGVuIHRvIDEgZm9yIENsYXVzZSAyMiAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ3MDojZGVmaW5lIE1BQ0JfU09GX1NJWkVcXHRcXHQyXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNDcxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTQ3Mi0vKiBCaXRmaWVsZHMgaW4gVVNSSU8gKEFWUjMyKSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ3MzojZGVmaW5lIE1BQ0JfTUlJX09GRlNFVFxcdFxcdFxcdFxcdDBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0NzQ6I2RlZmluZSBNQUNCX01JSV9TSVpFXFx0XFx0XFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ3NTojZGVmaW5lIE1BQ0JfRUFNX09GRlNFVFxcdFxcdFxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0NzY6I2RlZmluZSBNQUNCX0VBTV9TSVpFXFx0XFx0XFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ3NzojZGVmaW5lIE1BQ0JfVFhfUEFVU0VfT0ZGU0VUXFx0XFx0XFx0MlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ3ODojZGVmaW5lIE1BQ0JfVFhfUEFVU0VfU0laRVxcdFxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0Nzk6I2RlZmluZSBNQUNCX1RYX1BBVVNFX1pFUk9fT0ZGU0VUXFx0XFx0M1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ4MDojZGVmaW5lIE1BQ0JfVFhfUEFVU0VfWkVST19TSVpFXFx0XFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTQ4MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC00ODItLyogQml0ZmllbGRzIGluIFVTUklPIChBVDkxKSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ4MzojZGVmaW5lIE1BQ0JfUk1JSV9PRkZTRVRcXHRcXHRcXHQwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDg0OiNkZWZpbmUgTUFDQl9STUlJX1NJWkVcXHRcXHRcXHRcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNDg1LSNkZWZpbmUgR0VNX1JHTUlJX09GRlNFVFxcdFxcdFxcdDAgLyogR0VNIGdpZ2FiaXQgbW9kZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTQ4Ni0jZGVmaW5lIEdFTV9SR01JSV9TSVpFXFx0XFx0XFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ4NzojZGVmaW5lIE1BQ0JfQ0xLRU5fT0ZGU0VUXFx0XFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ4ODojZGVmaW5lIE1BQ0JfQ0xLRU5fU0laRVxcdFxcdFxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC00ODktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNDkwLS8qIEJpdGZpZWxkcyBpbiBXT0wgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0OTE6I2RlZmluZSBNQUNCX0lQX09GRlNFVFxcdFxcdFxcdFxcdDBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0OTI6I2RlZmluZSBNQUNCX0lQX1NJWkVcXHRcXHRcXHRcXHQxNlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ5MzojZGVmaW5lIE1BQ0JfTUFHX09GRlNFVFxcdFxcdFxcdFxcdDE2XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDk0OiNkZWZpbmUgTUFDQl9NQUdfU0laRVxcdFxcdFxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0OTU6I2RlZmluZSBNQUNCX0FSUF9PRkZTRVRcXHRcXHRcXHRcXHQxN1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ5NjojZGVmaW5lIE1BQ0JfQVJQX1NJWkVcXHRcXHRcXHRcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NDk3OiNkZWZpbmUgTUFDQl9TQTFfT0ZGU0VUXFx0XFx0XFx0XFx0MThcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo0OTg6I2RlZmluZSBNQUNCX1NBMV9TSVpFXFx0XFx0XFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjQ5OTojZGVmaW5lIE1BQ0JfV09MX01USV9PRkZTRVRcXHRcXHRcXHQxOVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjUwMDojZGVmaW5lIE1BQ0JfV09MX01USV9TSVpFXFx0XFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTUwMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC01MDItLyogQml0ZmllbGRzIGluIE1JRCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjUwMzojZGVmaW5lIE1BQ0JfSUROVU1fT0ZGU0VUXFx0XFx0XFx0MTZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo1MDQ6I2RlZmluZSBNQUNCX0lETlVNX1NJWkVcXHRcXHRcXHRcXHQxMlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjUwNTojZGVmaW5lIE1BQ0JfUkVWX09GRlNFVFxcdFxcdFxcdFxcdDBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo1MDY6I2RlZmluZSBNQUNCX1JFVl9TSVpFXFx0XFx0XFx0XFx0MTZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC01MDctXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC02NzgtLyogQml0ZmllbGRzIGluIHF1ZXVlIHBvaW50ZXIgcmVnaXN0ZXJzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Njc5OiNkZWZpbmUgTUFDQl9RVUVVRV9ESVNBQkxFX09GRlNFVFxcdFxcdDAgLyogZGlzYWJsZSBxdWV1ZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjY4MDojZGVmaW5lIE1BQ0JfUVVFVUVfRElTQUJMRV9TSVpFXFx0XFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTY4MS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTcyOS0vKiBDb25zdGFudHMgZm9yIENMSyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjczMDojZGVmaW5lIE1BQ0JfQ0xLX0RJVjhcXHRcXHRcXHRcXHQwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzMxOiNkZWZpbmUgTUFDQl9DTEtfRElWMTZcXHRcXHRcXHRcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzMyOiNkZWZpbmUgTUFDQl9DTEtfRElWMzJcXHRcXHRcXHRcXHQyXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzMzOiNkZWZpbmUgTUFDQl9DTEtfRElWNjRcXHRcXHRcXHRcXHQzXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNzM0LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNzQ1LS8qIENvbnN0YW50cyBmb3IgTUFOIHJlZ2lzdGVyICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzQ2OiNkZWZpbmUgTUFDQl9NQU5fQzIyX1NPRlxcdFxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3NDc6I2RlZmluZSBNQUNCX01BTl9DMjJfV1JJVEVcXHRcXHRcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzQ4OiNkZWZpbmUgTUFDQl9NQU5fQzIyX1JFQURcXHRcXHRcXHQyXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzQ5OiNkZWZpbmUgTUFDQl9NQU5fQzIyX0NPREVcXHRcXHRcXHQyXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNzUwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc1MTojZGVmaW5lIE1BQ0JfTUFOX0M0NV9TT0ZcXHRcXHRcXHQwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzUyOiNkZWZpbmUgTUFDQl9NQU5fQzQ1X0FERFJcXHRcXHRcXHQwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzUzOiNkZWZpbmUgTUFDQl9NQU5fQzQ1X1dSSVRFXFx0XFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc1NDojZGVmaW5lIE1BQ0JfTUFOX0M0NV9QT1NUX1JFQURfSU5DUlxcdFxcdDJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3NTU6I2RlZmluZSBNQUNCX01BTl9DNDVfUkVBRFxcdFxcdFxcdDNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3NTY6I2RlZmluZSBNQUNCX01BTl9DNDVfQ09ERVxcdFxcdFxcdDJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC03NTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNzU4LS8qIENhcGFiaWxpdHkgbWFzayBiaXRzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzU5OiNkZWZpbmUgTUFDQl9DQVBTX0lTUl9DTEVBUl9PTl9XUklURVxcdFxcdEJJVCgwKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc2MDojZGVmaW5lIE1BQ0JfQ0FQU19VU1JJT19IQVNfQ0xLRU5cXHRcXHRCSVQoMSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3NjE6I2RlZmluZSBNQUNCX0NBUFNfVVNSSU9fREVGQVVMVF9JU19NSUlfR01JSVxcdEJJVCgyKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc2MjojZGVmaW5lIE1BQ0JfQ0FQU19OT19HSUdBQklUX0hBTEZcXHRcXHRCSVQoMylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3NjM6I2RlZmluZSBNQUNCX0NBUFNfVVNSSU9fRElTQUJMRURcXHRcXHRCSVQoNClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3NjQ6I2RlZmluZSBNQUNCX0NBUFNfSlVNQk9cXHRcXHRcXHRcXHRCSVQoNSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3NjU6I2RlZmluZSBNQUNCX0NBUFNfR0VNX0hBU19QVFBcXHRcXHRcXHRCSVQoNilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3NjY6I2RlZmluZSBNQUNCX0NBUFNfQkRfUkRfUFJFRkVUQ0hcXHRcXHRCSVQoNylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3Njc6I2RlZmluZSBNQUNCX0NBUFNfTkVFRFNfUlNUT05VQlJcXHRcXHRCSVQoOClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3Njg6I2RlZmluZSBNQUNCX0NBUFNfTUlJT05SR01JSVxcdFxcdFxcdEJJVCg5KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc2OTojZGVmaW5lIE1BQ0JfQ0FQU19ORUVEX1RTVUNMS1xcdFxcdFxcdEJJVCgxMClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3NzA6I2RlZmluZSBNQUNCX0NBUFNfUVVFVUVfRElTQUJMRVxcdFxcdFxcdEJJVCgxMSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3NzE6I2RlZmluZSBNQUNCX0NBUFNfUUJWXFx0XFx0XFx0XFx0QklUKDEyKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc3MjojZGVmaW5lIE1BQ0JfQ0FQU19QQ1NcXHRcXHRcXHRcXHRCSVQoMTMpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzczOiNkZWZpbmUgTUFDQl9DQVBTX0hJR0hfU1BFRURcXHRcXHRcXHRCSVQoMTQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Nzc0OiNkZWZpbmUgTUFDQl9DQVBTX0NMS19IV19DSEdcXHRcXHRcXHRCSVQoMTUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Nzc1OiNkZWZpbmUgTUFDQl9DQVBTX01BQ0JfSVNfRU1BQ1xcdFxcdFxcdEJJVCgxNilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3NzY6I2RlZmluZSBNQUNCX0NBUFNfRklGT19NT0RFXFx0XFx0XFx0QklUKDE3KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc3NzojZGVmaW5lIE1BQ0JfQ0FQU19HSUdBQklUX01PREVfQVZBSUxBQkxFXFx0QklUKDE4KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc3ODojZGVmaW5lIE1BQ0JfQ0FQU19TR19ESVNBQkxFRFxcdFxcdFxcdEJJVCgxOSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3Nzk6I2RlZmluZSBNQUNCX0NBUFNfTUFDQl9JU19HRU1cXHRcXHRcXHRCSVQoMjApXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzgwOiNkZWZpbmUgTUFDQl9DQVBTX0RNQV82NEJcXHRcXHRcXHRCSVQoMjEpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzgxOiNkZWZpbmUgTUFDQl9DQVBTX0RNQV9QVFBcXHRcXHRcXHRCSVQoMjIpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzgyOiNkZWZpbmUgTUFDQl9DQVBTX1JTQ1xcdFxcdFxcdFxcdEJJVCgyMylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo3ODM6I2RlZmluZSBNQUNCX0NBUFNfTk9fTFNPXFx0XFx0XFx0QklUKDI0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc4NDojZGVmaW5lIE1BQ0JfQ0FQU19FRUVcXHRcXHRcXHRcXHRCSVQoMjUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Nzg1OiNkZWZpbmUgTUFDQl9DQVBTX1VTUklPX0hBU19NSUlcXHRcXHRcXHRCSVQoMjYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Nzg2OiNkZWZpbmUgTUFDQl9DQVBTX1VTUklPX0hBU19SRUZDTEtfU09VUkNFXFx0QklUKDI3KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc4NzojZGVmaW5lIE1BQ0JfQ0FQU19VU1JJT19IQVNfVFNVQ0xLX1NPVVJDRVxcdEJJVCgyOClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC03ODgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNzg5LS8qIExTTyBzZXR0aW5ncyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc5MDojZGVmaW5lIE1BQ0JfTFNPX1VGT19FTkFCTEVcXHRcXHRcXHQweDAxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6NzkxOiNkZWZpbmUgTUFDQl9MU09fVFNPX0VOQUJMRVxcdFxcdFxcdDB4MDJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC03OTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtNzkzLS8qIEJpdCBtYW5pcHVsYXRpb24gbWFjcm9zICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Nzk0OiNkZWZpbmUgTUFDQl9CSVQobmFtZSlcXHRcXHRcXHRcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Nzk1OlxcdCgxIFxcdTAwM2NcXHUwMDNjIE1BQ0JfIyNuYW1lIyNfT0ZGU0VUKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc5NjojZGVmaW5lIE1BQ0JfQkYobmFtZSx2YWx1ZSlcXHRcXHRcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Nzk3OlxcdCgoKHZhbHVlKSBcXHUwMDI2ICgoMSBcXHUwMDNjXFx1MDAzYyBNQUNCXyMjbmFtZSMjX1NJWkUpIC0gMSkpXFx0XFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjc5ODpcXHQgXFx1MDAzY1xcdTAwM2MgTUFDQl8jI25hbWUjI19PRkZTRVQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6Nzk5OiNkZWZpbmUgTUFDQl9CRkVYVChuYW1lLHZhbHVlKVxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4MDA6XFx0KCgodmFsdWUpIFxcdTAwM2VcXHUwMDNlIE1BQ0JfIyNuYW1lIyNfT0ZGU0VUKVxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4MDE6XFx0IFxcdTAwMjYgKCgxIFxcdTAwM2NcXHUwMDNjIE1BQ0JfIyNuYW1lIyNfU0laRSkgLSAxKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4MDI6I2RlZmluZSBNQUNCX0JGSU5TKG5hbWUsdmFsdWUsb2xkKVxcdFxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4MDM6XFx0KCgob2xkKSBcXHUwMDI2IH4oKCgxIFxcdTAwM2NcXHUwMDNjIE1BQ0JfIyNuYW1lIyNfU0laRSkgLSAxKVxcdFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4MDQ6XFx0XFx0ICAgIFxcdTAwM2NcXHUwMDNjIE1BQ0JfIyNuYW1lIyNfT0ZGU0VUKSlcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODA1OlxcdCB8IE1BQ0JfQkYobmFtZSx2YWx1ZSkpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtODA2LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtODIwLS8qIFJlZ2lzdGVyIGFjY2VzcyBtYWNyb3MgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4MjE6I2RlZmluZSBtYWNiX3JlYWRsKHBvcnQsIHJlZylcXHRcXHQocG9ydCktXFx1MDAzZW1hY2JfcmVnX3JlYWRsKChwb3J0KSwgTUFDQl8jI3JlZylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4MjI6I2RlZmluZSBtYWNiX3dyaXRlbChwb3J0LCByZWcsIHZhbHVlKVxcdChwb3J0KS1cXHUwMDNlbWFjYl9yZWdfd3JpdGVsKChwb3J0KSwgTUFDQl8jI3JlZywgKHZhbHVlKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC04MjMtI2RlZmluZSBnZW1fcmVhZGwocG9ydCwgcmVnKVxcdFxcdChwb3J0KS1cXHUwMDNlbWFjYl9yZWdfcmVhZGwoKHBvcnQpLCBHRU1fIyNyZWcpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC04MjktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODMwOi8qIENvbmRpdGlvbmFsIEdFTS9NQUNCIG1hY3Jvcy4gIFRoZXNlIHBlcmZvcm0gdGhlIG9wZXJhdGlvbiB0byB0aGUgY29ycmVjdFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjgzMTogKiByZWdpc3RlciBkZXBlbmRlbnQgb24gd2hldGhlciB0aGUgZGV2aWNlIGlzIGEgR0VNIG9yIGEgTUFDQi4gIEZvciByZWdpc3RlcnNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC04MzItICogYW5kIGJpdGZpZWxkcyB0aGF0IGFyZSBjb21tb24gYWNyb3NzIGJvdGggZGV2aWNlcywgdXNlIG1hY2Jfe3JlYWQsd3JpdGV9bFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtODUyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjg1MzojZGVmaW5lIE1BQ0JfUkVBRF9OU1IoYnApXFx0bWFjYl9yZWFkbChicCwgTlNSKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTg1NC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oPTg2OT1zdHJ1Y3QgbWFjYl9kbWFfZGVzY19wdHAge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtODc0LS8qIERNQSBkZXNjcmlwdG9yIGJpdGZpZWxkcyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjg3NTojZGVmaW5lIE1BQ0JfUlhfVVNFRF9PRkZTRVRcXHRcXHRcXHQwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODc2OiNkZWZpbmUgTUFDQl9SWF9VU0VEX1NJWkVcXHRcXHRcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODc3OiNkZWZpbmUgTUFDQl9SWF9XUkFQX09GRlNFVFxcdFxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4Nzg6I2RlZmluZSBNQUNCX1JYX1dSQVBfU0laRVxcdFxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4Nzk6I2RlZmluZSBNQUNCX1JYX1dBRERSX09GRlNFVFxcdFxcdFxcdDJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4ODA6I2RlZmluZSBNQUNCX1JYX1dBRERSX1NJWkVcXHRcXHRcXHQzMFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTg4MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4ODI6I2RlZmluZSBNQUNCX1JYX0ZSTUxFTl9PRkZTRVRcXHRcXHRcXHQwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODgzOiNkZWZpbmUgTUFDQl9SWF9GUk1MRU5fU0laRVxcdFxcdFxcdDEyXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODg0OiNkZWZpbmUgTUFDQl9SWF9PRkZTRVRfT0ZGU0VUXFx0XFx0XFx0MTJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4ODU6I2RlZmluZSBNQUNCX1JYX09GRlNFVF9TSVpFXFx0XFx0XFx0MlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjg4NjojZGVmaW5lIE1BQ0JfUlhfU09GX09GRlNFVFxcdFxcdFxcdDE0XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODg3OiNkZWZpbmUgTUFDQl9SWF9TT0ZfU0laRVxcdFxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4ODg6I2RlZmluZSBNQUNCX1JYX0VPRl9PRkZTRVRcXHRcXHRcXHQxNVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjg4OTojZGVmaW5lIE1BQ0JfUlhfRU9GX1NJWkVcXHRcXHRcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODkwOiNkZWZpbmUgTUFDQl9SWF9DRklfT0ZGU0VUXFx0XFx0XFx0MTZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4OTE6I2RlZmluZSBNQUNCX1JYX0NGSV9TSVpFXFx0XFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjg5MjojZGVmaW5lIE1BQ0JfUlhfVkxBTl9QUklfT0ZGU0VUXFx0XFx0XFx0MTdcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4OTM6I2RlZmluZSBNQUNCX1JYX1ZMQU5fUFJJX1NJWkVcXHRcXHRcXHQzXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODk0OiNkZWZpbmUgTUFDQl9SWF9QUklfVEFHX09GRlNFVFxcdFxcdFxcdDIwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODk1OiNkZWZpbmUgTUFDQl9SWF9QUklfVEFHX1NJWkVcXHRcXHRcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODk2OiNkZWZpbmUgTUFDQl9SWF9WTEFOX1RBR19PRkZTRVRcXHRcXHRcXHQyMVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjg5NzojZGVmaW5lIE1BQ0JfUlhfVkxBTl9UQUdfU0laRVxcdFxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4OTg6I2RlZmluZSBNQUNCX1JYX1RZUEVJRF9NQVRDSF9PRkZTRVRcXHRcXHQyMlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjg5OTojZGVmaW5lIE1BQ0JfUlhfVFlQRUlEX01BVENIX1NJWkVcXHRcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6OTAwOiNkZWZpbmUgTUFDQl9SWF9TQTRfTUFUQ0hfT0ZGU0VUXFx0XFx0MjNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5MDE6I2RlZmluZSBNQUNCX1JYX1NBNF9NQVRDSF9TSVpFXFx0XFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjkwMjojZGVmaW5lIE1BQ0JfUlhfU0EzX01BVENIX09GRlNFVFxcdFxcdDI0XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6OTAzOiNkZWZpbmUgTUFDQl9SWF9TQTNfTUFUQ0hfU0laRVxcdFxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5MDQ6I2RlZmluZSBNQUNCX1JYX1NBMl9NQVRDSF9PRkZTRVRcXHRcXHQyNVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjkwNTojZGVmaW5lIE1BQ0JfUlhfU0EyX01BVENIX1NJWkVcXHRcXHRcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6OTA2OiNkZWZpbmUgTUFDQl9SWF9TQTFfTUFUQ0hfT0ZGU0VUXFx0XFx0MjZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5MDc6I2RlZmluZSBNQUNCX1JYX1NBMV9NQVRDSF9TSVpFXFx0XFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjkwODojZGVmaW5lIE1BQ0JfUlhfRVhUX01BVENIX09GRlNFVFxcdFxcdDI4XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6OTA5OiNkZWZpbmUgTUFDQl9SWF9FWFRfTUFUQ0hfU0laRVxcdFxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5MTA6I2RlZmluZSBNQUNCX1JYX1VIQVNIX01BVENIX09GRlNFVFxcdFxcdDI5XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6OTExOiNkZWZpbmUgTUFDQl9SWF9VSEFTSF9NQVRDSF9TSVpFXFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjkxMjojZGVmaW5lIE1BQ0JfUlhfTUhBU0hfTUFUQ0hfT0ZGU0VUXFx0XFx0MzBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5MTM6I2RlZmluZSBNQUNCX1JYX01IQVNIX01BVENIX1NJWkVcXHRcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6OTE0OiNkZWZpbmUgTUFDQl9SWF9CUk9BRENBU1RfT0ZGU0VUXFx0XFx0MzFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5MTU6I2RlZmluZSBNQUNCX1JYX0JST0FEQ0FTVF9TSVpFXFx0XFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTkxNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5MTc6I2RlZmluZSBNQUNCX1JYX0ZSTUxFTl9NQVNLXFx0XFx0XFx0MHhGRkZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5MTg6I2RlZmluZSBNQUNCX1JYX0pGUk1MRU5fTUFTS1xcdFxcdFxcdDB4M0ZGRlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTkxOS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTkyNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5Mjg6I2RlZmluZSBNQUNCX1RYX0ZSTUxFTl9PRkZTRVRcXHRcXHRcXHQwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6OTI5OiNkZWZpbmUgTUFDQl9UWF9GUk1MRU5fU0laRVxcdFxcdFxcdDExXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6OTMwOiNkZWZpbmUgTUFDQl9UWF9MQVNUX09GRlNFVFxcdFxcdFxcdDE1XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6OTMxOiNkZWZpbmUgTUFDQl9UWF9MQVNUX1NJWkVcXHRcXHRcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6OTMyOiNkZWZpbmUgTUFDQl9UWF9OT0NSQ19PRkZTRVRcXHRcXHRcXHQxNlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjkzMzojZGVmaW5lIE1BQ0JfVFhfTk9DUkNfU0laRVxcdFxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5MzQ6I2RlZmluZSBNQUNCX01TU19NRlNfT0ZGU0VUXFx0XFx0XFx0MTZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5MzU6I2RlZmluZSBNQUNCX01TU19NRlNfU0laRVxcdFxcdFxcdDE0XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6OTM2OiNkZWZpbmUgTUFDQl9UWF9MU09fT0ZGU0VUXFx0XFx0XFx0MTdcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5Mzc6I2RlZmluZSBNQUNCX1RYX0xTT19TSVpFXFx0XFx0XFx0MlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjkzODojZGVmaW5lIE1BQ0JfVFhfVENQX1NFUV9TUkNfT0ZGU0VUXFx0XFx0MTlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5Mzk6I2RlZmluZSBNQUNCX1RYX1RDUF9TRVFfU1JDX1NJWkVcXHRcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6OTQwOiNkZWZpbmUgTUFDQl9UWF9CVUZfRVhIQVVTVEVEX09GRlNFVFxcdFxcdDI3XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6OTQxOiNkZWZpbmUgTUFDQl9UWF9CVUZfRVhIQVVTVEVEX1NJWkVcXHRcXHQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6OTQyOiNkZWZpbmUgTUFDQl9UWF9VTkRFUlJVTl9PRkZTRVRcXHRcXHRcXHQyOFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjk0MzojZGVmaW5lIE1BQ0JfVFhfVU5ERVJSVU5fU0laRVxcdFxcdFxcdDFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5NDQ6I2RlZmluZSBNQUNCX1RYX0VSUk9SX09GRlNFVFxcdFxcdFxcdDI5XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6OTQ1OiNkZWZpbmUgTUFDQl9UWF9FUlJPUl9TSVpFXFx0XFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjk0NjojZGVmaW5lIE1BQ0JfVFhfV1JBUF9PRkZTRVRcXHRcXHRcXHQzMFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjk0NzojZGVmaW5lIE1BQ0JfVFhfV1JBUF9TSVpFXFx0XFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjk0ODojZGVmaW5lIE1BQ0JfVFhfVVNFRF9PRkZTRVRcXHRcXHRcXHQzMVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjk0OTojZGVmaW5lIE1BQ0JfVFhfVVNFRF9TSVpFXFx0XFx0XFx0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTk1MC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oPTExOTQ9c3RydWN0IG1hY2Jfb3JfZ2VtX29wcyB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMjAxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjEyMDI6LyogTUFDQi1QVFAgaW50ZXJmYWNlOiBhZGFwdCB0byBwbGF0Zm9ybSBuZWVkcy4gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMjAzLXN0cnVjdCBtYWNiX3B0cF9pbmZvIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oPTEyOTg9c3RydWN0IG1hY2Ige1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTMxMy1cXHR1bnNpZ25lZCBpbnRcXHRcXHRudW1fcXVldWVzO1xcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0zMFQxNjozNTo0OS45ODgzNjk5NzJaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo5NjcxNzkwMTgwMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBMaW5lIG9mIElucXVpcnkqKlxuXG5Pa2F5LCBzbyBJJ20gZGl2aW5nIGludG8gdGhpcyBgbWFjYmAgc2l0dWF0aW9uLiBGaXJzdCB0aGluZ3MgZmlyc3QsIGxldCdzIHRha2UgYSBsb29rIGF0IGBtYWNiX3BjaS5jYCBhbmQgdW5kZXJzdGFuZCB0aGUgcHJvYmluZyBwcm9jZXNzIGZvciB0aGVzZSBkZXZpY2VzLiBJJ20gd29uZGVyaW5nLCBpcyB0aGUgTUFDQiBhY3R1YWxseSBlbXVsYXRlZCB3aXRoaW4gUUVNVT8gQW5kIHRoYXQgbGVhZHMgdG8gYSBiaWdnZXIgcXVlc3Rpb246IERvZXMgUUVNVSBldmVuIHByb3ZpZGUgYW55IGVtdWxhdGlvbiBmb3IgdGhlIENhZGVuY2UgR0VNIG9yIE1BQ0IgYXJjaGl0ZWN0dXJlP1xuXG5BaGEsIHdhaXQgYSBtaW51dGUhIEkgc2VlbSB0byByZWNhbGwgdGhhdCBRRU1VICpkb2VzKiBlbXVsYXRlIENhZGVuY2UgR0VNLCBsaWtlIGZvciB0aGUgWGlsaW54IFp5bnEgcGxhdGZvcm0sIGltcGxlbWVudGVkIGluIGBjYWRlbmNlX2dlbS5jYCwgc3BlY2lmaWNhbGx5IHVuZGVyIHRoZSBgYXJtLXNvZnRtbXVgIHNlY3Rpb24uIEJ1dCBpcyB0aGlzIHJlbGV2YW50IHRvIHRoZSBzdGFuZGFyZCBzeXprYWxsZXIgLyBRRU1VIHg4Nl82NCBvciBhcm02NCBlbnZpcm9ubWVudHM/IE9yIGlzIGBtYWNiX3BjaWAgZXZlbiBwcmVzZW50IGluIHRoYXQgY29uZmlndXJhdGlvbj9cblxuUmlnaHQsIGJhY2sgdG8gdGhlIHNvdXJjZS4gSSBuZWVkIHRvIHJlLWV4YW1pbmUgYG1hY2JfcGNpLmNgIGFuZCBzcGVjaWZpY2FsbHkgcGlucG9pbnQgd2hlcmUgYGdlbV9wdHBfaW5pdGAgZ2V0cyBjYWxsZWQuIFRoaXMgaXMga2V5LlxuXG5cbiIsIklucHV0VG9rZW5zIjoxODAwMCwiT3V0cHV0VG9rZW5zIjo0NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE1NSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0zMFQxNjozNzoyNi43MDYyNzQ3MTJaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDYxOTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3BjaS5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDEwMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG4gICAyOlxcdC8qXFxuICAgMzpcXHQgKiBET0M6IENhZGVuY2UgR0VNIFBDSSB3cmFwcGVyLlxcbiAgIDQ6XFx0ICpcXG4gICA1OlxcdCAqIENvcHlyaWdodCAoQykgMjAxNiBDYWRlbmNlIERlc2lnbiBTeXN0ZW1zIC0gaHR0cHM6Ly93d3cuY2FkZW5jZS5jb21cXG4gICA2OlxcdCAqXFxuICAgNzpcXHQgKiBBdXRob3JzOiBSYWZhbCBPemllYmxvIFxcdTAwM2NyYWZhbG9AY2FkZW5jZS5jb21cXHUwMDNlXFxuICAgODpcXHQgKlxcdCAgICBCYXJ0b3N6IEZvbHRhIFxcdTAwM2NiZm9sdGFAY2FkZW5jZS5jb21cXHUwMDNlXFxuICAgOTpcXHQgKi9cXG4gIDEwOlxcdFxcbiAgMTE6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L2Nsay5oXFx1MDAzZVxcbiAgMTI6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L2Nsay1wcm92aWRlci5oXFx1MDAzZVxcbiAgMTM6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L2V0aGVyZGV2aWNlLmhcXHUwMDNlXFxuICAxNDpcXHQjaW5jbHVkZSBcXHUwMDNjbGludXgvbW9kdWxlLmhcXHUwMDNlXFxuICAxNTpcXHQjaW5jbHVkZSBcXHUwMDNjbGludXgvcGNpLmhcXHUwMDNlXFxuICAxNjpcXHQjaW5jbHVkZSBcXHUwMDNjbGludXgvcGxhdGZvcm1fZGV2aWNlLmhcXHUwMDNlXFxuICAxNzpcXHQjaW5jbHVkZSBcXFwibWFjYi5oXFxcIlxcbiAgMTg6XFx0XFxuICAxOTpcXHQjZGVmaW5lIFBDSV9EUklWRVJfTkFNRSBcXFwibWFjYl9wY2lcXFwiXFxuICAyMDpcXHQjZGVmaW5lIFBMQVRfRFJJVkVSX05BTUUgXFxcIm1hY2JcXFwiXFxuICAyMTpcXHRcXG4gIDIyOlxcdCNkZWZpbmUgUENJX0RFVklDRV9JRF9DRE5TX01BQ0IgMHhlMDA3XFxuICAyMzpcXHRcXG4gIDI0OlxcdCNkZWZpbmUgR0VNX1BDTEtfUkFURSA1MDAwMDAwMFxcbiAgMjU6XFx0I2RlZmluZSBHRU1fSENMS19SQVRFIDUwMDAwMDAwXFxuICAyNjpcXHRcXG4gIDI3OlxcdHN0YXRpYyBpbnQgbWFjYl9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGNpLCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXFxuICAyODpcXHR7XFxuICAyOTpcXHRcXHRpbnQgZXJyO1xcbiAgMzA6XFx0XFx0c3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldjtcXG4gIDMxOlxcdFxcdHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2VfaW5mbyBwbGF0X2luZm87XFxuICAzMjpcXHRcXHRzdHJ1Y3QgbWFjYl9wbGF0Zm9ybV9kYXRhIHBsYXRfZGF0YTtcXG4gIDMzOlxcdFxcdHN0cnVjdCByZXNvdXJjZSByZXNbMl07XFxuICAzNDpcXHRcXG4gIDM1OlxcdFxcdC8qIGVuYWJsZSBwY2kgZGV2aWNlICovXFxuICAzNjpcXHRcXHRlcnIgPSBwY2ltX2VuYWJsZV9kZXZpY2UocGNpKTtcXG4gIDM3OlxcdFxcdGlmIChlcnIgXFx1MDAzYyAwKSB7XFxuICAzODpcXHRcXHRcXHRkZXZfZXJyKFxcdTAwMjZwY2ktXFx1MDAzZWRldiwgXFxcIkVuYWJsaW5nIFBDSSBkZXZpY2UgaGFzIGZhaWxlZDogJWRcXFwiLCBlcnIpO1xcbiAgMzk6XFx0XFx0XFx0cmV0dXJuIGVycjtcXG4gIDQwOlxcdFxcdH1cXG4gIDQxOlxcdFxcbiAgNDI6XFx0XFx0cGNpX3NldF9tYXN0ZXIocGNpKTtcXG4gIDQzOlxcdFxcbiAgNDQ6XFx0XFx0Lyogc2V0IHVwIHJlc291cmNlcyAqL1xcbiAgNDU6XFx0XFx0bWVtc2V0KHJlcywgMHgwMCwgc2l6ZW9mKHN0cnVjdCByZXNvdXJjZSkgKiBBUlJBWV9TSVpFKHJlcykpO1xcbiAgNDY6XFx0XFx0cmVzWzBdLnN0YXJ0ID0gcGNpX3Jlc291cmNlX3N0YXJ0KHBjaSwgMCk7XFxuICA0NzpcXHRcXHRyZXNbMF0uZW5kID0gcGNpX3Jlc291cmNlX2VuZChwY2ksIDApO1xcbiAgNDg6XFx0XFx0cmVzWzBdLm5hbWUgPSBQQ0lfRFJJVkVSX05BTUU7XFxuICA0OTpcXHRcXHRyZXNbMF0uZmxhZ3MgPSBJT1JFU09VUkNFX01FTTtcXG4gIDUwOlxcdFxcdHJlc1sxXS5zdGFydCA9IHBjaV9pcnFfdmVjdG9yKHBjaSwgMCk7XFxuICA1MTpcXHRcXHRyZXNbMV0ubmFtZSA9IFBDSV9EUklWRVJfTkFNRTtcXG4gIDUyOlxcdFxcdHJlc1sxXS5mbGFncyA9IElPUkVTT1VSQ0VfSVJRO1xcbiAgNTM6XFx0XFxuICA1NDpcXHRcXHRkZXZfaW5mbyhcXHUwMDI2cGNpLVxcdTAwM2VkZXYsIFxcXCJFTUFDIHBoeXNpY2FsIGJhc2UgYWRkcjogJXBhXFxcXG5cXFwiLFxcbiAgNTU6XFx0XFx0XFx0IFxcdTAwMjZyZXNbMF0uc3RhcnQpO1xcbiAgNTY6XFx0XFxuICA1NzpcXHRcXHQvKiBzZXQgdXAgbWFjYiBwbGF0Zm9ybSBkYXRhICovXFxuICA1ODpcXHRcXHRtZW1zZXQoXFx1MDAyNnBsYXRfZGF0YSwgMCwgc2l6ZW9mKHBsYXRfZGF0YSkpO1xcbiAgNTk6XFx0XFxuICA2MDpcXHRcXHQvKiBpbml0aWFsaXplIGNsb2NrcyAqL1xcbiAgNjE6XFx0XFx0cGxhdF9kYXRhLnBjbGsgPSBjbGtfcmVnaXN0ZXJfZml4ZWRfcmF0ZShcXHUwMDI2cGNpLVxcdTAwM2VkZXYsIFxcXCJwY2xrXFxcIiwgTlVMTCwgMCxcXG4gIDYyOlxcdFxcdFxcdFxcdFxcdFxcdFxcdCBHRU1fUENMS19SQVRFKTtcXG4gIDYzOlxcdFxcdGlmIChJU19FUlIocGxhdF9kYXRhLnBjbGspKSB7XFxuICA2NDpcXHRcXHRcXHRlcnIgPSBQVFJfRVJSKHBsYXRfZGF0YS5wY2xrKTtcXG4gIDY1OlxcdFxcdFxcdGdvdG8gZXJyX3BjbGtfcmVnaXN0ZXI7XFxuICA2NjpcXHRcXHR9XFxuICA2NzpcXHRcXG4gIDY4OlxcdFxcdHBsYXRfZGF0YS5oY2xrID0gY2xrX3JlZ2lzdGVyX2ZpeGVkX3JhdGUoXFx1MDAyNnBjaS1cXHUwMDNlZGV2LCBcXFwiaGNsa1xcXCIsIE5VTEwsIDAsXFxuICA2OTpcXHRcXHRcXHRcXHRcXHRcXHRcXHQgR0VNX0hDTEtfUkFURSk7XFxuICA3MDpcXHRcXHRpZiAoSVNfRVJSKHBsYXRfZGF0YS5oY2xrKSkge1xcbiAgNzE6XFx0XFx0XFx0ZXJyID0gUFRSX0VSUihwbGF0X2RhdGEuaGNsayk7XFxuICA3MjpcXHRcXHRcXHRnb3RvIGVycl9oY2xrX3JlZ2lzdGVyO1xcbiAgNzM6XFx0XFx0fVxcbiAgNzQ6XFx0XFxuICA3NTpcXHRcXHQvKiBzZXQgdXAgcGxhdGZvcm0gZGV2aWNlIGluZm8gKi9cXG4gIDc2OlxcdFxcdG1lbXNldChcXHUwMDI2cGxhdF9pbmZvLCAwLCBzaXplb2YocGxhdF9pbmZvKSk7XFxuICA3NzpcXHRcXHRwbGF0X2luZm8ucGFyZW50ID0gXFx1MDAyNnBjaS1cXHUwMDNlZGV2O1xcbiAgNzg6XFx0XFx0cGxhdF9pbmZvLmZ3bm9kZSA9IHBjaS1cXHUwMDNlZGV2LmZ3bm9kZTtcXG4gIDc5OlxcdFxcdHBsYXRfaW5mby5uYW1lID0gUExBVF9EUklWRVJfTkFNRTtcXG4gIDgwOlxcdFxcdHBsYXRfaW5mby5pZCA9IHBjaS1cXHUwMDNlZGV2Zm47XFxuICA4MTpcXHRcXHRwbGF0X2luZm8ucmVzID0gcmVzO1xcbiAgODI6XFx0XFx0cGxhdF9pbmZvLm51bV9yZXMgPSBBUlJBWV9TSVpFKHJlcyk7XFxuICA4MzpcXHRcXHRwbGF0X2luZm8uZGF0YSA9IFxcdTAwMjZwbGF0X2RhdGE7XFxuICA4NDpcXHRcXHRwbGF0X2luZm8uc2l6ZV9kYXRhID0gc2l6ZW9mKHBsYXRfZGF0YSk7XFxuICA4NTpcXHRcXHRwbGF0X2luZm8uZG1hX21hc2sgPSBwY2ktXFx1MDAzZWRtYV9tYXNrO1xcbiAgODY6XFx0XFxuICA4NzpcXHRcXHQvKiByZWdpc3RlciBwbGF0Zm9ybSBkZXZpY2UgKi9cXG4gIDg4OlxcdFxcdHBkZXYgPSBwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXJfZnVsbChcXHUwMDI2cGxhdF9pbmZvKTtcXG4gIDg5OlxcdFxcdGlmIChJU19FUlIocGRldikpIHtcXG4gIDkwOlxcdFxcdFxcdGVyciA9IFBUUl9FUlIocGRldik7XFxuICA5MTpcXHRcXHRcXHRnb3RvIGVycl9wbGF0X2Rldl9yZWdpc3RlcjtcXG4gIDkyOlxcdFxcdH1cXG4gIDkzOlxcdFxcbiAgOTQ6XFx0XFx0cGNpX3NldF9kcnZkYXRhKHBjaSwgcGRldik7XFxuICA5NTpcXHRcXG4gIDk2OlxcdFxcdHJldHVybiAwO1xcbiAgOTc6XFx0XFxuICA5ODpcXHRlcnJfcGxhdF9kZXZfcmVnaXN0ZXI6XFxuICA5OTpcXHRcXHRjbGtfdW5yZWdpc3Rlcl9maXhlZF9yYXRlKHBsYXRfZGF0YS5oY2xrKTtcXG4gMTAwOlxcdFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0zMFQxNjozNzoyNi43MDYzODMwNzJaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo1NzYyNzk5NDQ2NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMuIEhlcmUncyB3aGF0IEknbSB0aGlua2luZyBhcyBJIGFwcHJvYWNoIHRoaXMgcGF0Y2g6XG5cbioqQW5hbHl6aW5nIHRoZSBgZ2VtX3B0cF9pbml0YCBGdW5jdGlvbioqXG5cbkFscmlnaHQsIEknbSBnb2luZyB0byBnZXQgcmlnaHQgdG8gdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgdGhpcyBwYXRjaCBpcyBkb2luZywgYW5kIHRoYXQgc3RhcnRzIHdpdGggdGhlIGBnZW1fcHRwX2luaXRgIGZ1bmN0aW9uLiBUaGUgZmlyc3QgdGhpbmcgSSdtIGRvaW5nIGlzIGxvYWRpbmcgdXAgdGhlIHBhdGNoLiBJdCdzIHRpbWUgdG8gcmVhZCB0aHJvdWdoIGl0LiBTcGVjaWZpY2FsbHksIEknbSBnb2luZyB0byB6ZXJvIGluIG9uIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBgZ2VtX3B0cF9pbml0YC4gSSdtIGdvaW5nIHRvIGxvb2sgYXQgdGhlIGRldGFpbHMgd2l0aGluIHRoZSBwYXRjaC4gSSdtIGdvaW5nIHRvIGxvb2sgYXQgdGhlIGRpZmZlcmVuY2VzIHRvIHNlZSB3aGF0J3MgY2hhbmdlZCBhbmQgdHJ5IHRvIHVuZGVyc3RhbmQgdGhlIHJhdGlvbmFsZSBvZiB0aGUgY2hhbmdlLlxuVGhlbiwgbGV0J3MgemVybyBpbiBvbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jYCBhcm91bmQgbGluZSAzMzAuIEknbSBnb2luZyB0byBleGFtaW5lIHRoZSBjb2RlIGFyb3VuZCB0aGF0IHNwZWNpZmljIGxpbmUuIEkgaGF2ZSBhIGZlZWxpbmcgdGhhdCdzIHdoZXJlIHRoZSBjb3JlIG9mIHRoZSBjaGFuZ2Ugb3IgdGhlIHJlbGF0ZWQgZnVuY3Rpb25hbGl0eSBpcyBpbXBsZW1lbnRlZC4gVW5kZXJzdGFuZGluZyB3aGF0J3MgaGFwcGVuaW5nIGluIHRoYXQgaW1tZWRpYXRlIGNvbnRleHQgaXMga2V5IHRvIGdyYXNwaW5nIHRoZSBvdmVyYWxsIGltcGFjdCBvZiB0aGUgcGF0Y2guIExldCdzIHNlZSBpZiB0aGlzIGlzIGFuIHVwZGF0ZSwgYSBidWdmaXgsIG9yIHNvbWV0aGluZyBlbnRpcmVseSBuZXcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE5OTYwLCJPdXRwdXRUb2tlbnMiOjQ1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTAsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0zMFQxNjozODoyNC4zMzQzNzk1NjhaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4NDMwMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmNcIixcbiAgXCJGaXJzdExpbmVcIjogMzEwLFxuICBcIkxpbmVDb3VudFwiOiA4MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgMzEwOlxcdFxcdGRlc2NfcHRwID0gbWFjYl9wdHBfZGVzYyhicCwgZGVzYyk7XFxuIDMxMTpcXHRcXHQvKiBVbmxpa2VseSBidXQgY2hlY2sgKi9cXG4gMzEyOlxcdFxcdGlmICghZGVzY19wdHApIHtcXG4gMzEzOlxcdFxcdFxcdGRldl93YXJuX3JhdGVsaW1pdGVkKFxcdTAwMjZicC1cXHUwMDNlcGRldi1cXHUwMDNlZGV2LFxcbiAzMTQ6XFx0XFx0XFx0XFx0XFx0ICAgICBcXFwiVGltZXN0YW1wIG5vdCBzdXBwb3J0ZWQgaW4gQkRcXFxcblxcXCIpO1xcbiAzMTU6XFx0XFx0XFx0cmV0dXJuO1xcbiAzMTY6XFx0XFx0fVxcbiAzMTc6XFx0XFxuIDMxODpcXHRcXHQvKiBlbnN1cmUgdHNfMS90c18yIGlzIGxvYWRlZCBhZnRlciBjdHJsIChUWF9VU0VEIGNoZWNrKSAqL1xcbiAzMTk6XFx0XFx0ZG1hX3JtYigpO1xcbiAzMjA6XFx0XFx0Z2VtX2h3X3RpbWVzdGFtcChicCwgZGVzY19wdHAtXFx1MDAzZXRzXzEsIGRlc2NfcHRwLVxcdTAwM2V0c18yLCBcXHUwMDI2dHMpO1xcbiAzMjE6XFx0XFxuIDMyMjpcXHRcXHRtZW1zZXQoXFx1MDAyNnNoaHd0c3RhbXBzLCAwLCBzaXplb2Yoc2hod3RzdGFtcHMpKTtcXG4gMzIzOlxcdFxcdHNoaHd0c3RhbXBzLmh3dHN0YW1wID0ga3RpbWVfc2V0KHRzLnR2X3NlYywgdHMudHZfbnNlYyk7XFxuIDMyNDpcXHRcXHRza2JfdHN0YW1wX3R4KHNrYiwgXFx1MDAyNnNoaHd0c3RhbXBzKTtcXG4gMzI1OlxcdH1cXG4gMzI2OlxcdFxcbiAzMjc6XFx0dm9pZCBnZW1fcHRwX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcXG4gMzI4OlxcdHtcXG4gMzI5OlxcdFxcdHN0cnVjdCBtYWNiICpicCA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuIDMzMDpcXHRcXG4gMzMxOlxcdFxcdGJwLVxcdTAwM2VwdHBfY2xvY2tfaW5mbyA9IGdlbV9wdHBfY2Fwc190ZW1wbGF0ZTtcXG4gMzMyOlxcdFxcbiAzMzM6XFx0XFx0c3Bpbl9sb2NrX2luaXQoXFx1MDAyNmJwLVxcdTAwM2V0c3VfY2xrX2xvY2spO1xcbiAzMzQ6XFx0XFxuIDMzNTpcXHRcXHQvKiBub21pbmFsIGZyZXF1ZW5jeSBhbmQgbWF4aW11bSBhZGp1c3RtZW50IGluIHBwYiAqL1xcbiAzMzY6XFx0XFx0YnAtXFx1MDAzZXRzdV9yYXRlID0gYnAtXFx1MDAzZXB0cF9pbmZvLVxcdTAwM2VnZXRfdHN1X3JhdGUoYnApO1xcbiAzMzc6XFx0XFx0YnAtXFx1MDAzZXB0cF9jbG9ja19pbmZvLm1heF9hZGogPSBicC1cXHUwMDNlcHRwX2luZm8tXFx1MDAzZWdldF9wdHBfbWF4X2FkaigpO1xcbiAzMzg6XFx0XFx0Z2VtX3B0cF9pbml0X3RpbWVyKGJwKTtcXG4gMzM5OlxcdFxcdGJwLVxcdTAwM2VwdHBfY2xvY2sgPSBwdHBfY2xvY2tfcmVnaXN0ZXIoXFx1MDAyNmJwLVxcdTAwM2VwdHBfY2xvY2tfaW5mbywgXFx1MDAyNm5ldGRldi1cXHUwMDNlZGV2KTtcXG4gMzQwOlxcdFxcdGlmIChJU19FUlIoYnAtXFx1MDAzZXB0cF9jbG9jaykpIHtcXG4gMzQxOlxcdFxcdFxcdHByX2VycihcXFwicHRwIGNsb2NrIHJlZ2lzdGVyIGZhaWxlZDogJWxkXFxcXG5cXFwiLFxcbiAzNDI6XFx0XFx0XFx0XFx0UFRSX0VSUihicC1cXHUwMDNlcHRwX2Nsb2NrKSk7XFxuIDM0MzpcXHRcXHRcXHRicC1cXHUwMDNlcHRwX2Nsb2NrID0gTlVMTDtcXG4gMzQ0OlxcdFxcdFxcdHJldHVybjtcXG4gMzQ1OlxcdFxcdH0gZWxzZSBpZiAoYnAtXFx1MDAzZXB0cF9jbG9jayA9PSBOVUxMKSB7XFxuIDM0NjpcXHRcXHRcXHRwcl9lcnIoXFxcInB0cCBjbG9jayByZWdpc3RlciBmYWlsZWRcXFxcblxcXCIpO1xcbiAzNDc6XFx0XFx0XFx0cmV0dXJuO1xcbiAzNDg6XFx0XFx0fVxcbiAzNDk6XFx0XFxuIDM1MDpcXHRcXHRnZW1fcHRwX2luaXRfdHN1KGJwKTtcXG4gMzUxOlxcdFxcbiAzNTI6XFx0XFx0ZGV2X2luZm8oXFx1MDAyNmJwLVxcdTAwM2VwZGV2LVxcdTAwM2VkZXYsIFxcXCIlcyBwdHAgY2xvY2sgcmVnaXN0ZXJlZC5cXFxcblxcXCIsXFxuIDM1MzpcXHRcXHRcXHQgR0VNX1BUUF9USU1FUl9OQU1FKTtcXG4gMzU0OlxcdH1cXG4gMzU1OlxcdFxcbiAzNTY6XFx0dm9pZCBnZW1fcHRwX3JlbW92ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxcbiAzNTc6XFx0e1xcbiAzNTg6XFx0XFx0c3RydWN0IG1hY2IgKmJwID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG4gMzU5OlxcdFxcbiAzNjA6XFx0XFx0aWYgKGJwLVxcdTAwM2VwdHBfY2xvY2spIHtcXG4gMzYxOlxcdFxcdFxcdHB0cF9jbG9ja191bnJlZ2lzdGVyKGJwLVxcdTAwM2VwdHBfY2xvY2spO1xcbiAzNjI6XFx0XFx0XFx0YnAtXFx1MDAzZXB0cF9jbG9jayA9IE5VTEw7XFxuIDM2MzpcXHRcXHR9XFxuIDM2NDpcXHRcXG4gMzY1OlxcdFxcdGdlbV9wdHBfY2xlYXJfdGltZXIoYnApO1xcbiAzNjY6XFx0XFxuIDM2NzpcXHRcXHRkZXZfaW5mbyhcXHUwMDI2YnAtXFx1MDAzZXBkZXYtXFx1MDAzZWRldiwgXFxcIiVzIHB0cCBjbG9jayB1bnJlZ2lzdGVyZWQuXFxcXG5cXFwiLFxcbiAzNjg6XFx0XFx0XFx0IEdFTV9QVFBfVElNRVJfTkFNRSk7XFxuIDM2OTpcXHR9XFxuIDM3MDpcXHRcXG4gMzcxOlxcdHN0YXRpYyBpbnQgZ2VtX3B0cF9zZXRfdHNfbW9kZShzdHJ1Y3QgbWFjYiAqYnAsXFxuIDM3MjpcXHRcXHRcXHRcXHQgICAgICAgZW51bSBtYWNiX2JkX2NvbnRyb2wgdHhfYmRfY29udHJvbCxcXG4gMzczOlxcdFxcdFxcdFxcdCAgICAgICBlbnVtIG1hY2JfYmRfY29udHJvbCByeF9iZF9jb250cm9sKVxcbiAzNzQ6XFx0e1xcbiAzNzU6XFx0XFx0Z2VtX3dyaXRlbChicCwgVFhCRENUUkwsIEdFTV9CRihUWFRTTU9ERSwgdHhfYmRfY29udHJvbCkpO1xcbiAzNzY6XFx0XFx0Z2VtX3dyaXRlbChicCwgUlhCRENUUkwsIEdFTV9CRihSWFRTTU9ERSwgcnhfYmRfY29udHJvbCkpO1xcbiAzNzc6XFx0XFxuIDM3ODpcXHRcXHRyZXR1cm4gMDtcXG4gMzc5OlxcdH1cXG4gMzgwOlxcdFxcbiAzODE6XFx0aW50IGdlbV9nZXRfaHd0c3Qoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcXG4gMzgyOlxcdFxcdFxcdCAgc3RydWN0IGtlcm5lbF9od3RzdGFtcF9jb25maWcgKnRzdGFtcF9jb25maWcpXFxuIDM4MzpcXHR7XFxuIDM4NDpcXHRcXHRzdHJ1Y3QgbWFjYiAqYnAgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbiAzODU6XFx0XFxuIDM4NjpcXHRcXHQqdHN0YW1wX2NvbmZpZyA9IGJwLVxcdTAwM2V0c3RhbXBfY29uZmlnO1xcbiAzODc6XFx0XFx0aWYgKCFtYWNiX2RtYV9wdHAoYnApKVxcbiAzODg6XFx0XFx0XFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xcbiAzODk6XFx0XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMwVDE2OjM4OjI0LjMzNDQ2NTMwOFoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjI0NTY2MTIxOTgxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkRlYnVnZ2luZyBhIFBvdGVudGlhbCBSYWNlIENvbmRpdGlvbioqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gSXQgbG9va3MgbGlrZSB3ZSBoYXZlIGEgcG90ZW50aWFsIHJhY2UgY29uZGl0aW9uIGluIGBnZW1fcHRwX2luaXRgLiBTcGVjaWZpY2FsbHksIGBnZW1fcHRwX2luaXRfdGltZXIoYnApYCBpcyBiZWluZyBjYWxsZWQgYmVmb3JlIHRoZSBgc3Bpbl9sb2NrX2luaXQoXHUwMDI2YnAtXHUwMDNldHN1X2Nsa19sb2NrKWAuIE5vdywgdGhhdCBpbW1lZGlhdGVseSByYWlzZXMgYSByZWQgZmxhZy4gV2UgbmVlZCB0byBrbm93IGlmIGBnZW1fcHRwX2luaXRfdGltZXJgIG9yLCBmb3IgdGhhdCBtYXR0ZXIsIGBwdHBfY2xvY2tfcmVnaXN0ZXJgIChzaW5jZSB0aGV5IGNvdWxkIGJlIHJlbGF0ZWQpIGFyZSB0b3VjaGluZyBgYnAtXHUwMDNldHN1X2Nsa19sb2NrYC4gSSdsbCBnbyBzZWFyY2ggdGhlIGNvZGUuIExvb2tzIGxpa2UgSSB3aWxsIG5lZWQgdG8gc2VhcmNoIGZvciBgdHN1X2Nsa19sb2NrYCBpbiBgbWFjYl9wdHAuY2AgdG8gc2VlIGhvdyBpdCdzIGJlaW5nIHVzZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxNjUyLCJPdXRwdXRUb2tlbnMiOjM1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTMzLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzBUMTY6Mzg6NDguOTAwNTg5Njk5WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NDAwNDk2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ0c3VfY2xrX2xvY2tcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaD0xMjk4PXN0cnVjdCBtYWNiIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEzNjItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTM2MzpcXHRzcGlubG9ja190IHRzdV9jbGtfbG9jazsgLyogZ2VtIHRzdSBjbG9jayBsb2NraW5nICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTM2NC1cXHR1bnNpZ25lZCBpbnQgdHN1X3JhdGU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmM9NDM9c3RhdGljIGludCBnZW1fdHN1X2dldF90aW1lKHN0cnVjdCBwdHBfY2xvY2tfaW5mbyAqcHRwLCBzdHJ1Y3QgdGltZXNwZWM2NCAqdHMsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMtNTAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jOjUxOlxcdHNwaW5fbG9ja19pcnFzYXZlKFxcdTAwMjZicC1cXHUwMDNldHN1X2Nsa19sb2NrLCBmbGFncyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jLTUyLVxcdHB0cF9yZWFkX3N5c3RlbV9wcmV0cyhzdHMpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jLTcyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYzo3MzpcXHRzcGluX3VubG9ja19pcnFyZXN0b3JlKFxcdTAwMjZicC1cXHUwMDNldHN1X2Nsa19sb2NrLCBmbGFncyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jLTc0LVxcdHRzLVxcdTAwM2V0dl9zZWMgPSAoKCh1NjQpc2VjaCBcXHUwMDNjXFx1MDAzYyBHRU1fVFNMX1NJWkUpIHwgc2VjbClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYz03OT1zdGF0aWMgaW50IGdlbV90c3Vfc2V0X3RpbWUoc3RydWN0IHB0cF9jbG9ja19pbmZvICpwdHAsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMtODktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jOjkwOlxcdHNwaW5fbG9ja19pcnFzYXZlKFxcdTAwMjZicC1cXHUwMDNldHN1X2Nsa19sb2NrLCBmbGFncyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jLTkxLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jLTk4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYzo5OTpcXHRzcGluX3VubG9ja19pcnFyZXN0b3JlKFxcdTAwMjZicC1cXHUwMDNldHN1X2Nsa19sb2NrLCBmbGFncyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jLTEwMC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYz0xMDQ9c3RhdGljIGludCBnZW1fdHN1X2luY3Jfc2V0KHN0cnVjdCBtYWNiICpicCwgc3RydWN0IHRzdV9pbmNyICppbmNyX3NwZWMpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMtMTEyLVxcdCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYzoxMTM6XFx0c3Bpbl9sb2NrX2lycXNhdmUoXFx1MDAyNmJwLVxcdTAwM2V0c3VfY2xrX2xvY2ssIGZsYWdzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMtMTE0LVxcdC8qIFJlZ0JpdFsxNTowXSA9IFN1Ym5zWzIzOjhdOyBSZWdCaXRbMzE6MjRdID0gU3VibnNbNzowXSAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jLTExOC1cXHRnZW1fd3JpdGVsKGJwLCBUSSwgR0VNX0JGKE5TSU5DUiwgaW5jcl9zcGVjLVxcdTAwM2VucykpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYzoxMTk6XFx0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcXHUwMDI2YnAtXFx1MDAzZXRzdV9jbGtfbG9jaywgZmxhZ3MpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYy0xMjAtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmM9MzI3PXZvaWQgZ2VtX3B0cF9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMtMzMyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYzozMzM6XFx0c3Bpbl9sb2NrX2luaXQoXFx1MDAyNmJwLVxcdTAwM2V0c3VfY2xrX2xvY2spO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYy0zMzQtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMwVDE2OjM4OjQ4Ljk0NDU5OTgzOFoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoxNDY1MjYwNjczNjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhbmFseXNpcyBvZiB3aGF0J3MgZ29pbmcgb246XG5cbioqRGlzc2VjdGluZyB0aGUgYGdlbV90c3VfaW5jcl9zZXRgIEZ1bmN0aW9uIENhbGwqKlxuXG5Pa2F5LCBzbyBJJ20gdHJhY2tpbmcgdGhpcyBmdW5jdGlvbiBjYWxsLCBgZ2VtX3RzdV9pbmNyX3NldGAsIGFuZCBpdCBsb29rcyBsaWtlIGl0J3MgYmVpbmcgaW5pdGlhdGVkIGZyb20gd2l0aGluIGBnZW1fcHRwX2luaXRfdGltZXIoYnApYC4gIFRoYXQncyBteSBzdGFydGluZyBwb2ludC4gTm93LCB0byB1bmRlcnN0YW5kIHRoZSBjb250ZXh0IG9mIHRoZSBjYWxsLCBJIG5lZWQgdG8gZGl2ZSBkZWVwZXIgaW50byBgZ2VtX3B0cF9pbml0X3RpbWVyKGJwKWAuIFRoZSBjb2RlIHN1Z2dlc3RzIHRoZSBmdW5jdGlvbiBpcyBsb2NhdGVkIGluIGBtYWNiX3B0cC5jYCwgbGluZXMgMTAwIHRvIDI1MCBzZWVtIHRoZSByZWxldmFudCBhcmVhIGZvciB0aGlzIGRlZXBlciBsb29rLiBJJ2xsIGZvY3VzIG15IGF0dGVudGlvbiBvbiB0aGF0IHNlY3Rpb24gdG8gc2VlIHdoYXQncyBsZWFkaW5nIHVwIHRvIHRoZSBgZ2VtX3RzdV9pbmNyX3NldGAgY2FsbCBhbmQgd2hhdCdzIGhhcHBlbmluZyBpbW1lZGlhdGVseSBhZnRlci4gVGhhdCBzaG91bGQgZ2l2ZSBtZSB0aGUgaW5zaWdodHMgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIHJvbGUgb2YgYGdlbV90c3VfaW5jcl9zZXRgIGluIHRoZSBsYXJnZXIgUFRQIGluaXRpYWxpemF0aW9uIGZsb3cuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIzMDM3LCJPdXRwdXRUb2tlbnMiOjQ1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzBUMTY6NDE6MTUuNDcwNjcwMTU1WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgxNTIwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuY1wiLFxuICBcIkZpcnN0TGluZVwiOiAxMDAsXG4gIFwiTGluZUNvdW50XCI6IDgwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAxMDA6XFx0XFxuIDEwMTpcXHRcXHRyZXR1cm4gMDtcXG4gMTAyOlxcdH1cXG4gMTAzOlxcdFxcbiAxMDQ6XFx0c3RhdGljIGludCBnZW1fdHN1X2luY3Jfc2V0KHN0cnVjdCBtYWNiICpicCwgc3RydWN0IHRzdV9pbmNyICppbmNyX3NwZWMpXFxuIDEwNTpcXHR7XFxuIDEwNjpcXHRcXHR1bnNpZ25lZCBsb25nIGZsYWdzO1xcbiAxMDc6XFx0XFxuIDEwODpcXHRcXHQvKiB0c3VfdGltZXJfaW5jciByZWdpc3RlciBtdXN0IGJlIHdyaXR0ZW4gYWZ0ZXJcXG4gMTA5OlxcdFxcdCAqIHRoZSB0c3VfdGltZXJfaW5jcl9zdWJfbnMgcmVnaXN0ZXIgYW5kIHRoZSB3cml0ZSBvcGVyYXRpb25cXG4gMTEwOlxcdFxcdCAqIHdpbGwgY2F1c2UgdGhlIHZhbHVlIHdyaXR0ZW4gdG8gdGhlIHRzdV90aW1lcl9pbmNyX3N1Yl9ucyByZWdpc3RlclxcbiAxMTE6XFx0XFx0ICogdG8gdGFrZSBlZmZlY3QuXFxuIDExMjpcXHRcXHQgKi9cXG4gMTEzOlxcdFxcdHNwaW5fbG9ja19pcnFzYXZlKFxcdTAwMjZicC1cXHUwMDNldHN1X2Nsa19sb2NrLCBmbGFncyk7XFxuIDExNDpcXHRcXHQvKiBSZWdCaXRbMTU6MF0gPSBTdWJuc1syMzo4XTsgUmVnQml0WzMxOjI0XSA9IFN1Ym5zWzc6MF0gKi9cXG4gMTE1OlxcdFxcdGdlbV93cml0ZWwoYnAsIFRJU1VCTiwgR0VNX0JGKFNVQk5TSU5DUkwsIGluY3Jfc3BlYy1cXHUwMDNlc3ViX25zKSB8XFxuIDExNjpcXHRcXHRcXHQgICBHRU1fQkYoU1VCTlNJTkNSSCwgKGluY3Jfc3BlYy1cXHUwMDNlc3ViX25zIFxcdTAwM2VcXHUwMDNlXFxuIDExNzpcXHRcXHRcXHRcXHQgIEdFTV9TVUJOU0lOQ1JMX1NJWkUpKSk7XFxuIDExODpcXHRcXHRnZW1fd3JpdGVsKGJwLCBUSSwgR0VNX0JGKE5TSU5DUiwgaW5jcl9zcGVjLVxcdTAwM2VucykpO1xcbiAxMTk6XFx0XFx0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcXHUwMDI2YnAtXFx1MDAzZXRzdV9jbGtfbG9jaywgZmxhZ3MpO1xcbiAxMjA6XFx0XFxuIDEyMTpcXHRcXHRyZXR1cm4gMDtcXG4gMTIyOlxcdH1cXG4gMTIzOlxcdFxcbiAxMjQ6XFx0c3RhdGljIGludCBnZW1fcHRwX2FkamZpbmUoc3RydWN0IHB0cF9jbG9ja19pbmZvICpwdHAsIGxvbmcgc2NhbGVkX3BwbSlcXG4gMTI1OlxcdHtcXG4gMTI2OlxcdFxcdHN0cnVjdCBtYWNiICpicCA9IGNvbnRhaW5lcl9vZihwdHAsIHN0cnVjdCBtYWNiLCBwdHBfY2xvY2tfaW5mbyk7XFxuIDEyNzpcXHRcXHRzdHJ1Y3QgdHN1X2luY3IgaW5jcl9zcGVjO1xcbiAxMjg6XFx0XFx0Ym9vbCBuZWdfYWRqID0gZmFsc2U7XFxuIDEyOTpcXHRcXHR1MzIgd29yZDtcXG4gMTMwOlxcdFxcdHU2NCBhZGo7XFxuIDEzMTpcXHRcXG4gMTMyOlxcdFxcdGlmIChzY2FsZWRfcHBtIFxcdTAwM2MgMCkge1xcbiAxMzM6XFx0XFx0XFx0bmVnX2FkaiA9IHRydWU7XFxuIDEzNDpcXHRcXHRcXHRzY2FsZWRfcHBtID0gLXNjYWxlZF9wcG07XFxuIDEzNTpcXHRcXHR9XFxuIDEzNjpcXHRcXG4gMTM3OlxcdFxcdC8qIEFkanVzdG1lbnQgaXMgcmVsYXRpdmUgdG8gYmFzZSBmcmVxdWVuY3kgKi9cXG4gMTM4OlxcdFxcdGluY3Jfc3BlYy5zdWJfbnMgPSBicC1cXHUwMDNldHN1X2luY3Iuc3ViX25zO1xcbiAxMzk6XFx0XFx0aW5jcl9zcGVjLm5zID0gYnAtXFx1MDAzZXRzdV9pbmNyLm5zO1xcbiAxNDA6XFx0XFxuIDE0MTpcXHRcXHQvKiBzY2FsaW5nOiB1bnVzZWQoOGJpdCkgfCBucyg4Yml0KSB8IGZyYWN0aW9ucygxNmJpdCkgKi9cXG4gMTQyOlxcdFxcdHdvcmQgPSAoKHU2NClpbmNyX3NwZWMubnMgXFx1MDAzY1xcdTAwM2MgR0VNX1NVQk5TSU5DUl9TSVpFKSArIGluY3Jfc3BlYy5zdWJfbnM7XFxuIDE0MzpcXHRcXHRhZGogPSAodTY0KXNjYWxlZF9wcG0gKiB3b3JkO1xcbiAxNDQ6XFx0XFx0LyogRGl2aWRlIHdpdGggcm91bmRpbmcsIGVxdWl2YWxlbnQgdG8gZmxvYXRpbmcgZGl2aWRpbmc6XFxuIDE0NTpcXHRcXHQgKiAodGVtcCAvIFVTRUNfUEVSX1NFQykgKyAwLjVcXG4gMTQ2OlxcdFxcdCAqL1xcbiAxNDc6XFx0XFx0YWRqICs9IChVU0VDX1BFUl9TRUMgXFx1MDAzZVxcdTAwM2UgMSk7XFxuIDE0ODpcXHRcXHRhZGogXFx1MDAzZVxcdTAwM2U9IFBQTV9GUkFDVElPTjsgLyogcmVtb3ZlIGZyYWN0aW9ucyAqL1xcbiAxNDk6XFx0XFx0YWRqID0gZGl2X3U2NChhZGosIFVTRUNfUEVSX1NFQyk7XFxuIDE1MDpcXHRcXHRhZGogPSBuZWdfYWRqID8gKHdvcmQgLSBhZGopIDogKHdvcmQgKyBhZGopO1xcbiAxNTE6XFx0XFxuIDE1MjpcXHRcXHRpbmNyX3NwZWMubnMgPSAoYWRqIFxcdTAwM2VcXHUwMDNlIEdFTV9TVUJOU0lOQ1JfU0laRSlcXG4gMTUzOlxcdFxcdFxcdFxcdFxcdTAwMjYgKCgxIFxcdTAwM2NcXHUwMDNjIEdFTV9OU0lOQ1JfU0laRSkgLSAxKTtcXG4gMTU0OlxcdFxcdGluY3Jfc3BlYy5zdWJfbnMgPSBhZGogXFx1MDAyNiAoKDEgXFx1MDAzY1xcdTAwM2MgR0VNX1NVQk5TSU5DUl9TSVpFKSAtIDEpO1xcbiAxNTU6XFx0XFx0Z2VtX3RzdV9pbmNyX3NldChicCwgXFx1MDAyNmluY3Jfc3BlYyk7XFxuIDE1NjpcXHRcXHRyZXR1cm4gMDtcXG4gMTU3OlxcdH1cXG4gMTU4OlxcdFxcbiAxNTk6XFx0c3RhdGljIGludCBnZW1fcHRwX2FkanRpbWUoc3RydWN0IHB0cF9jbG9ja19pbmZvICpwdHAsIHM2NCBkZWx0YSlcXG4gMTYwOlxcdHtcXG4gMTYxOlxcdFxcdHN0cnVjdCBtYWNiICpicCA9IGNvbnRhaW5lcl9vZihwdHAsIHN0cnVjdCBtYWNiLCBwdHBfY2xvY2tfaW5mbyk7XFxuIDE2MjpcXHRcXHRzdHJ1Y3QgdGltZXNwZWM2NCBub3csIHRoZW4gPSBuc190b190aW1lc3BlYzY0KGRlbHRhKTtcXG4gMTYzOlxcdFxcdHUzMiBhZGosIHNpZ24gPSAwO1xcbiAxNjQ6XFx0XFxuIDE2NTpcXHRcXHRpZiAoZGVsdGEgXFx1MDAzYyAwKSB7XFxuIDE2NjpcXHRcXHRcXHRzaWduID0gMTtcXG4gMTY3OlxcdFxcdFxcdGRlbHRhID0gLWRlbHRhO1xcbiAxNjg6XFx0XFx0fVxcbiAxNjk6XFx0XFxuIDE3MDpcXHRcXHRpZiAoZGVsdGEgXFx1MDAzZSBUU1VfTlNFQ19NQVhfVkFMKSB7XFxuIDE3MTpcXHRcXHRcXHRnZW1fdHN1X2dldF90aW1lKFxcdTAwMjZicC1cXHUwMDNlcHRwX2Nsb2NrX2luZm8sIFxcdTAwMjZub3csIE5VTEwpO1xcbiAxNzI6XFx0XFx0XFx0bm93ID0gdGltZXNwZWM2NF9hZGQobm93LCB0aGVuKTtcXG4gMTczOlxcdFxcbiAxNzQ6XFx0XFx0XFx0Z2VtX3RzdV9zZXRfdGltZShcXHUwMDI2YnAtXFx1MDAzZXB0cF9jbG9ja19pbmZvLFxcbiAxNzU6XFx0XFx0XFx0XFx0XFx0IChjb25zdCBzdHJ1Y3QgdGltZXNwZWM2NCAqKVxcdTAwMjZub3cpO1xcbiAxNzY6XFx0XFx0fSBlbHNlIHtcXG4gMTc3OlxcdFxcdFxcdGFkaiA9IChzaWduIFxcdTAwM2NcXHUwMDNjIEdFTV9BRERTVUJfT0ZGU0VUKSB8IGRlbHRhO1xcbiAxNzg6XFx0XFxuIDE3OTpcXHRcXHRcXHRnZW1fd3JpdGVsKGJwLCBUQSwgYWRqKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzBUMTY6NDE6MTUuNDcwNzUzMDQ0WiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjQ0Njc1OTgxMjMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0YWtlIG9uIHRoZSB0aG91Z2h0IHByb2Nlc3MsIGFzIHJlcXVlc3RlZDpcblxuKipEZWNvbnN0cnVjdGluZyBgZ2VtX3B0cF9pbml0X3RpbWVyYCoqXG5cbkFscmlnaHQsIGxldCdzIGRpdmUgaW50byB0aGlzIGBnZW1fcHRwX2luaXRfdGltZXJgIGZ1bmN0aW9uLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdHMgcm9sZSB3aXRoaW4gdGhpcyBQVFAgaW1wbGVtZW50YXRpb24sIHNvIEknbSBnb2luZyB0byBzdGFydCBieSBydW5uaW5nIHRocm91Z2ggdGhlIGNvZGUgYmxvY2sgZnJvbSBsaW5lcyAyMDAgdG8gMzAwLiBUaGlzIHNob3VsZCBnaXZlIG1lIGEgc29saWQgZ3Jhc3Agb2Ygd2hhdCB0aGlzIHRpbWVyIGluaXRpYWxpemF0aW9uIHJvdXRpbmUgaXMgYWN0dWFsbHkgZG9pbmcuIE15IGZvY3VzIHdpbGwgYmUgb24gdGhlIGNyaXRpY2FsIHBhcnRzIGZvciBzeW5jaHJvbml6YXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI0Nzg0LCJPdXRwdXRUb2tlbnMiOjQ1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDAsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0zMFQxNjo0MToxOS45MzgzNTM0MzdaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Nzc3ODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDIwMCxcbiAgXCJMaW5lQ291bnRcIjogNjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDIwMDpcXHRcXHQuYWRqZmluZVxcdD0gZ2VtX3B0cF9hZGpmaW5lLFxcbiAyMDE6XFx0XFx0LmFkanRpbWVcXHQ9IGdlbV9wdHBfYWRqdGltZSxcXG4gMjAyOlxcdFxcdC5nZXR0aW1leDY0XFx0PSBnZW1fdHN1X2dldF90aW1lLFxcbiAyMDM6XFx0XFx0LnNldHRpbWU2NFxcdD0gZ2VtX3RzdV9zZXRfdGltZSxcXG4gMjA0OlxcdFxcdC5lbmFibGVcXHRcXHQ9IGdlbV9wdHBfZW5hYmxlLFxcbiAyMDU6XFx0fTtcXG4gMjA2OlxcdFxcbiAyMDc6XFx0c3RhdGljIHZvaWQgZ2VtX3B0cF9pbml0X3RpbWVyKHN0cnVjdCBtYWNiICpicClcXG4gMjA4OlxcdHtcXG4gMjA5OlxcdFxcdHUzMiByZW0gPSAwO1xcbiAyMTA6XFx0XFx0dTY0IGFkajtcXG4gMjExOlxcdFxcbiAyMTI6XFx0XFx0YnAtXFx1MDAzZXRzdV9pbmNyLm5zID0gZGl2X3U2NF9yZW0oTlNFQ19QRVJfU0VDLCBicC1cXHUwMDNldHN1X3JhdGUsIFxcdTAwMjZyZW0pO1xcbiAyMTM6XFx0XFx0aWYgKHJlbSkge1xcbiAyMTQ6XFx0XFx0XFx0YWRqID0gcmVtO1xcbiAyMTU6XFx0XFx0XFx0YWRqIFxcdTAwM2NcXHUwMDNjPSBHRU1fU1VCTlNJTkNSX1NJWkU7XFxuIDIxNjpcXHRcXHRcXHRicC1cXHUwMDNldHN1X2luY3Iuc3ViX25zID0gZGl2X3U2NChhZGosIGJwLVxcdTAwM2V0c3VfcmF0ZSk7XFxuIDIxNzpcXHRcXHR9IGVsc2Uge1xcbiAyMTg6XFx0XFx0XFx0YnAtXFx1MDAzZXRzdV9pbmNyLnN1Yl9ucyA9IDA7XFxuIDIxOTpcXHRcXHR9XFxuIDIyMDpcXHR9XFxuIDIyMTpcXHRcXG4gMjIyOlxcdHN0YXRpYyB2b2lkIGdlbV9wdHBfaW5pdF90c3Uoc3RydWN0IG1hY2IgKmJwKVxcbiAyMjM6XFx0e1xcbiAyMjQ6XFx0XFx0c3RydWN0IHRpbWVzcGVjNjQgdHM7XFxuIDIyNTpcXHRcXG4gMjI2OlxcdFxcdC8qIDEuIGdldCBjdXJyZW50IHN5c3RlbSB0aW1lICovXFxuIDIyNzpcXHRcXHR0cyA9IG5zX3RvX3RpbWVzcGVjNjQoa3RpbWVfdG9fbnMoa3RpbWVfZ2V0X3JlYWwoKSkpO1xcbiAyMjg6XFx0XFxuIDIyOTpcXHRcXHQvKiAyLiBzZXQgcHRwIHRpbWVyICovXFxuIDIzMDpcXHRcXHRnZW1fdHN1X3NldF90aW1lKFxcdTAwMjZicC1cXHUwMDNlcHRwX2Nsb2NrX2luZm8sIFxcdTAwMjZ0cyk7XFxuIDIzMTpcXHRcXG4gMjMyOlxcdFxcdC8qIDMuIHNldCBQVFAgdGltZXIgaW5jcmVtZW50IHZhbHVlIHRvIEJBU0VfSU5DUkVNRU5UICovXFxuIDIzMzpcXHRcXHRnZW1fdHN1X2luY3Jfc2V0KGJwLCBcXHUwMDI2YnAtXFx1MDAzZXRzdV9pbmNyKTtcXG4gMjM0OlxcdFxcbiAyMzU6XFx0XFx0Z2VtX3dyaXRlbChicCwgVEEsIDApO1xcbiAyMzY6XFx0fVxcbiAyMzc6XFx0XFxuIDIzODpcXHRzdGF0aWMgdm9pZCBnZW1fcHRwX2NsZWFyX3RpbWVyKHN0cnVjdCBtYWNiICpicClcXG4gMjM5OlxcdHtcXG4gMjQwOlxcdFxcdGJwLVxcdTAwM2V0c3VfaW5jci5zdWJfbnMgPSAwO1xcbiAyNDE6XFx0XFx0YnAtXFx1MDAzZXRzdV9pbmNyLm5zID0gMDtcXG4gMjQyOlxcdFxcbiAyNDM6XFx0XFx0Z2VtX3dyaXRlbChicCwgVElTVUJOLCBHRU1fQkYoU1VCTlNJTkNSLCAwKSk7XFxuIDI0NDpcXHRcXHRnZW1fd3JpdGVsKGJwLCBUSSwgR0VNX0JGKE5TSU5DUiwgMCkpO1xcbiAyNDU6XFx0XFx0Z2VtX3dyaXRlbChicCwgVEEsIDApO1xcbiAyNDY6XFx0fVxcbiAyNDc6XFx0XFxuIDI0ODpcXHRzdGF0aWMgaW50IGdlbV9od190aW1lc3RhbXAoc3RydWN0IG1hY2IgKmJwLCB1MzIgZG1hX2Rlc2NfdHNfMSxcXG4gMjQ5OlxcdFxcdFxcdFxcdCAgICB1MzIgZG1hX2Rlc2NfdHNfMiwgc3RydWN0IHRpbWVzcGVjNjQgKnRzKVxcbiAyNTA6XFx0e1xcbiAyNTE6XFx0XFx0c3RydWN0IHRpbWVzcGVjNjQgdHN1O1xcbiAyNTI6XFx0XFxuIDI1MzpcXHRcXHR0cy1cXHUwMDNldHZfc2VjID0gKEdFTV9CRkVYVChETUFfU0VDSCwgZG1hX2Rlc2NfdHNfMikgXFx1MDAzY1xcdTAwM2MgR0VNX0RNQV9TRUNMX1NJWkUpIHxcXG4gMjU0OlxcdFxcdFxcdFxcdEdFTV9CRkVYVChETUFfU0VDTCwgZG1hX2Rlc2NfdHNfMSk7XFxuIDI1NTpcXHRcXHR0cy1cXHUwMDNldHZfbnNlYyA9IEdFTV9CRkVYVChETUFfTlNFQywgZG1hX2Rlc2NfdHNfMSk7XFxuIDI1NjpcXHRcXG4gMjU3OlxcdFxcdC8qIFRTVSBvdmVybGFwcGluZyB3b3JrYXJvdW5kXFxuIDI1ODpcXHRcXHQgKiBUaGUgdGltZXN0YW1wIG9ubHkgY29udGFpbnMgbG93ZXIgZmV3IGJpdHMgb2Ygc2Vjb25kcyxcXG4gMjU5OlxcdFxcdCAqIHNvIGFkZCB2YWx1ZSBmcm9tIDE1ODggdGltZXJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzBUMTY6NDE6MTkuOTM4NDMyNTU3WiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjY4Nzc4MTg5MzcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgYSBQb3RlbnRpYWwgU3BpbmxvY2sgQnVnIEZpeCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBnZW1fcHRwX2luaXRgLiBJdCBzZWVtcyBsaWtlIHRoZXJlJ3MgYSBwb3RlbnRpYWwgY29uY3VycmVuY3kgaXNzdWUgd2l0aCB0aGUgc3BpbmxvY2sgYGJwLVx1MDAzZXRzdV9jbGtfbG9ja2AuICBUaGUgY29yZSBvZiB0aGUgcHJvYmxlbSBpcyB0aGUgb3JkZXIgb2Ygb3BlcmF0aW9ucyBpbiB0aGlzIGZ1bmN0aW9uLiBXZSdyZSByZWdpc3RlcmluZyB0aGUgUFRQIGNsb2NrIHVzaW5nIGBwdHBfY2xvY2tfcmVnaXN0ZXIoXHUwMDI2YnAtXHUwMDNlcHRwX2Nsb2NrX2luZm8sIFx1MDAyNm5ldGRldi1cdTAwM2VkZXYpO2AuICBUaGUga2V5IHRoaW5nIGlzIHRoYXQgKmltbWVkaWF0ZWx5KiBhZnRlciBgcHRwX2Nsb2NrX3JlZ2lzdGVyYCBjb21wbGV0ZXMsIHVzZXIgc3BhY2Ugb3Iga2VybmVsIHRocmVhZHMgY2FuIHN0YXJ0IGludGVyYWN0aW5nIHdpdGggdGhlIFBUUCBjbG9jayBkZXZpY2UuIFRoZXkgbWlnaHQgYmUgY2FsbGluZyB0aGluZ3MgbGlrZSBgY2xvY2tfYWRqdGltZWAsIGBnZW1fdHN1X2dldF90aW1lYCwgb3IgYGdlbV90c3Vfc2V0X3RpbWVgIC0gYWxsIG9mIHdoaWNoIHVzZSB0aGF0IGBicC1cdTAwM2V0c3VfY2xrX2xvY2tgISAgVGhlIHBvdGVudGlhbCBidWcgYXJpc2VzIGJlY2F1c2UgdGhlIHNwaW5sb2NrIGBzcGluX2xvY2tfaW5pdChcdTAwMjZicC1cdTAwM2V0c3VfY2xrX2xvY2spYCAqd2FzKiBiZWluZyBjYWxsZWQgKmFmdGVyKiB0aGUgcmVnaXN0cmF0aW9uLiBUaGlzIG1lYW5zIHRoZSBsb2NrIGNvdWxkIGhhdmUgYmVlbiB1bmluaXRpYWxpemVkIGR1cmluZyB0aGUgY3JpdGljYWwgd2luZG93IHdoZW4gdGhlIFBUUCBjbG9jayB3YXMgYWxyZWFkeSBhY2Nlc3NpYmxlLiBUaGUgcHJvcG9zZWQgZml4LCBtb3ZpbmcgdGhlIGBzcGluX2xvY2tfaW5pdGAgY2FsbCBlYXJsaWVyLCBtYWtlcyBwZXJmZWN0IHNlbnNlIHRvIHJlc29sdmUgdGhlIHJhY2UgY29uZGl0aW9uLlxuXG5Ob3csIHRoZSBuZXh0IHN0ZXAgaXMgY3J1Y2lhbC4gQ2FuIHRoaXMgZml4IGJlIGZ1enplZD8gSSBuZWVkIHRvIGFwcGx5IHRoZSBmdXp6aW5nIGd1aWRlbGluZXMgbWV0aWN1bG91c2x5LiAgTGV0IG1lIHJlY2FsbCB0aGUgXCJXb3J0aEZ1enppbmc9ZmFsc2VcIiBjcml0ZXJpYSBmcm9tIG1lbW9yeS4gV2UgbmVlZCB0byBydWxlIG91dDpcblxuKiAgIERvY3VtZW50YXRpb24sIEtjb25maWcsIG9yIGNvbW1lbnQtb25seSBjaGFuZ2VzLiBOb3BlLCB0aGlzIGlzIGEgY29kZSBjaGFuZ2UuXG4qICAgUHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZy4gRGVmaW5pdGVseSBub3QgdGhlIGNhc2UgaGVyZS5cbiogICBOdW1lcmljIGNvbnN0YW50IGNoYW5nZXMgdGhhdCBkb24ndCBhbHRlciBleGVjdXRpb24uIE5vdCByZWxldmFudC5cbiogICBVbnJlYWNoYWJsZSBjb2RlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gVGhpcyBpcyBhIHJlYWwgY29uY2VybiEgSSdsbCBuZWVkIHRvIHJlc2VhcmNoIHdoYXQgTUFDQi9HRU0gYWN0dWFsbHkgKmlzKi5cbiogICBWZW5kb3Itc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVycyB0aGF0IGFyZSBoYXJkIHRvIGVtdWxhdGUuIFByb2JhYmx5IG5vdCwgYnV0IEkgbmVlZCB0byBiZSBzdXJlLlxuKiAgIFRlYXJkb3duIGNhbGxiYWNrcyBkdXJpbmcgUENJIGhvdC11bnBsdWcuIE5vcGUsIHRoYXQncyBub3Qgd2hhdCB0aGlzIGlzLlxuXG5TbywgdGhlIGJpZ2dlc3QgcXVlc3Rpb24gaXMgd2hldGhlciB0aGlzIGNvZGUgaXMgKnJlYWNoYWJsZSogaW4gYSBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50LiBXZSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hhdCBraW5kIG9mIGRldmljZSBNQUNCL0dFTSBpcy4gSXMgaXQgYSBwbGF0Zm9ybSBkZXZpY2Ugb3IgYSBQQ0kgZGV2aWNlPyBIb3cgYXJlIHRoZXNlIGRldmljZXMgdHlwaWNhbGx5IGluc3RhbnRpYXRlZD8gSSBuZWVkIHRvIGRpZyBpbnRvIGBtYWNiX21haW4uY2AgYW5kIGBtYWNiX3BjaS5jYCB0byB1bmRlcnN0YW5kIHRoZSBkZXZpY2UgaW5pdGlhbGl6YXRpb24gYW5kIGNvbm5lY3Rpb24gbWVjaGFuaXNtLiBPbmx5IHRoZW4gY2FuIEkgZGVjaWRlIGlmIHRoaXMgZml4IGlzIHdvcnRoIGZ1enppbmcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI2MDIxLCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTcxLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzBUMTY6NDE6MjYuODE2MjUzNDU0WiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5MDIxOTY5NDYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiTU9EVUxFX0RFVklDRV9UQUJMRVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM9NTcyNz1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtYWNiX2R0X2lkc1tdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy01NzU0LX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo1NzU1Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG1hY2JfZHRfaWRzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTU3NTYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcGNpLmM9MTMyPW1vZHVsZV9wY2lfZHJpdmVyKG1hY2JfcGNpX2RyaXZlcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3BjaS5jOjEzMzpNT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgZGV2X2lkX3RhYmxlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcGNpLmMtMTM0LU1PRFVMRV9MSUNFTlNFKFxcXCJHUExcXFwiKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzBUMTY6NDE6MjcuNzE4NDU3MzdaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6NTM4ODk5MjgxMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaXQgc3RhbmRzOlxuXG4qKkNoZWNraW5nIGBkZXZfaWRfdGFibGVgIGluIGBtYWNiX3BjaS5jYCoqXG5cbk9rYXksIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgZHJpdmVyIGluIGBtYWNiX3BjaS5jYCBpZGVudGlmaWVzIHRoZSBzcGVjaWZpYyBoYXJkd2FyZSBpdCdzIHN1cHBvc2VkIHRvIGhhbmRsZS4gVGhhdCBwcm9iYWJseSBtZWFucyB0aGUgZmlyc3QgdGhpbmcgdG8gbG9vayBhdCBpcyB0aGUgYGRldl9pZF90YWJsZWAuIEknbSBleHBlY3RpbmcgdGhpcyBpcyB3aGVyZSB0aGUgZHJpdmVyIGRlZmluZXMgdGhlIFBDSSBkZXZpY2UgSURzIGl0J3MgY29tcGF0aWJsZSB3aXRoLiBUaGlzIHdpbGwgbGlrZWx5IGJlIGEgbGlzdCBvciBhcnJheSBvZiBzdHJ1Y3R1cmVzLCBlYWNoIGNvbnRhaW5pbmcgdGhlIHZlbmRvciBJRCBhbmQgZGV2aWNlIElEIHRoYXQgdGhpcyBkcml2ZXIgcmVjb2duaXplcy4gSSdsbCBuZWVkIHRvIHNlZSBob3cgdGhlIGRyaXZlciB1c2VzIHRoaXMgdGFibGUgZHVyaW5nIGluaXRpYWxpemF0aW9uLCBzcGVjaWZpY2FsbHkgaG93IGl0IHByb2JlcyBmb3IgY29tcGF0aWJsZSBkZXZpY2VzIGR1cmluZyB0aGUgUENJIHByb2JlIGZ1bmN0aW9uLiBJJ20gYW50aWNpcGF0aW5nIHNvbWUgZm9ybSBvZiBsb29wIHRvIGl0ZXJhdGUgdGhyb3VnaCB0aGUgdGFibGUgYW5kIGNvbXBhcmUgdGhlIGhhcmR3YXJlIElEIHdpdGggd2hhdCB0aGUgc3lzdGVtIHByZXNlbnRzIHRvIGl0IGR1cmluZyBwcm9iZS4gVGltZSB0byBkaXZlIGludG8gdGhlIGNvZGUgYW5kIGNvbmZpcm0gbXkgaHVuY2ghXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI3NDI2LCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzBUMTY6NDE6MzMuMTA3NDUzMzYxWiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MzMxMTQ1OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkZXZfaWRfdGFibGVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcGNpLmM9MTA4PXN0YXRpYyB2b2lkIG1hY2JfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwY2kpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcGNpLmMtMTE5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wY2kuYzoxMjA6c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIGRldl9pZF90YWJsZVtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wY2kuYy0xMjEtXFx0eyBQQ0lfVkRFVklDRShDRE5TLCBQQ0lfREVWSUNFX0lEX0NETlNfTUFDQikgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wY2kuYz0xMjU9c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIG1hY2JfcGNpX2RyaXZlciA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcGNpLmMtMTI2LVxcdC5uYW1lICAgICA9IFBDSV9EUklWRVJfTkFNRSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcGNpLmM6MTI3OlxcdC5pZF90YWJsZSA9IGRldl9pZF90YWJsZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcGNpLmMtMTI4LVxcdC5wcm9iZSAgICA9IG1hY2JfcHJvYmUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcGNpLmM9MTMyPW1vZHVsZV9wY2lfZHJpdmVyKG1hY2JfcGNpX2RyaXZlcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3BjaS5jOjEzMzpNT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgZGV2X2lkX3RhYmxlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcGNpLmMtMTM0LU1PRFVMRV9MSUNFTlNFKFxcXCJHUExcXFwiKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzBUMTY6NDE6MzMuMTUwNzY3ODcxWiIsIlNlcSI6MTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjIzNzQ2NzMxMzMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzOlxuXG4qKkFuYWx5emluZyBhIENhZGVuY2UgTUFDQiBEcml2ZXIqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBhIENhZGVuY2UgUENJIGRldmljZSwgc3BlY2lmaWNhbGx5IGlkZW50aWZpZWQgYnkgdmVuZG9yIElEIGAweDE3Y2RgIGFuZCBkZXZpY2UgSUQgYDB4ZTAwN2Ag4oCTIHRoYXQncyBgUENJX1ZFTkRPUl9JRF9DRE5TYCBhbmQgYFBDSV9ERVZJQ0VfSURfQ0ROU19NQUNCYCwgcmlnaHQ/IEknbSBwcmV0dHkgc3VyZSB0aGF0J3MgYSBDYWRlbmNlIE1BQ0IuIE5vdywgd2hlcmUgZG9lcyB0aGlzIGZpdCBpbiB0aGUgZHJpdmVyIGxhbmRzY2FwZT8gQWgsIHllcywgYG1hY2JfbWFpbi5jYC4gVGhhdCBmaWxlJ3MgdXN1YWxseSBhIGdvb2QgaW5kaWNhdG9yLiBJdCBsb29rcyBsaWtlIHRoaXMgaXMgYW4gT3BlbiBGaXJtd2FyZSAoT0YpIG9yIHBsYXRmb3JtIGRyaXZlciBpbXBsZW1lbnRhdGlvbi4gVGltZSB0byBjb25maXJtIHRoZSBkZXZpY2UgaWRlbnRpZmllcnMgdXNlZCBieSB0aGUgZHJpdmVyLiBMZXQgbWUgZGlnIGludG8gYG1hY2JfZHRfaWRzYCBhbmQgY3Jvc3MtcmVmZXJlbmNlLiBJJ2xsIHNlZSB3aGF0IHRoZSBkZXZpY2UgdHJlZSBiaW5kaW5ncyBhcmUgdG8gY29uZmlybSBhbmQgdW5kZXJzdGFuZCBob3cgdGhpcyBkZXZpY2UgaXMgbWVhbnQgdG8gYmUgY29uZmlndXJlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjgwODcsIk91dHB1dFRva2VucyI6NDUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0zMFQxNjo0MTozNS41MjU0NDM0NTRaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzMwNTIwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmNcIixcbiAgXCJGaXJzdExpbmVcIjogNTcyNyxcbiAgXCJMaW5lQ291bnRcIjogMzVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiNTcyNzpcXHRzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtYWNiX2R0X2lkc1tdID0ge1xcbjU3Mjg6XFx0XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJjZG5zLGF0OTFzYW05MjYwLW1hY2JcXFwiLCAuZGF0YSA9IFxcdTAwMjZhdDkxc2FtOTI2MF9jb25maWcgfSxcXG41NzI5OlxcdFxcdHsgLmNvbXBhdGlibGUgPSBcXFwiY2RucyxtYWNiXFxcIiB9LFxcbjU3MzA6XFx0XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJjZG5zLG5wNC1tYWNiXFxcIiwgLmRhdGEgPSBcXHUwMDI2bnA0X2NvbmZpZyB9LFxcbjU3MzE6XFx0XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJjZG5zLHBjMzAyLWdlbVxcXCIsIC5kYXRhID0gXFx1MDAyNnBjMzAyZ2VtX2NvbmZpZyB9LFxcbjU3MzI6XFx0XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJjZG5zLGdlbVxcXCIsIC5kYXRhID0gXFx1MDAyNnBjMzAyZ2VtX2NvbmZpZyB9LFxcbjU3MzM6XFx0XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJjZG5zLHNhbTl4NjAtbWFjYlxcXCIsIC5kYXRhID0gXFx1MDAyNmF0OTFzYW05MjYwX2NvbmZpZyB9LFxcbjU3MzQ6XFx0XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJhdG1lbCxzYW1hNWQyLWdlbVxcXCIsIC5kYXRhID0gXFx1MDAyNnNhbWE1ZDJfY29uZmlnIH0sXFxuNTczNTpcXHRcXHR7IC5jb21wYXRpYmxlID0gXFxcImF0bWVsLHNhbWE1ZDI5LWdlbVxcXCIsIC5kYXRhID0gXFx1MDAyNnNhbWE1ZDI5X2NvbmZpZyB9LFxcbjU3MzY6XFx0XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJhdG1lbCxzYW1hNWQzLWdlbVxcXCIsIC5kYXRhID0gXFx1MDAyNnNhbWE1ZDNfY29uZmlnIH0sXFxuNTczNzpcXHRcXHR7IC5jb21wYXRpYmxlID0gXFxcImF0bWVsLHNhbWE1ZDMtbWFjYlxcXCIsIC5kYXRhID0gXFx1MDAyNnNhbWE1ZDNtYWNiX2NvbmZpZyB9LFxcbjU3Mzg6XFx0XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJhdG1lbCxzYW1hNWQ0LWdlbVxcXCIsIC5kYXRhID0gXFx1MDAyNnNhbWE1ZDRfY29uZmlnIH0sXFxuNTczOTpcXHRcXHR7IC5jb21wYXRpYmxlID0gXFxcImNkbnMsYXQ5MXJtOTIwMC1lbWFjXFxcIiwgLmRhdGEgPSBcXHUwMDI2ZW1hY19jb25maWcgfSxcXG41NzQwOlxcdFxcdHsgLmNvbXBhdGlibGUgPSBcXFwiY2RucyxlbWFjXFxcIiwgLmRhdGEgPSBcXHUwMDI2ZW1hY19jb25maWcgfSxcXG41NzQxOlxcdFxcdHsgLmNvbXBhdGlibGUgPSBcXFwiY2Rucyx6eW5xbXAtZ2VtXFxcIiwgLmRhdGEgPSBcXHUwMDI2enlucW1wX2NvbmZpZ30sIC8qIGRlcHJlY2F0ZWQgKi9cXG41NzQyOlxcdFxcdHsgLmNvbXBhdGlibGUgPSBcXFwiY2Rucyx6eW5xLWdlbVxcXCIsIC5kYXRhID0gXFx1MDAyNnp5bnFfY29uZmlnIH0sIC8qIGRlcHJlY2F0ZWQgKi9cXG41NzQzOlxcdFxcdHsgLmNvbXBhdGlibGUgPSBcXFwic2lmaXZlLGZ1NTQwLWMwMDAtZ2VtXFxcIiwgLmRhdGEgPSBcXHUwMDI2ZnU1NDBfYzAwMF9jb25maWcgfSxcXG41NzQ0OlxcdFxcdHsgLmNvbXBhdGlibGUgPSBcXFwibWljcm9jaGlwLG1wZnMtbWFjYlxcXCIsIC5kYXRhID0gXFx1MDAyNm1wZnNfY29uZmlnIH0sXFxuNTc0NTpcXHRcXHR7IC5jb21wYXRpYmxlID0gXFxcIm1pY3JvY2hpcCxwaWM2NGhwc2MtZ2VtXFxcIiwgLmRhdGEgPSBcXHUwMDI2cGljNjRocHNjX2NvbmZpZ30sXFxuNTc0NjpcXHRcXHR7IC5jb21wYXRpYmxlID0gXFxcIm1pY3JvY2hpcCxzYW1hN2c1LWdlbVxcXCIsIC5kYXRhID0gXFx1MDAyNnNhbWE3ZzVfZ2VtX2NvbmZpZyB9LFxcbjU3NDc6XFx0XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJtaWNyb2NoaXAsc2FtYTdnNS1lbWFjXFxcIiwgLmRhdGEgPSBcXHUwMDI2c2FtYTdnNV9lbWFjX2NvbmZpZyB9LFxcbjU3NDg6XFx0XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJtb2JpbGV5ZSxleWVxNS1nZW1cXFwiLCAuZGF0YSA9IFxcdTAwMjZleWVxNV9jb25maWcgfSxcXG41NzQ5OlxcdFxcdHsgLmNvbXBhdGlibGUgPSBcXFwicmFzcGJlcnJ5cGkscnAxLWdlbVxcXCIsIC5kYXRhID0gXFx1MDAyNnJhc3BiZXJyeXBpX3JwMV9jb25maWcgfSxcXG41NzUwOlxcdFxcdHsgLmNvbXBhdGlibGUgPSBcXFwieGxueCx6eW5xbXAtZ2VtXFxcIiwgLmRhdGEgPSBcXHUwMDI2enlucW1wX2NvbmZpZ30sXFxuNTc1MTpcXHRcXHR7IC5jb21wYXRpYmxlID0gXFxcInhsbngsenlucS1nZW1cXFwiLCAuZGF0YSA9IFxcdTAwMjZ6eW5xX2NvbmZpZyB9LFxcbjU3NTI6XFx0XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJ4bG54LHZlcnNhbC1nZW1cXFwiLCAuZGF0YSA9IFxcdTAwMjZ2ZXJzYWxfY29uZmlnfSxcXG41NzUzOlxcdFxcdHsgLyogc2VudGluZWwgKi8gfVxcbjU3NTQ6XFx0fTtcXG41NzU1OlxcdE1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG1hY2JfZHRfaWRzKTtcXG41NzU2OlxcdFxcbjU3NTc6XFx0c3RhdGljIGNvbnN0IHN0cnVjdCBtYWNiX2NvbmZpZyBkZWZhdWx0X2dlbV9jb25maWcgPSB7XFxuNTc1ODpcXHRcXHQuY2FwcyA9IE1BQ0JfQ0FQU19HSUdBQklUX01PREVfQVZBSUxBQkxFIHxcXG41NzU5OlxcdFxcdFxcdE1BQ0JfQ0FQU19KVU1CTyB8XFxuNTc2MDpcXHRcXHRcXHRNQUNCX0NBUFNfR0VNX0hBU19QVFAsXFxuNTc2MTpcXHRcXHQuZG1hX2J1cnN0X2xlbmd0aCA9IDE2LFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0zMFQxNjo0MTozNS41MjU3NzU3NTRaIiwiU2VxIjoyMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6NzAwODgxNDU1NDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBGdXp6aW5nIFBvdGVudGlhbCBvZiB0aGUgQ2FkZW5jZSBHRU0gKE1BQ0IpIERyaXZlcioqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gSSdtIGxvb2tpbmcgYXQgcG90ZW50aWFsIGNhbmRpZGF0ZXMgZm9yIGZ1enppbmcsIGFuZCB0aGUgQ2FkZW5jZSBHRU0gKE1BQ0IpIGRyaXZlciBpcyBvbiB0aGUgbGlzdC4gRmlyc3QsIGxldCBtZSByZWNhbGwgdGhlIGNvbW1vbiBTb0NzIHRoaXMgZHJpdmVyIGlzIGFzc29jaWF0ZWQgd2l0aDogU2lGaXZlLCBYaWxpbnggWnlucS9aeW5xTVAvVmVyc2FsLCBDYWRlbmNlLCBhbmQgQXRtZWwuIEkgbmVlZCB0byBxdWlja2x5IGRldGVybWluZSBpZiBhbnkgb2YgdGhlc2UgYXJlIGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgdXNlZCB3aXRoaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLCB3aGljaCBpcyBjcnVjaWFsIGZvciBTeXprYWxsZXIncyBlZmZlY3RpdmVuZXNzLlxuXG5SaWdodCwgUUVNVSBoYXMgbWFjaGluZSB0eXBlcy4gSSByZW1lbWJlciBgeGxueC16Y3UxMDJgLCBgeGxueC12ZXJzYWwtdmlydGAsIGB4aWxpbngtenlucS1hOWAsIGBzaWZpdmVfdWAsIGBtaWNyb2NoaXAtaWNpY2xlLWtpdGAuIEJ1dCBTeXprYWxsZXIgcHJpbWFyaWx5IHRhcmdldHMgeDg2XzY0IGFuZCBhcm02NCwgc3BlY2lmaWNhbGx5IHZpcnR1YWwgbWFjaGluZXMgd2l0aCB2aXJ0aW8sIG9yIGdWaXNvci4gU28sIHdoYXQgc3RhbmRhcmQgZGV2aWNlcyBhcmUgdHlwaWNhbGx5IGZvdW5kIGluIFFFTVUgb3IgR0NFIGZvciBmdXp6aW5nPyBUaGF0J3MgdGhlIGtleS5cblxuTm93LCBJIGhhdmUgdG8gY29uc2lkZXIgdGhlIGluc3RydWN0aW9ucy4gVGhlIGNydWNpYWwgY3JpdGVyaWEgSSBuZWVkIHRvIHVzZSB0byBkZXRlcm1pbmUgaWYgYSBwYXRjaCBpcyBXb3J0aEZ1enppbmcgaXMgdGhlIGZvbGxvd2luZy4gQSBwYXRjaCBzaG91bGQgcmV0dXJuIFwiV29ydGhGdXp6aW5nPWZhbHNlXCIgaWYgaXQgb25seSBjb250YWluczpcbi0gZG9jdW1lbnRhdGlvbiBjaGFuZ2VzXG4tIGNvbmZpZyBmaWxlIG1vZGlmaWNhdGlvbnNcbi0gY29kZSBjb21tZW50c1xuLSBkZWNvcmF0aXZlIGNoYW5nZXMgc3VjaCBhcyBsb2dnaW5nIG9yIHRyYWNlcG9pbnRzXG4tIGNoYW5nZXMgdG8gY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvZXNuJ3QgYWx0ZXIgZXhlY3V0aW9uIGZsb3dcbi0gdW5yZWFjaGFibGUgY29kZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMsIHN1Y2ggYXMgdXNiIGdhZGdldCBvciBtYWM4MDIxMV9od3NpbVxuLSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVVxuLSBkcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuT3RoZXJ3aXNlIGl0J3MgXCJXb3J0aEZ1enppbmc9dHJ1ZVwiIGlmIGEgcGF0Y2ggbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLiBJIG5lZWQgdG8gdmVyaWZ5IHRoYXQgY29kZSBjYW4gYmUgZXhlY3V0ZWQgdXNpbmcgY29kZSBzZWFyY2ggdG9vbHMuXG5cblNvLCBpcyBgbWFjYmAgb3IgYGdlbV9wdHBgIGEgdmVuZG9yLXNwZWNpZmljIGhhcmR3YXJlIGRyaXZlcj8gRG9lcyBpdCByZXF1aXJlIHNwZWNpZmljIGJvYXJkIERUIG5vdCBwcmVzZW50IGluIHN0YW5kYXJkIGZ1enppbmcgZW52aXJvbm1lbnRzICh4ODYvYXJtNjQgdmlydCk/IEkgbXVzdCBpbnZlc3RpZ2F0ZS5cblxuTGV0J3MgY2hlY2suIENhbiBgbWFjYmAgYmUgaW5zdGFudGlhdGVkIHZpYSBQQ0kgaW4gc3RhbmRhcmQgUUVNVT8gU3BlY2lmaWNhbGx5LCBkb2VzIFFFTVUgaGF2ZSBhIFBDSSBDYWRlbmNlIE1BQ0IgZGV2aWNlPyBObywgUUVNVSdzIGBjYWRlbmNlX2dlbWAgaXMgYSBTeXNCdXNEZXZpY2UsIG1lbW9yeSBtYXBwZWQgSS9PIG9uIFp5bnEgLyBWZXJzYWwgLyBTaUZpdmUgVSBTb0MsIG5vdCBhIFBDSSBkZXZpY2UuIFdoYXQgYWJvdXQgYG1hY2JfcGNpYD8gVGhlIFBDSSBJRCAweDE3Y2Q6MHhlMDA3IHBvaW50cyB0byBDYWRlbmNlJ3MgUENJIHRlc3Rib2FyZCAvIEZQR0EgY2FyZCwgd2hpY2ggaXNuJ3QgZW11bGF0ZWQgaW4gUUVNVS4gV2hhdCBhYm91dCBwbGF0Zm9ybSBkZXZpY2VzPyBJbiBzdGFuZGFyZCBRRU1VIHg4Nl82NCAocTM1IC8gcGMpIGFuZCBBUk02NCAoYC1NIHZpcnRgKSwgdGhlcmUncyBubyBDYWRlbmNlIEdFTSAvIE1BQ0Igbm9kZSBkZWZpbmVkIGluIHRoZSBkZXZpY2UgdHJlZSBvciBBQ1BJLlxuXG5DYW4gU3l6a2FsbGVyIGluc3RhbnRpYXRlIHBsYXRmb3JtIGRldmljZXMgdmlhIERldmljZSBUcmVlIG92ZXJsYXlzIG9yIGNvbmZpZ2ZzPyBObywgaXQgcnVucyBvbiBzdGFuZGFyZCBRRU1VIG9yIEdDRSBWTXMsIHdoZXJlIGtlcm5lbCBkZXZpY2VzIGFyZSBBQ1BJLCBQQ0ksIFVTQiwgb3Igc29mdHdhcmUgcHNldWRvIGRldmljZXMuXG5cblRpbWUgdG8gbG9vayBhdCBvdGhlciBuZXR3b3JrIGFuZCBTb0MgZXRoZXJuZXQgZHJpdmVycy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRob3NlIGFyZSBoYW5kbGVkLiBJIHdpbGwgcGVyZm9ybSBhIHNlYXJjaCBpbiB0aGUgcmVwbyBvciBjaGVjayBzaW1pbGFyIGRyaXZlcnMuIElzIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlYCByZWFjaGFibGU/XG5cbkZpbmFsbHksIGxldCdzIGV4cGxvcmUgaWYgdGhlcmUgYXJlIGFueSBtb2NrIG9yIHRlc3QgZnJhbWV3b3JrcyBmb3IgbWFjYiwgb3IgaWYgaXQgaXMgdGllZCB0byBzcGVjaWZpYyBlbWJlZGRlZCBTb0NzIGFuZCBQQ0kgdGVzdCBjYXJkcy4gSXMgdGhlcmUgYSBzdGFuZGFyZCB3YXkgdG8gaW5zdGFudGlhdGUgTUFDQj8gVGhhdCdzIHRoZSBjcml0aWNhbCBxdWVzdGlvbiBJIG5lZWQgdG8gYW5zd2VyLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyOTQyNiwiT3V0cHV0VG9rZW5zIjozMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjkzNiwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMwVDE2OjQyOjQ1LjYxMzkyMzc0OVoiLCJTZXEiOjIyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQzNjgxMzE1NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtYWNiX1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMjU5OCBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnPTQ1PWNvbmZpZyBNQUNCX1BDSVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnLTUxLVxcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlIG1vZHVsZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvS2NvbmZpZzo1MjpcXHQgIHdpbGwgYmUgY2FsbGVkIG1hY2JfcGNpLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvS2NvbmZpZy01My1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvTWFrZWZpbGUtNC0jXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9NYWtlZmlsZTo1Om1hY2IteVxcdDo9IG1hY2JfbWFpbi5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9NYWtlZmlsZS02LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvTWFrZWZpbGU9Nz1pZmVxICgkKENPTkZJR19NQUNCX1VTRV9IV1NUQU1QKSx5KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvTWFrZWZpbGU6ODptYWNiLXlcXHQrPSBtYWNiX3B0cC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9NYWtlZmlsZS05LWVuZGlmXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL01ha2VmaWxlPTExPW9iai0kKENPTkZJR19NQUNCKSArPSBtYWNiLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL01ha2VmaWxlOjEyOm9iai0kKENPTkZJR19NQUNCX1BDSSkgKz0gbWFjYl9wY2kub1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtODIwLS8qIFJlZ2lzdGVyIGFjY2VzcyBtYWNyb3MgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4MjE6I2RlZmluZSBtYWNiX3JlYWRsKHBvcnQsIHJlZylcXHRcXHQocG9ydCktXFx1MDAzZW1hY2JfcmVnX3JlYWRsKChwb3J0KSwgTUFDQl8jI3JlZylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4MjI6I2RlZmluZSBtYWNiX3dyaXRlbChwb3J0LCByZWcsIHZhbHVlKVxcdChwb3J0KS1cXHUwMDNlbWFjYl9yZWdfd3JpdGVsKChwb3J0KSwgTUFDQl8jI3JlZywgKHZhbHVlKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4MjM6I2RlZmluZSBnZW1fcmVhZGwocG9ydCwgcmVnKVxcdFxcdChwb3J0KS1cXHUwMDNlbWFjYl9yZWdfcmVhZGwoKHBvcnQpLCBHRU1fIyNyZWcpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODI0OiNkZWZpbmUgZ2VtX3dyaXRlbChwb3J0LCByZWcsIHZhbHVlKVxcdChwb3J0KS1cXHUwMDNlbWFjYl9yZWdfd3JpdGVsKChwb3J0KSwgR0VNXyMjcmVnLCAodmFsdWUpKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjgyNTojZGVmaW5lIHF1ZXVlX3JlYWRsKHF1ZXVlLCByZWcpXFx0XFx0KHF1ZXVlKS1cXHUwMDNlYnAtXFx1MDAzZW1hY2JfcmVnX3JlYWRsKChxdWV1ZSktXFx1MDAzZWJwLCAocXVldWUpLVxcdTAwM2VyZWcpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODI2OiNkZWZpbmUgcXVldWVfd3JpdGVsKHF1ZXVlLCByZWcsIHZhbHVlKVxcdChxdWV1ZSktXFx1MDAzZWJwLVxcdTAwM2VtYWNiX3JlZ193cml0ZWwoKHF1ZXVlKS1cXHUwMDNlYnAsIChxdWV1ZSktXFx1MDAzZXJlZywgKHZhbHVlKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4Mjc6I2RlZmluZSBnZW1fcmVhZGxfbihwb3J0LCByZWcsIGlkeClcXHRcXHQocG9ydCktXFx1MDAzZW1hY2JfcmVnX3JlYWRsKChwb3J0KSwgR0VNXyMjcmVnICsgaWR4ICogNClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4Mjg6I2RlZmluZSBnZW1fd3JpdGVsX24ocG9ydCwgcmVnLCBpZHgsIHZhbHVlKVxcdChwb3J0KS1cXHUwMDNlbWFjYl9yZWdfd3JpdGVsKChwb3J0KSwgR0VNXyMjcmVnICsgaWR4ICogNCwgKHZhbHVlKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC04MjktXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC04MzEtICogcmVnaXN0ZXIgZGVwZW5kZW50IG9uIHdoZXRoZXIgdGhlIGRldmljZSBpcyBhIEdFTSBvciBhIE1BQ0IuICBGb3IgcmVnaXN0ZXJzXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6ODMyOiAqIGFuZCBiaXRmaWVsZHMgdGhhdCBhcmUgY29tbW9uIGFjcm9zcyBib3RoIGRldmljZXMsIHVzZSBtYWNiX3tyZWFkLHdyaXRlfWxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC04MzMtICogdG8gYXZvaWQgdGhlIGNvc3Qgb2YgdGhlIGNvbmRpdGlvbmFsLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTgzNC0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4MzU6I2RlZmluZSBtYWNiX29yX2dlbV93cml0ZWwoX19icCwgX19yZWcsIF9fdmFsdWUpIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC04MzYtXFx0KHsgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjgzNzpcXHRcXHRpZiAobWFjYl9pc19nZW0oKF9fYnApKSkgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTgzOC1cXHRcXHRcXHRnZW1fd3JpdGVsKChfX2JwKSwgX19yZWcsIF9fdmFsdWUpOyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtODM5LVxcdFxcdGVsc2UgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjg0MDpcXHRcXHRcXHRtYWNiX3dyaXRlbCgoX19icCksIF9fcmVnLCBfX3ZhbHVlKTsgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTg0MS1cXHR9KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTg0Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4NDM6I2RlZmluZSBtYWNiX29yX2dlbV9yZWFkbChfX2JwLCBfX3JlZykgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTg0NC1cXHQoeyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtODQ1LVxcdFxcdHUzMiBfX3Y7IFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4NDY6XFx0XFx0aWYgKG1hY2JfaXNfZ2VtKChfX2JwKSkpIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC04NDctXFx0XFx0XFx0X192ID0gZ2VtX3JlYWRsKChfX2JwKSwgX19yZWcpOyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtODQ4LVxcdFxcdGVsc2UgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjg0OTpcXHRcXHRcXHRfX3YgPSBtYWNiX3JlYWRsKChfX2JwKSwgX19yZWcpOyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtODUwLVxcdFxcdF9fdjsgXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtODUyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjg1MzojZGVmaW5lIE1BQ0JfUkVBRF9OU1IoYnApXFx0bWFjYl9yZWFkbChicCwgTlNSKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTg1NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4NTU6Lyogc3RydWN0IG1hY2JfZG1hX2Rlc2MgLSBIYXJkd2FyZSBETUEgZGVzY3JpcHRvclxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTg1Ni0gKiBAYWRkcjogRE1BIGFkZHJlc3Mgb2YgZGF0YSBidWZmZXJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTg1OC0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4NTk6c3RydWN0IG1hY2JfZG1hX2Rlc2Mge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTg2MC1cXHR1MzJcXHRhZGRyO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtODYzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjg2NDpzdHJ1Y3QgbWFjYl9kbWFfZGVzY182NCB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtODY1LVxcdHUzMiBhZGRyaDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTg2OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo4Njk6c3RydWN0IG1hY2JfZG1hX2Rlc2NfcHRwIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC04NzAtXFx0dTMyXFx0dHNfMTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTk2NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDo5NjY6Lyogc3RydWN0IG1hY2JfdHhfc2tiIC0gZGF0YSBhYm91dCBhbiBza2Igd2hpY2ggaXMgYmVpbmcgdHJhbnNtaXR0ZWRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC05NjctICogQHNrYjogc2tiIGN1cnJlbnRseSBiZWluZyB0cmFuc21pdHRlZCwgb25seSBzZXQgZm9yIHRoZSBsYXN0IGJ1ZmZlclxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtOTczLSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjk3NDpzdHJ1Y3QgbWFjYl90eF9za2Ige1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTk3NS1cXHRzdHJ1Y3Qgc2tfYnVmZlxcdFxcdCpza2I7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC05ODMtICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6OTg0OnN0cnVjdCBtYWNiX3N0YXRzIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC05ODUtXFx0dTY0XFx0cnhfcGF1c2VfZnJhbWVzO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg9MTE5MT1zdHJ1Y3QgbWFjYjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxMTkyOnN0cnVjdCBtYWNiX3F1ZXVlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTExOTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTE5NDpzdHJ1Y3QgbWFjYl9vcl9nZW1fb3BzIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMTk1LVxcdGludFxcdCgqbW9nX2FsbG9jX3J4X2J1ZmZlcnMpKHN0cnVjdCBtYWNiICpicCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMTk3LVxcdHZvaWRcXHQoKm1vZ19pbml0X3JpbmdzKShzdHJ1Y3QgbWFjYiAqYnApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjExOTg6XFx0aW50XFx0KCptb2dfcngpKHN0cnVjdCBtYWNiX3F1ZXVlICpxdWV1ZSwgc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTExOTktXFx0XFx0XFx0ICBpbnQgYnVkZ2V0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEyMDItLyogTUFDQi1QVFAgaW50ZXJmYWNlOiBhZGFwdCB0byBwbGF0Zm9ybSBuZWVkcy4gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxMjAzOnN0cnVjdCBtYWNiX3B0cF9pbmZvIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMjA0LVxcdHZvaWQgKCpwdHBfaW5pdCkoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMjE2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjEyMTc6c3RydWN0IG1hY2JfcG1fZGF0YSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTIxOC1cXHR1MzIgc2NydDI7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMjIxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjEyMjI6c3RydWN0IG1hY2JfdXNyaW9fY29uZmlnIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMjIzLVxcdHUzMiBtaWk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMjMyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjEyMzM6c3RydWN0IG1hY2JfY29uZmlnIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMjM0LVxcdHUzMlxcdFxcdFxcdGNhcHM7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMjQxLVxcdGludFxcdGp1bWJvX21heF9sZW47XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTI0MjpcXHRjb25zdCBzdHJ1Y3QgbWFjYl91c3Jpb19jb25maWcgKnVzcmlvO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEyNDMtfTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oPTEyNDU9c3RydWN0IHRzdV9pbmNyIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEyNDktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTI1MDpzdHJ1Y3QgbWFjYl9xdWV1ZSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTI1MS1cXHRzdHJ1Y3QgbWFjYlxcdFxcdCpicDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEyNjktXFx0dW5zaWduZWQgaW50XFx0XFx0dHhfaGVhZCwgdHhfdGFpbDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxMjcwOlxcdHN0cnVjdCBtYWNiX2RtYV9kZXNjXFx0KnR4X3Jpbmc7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTI3MTpcXHRzdHJ1Y3QgbWFjYl90eF9za2JcXHQqdHhfc2tiO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEyNzItXFx0ZG1hX2FkZHJfdFxcdFxcdHR4X3JpbmdfZG1hO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTI4MC1cXHR1bnNpZ25lZCBpbnRcXHRcXHRyeF9wcmVwYXJlZF9oZWFkO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjEyODE6XFx0c3RydWN0IG1hY2JfZG1hX2Rlc2NcXHQqcnhfcmluZztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMjgyLVxcdHN0cnVjdCBza19idWZmXFx0XFx0KipyeF9za2J1ZmY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaD0xMjk4PXN0cnVjdCBtYWNiIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEzMDItXFx0LyogaGFyZHdhcmUgSU8gYWNjZXNzb3JzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTMwMzpcXHR1MzJcXHQoKm1hY2JfcmVnX3JlYWRsKShzdHJ1Y3QgbWFjYiAqYnAsIGludCBvZmZzZXQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjEzMDQ6XFx0dm9pZFxcdCgqbWFjYl9yZWdfd3JpdGVsKShzdHJ1Y3QgbWFjYiAqYnAsIGludCBvZmZzZXQsIHUzMiB2YWx1ZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTMwNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxMzA2OlxcdHN0cnVjdCBtYWNiX2RtYV9kZXNjXFx0KnJ4X3JpbmdfdGllb2ZmO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEzMDctXFx0ZG1hX2FkZHJfdFxcdFxcdHJ4X3JpbmdfdGllb2ZmX2RtYTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEzMTMtXFx0dW5zaWduZWQgaW50XFx0XFx0bnVtX3F1ZXVlcztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxMzE0OlxcdHN0cnVjdCBtYWNiX3F1ZXVlXFx0cXVldWVzW01BQ0JfTUFYX1FVRVVFU107XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTMxNS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEzMjYtXFx0dW5pb24ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjEzMjc6XFx0XFx0c3RydWN0IG1hY2Jfc3RhdHNcXHRtYWNiO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEzMjgtXFx0XFx0c3RydWN0IGdlbV9zdGF0c1xcdGdlbTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEzMzAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTMzMTpcXHRzdHJ1Y3QgbWFjYl9vcl9nZW1fb3BzXFx0bWFjYmdlbV9vcHM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTMzMi1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEzNDQtXFx0LyogQVQ5MVJNOTIwMCB0cmFuc21pdCBxdWV1ZSAoMSBvbiB3aXJlICsgMSBxdWV1ZWQpICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTM0NTpcXHRzdHJ1Y3QgbWFjYl90eF9za2JcXHRybTkyMDBfdHhxWzJdO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEzNDYtXFx0dW5zaWduZWQgaW50XFx0XFx0bWF4X3R4X2xlbmd0aDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTEzNTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTM1OTpcXHRzdHJ1Y3QgbWFjYl9wdHBfaW5mb1xcdCpwdHBfaW5mbztcXHQvKiBtYWNiLXB0cCBpbnRlcmZhY2UgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMzYwLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTM4Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxMzg3OlxcdHN0cnVjdCBtYWNiX3BtX2RhdGEgcG1fZGF0YTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxMzg4OlxcdGNvbnN0IHN0cnVjdCBtYWNiX3VzcmlvX2NvbmZpZyAqdXNyaW87XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTM4OS19O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTM5NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxMzk2OmVudW0gbWFjYl9iZF9jb250cm9sIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMzk3LVxcdFRTVEFNUF9ESVNBQkxFRCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oPTE0MDQ9dm9pZCBnZW1fcHRwX3JlbW92ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxNDA1OnZvaWQgZ2VtX3B0cF90eHN0YW1wKHN0cnVjdCBtYWNiICpicCwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG1hY2JfZG1hX2Rlc2MgKmRlc2MpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjE0MDY6dm9pZCBnZW1fcHRwX3J4c3RhbXAoc3RydWN0IG1hY2IgKmJwLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbWFjYl9kbWFfZGVzYyAqZGVzYyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTQwNzpzdGF0aWMgaW5saW5lIHZvaWQgZ2VtX3B0cF9kb190eHN0YW1wKHN0cnVjdCBtYWNiICpicCwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG1hY2JfZG1hX2Rlc2MgKmRlc2MpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTQwOC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xNDE0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjE0MTU6c3RhdGljIGlubGluZSB2b2lkIGdlbV9wdHBfZG9fcnhzdGFtcChzdHJ1Y3QgbWFjYiAqYnAsIHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBtYWNiX2RtYV9kZXNjICpkZXNjKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTE0MTYte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg9MTQzMD1zdGF0aWMgaW5saW5lIHZvaWQgZ2VtX3B0cF9yZW1vdmUoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldikgeyB9XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTQzMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxNDMyOnN0YXRpYyBpbmxpbmUgdm9pZCBnZW1fcHRwX2RvX3R4c3RhbXAoc3RydWN0IG1hY2IgKmJwLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbWFjYl9kbWFfZGVzYyAqZGVzYykgeyB9XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTQzMzpzdGF0aWMgaW5saW5lIHZvaWQgZ2VtX3B0cF9kb19yeHN0YW1wKHN0cnVjdCBtYWNiICpicCwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG1hY2JfZG1hX2Rlc2MgKmRlc2MpIHsgfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTE0MzQtI2VuZGlmXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTQzNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxNDM2OnN0YXRpYyBpbmxpbmUgYm9vbCBtYWNiX2lzX2dlbShzdHJ1Y3QgbWFjYiAqYnApXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTQzNy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaD0xNDUzPXN0YXRpYyBpbmxpbmUgdTY0IGVuc3RfbWF4X2h3X2ludGVydmFsKHUzMiBzcGVlZF9tYnBzKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTQ1OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxNDU5OnN0YXRpYyBpbmxpbmUgYm9vbCBtYWNiX2RtYTY0KHN0cnVjdCBtYWNiICpicClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xNDYwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTE0NjQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTQ2NTpzdGF0aWMgaW5saW5lIGJvb2wgbWFjYl9kbWFfcHRwKHN0cnVjdCBtYWNiICpicClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xNDY2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTE0NzAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTQ3MTpzdGF0aWMgaW5saW5lIHZvaWQgbWFjYl9xdWV1ZV9pc3JfY2xlYXIoc3RydWN0IG1hY2IgKmJwLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjE0NzI6XFx0XFx0XFx0XFx0XFx0c3RydWN0IG1hY2JfcXVldWUgKnF1ZXVlLCB1MzIgdmFsdWUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTQ3My17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xNDc4LS8qKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjE0Nzk6ICogc3RydWN0IG1hY2JfcGxhdGZvcm1fZGF0YSAtIHBsYXRmb3JtIGRhdGEgZm9yIE1BQ0IgRXRoZXJuZXQgdXNlZCBmb3IgUENJIHJlZ2lzdHJhdGlvblxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTE0ODAtICogQHBjbGs6XFx0XFx0cGxhdGZvcm0gY2xvY2tcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTE0ODItICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTQ4MzpzdHJ1Y3QgbWFjYl9wbGF0Zm9ybV9kYXRhIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xNDg0LVxcdHN0cnVjdCBjbGtcXHQqcGNsaztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTE0ODgtLyoqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTQ4OTogKiBzdHJ1Y3QgbWFjYl9xdWV1ZV9lbnN0X2NvbmZpZyAtIENvbmZpZ3VyYXRpb24gZm9yIEVuaGFuY2VkIFNjaGVkdWxlZCBUcmFmZmljXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTQ5MC0gKiBAc3RhcnRfdGltZV9tYXNrOiAgQml0bWFzayByZXByZXNlbnRpbmcgdGhlIHN0YXJ0IHRpbWUgZm9yIHRoZSBxdWV1ZVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTQ5Ny0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxNDk4OnN0cnVjdCBtYWNiX3F1ZXVlX2Vuc3RfY29uZmlnIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xNDk5LVxcdHUzMiBzdGFydF90aW1lX21hc2s7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTQ0LS8qIFRoaXMgc3RydWN0dXJlIGlzIG9ubHkgdXNlZCBmb3IgTUFDQiBvbiBTaUZpdmUgRlU1NDAgZGV2aWNlcyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NDU6c3RydWN0IHNpZml2ZV9mdTU0MF9tYWNiX21nbXQge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNDYtXFx0dm9pZCBfX2lvbWVtICpyZWc7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTEyOC0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjEyOTpzdGF0aWMgdW5zaWduZWQgaW50IG1hY2JfZG1hX2Rlc2NfZ2V0X3NpemUoc3RydWN0IG1hY2IgKmJwKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTMwLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjEzMTpcXHR1bnNpZ25lZCBpbnQgZGVzY19zaXplID0gc2l6ZW9mKHN0cnVjdCBtYWNiX2RtYV9kZXNjKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTEzMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjEzMzpcXHRpZiAobWFjYl9kbWE2NChicCkpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxMzQ6XFx0XFx0ZGVzY19zaXplICs9IHNpemVvZihzdHJ1Y3QgbWFjYl9kbWFfZGVzY182NCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxMzU6XFx0aWYgKG1hY2JfZG1hX3B0cChicCkpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxMzY6XFx0XFx0ZGVzY19zaXplICs9IHNpemVvZihzdHJ1Y3QgbWFjYl9kbWFfZGVzY19wdHApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTM3LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0xNDAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxNDE6c3RhdGljIHVuc2lnbmVkIGludCBtYWNiX2Fkal9kbWFfZGVzY19pZHgoc3RydWN0IG1hY2IgKmJwLCB1bnNpZ25lZCBpbnQgZGVzY19pZHgpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0xNDIte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MTQzOlxcdHJldHVybiBkZXNjX2lkeCAqICgxICsgbWFjYl9kbWE2NChicCkgKyBtYWNiX2RtYV9wdHAoYnApKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTE0NC19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0xNDUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxNDY6c3RhdGljIHN0cnVjdCBtYWNiX2RtYV9kZXNjXzY0ICptYWNiXzY0Yl9kZXNjKHN0cnVjdCBtYWNiICpicCwgc3RydWN0IG1hY2JfZG1hX2Rlc2MgKmRlc2MpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0xNDcte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MTQ4OlxcdHJldHVybiAoc3RydWN0IG1hY2JfZG1hX2Rlc2NfNjQgKikoKHZvaWQgKilkZXNjXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxNDk6XFx0XFx0KyBzaXplb2Yoc3RydWN0IG1hY2JfZG1hX2Rlc2MpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTE1MC19XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTE1Mi0vKiBSaW5nIGJ1ZmZlciBhY2Nlc3NvcnMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjE1MzpzdGF0aWMgdW5zaWduZWQgaW50IG1hY2JfdHhfcmluZ193cmFwKHN0cnVjdCBtYWNiICpicCwgdW5zaWduZWQgaW50IGluZGV4KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTU0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTU3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MTU4OnN0YXRpYyBzdHJ1Y3QgbWFjYl9kbWFfZGVzYyAqbWFjYl90eF9kZXNjKHN0cnVjdCBtYWNiX3F1ZXVlICpxdWV1ZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTE1OS1cXHRcXHRcXHRcXHRcXHQgIHVuc2lnbmVkIGludCBpbmRleClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTE2MC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxNjE6XFx0aW5kZXggPSBtYWNiX3R4X3Jpbmdfd3JhcChxdWV1ZS1cXHUwMDNlYnAsIGluZGV4KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjE2MjpcXHRpbmRleCA9IG1hY2JfYWRqX2RtYV9kZXNjX2lkeChxdWV1ZS1cXHUwMDNlYnAsIGluZGV4KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTE2My1cXHRyZXR1cm4gXFx1MDAyNnF1ZXVlLVxcdTAwM2V0eF9yaW5nW2luZGV4XTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTY1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MTY2OnN0YXRpYyBzdHJ1Y3QgbWFjYl90eF9za2IgKm1hY2JfdHhfc2tiKHN0cnVjdCBtYWNiX3F1ZXVlICpxdWV1ZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTE2Ny1cXHRcXHRcXHRcXHQgICAgICAgdW5zaWduZWQgaW50IGluZGV4KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTY4LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjE2OTpcXHRyZXR1cm4gXFx1MDAyNnF1ZXVlLVxcdTAwM2V0eF9za2JbbWFjYl90eF9yaW5nX3dyYXAocXVldWUtXFx1MDAzZWJwLCBpbmRleCldO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTcwLX1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTE3MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjE3MjpzdGF0aWMgZG1hX2FkZHJfdCBtYWNiX3R4X2RtYShzdHJ1Y3QgbWFjYl9xdWV1ZSAqcXVldWUsIHVuc2lnbmVkIGludCBpbmRleClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTE3My17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTE3NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjE3NjpcXHRvZmZzZXQgPSBtYWNiX3R4X3Jpbmdfd3JhcChxdWV1ZS1cXHUwMDNlYnAsIGluZGV4KSAqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxNzc6XFx0XFx0XFx0bWFjYl9kbWFfZGVzY19nZXRfc2l6ZShxdWV1ZS1cXHUwMDNlYnApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTc4LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0xODEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxODI6c3RhdGljIHVuc2lnbmVkIGludCBtYWNiX3J4X3Jpbmdfd3JhcChzdHJ1Y3QgbWFjYiAqYnAsIHVuc2lnbmVkIGludCBpbmRleClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTE4My17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTE4Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjE4NzpzdGF0aWMgc3RydWN0IG1hY2JfZG1hX2Rlc2MgKm1hY2JfcnhfZGVzYyhzdHJ1Y3QgbWFjYl9xdWV1ZSAqcXVldWUsIHVuc2lnbmVkIGludCBpbmRleClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTE4OC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxODk6XFx0aW5kZXggPSBtYWNiX3J4X3Jpbmdfd3JhcChxdWV1ZS1cXHUwMDNlYnAsIGluZGV4KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjE5MDpcXHRpbmRleCA9IG1hY2JfYWRqX2RtYV9kZXNjX2lkeChxdWV1ZS1cXHUwMDNlYnAsIGluZGV4KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTE5MS1cXHRyZXR1cm4gXFx1MDAyNnF1ZXVlLVxcdTAwM2VyeF9yaW5nW2luZGV4XTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTkzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MTk0OnN0YXRpYyB2b2lkICptYWNiX3J4X2J1ZmZlcihzdHJ1Y3QgbWFjYl9xdWV1ZSAqcXVldWUsIHVuc2lnbmVkIGludCBpbmRleClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTE5NS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0xOTYtXFx0cmV0dXJuIHF1ZXVlLVxcdTAwM2VyeF9idWZmZXJzICsgcXVldWUtXFx1MDAzZWJwLVxcdTAwM2VyeF9idWZmZXJfc2l6ZSAqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxOTc6XFx0ICAgICAgIG1hY2JfcnhfcmluZ193cmFwKHF1ZXVlLVxcdTAwM2VicCwgaW5kZXgpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTk4LX1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM9MjM4PXN0YXRpYyBib29sIGh3X2lzX2dlbSh2b2lkIF9faW9tZW0gKmFkZHIsIGJvb2wgbmF0aXZlX2lvKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0yNDktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoyNTA6c3RhdGljIHZvaWQgbWFjYl9zZXRfaHdhZGRyKHN0cnVjdCBtYWNiICpicClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTI1MS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTI1NS1cXHRib3R0b20gPSBnZXRfdW5hbGlnbmVkX2xlMzIoYnAtXFx1MDAzZW5ldGRldi1cXHUwMDNlZGV2X2FkZHIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MjU2OlxcdG1hY2Jfb3JfZ2VtX3dyaXRlbChicCwgU0ExQiwgYm90dG9tKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTI1Ny1cXHR0b3AgPSBnZXRfdW5hbGlnbmVkX2xlMTYoYnAtXFx1MDAzZW5ldGRldi1cXHUwMDNlZGV2X2FkZHIgKyA0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjI1ODpcXHRtYWNiX29yX2dlbV93cml0ZWwoYnAsIFNBMVQsIHRvcCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0yNTktXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTI2NS1cXHQvKiBDbGVhciB1bnVzZWQgYWRkcmVzcyByZWdpc3RlciBzZXRzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoyNjY6XFx0bWFjYl9vcl9nZW1fd3JpdGVsKGJwLCBTQTJCLCAwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjI2NzpcXHRtYWNiX29yX2dlbV93cml0ZWwoYnAsIFNBMlQsIDApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MjY4OlxcdG1hY2Jfb3JfZ2VtX3dyaXRlbChicCwgU0EzQiwgMCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoyNjk6XFx0bWFjYl9vcl9nZW1fd3JpdGVsKGJwLCBTQTNULCAwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjI3MDpcXHRtYWNiX29yX2dlbV93cml0ZWwoYnAsIFNBNEIsIDApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MjcxOlxcdG1hY2Jfb3JfZ2VtX3dyaXRlbChicCwgU0E0VCwgMCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0yNzItfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMjczLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6Mjc0OnN0YXRpYyB2b2lkIG1hY2JfZ2V0X2h3YWRkcihzdHJ1Y3QgbWFjYiAqYnApXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0yNzUte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0yODItXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIDQ7IGkrKykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MjgzOlxcdFxcdGJvdHRvbSA9IG1hY2Jfb3JfZ2VtX3JlYWRsKGJwLCBTQTFCICsgaSAqIDgpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6Mjg0OlxcdFxcdHRvcCA9IG1hY2Jfb3JfZ2VtX3JlYWRsKGJwLCBTQTFUICsgaSAqIDgpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMjg1LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0zMDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzozMDM6c3RhdGljIGludCBtYWNiX21kaW9fd2FpdF9mb3JfaWRsZShzdHJ1Y3QgbWFjYiAqYnApXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0zMDQte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0zMTAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzozMTE6c3RhdGljIGludCBtYWNiX21kaW9fcmVhZF9jMjIoc3RydWN0IG1paV9idXMgKmJ1cywgaW50IG1paV9pZCwgaW50IHJlZ251bSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTMxMi17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTMxOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjMyMDpcXHRzdGF0dXMgPSBtYWNiX21kaW9fd2FpdF9mb3JfaWRsZShicCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0zMjEtXFx0aWYgKHN0YXR1cyBcXHUwMDNjIDApXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTMyMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjMyNDpcXHRtYWNiX3dyaXRlbChicCwgTUFOLCAoTUFDQl9CRihTT0YsIE1BQ0JfTUFOX0MyMl9TT0YpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0zMjUtXFx0XFx0XFx0ICAgICAgfCBNQUNCX0JGKFJXLCBNQUNCX01BTl9DMjJfUkVBRClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMzI5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MzMwOlxcdHN0YXR1cyA9IG1hY2JfbWRpb193YWl0X2Zvcl9pZGxlKGJwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTMzMS1cXHRpZiAoc3RhdHVzIFxcdTAwM2MgMClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMzMzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MzM0OlxcdHN0YXR1cyA9IE1BQ0JfQkZFWFQoREFUQSwgbWFjYl9yZWFkbChicCwgTUFOKSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0zMzUtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTM0MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjM0MjpzdGF0aWMgaW50IG1hY2JfbWRpb19yZWFkX2M0NShzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgbWlpX2lkLCBpbnQgZGV2YWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0zNDMtXFx0XFx0XFx0ICAgICAgaW50IHJlZ251bSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMzUzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MzU0OlxcdHN0YXR1cyA9IG1hY2JfbWRpb193YWl0X2Zvcl9pZGxlKGJwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTM1NS1cXHRpZiAoc3RhdHVzIFxcdTAwM2MgMClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMzU3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MzU4OlxcdG1hY2Jfd3JpdGVsKGJwLCBNQU4sIChNQUNCX0JGKFNPRiwgTUFDQl9NQU5fQzQ1X1NPRilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTM1OS1cXHRcXHRcXHQgICAgICB8IE1BQ0JfQkYoUlcsIE1BQ0JfTUFOX0M0NV9BRERSKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0zNjQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzozNjU6XFx0c3RhdHVzID0gbWFjYl9tZGlvX3dhaXRfZm9yX2lkbGUoYnApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMzY2LVxcdGlmIChzdGF0dXMgXFx1MDAzYyAwKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0zNjgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzozNjk6XFx0bWFjYl93cml0ZWwoYnAsIE1BTiwgKE1BQ0JfQkYoU09GLCBNQUNCX01BTl9DNDVfU09GKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMzcwLVxcdFxcdFxcdCAgICAgIHwgTUFDQl9CRihSVywgTUFDQl9NQU5fQzQ1X1JFQUQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTM3NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjM3NTpcXHRzdGF0dXMgPSBtYWNiX21kaW9fd2FpdF9mb3JfaWRsZShicCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0zNzYtXFx0aWYgKHN0YXR1cyBcXHUwMDNjIDApXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTM3OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjM3OTpcXHRzdGF0dXMgPSBNQUNCX0JGRVhUKERBVEEsIG1hY2JfcmVhZGwoYnAsIE1BTikpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMzgwLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0zODYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzozODc6c3RhdGljIGludCBtYWNiX21kaW9fd3JpdGVfYzIyKHN0cnVjdCBtaWlfYnVzICpidXMsIGludCBtaWlfaWQsIGludCByZWdudW0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0zODgtXFx0XFx0XFx0ICAgICAgIHUxNiB2YWx1ZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMzk2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6Mzk3OlxcdHN0YXR1cyA9IG1hY2JfbWRpb193YWl0X2Zvcl9pZGxlKGJwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTM5OC1cXHRpZiAoc3RhdHVzIFxcdTAwM2MgMClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNDAwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NDAxOlxcdG1hY2Jfd3JpdGVsKGJwLCBNQU4sIChNQUNCX0JGKFNPRiwgTUFDQl9NQU5fQzIyX1NPRilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTQwMi1cXHRcXHRcXHQgICAgICB8IE1BQ0JfQkYoUlcsIE1BQ0JfTUFOX0MyMl9XUklURSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNDA3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NDA4OlxcdHN0YXR1cyA9IG1hY2JfbWRpb193YWl0X2Zvcl9pZGxlKGJwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTQwOS1cXHRpZiAoc3RhdHVzIFxcdTAwM2MgMClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNDE3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NDE4OnN0YXRpYyBpbnQgbWFjYl9tZGlvX3dyaXRlX2M0NShzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgbWlpX2lkLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNDE5LVxcdFxcdFxcdCAgICAgICBpbnQgZGV2YWQsIGludCByZWdudW0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTQzMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjQzMTpcXHRzdGF0dXMgPSBtYWNiX21kaW9fd2FpdF9mb3JfaWRsZShicCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy00MzItXFx0aWYgKHN0YXR1cyBcXHUwMDNjIDApXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTQzNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjQzNTpcXHRtYWNiX3dyaXRlbChicCwgTUFOLCAoTUFDQl9CRihTT0YsIE1BQ0JfTUFOX0M0NV9TT0YpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy00MzYtXFx0XFx0XFx0ICAgICAgfCBNQUNCX0JGKFJXLCBNQUNCX01BTl9DNDVfQUREUilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNDQxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NDQyOlxcdHN0YXR1cyA9IG1hY2JfbWRpb193YWl0X2Zvcl9pZGxlKGJwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTQ0My1cXHRpZiAoc3RhdHVzIFxcdTAwM2MgMClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNDQ1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NDQ2OlxcdG1hY2Jfd3JpdGVsKGJwLCBNQU4sIChNQUNCX0JGKFNPRiwgTUFDQl9NQU5fQzQ1X1NPRilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTQ0Ny1cXHRcXHRcXHQgICAgICB8IE1BQ0JfQkYoUlcsIE1BQ0JfTUFOX0M0NV9XUklURSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNDUyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NDUzOlxcdHN0YXR1cyA9IG1hY2JfbWRpb193YWl0X2Zvcl9pZGxlKGJwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTQ1NC1cXHRpZiAoc3RhdHVzIFxcdTAwM2MgMClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNDYyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NDYzOnN0YXRpYyB2b2lkIG1hY2JfaW5pdF9idWZmZXJzKHN0cnVjdCBtYWNiICpicClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTQ2NC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo0NjU6XFx0c3RydWN0IG1hY2JfcXVldWUgKnF1ZXVlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNDY2LVxcdHVuc2lnbmVkIGludCBxO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy00NjgtXFx0LyogU2luZ2xlIHJlZ2lzdGVyIGZvciBhbGwgcXVldWVzJyBoaWdoIDMyIGJpdHMuICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo0Njk6XFx0aWYgKG1hY2JfZG1hNjQoYnApKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo0NzA6XFx0XFx0bWFjYl93cml0ZWwoYnAsIFJCUVBILFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNDcxLVxcdFxcdFxcdCAgICB1cHBlcl8zMl9iaXRzKGJwLVxcdTAwM2VxdWV1ZXNbMF0ucnhfcmluZ19kbWEpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjQ3MjpcXHRcXHRtYWNiX3dyaXRlbChicCwgVEJRUEgsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy00NzMtXFx0XFx0XFx0ICAgIHVwcGVyXzMyX2JpdHMoYnAtXFx1MDAzZXF1ZXVlc1swXS50eF9yaW5nX2RtYSkpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy00ODItLyoqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo0ODM6ICogbWFjYl9zZXRfdHhfY2xrKCkgLSBTZXQgYSBjbG9jayB0byBhIG5ldyBmcmVxdWVuY3lcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTQ4NC0gKiBAYnA6XFx0XFx0cG9pbnRlciB0byBzdHJ1Y3QgbWFjYlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy00ODYtICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo0ODc6c3RhdGljIHZvaWQgbWFjYl9zZXRfdHhfY2xrKHN0cnVjdCBtYWNiICpicCwgaW50IHNwZWVkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNDg4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNTE5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NTIwOnN0YXRpYyB2b2lkIG1hY2JfdXN4X3Bjc19saW5rX3VwKHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzLCB1bnNpZ25lZCBpbnQgbmVnX21vZGUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy01MjEtXFx0XFx0XFx0XFx0IHBoeV9pbnRlcmZhY2VfdCBpbnRlcmZhY2UsIGludCBzcGVlZCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNTM0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NTM1OnN0YXRpYyB2b2lkIG1hY2JfdXN4X3Bjc19nZXRfc3RhdGUoc3RydWN0IHBoeWxpbmtfcGNzICpwY3MsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy01MzYtXFx0XFx0XFx0XFx0ICAgdW5zaWduZWQgaW50IG5lZ19tb2RlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy01NTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo1NTM6c3RhdGljIGludCBtYWNiX3VzeF9wY3NfY29uZmlnKHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNTU0LVxcdFxcdFxcdCAgICAgICB1bnNpZ25lZCBpbnQgbmVnX21vZGUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTU2Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjU2NzpzdGF0aWMgdW5zaWduZWQgaW50IG1hY2JfcGNzX2luYmFuZF9jYXBzKHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNTY4LVxcdFxcdFxcdFxcdFxcdCBwaHlfaW50ZXJmYWNlX3QgaW50ZXJmYWNlKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy01NzItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo1NzM6c3RhdGljIHZvaWQgbWFjYl9wY3NfZ2V0X3N0YXRlKHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzLCB1bnNpZ25lZCBpbnQgbmVnX21vZGUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy01NzQtXFx0XFx0XFx0ICAgICAgIHN0cnVjdCBwaHlsaW5rX2xpbmtfc3RhdGUgKnN0YXRlKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy01ODMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo1ODQ6c3RhdGljIHZvaWQgbWFjYl9wY3NfYW5fcmVzdGFydChzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTU4NS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTU4OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjU4OTpzdGF0aWMgaW50IG1hY2JfcGNzX2NvbmZpZyhzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTU5MC1cXHRcXHRcXHQgICB1bnNpZ25lZCBpbnQgbmVnX21vZGUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTYwNC1cXHQgKiBNdXN0IGJlIHdyaXR0ZW4gYWZ0ZXIgUENTU0VMIGlzIHNldCBpbiBOQ0ZHUiB3aGljaCBpcyBkb25lIGluXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo2MDU6XFx0ICogbWFjYl9tYWNfY29uZmlnKCksIG90aGVyd2lzZSB3cml0ZXMgd2lsbCBub3QgdGFrZSBlZmZlY3QuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy02MDYtXFx0ICovXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTYxNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjYxODpzdGF0aWMgY29uc3Qgc3RydWN0IHBoeWxpbmtfcGNzX29wcyBtYWNiX3BoeWxpbmtfdXN4X3Bjc19vcHMgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo2MTk6XFx0LnBjc19nZXRfc3RhdGUgPSBtYWNiX3VzeF9wY3NfZ2V0X3N0YXRlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NjIwOlxcdC5wY3NfY29uZmlnID0gbWFjYl91c3hfcGNzX2NvbmZpZyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjYyMTpcXHQucGNzX2xpbmtfdXAgPSBtYWNiX3VzeF9wY3NfbGlua191cCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTYyMi19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNjIzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NjI0OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcGh5bGlua19wY3Nfb3BzIG1hY2JfcGh5bGlua19wY3Nfb3BzID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NjI1OlxcdC5wY3NfaW5iYW5kX2NhcHMgPSBtYWNiX3Bjc19pbmJhbmRfY2FwcyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjYyNjpcXHQucGNzX2dldF9zdGF0ZSA9IG1hY2JfcGNzX2dldF9zdGF0ZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjYyNzpcXHQucGNzX2FuX3Jlc3RhcnQgPSBtYWNiX3Bjc19hbl9yZXN0YXJ0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NjI4OlxcdC5wY3NfY29uZmlnID0gbWFjYl9wY3NfY29uZmlnLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNjI5LX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy02MzAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo2MzE6c3RhdGljIGJvb2wgbWFjYl90eF9scGlfc2V0KHN0cnVjdCBtYWNiICpicCwgYm9vbCBlbmFibGUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy02MzIte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy02MzYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo2Mzc6XFx0bmNyID0gbWFjYl9yZWFkbChicCwgTkNSKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTYzOC1cXHRvbGQgPSBuY3I7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTY0My1cXHRpZiAob2xkICE9IG5jcilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjY0NDpcXHRcXHRtYWNiX3dyaXRlbChicCwgTkNSLCBuY3IpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNjQ1LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy02NDgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo2NDk6c3RhdGljIGJvb2wgbWFjYl90eF9hbGxfcXVldWVzX2lkbGUoc3RydWN0IG1hY2IgKmJwKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNjUwLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjY1MTpcXHRzdHJ1Y3QgbWFjYl9xdWV1ZSAqcXVldWU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy02NTItXFx0dW5zaWduZWQgaW50IHE7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTY2MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjY2MTpzdGF0aWMgdm9pZCBtYWNiX3R4X2xwaV93b3JrX2ZuKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTY2Mi17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTY2Ni1cXHRzcGluX2xvY2tfaXJxc2F2ZShcXHUwMDI2YnAtXFx1MDAzZWxvY2ssIGZsYWdzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjY2NzpcXHRpZiAoYnAtXFx1MDAzZWVlZV9hY3RpdmUgXFx1MDAyNlxcdTAwMjYgbWFjYl90eF9hbGxfcXVldWVzX2lkbGUoYnApKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NjY4OlxcdFxcdG1hY2JfdHhfbHBpX3NldChicCwgdHJ1ZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy02NjktXFx0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcXHUwMDI2YnAtXFx1MDAzZWxvY2ssIGZsYWdzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNjcxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NjcyOnN0YXRpYyB2b2lkIG1hY2JfdHhfbHBpX3NjaGVkdWxlKHN0cnVjdCBtYWNiICpicClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTY3My17XFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMwVDE2OjQyOjQ3LjA1MDc0MTk5NloiLCJTZXEiOjIzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoxMDUyMTI3NzAwMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHN1bW1hcnksIGFzIHRob3VnaCBJJ20gdGhpbmtpbmcgdGhyb3VnaCB0aGlzIHByb2Nlc3M6XG5cbioqVHJhY2luZyB0aGUgUFRQIEluaXRpYWxpemF0aW9uKipcblxuT2theSwgc28gSSdtIGRpZ2dpbmcgaW50byBob3cgUHJlY2lzaW9uIFRpbWUgUHJvdG9jb2wgKFBUUCkgaXMgaW5pdGlhbGl6ZWQgd2l0aGluIHRoaXMgZHJpdmVyLiBUaGUgaW5pdGlhbCBjbHVlIGlzIHRoYXQgYGdlbV9wdHBfaW5pdGAgZ2V0cyBjYWxsZWQsIGFuZCBmcm9tIHdoYXQgSSByZW1lbWJlciwgSSBiZWxpZXZlIGl0J3MgaGFwcGVuaW5nIHdpdGhpbiBgbWFjYl9tYWluLmNgLiBOb3csIHRoZSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBwaW5wb2ludCAqZXhhY3RseSogd2hlcmUgdGhhdCBmdW5jdGlvbiBjYWxsIGxpdmVzIHdpdGhpbiB0aGUgY29kZS4gTGV0J3MgZmlyZSB1cCB0aGUgc2VhcmNoIHRvb2xzIGFuZCBzZWUgd2hhdCB3ZSBjYW4gZmluZC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNhbGwgc3RhY2sgYW5kIGhvdyB0aGlzIFBUUCBpbml0aWFsaXphdGlvbiBmaXRzIGludG8gdGhlIG92ZXJhbGwgTUFDQiBkcml2ZXIncyBzdGFydHVwIHNlcXVlbmNlLiBUaGF0IHdpbGwgdGVsbCBtZSBldmVyeXRoaW5nIEkgbmVlZCB0byBrbm93IGFib3V0IHRoZSBkZXZpY2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ0MzcyLCJPdXRwdXRUb2tlbnMiOjM1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzBUMTY6NDI6NTcuNTcyMDIyMDA4WiIsIlNlcSI6MjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1Mjk4NTAxOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJnZW1fcHRwX2luaXRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaD0xMzk2PWVudW0gbWFjYl9iZF9jb250cm9sIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTE0MDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTQwMzp2b2lkIGdlbV9wdHBfaW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xNDA0LXZvaWQgZ2VtX3B0cF9yZW1vdmUoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaD0xNDI1PWludCBnZW1fc2V0X2h3dHN0KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xNDI4LSNlbHNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmg6MTQyOTpzdGF0aWMgaW5saW5lIHZvaWQgZ2VtX3B0cF9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpIHsgfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTE0MzAtc3RhdGljIGlubGluZSB2b2lkIGdlbV9wdHBfcmVtb3ZlKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpIHsgfVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYz0zNzc1PXN0YXRpYyBzdHJ1Y3QgbWFjYl9wdHBfaW5mbyBnZW1fcHRwX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzozNzc2OlxcdC5wdHBfaW5pdFxcdCA9IGdlbV9wdHBfaW5pdCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTM3NzctXFx0LnB0cF9yZW1vdmVcXHQgPSBnZW1fcHRwX3JlbW92ZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYz0xOTE9c3RhdGljIGNvbnN0IHN0cnVjdCBwdHBfY2xvY2tfaW5mbyBnZW1fcHRwX2NhcHNfdGVtcGxhdGUgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMtMjA2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYzoyMDc6c3RhdGljIHZvaWQgZ2VtX3B0cF9pbml0X3RpbWVyKHN0cnVjdCBtYWNiICpicClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMtMjA4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYy0yMjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jOjIyMjpzdGF0aWMgdm9pZCBnZW1fcHRwX2luaXRfdHN1KHN0cnVjdCBtYWNiICpicClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMtMjIzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYz0yOTc9dm9pZCBnZW1fcHRwX3R4c3RhbXAoc3RydWN0IG1hY2IgKmJwLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jLTMyNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmM6MzI3OnZvaWQgZ2VtX3B0cF9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jLTMyOC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMtMzM3LVxcdGJwLVxcdTAwM2VwdHBfY2xvY2tfaW5mby5tYXhfYWRqID0gYnAtXFx1MDAzZXB0cF9pbmZvLVxcdTAwM2VnZXRfcHRwX21heF9hZGooKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmM6MzM4OlxcdGdlbV9wdHBfaW5pdF90aW1lcihicCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jLTMzOS1cXHRicC1cXHUwMDNlcHRwX2Nsb2NrID0gcHRwX2Nsb2NrX3JlZ2lzdGVyKFxcdTAwMjZicC1cXHUwMDNlcHRwX2Nsb2NrX2luZm8sIFxcdTAwMjZuZXRkZXYtXFx1MDAzZWRldik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMtMzQ5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYzozNTA6XFx0Z2VtX3B0cF9pbml0X3RzdShicCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jLTM1MS1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzBUMTY6NDI6NTcuNjI1MDEwMTA3WiIsIlNlcSI6MjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjgwMTI2MTQ5NTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKlRyYWNpbmcgdGhlIFBUUCBJbml0aWFsaXphdGlvbiBpbiBtYWNiX21haW4uYyoqXG5cbkFscmlnaHQsIGxldCdzIGRpdmUgaW50byB0aGlzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhlIFBUUCBpbml0aWFsaXphdGlvbiByb3V0aW5lLCBzcGVjaWZpY2FsbHkgYGdlbV9wdHBfaW5mby5wdHBfaW5pdGAsIGlzIGJlaW5nIGNhbGxlZCB3aXRoaW4gYG1hY2JfbWFpbi5jYC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdG8gdHJhY2sgZG93biB0aGUgY2FsbGVycyDigJMgd2hpY2ggb3RoZXIgZnVuY3Rpb25zIHdpdGhpbiB0aGF0IGZpbGUgYXJlIGludm9raW5nIGBnZW1fcHRwX2luZm8ucHRwX2luaXRgPyBUaGlzIGlzIHRoZSBjcnVjaWFsIHN0YXJ0aW5nIHBvaW50IGZvciB1bmRlcnN0YW5kaW5nIHRoZSBvdmVyYWxsIGluaXRpYWxpemF0aW9uIHNlcXVlbmNlIGFuZCB0aGUgcm9sZSBvZiBQVFAgd2l0aGluIHRoZSBicm9hZGVyIE1BQ0IgZHJpdmVyIGNvbnRleHQuIEknbGwgbmVlZCB0byB1c2UgbXkgdXN1YWwgbWV0aG9kcywgbGlrZWx5IGEgY29tYmluYXRpb24gb2Ygc3RhdGljIGFuYWx5c2lzIChncmVwcGluZyBvciB1c2luZyBhbiBJREUncyBjcm9zcy1yZWZlcmVuY2luZyBjYXBhYmlsaXRpZXMpIGFuZCBwZXJoYXBzIGV2ZW4gc29tZSBkeW5hbWljIHRyYWNpbmcgaWYgdGhlIHN0YXRpYyBhbmFseXNpcyBwcm92ZXMgaW5zdWZmaWNpZW50IG9yIGlmIEkgc3VzcGVjdCBjb25kaXRpb25hbCBjYWxscyB0aGF0IGFyZSBub3QgaW1tZWRpYXRlbHkgb2J2aW91cyBmcm9tIHRoZSBzb3VyY2UgY29kZS4gVGhlIGdvYWwgaXMgYSBjbGVhciB1bmRlcnN0YW5kaW5nIG9mIHRoZSBpbml0aWFsaXphdGlvbiBmbG93LlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NTU5MSwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMwVDE2OjQzOjA1LjYzNzYyNzU0WiIsIlNlcSI6MjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NjQwMDcyMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwdHBfaW5pdFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oPTEyMDM9c3RydWN0IG1hY2JfcHRwX2luZm8ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oOjEyMDQ6XFx0dm9pZCAoKnB0cF9pbml0KShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaC0xMjA1LVxcdHZvaWQgKCpwdHBfcmVtb3ZlKShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oPTEzOTY9ZW51bSBtYWNiX2JkX2NvbnRyb2wge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTQwMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxNDAzOnZvaWQgZ2VtX3B0cF9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTE0MDQtdm9pZCBnZW1fcHRwX3JlbW92ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oPTE0MjU9aW50IGdlbV9zZXRfaHd0c3Qoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYi5oLTE0MjgtI2Vsc2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaDoxNDI5OnN0YXRpYyBpbmxpbmUgdm9pZCBnZW1fcHRwX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldikgeyB9XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmgtMTQzMC1zdGF0aWMgaW5saW5lIHZvaWQgZ2VtX3B0cF9yZW1vdmUoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldikgeyB9XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jPTMxMjk9c3RhdGljIGludCBtYWNiX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMzE3Ny1cXHRpZiAoYnAtXFx1MDAzZXB0cF9pbmZvKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MzE3ODpcXHRcXHRicC1cXHUwMDNlcHRwX2luZm8tXFx1MDAzZXB0cF9pbml0KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0zMTc5LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYz0zNzc1PXN0YXRpYyBzdHJ1Y3QgbWFjYl9wdHBfaW5mbyBnZW1fcHRwX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzozNzc2OlxcdC5wdHBfaW5pdFxcdCA9IGdlbV9wdHBfaW5pdCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTM3NzctXFx0LnB0cF9yZW1vdmVcXHQgPSBnZW1fcHRwX3JlbW92ZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM9NjEzMz1zdGF0aWMgaW50IF9fbWF5YmVfdW51c2VkIG1hY2JfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNjIwNy1cXHRpZiAoYnAtXFx1MDAzZXB0cF9pbmZvKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NjIwODpcXHRcXHRicC1cXHUwMDNlcHRwX2luZm8tXFx1MDAzZXB0cF9pbml0KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy02MjA5LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jPTE5MT1zdGF0aWMgY29uc3Qgc3RydWN0IHB0cF9jbG9ja19pbmZvIGdlbV9wdHBfY2Fwc190ZW1wbGF0ZSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYy0yMDYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jOjIwNzpzdGF0aWMgdm9pZCBnZW1fcHRwX2luaXRfdGltZXIoc3RydWN0IG1hY2IgKmJwKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYy0yMDgte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jLTIyMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmM6MjIyOnN0YXRpYyB2b2lkIGdlbV9wdHBfaW5pdF90c3Uoc3RydWN0IG1hY2IgKmJwKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYy0yMjMte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jPTI5Nz12b2lkIGdlbV9wdHBfdHhzdGFtcChzdHJ1Y3QgbWFjYiAqYnAsIHN0cnVjdCBza19idWZmICpza2IsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMtMzI2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYzozMjc6dm9pZCBnZW1fcHRwX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMtMzI4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYy0zMzctXFx0YnAtXFx1MDAzZXB0cF9jbG9ja19pbmZvLm1heF9hZGogPSBicC1cXHUwMDNlcHRwX2luZm8tXFx1MDAzZWdldF9wdHBfbWF4X2FkaigpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYzozMzg6XFx0Z2VtX3B0cF9pbml0X3RpbWVyKGJwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMtMzM5LVxcdGJwLVxcdTAwM2VwdHBfY2xvY2sgPSBwdHBfY2xvY2tfcmVnaXN0ZXIoXFx1MDAyNmJwLVxcdTAwM2VwdHBfY2xvY2tfaW5mbywgXFx1MDAyNm5ldGRldi1cXHUwMDNlZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYy0zNDktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jOjM1MDpcXHRnZW1fcHRwX2luaXRfdHN1KGJwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMtMzUxLVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0zMFQxNjo0MzowNS42ODQwMzE5MTlaIiwiU2VxIjoyNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MTc4Njk3Mzc5OTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqV29ydGhGdXp6aW5nIEFzc2Vzc21lbnQ6IENhZGVuY2UgTUFDQi9HRU0gRHJpdmVyKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBGaXJzdCwgYGdlbV9wdHBfaW5pdGAgaXMgY2FsbGVkIGJ5IGBtYWNiX29wZW5gLCB3aGljaCBpcyBgbmRvX29wZW5gLCBnb3QgaXQuIE5vdywgdGhlIGtleSBxdWVzdGlvbiBpcyB3aGV0aGVyIHRoaXMgQ2FkZW5jZSBNQUNCIGRyaXZlciBjYW4gYmUgaW5zdGFudGlhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgR0NFIGZ1enppbmcgZW52aXJvbm1lbnRzLiBXZSBuZWVkIHRvIGJlIG1ldGljdWxvdXMuIExldCdzIHJldmlzaXQgdGhlIHJ1bGVzLiBUaGUgY3JpdGVyaWEgc3RpcHVsYXRlIHRoYXQgd2UgcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgIGlmIHRoZSBwYXRjaCBjb25jZXJucyBtb2RpZmljYXRpb25zIHRvIGRvY3VtZW50YXRpb24sIEtjb25maWcsIGNvbW1lbnRzLCBjb3NtZXRpYyBjaGFuZ2VzLCBub24tZnVuY3Rpb25hbCBudW1lcmljIGNvbnN0YW50cy9tYWNyb3MsIG9yIHVucmVhY2hhYmxlIGNvZGUgcGF0aHMgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBTcGVjaWZpY2FsbHksIHRoZSBydWxlcyBleGNsdWRlIGNvZGUgcGF0aHMgdGhhdCBhcmUgaW5hY2Nlc3NpYmxlIGluIFFFTVUvR0NFLCBldmVuIHdpdGggc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUuIFRoaXMgYWxzbyBhcHBsaWVzIHRvIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIHJlcXVpcmluZyBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLiBGaW5hbGx5LCB0ZWFyZG93biBjYWxsYmFja3MgYXJlIGFsc28gdW5pbnRlcmVzdGluZyBpbiB0aGlzIGNvbnRleHQuXG5cblJpZ2h0LCBzbywgaXMgdGhlIENhZGVuY2UgTUFDQi9HRU0gYSBoYXJkd2FyZS1zcGVjaWZpYyBTb0MvUENJIGRyaXZlciBub3QgcmVhY2hhYmxlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cz8gTGV0J3MgY2hlY2suIEhvdyBpcyBDYWRlbmNlIE1BQ0IgcHJvYmVkPyBJdCdzIHByb2JlZCB2aWEgRFQgKERldmljZSBUcmVlKSB3aXRoIGNvbXBhdGlibGUgc3RyaW5ncyBsaWtlIGBjZG5zLGF0OTFzYW05MjYwLW1hY2JgLCBgY2RucyxtYWNiYCwgYGNkbnMsZ2VtYCwgYHhsbngsenlucS1nZW1gLCBgc2lmaXZlLGZ1NTQwLWMwMDAtZ2VtYCwgYW5kIGFsc28gdmlhIFBDSSB3aXRoIElEIDB4MTdjZDoweGUwMDcgKENhZGVuY2UgUENJIEdFTSkuIE5vdywgaXMgdGhpcyBDYWRlbmNlIEdFTSBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIHg4Nl82NCBvciBBUk02NCB2aXJ0IG1hY2hpbmVzPyBObyEgU3RhbmRhcmQgUUVNVSB4ODZfNjQgdXNlcyBlMTAwMCwgZTEwMDBlLCBydGw4MTM5LCB2aXJ0aW8tbmV0LXBjaSwgZXRjLiwgYW5kIHN0YW5kYXJkIEFSTTY0IHZpcnQgdXNlcyB2aXJ0aW8tbmV0LXBjaS4gQ2FkZW5jZSBHRU0gaW4gUUVNVSBpcyBvbmx5IGF2YWlsYWJsZSBpZiBydW5uaW5nIHNwZWNpZmljIG1hY2hpbmUgYm9hcmRzIGxpa2UgYHhsbngtemN1MTAyYCwgYHp5bnEtYTlgLCBvciBgc2lmaXZlX3VgLiBHQ0Ugb3Igc3RhbmRhcmQgUUVNVSAoeDg2XzY0IG9yIEFSTTY0IHZpcnQpIGRvIG5vdCBvZmZlciBDYWRlbmNlIEdFTSBoYXJkd2FyZSBvciBQQ0kgZGV2aWNlcy5cblxuT2theSwgd2hhdCBhYm91dCBzeXprYWxsZXI/IENhbiBzeXprYWxsZXIgcnVuIG9uIGluc3RhbmNlcyB0ZXN0aW5nIHRoZXNlIGRyaXZlcnM/IFN0YW5kYXJkIExpbnV4IGZ1enppbmcgaW4gc3l6a2FsbGVyIGlzIHg4Nl82NCBhbmQgYXJtNjQgdmlydC4gVGhlIHJ1bGVzIGFyZSBjbGVhcjogY29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VIGFyZSBleGNsdWRlZCwgYWxvbmcgd2l0aCB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyByZXF1aXJpbmcgcGh5c2ljYWwgUENJZSBoYXJkd2FyZS5cblxuU28sIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL2AuLi4gSXMgQ2FkZW5jZSBNQUNCIGEgdmVuZG9yLXNwZWNpZmljIGhhcmR3YXJlIGRyaXZlcj8gWWVzISBJdCdzIGFuIEV0aGVybmV0IE1BQyBkcml2ZXIgZm9yIENhZGVuY2UgSVAgZm91bmQgb24gQXRtZWwvTWljcm9jaGlwIEFUOTEvU0FNQTUsIFhpbGlueCBaeW5xLCBTaUZpdmUgRlU1NDAsIGFuZCBDYWRlbmNlJ3MgaW50ZXJuYWwgUENJIEZQR0EgcHJvdG90eXBlIGJvYXJkLiBJdCdzIHVucmVhY2hhYmxlIHdpdGhvdXQgdGhhdCBzcGVjaWZpYyBwaHlzaWNhbCBoYXJkd2FyZSBvciBzcGVjaWFsaXplZCBlbWJlZGRlZCBTb0MgZW11bGF0aW9uLiBUaGVyZSdzIG5vIHNvZnR3YXJlIGRldmljZS9tb2NrL3ZpcnR1YWwgZGV2aWNlIG9yIFVTQiBpbnRlcmZhY2UgdGhhdCB1c2VzIG1hY2IuIE1BQ0IgaXMgcHVyZWx5IGFuIE1NSU8gcGxhdGZvcm0gZHJpdmVyIG9yIGEgQ0ROUyBQQ0kgd3JhcHBlciBmb3IgdGhlIENhZGVuY2UgSVAgY29yZS4gSXQncyBpbmFjY2Vzc2libGUgaW4gc3RhbmRhcmQgZnV6emluZyBlbnZpcm9ubWVudHMuXG5cbkxldCdzIGNvbmZpcm0gdGhlIGBXb3J0aEZ1enppbmdgIHNob3VsZCBiZSBmYWxzZSBiYXNlZCBvbiB0aGUgY3JpdGVyaWE6IFwiUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZi4uLiBjb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUuLi4gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cIlxuXG5JbmRlZWQsIHRoZSBDYWRlbmNlIE1BQ0IgLyBHRU0gZXRoZXJuZXQgZHJpdmVyIChgZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX3B0cC5jYCkgcmVxdWlyZXMgc3BlY2lmaWMgcGh5c2ljYWwgaGFyZHdhcmUgKEF0bWVsIC8gTWljcm9jaGlwIFNvQywgWGlsaW54IFp5bnEsIFNpRml2ZSBSSVNDLVYgU29DLCBvciBDYWRlbmNlIFBDSSBGUEdBIHRlc3QgZGV2aWNlKSB0aGF0IGlzIG5vdCBhdmFpbGFibGUgb3IgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgKFFFTVUgdmlydC9HQ0UpLlxuXG5UaGVyZWZvcmUsIHRoZSBjb25jbHVzaW9uIGlzOiBgV29ydGhGdXp6aW5nID0gZmFsc2VgLiBgRW5hYmxlQ29uZmlncyA9IFtdYC4gYEZvY3VzU3ltYm9scyA9IFtdYC4gVGhlIHJlYXNvbmluZzogVGhlIHBhdGNoIGZpeGVzIHRoZSBpbml0aWFsaXphdGlvbiBvcmRlciBvZiB0aGUgc3BpbmxvY2sgYHRzdV9jbGtfbG9ja2AgaW4gYGdlbV9wdHBfaW5pdGAgd2l0aGluIHRoZSBDYWRlbmNlIE1BQ0IvR0VNIG5ldHdvcmsgZHJpdmVyLiBUaGlzIGRyaXZlciB0YXJnZXRzIGVtYmVkZGVkIFNvQ3MgKEF0bWVsL01pY3JvY2hpcCwgWGlsaW54IFp5bnEsIFNpRml2ZSkgYW5kIENhZGVuY2UgUENJIHRlc3QgaGFyZHdhcmUgdGhhdCBhcmUgbm90IHByZXNlbnQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIHZpcnQvR0NFLlxuXG5RdWlja1xuXG4iLCJJbnB1dFRva2VucyI6NDcyMjcsIk91dHB1dFRva2VucyI6MTU4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTM3NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0zMFQxNjo0MzoyMy41NTM3NzI4MDFaIiwiU2VxIjoyOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMTQ2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyB0aGUgaW5pdGlhbGl6YXRpb24gb3JkZXIgb2YgYGJwLVxcdTAwM2V0c3VfY2xrX2xvY2tgIGJlZm9yZSByZWdpc3RlcmluZyB0aGUgUFRQIGNsb2NrIGluIGBnZW1fcHRwX2luaXQoKWAgZm9yIHRoZSBDYWRlbmNlIE1BQ0IvR0VNIG5ldHdvcmsgZHJpdmVyIChkcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfcHRwLmMpLiBUaGlzIGRyaXZlciBpcyBmb3IgaGFyZHdhcmUtc3BlY2lmaWMgQ2FkZW5jZSBFdGhlcm5ldCBNQUMgSVAgb24gZW1iZWRkZWQgU29DcyAoc3VjaCBhcyBBdG1lbC9NaWNyb2NoaXAsIFhpbGlueCBaeW5xLCBTaUZpdmUpIG9yIHByb3ByaWV0YXJ5IFBDSSB0ZXN0IGNhcmRzLCB3aGljaCBhcmUgbm90IHByZXNlbnQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgKGUuZy4gUUVNVSBzdGFuZGFyZCB2aXJ0IC8gR0NFKS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIHRoZSBpbml0aWFsaXphdGlvbiBvcmRlciBvZiBgYnAtXFx1MDAzZXRzdV9jbGtfbG9ja2AgYmVmb3JlIHJlZ2lzdGVyaW5nIHRoZSBQVFAgY2xvY2sgaW4gYGdlbV9wdHBfaW5pdCgpYCBmb3IgdGhlIENhZGVuY2UgTUFDQi9HRU0gbmV0d29yayBkcml2ZXIgKGRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9wdHAuYykuIFRoaXMgZHJpdmVyIGlzIGZvciBoYXJkd2FyZS1zcGVjaWZpYyBDYWRlbmNlIEV0aGVybmV0IE1BQyBJUCBvbiBlbWJlZGRlZCBTb0NzIChzdWNoIGFzIEF0bWVsL01pY3JvY2hpcCwgWGlsaW54IFp5bnEsIFNpRml2ZSkgb3IgcHJvcHJpZXRhcnkgUENJIHRlc3QgY2FyZHMsIHdoaWNoIGFyZSBub3QgcHJlc2VudCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoZS5nLiBRRU1VIHN0YW5kYXJkIHZpcnQgLyBHQ0UpLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzBUMTY6NDM6MjMuNTUzNzk2OTgxWiIsIlNlcSI6MjksIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoiSWYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNjMwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowz6n5l[1] Phase: Running StartedAt: 2026-08-30 16:43:35 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz6n5l[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-30 16:43:35 +0000 UTC FinishedAt: 2026-08-30 16:43:39 +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,}