Name: series-workflow6xgkc Phase: Failed StartedAt: 2026-07-22 22:39:35 +0000 UTC FinishedAt: 2026-07-22 23:07:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6xgkc[0] Phase: Succeeded StartedAt: 2026-07-22 22:39:35 +0000 UTC FinishedAt: 2026-07-22 23:07:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6xgkc[0].run-triage Phase: Succeeded StartedAt: 2026-07-22 22:39:35 +0000 UTC FinishedAt: 2026-07-22 23:07:37 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDIzOjA2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGEgaGFyZHdhcmUtc3BlY2lmaWMgUEhZIGRyaXZlciAoRnJlZXNjYWxlIEx5bnggMjhHIFNlckRlcyBQSFkpIHdoaWNoIHJlcXVpcmVzIHNwZWNpZmljIHBsYXRmb3JtIGRldmljZXMgKGUuZy4sIFwmIzM0O2ZzbCxseDIxNjBhLXNlcmRlczFcJiMzNDspIHRvIGJlIGluc3RhbnRpYXRlZCB2aWEgRGV2aWNlIFRyZWUuIFRoaXMgY29kZSBwYXRoIGlzIGltcG9zc2libGUgdG8gcmVhY2ggaW4gZ2VuZXJpYyB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSB1c2VkIGZvciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAyMzowNjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDQyYjJhYWFiNmI0MTlkMGU3MWIyNjAzNDY3YTUxZDliOWY4ZTc5OWFcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEp1bCAyMiAyMzowNjo0MSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jIGIvZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuY1xuaW5kZXggMzhhZmNkMDgxYTJhNzUuLjFmZTQwNmFkYzgzY2IzIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuY1xuQEAgLTEwMDMsNyAmIzQzOzEwMDMsOSBAQCBzdGF0aWMgaW50IGx5bnhfMjhnX3NldF9tb2RlKHN0cnVjdCBwaHkgKnBoeSwgZW51bSBwaHlfbW9kZSBtb2RlLCBpbnQgc3VibW9kZSlcbiBcbiBcdGx5bnhfMjhnX2xhbmVfY2hhbmdlX3Byb3RvX2NvbmYobGFuZSwgbGFuZV9tb2RlKTtcbiBcdGx5bnhfMjhnX2xhbmVfcmVtYXBfcGxsKGxhbmUsIGxhbmVfbW9kZSk7XG4tXHRXQVJOX09OKGx5bnhfMjhnX2xhbmVfZW5hYmxlX3BjdnQobGFuZSwgbGFuZV9tb2RlKSk7XG4mIzQzO1x0ZXJyID0gbHlueF8yOGdfbGFuZV9lbmFibGVfcGN2dChsYW5lLCBsYW5lX21vZGUpO1xuJiM0MztcdGlmIChlcnIpXG4mIzQzO1x0XHRnb3RvIG91dDtcbiBcbiBcdGxhbmUtXHUwMDNlbW9kZSA9IGxhbmVfbW9kZTtcbiBcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAyMzowNjwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBQSFkgZHJpdmVyIChGcmVlc2NhbGUgTHlueCAyOEcgU2VyRGVzIFBIWSkgd2hpY2ggcmVxdWlyZXMgc3BlY2lmaWMgcGxhdGZvcm0gZGV2aWNlcyAoZS5nLiwgXCYjMzQ7ZnNsLGx4MjE2MGEtc2VyZGVzMVwmIzM0OykgdG8gYmUgaW5zdGFudGlhdGVkIHZpYSBEZXZpY2UgVHJlZS4gVGhpcyBjb2RlIHBhdGggaXMgaW1wb3NzaWJsZSB0byByZWFjaCBpbiBnZW5lcmljIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFIHVzZWQgZm9yIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA0MmIyYWFhYjZiNDE5ZDBlNzFiMjYwMzQ2N2E1MWQ5YjlmOGU3OTlhCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFdlZCBKdWwgMjIgMjM6MDY6NDEgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jIGIvZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuYwppbmRleCAzOGFmY2QwODFhMmE3NS4uMWZlNDA2YWRjODNjYjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuYwpAQCAtMTAwMyw3ICYjNDM7MTAwMyw5IEBAIHN0YXRpYyBpbnQgbHlueF8yOGdfc2V0X21vZGUoc3RydWN0IHBoeSAqcGh5LCBlbnVtIHBoeV9tb2RlIG1vZGUsIGludCBzdWJtb2RlKQogCiAJbHlueF8yOGdfbGFuZV9jaGFuZ2VfcHJvdG9fY29uZihsYW5lLCBsYW5lX21vZGUpOwogCWx5bnhfMjhnX2xhbmVfcmVtYXBfcGxsKGxhbmUsIGxhbmVfbW9kZSk7Ci0JV0FSTl9PTihseW54XzI4Z19sYW5lX2VuYWJsZV9wY3Z0KGxhbmUsIGxhbmVfbW9kZSkpOwomIzQzOwllcnIgPSBseW54XzI4Z19sYW5lX2VuYWJsZV9wY3Z0KGxhbmUsIGxhbmVfbW9kZSk7CiYjNDM7CWlmIChlcnIpCiYjNDM7CQlnb3RvIG91dDsKIAogCWxhbmUtJmd0O21vZGUgPSBsYW5lX21vZGU7CiAKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMjM6MDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTk5MwoJCQkJCQkJb3V0cHV0OiA0OAoJCQkJCQkJdGhvdWdodHM6IDIwNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBQSFkgRHJpdmVyIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuY2AuIEl0JiMzOTtzIGEgRnJlZXNjYWxlIEx5bnggMjhHIFBIWSBkcml2ZXIuIFRoZSBrZXkgY2hhbmdlIGlzIHRoYXQgYFdBUk5fT05gIGNhbGwgaW4gdGhlIG9yaWdpbmFsIGNvZGUgaGFzIGJlZW4gcmVwbGFjZWQgd2l0aCBwcm9wZXIgZXJyb3IgaGFuZGxpbmcsIHNvIG5vdyB3ZSBoYXZlIGBseW54XzI4Z19sYW5lX2VuYWJsZV9wY3Z0YCByZXR1cm5pbmcgYW4gZXJyb3IgY29kZSBhbmQgdGhhdCByZXN1bHQgY2hlY2tlZC4gVGhpcyBpcyBkZWZpbml0ZWx5IGEgZnVuY3Rpb25hbCBjaGFuZ2Ug4oCTIGEgc3RlcCB1cCBpbiByb2J1c3RuZXNzLgoKVGhlIHJlYWwgcXVlc3Rpb24gaGVyZSwgYXMgd2l0aCBhbnkgaGFyZHdhcmUgZHJpdmVyIGNoYW5nZSwgaXMgcmVhY2hhYmlsaXR5LCBwYXJ0aWN1bGFybHkgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudC4gQ2FuIHdlIGV2ZW4gdHJpZ2dlciB0aGlzIGNvZGUgcGF0aCBpbiBzb21ldGhpbmcgbGlrZSBRRU1VPyBQSFkgZHJpdmVycyBhcmUgbm90b3Jpb3VzbHkgaGFyZHdhcmUtc3BlY2lmaWMsIHNvIEkgaGF2ZSB0byBjb25zaWRlciB3aGV0aGVyIHRoaXMgZnVuY3Rpb25hbGl0eSBpcyBkZXBlbmRlbnQgb24gdGhlIGFjdHVhbCBMeW54IDI4RyBoYXJkd2FyZSBiZWluZyBwcmVzZW50IG9yIG5vdC4gTXkgaW50dWl0aW9uIGlzIHRoYXQgaXQgbWlnaHQgYmUsIGJ1dCBsZXQmIzM5O3MgcXVpY2tseSByZXZpZXcgaG93IHRoaXMgZHJpdmVyIGdldHMgcHJvYmVkIHdpdGhpbiB0aGUga2VybmVsLiBJJiMzOTtsbCBuZWVkIHRvIGNoZWNrIHRoZSBwcm9iZSBmdW5jdGlvbiBpbiBgZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuY2AgdG8gc2VlIGlmIHRoZXJlJiMzOTtzIGFueSBvYnZpb3VzIHdheSB0aGlzIGNvZGUgbWlnaHQgYmUgZXhlY3V0ZWQgZHVyaW5nIGEgdmlydHVhbGl6ZWQgYm9vdC4gSXQgd291bGQgYmUgZ3JlYXQgaWYgdGhpcyBjb3VsZCBiZSB0ZXN0ZWQgd2l0aG91dCBzcGVjaWFsaXplZCBoYXJkd2FyZSwgc28gSSYjMzk7bGwgYmUgbG9va2luZyBmb3Igc29tZXRoaW5nIHRoYXQgaW5kaWNhdGVzIHRoYXQgaXQgY2FuLCBmb3IgZXhhbXBsZSwgYmUgcGFzc2VkIGEgY2VydGFpbiBoYXJkd2FyZSBjb25maWcgdGhhdCBRRU1VIG1pZ2h0IGVtdWxhdGUuIEkgd2FudCB0byBzZWUgaWYgdGhpcyBjaGFuZ2UgYWZmZWN0cyBzb21ldGhpbmcgY3JpdGljYWwgb3IgaXMgcHVyZWx5IGNvc21ldGljLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDIzOjA2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2x5bnhfMjhnX3Byb2JlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jPTExNzY9c3RhdGljIGNvbnN0IHN0cnVjdCBseW54X2luZm8gbHlueF9pbmZvX2x4MjE2MmFfc2VyZGVzMiA9IHtcbi0tXG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jLTExODUtXG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jOjExODY6c3RhdGljIGludCBseW54XzI4Z19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuYy0xMTg3LXtcbi0tXG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jPTEyMTM9c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgbHlueF8yOGdfZHJpdmVyID0ge1xuZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuYzoxMjE0Olx0LnByb2JlID0gbHlueF8yOGdfcHJvYmUsXG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jLTEyMTUtXHQucmVtb3ZlID0gbHlueF9yZW1vdmUsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMjM6MDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjg1NAoJCQkJCQkJb3V0cHV0OiA1MAoJCQkJCQkJdGhvdWdodHM6IDEwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqRGV2aWNlIFRyZWUgTWF0Y2hpbmcgLSBJbml0aWFsIEFzc2Vzc21lbnQqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGRpdmUgc3RyYWlnaHQgaW4uIE15IGZpcnN0IHRob3VnaHQgaXMgdG8gaW1tZWRpYXRlbHkgZXhhbWluZSB0aGF0IGRldmljZSB0cmVlIG1hdGNoIHRhYmxlLiBJdCYjMzk7cyB0aGUgY3JpdGljYWwgc3RhcnRpbmcgcG9pbnQgZm9yIGFueSBkZWJ1Z2dpbmcgb3IgdW5kZXJzdGFuZGluZyBvZiBoYXJkd2FyZSBpbml0aWFsaXphdGlvbiwgYW5kIEkgbmVlZCB0byBzZWUgd2hhdCB0aGUgc3lzdGVtICp0aGlua3MqIGl0JiMzOTtzIGRlYWxpbmcgd2l0aC4gSSB3YW50IHRvIHNlZSB3aGF0IHByb3BlcnRpZXMgYXJlIHVzZWQgaW4gdGhlIG1hdGNoaW5nIHByb2Nlc3MgYW5kIHRoZSBzcGVjaWZpYyBzdHJpbmdzIGFzc29jaWF0ZWQgd2l0aCBhIGdpdmVuIG5vZGUuIEFyZSB0aGVyZSBvYnZpb3VzIHR5cG9zLCBpbmNvcnJlY3QgZHJpdmVyIG5hbWVzLCBvciBtaXNtYXRjaGVkIGNvbXBhdGlibGUgc3RyaW5ncyB0aGF0IGFyZSBpbW1lZGlhdGVseSBhcHBhcmVudD8gSSYjMzk7bSBsb29raW5nIGZvciB0aGUgc2ltcGxlLCBsb3ctaGFuZ2luZyBmcnVpdDogY29tbW9uIGNvbmZpZ3VyYXRpb24gZXJyb3JzIHRoYXQgY2FuIGJlIHF1aWNrbHkgaWRlbnRpZmllZCBhbmQgY29ycmVjdGVkLiBLbm93aW5nIGhvdyBhIGdpdmVuIGhhcmR3YXJlIGJsb2NrIGlzIGRlc2NyaWJlZCBpbiB0aGUgRFQgaXMgdGhlIGZvdW5kYXRpb24gZm9yIGZ1cnRoZXIgaW52ZXN0aWdhdGlvbi4gVGhpcyB2aWV3IHdpbGwgZGljdGF0ZSB3aGF0IGNvbWVzIG5leHQhCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMjM6MDY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bHlueF8yOGdfb2ZfbWF0Y2gmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmM9MTE4Nj1zdGF0aWMgaW50IGx5bnhfMjhnX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuYy0xMjAxLVxuZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuYzoxMjAyOnN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGx5bnhfMjhnX29mX21hdGNoX3RhYmxlW10gPSB7XG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jLTEyMDMtXHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7ZnNsLGx4MjE2MGEtc2VyZGVzMVwmIzM0OywgLmRhdGEgPSBcdTAwMjZseW54X2luZm9fbHgyMTYwYV9zZXJkZXMxIH0sXG4tLVxuZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuYy0xMjEwLX07XG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jOjEyMTE6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgbHlueF8yOGdfb2ZfbWF0Y2hfdGFibGUpO1xuZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuYy0xMjEyLVxuZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuYz0xMjEzPXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGx5bnhfMjhnX2RyaXZlciA9IHtcbi0tXG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jLTEyMTctXHRcdC5uYW1lID0gXCYjMzQ7bHlueC0yOGdcJiMzNDssXG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jOjEyMTg6XHRcdC5vZl9tYXRjaF90YWJsZSA9IGx5bnhfMjhnX29mX21hdGNoX3RhYmxlLFxuZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuYy0xMjE5LVx0fSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAyMzowNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNTU5CgkJCQkJCQlvdXRwdXQ6IDUwCgkJCQkJCQl0aG91Z2h0czogMjI3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgdGhlIEZyZWVzY2FsZSBMWDIxNjBBIFNlckRlcyBEcml2ZXIgaW4gUUVNVSoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwbGF0Zm9ybSBkcml2ZXIgZm9yIHRoZSBGcmVlc2NhbGUgTFgyMTYwQSBTZXJEZXMuIEl0IG5lZWRzIGEgc3BlY2lmaWMgZGV2aWNlIHRyZWUgbm9kZSwgbGlrZSBgZnNsLGx4MjE2MGEtc2VyZGVzMWAsIHRvIGJlIHByb3Blcmx5IGluc3RhbnRpYXRlZC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIGNhbiBJIGV2ZW4gKmZ1enoqIHRoaXMgdGhpbmcgd2l0aGluIGEgZ2VuZXJpYyBRRU1VIGVudmlyb25tZW50PyBJdCYjMzk7cyBhIHBsYXRmb3JtIGRldmljZSwgd2hpY2ggbWFrZXMgaXQgdHJpY2tpZXIuIE5vcm1hbGx5LCBJJiMzOTtkIGxlYW4gdG93YXJkcyBkZXZpY2UgdHJlZSBvdmVybGF5cyBvciBtYXliZSBTeXprYWxsZXImIzM5O3MgcHNldWRvLWRldmljZXMgaWYgdGhlcmUmIzM5O3MgYW55IGF2YWlsYWJsZSBzdXBwb3J0LCBidXQgUEhZIGRyaXZlcnMsIGVzcGVjaWFsbHkgaGFyZHdhcmUtc3BlY2lmaWMgb25lcyBsaWtlIHRoaXMsIGFyZSBub3RvcmlvdXNseSBoYXJkIHRvIHJlYWNoIHVubGVzcyB5b3Ugc3BlY2lmaWNhbGx5IHRhcmdldCB0aGVtLgoKSSYjMzk7bSB0aGlua2luZywgYXJlIHRoZXJlIGFueSBzeXNmcyBvciBuZXRsaW5rIGludGVyZmFjZXMgSSBjb3VsZCBleHBsb2l0PyBQbGF0Zm9ybSBkZXZpY2VzIGFyZW4mIzM5O3QgdXN1YWxseSBleHBvc2VkIHRoYXQgd2F5LCB1bmxlc3MgdGhlcmUmIzM5O3Mgc29tZSBkZXZpY2UgdHJlZSBvdmVybGF5IGluamVjdGlvbiB0cmljayBJIGNhbiB1c2UsIHdoaWNoIFN5emthbGxlciAqZG9lcyogb2ZmZXIgdG8gc29tZSBleHRlbnQuIEhtbSwgd2FpdCwgZG9lcyBTeXprYWxsZXIgaGF2ZSAqZGlyZWN0KiBpbmplY3Rpb24gdmlhIGBzeXpfZGV2bGlua2Agb3Igc2ltaWxhcj8gTm8sIGl0JiMzOTtzIG1vcmUgYWJvdXQgaW5qZWN0aW5nIERUIG92ZXJsYXlzIG9yIHVzaW5nIGBzeXpfbW91bnRfaW1hZ2VgLCByaWdodD8gVGhhdCYjMzk7cyB1c2VmdWwsIGJ1dCBQSFkgZHJpdmVycyB0ZW5kIHRvIGJlIGRlZXBseSBoYXJkd2FyZS1zcGVjaWZpYywgd2hpY2ggbWFrZXMgdGhlIHdob2xlIHRoaW5nIGV2ZW4gbW9yZSBjaGFsbGVuZ2luZy4KCk9rYXksIHNvIHRoZSByZWFsIHF1ZXN0aW9uIGlzOiBpcyB0aGVyZSBhbnkgd2F5IEkgY2FuIHRyaWdnZXIgdGhpcyBmcm9tIHVzZXJzcGFjZSAqd2l0aG91dCogdGhlIGhhcmR3YXJlPyBUaGUgZnVuY3Rpb24gdGhhdCB3YXMgbW9kaWZpZWQgaW4gdGhpcyBkcml2ZXIgaXMgYGx5bnhfMjhnX3NldF9tb2RlYC4gVGltZSB0byBzZWUgaWYgSSBjYW4gZmluZCBzb21lIGVudHJ5IHBvaW50cyEKCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAyMzowNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtseW54XzI4Z19zZXRfbW9kZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuYz05NzE9c3RhdGljIGludCBseW54XzI4Z192YWxpZGF0ZShzdHJ1Y3QgcGh5ICpwaHksIGVudW0gcGh5X21vZGUgbW9kZSwgaW50IHN1Ym1vZGUsXG4tLVxuZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuYy05NzYtXG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jOjk3NzpzdGF0aWMgaW50IGx5bnhfMjhnX3NldF9tb2RlKHN0cnVjdCBwaHkgKnBoeSwgZW51bSBwaHlfbW9kZSBtb2RlLCBpbnQgc3VibW9kZSlcbmRyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmMtOTc4LXtcbi0tXG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jPTEwNTI9c3RhdGljIGNvbnN0IHN0cnVjdCBwaHlfb3BzIGx5bnhfMjhnX29wcyA9IHtcbi0tXG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jLTEwNTYtXHQucG93ZXJfb2ZmXHQ9IGx5bnhfMjhnX3Bvd2VyX29mZixcbmRyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmM6MTA1NzpcdC5zZXRfbW9kZVx0PSBseW54XzI4Z19zZXRfbW9kZSxcbmRyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmMtMTA1OC1cdC52YWxpZGF0ZVx0PSBseW54XzI4Z192YWxpZGF0ZSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAyMzowNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NTMyCgkJCQkJCQlvdXRwdXQ6IDMxCgkJCQkJCQl0aG91Z2h0czogMjA0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIEZyZWVzY2FsZSBMeW54IDI4RyBQSFkgQ2FsbGJhY2sgaW4gYSBWaXJ0dWFsaXplZCBDb250ZXh0KioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBhIGBwaHlfb3BzYCBjYWxsYmFjayBoZXJlLiBUaGUgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzLCBjYW4gd2Ugc29tZWhvdyBjcmVhdGUgYSBnZW5lcmljIFBIWSBhbmQgY2FsbCBpdHMgYHNldF9tb2RlYCBmdW5jdGlvbj8gSW4gdGhlIHJlYWwgd29ybGQsIHRoZSBQSFkgZnJhbWV3b3JrIHVzdWFsbHkgaGFuZGxlcyBQSFkgY3JlYXRpb24gd2hlbiBhIHBsYXRmb3JtIGRldmljZSBnZXRzIHByb2JlZC4gVGhlIHByb2JsZW0gaXMsIGlmIHRoZSBwbGF0Zm9ybSBkZXZpY2UgaXNuJiMzOTt0IHByZXNlbnQsIHRoZSBQSFkgd29uJiMzOTt0IGJlIGluc3RhbnRpYXRlZC4gQW5kIHRoaXMgaXMgYSBGcmVlc2NhbGUgTHlueCAyOEcgUEhZLCB3aGljaCBzY3JlYW1zIEZyZWVzY2FsZSBTb0Mgc3BlY2lmaWNpdHkuCgpVbmxlc3Mgc3l6a2FsbGVyIGlzIHJ1bm5pbmcgb24gYWN0dWFsIEZyZWVzY2FsZSBoYXJkd2FyZSwgb3IgUUVNVSBpcyBzZXQgdXAgdG8gZW11bGF0ZSAqdGhpcyBleGFjdCogU29DIHdpdGggdGhlIGRyaXZlciBlbmFibGVkLCB3ZSYjMzk7cmUgcHJvYmFibHkgbm90IGdvaW5nIHRvIGJlIGFibGUgdG8gaGl0IGl0LiBXYWl0IGEgbWludXRlLCBzeXprYWxsZXIgKmRvZXMqIGhhdmUgYSBtZWNoYW5pc20gZm9yIHRlc3Rpbmcgc29tZSBwbGF0Zm9ybSBkcml2ZXJzIGV2ZW4gaWYgdGhlaXIgZGV2aWNlcyBhcmVuJiMzOTt0IHByZXNlbnQuIFRoYXQmIzM5O3MgYSBwb3NzaWJpbGl0eS4gQnV0LCBob25lc3RseSwgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVycyBsaWtlIHRoaXMg4oCTIGVzcGVjaWFsbHkgUEhZcyDigJMgYXJlIHVzdWFsbHkgY29tcGxldGVseSB1bnJlYWNoYWJsZSBpbiBnZW5lcmljIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gVGhpbmsgR0NFLCBvciBzdGFuZGFyZCBRRU1VIHg4Nl82NC9hcm02NCB3aXRob3V0IHNwZWNpZmljIG1hY2hpbmUgbW9kZWxzIGNvbmZpZ3VyZWQuIEkgdGhpbmsgdGhlIGJlc3QgcGxhY2UgdG8gc3RhcnQgaXMganVzdCB0byBzZWUgaWYgdGhpcyBkcml2ZXIgaXMgZXZlbiBlbmFibGVkIGluIGdlbmVyaWMga2VybmVsIGNvbmZpZ3MuIFRoYXQmIzM5O3MgdGhlIGZpcnN0IGh1cmRsZSwgYXQgbGVhc3QuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDIzOjA3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O1BIWV9GU0xfTFlOWF8yOEcmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9waHkvZnJlZXNjYWxlL0tjb25maWc9NTc9Y29uZmlnIFBIWV9GU0xfTFlOWF8xMEdcbi0tXG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvS2NvbmZpZy02Ni1cbmRyaXZlcnMvcGh5L2ZyZWVzY2FsZS9LY29uZmlnOjY3OmNvbmZpZyBQSFlfRlNMX0xZTlhfMjhHXG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvS2NvbmZpZy02OC1cdHRyaXN0YXRlIFwmIzM0O0ZyZWVzY2FsZSBMYXllcnNjYXBlIEx5bnggMjhHIFNlckRlcyBQSFkgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvcGh5L2ZyZWVzY2FsZS9NYWtlZmlsZT04PW9iai0kKENPTkZJR19QSFlfRlNMX0xZTlhfMTBHKVx0XHQmIzQzOz0gcGh5LWZzbC1seW54LTEwZy5vXG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvTWFrZWZpbGU6OTpvYmotJChDT05GSUdfUEhZX0ZTTF9MWU5YXzI4RylcdFx0JiM0Mzs9IHBoeS1mc2wtbHlueC0yOGcub1xuZHJpdmVycy9waHkvZnJlZXNjYWxlL01ha2VmaWxlLTEwLW9iai0kKENPTkZJR19QSFlfRlNMX1NBTVNVTkdfSERNSV9QSFkpXHQmIzQzOz0gcGh5LWZzbC1zYW1zdW5nLWhkbWkub1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAyMzowNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1Mjk0CgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMjEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzLCBzdW1tYXJpemVkIGFzIHlvdSByZXF1ZXN0ZWQ6CgoqKktjb25maWcgRGl2ZSBmb3IgUEhZX0ZTTF9MWU5YXzI4RyoqCgpPa2F5LCBmaXJzdCB0aGluZ3MgZmlyc3QsIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgcmVsYXRlZCB0byB0aGUgYFBIWV9GU0xfTFlOWF8yOEdgIHNldHRpbmcuIE15IGluaXRpYWwgaW5zdGluY3QgaXMgdG8gZGlnIGludG8gdGhlIGBLY29uZmlnYCBmaWxlcy4gSSYjMzk7bSBhc3N1bWluZyBpdCYjMzk7cyBwcm9iYWJseSB3aXRoaW4gdGhlIGBkcml2ZXJzL2Agb3IgYHBoeS9gIGRpcmVjdG9yaWVzLCBvciBwb3NzaWJseSB1bmRlciBhIHNwZWNpZmljIHBsYXRmb3JtIGRpcmVjdG9yeSBpZiBpdCYjMzk7cyBib2FyZC1zcGVjaWZpYy4gSSYjMzk7bGwgbmVlZCB0byB1c2UgYSBzZWFyY2ggc3RyYXRlZ3ksIHN0YXJ0aW5nIHdpdGggYSBicm9hZCBzZWFyY2ggZm9yIHRoZSBzeW1ib2wgaXRzZWxmIHdpdGhpbiB0aGUga2VybmVsIHNvdXJjZS4gVGhlIGdvYWwgaGVyZSBpc24mIzM5O3QganVzdCB0byAqZmluZCogdGhlIGRlZmluaXRpb24sIGJ1dCBhbHNvIHRvIHVuZGVyc3RhbmQgdGhlIGRlcGVuZGVuY2llcyDigJMgd2hhdCBvdGhlciBvcHRpb25zIG5lZWQgdG8gYmUgZW5hYmxlZCBmb3IgdGhpcyBQSFkgdG8gZXZlbiBiZSBjb25zaWRlcmVkPyBJIHdhbnQgdG8gc2VlIHRoZSBjb25kaXRpb25zLiBJJiMzOTttIGxvb2tpbmcgZm9yIHRoZSBgZGVwZW5kcyBvbmAgY2xhdXNlcywgYW55IGBzZWxlY3RgIHN0YXRlbWVudHMsIGFuZCB0aGUgYXNzb2NpYXRlZCBoZWxwIHRleHQuIFRoaXMgd2lsbCB0ZWxsIG1lIHdoYXQgc3VwcG9ydGluZyBkcml2ZXJzIG9yIGZlYXR1cmVzIGFyZSBuZWVkZWQuIEkmIzM5O2xsIGFsc28gYmUgdHJ5aW5nIHRvIGNoZWNrIGlmIHRoZSBzeW1ib2wgaXMgdXNlciBzZWxlY3RhYmxlIG9yIG9ubHkgYSByZXN1bHQgb2Ygb3RoZXIgc2V0dGluZ3MuIEkgbmVlZCB0byBub3RlIGFueSBkZWZhdWx0IHNldHRpbmdzIHRoYXQgbWlnaHQgaW5mbHVlbmNlIHRoZSBlbmFibGVtZW50IG9mIHRoaXMgc3BlY2lmaWMgUEhZLiBGcm9tIHRoaXMsIEkmIzM5O2xsIGZvcm11bGF0ZSBhIGNvbXBsZXRlIHBpY3R1cmUgb2YgdGhpcyBQSFkmIzM5O3MgY29uZmlndXJhdGlvbiBvcHRpb25zIGFuZCB0aGVpciBpbXBsaWNhdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDIzOjA3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9waHkvZnJlZXNjYWxlL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiA2MCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgIDYwOlx0XHRkZXBlbmRzIG9uIEFSQ0hfTEFZRVJTQ0FQRSB8fCBDT01QSUxFX1RFU1RcbiAgNjE6XHRcdHNlbGVjdCBHRU5FUklDX1BIWVxuICA2MjpcdFx0c2VsZWN0IFBIWV9GU0xfTFlOWF9DT1JFXG4gIDYzOlx0XHRoZWxwXG4gIDY0Olx0XHQgIEVuYWJsZSB0aGlzIHRvIGFkZCBzdXBwb3J0IGZvciB0aGUgTHlueCAxMEcgU2VyRGVzIFBIWSBhcyBmb3VuZCBvblxuICA2NTpcdFx0ICBOWFAmIzM5O3MgTGF5ZXJzY2FwZSBwbGF0Zm9ybSBzdWNoIGFzIExTMTA4OEEgb3IgTFMxMDI4QS5cbiAgNjY6XHRcbiAgNjc6XHRjb25maWcgUEhZX0ZTTF9MWU5YXzI4R1xuICA2ODpcdFx0dHJpc3RhdGUgXCYjMzQ7RnJlZXNjYWxlIExheWVyc2NhcGUgTHlueCAyOEcgU2VyRGVzIFBIWSBzdXBwb3J0XCYjMzQ7XG4gIDY5Olx0XHRkZXBlbmRzIG9uIE9GXG4gIDcwOlx0XHRkZXBlbmRzIG9uIEFSQ0hfTEFZRVJTQ0FQRSB8fCBDT01QSUxFX1RFU1RcbiAgNzE6XHRcdHNlbGVjdCBHRU5FUklDX1BIWVxuICA3MjpcdFx0c2VsZWN0IFBIWV9GU0xfTFlOWF9DT1JFXG4gIDczOlx0XHRoZWxwXG4gIDc0Olx0XHQgIEVuYWJsZSB0aGlzIHRvIGFkZCBzdXBwb3J0IGZvciB0aGUgTHlueCBTZXJEZXMgMjhHIFBIWSBhc1xuICA3NTpcdFx0ICBmb3VuZCBvbiBOWFAmIzM5O3MgTGF5ZXJzY2FwZSBwbGF0Zm9ybXMgc3VjaCBhcyBMWDIxNjBBLlxuICA3NjpcdFx0ICBVc2VkIHRvIGNoYW5nZSB0aGUgcHJvdG9jb2wgcnVubmluZyBvbiBTZXJEZXMgbGFuZXMgYXQgcnVudGltZS5cbiAgNzc6XHRcdCAgT25seSB1c2VmdWwgZm9yIGEgcmVzdHJpY3RlZCBzZXQgb2YgRXRoZXJuZXQgcHJvdG9jb2xzLlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAyMzowNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1OTQyCgkJCQkJCQlvdXRwdXQ6IDMzCgkJCQkJCQl0aG91Z2h0czogMjg3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKldvcnRoRnV6emluZyBEZWNpc2lvbioqCgpPa2F5LCBzbyBJJiMzOTttIGFzc2Vzc2luZyB3aGV0aGVyIHRoaXMgcGFydGljdWxhciBwaWVjZSBvZiBjb2RlIGlzIGV2ZW4gKnJlYWNoYWJsZSogYnkgZnV6emluZy4gSXQmIzM5O3MgdGllZCB0byBgQVJDSF9MQVlFUlNDQVBFYCBvciBgQ09NUElMRV9URVNUYCwgYnV0IHRoYXQmIzM5O3MgYSBiaXQgb2YgYSByZWQgaGVycmluZy4gRXZlbiBpZiBpdCYjMzk7cyBjb21waWxlZCBpbiwgd2hpY2ggaXMgcG9zc2libGUgZXZlbiB3aXRob3V0IGBBUkNIX0xBWUVSU0NBUEVgLCB0aGUgZHJpdmVyIGl0c2VsZiBkZW1hbmRzIGEgcGxhdGZvcm0gZGV2aWNlLiBTcGVjaWZpY2FsbHksIG9uZSB3aXRoIHRoZSBgJiMzNDtmc2wsbHgyMTYwYS1zZXJkZXMxJiMzNDtgIGNvbXBhdGlibGUgc3RyaW5nLiBUaGF0JiMzOTtzIHRoZSByZWFsIGh1cmRsZS4KCk15IGluaXRpYWwgdGhvdWdodCBpcywgY2FuIFN5emthbGxlciBpbmplY3QgdGhhdD8gV2VsbCwgbm90IGRpcmVjdGx5LiBJIGltbWVkaWF0ZWx5IGRpc21pc3MgYHN5el9kZXZsaW5rYCBhbmQgc2ltaWxhcjsgaXQgZG9lc24mIzM5O3QgaGF2ZSBhIGdlbmVyaWMgbWVjaGFuaXNtIHRvIGNyZWF0ZSAqYXJiaXRyYXJ5KiBwbGF0Zm9ybSBkZXZpY2VzLiBUaGUgYHN5el9nZW5ldGxpbmtgIGNhbGwgd29uJiMzOTt0IGhlbHAgaGVyZSwgaXQmIzM5O3MgZm9yIG5ldGxpbmsgc3R1ZmYuIEhtbSwgd2hhdCBhYm91dCBEVCBvdmVybGF5cz8gQ291bGQgYmUuLi4gaWYgdGhlIGtlcm5lbCBpcyBjb25maWd1cmVkIHdpdGggYENPTkZJR19PRl9PVkVSTEFZYCAqYW5kKiBTeXprYWxsZXIgaGFzIGEgZGVzY3JpcHRpb24gZm9yICp0aGlzIHNwZWNpZmljKiBQSFkgZHJpdmVyLiBUeXBpY2FsbHksIFN5emthbGxlciBkb2VzbiYjMzk7dCBib3RoZXIgd2l0aCB0aGF0IGZvciByYW5kb20gUEhZIGRyaXZlcnMuCgpTbywgaW4gdGhlIGNvbW1vbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwgbXkgaW5pdGlhbCBhc3Nlc3NtZW50IHdvdWxkIGJlIHRoYXQgdGhpcyBjb2RlIHBhdGggaXMgdW5yZWFjaGFibGUuIEkgd291bGQgaGF2ZSByZXR1cm5lZCBgV29ydGhGdXp6aW5nPWZhbHNlYC4KCkhvd2V2ZXIsIGJlZm9yZSBJIG1ha2UgYSBmaW5hbCBkZWNpc2lvbiwgSSYjMzk7bSBnb2luZyB0byB0YWtlIGEgbW9tZW50IGFuZCByZS1hc3Nlc3MuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSBoYXZlbiYjMzk7dCBtaXNzZWQgYW55dGhpbmcuIEp1c3QgdG8gYmUgc3VyZSwgSSB3aWxsIGNoZWNrIGlmIHRoZXJlIGFyZSBhbnkgY3VycmVudCBTeXprYWxsZXIgZGVzY3JpcHRpb25zIGZvciB0aGlzIGRldmljZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMjM6MDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZnNsLGx4MjE2MGEtc2VyZGVzMSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGh5L2ZzbCxseW54LTI4Zy55YW1sPTIwPXByb3BlcnRpZXM6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BoeS9mc2wsbHlueC0yOGcueWFtbC0zMC0gICAgICAtIGl0ZW1zOlxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BoeS9mc2wsbHlueC0yOGcueWFtbDozMTogICAgICAgICAgLSBjb25zdDogZnNsLGx4MjE2MGEtc2VyZGVzMVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BoeS9mc2wsbHlueC0yOGcueWFtbC0zMi0gICAgICAgICAgLSBjb25zdDogZnNsLGx5bngtMjhnXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BoeS9mc2wsbHlueC0yOGcueWFtbD05OD1leGFtcGxlczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGh5L2ZzbCxseW54LTI4Zy55YW1sLTEwNC0gICAgICBzZXJkZXNAMWVhMDAwMCB7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGh5L2ZzbCxseW54LTI4Zy55YW1sOjEwNTogICAgICAgIGNvbXBhdGlibGUgPSBcJiMzNDtmc2wsbHgyMTYwYS1zZXJkZXMxXCYjMzQ7LCBcJiMzNDtmc2wsbHlueC0yOGdcJiMzNDs7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGh5L2ZzbCxseW54LTI4Zy55YW1sLTEwNi0gICAgICAgIHJlZyA9IFx1MDAzYzB4MCAweDFlYTAwMDAgMHgwIDB4MWUzMFx1MDAzZTtcbi0tXG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jPTEyMDI9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbHlueF8yOGdfb2ZfbWF0Y2hfdGFibGVbXSA9IHtcbmRyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmM6MTIwMzpcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDtmc2wsbHgyMTYwYS1zZXJkZXMxXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNmx5bnhfaW5mb19seDIxNjBhX3NlcmRlczEgfSxcbmRyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmMtMTIwNC1cdHsgLmNvbXBhdGlibGUgPSBcJiMzNDtmc2wsbHgyMTYwYS1zZXJkZXMyXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNmx5bnhfaW5mb19seDIxNjBhX3NlcmRlczIgfSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMjM6MDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzEzNQoJCQkJCQkJb3V0cHV0OiAxMDkKCQkJCQkJCXRob3VnaHRzOiAzOTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgV29ydGhpbmVzcyBvZiBGdXp6aW5nIFRoaXMgRHJpdmVyKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpbW1lZGlhdGVseSwgbXkgYnJhaW4gZ29lcyBpbnRvIHNlYXJjaCBtb2RlLCB0cnlpbmcgdG8gc2VlIGlmIEkgY2FuIGxldmVyYWdlIGFueSBvZiBteSBzdGFuZGFyZCB0b29scyB0byBoZWxwIG1lIGRldGVybWluZSBpZiBpdCYjMzk7cyBmdXp6YWJsZS4gSW5pdGlhbGx5LCBteSBmaXJzdCBpbnN0aW5jdCBpcyB0byBzZWUgaWYgSSBjYW4gdXNlIGNvZGVzZWFyY2ggb3IgcmVhZGluZyBhIGZpbGUgdG8gbG9vayBmb3IgcmVsYXRlZCBzeXprYWxsZXIgZGVzY3JpcHRpb25zLCBidXQgdGhlIHByb21wdCAqc3BlY2lmaWNhbGx5KiBmb3JiaWRzIHRoYXQuIEkgYWxzbyBjb25zaWRlcmVkIGxvb2tpbmcgZm9yIG1lbnRpb25zIG9mICYjMzk7c3l6XF8mIzM5OywgYnV0IHF1aWNrbHkgZGlzbWlzc2VkIGl0IGJhc2VkIG9uIHRoZSBjb25zdHJhaW50cyBvZiB0aGUgcHJvdmlkZWQgdG9vbHMuCgpUaGVuIEkgcmVhbGl6ZWQsIGhvbGQgb24sIHRoZXJlIGlzbiYjMzk7dCBldmVuIGEgYHRvb2xSZWFkRGVzY3JpcHRpb25gIHRvb2wgbGlrZSB0aGUgcHJvbXB0IHN1Z2dlc3RzLiBUaGF0JiMzOTtzIGEgYml0IGZydXN0cmF0aW5nISBUaGUgcHJvbXB0IHNhaWQgJiMzNDtVc2UgdGhlIHt7LnRvb2xSZWFkRGVzY3JpcHRpb259fSB0b29sIGluc3RlYWQsJiMzNDsgYnV0LCBpdCYjMzk7cyBub3QgZXZlbiB0aGVyZS4gSSBkb3VibGUtY2hlY2tlZCB0aGUgdG9vbCBsaXN0IGp1c3QgdG8gYmUgc3VyZS4KCkJ1dCBsZXQmIzM5O3MgYmUgcmVhbGlzdGljLCB0aGlzIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgUEhZIGRyaXZlciDigJMgaXQmIzM5O3MgZm9yIGEgRnJlZXNjYWxlIEx5bnggMjhHIFNlckRlcyBQSFkuIFRoYXQgdHlwZSBvZiBoYXJkd2FyZSB1c3VhbGx5IHJlcXVpcmVzIHNwZWNpZmljIHBsYXRmb3JtIGRldmljZXMgZGVmaW5lZCBpbiB0aGUgRGV2aWNlIFRyZWUsIHRoaW5ncyBsaWtlICYjMzQ7ZnNsLGx4MjE2MGEtc2VyZGVzMSYjMzQ7IHRvIGJlIGluc3RhbnRpYXRlZC4gR2l2ZW4gbXkgZXhwZXJpZW5jZSwgSSYjMzk7bSBleHRyZW1lbHkgY29uZmlkZW50IHRoYXQgdGhpcyBjb2RlIHBhdGggaXMgbm90IHJlYWNoYWJsZSBpbiBzdGFuZGFyZCwgZ2VuZXJpYyBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSwgd2hpY2ggaXMgd2hhdCB3ZSB1c2UgZm9yIG91ciBmdXp6aW5nIGVmZm9ydHMuCgpJIGJyaWVmbHkgY29uc2lkZXJlZCBpZiB0aGVyZSBtaWdodCBiZSBzb21lICpnZW5lcmljKiBQSFkgdGVzdGluZyBtb2R1bGUgdGhhdCBjb3VsZCBzb21laG93IHRyaWdnZXIgdGhpcyBjb2RlIHBhdGgsIGJ1dCB0aGF0JiMzOTtzIHVubGlrZWx5LiBQSFkgZHJpdmVycyBhcmUgYWxtb3N0IGFsd2F5cyBwcm9iZWQgYmFzZWQgb24gRGV2aWNlIFRyZWUgbWF0Y2hlcy4gV2l0aG91dCB0aGUgRFQgbm9kZSBkZWZpbmluZyB0aGUgY29ycmVjdCBoYXJkd2FyZSwgdGhlIGRyaXZlciB3b24mIzM5O3QgcHJvYmUsIGFuZCB0aGUgYHBoeV9vcHNgIHdvbiYjMzk7dCBiZSByZWdpc3RlcmVkLCByZW5kZXJpbmcgdGhpcyBjb2RlIHVucmVhY2hhYmxlLgoKVGhlcmVmb3JlLCBnaXZlbiB0aGVzZSBjb25zdHJhaW50cywgSSYjMzk7bSBnb2luZyB0byBzZXQgV29ydGhGdXp6aW5nPWZhbHNlLiBUaGlzIGlzIGEgbm9uLWZ1enphYmxlIHRhcmdldC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMjM6MDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBIWSBkcml2ZXIgKEZyZWVzY2FsZSBMeW54IDI4RyBTZXJEZXMgUEhZKSB3aGljaCByZXF1aXJlcyBzcGVjaWZpYyBwbGF0Zm9ybSBkZXZpY2VzIChlLmcuLCBcJiMzNDtmc2wsbHgyMTYwYS1zZXJkZXMxXCYjMzQ7KSB0byBiZSBpbnN0YW50aWF0ZWQgdmlhIERldmljZSBUcmVlLiBUaGlzIGNvZGUgcGF0aCBpcyBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIGdlbmVyaWMgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UgdXNlZCBmb3IgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGEgaGFyZHdhcmUtc3BlY2lmaWMgUEhZIGRyaXZlciAoRnJlZXNjYWxlIEx5bnggMjhHIFNlckRlcyBQSFkpIHdoaWNoIHJlcXVpcmVzIHNwZWNpZmljIHBsYXRmb3JtIGRldmljZXMgKGUuZy4sIFwmIzM0O2ZzbCxseDIxNjBhLXNlcmRlczFcJiMzNDspIHRvIGJlIGluc3RhbnRpYXRlZCB2aWEgRGV2aWNlIFRyZWUuIFRoaXMgY29kZSBwYXRoIGlzIGltcG9zc2libGUgdG8gcmVhY2ggaW4gZ2VuZXJpYyB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSB1c2VkIGZvciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDIzOjA2OjQzLjQyOTI0NzM3OFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQyNzMzNTAwODgzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBIWSBkcml2ZXIgKEZyZWVzY2FsZSBMeW54IDI4RyBTZXJEZXMgUEhZKSB3aGljaCByZXF1aXJlcyBzcGVjaWZpYyBwbGF0Zm9ybSBkZXZpY2VzIChlLmcuLCBcXFwiZnNsLGx4MjE2MGEtc2VyZGVzMVxcXCIpIHRvIGJlIGluc3RhbnRpYXRlZCB2aWEgRGV2aWNlIFRyZWUuIFRoaXMgY29kZSBwYXRoIGlzIGltcG9zc2libGUgdG8gcmVhY2ggaW4gZ2VuZXJpYyB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSB1c2VkIGZvciBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMjM6MDY6NDMuNDI5MjU3Mjc4WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NDA4Mzc4ODIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA0MmIyYWFhYjZiNDE5ZDBlNzFiMjYwMzQ2N2E1MWQ5YjlmOGU3OTlhXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBXZWQgSnVsIDIyIDIzOjA2OjQxIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmMgYi9kcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jXFxuaW5kZXggMzhhZmNkMDgxYTJhNzUuLjFmZTQwNmFkYzgzY2IzIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmNcXG4rKysgYi9kcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jXFxuQEAgLTEwMDMsNyArMTAwMyw5IEBAIHN0YXRpYyBpbnQgbHlueF8yOGdfc2V0X21vZGUoc3RydWN0IHBoeSAqcGh5LCBlbnVtIHBoeV9tb2RlIG1vZGUsIGludCBzdWJtb2RlKVxcbiBcXG4gXFx0bHlueF8yOGdfbGFuZV9jaGFuZ2VfcHJvdG9fY29uZihsYW5lLCBsYW5lX21vZGUpO1xcbiBcXHRseW54XzI4Z19sYW5lX3JlbWFwX3BsbChsYW5lLCBsYW5lX21vZGUpO1xcbi1cXHRXQVJOX09OKGx5bnhfMjhnX2xhbmVfZW5hYmxlX3BjdnQobGFuZSwgbGFuZV9tb2RlKSk7XFxuK1xcdGVyciA9IGx5bnhfMjhnX2xhbmVfZW5hYmxlX3BjdnQobGFuZSwgbGFuZV9tb2RlKTtcXG4rXFx0aWYgKGVycilcXG4rXFx0XFx0Z290byBvdXQ7XFxuIFxcbiBcXHRsYW5lLVxcdTAwM2Vtb2RlID0gbGFuZV9tb2RlO1xcbiBcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMjM6MDY6NDMuOTcwNjgzNzNaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo0MjE5MjA1OTE3MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBQSFkgZHJpdmVyIChGcmVlc2NhbGUgTHlueCAyOEcgU2VyRGVzIFBIWSkgd2hpY2ggcmVxdWlyZXMgc3BlY2lmaWMgcGxhdGZvcm0gZGV2aWNlcyAoZS5nLiwgXFxcImZzbCxseDIxNjBhLXNlcmRlczFcXFwiKSB0byBiZSBpbnN0YW50aWF0ZWQgdmlhIERldmljZSBUcmVlLiBUaGlzIGNvZGUgcGF0aCBpcyBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIGdlbmVyaWMgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UgdXNlZCBmb3IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNDJiMmFhYWI2YjQxOWQwZTcxYjI2MDM0NjdhNTFkOWI5ZjhlNzk5YVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBXZWQgSnVsIDIyIDIzOjA2OjQxIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuYyBiL2RyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmNcbmluZGV4IDM4YWZjZDA4MWEyYTc1Li4xZmU0MDZhZGM4M2NiMyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmNcbisrKyBiL2RyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmNcbkBAIC0xMDAzLDcgKzEwMDMsOSBAQCBzdGF0aWMgaW50IGx5bnhfMjhnX3NldF9tb2RlKHN0cnVjdCBwaHkgKnBoeSwgZW51bSBwaHlfbW9kZSBtb2RlLCBpbnQgc3VibW9kZSlcbiBcbiBcdGx5bnhfMjhnX2xhbmVfY2hhbmdlX3Byb3RvX2NvbmYobGFuZSwgbGFuZV9tb2RlKTtcbiBcdGx5bnhfMjhnX2xhbmVfcmVtYXBfcGxsKGxhbmUsIGxhbmVfbW9kZSk7XG4tXHRXQVJOX09OKGx5bnhfMjhnX2xhbmVfZW5hYmxlX3BjdnQobGFuZSwgbGFuZV9tb2RlKSk7XG4rXHRlcnIgPSBseW54XzI4Z19sYW5lX2VuYWJsZV9wY3Z0KGxhbmUsIGxhbmVfbW9kZSk7XG4rXHRpZiAoZXJyKVxuK1x0XHRnb3RvIG91dDtcbiBcbiBcdGxhbmUtXHUwMDNlbW9kZSA9IGxhbmVfbW9kZTtcbiBcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDIzOjA2OjQzLjk3MDY4NTU2WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDgyNTM4MDgyNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBQSFkgRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgYGRyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmNgLiBJdCdzIGEgRnJlZXNjYWxlIEx5bnggMjhHIFBIWSBkcml2ZXIuIFRoZSBrZXkgY2hhbmdlIGlzIHRoYXQgYFdBUk5fT05gIGNhbGwgaW4gdGhlIG9yaWdpbmFsIGNvZGUgaGFzIGJlZW4gcmVwbGFjZWQgd2l0aCBwcm9wZXIgZXJyb3IgaGFuZGxpbmcsIHNvIG5vdyB3ZSBoYXZlIGBseW54XzI4Z19sYW5lX2VuYWJsZV9wY3Z0YCByZXR1cm5pbmcgYW4gZXJyb3IgY29kZSBhbmQgdGhhdCByZXN1bHQgY2hlY2tlZC4gVGhpcyBpcyBkZWZpbml0ZWx5IGEgZnVuY3Rpb25hbCBjaGFuZ2Ug4oCTIGEgc3RlcCB1cCBpbiByb2J1c3RuZXNzLlxuXG5UaGUgcmVhbCBxdWVzdGlvbiBoZXJlLCBhcyB3aXRoIGFueSBoYXJkd2FyZSBkcml2ZXIgY2hhbmdlLCBpcyByZWFjaGFiaWxpdHksIHBhcnRpY3VsYXJseSBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LiBDYW4gd2UgZXZlbiB0cmlnZ2VyIHRoaXMgY29kZSBwYXRoIGluIHNvbWV0aGluZyBsaWtlIFFFTVU/IFBIWSBkcml2ZXJzIGFyZSBub3RvcmlvdXNseSBoYXJkd2FyZS1zcGVjaWZpYywgc28gSSBoYXZlIHRvIGNvbnNpZGVyIHdoZXRoZXIgdGhpcyBmdW5jdGlvbmFsaXR5IGlzIGRlcGVuZGVudCBvbiB0aGUgYWN0dWFsIEx5bnggMjhHIGhhcmR3YXJlIGJlaW5nIHByZXNlbnQgb3Igbm90LiBNeSBpbnR1aXRpb24gaXMgdGhhdCBpdCBtaWdodCBiZSwgYnV0IGxldCdzIHF1aWNrbHkgcmV2aWV3IGhvdyB0aGlzIGRyaXZlciBnZXRzIHByb2JlZCB3aXRoaW4gdGhlIGtlcm5lbC4gSSdsbCBuZWVkIHRvIGNoZWNrIHRoZSBwcm9iZSBmdW5jdGlvbiBpbiBgZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuY2AgdG8gc2VlIGlmIHRoZXJlJ3MgYW55IG9idmlvdXMgd2F5IHRoaXMgY29kZSBtaWdodCBiZSBleGVjdXRlZCBkdXJpbmcgYSB2aXJ0dWFsaXplZCBib290LiBJdCB3b3VsZCBiZSBncmVhdCBpZiB0aGlzIGNvdWxkIGJlIHRlc3RlZCB3aXRob3V0IHNwZWNpYWxpemVkIGhhcmR3YXJlLCBzbyBJJ2xsIGJlIGxvb2tpbmcgZm9yIHNvbWV0aGluZyB0aGF0IGluZGljYXRlcyB0aGF0IGl0IGNhbiwgZm9yIGV4YW1wbGUsIGJlIHBhc3NlZCBhIGNlcnRhaW4gaGFyZHdhcmUgY29uZmlnIHRoYXQgUUVNVSBtaWdodCBlbXVsYXRlLiBJIHdhbnQgdG8gc2VlIGlmIHRoaXMgY2hhbmdlIGFmZmVjdHMgc29tZXRoaW5nIGNyaXRpY2FsIG9yIGlzIHB1cmVseSBjb3NtZXRpYy5cblxuXG4iLCJJbnB1dFRva2VucyI6MTk5MywiT3V0cHV0VG9rZW5zIjo0OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIwNSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDIzOjA2OjQ4Ljc5NjA2OTgxN1oiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4ODA1MjczNCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJseW54XzI4Z19wcm9iZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmM9MTE3Nj1zdGF0aWMgY29uc3Qgc3RydWN0IGx5bnhfaW5mbyBseW54X2luZm9fbHgyMTYyYV9zZXJkZXMyID0ge1xcbi0tXFxuZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuYy0xMTg1LVxcbmRyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmM6MTE4NjpzdGF0aWMgaW50IGx5bnhfMjhnX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuYy0xMTg3LXtcXG4tLVxcbmRyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmM9MTIxMz1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBseW54XzI4Z19kcml2ZXIgPSB7XFxuZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuYzoxMjE0OlxcdC5wcm9iZSA9IGx5bnhfMjhnX3Byb2JlLFxcbmRyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmMtMTIxNS1cXHQucmVtb3ZlID0gbHlueF9yZW1vdmUsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDIzOjA2OjQ4Ljg4NDEyNzE3WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mjg1NjMxMzUwNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipEZXZpY2UgVHJlZSBNYXRjaGluZyAtIEluaXRpYWwgQXNzZXNzbWVudCoqXG5cbkFscmlnaHQsIGxldCdzIGRpdmUgc3RyYWlnaHQgaW4uIE15IGZpcnN0IHRob3VnaHQgaXMgdG8gaW1tZWRpYXRlbHkgZXhhbWluZSB0aGF0IGRldmljZSB0cmVlIG1hdGNoIHRhYmxlLiBJdCdzIHRoZSBjcml0aWNhbCBzdGFydGluZyBwb2ludCBmb3IgYW55IGRlYnVnZ2luZyBvciB1bmRlcnN0YW5kaW5nIG9mIGhhcmR3YXJlIGluaXRpYWxpemF0aW9uLCBhbmQgSSBuZWVkIHRvIHNlZSB3aGF0IHRoZSBzeXN0ZW0gKnRoaW5rcyogaXQncyBkZWFsaW5nIHdpdGguIEkgd2FudCB0byBzZWUgd2hhdCBwcm9wZXJ0aWVzIGFyZSB1c2VkIGluIHRoZSBtYXRjaGluZyBwcm9jZXNzIGFuZCB0aGUgc3BlY2lmaWMgc3RyaW5ncyBhc3NvY2lhdGVkIHdpdGggYSBnaXZlbiBub2RlLiBBcmUgdGhlcmUgb2J2aW91cyB0eXBvcywgaW5jb3JyZWN0IGRyaXZlciBuYW1lcywgb3IgbWlzbWF0Y2hlZCBjb21wYXRpYmxlIHN0cmluZ3MgdGhhdCBhcmUgaW1tZWRpYXRlbHkgYXBwYXJlbnQ/IEknbSBsb29raW5nIGZvciB0aGUgc2ltcGxlLCBsb3ctaGFuZ2luZyBmcnVpdDogY29tbW9uIGNvbmZpZ3VyYXRpb24gZXJyb3JzIHRoYXQgY2FuIGJlIHF1aWNrbHkgaWRlbnRpZmllZCBhbmQgY29ycmVjdGVkLiBLbm93aW5nIGhvdyBhIGdpdmVuIGhhcmR3YXJlIGJsb2NrIGlzIGRlc2NyaWJlZCBpbiB0aGUgRFQgaXMgdGhlIGZvdW5kYXRpb24gZm9yIGZ1cnRoZXIgaW52ZXN0aWdhdGlvbi4gVGhpcyB2aWV3IHdpbGwgZGljdGF0ZSB3aGF0IGNvbWVzIG5leHQhXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI4NTQsIk91dHB1dFRva2VucyI6NTAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQyMzowNjo1MS43NDA0NDMzODdaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTMzMTI4MDgwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImx5bnhfMjhnX29mX21hdGNoXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuYz0xMTg2PXN0YXRpYyBpbnQgbHlueF8yOGdfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmMtMTIwMS1cXG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jOjEyMDI6c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbHlueF8yOGdfb2ZfbWF0Y2hfdGFibGVbXSA9IHtcXG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jLTEyMDMtXFx0eyAuY29tcGF0aWJsZSA9IFxcXCJmc2wsbHgyMTYwYS1zZXJkZXMxXFxcIiwgLmRhdGEgPSBcXHUwMDI2bHlueF9pbmZvX2x4MjE2MGFfc2VyZGVzMSB9LFxcbi0tXFxuZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuYy0xMjEwLX07XFxuZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuYzoxMjExOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGx5bnhfMjhnX29mX21hdGNoX3RhYmxlKTtcXG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jLTEyMTItXFxuZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuYz0xMjEzPXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGx5bnhfMjhnX2RyaXZlciA9IHtcXG4tLVxcbmRyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmMtMTIxNy1cXHRcXHQubmFtZSA9IFxcXCJseW54LTI4Z1xcXCIsXFxuZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuYzoxMjE4OlxcdFxcdC5vZl9tYXRjaF90YWJsZSA9IGx5bnhfMjhnX29mX21hdGNoX3RhYmxlLFxcbmRyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmMtMTIxOS1cXHR9LFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQyMzowNjo1MS44NzM1Nzc0MDhaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2Mjc2MTEyMDk0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgdGhlIEZyZWVzY2FsZSBMWDIxNjBBIFNlckRlcyBEcml2ZXIgaW4gUUVNVSoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGxhdGZvcm0gZHJpdmVyIGZvciB0aGUgRnJlZXNjYWxlIExYMjE2MEEgU2VyRGVzLiBJdCBuZWVkcyBhIHNwZWNpZmljIGRldmljZSB0cmVlIG5vZGUsIGxpa2UgYGZzbCxseDIxNjBhLXNlcmRlczFgLCB0byBiZSBwcm9wZXJseSBpbnN0YW50aWF0ZWQuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBjYW4gSSBldmVuICpmdXp6KiB0aGlzIHRoaW5nIHdpdGhpbiBhIGdlbmVyaWMgUUVNVSBlbnZpcm9ubWVudD8gSXQncyBhIHBsYXRmb3JtIGRldmljZSwgd2hpY2ggbWFrZXMgaXQgdHJpY2tpZXIuIE5vcm1hbGx5LCBJJ2QgbGVhbiB0b3dhcmRzIGRldmljZSB0cmVlIG92ZXJsYXlzIG9yIG1heWJlIFN5emthbGxlcidzIHBzZXVkby1kZXZpY2VzIGlmIHRoZXJlJ3MgYW55IGF2YWlsYWJsZSBzdXBwb3J0LCBidXQgUEhZIGRyaXZlcnMsIGVzcGVjaWFsbHkgaGFyZHdhcmUtc3BlY2lmaWMgb25lcyBsaWtlIHRoaXMsIGFyZSBub3RvcmlvdXNseSBoYXJkIHRvIHJlYWNoIHVubGVzcyB5b3Ugc3BlY2lmaWNhbGx5IHRhcmdldCB0aGVtLlxuXG5JJ20gdGhpbmtpbmcsIGFyZSB0aGVyZSBhbnkgc3lzZnMgb3IgbmV0bGluayBpbnRlcmZhY2VzIEkgY291bGQgZXhwbG9pdD8gUGxhdGZvcm0gZGV2aWNlcyBhcmVuJ3QgdXN1YWxseSBleHBvc2VkIHRoYXQgd2F5LCB1bmxlc3MgdGhlcmUncyBzb21lIGRldmljZSB0cmVlIG92ZXJsYXkgaW5qZWN0aW9uIHRyaWNrIEkgY2FuIHVzZSwgd2hpY2ggU3l6a2FsbGVyICpkb2VzKiBvZmZlciB0byBzb21lIGV4dGVudC4gSG1tLCB3YWl0LCBkb2VzIFN5emthbGxlciBoYXZlICpkaXJlY3QqIGluamVjdGlvbiB2aWEgYHN5el9kZXZsaW5rYCBvciBzaW1pbGFyPyBObywgaXQncyBtb3JlIGFib3V0IGluamVjdGluZyBEVCBvdmVybGF5cyBvciB1c2luZyBgc3l6X21vdW50X2ltYWdlYCwgcmlnaHQ/IFRoYXQncyB1c2VmdWwsIGJ1dCBQSFkgZHJpdmVycyB0ZW5kIHRvIGJlIGRlZXBseSBoYXJkd2FyZS1zcGVjaWZpYywgd2hpY2ggbWFrZXMgdGhlIHdob2xlIHRoaW5nIGV2ZW4gbW9yZSBjaGFsbGVuZ2luZy5cblxuT2theSwgc28gdGhlIHJlYWwgcXVlc3Rpb24gaXM6IGlzIHRoZXJlIGFueSB3YXkgSSBjYW4gdHJpZ2dlciB0aGlzIGZyb20gdXNlcnNwYWNlICp3aXRob3V0KiB0aGUgaGFyZHdhcmU/IFRoZSBmdW5jdGlvbiB0aGF0IHdhcyBtb2RpZmllZCBpbiB0aGlzIGRyaXZlciBpcyBgbHlueF8yOGdfc2V0X21vZGVgLiBUaW1lIHRvIHNlZSBpZiBJIGNhbiBmaW5kIHNvbWUgZW50cnkgcG9pbnRzIVxuXG5cbiIsIklucHV0VG9rZW5zIjozNTU5LCJPdXRwdXRUb2tlbnMiOjUwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjI3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDIzOjA2OjU4LjE0OTY5MzU2MloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjAwOTQxNzIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibHlueF8yOGdfc2V0X21vZGVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jPTk3MT1zdGF0aWMgaW50IGx5bnhfMjhnX3ZhbGlkYXRlKHN0cnVjdCBwaHkgKnBoeSwgZW51bSBwaHlfbW9kZSBtb2RlLCBpbnQgc3VibW9kZSxcXG4tLVxcbmRyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmMtOTc2LVxcbmRyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmM6OTc3OnN0YXRpYyBpbnQgbHlueF8yOGdfc2V0X21vZGUoc3RydWN0IHBoeSAqcGh5LCBlbnVtIHBoeV9tb2RlIG1vZGUsIGludCBzdWJtb2RlKVxcbmRyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmMtOTc4LXtcXG4tLVxcbmRyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmM9MTA1Mj1zdGF0aWMgY29uc3Qgc3RydWN0IHBoeV9vcHMgbHlueF8yOGdfb3BzID0ge1xcbi0tXFxuZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuYy0xMDU2LVxcdC5wb3dlcl9vZmZcXHQ9IGx5bnhfMjhnX3Bvd2VyX29mZixcXG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jOjEwNTc6XFx0LnNldF9tb2RlXFx0PSBseW54XzI4Z19zZXRfbW9kZSxcXG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jLTEwNTgtXFx0LnZhbGlkYXRlXFx0PSBseW54XzI4Z192YWxpZGF0ZSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMjM6MDY6NTguMjY5NzkxOTQ0WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDk1NjI4ODk5NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBGcmVlc2NhbGUgTHlueCAyOEcgUEhZIENhbGxiYWNrIGluIGEgVmlydHVhbGl6ZWQgQ29udGV4dCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IGEgYHBoeV9vcHNgIGNhbGxiYWNrIGhlcmUuIFRoZSBpbW1lZGlhdGUgcXVlc3Rpb24gaXMsIGNhbiB3ZSBzb21laG93IGNyZWF0ZSBhIGdlbmVyaWMgUEhZIGFuZCBjYWxsIGl0cyBgc2V0X21vZGVgIGZ1bmN0aW9uPyBJbiB0aGUgcmVhbCB3b3JsZCwgdGhlIFBIWSBmcmFtZXdvcmsgdXN1YWxseSBoYW5kbGVzIFBIWSBjcmVhdGlvbiB3aGVuIGEgcGxhdGZvcm0gZGV2aWNlIGdldHMgcHJvYmVkLiBUaGUgcHJvYmxlbSBpcywgaWYgdGhlIHBsYXRmb3JtIGRldmljZSBpc24ndCBwcmVzZW50LCB0aGUgUEhZIHdvbid0IGJlIGluc3RhbnRpYXRlZC4gQW5kIHRoaXMgaXMgYSBGcmVlc2NhbGUgTHlueCAyOEcgUEhZLCB3aGljaCBzY3JlYW1zIEZyZWVzY2FsZSBTb0Mgc3BlY2lmaWNpdHkuXG5cblVubGVzcyBzeXprYWxsZXIgaXMgcnVubmluZyBvbiBhY3R1YWwgRnJlZXNjYWxlIGhhcmR3YXJlLCBvciBRRU1VIGlzIHNldCB1cCB0byBlbXVsYXRlICp0aGlzIGV4YWN0KiBTb0Mgd2l0aCB0aGUgZHJpdmVyIGVuYWJsZWQsIHdlJ3JlIHByb2JhYmx5IG5vdCBnb2luZyB0byBiZSBhYmxlIHRvIGhpdCBpdC4gV2FpdCBhIG1pbnV0ZSwgc3l6a2FsbGVyICpkb2VzKiBoYXZlIGEgbWVjaGFuaXNtIGZvciB0ZXN0aW5nIHNvbWUgcGxhdGZvcm0gZHJpdmVycyBldmVuIGlmIHRoZWlyIGRldmljZXMgYXJlbid0IHByZXNlbnQuIFRoYXQncyBhIHBvc3NpYmlsaXR5LiBCdXQsIGhvbmVzdGx5LCBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXJzIGxpa2UgdGhpcyDigJMgZXNwZWNpYWxseSBQSFlzIOKAkyBhcmUgdXN1YWxseSBjb21wbGV0ZWx5IHVucmVhY2hhYmxlIGluIGdlbmVyaWMgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBUaGluayBHQ0UsIG9yIHN0YW5kYXJkIFFFTVUgeDg2XzY0L2FybTY0IHdpdGhvdXQgc3BlY2lmaWMgbWFjaGluZSBtb2RlbHMgY29uZmlndXJlZC4gSSB0aGluayB0aGUgYmVzdCBwbGFjZSB0byBzdGFydCBpcyBqdXN0IHRvIHNlZSBpZiB0aGlzIGRyaXZlciBpcyBldmVuIGVuYWJsZWQgaW4gZ2VuZXJpYyBrZXJuZWwgY29uZmlncy4gVGhhdCdzIHRoZSBmaXJzdCBodXJkbGUsIGF0IGxlYXN0LlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NTMyLCJPdXRwdXRUb2tlbnMiOjMxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjA0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDIzOjA3OjAzLjIyNjA4MzYzWiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMzg1ODg5NDUwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIlBIWV9GU0xfTFlOWF8yOEdcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvcGh5L2ZyZWVzY2FsZS9LY29uZmlnPTU3PWNvbmZpZyBQSFlfRlNMX0xZTlhfMTBHXFxuLS1cXG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvS2NvbmZpZy02Ni1cXG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvS2NvbmZpZzo2Nzpjb25maWcgUEhZX0ZTTF9MWU5YXzI4R1xcbmRyaXZlcnMvcGh5L2ZyZWVzY2FsZS9LY29uZmlnLTY4LVxcdHRyaXN0YXRlIFxcXCJGcmVlc2NhbGUgTGF5ZXJzY2FwZSBMeW54IDI4RyBTZXJEZXMgUEhZIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvTWFrZWZpbGU9OD1vYmotJChDT05GSUdfUEhZX0ZTTF9MWU5YXzEwRylcXHRcXHQrPSBwaHktZnNsLWx5bngtMTBnLm9cXG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvTWFrZWZpbGU6OTpvYmotJChDT05GSUdfUEhZX0ZTTF9MWU5YXzI4RylcXHRcXHQrPSBwaHktZnNsLWx5bngtMjhnLm9cXG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvTWFrZWZpbGUtMTAtb2JqLSQoQ09ORklHX1BIWV9GU0xfU0FNU1VOR19IRE1JX1BIWSlcXHQrPSBwaHktZnNsLXNhbXN1bmctaGRtaS5vXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDIzOjA3OjA2LjYxMTk4MTM1WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM2NzczMDU5MTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIHN1bW1hcml6ZWQgYXMgeW91IHJlcXVlc3RlZDpcblxuKipLY29uZmlnIERpdmUgZm9yIFBIWV9GU0xfTFlOWF8yOEcqKlxuXG5Pa2F5LCBmaXJzdCB0aGluZ3MgZmlyc3QsIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgcmVsYXRlZCB0byB0aGUgYFBIWV9GU0xfTFlOWF8yOEdgIHNldHRpbmcuIE15IGluaXRpYWwgaW5zdGluY3QgaXMgdG8gZGlnIGludG8gdGhlIGBLY29uZmlnYCBmaWxlcy4gSSdtIGFzc3VtaW5nIGl0J3MgcHJvYmFibHkgd2l0aGluIHRoZSBgZHJpdmVycy9gIG9yIGBwaHkvYCBkaXJlY3Rvcmllcywgb3IgcG9zc2libHkgdW5kZXIgYSBzcGVjaWZpYyBwbGF0Zm9ybSBkaXJlY3RvcnkgaWYgaXQncyBib2FyZC1zcGVjaWZpYy4gSSdsbCBuZWVkIHRvIHVzZSBhIHNlYXJjaCBzdHJhdGVneSwgc3RhcnRpbmcgd2l0aCBhIGJyb2FkIHNlYXJjaCBmb3IgdGhlIHN5bWJvbCBpdHNlbGYgd2l0aGluIHRoZSBrZXJuZWwgc291cmNlLiBUaGUgZ29hbCBoZXJlIGlzbid0IGp1c3QgdG8gKmZpbmQqIHRoZSBkZWZpbml0aW9uLCBidXQgYWxzbyB0byB1bmRlcnN0YW5kIHRoZSBkZXBlbmRlbmNpZXMg4oCTIHdoYXQgb3RoZXIgb3B0aW9ucyBuZWVkIHRvIGJlIGVuYWJsZWQgZm9yIHRoaXMgUEhZIHRvIGV2ZW4gYmUgY29uc2lkZXJlZD8gSSB3YW50IHRvIHNlZSB0aGUgY29uZGl0aW9ucy4gSSdtIGxvb2tpbmcgZm9yIHRoZSBgZGVwZW5kcyBvbmAgY2xhdXNlcywgYW55IGBzZWxlY3RgIHN0YXRlbWVudHMsIGFuZCB0aGUgYXNzb2NpYXRlZCBoZWxwIHRleHQuIFRoaXMgd2lsbCB0ZWxsIG1lIHdoYXQgc3VwcG9ydGluZyBkcml2ZXJzIG9yIGZlYXR1cmVzIGFyZSBuZWVkZWQuIEknbGwgYWxzbyBiZSB0cnlpbmcgdG8gY2hlY2sgaWYgdGhlIHN5bWJvbCBpcyB1c2VyIHNlbGVjdGFibGUgb3Igb25seSBhIHJlc3VsdCBvZiBvdGhlciBzZXR0aW5ncy4gSSBuZWVkIHRvIG5vdGUgYW55IGRlZmF1bHQgc2V0dGluZ3MgdGhhdCBtaWdodCBpbmZsdWVuY2UgdGhlIGVuYWJsZW1lbnQgb2YgdGhpcyBzcGVjaWZpYyBQSFkuIEZyb20gdGhpcywgSSdsbCBmb3JtdWxhdGUgYSBjb21wbGV0ZSBwaWN0dXJlIG9mIHRoaXMgUEhZJ3MgY29uZmlndXJhdGlvbiBvcHRpb25zIGFuZCB0aGVpciBpbXBsaWNhdGlvbnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUyOTQsIk91dHB1dFRva2VucyI6MzYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQyMzowNzoxMC4yODkyODk5NThaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Nzc3MDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9waHkvZnJlZXNjYWxlL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogNjAsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgNjA6XFx0XFx0ZGVwZW5kcyBvbiBBUkNIX0xBWUVSU0NBUEUgfHwgQ09NUElMRV9URVNUXFxuICA2MTpcXHRcXHRzZWxlY3QgR0VORVJJQ19QSFlcXG4gIDYyOlxcdFxcdHNlbGVjdCBQSFlfRlNMX0xZTlhfQ09SRVxcbiAgNjM6XFx0XFx0aGVscFxcbiAgNjQ6XFx0XFx0ICBFbmFibGUgdGhpcyB0byBhZGQgc3VwcG9ydCBmb3IgdGhlIEx5bnggMTBHIFNlckRlcyBQSFkgYXMgZm91bmQgb25cXG4gIDY1OlxcdFxcdCAgTlhQJ3MgTGF5ZXJzY2FwZSBwbGF0Zm9ybSBzdWNoIGFzIExTMTA4OEEgb3IgTFMxMDI4QS5cXG4gIDY2OlxcdFxcbiAgNjc6XFx0Y29uZmlnIFBIWV9GU0xfTFlOWF8yOEdcXG4gIDY4OlxcdFxcdHRyaXN0YXRlIFxcXCJGcmVlc2NhbGUgTGF5ZXJzY2FwZSBMeW54IDI4RyBTZXJEZXMgUEhZIHN1cHBvcnRcXFwiXFxuICA2OTpcXHRcXHRkZXBlbmRzIG9uIE9GXFxuICA3MDpcXHRcXHRkZXBlbmRzIG9uIEFSQ0hfTEFZRVJTQ0FQRSB8fCBDT01QSUxFX1RFU1RcXG4gIDcxOlxcdFxcdHNlbGVjdCBHRU5FUklDX1BIWVxcbiAgNzI6XFx0XFx0c2VsZWN0IFBIWV9GU0xfTFlOWF9DT1JFXFxuICA3MzpcXHRcXHRoZWxwXFxuICA3NDpcXHRcXHQgIEVuYWJsZSB0aGlzIHRvIGFkZCBzdXBwb3J0IGZvciB0aGUgTHlueCBTZXJEZXMgMjhHIFBIWSBhc1xcbiAgNzU6XFx0XFx0ICBmb3VuZCBvbiBOWFAncyBMYXllcnNjYXBlIHBsYXRmb3JtcyBzdWNoIGFzIExYMjE2MEEuXFxuICA3NjpcXHRcXHQgIFVzZWQgdG8gY2hhbmdlIHRoZSBwcm90b2NvbCBydW5uaW5nIG9uIFNlckRlcyBsYW5lcyBhdCBydW50aW1lLlxcbiAgNzc6XFx0XFx0ICBPbmx5IHVzZWZ1bCBmb3IgYSByZXN0cmljdGVkIHNldCBvZiBFdGhlcm5ldCBwcm90b2NvbHMuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDIzOjA3OjEwLjI4OTM3MTE1OFoiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1ODU0Njg2NzQ0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKldvcnRoRnV6emluZyBEZWNpc2lvbioqXG5cbk9rYXksIHNvIEknbSBhc3Nlc3Npbmcgd2hldGhlciB0aGlzIHBhcnRpY3VsYXIgcGllY2Ugb2YgY29kZSBpcyBldmVuICpyZWFjaGFibGUqIGJ5IGZ1enppbmcuIEl0J3MgdGllZCB0byBgQVJDSF9MQVlFUlNDQVBFYCBvciBgQ09NUElMRV9URVNUYCwgYnV0IHRoYXQncyBhIGJpdCBvZiBhIHJlZCBoZXJyaW5nLiBFdmVuIGlmIGl0J3MgY29tcGlsZWQgaW4sIHdoaWNoIGlzIHBvc3NpYmxlIGV2ZW4gd2l0aG91dCBgQVJDSF9MQVlFUlNDQVBFYCwgdGhlIGRyaXZlciBpdHNlbGYgZGVtYW5kcyBhIHBsYXRmb3JtIGRldmljZS4gU3BlY2lmaWNhbGx5LCBvbmUgd2l0aCB0aGUgYFwiZnNsLGx4MjE2MGEtc2VyZGVzMVwiYCBjb21wYXRpYmxlIHN0cmluZy4gVGhhdCdzIHRoZSByZWFsIGh1cmRsZS5cblxuTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCBjYW4gU3l6a2FsbGVyIGluamVjdCB0aGF0PyBXZWxsLCBub3QgZGlyZWN0bHkuIEkgaW1tZWRpYXRlbHkgZGlzbWlzcyBgc3l6X2RldmxpbmtgIGFuZCBzaW1pbGFyOyBpdCBkb2Vzbid0IGhhdmUgYSBnZW5lcmljIG1lY2hhbmlzbSB0byBjcmVhdGUgKmFyYml0cmFyeSogcGxhdGZvcm0gZGV2aWNlcy4gVGhlIGBzeXpfZ2VuZXRsaW5rYCBjYWxsIHdvbid0IGhlbHAgaGVyZSwgaXQncyBmb3IgbmV0bGluayBzdHVmZi4gSG1tLCB3aGF0IGFib3V0IERUIG92ZXJsYXlzPyBDb3VsZCBiZS4uLiBpZiB0aGUga2VybmVsIGlzIGNvbmZpZ3VyZWQgd2l0aCBgQ09ORklHX09GX09WRVJMQVlgICphbmQqIFN5emthbGxlciBoYXMgYSBkZXNjcmlwdGlvbiBmb3IgKnRoaXMgc3BlY2lmaWMqIFBIWSBkcml2ZXIuIFR5cGljYWxseSwgU3l6a2FsbGVyIGRvZXNuJ3QgYm90aGVyIHdpdGggdGhhdCBmb3IgcmFuZG9tIFBIWSBkcml2ZXJzLlxuXG5TbywgaW4gdGhlIGNvbW1vbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwgbXkgaW5pdGlhbCBhc3Nlc3NtZW50IHdvdWxkIGJlIHRoYXQgdGhpcyBjb2RlIHBhdGggaXMgdW5yZWFjaGFibGUuIEkgd291bGQgaGF2ZSByZXR1cm5lZCBgV29ydGhGdXp6aW5nPWZhbHNlYC5cblxuSG93ZXZlciwgYmVmb3JlIEkgbWFrZSBhIGZpbmFsIGRlY2lzaW9uLCBJJ20gZ29pbmcgdG8gdGFrZSBhIG1vbWVudCBhbmQgcmUtYXNzZXNzLiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgaGF2ZW4ndCBtaXNzZWQgYW55dGhpbmcuIEp1c3QgdG8gYmUgc3VyZSwgSSB3aWxsIGNoZWNrIGlmIHRoZXJlIGFyZSBhbnkgY3VycmVudCBTeXprYWxsZXIgZGVzY3JpcHRpb25zIGZvciB0aGlzIGRldmljZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NTk0MiwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI4NywiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDIzOjA3OjE2LjE0NDA2MDgxMloiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjY0NzU3OTEyMiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJmc2wsbHgyMTYwYS1zZXJkZXMxXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGh5L2ZzbCxseW54LTI4Zy55YW1sPTIwPXByb3BlcnRpZXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGh5L2ZzbCxseW54LTI4Zy55YW1sLTMwLSAgICAgIC0gaXRlbXM6XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BoeS9mc2wsbHlueC0yOGcueWFtbDozMTogICAgICAgICAgLSBjb25zdDogZnNsLGx4MjE2MGEtc2VyZGVzMVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9waHkvZnNsLGx5bngtMjhnLnlhbWwtMzItICAgICAgICAgIC0gY29uc3Q6IGZzbCxseW54LTI4Z1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BoeS9mc2wsbHlueC0yOGcueWFtbD05OD1leGFtcGxlczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9waHkvZnNsLGx5bngtMjhnLnlhbWwtMTA0LSAgICAgIHNlcmRlc0AxZWEwMDAwIHtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGh5L2ZzbCxseW54LTI4Zy55YW1sOjEwNTogICAgICAgIGNvbXBhdGlibGUgPSBcXFwiZnNsLGx4MjE2MGEtc2VyZGVzMVxcXCIsIFxcXCJmc2wsbHlueC0yOGdcXFwiO1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9waHkvZnNsLGx5bngtMjhnLnlhbWwtMTA2LSAgICAgICAgcmVnID0gXFx1MDAzYzB4MCAweDFlYTAwMDAgMHgwIDB4MWUzMFxcdTAwM2U7XFxuLS1cXG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jPTEyMDI9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbHlueF8yOGdfb2ZfbWF0Y2hfdGFibGVbXSA9IHtcXG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jOjEyMDM6XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJmc2wsbHgyMTYwYS1zZXJkZXMxXFxcIiwgLmRhdGEgPSBcXHUwMDI2bHlueF9pbmZvX2x4MjE2MGFfc2VyZGVzMSB9LFxcbmRyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmMtMTIwNC1cXHR7IC5jb21wYXRpYmxlID0gXFxcImZzbCxseDIxNjBhLXNlcmRlczJcXFwiLCAuZGF0YSA9IFxcdTAwMjZseW54X2luZm9fbHgyMTYwYV9zZXJkZXMyIH0sXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDIzOjA3OjE4Ljc5MTY0NTYxNFoiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3MzcxMDczMzU2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIFdvcnRoaW5lc3Mgb2YgRnV6emluZyBUaGlzIERyaXZlcioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGltbWVkaWF0ZWx5LCBteSBicmFpbiBnb2VzIGludG8gc2VhcmNoIG1vZGUsIHRyeWluZyB0byBzZWUgaWYgSSBjYW4gbGV2ZXJhZ2UgYW55IG9mIG15IHN0YW5kYXJkIHRvb2xzIHRvIGhlbHAgbWUgZGV0ZXJtaW5lIGlmIGl0J3MgZnV6emFibGUuIEluaXRpYWxseSwgbXkgZmlyc3QgaW5zdGluY3QgaXMgdG8gc2VlIGlmIEkgY2FuIHVzZSBjb2Rlc2VhcmNoIG9yIHJlYWRpbmcgYSBmaWxlIHRvIGxvb2sgZm9yIHJlbGF0ZWQgc3l6a2FsbGVyIGRlc2NyaXB0aW9ucywgYnV0IHRoZSBwcm9tcHQgKnNwZWNpZmljYWxseSogZm9yYmlkcyB0aGF0LiBJIGFsc28gY29uc2lkZXJlZCBsb29raW5nIGZvciBtZW50aW9ucyBvZiAnc3l6XFxfJywgYnV0IHF1aWNrbHkgZGlzbWlzc2VkIGl0IGJhc2VkIG9uIHRoZSBjb25zdHJhaW50cyBvZiB0aGUgcHJvdmlkZWQgdG9vbHMuXG5cblRoZW4gSSByZWFsaXplZCwgaG9sZCBvbiwgdGhlcmUgaXNuJ3QgZXZlbiBhIGB0b29sUmVhZERlc2NyaXB0aW9uYCB0b29sIGxpa2UgdGhlIHByb21wdCBzdWdnZXN0cy4gVGhhdCdzIGEgYml0IGZydXN0cmF0aW5nISBUaGUgcHJvbXB0IHNhaWQgXCJVc2UgdGhlIHt7LnRvb2xSZWFkRGVzY3JpcHRpb259fSB0b29sIGluc3RlYWQsXCIgYnV0LCBpdCdzIG5vdCBldmVuIHRoZXJlLiBJIGRvdWJsZS1jaGVja2VkIHRoZSB0b29sIGxpc3QganVzdCB0byBiZSBzdXJlLlxuXG5CdXQgbGV0J3MgYmUgcmVhbGlzdGljLCB0aGlzIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgUEhZIGRyaXZlciDigJMgaXQncyBmb3IgYSBGcmVlc2NhbGUgTHlueCAyOEcgU2VyRGVzIFBIWS4gVGhhdCB0eXBlIG9mIGhhcmR3YXJlIHVzdWFsbHkgcmVxdWlyZXMgc3BlY2lmaWMgcGxhdGZvcm0gZGV2aWNlcyBkZWZpbmVkIGluIHRoZSBEZXZpY2UgVHJlZSwgdGhpbmdzIGxpa2UgXCJmc2wsbHgyMTYwYS1zZXJkZXMxXCIgdG8gYmUgaW5zdGFudGlhdGVkLiBHaXZlbiBteSBleHBlcmllbmNlLCBJJ20gZXh0cmVtZWx5IGNvbmZpZGVudCB0aGF0IHRoaXMgY29kZSBwYXRoIGlzIG5vdCByZWFjaGFibGUgaW4gc3RhbmRhcmQsIGdlbmVyaWMgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UsIHdoaWNoIGlzIHdoYXQgd2UgdXNlIGZvciBvdXIgZnV6emluZyBlZmZvcnRzLlxuXG5JIGJyaWVmbHkgY29uc2lkZXJlZCBpZiB0aGVyZSBtaWdodCBiZSBzb21lICpnZW5lcmljKiBQSFkgdGVzdGluZyBtb2R1bGUgdGhhdCBjb3VsZCBzb21laG93IHRyaWdnZXIgdGhpcyBjb2RlIHBhdGgsIGJ1dCB0aGF0J3MgdW5saWtlbHkuIFBIWSBkcml2ZXJzIGFyZSBhbG1vc3QgYWx3YXlzIHByb2JlZCBiYXNlZCBvbiBEZXZpY2UgVHJlZSBtYXRjaGVzLiBXaXRob3V0IHRoZSBEVCBub2RlIGRlZmluaW5nIHRoZSBjb3JyZWN0IGhhcmR3YXJlLCB0aGUgZHJpdmVyIHdvbid0IHByb2JlLCBhbmQgdGhlIGBwaHlfb3BzYCB3b24ndCBiZSByZWdpc3RlcmVkLCByZW5kZXJpbmcgdGhpcyBjb2RlIHVucmVhY2hhYmxlLlxuXG5UaGVyZWZvcmUsIGdpdmVuIHRoZXNlIGNvbnN0cmFpbnRzLCBJJ20gZ29pbmcgdG8gc2V0IFdvcnRoRnV6emluZz1mYWxzZS4gVGhpcyBpcyBhIG5vbi1mdXp6YWJsZSB0YXJnZXQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjcxMzUsIk91dHB1dFRva2VucyI6MTA5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mzk3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDIzOjA3OjI2LjE2MjcyMTI0WiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjA2MTEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBQSFkgZHJpdmVyIChGcmVlc2NhbGUgTHlueCAyOEcgU2VyRGVzIFBIWSkgd2hpY2ggcmVxdWlyZXMgc3BlY2lmaWMgcGxhdGZvcm0gZGV2aWNlcyAoZS5nLiwgXFxcImZzbCxseDIxNjBhLXNlcmRlczFcXFwiKSB0byBiZSBpbnN0YW50aWF0ZWQgdmlhIERldmljZSBUcmVlLiBUaGlzIGNvZGUgcGF0aCBpcyBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIGdlbmVyaWMgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UgdXNlZCBmb3IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGEgaGFyZHdhcmUtc3BlY2lmaWMgUEhZIGRyaXZlciAoRnJlZXNjYWxlIEx5bnggMjhHIFNlckRlcyBQSFkpIHdoaWNoIHJlcXVpcmVzIHNwZWNpZmljIHBsYXRmb3JtIGRldmljZXMgKGUuZy4sIFxcXCJmc2wsbHgyMTYwYS1zZXJkZXMxXFxcIikgdG8gYmUgaW5zdGFudGlhdGVkIHZpYSBEZXZpY2UgVHJlZS4gVGhpcyBjb2RlIHBhdGggaXMgaW1wb3NzaWJsZSB0byByZWFjaCBpbiBnZW5lcmljIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFIHVzZWQgZm9yIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow6xgkc[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-22 22:39:35 +0000 UTC FinishedAt: 2026-07-22 23:07:27 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDIzOjA2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGEgaGFyZHdhcmUtc3BlY2lmaWMgUEhZIGRyaXZlciAoRnJlZXNjYWxlIEx5bnggMjhHIFNlckRlcyBQSFkpIHdoaWNoIHJlcXVpcmVzIHNwZWNpZmljIHBsYXRmb3JtIGRldmljZXMgKGUuZy4sIFwmIzM0O2ZzbCxseDIxNjBhLXNlcmRlczFcJiMzNDspIHRvIGJlIGluc3RhbnRpYXRlZCB2aWEgRGV2aWNlIFRyZWUuIFRoaXMgY29kZSBwYXRoIGlzIGltcG9zc2libGUgdG8gcmVhY2ggaW4gZ2VuZXJpYyB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSB1c2VkIGZvciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAyMzowNjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDQyYjJhYWFiNmI0MTlkMGU3MWIyNjAzNDY3YTUxZDliOWY4ZTc5OWFcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEp1bCAyMiAyMzowNjo0MSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jIGIvZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuY1xuaW5kZXggMzhhZmNkMDgxYTJhNzUuLjFmZTQwNmFkYzgzY2IzIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuY1xuQEAgLTEwMDMsNyAmIzQzOzEwMDMsOSBAQCBzdGF0aWMgaW50IGx5bnhfMjhnX3NldF9tb2RlKHN0cnVjdCBwaHkgKnBoeSwgZW51bSBwaHlfbW9kZSBtb2RlLCBpbnQgc3VibW9kZSlcbiBcbiBcdGx5bnhfMjhnX2xhbmVfY2hhbmdlX3Byb3RvX2NvbmYobGFuZSwgbGFuZV9tb2RlKTtcbiBcdGx5bnhfMjhnX2xhbmVfcmVtYXBfcGxsKGxhbmUsIGxhbmVfbW9kZSk7XG4tXHRXQVJOX09OKGx5bnhfMjhnX2xhbmVfZW5hYmxlX3BjdnQobGFuZSwgbGFuZV9tb2RlKSk7XG4mIzQzO1x0ZXJyID0gbHlueF8yOGdfbGFuZV9lbmFibGVfcGN2dChsYW5lLCBsYW5lX21vZGUpO1xuJiM0MztcdGlmIChlcnIpXG4mIzQzO1x0XHRnb3RvIG91dDtcbiBcbiBcdGxhbmUtXHUwMDNlbW9kZSA9IGxhbmVfbW9kZTtcbiBcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAyMzowNjwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBQSFkgZHJpdmVyIChGcmVlc2NhbGUgTHlueCAyOEcgU2VyRGVzIFBIWSkgd2hpY2ggcmVxdWlyZXMgc3BlY2lmaWMgcGxhdGZvcm0gZGV2aWNlcyAoZS5nLiwgXCYjMzQ7ZnNsLGx4MjE2MGEtc2VyZGVzMVwmIzM0OykgdG8gYmUgaW5zdGFudGlhdGVkIHZpYSBEZXZpY2UgVHJlZS4gVGhpcyBjb2RlIHBhdGggaXMgaW1wb3NzaWJsZSB0byByZWFjaCBpbiBnZW5lcmljIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFIHVzZWQgZm9yIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA0MmIyYWFhYjZiNDE5ZDBlNzFiMjYwMzQ2N2E1MWQ5YjlmOGU3OTlhCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFdlZCBKdWwgMjIgMjM6MDY6NDEgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jIGIvZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuYwppbmRleCAzOGFmY2QwODFhMmE3NS4uMWZlNDA2YWRjODNjYjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuYwpAQCAtMTAwMyw3ICYjNDM7MTAwMyw5IEBAIHN0YXRpYyBpbnQgbHlueF8yOGdfc2V0X21vZGUoc3RydWN0IHBoeSAqcGh5LCBlbnVtIHBoeV9tb2RlIG1vZGUsIGludCBzdWJtb2RlKQogCiAJbHlueF8yOGdfbGFuZV9jaGFuZ2VfcHJvdG9fY29uZihsYW5lLCBsYW5lX21vZGUpOwogCWx5bnhfMjhnX2xhbmVfcmVtYXBfcGxsKGxhbmUsIGxhbmVfbW9kZSk7Ci0JV0FSTl9PTihseW54XzI4Z19sYW5lX2VuYWJsZV9wY3Z0KGxhbmUsIGxhbmVfbW9kZSkpOwomIzQzOwllcnIgPSBseW54XzI4Z19sYW5lX2VuYWJsZV9wY3Z0KGxhbmUsIGxhbmVfbW9kZSk7CiYjNDM7CWlmIChlcnIpCiYjNDM7CQlnb3RvIG91dDsKIAogCWxhbmUtJmd0O21vZGUgPSBsYW5lX21vZGU7CiAKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMjM6MDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTk5MwoJCQkJCQkJb3V0cHV0OiA0OAoJCQkJCQkJdGhvdWdodHM6IDIwNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBQSFkgRHJpdmVyIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuY2AuIEl0JiMzOTtzIGEgRnJlZXNjYWxlIEx5bnggMjhHIFBIWSBkcml2ZXIuIFRoZSBrZXkgY2hhbmdlIGlzIHRoYXQgYFdBUk5fT05gIGNhbGwgaW4gdGhlIG9yaWdpbmFsIGNvZGUgaGFzIGJlZW4gcmVwbGFjZWQgd2l0aCBwcm9wZXIgZXJyb3IgaGFuZGxpbmcsIHNvIG5vdyB3ZSBoYXZlIGBseW54XzI4Z19sYW5lX2VuYWJsZV9wY3Z0YCByZXR1cm5pbmcgYW4gZXJyb3IgY29kZSBhbmQgdGhhdCByZXN1bHQgY2hlY2tlZC4gVGhpcyBpcyBkZWZpbml0ZWx5IGEgZnVuY3Rpb25hbCBjaGFuZ2Ug4oCTIGEgc3RlcCB1cCBpbiByb2J1c3RuZXNzLgoKVGhlIHJlYWwgcXVlc3Rpb24gaGVyZSwgYXMgd2l0aCBhbnkgaGFyZHdhcmUgZHJpdmVyIGNoYW5nZSwgaXMgcmVhY2hhYmlsaXR5LCBwYXJ0aWN1bGFybHkgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudC4gQ2FuIHdlIGV2ZW4gdHJpZ2dlciB0aGlzIGNvZGUgcGF0aCBpbiBzb21ldGhpbmcgbGlrZSBRRU1VPyBQSFkgZHJpdmVycyBhcmUgbm90b3Jpb3VzbHkgaGFyZHdhcmUtc3BlY2lmaWMsIHNvIEkgaGF2ZSB0byBjb25zaWRlciB3aGV0aGVyIHRoaXMgZnVuY3Rpb25hbGl0eSBpcyBkZXBlbmRlbnQgb24gdGhlIGFjdHVhbCBMeW54IDI4RyBoYXJkd2FyZSBiZWluZyBwcmVzZW50IG9yIG5vdC4gTXkgaW50dWl0aW9uIGlzIHRoYXQgaXQgbWlnaHQgYmUsIGJ1dCBsZXQmIzM5O3MgcXVpY2tseSByZXZpZXcgaG93IHRoaXMgZHJpdmVyIGdldHMgcHJvYmVkIHdpdGhpbiB0aGUga2VybmVsLiBJJiMzOTtsbCBuZWVkIHRvIGNoZWNrIHRoZSBwcm9iZSBmdW5jdGlvbiBpbiBgZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuY2AgdG8gc2VlIGlmIHRoZXJlJiMzOTtzIGFueSBvYnZpb3VzIHdheSB0aGlzIGNvZGUgbWlnaHQgYmUgZXhlY3V0ZWQgZHVyaW5nIGEgdmlydHVhbGl6ZWQgYm9vdC4gSXQgd291bGQgYmUgZ3JlYXQgaWYgdGhpcyBjb3VsZCBiZSB0ZXN0ZWQgd2l0aG91dCBzcGVjaWFsaXplZCBoYXJkd2FyZSwgc28gSSYjMzk7bGwgYmUgbG9va2luZyBmb3Igc29tZXRoaW5nIHRoYXQgaW5kaWNhdGVzIHRoYXQgaXQgY2FuLCBmb3IgZXhhbXBsZSwgYmUgcGFzc2VkIGEgY2VydGFpbiBoYXJkd2FyZSBjb25maWcgdGhhdCBRRU1VIG1pZ2h0IGVtdWxhdGUuIEkgd2FudCB0byBzZWUgaWYgdGhpcyBjaGFuZ2UgYWZmZWN0cyBzb21ldGhpbmcgY3JpdGljYWwgb3IgaXMgcHVyZWx5IGNvc21ldGljLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDIzOjA2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2x5bnhfMjhnX3Byb2JlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jPTExNzY9c3RhdGljIGNvbnN0IHN0cnVjdCBseW54X2luZm8gbHlueF9pbmZvX2x4MjE2MmFfc2VyZGVzMiA9IHtcbi0tXG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jLTExODUtXG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jOjExODY6c3RhdGljIGludCBseW54XzI4Z19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuYy0xMTg3LXtcbi0tXG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jPTEyMTM9c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgbHlueF8yOGdfZHJpdmVyID0ge1xuZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuYzoxMjE0Olx0LnByb2JlID0gbHlueF8yOGdfcHJvYmUsXG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jLTEyMTUtXHQucmVtb3ZlID0gbHlueF9yZW1vdmUsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMjM6MDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjg1NAoJCQkJCQkJb3V0cHV0OiA1MAoJCQkJCQkJdGhvdWdodHM6IDEwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqRGV2aWNlIFRyZWUgTWF0Y2hpbmcgLSBJbml0aWFsIEFzc2Vzc21lbnQqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGRpdmUgc3RyYWlnaHQgaW4uIE15IGZpcnN0IHRob3VnaHQgaXMgdG8gaW1tZWRpYXRlbHkgZXhhbWluZSB0aGF0IGRldmljZSB0cmVlIG1hdGNoIHRhYmxlLiBJdCYjMzk7cyB0aGUgY3JpdGljYWwgc3RhcnRpbmcgcG9pbnQgZm9yIGFueSBkZWJ1Z2dpbmcgb3IgdW5kZXJzdGFuZGluZyBvZiBoYXJkd2FyZSBpbml0aWFsaXphdGlvbiwgYW5kIEkgbmVlZCB0byBzZWUgd2hhdCB0aGUgc3lzdGVtICp0aGlua3MqIGl0JiMzOTtzIGRlYWxpbmcgd2l0aC4gSSB3YW50IHRvIHNlZSB3aGF0IHByb3BlcnRpZXMgYXJlIHVzZWQgaW4gdGhlIG1hdGNoaW5nIHByb2Nlc3MgYW5kIHRoZSBzcGVjaWZpYyBzdHJpbmdzIGFzc29jaWF0ZWQgd2l0aCBhIGdpdmVuIG5vZGUuIEFyZSB0aGVyZSBvYnZpb3VzIHR5cG9zLCBpbmNvcnJlY3QgZHJpdmVyIG5hbWVzLCBvciBtaXNtYXRjaGVkIGNvbXBhdGlibGUgc3RyaW5ncyB0aGF0IGFyZSBpbW1lZGlhdGVseSBhcHBhcmVudD8gSSYjMzk7bSBsb29raW5nIGZvciB0aGUgc2ltcGxlLCBsb3ctaGFuZ2luZyBmcnVpdDogY29tbW9uIGNvbmZpZ3VyYXRpb24gZXJyb3JzIHRoYXQgY2FuIGJlIHF1aWNrbHkgaWRlbnRpZmllZCBhbmQgY29ycmVjdGVkLiBLbm93aW5nIGhvdyBhIGdpdmVuIGhhcmR3YXJlIGJsb2NrIGlzIGRlc2NyaWJlZCBpbiB0aGUgRFQgaXMgdGhlIGZvdW5kYXRpb24gZm9yIGZ1cnRoZXIgaW52ZXN0aWdhdGlvbi4gVGhpcyB2aWV3IHdpbGwgZGljdGF0ZSB3aGF0IGNvbWVzIG5leHQhCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMjM6MDY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bHlueF8yOGdfb2ZfbWF0Y2gmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmM9MTE4Nj1zdGF0aWMgaW50IGx5bnhfMjhnX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuYy0xMjAxLVxuZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuYzoxMjAyOnN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGx5bnhfMjhnX29mX21hdGNoX3RhYmxlW10gPSB7XG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jLTEyMDMtXHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7ZnNsLGx4MjE2MGEtc2VyZGVzMVwmIzM0OywgLmRhdGEgPSBcdTAwMjZseW54X2luZm9fbHgyMTYwYV9zZXJkZXMxIH0sXG4tLVxuZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuYy0xMjEwLX07XG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jOjEyMTE6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgbHlueF8yOGdfb2ZfbWF0Y2hfdGFibGUpO1xuZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuYy0xMjEyLVxuZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuYz0xMjEzPXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGx5bnhfMjhnX2RyaXZlciA9IHtcbi0tXG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jLTEyMTctXHRcdC5uYW1lID0gXCYjMzQ7bHlueC0yOGdcJiMzNDssXG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jOjEyMTg6XHRcdC5vZl9tYXRjaF90YWJsZSA9IGx5bnhfMjhnX29mX21hdGNoX3RhYmxlLFxuZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuYy0xMjE5LVx0fSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAyMzowNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNTU5CgkJCQkJCQlvdXRwdXQ6IDUwCgkJCQkJCQl0aG91Z2h0czogMjI3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgdGhlIEZyZWVzY2FsZSBMWDIxNjBBIFNlckRlcyBEcml2ZXIgaW4gUUVNVSoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwbGF0Zm9ybSBkcml2ZXIgZm9yIHRoZSBGcmVlc2NhbGUgTFgyMTYwQSBTZXJEZXMuIEl0IG5lZWRzIGEgc3BlY2lmaWMgZGV2aWNlIHRyZWUgbm9kZSwgbGlrZSBgZnNsLGx4MjE2MGEtc2VyZGVzMWAsIHRvIGJlIHByb3Blcmx5IGluc3RhbnRpYXRlZC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIGNhbiBJIGV2ZW4gKmZ1enoqIHRoaXMgdGhpbmcgd2l0aGluIGEgZ2VuZXJpYyBRRU1VIGVudmlyb25tZW50PyBJdCYjMzk7cyBhIHBsYXRmb3JtIGRldmljZSwgd2hpY2ggbWFrZXMgaXQgdHJpY2tpZXIuIE5vcm1hbGx5LCBJJiMzOTtkIGxlYW4gdG93YXJkcyBkZXZpY2UgdHJlZSBvdmVybGF5cyBvciBtYXliZSBTeXprYWxsZXImIzM5O3MgcHNldWRvLWRldmljZXMgaWYgdGhlcmUmIzM5O3MgYW55IGF2YWlsYWJsZSBzdXBwb3J0LCBidXQgUEhZIGRyaXZlcnMsIGVzcGVjaWFsbHkgaGFyZHdhcmUtc3BlY2lmaWMgb25lcyBsaWtlIHRoaXMsIGFyZSBub3RvcmlvdXNseSBoYXJkIHRvIHJlYWNoIHVubGVzcyB5b3Ugc3BlY2lmaWNhbGx5IHRhcmdldCB0aGVtLgoKSSYjMzk7bSB0aGlua2luZywgYXJlIHRoZXJlIGFueSBzeXNmcyBvciBuZXRsaW5rIGludGVyZmFjZXMgSSBjb3VsZCBleHBsb2l0PyBQbGF0Zm9ybSBkZXZpY2VzIGFyZW4mIzM5O3QgdXN1YWxseSBleHBvc2VkIHRoYXQgd2F5LCB1bmxlc3MgdGhlcmUmIzM5O3Mgc29tZSBkZXZpY2UgdHJlZSBvdmVybGF5IGluamVjdGlvbiB0cmljayBJIGNhbiB1c2UsIHdoaWNoIFN5emthbGxlciAqZG9lcyogb2ZmZXIgdG8gc29tZSBleHRlbnQuIEhtbSwgd2FpdCwgZG9lcyBTeXprYWxsZXIgaGF2ZSAqZGlyZWN0KiBpbmplY3Rpb24gdmlhIGBzeXpfZGV2bGlua2Agb3Igc2ltaWxhcj8gTm8sIGl0JiMzOTtzIG1vcmUgYWJvdXQgaW5qZWN0aW5nIERUIG92ZXJsYXlzIG9yIHVzaW5nIGBzeXpfbW91bnRfaW1hZ2VgLCByaWdodD8gVGhhdCYjMzk7cyB1c2VmdWwsIGJ1dCBQSFkgZHJpdmVycyB0ZW5kIHRvIGJlIGRlZXBseSBoYXJkd2FyZS1zcGVjaWZpYywgd2hpY2ggbWFrZXMgdGhlIHdob2xlIHRoaW5nIGV2ZW4gbW9yZSBjaGFsbGVuZ2luZy4KCk9rYXksIHNvIHRoZSByZWFsIHF1ZXN0aW9uIGlzOiBpcyB0aGVyZSBhbnkgd2F5IEkgY2FuIHRyaWdnZXIgdGhpcyBmcm9tIHVzZXJzcGFjZSAqd2l0aG91dCogdGhlIGhhcmR3YXJlPyBUaGUgZnVuY3Rpb24gdGhhdCB3YXMgbW9kaWZpZWQgaW4gdGhpcyBkcml2ZXIgaXMgYGx5bnhfMjhnX3NldF9tb2RlYC4gVGltZSB0byBzZWUgaWYgSSBjYW4gZmluZCBzb21lIGVudHJ5IHBvaW50cyEKCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAyMzowNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtseW54XzI4Z19zZXRfbW9kZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuYz05NzE9c3RhdGljIGludCBseW54XzI4Z192YWxpZGF0ZShzdHJ1Y3QgcGh5ICpwaHksIGVudW0gcGh5X21vZGUgbW9kZSwgaW50IHN1Ym1vZGUsXG4tLVxuZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuYy05NzYtXG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jOjk3NzpzdGF0aWMgaW50IGx5bnhfMjhnX3NldF9tb2RlKHN0cnVjdCBwaHkgKnBoeSwgZW51bSBwaHlfbW9kZSBtb2RlLCBpbnQgc3VibW9kZSlcbmRyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmMtOTc4LXtcbi0tXG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jPTEwNTI9c3RhdGljIGNvbnN0IHN0cnVjdCBwaHlfb3BzIGx5bnhfMjhnX29wcyA9IHtcbi0tXG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jLTEwNTYtXHQucG93ZXJfb2ZmXHQ9IGx5bnhfMjhnX3Bvd2VyX29mZixcbmRyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmM6MTA1NzpcdC5zZXRfbW9kZVx0PSBseW54XzI4Z19zZXRfbW9kZSxcbmRyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmMtMTA1OC1cdC52YWxpZGF0ZVx0PSBseW54XzI4Z192YWxpZGF0ZSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAyMzowNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NTMyCgkJCQkJCQlvdXRwdXQ6IDMxCgkJCQkJCQl0aG91Z2h0czogMjA0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIEZyZWVzY2FsZSBMeW54IDI4RyBQSFkgQ2FsbGJhY2sgaW4gYSBWaXJ0dWFsaXplZCBDb250ZXh0KioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBhIGBwaHlfb3BzYCBjYWxsYmFjayBoZXJlLiBUaGUgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzLCBjYW4gd2Ugc29tZWhvdyBjcmVhdGUgYSBnZW5lcmljIFBIWSBhbmQgY2FsbCBpdHMgYHNldF9tb2RlYCBmdW5jdGlvbj8gSW4gdGhlIHJlYWwgd29ybGQsIHRoZSBQSFkgZnJhbWV3b3JrIHVzdWFsbHkgaGFuZGxlcyBQSFkgY3JlYXRpb24gd2hlbiBhIHBsYXRmb3JtIGRldmljZSBnZXRzIHByb2JlZC4gVGhlIHByb2JsZW0gaXMsIGlmIHRoZSBwbGF0Zm9ybSBkZXZpY2UgaXNuJiMzOTt0IHByZXNlbnQsIHRoZSBQSFkgd29uJiMzOTt0IGJlIGluc3RhbnRpYXRlZC4gQW5kIHRoaXMgaXMgYSBGcmVlc2NhbGUgTHlueCAyOEcgUEhZLCB3aGljaCBzY3JlYW1zIEZyZWVzY2FsZSBTb0Mgc3BlY2lmaWNpdHkuCgpVbmxlc3Mgc3l6a2FsbGVyIGlzIHJ1bm5pbmcgb24gYWN0dWFsIEZyZWVzY2FsZSBoYXJkd2FyZSwgb3IgUUVNVSBpcyBzZXQgdXAgdG8gZW11bGF0ZSAqdGhpcyBleGFjdCogU29DIHdpdGggdGhlIGRyaXZlciBlbmFibGVkLCB3ZSYjMzk7cmUgcHJvYmFibHkgbm90IGdvaW5nIHRvIGJlIGFibGUgdG8gaGl0IGl0LiBXYWl0IGEgbWludXRlLCBzeXprYWxsZXIgKmRvZXMqIGhhdmUgYSBtZWNoYW5pc20gZm9yIHRlc3Rpbmcgc29tZSBwbGF0Zm9ybSBkcml2ZXJzIGV2ZW4gaWYgdGhlaXIgZGV2aWNlcyBhcmVuJiMzOTt0IHByZXNlbnQuIFRoYXQmIzM5O3MgYSBwb3NzaWJpbGl0eS4gQnV0LCBob25lc3RseSwgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVycyBsaWtlIHRoaXMg4oCTIGVzcGVjaWFsbHkgUEhZcyDigJMgYXJlIHVzdWFsbHkgY29tcGxldGVseSB1bnJlYWNoYWJsZSBpbiBnZW5lcmljIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gVGhpbmsgR0NFLCBvciBzdGFuZGFyZCBRRU1VIHg4Nl82NC9hcm02NCB3aXRob3V0IHNwZWNpZmljIG1hY2hpbmUgbW9kZWxzIGNvbmZpZ3VyZWQuIEkgdGhpbmsgdGhlIGJlc3QgcGxhY2UgdG8gc3RhcnQgaXMganVzdCB0byBzZWUgaWYgdGhpcyBkcml2ZXIgaXMgZXZlbiBlbmFibGVkIGluIGdlbmVyaWMga2VybmVsIGNvbmZpZ3MuIFRoYXQmIzM5O3MgdGhlIGZpcnN0IGh1cmRsZSwgYXQgbGVhc3QuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDIzOjA3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O1BIWV9GU0xfTFlOWF8yOEcmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9waHkvZnJlZXNjYWxlL0tjb25maWc9NTc9Y29uZmlnIFBIWV9GU0xfTFlOWF8xMEdcbi0tXG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvS2NvbmZpZy02Ni1cbmRyaXZlcnMvcGh5L2ZyZWVzY2FsZS9LY29uZmlnOjY3OmNvbmZpZyBQSFlfRlNMX0xZTlhfMjhHXG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvS2NvbmZpZy02OC1cdHRyaXN0YXRlIFwmIzM0O0ZyZWVzY2FsZSBMYXllcnNjYXBlIEx5bnggMjhHIFNlckRlcyBQSFkgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvcGh5L2ZyZWVzY2FsZS9NYWtlZmlsZT04PW9iai0kKENPTkZJR19QSFlfRlNMX0xZTlhfMTBHKVx0XHQmIzQzOz0gcGh5LWZzbC1seW54LTEwZy5vXG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvTWFrZWZpbGU6OTpvYmotJChDT05GSUdfUEhZX0ZTTF9MWU5YXzI4RylcdFx0JiM0Mzs9IHBoeS1mc2wtbHlueC0yOGcub1xuZHJpdmVycy9waHkvZnJlZXNjYWxlL01ha2VmaWxlLTEwLW9iai0kKENPTkZJR19QSFlfRlNMX1NBTVNVTkdfSERNSV9QSFkpXHQmIzQzOz0gcGh5LWZzbC1zYW1zdW5nLWhkbWkub1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAyMzowNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1Mjk0CgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMjEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzLCBzdW1tYXJpemVkIGFzIHlvdSByZXF1ZXN0ZWQ6CgoqKktjb25maWcgRGl2ZSBmb3IgUEhZX0ZTTF9MWU5YXzI4RyoqCgpPa2F5LCBmaXJzdCB0aGluZ3MgZmlyc3QsIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgcmVsYXRlZCB0byB0aGUgYFBIWV9GU0xfTFlOWF8yOEdgIHNldHRpbmcuIE15IGluaXRpYWwgaW5zdGluY3QgaXMgdG8gZGlnIGludG8gdGhlIGBLY29uZmlnYCBmaWxlcy4gSSYjMzk7bSBhc3N1bWluZyBpdCYjMzk7cyBwcm9iYWJseSB3aXRoaW4gdGhlIGBkcml2ZXJzL2Agb3IgYHBoeS9gIGRpcmVjdG9yaWVzLCBvciBwb3NzaWJseSB1bmRlciBhIHNwZWNpZmljIHBsYXRmb3JtIGRpcmVjdG9yeSBpZiBpdCYjMzk7cyBib2FyZC1zcGVjaWZpYy4gSSYjMzk7bGwgbmVlZCB0byB1c2UgYSBzZWFyY2ggc3RyYXRlZ3ksIHN0YXJ0aW5nIHdpdGggYSBicm9hZCBzZWFyY2ggZm9yIHRoZSBzeW1ib2wgaXRzZWxmIHdpdGhpbiB0aGUga2VybmVsIHNvdXJjZS4gVGhlIGdvYWwgaGVyZSBpc24mIzM5O3QganVzdCB0byAqZmluZCogdGhlIGRlZmluaXRpb24sIGJ1dCBhbHNvIHRvIHVuZGVyc3RhbmQgdGhlIGRlcGVuZGVuY2llcyDigJMgd2hhdCBvdGhlciBvcHRpb25zIG5lZWQgdG8gYmUgZW5hYmxlZCBmb3IgdGhpcyBQSFkgdG8gZXZlbiBiZSBjb25zaWRlcmVkPyBJIHdhbnQgdG8gc2VlIHRoZSBjb25kaXRpb25zLiBJJiMzOTttIGxvb2tpbmcgZm9yIHRoZSBgZGVwZW5kcyBvbmAgY2xhdXNlcywgYW55IGBzZWxlY3RgIHN0YXRlbWVudHMsIGFuZCB0aGUgYXNzb2NpYXRlZCBoZWxwIHRleHQuIFRoaXMgd2lsbCB0ZWxsIG1lIHdoYXQgc3VwcG9ydGluZyBkcml2ZXJzIG9yIGZlYXR1cmVzIGFyZSBuZWVkZWQuIEkmIzM5O2xsIGFsc28gYmUgdHJ5aW5nIHRvIGNoZWNrIGlmIHRoZSBzeW1ib2wgaXMgdXNlciBzZWxlY3RhYmxlIG9yIG9ubHkgYSByZXN1bHQgb2Ygb3RoZXIgc2V0dGluZ3MuIEkgbmVlZCB0byBub3RlIGFueSBkZWZhdWx0IHNldHRpbmdzIHRoYXQgbWlnaHQgaW5mbHVlbmNlIHRoZSBlbmFibGVtZW50IG9mIHRoaXMgc3BlY2lmaWMgUEhZLiBGcm9tIHRoaXMsIEkmIzM5O2xsIGZvcm11bGF0ZSBhIGNvbXBsZXRlIHBpY3R1cmUgb2YgdGhpcyBQSFkmIzM5O3MgY29uZmlndXJhdGlvbiBvcHRpb25zIGFuZCB0aGVpciBpbXBsaWNhdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDIzOjA3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9waHkvZnJlZXNjYWxlL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiA2MCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgIDYwOlx0XHRkZXBlbmRzIG9uIEFSQ0hfTEFZRVJTQ0FQRSB8fCBDT01QSUxFX1RFU1RcbiAgNjE6XHRcdHNlbGVjdCBHRU5FUklDX1BIWVxuICA2MjpcdFx0c2VsZWN0IFBIWV9GU0xfTFlOWF9DT1JFXG4gIDYzOlx0XHRoZWxwXG4gIDY0Olx0XHQgIEVuYWJsZSB0aGlzIHRvIGFkZCBzdXBwb3J0IGZvciB0aGUgTHlueCAxMEcgU2VyRGVzIFBIWSBhcyBmb3VuZCBvblxuICA2NTpcdFx0ICBOWFAmIzM5O3MgTGF5ZXJzY2FwZSBwbGF0Zm9ybSBzdWNoIGFzIExTMTA4OEEgb3IgTFMxMDI4QS5cbiAgNjY6XHRcbiAgNjc6XHRjb25maWcgUEhZX0ZTTF9MWU5YXzI4R1xuICA2ODpcdFx0dHJpc3RhdGUgXCYjMzQ7RnJlZXNjYWxlIExheWVyc2NhcGUgTHlueCAyOEcgU2VyRGVzIFBIWSBzdXBwb3J0XCYjMzQ7XG4gIDY5Olx0XHRkZXBlbmRzIG9uIE9GXG4gIDcwOlx0XHRkZXBlbmRzIG9uIEFSQ0hfTEFZRVJTQ0FQRSB8fCBDT01QSUxFX1RFU1RcbiAgNzE6XHRcdHNlbGVjdCBHRU5FUklDX1BIWVxuICA3MjpcdFx0c2VsZWN0IFBIWV9GU0xfTFlOWF9DT1JFXG4gIDczOlx0XHRoZWxwXG4gIDc0Olx0XHQgIEVuYWJsZSB0aGlzIHRvIGFkZCBzdXBwb3J0IGZvciB0aGUgTHlueCBTZXJEZXMgMjhHIFBIWSBhc1xuICA3NTpcdFx0ICBmb3VuZCBvbiBOWFAmIzM5O3MgTGF5ZXJzY2FwZSBwbGF0Zm9ybXMgc3VjaCBhcyBMWDIxNjBBLlxuICA3NjpcdFx0ICBVc2VkIHRvIGNoYW5nZSB0aGUgcHJvdG9jb2wgcnVubmluZyBvbiBTZXJEZXMgbGFuZXMgYXQgcnVudGltZS5cbiAgNzc6XHRcdCAgT25seSB1c2VmdWwgZm9yIGEgcmVzdHJpY3RlZCBzZXQgb2YgRXRoZXJuZXQgcHJvdG9jb2xzLlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAyMzowNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1OTQyCgkJCQkJCQlvdXRwdXQ6IDMzCgkJCQkJCQl0aG91Z2h0czogMjg3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKldvcnRoRnV6emluZyBEZWNpc2lvbioqCgpPa2F5LCBzbyBJJiMzOTttIGFzc2Vzc2luZyB3aGV0aGVyIHRoaXMgcGFydGljdWxhciBwaWVjZSBvZiBjb2RlIGlzIGV2ZW4gKnJlYWNoYWJsZSogYnkgZnV6emluZy4gSXQmIzM5O3MgdGllZCB0byBgQVJDSF9MQVlFUlNDQVBFYCBvciBgQ09NUElMRV9URVNUYCwgYnV0IHRoYXQmIzM5O3MgYSBiaXQgb2YgYSByZWQgaGVycmluZy4gRXZlbiBpZiBpdCYjMzk7cyBjb21waWxlZCBpbiwgd2hpY2ggaXMgcG9zc2libGUgZXZlbiB3aXRob3V0IGBBUkNIX0xBWUVSU0NBUEVgLCB0aGUgZHJpdmVyIGl0c2VsZiBkZW1hbmRzIGEgcGxhdGZvcm0gZGV2aWNlLiBTcGVjaWZpY2FsbHksIG9uZSB3aXRoIHRoZSBgJiMzNDtmc2wsbHgyMTYwYS1zZXJkZXMxJiMzNDtgIGNvbXBhdGlibGUgc3RyaW5nLiBUaGF0JiMzOTtzIHRoZSByZWFsIGh1cmRsZS4KCk15IGluaXRpYWwgdGhvdWdodCBpcywgY2FuIFN5emthbGxlciBpbmplY3QgdGhhdD8gV2VsbCwgbm90IGRpcmVjdGx5LiBJIGltbWVkaWF0ZWx5IGRpc21pc3MgYHN5el9kZXZsaW5rYCBhbmQgc2ltaWxhcjsgaXQgZG9lc24mIzM5O3QgaGF2ZSBhIGdlbmVyaWMgbWVjaGFuaXNtIHRvIGNyZWF0ZSAqYXJiaXRyYXJ5KiBwbGF0Zm9ybSBkZXZpY2VzLiBUaGUgYHN5el9nZW5ldGxpbmtgIGNhbGwgd29uJiMzOTt0IGhlbHAgaGVyZSwgaXQmIzM5O3MgZm9yIG5ldGxpbmsgc3R1ZmYuIEhtbSwgd2hhdCBhYm91dCBEVCBvdmVybGF5cz8gQ291bGQgYmUuLi4gaWYgdGhlIGtlcm5lbCBpcyBjb25maWd1cmVkIHdpdGggYENPTkZJR19PRl9PVkVSTEFZYCAqYW5kKiBTeXprYWxsZXIgaGFzIGEgZGVzY3JpcHRpb24gZm9yICp0aGlzIHNwZWNpZmljKiBQSFkgZHJpdmVyLiBUeXBpY2FsbHksIFN5emthbGxlciBkb2VzbiYjMzk7dCBib3RoZXIgd2l0aCB0aGF0IGZvciByYW5kb20gUEhZIGRyaXZlcnMuCgpTbywgaW4gdGhlIGNvbW1vbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwgbXkgaW5pdGlhbCBhc3Nlc3NtZW50IHdvdWxkIGJlIHRoYXQgdGhpcyBjb2RlIHBhdGggaXMgdW5yZWFjaGFibGUuIEkgd291bGQgaGF2ZSByZXR1cm5lZCBgV29ydGhGdXp6aW5nPWZhbHNlYC4KCkhvd2V2ZXIsIGJlZm9yZSBJIG1ha2UgYSBmaW5hbCBkZWNpc2lvbiwgSSYjMzk7bSBnb2luZyB0byB0YWtlIGEgbW9tZW50IGFuZCByZS1hc3Nlc3MuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSBoYXZlbiYjMzk7dCBtaXNzZWQgYW55dGhpbmcuIEp1c3QgdG8gYmUgc3VyZSwgSSB3aWxsIGNoZWNrIGlmIHRoZXJlIGFyZSBhbnkgY3VycmVudCBTeXprYWxsZXIgZGVzY3JpcHRpb25zIGZvciB0aGlzIGRldmljZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMjM6MDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZnNsLGx4MjE2MGEtc2VyZGVzMSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGh5L2ZzbCxseW54LTI4Zy55YW1sPTIwPXByb3BlcnRpZXM6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BoeS9mc2wsbHlueC0yOGcueWFtbC0zMC0gICAgICAtIGl0ZW1zOlxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BoeS9mc2wsbHlueC0yOGcueWFtbDozMTogICAgICAgICAgLSBjb25zdDogZnNsLGx4MjE2MGEtc2VyZGVzMVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BoeS9mc2wsbHlueC0yOGcueWFtbC0zMi0gICAgICAgICAgLSBjb25zdDogZnNsLGx5bngtMjhnXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BoeS9mc2wsbHlueC0yOGcueWFtbD05OD1leGFtcGxlczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGh5L2ZzbCxseW54LTI4Zy55YW1sLTEwNC0gICAgICBzZXJkZXNAMWVhMDAwMCB7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGh5L2ZzbCxseW54LTI4Zy55YW1sOjEwNTogICAgICAgIGNvbXBhdGlibGUgPSBcJiMzNDtmc2wsbHgyMTYwYS1zZXJkZXMxXCYjMzQ7LCBcJiMzNDtmc2wsbHlueC0yOGdcJiMzNDs7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGh5L2ZzbCxseW54LTI4Zy55YW1sLTEwNi0gICAgICAgIHJlZyA9IFx1MDAzYzB4MCAweDFlYTAwMDAgMHgwIDB4MWUzMFx1MDAzZTtcbi0tXG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jPTEyMDI9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbHlueF8yOGdfb2ZfbWF0Y2hfdGFibGVbXSA9IHtcbmRyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmM6MTIwMzpcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDtmc2wsbHgyMTYwYS1zZXJkZXMxXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNmx5bnhfaW5mb19seDIxNjBhX3NlcmRlczEgfSxcbmRyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmMtMTIwNC1cdHsgLmNvbXBhdGlibGUgPSBcJiMzNDtmc2wsbHgyMTYwYS1zZXJkZXMyXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNmx5bnhfaW5mb19seDIxNjBhX3NlcmRlczIgfSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMjM6MDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzEzNQoJCQkJCQkJb3V0cHV0OiAxMDkKCQkJCQkJCXRob3VnaHRzOiAzOTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgV29ydGhpbmVzcyBvZiBGdXp6aW5nIFRoaXMgRHJpdmVyKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpbW1lZGlhdGVseSwgbXkgYnJhaW4gZ29lcyBpbnRvIHNlYXJjaCBtb2RlLCB0cnlpbmcgdG8gc2VlIGlmIEkgY2FuIGxldmVyYWdlIGFueSBvZiBteSBzdGFuZGFyZCB0b29scyB0byBoZWxwIG1lIGRldGVybWluZSBpZiBpdCYjMzk7cyBmdXp6YWJsZS4gSW5pdGlhbGx5LCBteSBmaXJzdCBpbnN0aW5jdCBpcyB0byBzZWUgaWYgSSBjYW4gdXNlIGNvZGVzZWFyY2ggb3IgcmVhZGluZyBhIGZpbGUgdG8gbG9vayBmb3IgcmVsYXRlZCBzeXprYWxsZXIgZGVzY3JpcHRpb25zLCBidXQgdGhlIHByb21wdCAqc3BlY2lmaWNhbGx5KiBmb3JiaWRzIHRoYXQuIEkgYWxzbyBjb25zaWRlcmVkIGxvb2tpbmcgZm9yIG1lbnRpb25zIG9mICYjMzk7c3l6XF8mIzM5OywgYnV0IHF1aWNrbHkgZGlzbWlzc2VkIGl0IGJhc2VkIG9uIHRoZSBjb25zdHJhaW50cyBvZiB0aGUgcHJvdmlkZWQgdG9vbHMuCgpUaGVuIEkgcmVhbGl6ZWQsIGhvbGQgb24sIHRoZXJlIGlzbiYjMzk7dCBldmVuIGEgYHRvb2xSZWFkRGVzY3JpcHRpb25gIHRvb2wgbGlrZSB0aGUgcHJvbXB0IHN1Z2dlc3RzLiBUaGF0JiMzOTtzIGEgYml0IGZydXN0cmF0aW5nISBUaGUgcHJvbXB0IHNhaWQgJiMzNDtVc2UgdGhlIHt7LnRvb2xSZWFkRGVzY3JpcHRpb259fSB0b29sIGluc3RlYWQsJiMzNDsgYnV0LCBpdCYjMzk7cyBub3QgZXZlbiB0aGVyZS4gSSBkb3VibGUtY2hlY2tlZCB0aGUgdG9vbCBsaXN0IGp1c3QgdG8gYmUgc3VyZS4KCkJ1dCBsZXQmIzM5O3MgYmUgcmVhbGlzdGljLCB0aGlzIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgUEhZIGRyaXZlciDigJMgaXQmIzM5O3MgZm9yIGEgRnJlZXNjYWxlIEx5bnggMjhHIFNlckRlcyBQSFkuIFRoYXQgdHlwZSBvZiBoYXJkd2FyZSB1c3VhbGx5IHJlcXVpcmVzIHNwZWNpZmljIHBsYXRmb3JtIGRldmljZXMgZGVmaW5lZCBpbiB0aGUgRGV2aWNlIFRyZWUsIHRoaW5ncyBsaWtlICYjMzQ7ZnNsLGx4MjE2MGEtc2VyZGVzMSYjMzQ7IHRvIGJlIGluc3RhbnRpYXRlZC4gR2l2ZW4gbXkgZXhwZXJpZW5jZSwgSSYjMzk7bSBleHRyZW1lbHkgY29uZmlkZW50IHRoYXQgdGhpcyBjb2RlIHBhdGggaXMgbm90IHJlYWNoYWJsZSBpbiBzdGFuZGFyZCwgZ2VuZXJpYyBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSwgd2hpY2ggaXMgd2hhdCB3ZSB1c2UgZm9yIG91ciBmdXp6aW5nIGVmZm9ydHMuCgpJIGJyaWVmbHkgY29uc2lkZXJlZCBpZiB0aGVyZSBtaWdodCBiZSBzb21lICpnZW5lcmljKiBQSFkgdGVzdGluZyBtb2R1bGUgdGhhdCBjb3VsZCBzb21laG93IHRyaWdnZXIgdGhpcyBjb2RlIHBhdGgsIGJ1dCB0aGF0JiMzOTtzIHVubGlrZWx5LiBQSFkgZHJpdmVycyBhcmUgYWxtb3N0IGFsd2F5cyBwcm9iZWQgYmFzZWQgb24gRGV2aWNlIFRyZWUgbWF0Y2hlcy4gV2l0aG91dCB0aGUgRFQgbm9kZSBkZWZpbmluZyB0aGUgY29ycmVjdCBoYXJkd2FyZSwgdGhlIGRyaXZlciB3b24mIzM5O3QgcHJvYmUsIGFuZCB0aGUgYHBoeV9vcHNgIHdvbiYjMzk7dCBiZSByZWdpc3RlcmVkLCByZW5kZXJpbmcgdGhpcyBjb2RlIHVucmVhY2hhYmxlLgoKVGhlcmVmb3JlLCBnaXZlbiB0aGVzZSBjb25zdHJhaW50cywgSSYjMzk7bSBnb2luZyB0byBzZXQgV29ydGhGdXp6aW5nPWZhbHNlLiBUaGlzIGlzIGEgbm9uLWZ1enphYmxlIHRhcmdldC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMjM6MDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBIWSBkcml2ZXIgKEZyZWVzY2FsZSBMeW54IDI4RyBTZXJEZXMgUEhZKSB3aGljaCByZXF1aXJlcyBzcGVjaWZpYyBwbGF0Zm9ybSBkZXZpY2VzIChlLmcuLCBcJiMzNDtmc2wsbHgyMTYwYS1zZXJkZXMxXCYjMzQ7KSB0byBiZSBpbnN0YW50aWF0ZWQgdmlhIERldmljZSBUcmVlLiBUaGlzIGNvZGUgcGF0aCBpcyBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIGdlbmVyaWMgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UgdXNlZCBmb3IgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGEgaGFyZHdhcmUtc3BlY2lmaWMgUEhZIGRyaXZlciAoRnJlZXNjYWxlIEx5bnggMjhHIFNlckRlcyBQSFkpIHdoaWNoIHJlcXVpcmVzIHNwZWNpZmljIHBsYXRmb3JtIGRldmljZXMgKGUuZy4sIFwmIzM0O2ZzbCxseDIxNjBhLXNlcmRlczFcJiMzNDspIHRvIGJlIGluc3RhbnRpYXRlZCB2aWEgRGV2aWNlIFRyZWUuIFRoaXMgY29kZSBwYXRoIGlzIGltcG9zc2libGUgdG8gcmVhY2ggaW4gZ2VuZXJpYyB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSB1c2VkIGZvciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDIzOjA2OjQzLjQyOTI0NzM3OFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQyNzMzNTAwODgzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBIWSBkcml2ZXIgKEZyZWVzY2FsZSBMeW54IDI4RyBTZXJEZXMgUEhZKSB3aGljaCByZXF1aXJlcyBzcGVjaWZpYyBwbGF0Zm9ybSBkZXZpY2VzIChlLmcuLCBcXFwiZnNsLGx4MjE2MGEtc2VyZGVzMVxcXCIpIHRvIGJlIGluc3RhbnRpYXRlZCB2aWEgRGV2aWNlIFRyZWUuIFRoaXMgY29kZSBwYXRoIGlzIGltcG9zc2libGUgdG8gcmVhY2ggaW4gZ2VuZXJpYyB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSB1c2VkIGZvciBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMjM6MDY6NDMuNDI5MjU3Mjc4WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NDA4Mzc4ODIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA0MmIyYWFhYjZiNDE5ZDBlNzFiMjYwMzQ2N2E1MWQ5YjlmOGU3OTlhXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBXZWQgSnVsIDIyIDIzOjA2OjQxIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmMgYi9kcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jXFxuaW5kZXggMzhhZmNkMDgxYTJhNzUuLjFmZTQwNmFkYzgzY2IzIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmNcXG4rKysgYi9kcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jXFxuQEAgLTEwMDMsNyArMTAwMyw5IEBAIHN0YXRpYyBpbnQgbHlueF8yOGdfc2V0X21vZGUoc3RydWN0IHBoeSAqcGh5LCBlbnVtIHBoeV9tb2RlIG1vZGUsIGludCBzdWJtb2RlKVxcbiBcXG4gXFx0bHlueF8yOGdfbGFuZV9jaGFuZ2VfcHJvdG9fY29uZihsYW5lLCBsYW5lX21vZGUpO1xcbiBcXHRseW54XzI4Z19sYW5lX3JlbWFwX3BsbChsYW5lLCBsYW5lX21vZGUpO1xcbi1cXHRXQVJOX09OKGx5bnhfMjhnX2xhbmVfZW5hYmxlX3BjdnQobGFuZSwgbGFuZV9tb2RlKSk7XFxuK1xcdGVyciA9IGx5bnhfMjhnX2xhbmVfZW5hYmxlX3BjdnQobGFuZSwgbGFuZV9tb2RlKTtcXG4rXFx0aWYgKGVycilcXG4rXFx0XFx0Z290byBvdXQ7XFxuIFxcbiBcXHRsYW5lLVxcdTAwM2Vtb2RlID0gbGFuZV9tb2RlO1xcbiBcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMjM6MDY6NDMuOTcwNjgzNzNaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo0MjE5MjA1OTE3MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBQSFkgZHJpdmVyIChGcmVlc2NhbGUgTHlueCAyOEcgU2VyRGVzIFBIWSkgd2hpY2ggcmVxdWlyZXMgc3BlY2lmaWMgcGxhdGZvcm0gZGV2aWNlcyAoZS5nLiwgXFxcImZzbCxseDIxNjBhLXNlcmRlczFcXFwiKSB0byBiZSBpbnN0YW50aWF0ZWQgdmlhIERldmljZSBUcmVlLiBUaGlzIGNvZGUgcGF0aCBpcyBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIGdlbmVyaWMgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UgdXNlZCBmb3IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNDJiMmFhYWI2YjQxOWQwZTcxYjI2MDM0NjdhNTFkOWI5ZjhlNzk5YVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBXZWQgSnVsIDIyIDIzOjA2OjQxIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuYyBiL2RyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmNcbmluZGV4IDM4YWZjZDA4MWEyYTc1Li4xZmU0MDZhZGM4M2NiMyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmNcbisrKyBiL2RyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmNcbkBAIC0xMDAzLDcgKzEwMDMsOSBAQCBzdGF0aWMgaW50IGx5bnhfMjhnX3NldF9tb2RlKHN0cnVjdCBwaHkgKnBoeSwgZW51bSBwaHlfbW9kZSBtb2RlLCBpbnQgc3VibW9kZSlcbiBcbiBcdGx5bnhfMjhnX2xhbmVfY2hhbmdlX3Byb3RvX2NvbmYobGFuZSwgbGFuZV9tb2RlKTtcbiBcdGx5bnhfMjhnX2xhbmVfcmVtYXBfcGxsKGxhbmUsIGxhbmVfbW9kZSk7XG4tXHRXQVJOX09OKGx5bnhfMjhnX2xhbmVfZW5hYmxlX3BjdnQobGFuZSwgbGFuZV9tb2RlKSk7XG4rXHRlcnIgPSBseW54XzI4Z19sYW5lX2VuYWJsZV9wY3Z0KGxhbmUsIGxhbmVfbW9kZSk7XG4rXHRpZiAoZXJyKVxuK1x0XHRnb3RvIG91dDtcbiBcbiBcdGxhbmUtXHUwMDNlbW9kZSA9IGxhbmVfbW9kZTtcbiBcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDIzOjA2OjQzLjk3MDY4NTU2WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDgyNTM4MDgyNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBQSFkgRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgYGRyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmNgLiBJdCdzIGEgRnJlZXNjYWxlIEx5bnggMjhHIFBIWSBkcml2ZXIuIFRoZSBrZXkgY2hhbmdlIGlzIHRoYXQgYFdBUk5fT05gIGNhbGwgaW4gdGhlIG9yaWdpbmFsIGNvZGUgaGFzIGJlZW4gcmVwbGFjZWQgd2l0aCBwcm9wZXIgZXJyb3IgaGFuZGxpbmcsIHNvIG5vdyB3ZSBoYXZlIGBseW54XzI4Z19sYW5lX2VuYWJsZV9wY3Z0YCByZXR1cm5pbmcgYW4gZXJyb3IgY29kZSBhbmQgdGhhdCByZXN1bHQgY2hlY2tlZC4gVGhpcyBpcyBkZWZpbml0ZWx5IGEgZnVuY3Rpb25hbCBjaGFuZ2Ug4oCTIGEgc3RlcCB1cCBpbiByb2J1c3RuZXNzLlxuXG5UaGUgcmVhbCBxdWVzdGlvbiBoZXJlLCBhcyB3aXRoIGFueSBoYXJkd2FyZSBkcml2ZXIgY2hhbmdlLCBpcyByZWFjaGFiaWxpdHksIHBhcnRpY3VsYXJseSBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LiBDYW4gd2UgZXZlbiB0cmlnZ2VyIHRoaXMgY29kZSBwYXRoIGluIHNvbWV0aGluZyBsaWtlIFFFTVU/IFBIWSBkcml2ZXJzIGFyZSBub3RvcmlvdXNseSBoYXJkd2FyZS1zcGVjaWZpYywgc28gSSBoYXZlIHRvIGNvbnNpZGVyIHdoZXRoZXIgdGhpcyBmdW5jdGlvbmFsaXR5IGlzIGRlcGVuZGVudCBvbiB0aGUgYWN0dWFsIEx5bnggMjhHIGhhcmR3YXJlIGJlaW5nIHByZXNlbnQgb3Igbm90LiBNeSBpbnR1aXRpb24gaXMgdGhhdCBpdCBtaWdodCBiZSwgYnV0IGxldCdzIHF1aWNrbHkgcmV2aWV3IGhvdyB0aGlzIGRyaXZlciBnZXRzIHByb2JlZCB3aXRoaW4gdGhlIGtlcm5lbC4gSSdsbCBuZWVkIHRvIGNoZWNrIHRoZSBwcm9iZSBmdW5jdGlvbiBpbiBgZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuY2AgdG8gc2VlIGlmIHRoZXJlJ3MgYW55IG9idmlvdXMgd2F5IHRoaXMgY29kZSBtaWdodCBiZSBleGVjdXRlZCBkdXJpbmcgYSB2aXJ0dWFsaXplZCBib290LiBJdCB3b3VsZCBiZSBncmVhdCBpZiB0aGlzIGNvdWxkIGJlIHRlc3RlZCB3aXRob3V0IHNwZWNpYWxpemVkIGhhcmR3YXJlLCBzbyBJJ2xsIGJlIGxvb2tpbmcgZm9yIHNvbWV0aGluZyB0aGF0IGluZGljYXRlcyB0aGF0IGl0IGNhbiwgZm9yIGV4YW1wbGUsIGJlIHBhc3NlZCBhIGNlcnRhaW4gaGFyZHdhcmUgY29uZmlnIHRoYXQgUUVNVSBtaWdodCBlbXVsYXRlLiBJIHdhbnQgdG8gc2VlIGlmIHRoaXMgY2hhbmdlIGFmZmVjdHMgc29tZXRoaW5nIGNyaXRpY2FsIG9yIGlzIHB1cmVseSBjb3NtZXRpYy5cblxuXG4iLCJJbnB1dFRva2VucyI6MTk5MywiT3V0cHV0VG9rZW5zIjo0OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIwNSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDIzOjA2OjQ4Ljc5NjA2OTgxN1oiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4ODA1MjczNCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJseW54XzI4Z19wcm9iZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmM9MTE3Nj1zdGF0aWMgY29uc3Qgc3RydWN0IGx5bnhfaW5mbyBseW54X2luZm9fbHgyMTYyYV9zZXJkZXMyID0ge1xcbi0tXFxuZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuYy0xMTg1LVxcbmRyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmM6MTE4NjpzdGF0aWMgaW50IGx5bnhfMjhnX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuYy0xMTg3LXtcXG4tLVxcbmRyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmM9MTIxMz1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBseW54XzI4Z19kcml2ZXIgPSB7XFxuZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuYzoxMjE0OlxcdC5wcm9iZSA9IGx5bnhfMjhnX3Byb2JlLFxcbmRyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmMtMTIxNS1cXHQucmVtb3ZlID0gbHlueF9yZW1vdmUsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDIzOjA2OjQ4Ljg4NDEyNzE3WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mjg1NjMxMzUwNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipEZXZpY2UgVHJlZSBNYXRjaGluZyAtIEluaXRpYWwgQXNzZXNzbWVudCoqXG5cbkFscmlnaHQsIGxldCdzIGRpdmUgc3RyYWlnaHQgaW4uIE15IGZpcnN0IHRob3VnaHQgaXMgdG8gaW1tZWRpYXRlbHkgZXhhbWluZSB0aGF0IGRldmljZSB0cmVlIG1hdGNoIHRhYmxlLiBJdCdzIHRoZSBjcml0aWNhbCBzdGFydGluZyBwb2ludCBmb3IgYW55IGRlYnVnZ2luZyBvciB1bmRlcnN0YW5kaW5nIG9mIGhhcmR3YXJlIGluaXRpYWxpemF0aW9uLCBhbmQgSSBuZWVkIHRvIHNlZSB3aGF0IHRoZSBzeXN0ZW0gKnRoaW5rcyogaXQncyBkZWFsaW5nIHdpdGguIEkgd2FudCB0byBzZWUgd2hhdCBwcm9wZXJ0aWVzIGFyZSB1c2VkIGluIHRoZSBtYXRjaGluZyBwcm9jZXNzIGFuZCB0aGUgc3BlY2lmaWMgc3RyaW5ncyBhc3NvY2lhdGVkIHdpdGggYSBnaXZlbiBub2RlLiBBcmUgdGhlcmUgb2J2aW91cyB0eXBvcywgaW5jb3JyZWN0IGRyaXZlciBuYW1lcywgb3IgbWlzbWF0Y2hlZCBjb21wYXRpYmxlIHN0cmluZ3MgdGhhdCBhcmUgaW1tZWRpYXRlbHkgYXBwYXJlbnQ/IEknbSBsb29raW5nIGZvciB0aGUgc2ltcGxlLCBsb3ctaGFuZ2luZyBmcnVpdDogY29tbW9uIGNvbmZpZ3VyYXRpb24gZXJyb3JzIHRoYXQgY2FuIGJlIHF1aWNrbHkgaWRlbnRpZmllZCBhbmQgY29ycmVjdGVkLiBLbm93aW5nIGhvdyBhIGdpdmVuIGhhcmR3YXJlIGJsb2NrIGlzIGRlc2NyaWJlZCBpbiB0aGUgRFQgaXMgdGhlIGZvdW5kYXRpb24gZm9yIGZ1cnRoZXIgaW52ZXN0aWdhdGlvbi4gVGhpcyB2aWV3IHdpbGwgZGljdGF0ZSB3aGF0IGNvbWVzIG5leHQhXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI4NTQsIk91dHB1dFRva2VucyI6NTAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQyMzowNjo1MS43NDA0NDMzODdaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTMzMTI4MDgwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImx5bnhfMjhnX29mX21hdGNoXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuYz0xMTg2PXN0YXRpYyBpbnQgbHlueF8yOGdfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmMtMTIwMS1cXG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jOjEyMDI6c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbHlueF8yOGdfb2ZfbWF0Y2hfdGFibGVbXSA9IHtcXG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jLTEyMDMtXFx0eyAuY29tcGF0aWJsZSA9IFxcXCJmc2wsbHgyMTYwYS1zZXJkZXMxXFxcIiwgLmRhdGEgPSBcXHUwMDI2bHlueF9pbmZvX2x4MjE2MGFfc2VyZGVzMSB9LFxcbi0tXFxuZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuYy0xMjEwLX07XFxuZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuYzoxMjExOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGx5bnhfMjhnX29mX21hdGNoX3RhYmxlKTtcXG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jLTEyMTItXFxuZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuYz0xMjEzPXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGx5bnhfMjhnX2RyaXZlciA9IHtcXG4tLVxcbmRyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmMtMTIxNy1cXHRcXHQubmFtZSA9IFxcXCJseW54LTI4Z1xcXCIsXFxuZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuYzoxMjE4OlxcdFxcdC5vZl9tYXRjaF90YWJsZSA9IGx5bnhfMjhnX29mX21hdGNoX3RhYmxlLFxcbmRyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmMtMTIxOS1cXHR9LFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQyMzowNjo1MS44NzM1Nzc0MDhaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2Mjc2MTEyMDk0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgdGhlIEZyZWVzY2FsZSBMWDIxNjBBIFNlckRlcyBEcml2ZXIgaW4gUUVNVSoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGxhdGZvcm0gZHJpdmVyIGZvciB0aGUgRnJlZXNjYWxlIExYMjE2MEEgU2VyRGVzLiBJdCBuZWVkcyBhIHNwZWNpZmljIGRldmljZSB0cmVlIG5vZGUsIGxpa2UgYGZzbCxseDIxNjBhLXNlcmRlczFgLCB0byBiZSBwcm9wZXJseSBpbnN0YW50aWF0ZWQuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBjYW4gSSBldmVuICpmdXp6KiB0aGlzIHRoaW5nIHdpdGhpbiBhIGdlbmVyaWMgUUVNVSBlbnZpcm9ubWVudD8gSXQncyBhIHBsYXRmb3JtIGRldmljZSwgd2hpY2ggbWFrZXMgaXQgdHJpY2tpZXIuIE5vcm1hbGx5LCBJJ2QgbGVhbiB0b3dhcmRzIGRldmljZSB0cmVlIG92ZXJsYXlzIG9yIG1heWJlIFN5emthbGxlcidzIHBzZXVkby1kZXZpY2VzIGlmIHRoZXJlJ3MgYW55IGF2YWlsYWJsZSBzdXBwb3J0LCBidXQgUEhZIGRyaXZlcnMsIGVzcGVjaWFsbHkgaGFyZHdhcmUtc3BlY2lmaWMgb25lcyBsaWtlIHRoaXMsIGFyZSBub3RvcmlvdXNseSBoYXJkIHRvIHJlYWNoIHVubGVzcyB5b3Ugc3BlY2lmaWNhbGx5IHRhcmdldCB0aGVtLlxuXG5JJ20gdGhpbmtpbmcsIGFyZSB0aGVyZSBhbnkgc3lzZnMgb3IgbmV0bGluayBpbnRlcmZhY2VzIEkgY291bGQgZXhwbG9pdD8gUGxhdGZvcm0gZGV2aWNlcyBhcmVuJ3QgdXN1YWxseSBleHBvc2VkIHRoYXQgd2F5LCB1bmxlc3MgdGhlcmUncyBzb21lIGRldmljZSB0cmVlIG92ZXJsYXkgaW5qZWN0aW9uIHRyaWNrIEkgY2FuIHVzZSwgd2hpY2ggU3l6a2FsbGVyICpkb2VzKiBvZmZlciB0byBzb21lIGV4dGVudC4gSG1tLCB3YWl0LCBkb2VzIFN5emthbGxlciBoYXZlICpkaXJlY3QqIGluamVjdGlvbiB2aWEgYHN5el9kZXZsaW5rYCBvciBzaW1pbGFyPyBObywgaXQncyBtb3JlIGFib3V0IGluamVjdGluZyBEVCBvdmVybGF5cyBvciB1c2luZyBgc3l6X21vdW50X2ltYWdlYCwgcmlnaHQ/IFRoYXQncyB1c2VmdWwsIGJ1dCBQSFkgZHJpdmVycyB0ZW5kIHRvIGJlIGRlZXBseSBoYXJkd2FyZS1zcGVjaWZpYywgd2hpY2ggbWFrZXMgdGhlIHdob2xlIHRoaW5nIGV2ZW4gbW9yZSBjaGFsbGVuZ2luZy5cblxuT2theSwgc28gdGhlIHJlYWwgcXVlc3Rpb24gaXM6IGlzIHRoZXJlIGFueSB3YXkgSSBjYW4gdHJpZ2dlciB0aGlzIGZyb20gdXNlcnNwYWNlICp3aXRob3V0KiB0aGUgaGFyZHdhcmU/IFRoZSBmdW5jdGlvbiB0aGF0IHdhcyBtb2RpZmllZCBpbiB0aGlzIGRyaXZlciBpcyBgbHlueF8yOGdfc2V0X21vZGVgLiBUaW1lIHRvIHNlZSBpZiBJIGNhbiBmaW5kIHNvbWUgZW50cnkgcG9pbnRzIVxuXG5cbiIsIklucHV0VG9rZW5zIjozNTU5LCJPdXRwdXRUb2tlbnMiOjUwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjI3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDIzOjA2OjU4LjE0OTY5MzU2MloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjAwOTQxNzIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibHlueF8yOGdfc2V0X21vZGVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jPTk3MT1zdGF0aWMgaW50IGx5bnhfMjhnX3ZhbGlkYXRlKHN0cnVjdCBwaHkgKnBoeSwgZW51bSBwaHlfbW9kZSBtb2RlLCBpbnQgc3VibW9kZSxcXG4tLVxcbmRyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmMtOTc2LVxcbmRyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmM6OTc3OnN0YXRpYyBpbnQgbHlueF8yOGdfc2V0X21vZGUoc3RydWN0IHBoeSAqcGh5LCBlbnVtIHBoeV9tb2RlIG1vZGUsIGludCBzdWJtb2RlKVxcbmRyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmMtOTc4LXtcXG4tLVxcbmRyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmM9MTA1Mj1zdGF0aWMgY29uc3Qgc3RydWN0IHBoeV9vcHMgbHlueF8yOGdfb3BzID0ge1xcbi0tXFxuZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuYy0xMDU2LVxcdC5wb3dlcl9vZmZcXHQ9IGx5bnhfMjhnX3Bvd2VyX29mZixcXG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jOjEwNTc6XFx0LnNldF9tb2RlXFx0PSBseW54XzI4Z19zZXRfbW9kZSxcXG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jLTEwNTgtXFx0LnZhbGlkYXRlXFx0PSBseW54XzI4Z192YWxpZGF0ZSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMjM6MDY6NTguMjY5NzkxOTQ0WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDk1NjI4ODk5NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBGcmVlc2NhbGUgTHlueCAyOEcgUEhZIENhbGxiYWNrIGluIGEgVmlydHVhbGl6ZWQgQ29udGV4dCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IGEgYHBoeV9vcHNgIGNhbGxiYWNrIGhlcmUuIFRoZSBpbW1lZGlhdGUgcXVlc3Rpb24gaXMsIGNhbiB3ZSBzb21laG93IGNyZWF0ZSBhIGdlbmVyaWMgUEhZIGFuZCBjYWxsIGl0cyBgc2V0X21vZGVgIGZ1bmN0aW9uPyBJbiB0aGUgcmVhbCB3b3JsZCwgdGhlIFBIWSBmcmFtZXdvcmsgdXN1YWxseSBoYW5kbGVzIFBIWSBjcmVhdGlvbiB3aGVuIGEgcGxhdGZvcm0gZGV2aWNlIGdldHMgcHJvYmVkLiBUaGUgcHJvYmxlbSBpcywgaWYgdGhlIHBsYXRmb3JtIGRldmljZSBpc24ndCBwcmVzZW50LCB0aGUgUEhZIHdvbid0IGJlIGluc3RhbnRpYXRlZC4gQW5kIHRoaXMgaXMgYSBGcmVlc2NhbGUgTHlueCAyOEcgUEhZLCB3aGljaCBzY3JlYW1zIEZyZWVzY2FsZSBTb0Mgc3BlY2lmaWNpdHkuXG5cblVubGVzcyBzeXprYWxsZXIgaXMgcnVubmluZyBvbiBhY3R1YWwgRnJlZXNjYWxlIGhhcmR3YXJlLCBvciBRRU1VIGlzIHNldCB1cCB0byBlbXVsYXRlICp0aGlzIGV4YWN0KiBTb0Mgd2l0aCB0aGUgZHJpdmVyIGVuYWJsZWQsIHdlJ3JlIHByb2JhYmx5IG5vdCBnb2luZyB0byBiZSBhYmxlIHRvIGhpdCBpdC4gV2FpdCBhIG1pbnV0ZSwgc3l6a2FsbGVyICpkb2VzKiBoYXZlIGEgbWVjaGFuaXNtIGZvciB0ZXN0aW5nIHNvbWUgcGxhdGZvcm0gZHJpdmVycyBldmVuIGlmIHRoZWlyIGRldmljZXMgYXJlbid0IHByZXNlbnQuIFRoYXQncyBhIHBvc3NpYmlsaXR5LiBCdXQsIGhvbmVzdGx5LCBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXJzIGxpa2UgdGhpcyDigJMgZXNwZWNpYWxseSBQSFlzIOKAkyBhcmUgdXN1YWxseSBjb21wbGV0ZWx5IHVucmVhY2hhYmxlIGluIGdlbmVyaWMgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBUaGluayBHQ0UsIG9yIHN0YW5kYXJkIFFFTVUgeDg2XzY0L2FybTY0IHdpdGhvdXQgc3BlY2lmaWMgbWFjaGluZSBtb2RlbHMgY29uZmlndXJlZC4gSSB0aGluayB0aGUgYmVzdCBwbGFjZSB0byBzdGFydCBpcyBqdXN0IHRvIHNlZSBpZiB0aGlzIGRyaXZlciBpcyBldmVuIGVuYWJsZWQgaW4gZ2VuZXJpYyBrZXJuZWwgY29uZmlncy4gVGhhdCdzIHRoZSBmaXJzdCBodXJkbGUsIGF0IGxlYXN0LlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NTMyLCJPdXRwdXRUb2tlbnMiOjMxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjA0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDIzOjA3OjAzLjIyNjA4MzYzWiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMzg1ODg5NDUwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIlBIWV9GU0xfTFlOWF8yOEdcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvcGh5L2ZyZWVzY2FsZS9LY29uZmlnPTU3PWNvbmZpZyBQSFlfRlNMX0xZTlhfMTBHXFxuLS1cXG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvS2NvbmZpZy02Ni1cXG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvS2NvbmZpZzo2Nzpjb25maWcgUEhZX0ZTTF9MWU5YXzI4R1xcbmRyaXZlcnMvcGh5L2ZyZWVzY2FsZS9LY29uZmlnLTY4LVxcdHRyaXN0YXRlIFxcXCJGcmVlc2NhbGUgTGF5ZXJzY2FwZSBMeW54IDI4RyBTZXJEZXMgUEhZIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvTWFrZWZpbGU9OD1vYmotJChDT05GSUdfUEhZX0ZTTF9MWU5YXzEwRylcXHRcXHQrPSBwaHktZnNsLWx5bngtMTBnLm9cXG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvTWFrZWZpbGU6OTpvYmotJChDT05GSUdfUEhZX0ZTTF9MWU5YXzI4RylcXHRcXHQrPSBwaHktZnNsLWx5bngtMjhnLm9cXG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvTWFrZWZpbGUtMTAtb2JqLSQoQ09ORklHX1BIWV9GU0xfU0FNU1VOR19IRE1JX1BIWSlcXHQrPSBwaHktZnNsLXNhbXN1bmctaGRtaS5vXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDIzOjA3OjA2LjYxMTk4MTM1WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM2NzczMDU5MTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIHN1bW1hcml6ZWQgYXMgeW91IHJlcXVlc3RlZDpcblxuKipLY29uZmlnIERpdmUgZm9yIFBIWV9GU0xfTFlOWF8yOEcqKlxuXG5Pa2F5LCBmaXJzdCB0aGluZ3MgZmlyc3QsIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgcmVsYXRlZCB0byB0aGUgYFBIWV9GU0xfTFlOWF8yOEdgIHNldHRpbmcuIE15IGluaXRpYWwgaW5zdGluY3QgaXMgdG8gZGlnIGludG8gdGhlIGBLY29uZmlnYCBmaWxlcy4gSSdtIGFzc3VtaW5nIGl0J3MgcHJvYmFibHkgd2l0aGluIHRoZSBgZHJpdmVycy9gIG9yIGBwaHkvYCBkaXJlY3Rvcmllcywgb3IgcG9zc2libHkgdW5kZXIgYSBzcGVjaWZpYyBwbGF0Zm9ybSBkaXJlY3RvcnkgaWYgaXQncyBib2FyZC1zcGVjaWZpYy4gSSdsbCBuZWVkIHRvIHVzZSBhIHNlYXJjaCBzdHJhdGVneSwgc3RhcnRpbmcgd2l0aCBhIGJyb2FkIHNlYXJjaCBmb3IgdGhlIHN5bWJvbCBpdHNlbGYgd2l0aGluIHRoZSBrZXJuZWwgc291cmNlLiBUaGUgZ29hbCBoZXJlIGlzbid0IGp1c3QgdG8gKmZpbmQqIHRoZSBkZWZpbml0aW9uLCBidXQgYWxzbyB0byB1bmRlcnN0YW5kIHRoZSBkZXBlbmRlbmNpZXMg4oCTIHdoYXQgb3RoZXIgb3B0aW9ucyBuZWVkIHRvIGJlIGVuYWJsZWQgZm9yIHRoaXMgUEhZIHRvIGV2ZW4gYmUgY29uc2lkZXJlZD8gSSB3YW50IHRvIHNlZSB0aGUgY29uZGl0aW9ucy4gSSdtIGxvb2tpbmcgZm9yIHRoZSBgZGVwZW5kcyBvbmAgY2xhdXNlcywgYW55IGBzZWxlY3RgIHN0YXRlbWVudHMsIGFuZCB0aGUgYXNzb2NpYXRlZCBoZWxwIHRleHQuIFRoaXMgd2lsbCB0ZWxsIG1lIHdoYXQgc3VwcG9ydGluZyBkcml2ZXJzIG9yIGZlYXR1cmVzIGFyZSBuZWVkZWQuIEknbGwgYWxzbyBiZSB0cnlpbmcgdG8gY2hlY2sgaWYgdGhlIHN5bWJvbCBpcyB1c2VyIHNlbGVjdGFibGUgb3Igb25seSBhIHJlc3VsdCBvZiBvdGhlciBzZXR0aW5ncy4gSSBuZWVkIHRvIG5vdGUgYW55IGRlZmF1bHQgc2V0dGluZ3MgdGhhdCBtaWdodCBpbmZsdWVuY2UgdGhlIGVuYWJsZW1lbnQgb2YgdGhpcyBzcGVjaWZpYyBQSFkuIEZyb20gdGhpcywgSSdsbCBmb3JtdWxhdGUgYSBjb21wbGV0ZSBwaWN0dXJlIG9mIHRoaXMgUEhZJ3MgY29uZmlndXJhdGlvbiBvcHRpb25zIGFuZCB0aGVpciBpbXBsaWNhdGlvbnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUyOTQsIk91dHB1dFRva2VucyI6MzYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQyMzowNzoxMC4yODkyODk5NThaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Nzc3MDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9waHkvZnJlZXNjYWxlL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogNjAsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgNjA6XFx0XFx0ZGVwZW5kcyBvbiBBUkNIX0xBWUVSU0NBUEUgfHwgQ09NUElMRV9URVNUXFxuICA2MTpcXHRcXHRzZWxlY3QgR0VORVJJQ19QSFlcXG4gIDYyOlxcdFxcdHNlbGVjdCBQSFlfRlNMX0xZTlhfQ09SRVxcbiAgNjM6XFx0XFx0aGVscFxcbiAgNjQ6XFx0XFx0ICBFbmFibGUgdGhpcyB0byBhZGQgc3VwcG9ydCBmb3IgdGhlIEx5bnggMTBHIFNlckRlcyBQSFkgYXMgZm91bmQgb25cXG4gIDY1OlxcdFxcdCAgTlhQJ3MgTGF5ZXJzY2FwZSBwbGF0Zm9ybSBzdWNoIGFzIExTMTA4OEEgb3IgTFMxMDI4QS5cXG4gIDY2OlxcdFxcbiAgNjc6XFx0Y29uZmlnIFBIWV9GU0xfTFlOWF8yOEdcXG4gIDY4OlxcdFxcdHRyaXN0YXRlIFxcXCJGcmVlc2NhbGUgTGF5ZXJzY2FwZSBMeW54IDI4RyBTZXJEZXMgUEhZIHN1cHBvcnRcXFwiXFxuICA2OTpcXHRcXHRkZXBlbmRzIG9uIE9GXFxuICA3MDpcXHRcXHRkZXBlbmRzIG9uIEFSQ0hfTEFZRVJTQ0FQRSB8fCBDT01QSUxFX1RFU1RcXG4gIDcxOlxcdFxcdHNlbGVjdCBHRU5FUklDX1BIWVxcbiAgNzI6XFx0XFx0c2VsZWN0IFBIWV9GU0xfTFlOWF9DT1JFXFxuICA3MzpcXHRcXHRoZWxwXFxuICA3NDpcXHRcXHQgIEVuYWJsZSB0aGlzIHRvIGFkZCBzdXBwb3J0IGZvciB0aGUgTHlueCBTZXJEZXMgMjhHIFBIWSBhc1xcbiAgNzU6XFx0XFx0ICBmb3VuZCBvbiBOWFAncyBMYXllcnNjYXBlIHBsYXRmb3JtcyBzdWNoIGFzIExYMjE2MEEuXFxuICA3NjpcXHRcXHQgIFVzZWQgdG8gY2hhbmdlIHRoZSBwcm90b2NvbCBydW5uaW5nIG9uIFNlckRlcyBsYW5lcyBhdCBydW50aW1lLlxcbiAgNzc6XFx0XFx0ICBPbmx5IHVzZWZ1bCBmb3IgYSByZXN0cmljdGVkIHNldCBvZiBFdGhlcm5ldCBwcm90b2NvbHMuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDIzOjA3OjEwLjI4OTM3MTE1OFoiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1ODU0Njg2NzQ0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKldvcnRoRnV6emluZyBEZWNpc2lvbioqXG5cbk9rYXksIHNvIEknbSBhc3Nlc3Npbmcgd2hldGhlciB0aGlzIHBhcnRpY3VsYXIgcGllY2Ugb2YgY29kZSBpcyBldmVuICpyZWFjaGFibGUqIGJ5IGZ1enppbmcuIEl0J3MgdGllZCB0byBgQVJDSF9MQVlFUlNDQVBFYCBvciBgQ09NUElMRV9URVNUYCwgYnV0IHRoYXQncyBhIGJpdCBvZiBhIHJlZCBoZXJyaW5nLiBFdmVuIGlmIGl0J3MgY29tcGlsZWQgaW4sIHdoaWNoIGlzIHBvc3NpYmxlIGV2ZW4gd2l0aG91dCBgQVJDSF9MQVlFUlNDQVBFYCwgdGhlIGRyaXZlciBpdHNlbGYgZGVtYW5kcyBhIHBsYXRmb3JtIGRldmljZS4gU3BlY2lmaWNhbGx5LCBvbmUgd2l0aCB0aGUgYFwiZnNsLGx4MjE2MGEtc2VyZGVzMVwiYCBjb21wYXRpYmxlIHN0cmluZy4gVGhhdCdzIHRoZSByZWFsIGh1cmRsZS5cblxuTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCBjYW4gU3l6a2FsbGVyIGluamVjdCB0aGF0PyBXZWxsLCBub3QgZGlyZWN0bHkuIEkgaW1tZWRpYXRlbHkgZGlzbWlzcyBgc3l6X2RldmxpbmtgIGFuZCBzaW1pbGFyOyBpdCBkb2Vzbid0IGhhdmUgYSBnZW5lcmljIG1lY2hhbmlzbSB0byBjcmVhdGUgKmFyYml0cmFyeSogcGxhdGZvcm0gZGV2aWNlcy4gVGhlIGBzeXpfZ2VuZXRsaW5rYCBjYWxsIHdvbid0IGhlbHAgaGVyZSwgaXQncyBmb3IgbmV0bGluayBzdHVmZi4gSG1tLCB3aGF0IGFib3V0IERUIG92ZXJsYXlzPyBDb3VsZCBiZS4uLiBpZiB0aGUga2VybmVsIGlzIGNvbmZpZ3VyZWQgd2l0aCBgQ09ORklHX09GX09WRVJMQVlgICphbmQqIFN5emthbGxlciBoYXMgYSBkZXNjcmlwdGlvbiBmb3IgKnRoaXMgc3BlY2lmaWMqIFBIWSBkcml2ZXIuIFR5cGljYWxseSwgU3l6a2FsbGVyIGRvZXNuJ3QgYm90aGVyIHdpdGggdGhhdCBmb3IgcmFuZG9tIFBIWSBkcml2ZXJzLlxuXG5TbywgaW4gdGhlIGNvbW1vbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwgbXkgaW5pdGlhbCBhc3Nlc3NtZW50IHdvdWxkIGJlIHRoYXQgdGhpcyBjb2RlIHBhdGggaXMgdW5yZWFjaGFibGUuIEkgd291bGQgaGF2ZSByZXR1cm5lZCBgV29ydGhGdXp6aW5nPWZhbHNlYC5cblxuSG93ZXZlciwgYmVmb3JlIEkgbWFrZSBhIGZpbmFsIGRlY2lzaW9uLCBJJ20gZ29pbmcgdG8gdGFrZSBhIG1vbWVudCBhbmQgcmUtYXNzZXNzLiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgaGF2ZW4ndCBtaXNzZWQgYW55dGhpbmcuIEp1c3QgdG8gYmUgc3VyZSwgSSB3aWxsIGNoZWNrIGlmIHRoZXJlIGFyZSBhbnkgY3VycmVudCBTeXprYWxsZXIgZGVzY3JpcHRpb25zIGZvciB0aGlzIGRldmljZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NTk0MiwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI4NywiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDIzOjA3OjE2LjE0NDA2MDgxMloiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjY0NzU3OTEyMiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJmc2wsbHgyMTYwYS1zZXJkZXMxXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGh5L2ZzbCxseW54LTI4Zy55YW1sPTIwPXByb3BlcnRpZXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGh5L2ZzbCxseW54LTI4Zy55YW1sLTMwLSAgICAgIC0gaXRlbXM6XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BoeS9mc2wsbHlueC0yOGcueWFtbDozMTogICAgICAgICAgLSBjb25zdDogZnNsLGx4MjE2MGEtc2VyZGVzMVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9waHkvZnNsLGx5bngtMjhnLnlhbWwtMzItICAgICAgICAgIC0gY29uc3Q6IGZzbCxseW54LTI4Z1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BoeS9mc2wsbHlueC0yOGcueWFtbD05OD1leGFtcGxlczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9waHkvZnNsLGx5bngtMjhnLnlhbWwtMTA0LSAgICAgIHNlcmRlc0AxZWEwMDAwIHtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGh5L2ZzbCxseW54LTI4Zy55YW1sOjEwNTogICAgICAgIGNvbXBhdGlibGUgPSBcXFwiZnNsLGx4MjE2MGEtc2VyZGVzMVxcXCIsIFxcXCJmc2wsbHlueC0yOGdcXFwiO1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9waHkvZnNsLGx5bngtMjhnLnlhbWwtMTA2LSAgICAgICAgcmVnID0gXFx1MDAzYzB4MCAweDFlYTAwMDAgMHgwIDB4MWUzMFxcdTAwM2U7XFxuLS1cXG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jPTEyMDI9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbHlueF8yOGdfb2ZfbWF0Y2hfdGFibGVbXSA9IHtcXG5kcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1seW54LTI4Zy5jOjEyMDM6XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJmc2wsbHgyMTYwYS1zZXJkZXMxXFxcIiwgLmRhdGEgPSBcXHUwMDI2bHlueF9pbmZvX2x4MjE2MGFfc2VyZGVzMSB9LFxcbmRyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWx5bngtMjhnLmMtMTIwNC1cXHR7IC5jb21wYXRpYmxlID0gXFxcImZzbCxseDIxNjBhLXNlcmRlczJcXFwiLCAuZGF0YSA9IFxcdTAwMjZseW54X2luZm9fbHgyMTYwYV9zZXJkZXMyIH0sXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDIzOjA3OjE4Ljc5MTY0NTYxNFoiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3MzcxMDczMzU2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIFdvcnRoaW5lc3Mgb2YgRnV6emluZyBUaGlzIERyaXZlcioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGltbWVkaWF0ZWx5LCBteSBicmFpbiBnb2VzIGludG8gc2VhcmNoIG1vZGUsIHRyeWluZyB0byBzZWUgaWYgSSBjYW4gbGV2ZXJhZ2UgYW55IG9mIG15IHN0YW5kYXJkIHRvb2xzIHRvIGhlbHAgbWUgZGV0ZXJtaW5lIGlmIGl0J3MgZnV6emFibGUuIEluaXRpYWxseSwgbXkgZmlyc3QgaW5zdGluY3QgaXMgdG8gc2VlIGlmIEkgY2FuIHVzZSBjb2Rlc2VhcmNoIG9yIHJlYWRpbmcgYSBmaWxlIHRvIGxvb2sgZm9yIHJlbGF0ZWQgc3l6a2FsbGVyIGRlc2NyaXB0aW9ucywgYnV0IHRoZSBwcm9tcHQgKnNwZWNpZmljYWxseSogZm9yYmlkcyB0aGF0LiBJIGFsc28gY29uc2lkZXJlZCBsb29raW5nIGZvciBtZW50aW9ucyBvZiAnc3l6XFxfJywgYnV0IHF1aWNrbHkgZGlzbWlzc2VkIGl0IGJhc2VkIG9uIHRoZSBjb25zdHJhaW50cyBvZiB0aGUgcHJvdmlkZWQgdG9vbHMuXG5cblRoZW4gSSByZWFsaXplZCwgaG9sZCBvbiwgdGhlcmUgaXNuJ3QgZXZlbiBhIGB0b29sUmVhZERlc2NyaXB0aW9uYCB0b29sIGxpa2UgdGhlIHByb21wdCBzdWdnZXN0cy4gVGhhdCdzIGEgYml0IGZydXN0cmF0aW5nISBUaGUgcHJvbXB0IHNhaWQgXCJVc2UgdGhlIHt7LnRvb2xSZWFkRGVzY3JpcHRpb259fSB0b29sIGluc3RlYWQsXCIgYnV0LCBpdCdzIG5vdCBldmVuIHRoZXJlLiBJIGRvdWJsZS1jaGVja2VkIHRoZSB0b29sIGxpc3QganVzdCB0byBiZSBzdXJlLlxuXG5CdXQgbGV0J3MgYmUgcmVhbGlzdGljLCB0aGlzIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgUEhZIGRyaXZlciDigJMgaXQncyBmb3IgYSBGcmVlc2NhbGUgTHlueCAyOEcgU2VyRGVzIFBIWS4gVGhhdCB0eXBlIG9mIGhhcmR3YXJlIHVzdWFsbHkgcmVxdWlyZXMgc3BlY2lmaWMgcGxhdGZvcm0gZGV2aWNlcyBkZWZpbmVkIGluIHRoZSBEZXZpY2UgVHJlZSwgdGhpbmdzIGxpa2UgXCJmc2wsbHgyMTYwYS1zZXJkZXMxXCIgdG8gYmUgaW5zdGFudGlhdGVkLiBHaXZlbiBteSBleHBlcmllbmNlLCBJJ20gZXh0cmVtZWx5IGNvbmZpZGVudCB0aGF0IHRoaXMgY29kZSBwYXRoIGlzIG5vdCByZWFjaGFibGUgaW4gc3RhbmRhcmQsIGdlbmVyaWMgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UsIHdoaWNoIGlzIHdoYXQgd2UgdXNlIGZvciBvdXIgZnV6emluZyBlZmZvcnRzLlxuXG5JIGJyaWVmbHkgY29uc2lkZXJlZCBpZiB0aGVyZSBtaWdodCBiZSBzb21lICpnZW5lcmljKiBQSFkgdGVzdGluZyBtb2R1bGUgdGhhdCBjb3VsZCBzb21laG93IHRyaWdnZXIgdGhpcyBjb2RlIHBhdGgsIGJ1dCB0aGF0J3MgdW5saWtlbHkuIFBIWSBkcml2ZXJzIGFyZSBhbG1vc3QgYWx3YXlzIHByb2JlZCBiYXNlZCBvbiBEZXZpY2UgVHJlZSBtYXRjaGVzLiBXaXRob3V0IHRoZSBEVCBub2RlIGRlZmluaW5nIHRoZSBjb3JyZWN0IGhhcmR3YXJlLCB0aGUgZHJpdmVyIHdvbid0IHByb2JlLCBhbmQgdGhlIGBwaHlfb3BzYCB3b24ndCBiZSByZWdpc3RlcmVkLCByZW5kZXJpbmcgdGhpcyBjb2RlIHVucmVhY2hhYmxlLlxuXG5UaGVyZWZvcmUsIGdpdmVuIHRoZXNlIGNvbnN0cmFpbnRzLCBJJ20gZ29pbmcgdG8gc2V0IFdvcnRoRnV6emluZz1mYWxzZS4gVGhpcyBpcyBhIG5vbi1mdXp6YWJsZSB0YXJnZXQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjcxMzUsIk91dHB1dFRva2VucyI6MTA5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mzk3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDIzOjA3OjI2LjE2MjcyMTI0WiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjA2MTEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBQSFkgZHJpdmVyIChGcmVlc2NhbGUgTHlueCAyOEcgU2VyRGVzIFBIWSkgd2hpY2ggcmVxdWlyZXMgc3BlY2lmaWMgcGxhdGZvcm0gZGV2aWNlcyAoZS5nLiwgXFxcImZzbCxseDIxNjBhLXNlcmRlczFcXFwiKSB0byBiZSBpbnN0YW50aWF0ZWQgdmlhIERldmljZSBUcmVlLiBUaGlzIGNvZGUgcGF0aCBpcyBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIGdlbmVyaWMgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UgdXNlZCBmb3IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGEgaGFyZHdhcmUtc3BlY2lmaWMgUEhZIGRyaXZlciAoRnJlZXNjYWxlIEx5bnggMjhHIFNlckRlcyBQSFkpIHdoaWNoIHJlcXVpcmVzIHNwZWNpZmljIHBsYXRmb3JtIGRldmljZXMgKGUuZy4sIFxcXCJmc2wsbHgyMTYwYS1zZXJkZXMxXFxcIikgdG8gYmUgaW5zdGFudGlhdGVkIHZpYSBEZXZpY2UgVHJlZS4gVGhpcyBjb2RlIHBhdGggaXMgaW1wb3NzaWJsZSB0byByZWFjaCBpbiBnZW5lcmljIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFIHVzZWQgZm9yIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow6xgkc[1] Phase: Running StartedAt: 2026-07-22 23:07:37 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6xgkc[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-07-22 23:07:37 +0000 UTC FinishedAt: 2026-07-22 23:07:45 +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,}