Name: series-workflowdg9ft Phase: Failed StartedAt: 2026-09-08 07:12:31 +0000 UTC FinishedAt: 2026-09-08 07:33:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdg9ft[0] Phase: Succeeded StartedAt: 2026-09-08 07:12:31 +0000 UTC FinishedAt: 2026-09-08 07:33:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdg9ft[0].run-triage Phase: Succeeded StartedAt: 2026-09-08 07:12:31 +0000 UTC FinishedAt: 2026-09-08 07:33:38 +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+CgkJCTx0ZD4yMDI2LzA5LzA4IDA3OjMyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgRGV2aWNldHJlZSBiaW5kaW5ncywgQVJNNjQgRFRTIGZpbGVzLCBhbmQgdGhlIGR3bWFjLXNvY2ZwZ2EgcGxhdGZvcm0gRXRoZXJuZXQgZHJpdmVyIGZvciBJbnRlbC9BbHRlcmEgU29DRlBHQSBTb0NzLiBUaGlzIGRyaXZlciBpcyB0aWVkIHRvIHNwZWNpZmljIEFSTS9BUk02NCBTb0MgRGV2aWNldHJlZSBoYXJkd2FyZSBhbmQgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIG9uIHRoZSBhbWQ2NCB0YXJnZXQgYXJjaGl0ZWN0dXJlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wOCAwNzozMjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDA2ZGM3OGQwZTZiMWMxNThkNmYyZDFiMzhhNzQ5NjQ0NmM2MzY1NzBcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIFNlcCA4IDA3OjMyOjU2IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vYWx0ZXJhLnlhbWwgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL2FsdGVyYS55YW1sXG5pbmRleCAzMDMwY2Y0NmZlNzRjLi5lNDMxNDY5YTcxNzUzIDEwMDY0NFxuLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9hbHRlcmEueWFtbFxuJiM0MzsmIzQzOyYjNDM7IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9hbHRlcmEueWFtbFxuQEAgLTExNCw2ICYjNDM7MTE0LDcgQEAgcHJvcGVydGllczpcbiAgICAgICAgICAgICAgIC0gaW50ZWwsc29jZnBnYS1hZ2lsZXg1LXNvY2RrLWRlYnVnXG4gICAgICAgICAgICAgICAtIGludGVsLHNvY2ZwZ2EtYWdpbGV4NS1zb2Nkay1tb2R1bGFyXG4gICAgICAgICAgICAgICAtIGludGVsLHNvY2ZwZ2EtYWdpbGV4NS1zb2Nkay1uYW5kXG4mIzQzOyAgICAgICAgICAgICAgLSBpbnRlbCxzb2NmcGdhLWFnaWxleDUtc29jZGstdHNuLWNmZzJcbiAgICAgICAgICAgLSBjb25zdDogaW50ZWwsc29jZnBnYS1hZ2lsZXg1XG4gXG4gICAgICAgLSBkZXNjcmlwdGlvbjogQWdpbGV4NzIgYm9hcmRzXG5kaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbHRyLHNvY2ZwZ2Etc3RtbWFjLnlhbWwgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbFxuaW5kZXggNjMwODRmNzYyMzczOC4uMmMyN2JmZDVhZjg5MiAxMDA2NDRcbi0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sXG4mIzQzOyYjNDM7JiM0MzsgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbFxuQEAgLTI0LDYgJiM0MzsyNCw3IEBAIHNlbGVjdDpcbiAgICAgICAgICAgLSBhbHRyLHNvY2ZwZ2Etc3RtbWFjXG4gICAgICAgICAgIC0gYWx0cixzb2NmcGdhLXN0bW1hYy1hMTAtczEwXG4gICAgICAgICAgIC0gYWx0cixzb2NmcGdhLXN0bW1hYy1hZ2lsZXg1XG4mIzQzOyAgICAgICAgICAtIGFsdHIsc29jZnBnYS1zdG1tYWMtYWdpbGV4NS10c25cbiBcbiAgIHJlcXVpcmVkOlxuICAgICAtIGNvbXBhdGlibGVcbkBAIC00NCw3ICYjNDM7NDUsOSBAQCBwcm9wZXJ0aWVzOlxuICAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjLTMuNzRhXG4gICAgICAgICAgIC0gY29uc3Q6IHNucHMsZHdtYWNcbiAgICAgICAtIGl0ZW1zOlxuLSAgICAgICAgICAtIGNvbnN0OiBhbHRyLHNvY2ZwZ2Etc3RtbWFjLWFnaWxleDVcbiYjNDM7ICAgICAgICAgIC0gZW51bTpcbiYjNDM7ICAgICAgICAgICAgICAtIGFsdHIsc29jZnBnYS1zdG1tYWMtYWdpbGV4NVxuJiM0MzsgICAgICAgICAgICAgIC0gYWx0cixzb2NmcGdhLXN0bW1hYy1hZ2lsZXg1LXRzblxuICAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3eGdtYWMtMi4xMFxuIFxuICAgY2xvY2tzOlxuZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvTWFrZWZpbGUgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL2ludGVsL01ha2VmaWxlXG5pbmRleCAyNzBjNzBmZGYwODRiLi5jZTdjZjNhNjMyNzUzIDEwMDY0NFxuLS0tIGEvYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9NYWtlZmlsZVxuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9NYWtlZmlsZVxuQEAgLTgsNiAmIzQzOzgsNyBAQCBkdGItJChDT05GSUdfQVJDSF9JTlRFTF9TT0NGUEdBKSAmIzQzOz0gc29jZnBnYV9hZ2lsZXhfbjYwMDAuZHRiIFxcXG4gXHRcdFx0XHRzb2NmcGdhX2FnaWxleDVfc29jZGtfMDEzYi5kdGIgXFxcbiBcdFx0XHRcdHNvY2ZwZ2FfYWdpbGV4NV9zb2Nka19tb2R1bGFyLmR0YiBcXFxuIFx0XHRcdFx0c29jZnBnYV9hZ2lsZXg1X3NvY2RrX25hbmQuZHRiIFxcXG4mIzQzO1x0XHRcdFx0c29jZnBnYV9hZ2lsZXg1X3NvY2RrX3Rzbl9jZmcyLmR0YiBcXFxuIFx0XHRcdFx0c29jZnBnYV9hZ2lsZXg3Ml9zb2Nkay5kdGIgXFxcbiBcdFx0XHRcdHNvY2ZwZ2FfYWdpbGV4N21fc29jZGsuZHRiIFxcXG4gXHRcdFx0XHRzb2NmcGdhX241eF9zb2Nkay5kdGJcbmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2Jvb3QvZHRzL2ludGVsL3NvY2ZwZ2FfYWdpbGV4NV9zb2Nka190c25fY2ZnMi5kdHMgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL2ludGVsL3NvY2ZwZ2FfYWdpbGV4NV9zb2Nka190c25fY2ZnMi5kdHNcbm5ldyBmaWxlIG1vZGUgMTAwNjQ0XG5pbmRleCAwMDAwMDAwMDAwMDAwLi45ZDM5Zjg0M2I0MjQwXG4tLS0gL2Rldi9udWxsXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL2ludGVsL3NvY2ZwZ2FfYWdpbGV4NV9zb2Nka190c25fY2ZnMi5kdHNcbkBAIC0wLDAgJiM0MzsxLDEzMCBAQFxuJiM0MzsvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG4mIzQzOy8qXG4mIzQzOyAqIENvcHlyaWdodCAoQykgMjAyNiwgQWx0ZXJhIENvcnBvcmF0aW9uXG4mIzQzOyAqL1xuJiM0MzsjaW5jbHVkZSBcJiMzNDtzb2NmcGdhX2FnaWxleDUuZHRzaVwmIzM0O1xuJiM0MztcbiYjNDM7LyB7XG4mIzQzO1x0bW9kZWwgPSBcJiMzNDtTb0NGUEdBIEFnaWxleDUgU29DREsgVFNOIENvbmZpZzJcJiMzNDs7XG4mIzQzO1x0Y29tcGF0aWJsZSA9IFwmIzM0O2ludGVsLHNvY2ZwZ2EtYWdpbGV4NS1zb2Nkay10c24tY2ZnMlwmIzM0OywgXCYjMzQ7aW50ZWwsc29jZnBnYS1hZ2lsZXg1XCYjMzQ7O1xuJiM0MztcbiYjNDM7XHRhbGlhc2VzIHtcbiYjNDM7XHRcdHNlcmlhbDAgPSBcdTAwMjZ1YXJ0MDtcbiYjNDM7XHRcdGV0aGVybmV0MSA9IFx1MDAyNmdtYWMxO1xuJiM0MztcdFx0ZXRoZXJuZXQyID0gXHUwMDI2Z21hYzI7XG4mIzQzO1x0fTtcbiYjNDM7XG4mIzQzO1x0Y2hvc2VuIHtcbiYjNDM7XHRcdHN0ZG91dC1wYXRoID0gXCYjMzQ7c2VyaWFsMDoxMTUyMDBuOFwmIzM0OztcbiYjNDM7XHR9O1xuJiM0MztcbiYjNDM7XHRsZWRzIHtcbiYjNDM7XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtncGlvLWxlZHNcJiMzNDs7XG4mIzQzO1xuJiM0MztcdFx0bGVkLTAge1xuJiM0MztcdFx0XHRsYWJlbCA9IFwmIzM0O2hwc19sZWQwXCYjMzQ7O1xuJiM0MztcdFx0XHRncGlvcyA9IFx1MDAzY1x1MDAyNnBvcnRhIDExIEdQSU9fQUNUSVZFX0hJR0hcdTAwM2U7XG4mIzQzO1x0XHR9O1xuJiM0MztcbiYjNDM7XHR9O1xuJiM0MztcbiYjNDM7XHRtZW1vcnlAODAwMDAwMDAge1xuJiM0MztcdFx0ZGV2aWNlX3R5cGUgPSBcJiMzNDttZW1vcnlcJiMzNDs7XG4mIzQzO1x0XHQvKiBXZSBleHBlY3QgdGhlIGJvb3Rsb2FkZXIgdG8gZmlsbCBpbiB0aGUgcmVnICovXG4mIzQzO1x0XHRyZWcgPSBcdTAwM2MweDAgMHg4MDAwMDAwMCAweDAgMHgwXHUwMDNlO1xuJiM0MztcdH07XG4mIzQzO307XG4mIzQzO1xuJiM0MztcdTAwMjZncGlvMCB7XG4mIzQzO1x0c3RhdHVzID0gXCYjMzQ7b2theVwmIzM0OztcbiYjNDM7fTtcbiYjNDM7XG4mIzQzO1x1MDAyNmdwaW8xIHtcbiYjNDM7XHRzdGF0dXMgPSBcJiMzNDtva2F5XCYjMzQ7O1xuJiM0Mzt9O1xuJiM0MztcbiYjNDM7XHUwMDI2Z21hYzEge1xuJiM0MztcdHN0YXR1cyA9IFwmIzM0O29rYXlcJiMzNDs7XG4mIzQzO1x0Y29tcGF0aWJsZSA9IFwmIzM0O2FsdHIsc29jZnBnYS1zdG1tYWMtYWdpbGV4NS10c25cJiMzNDssXG4mIzQzO1x0XHQgICAgIFwmIzM0O3NucHMsZHd4Z21hYy0yLjEwXCYjMzQ7O1xuJiM0MztcdHBoeS1tb2RlID0gXCYjMzQ7cmdtaWktaWRcJiMzNDs7XG4mIzQzO1x0cGh5LWhhbmRsZSA9IFx1MDAzY1x1MDAyNmVtYWMxX3BoeTBcdTAwM2U7XG4mIzQzO1x0bWF4LWZyYW1lLXNpemUgPSBcdTAwM2M5MDAwXHUwMDNlO1xuJiM0MztcbiYjNDM7XHRtZGlvMCB7XG4mIzQzO1x0XHQjYWRkcmVzcy1jZWxscyA9IFx1MDAzYzFcdTAwM2U7XG4mIzQzO1x0XHQjc2l6ZS1jZWxscyA9IFx1MDAzYzBcdTAwM2U7XG4mIzQzO1x0XHRjb21wYXRpYmxlID0gXCYjMzQ7c25wcyxkd21hYy1tZGlvXCYjMzQ7O1xuJiM0MztcbiYjNDM7XHRcdGVtYWMxX3BoeTA6IGV0aGVybmV0LXBoeUAwIHtcbiYjNDM7XHRcdFx0cmVnID0gXHUwMDNjMFx1MDAzZTtcbiYjNDM7XHRcdH07XG4mIzQzO1x0fTtcbiYjNDM7fTtcbiYjNDM7XG4mIzQzO1x1MDAyNmdtYWMyIHtcbiYjNDM7XHRzdGF0dXMgPSBcJiMzNDtva2F5XCYjMzQ7O1xuJiM0MztcdHBoeS1tb2RlID0gXCYjMzQ7cmdtaWktaWRcJiMzNDs7XG4mIzQzO1x0cGh5LWhhbmRsZSA9IFx1MDAzY1x1MDAyNmVtYWMyX3BoeTBcdTAwM2U7XG4mIzQzO1x0bWF4LWZyYW1lLXNpemUgPSBcdTAwM2M5MDAwXHUwMDNlO1xuJiM0MztcbiYjNDM7XHRtZGlvMCB7XG4mIzQzO1x0XHQjYWRkcmVzcy1jZWxscyA9IFx1MDAzYzFcdTAwM2U7XG4mIzQzO1x0XHQjc2l6ZS1jZWxscyA9IFx1MDAzYzBcdTAwM2U7XG4mIzQzO1x0XHRjb21wYXRpYmxlID0gXCYjMzQ7c25wcyxkd21hYy1tZGlvXCYjMzQ7O1xuJiM0MztcbiYjNDM7XHRcdGVtYWMyX3BoeTA6IGV0aGVybmV0LXBoeUAwIHtcbiYjNDM7XHRcdFx0cmVnID0gXHUwMDNjMFx1MDAzZTtcbiYjNDM7XHRcdH07XG4mIzQzO1x0fTtcbiYjNDM7fTtcbiYjNDM7XG4mIzQzO1x1MDAyNm9zYzEge1xuJiM0MztcdGNsb2NrLWZyZXF1ZW5jeSA9IFx1MDAzYzI1MDAwMDAwXHUwMDNlO1xuJiM0Mzt9O1xuJiM0MztcbiYjNDM7XHUwMDI2cXNwaSB7XG4mIzQzO1x0c3RhdHVzID0gXCYjMzQ7b2theVwmIzM0OztcbiYjNDM7XHRmbGFzaEAwIHtcbiYjNDM7XHRcdGNvbXBhdGlibGUgPSBcJiMzNDttaWNyb24sbXQyNXF1MDJnXCYjMzQ7LCBcJiMzNDtqZWRlYyxzcGktbm9yXCYjMzQ7O1xuJiM0MztcdFx0cmVnID0gXHUwMDNjMFx1MDAzZTtcbiYjNDM7XHRcdHNwaS1tYXgtZnJlcXVlbmN5ID0gXHUwMDNjMTAwMDAwMDAwXHUwMDNlO1xuJiM0MztcdFx0bTI1cCxmYXN0LXJlYWQ7XG4mIzQzO1x0XHRjZG5zLHJlYWQtZGVsYXkgPSBcdTAwM2MyXHUwMDNlO1xuJiM0MztcdFx0Y2Rucyx0c2hzbC1ucyA9IFx1MDAzYzUwXHUwMDNlO1xuJiM0MztcdFx0Y2Rucyx0c2QyZC1ucyA9IFx1MDAzYzUwXHUwMDNlO1xuJiM0MztcdFx0Y2Rucyx0Y2hzaC1ucyA9IFx1MDAzYzRcdTAwM2U7XG4mIzQzO1x0XHRjZG5zLHRzbGNoLW5zID0gXHUwMDNjNFx1MDAzZTtcbiYjNDM7XHRcdHNwaS10eC1idXMtd2lkdGggPSBcdTAwM2M0XHUwMDNlO1xuJiM0MztcdFx0c3BpLXJ4LWJ1cy13aWR0aCA9IFx1MDAzYzRcdTAwM2U7XG4mIzQzO1xuJiM0MztcdFx0cGFydGl0aW9ucyB7XG4mIzQzO1x0XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtmaXhlZC1wYXJ0aXRpb25zXCYjMzQ7O1xuJiM0MztcdFx0XHQjYWRkcmVzcy1jZWxscyA9IFx1MDAzYzFcdTAwM2U7XG4mIzQzO1x0XHRcdCNzaXplLWNlbGxzID0gXHUwMDNjMVx1MDAzZTtcbiYjNDM7XG4mIzQzO1x0XHRcdHFzcGlfYm9vdDogcGFydGl0aW9uQDAge1xuJiM0MztcdFx0XHRcdGxhYmVsID0gXCYjMzQ7dS1ib290XCYjMzQ7O1xuJiM0MztcdFx0XHRcdHJlZyA9IFx1MDAzYzB4MCAweDA0MjAwMDAwXHUwMDNlO1xuJiM0MztcdFx0XHR9O1xuJiM0MztcbiYjNDM7XHRcdFx0cm9vdDogcGFydGl0aW9uQDQyMDAwMDAge1xuJiM0MztcdFx0XHRcdGxhYmVsID0gXCYjMzQ7cm9vdFwmIzM0OztcbiYjNDM7XHRcdFx0XHRyZWcgPSBcdTAwM2MweDA0MjAwMDAwIDB4MGJlMDAwMDBcdTAwM2U7XG4mIzQzO1x0XHRcdH07XG4mIzQzO1x0XHR9O1xuJiM0MztcdH07XG4mIzQzO307XG4mIzQzO1xuJiM0MztcdTAwMjZ1YXJ0MCB7XG4mIzQzO1x0c3RhdHVzID0gXCYjMzQ7b2theVwmIzM0OztcbiYjNDM7fTtcbiYjNDM7XG4mIzQzO1x1MDAyNnVzYjAge1xuJiM0MztcdHN0YXR1cyA9IFwmIzM0O29rYXlcJiMzNDs7XG4mIzQzO1x0ZGlzYWJsZS1vdmVyLWN1cnJlbnQ7XG4mIzQzO307XG4mIzQzO1xuJiM0MztcdTAwMjZ3YXRjaGRvZzAge1xuJiM0MztcdHN0YXR1cyA9IFwmIzM0O29rYXlcJiMzNDs7XG4mIzQzO307XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jXG5pbmRleCAxZDdmMGE1N2QyODg5Li4wNjMyMTA1YjQyMGYxIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmNcbkBAIC02OSwxMiAmIzQzOzY5LDEzIEBAIHN0cnVjdCBzb2NmcGdhX2R3bWFjIHtcbiBcdHZvaWQgX19pb21lbSAqdHNlX3Bjc19iYXNlO1xuIFx0dm9pZCBfX2lvbWVtICpzZ21paV9hZGFwdGVyX2Jhc2U7XG4gXHRib29sIGYyaF9wdHBfcmVmX2NsaztcbiYjNDM7XHRwaHlfaW50ZXJmYWNlX3QgbWFjX2ludGVyZmFjZTtcbiBcdGNvbnN0IHN0cnVjdCBzb2NmcGdhX2R3bWFjX29wcyAqb3BzO1xuIH07XG4gXG4gc3RhdGljIHBoeV9pbnRlcmZhY2VfdCBzb2NmcGdhX2dldF9wbGF0X3BoeW1vZGUoc3RydWN0IHNvY2ZwZ2FfZHdtYWMgKmR3bWFjKVxuIHtcbi1cdHJldHVybiBkd21hYy1cdTAwM2VwbGF0X2RhdC1cdTAwM2VwaHlfaW50ZXJmYWNlO1xuJiM0MztcdHJldHVybiBkd21hYy1cdTAwM2VtYWNfaW50ZXJmYWNlO1xuIH1cbiBcbiBzdGF0aWMgdm9pZCBzb2NmcGdhX3NnbWlpX2NvbmZpZyhzdHJ1Y3Qgc29jZnBnYV9kd21hYyAqZHdtYWMsIGJvb2wgZW5hYmxlKVxuQEAgLTY1MCw2ICYjNDM7NjUxLDggQEAgc3RhdGljIGludCBzb2NmcGdhX2R3bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4gXHRwbGF0X2RhdC1cdTAwM2VwY3NfZXhpdCA9IHNvY2ZwZ2FfZHdtYWNfcGNzX2V4aXQ7XG4gXHRwbGF0X2RhdC1cdTAwM2VzZWxlY3RfcGNzID0gc29jZnBnYV9kd21hY19zZWxlY3RfcGNzO1xuIFxuJiM0MztcdGR3bWFjLVx1MDAzZW1hY19pbnRlcmZhY2UgPSBwbGF0X2RhdC1cdTAwM2VwaHlfaW50ZXJmYWNlO1xuJiM0MztcbiBcdG9wcy1cdTAwM2VzZXR1cF9wbGF0X2RhdChkd21hYyk7XG4gXG4gXHRyZXR1cm4gZGV2bV9zdG1tYWNfcGx0ZnJfcHJvYmUocGRldiwgcGxhdF9kYXQsIFx1MDAyNnN0bW1hY19yZXMpO1xuQEAgLTY3MCwxMCAmIzQzOzY3MywyOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHNvY2ZwZ2FfZHdtYWNfb3BzIHNvY2ZwZ2FfYWdpbGV4NV9vcHMgPSB7XG4gXHQuc2V0dXBfcGxhdF9kYXQgPSBzb2NmcGdhX2FnaWxleDVfc2V0dXBfcGxhdF9kYXQsXG4gfTtcbiBcbiYjNDM7c3RhdGljIHZvaWQgc29jZnBnYV9hZ2lsZXg1X3Rzbl9nbWFjX3NldHVwX3BsYXRfZGF0KHN0cnVjdCBzb2NmcGdhX2R3bWFjICpkd21hYylcbiYjNDM7e1xuJiM0MztcdHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQgPSBkd21hYy1cdTAwM2VwbGF0X2RhdDtcbiYjNDM7XG4mIzQzO1x0c29jZnBnYV9hZ2lsZXg1X3NldHVwX3BsYXRfZGF0KGR3bWFjKTtcbiYjNDM7XG4mIzQzO1x0LyogRlBHQSBjb252ZXJ0ZXIgc3VwcGxpZXMgUkdNSUkgZGVsYXlzOyBNQUMgdXNlcyBHTUlJLCBQSFkgZ2V0cyBwbGFpbiBSR01JSSAqL1xuJiM0MztcdGR3bWFjLVx1MDAzZW1hY19pbnRlcmZhY2UgPSBQSFlfSU5URVJGQUNFX01PREVfR01JSTtcbiYjNDM7XHRpZiAocGh5X2ludGVyZmFjZV9tb2RlX2lzX3JnbWlpKHBsYXRfZGF0LVx1MDAzZXBoeV9pbnRlcmZhY2UpKVxuJiM0MztcdFx0cGxhdF9kYXQtXHUwMDNlcGh5X2ludGVyZmFjZSA9IFBIWV9JTlRFUkZBQ0VfTU9ERV9SR01JSTtcbiYjNDM7fVxuJiM0MztcbiYjNDM7c3RhdGljIGNvbnN0IHN0cnVjdCBzb2NmcGdhX2R3bWFjX29wcyBzb2NmcGdhX2FnaWxleDVfdHNuX2dtYWNfb3BzID0ge1xuJiM0MztcdC5zZXRfcGh5X21vZGUgPSBzb2NmcGdhX2dlbjEwX3NldF9waHlfbW9kZSxcbiYjNDM7XHQuc2V0dXBfcGxhdF9kYXQgPSBzb2NmcGdhX2FnaWxleDVfdHNuX2dtYWNfc2V0dXBfcGxhdF9kYXQsXG4mIzQzO307XG4mIzQzO1xuIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHNvY2ZwZ2FfZHdtYWNfbWF0Y2hbXSA9IHtcbiBcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDthbHRyLHNvY2ZwZ2Etc3RtbWFjXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNnNvY2ZwZ2FfZ2VuNV9vcHMgfSxcbiBcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDthbHRyLHNvY2ZwZ2Etc3RtbWFjLWExMC1zMTBcJiMzNDssIC5kYXRhID0gXHUwMDI2c29jZnBnYV9nZW4xMF9vcHMgfSxcbiBcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDthbHRyLHNvY2ZwZ2Etc3RtbWFjLWFnaWxleDVcJiMzNDssIC5kYXRhID0gXHUwMDI2c29jZnBnYV9hZ2lsZXg1X29wcyB9LFxuJiM0MztcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDthbHRyLHNvY2ZwZ2Etc3RtbWFjLWFnaWxleDUtdHNuXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNnNvY2ZwZ2FfYWdpbGV4NV90c25fZ21hY19vcHMgfSxcbiBcdHsgfVxuIH07XG4gTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgc29jZnBnYV9kd21hY19tYXRjaCk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDggMDc6MzI8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Y29yZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgRGV2aWNldHJlZSBiaW5kaW5ncywgQVJNNjQgRFRTIGZpbGVzLCBhbmQgdGhlIGR3bWFjLXNvY2ZwZ2EgcGxhdGZvcm0gRXRoZXJuZXQgZHJpdmVyIGZvciBJbnRlbC9BbHRlcmEgU29DRlBHQSBTb0NzLiBUaGlzIGRyaXZlciBpcyB0aWVkIHRvIHNwZWNpZmljIEFSTS9BUk02NCBTb0MgRGV2aWNldHJlZSBoYXJkd2FyZSBhbmQgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIG9uIHRoZSBhbWQ2NCB0YXJnZXQgYXJjaGl0ZWN0dXJlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIgYW5kIHNlY3VyaXR5IGVuZ2luZWVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGV2YWx1YXRlIHdoZXRoZXIgaXQgd2FycmFudHMgZnV6emluZyB3aXRoIHN5emthbGxlci4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24gaW50ZXJuYWwgYXNzdW1wdGlvbnMuIFlvdSBtdXN0IGFjdGl2ZWx5IHVzZSB5b3VyIGNvZGUgYWNjZXNzCnRvb2xzIHRvIGluc3BlY3QgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSwgY2FsbGVycywgYW5kIHN1cnJvdW5kaW5nIGNvbnRleHQuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoxLiBDT1JFIFRSSUFHRSBQSElMT1NPUEhZCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClRoZSBnb2FsIG9mIHBhdGNoIGZ1enppbmcgaXMgdG8gZGlzY292ZXIgY3Jhc2hlcywgcmVncmVzc2lvbnMsIGV4cG9zZWQgbGF0ZW50IGJ1Z3MsCmFuZCBuZXdseSB0cmlnZ2VyZWQgYXNzZXJ0aW9ucyBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBzZXJpZXMuCgotIFJFQUNIQUJJTElUWSBJUyBUSEUgUFJJTUFSWSBHQVRFOgogIEZ1enppbmcgY2FuIG9ubHkgZGlzY292ZXIgYnVncyBpbiBjb2RlIHRoYXQgY2FuIGFjdHVhbGx5IGV4ZWN1dGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQKICBlbnZpcm9ubWVudHMgKEdDRSBvciBRRU1VLCB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgZGV2aWNlcyBsaWtlIFVTQiBnYWRnZXRzLCBuZXRkZXYsIHR1bi90YXApLgogIElmIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSAoc2VlIFNlY3Rpb24gMiksIGl0IE1VU1QgTk9UIGJlIGZ1enplZCwKICByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgYWRkcyBhc3NlcnRpb25zIG9yIGNvbXBsZXggbG9naWMuCgotIERPIE5PVCBCTElORExZIFRSVVNUICYjMzQ7Tk8gRlVOQ1RJT05BTCBDSEFOR0UmIzM0OyAoTkZDSSkgT1IgJiMzNDtSRUZBQ1RPUklORyYjMzQ7IENMQUlNUzoKICBQYXRjaCBhdXRob3JzIHJvdXRpbmVseSBsYWJlbCBjaGFuZ2VzIGFzICYjMzQ7Y2xlYW51cHMmIzM0OywgJiMzNDtyZWZhY3RvcmluZ3MmIzM0Oywgb3Igc3RhdGUKICAmIzM0O05vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVkJiMzNDsuIERvIE5PVCB0YWtlIHRoZXNlIGNsYWltcyBhdCBmYWNlIHZhbHVlLgogIENvZGUgcmVmYWN0b3JpbmdzIHRoYXQgcmVhcnJhbmdlIGxvZ2ljLCBpbnRyb2R1Y2UgaGVscGVyIGZ1bmN0aW9ucywgb3IgYWx0ZXIgc3RhdGUgbWFuYWdlbWVudAogIGluIGNvcmUgc3Vic3lzdGVtcyBmcmVxdWVudGx5IGludHJvZHVjZSBzdWJ0bGUgc2VtYW50aWMgc2hpZnRzIG9yIHVuY292ZXIgbGF0ZW50IGtlcm5lbCBidWdzLgogIElmIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUgaXMgbW9kaWZpZWQgb3IgcmVmYWN0b3JlZCwgaXQgTVVTVCBiZSBmdXp6ZWQuCgotIE5FVyBPUiBNT0RJRklFRCBBU1NFUlRJT05TIElOIFJFQUNIQUJMRSBDT0RFIE1VU1QgQkUgRlVaWkVEOgogIFdoZW4gYSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzIHJ1bnRpbWUgY2hlY2tzIG9yIGFzc2VydGlvbnMgKGUuZy4sIFdBUk5fT04qLCBWTV9XQVJOX09OKiwKICBCVUdfT04qLCBsb2NrZGVwX2Fzc2VydCopIGluIHJlYWNoYWJsZSBjb2RlIHBhdGhzLCBpdCBlbmZvcmNlcyBuZXcgb3Igc3RyaWN0ZXIgaW52YXJpYW50cy4KICBFdmVuIGlmIHRoZSBhdXRob3IgYmVsaWV2ZXMgdGhlIGludmFyaWFudCBhbHdheXMgaG9sZHMsIGZ1enppbmcgaXMgZXNzZW50aWFsIHRvIHZlcmlmeSB3aGV0aGVyCiAgYW4gdW51c3VhbCBzZXF1ZW5jZSBvZiBvcGVyYXRpb25zIGNhbiB2aW9sYXRlIGl0LgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMi4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPWZhbHNlIChORUdBVElWRSBDUklURVJJQSkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBPTkxZIElGIGFsbCBtb2RpZmllZCBjb2RlIGZhbGxzIHN0cmljdGx5IGludG8gb25lIG9yIG1vcmUgb2YgdGhlc2UgY2F0ZWdvcmllczoKCi0gTm9uLWtlcm5lbCBhbmQgbm9uLWV4ZWN1dGFibGUgY2hhbmdlczoKICAqIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIGNvbW1lbnRzLCBvciBzcGVsbGluZyBmaXhlcy4KICAqIFVzZXItc3BhY2UgZGlyZWN0b3JpZXMsIHNlbGYtdGVzdHMsIHNhbXBsZXMsIG9yIHNjcmlwdHMgKGUuZy4sIHRvb2xzLywgc2FtcGxlcy8sIHNjcmlwdHMvLCB1c3IvKQogICAgdGhhdCBkbyBub3QgYWZmZWN0IHRoZSBjb21waWxlZCBrZXJuZWwgaW1hZ2UgKHZtbGludXgpIG9yIGtlcm5lbCBtb2R1bGVzLgogICogUHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZyAoZS5nLiwgbWVzc2FnZSBzdHJpbmdzIGluIHByX2VyciwgcHJpbnRrLCBkZXZfaW5mbykgb3IgdHJhY2Vwb2ludHMKICAgIHRoYXQgZG8gbm90IGFsdGVyIGNvbnRyb2wgZmxvdyBvciBkYXRhIHN0cnVjdHVyZXMuCiAgKiBCdWlsZCBzeXN0ZW0gb3IgS2NvbmZpZyBjaGFuZ2VzIHRoYXQgZG8gbm90IGFsdGVyIGNvbXBpbGVkIEMgbG9naWMuCi0gU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlOgogICogVmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoZXMsIFNtYXJ0TklDcywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogICAgaW9uaWMsIGFtZGdwdSkgcmVxdWlyaW5nIHBoeXNpY2FsIEFTSUMvUENJZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBVbnJlYWNoYWJsZSBleGVjdXRpb24gcGF0aHM6CiAgKiBEcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzICgucmVtb3ZlLCAuc2h1dGRvd24sIHBjaV91bnJlZ2lzdGVyX2RyaXZlcikgZXhlY3V0ZWQgb25seSBkdXJpbmcKICAgIHBoeXNpY2FsIFBDSSBob3QtdW5wbHVnIG9yIG1hbnVhbCBzeXNmcyBkcml2ZXIgdW5iaW5kaW5nLgogICogQ29kZSBwYXRocyBleGNsdXNpdmUgdG8gYXJjaGl0ZWN0dXJlcyBvdGhlciB0aGFuIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMy4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPXRydWUgKFBPU0lUSVZFIENSSVRFUklBKQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSZXR1cm4gV29ydGhGdXp6aW5nPXRydWUgd2hlbmV2ZXIgdGhlIHBhdGNoIHRvdWNoZXMgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSwgaW5jbHVkaW5nOgotIENvcmUgU3Vic3lzdGVtczoKICAqIEFueSBsb2dpYyBtb2RpZmljYXRpb25zIGluIG1lbW9yeSBtYW5hZ2VtZW50IChtbS8pLCBzeW5jaHJvbml6YXRpb24vbG9ja2luZyAoa2VybmVsL2xvY2tpbmcvKSwKICAgIEJQRiwgc2NoZWR1bGVyLCBjb3JlIG5ldHdvcmtpbmcsIFZGUywgb3Igc3lzY2FsbCBoYW5kbGluZy4KLSBSZWZhY3RvcmluZ3MgYW5kIENvZGUgQ2xlYW51cHM6CiAgKiBBbnkgcmVzdHJ1Y3R1cmluZyBvZiByZWFjaGFibGUgZGF0YSBzdHJ1Y3R1cmVzLCBoZWxwZXIgYWJzdHJhY3Rpb25zLCBvciBhbGdvcml0aG0gZmxvd3MuCi0gUnVudGltZSBBc3NlcnRpb25zIGFuZCBEZWZlbnNpdmUgQ2hlY2tzOgogICogQW55IGludHJvZHVjdGlvbiBvciBhbHRlcmF0aW9uIG9mIGFzc2VydGlvbnMgKFdBUk5fT04qLCBWTV9XQVJOX09OKiwgQlVHX09OKiwgZXRjLikgaW4gcmVhY2hhYmxlIHBhdGhzLgotIFJlYWNoYWJsZSBEcml2ZXJzIGFuZCBQcm90b2NvbHM6CiAgKiBEcml2ZXJzIGFjY2Vzc2libGUgdmlhIHZpcnR1YWwgYnVzZXMgKHZpcnRpbywgVVNCIGdhZGdldCwgbG9vcGJhY2ssIG5ldGxpbmssIGJpbmRlciwgc29ja2V0cywgZXRjLikuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo0LiBFWFRSQUNUSU5HIEZvY3VzU3ltYm9scyAoUFJFVkVOVElORyBESUxVVElPTikKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KV2hlbiBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IG11c3QgZXh0cmFjdCBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIGludG8gRm9jdXNTeW1ib2xzIHRvIGd1aWRlIHRoZSBmdXp6ZXI6CgotIEFWT0lEIFVCSVFVSVRPVVMgTElGRUNZQ0xFIEhPVC1QQVRIUzoKICBEbyBOT1QgbGlzdCBnZW5lcmljLCB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYWxsZWQgYnkgYWxtb3N0IGV2ZXJ5IHByb2dyYW0gaW4gdGhlIGNvcnB1cwogIChpbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0bzogZ2VuZXJhbCBtZW1vcnkgYWxsb2NhdG9ycyBhbmQgZGVhbGxvY2F0b3JzLCBwYWdlIGZhdWx0CiAgYW5kIHRyYXAgaGFuZGxlcnMsIG9yIGNvcmUgc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXM7IHRoaXMgaXMgbm90IGFuIGV4aGF1c3RpdmUgbGlzdCkuCiAgTGlzdGluZyB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYXVzZXMgdGhlIGZ1enplciB0byBjbGFzc2lmeSB0aG91c2FuZHMgb2YgdW5yZWxhdGVkIHRlc3RzIGFzICYjMzQ7Zm9jdXNlZCYjMzQ7LAogIHdoaWNoIHNldmVyZWx5IGRpbHV0ZXMgZnV6emluZyBlZmZvcnQgYXdheSBmcm9tIHRoZSBhY3R1YWwgY2hhbmdlcy4KCi0gVEFSR0VUIFNQRUNJRklDIEZFQVRVUkUgTE9HSUMgQU5EIEVOVFJZUE9JTlRTOgogIExpc3QgZnVuY3Rpb25zIHRoYXQgc3BlY2lmaWNhbGx5IGltcGxlbWVudCB0aGUgbG9naWMgYmVpbmcgYWRkZWQgb3IgYWx0ZXJlZCwgb3IgZGlyZWN0IEFQSSBlbnRyeXBvaW50cwogIGZvciB0aGUgc3Vic3lzdGVtIGZlYXR1cmUgdW5kZXIgcmV2aWV3LgoKLSBIQU5ETElORyBTVEFUSUMgSU5MSU5FIEZVTkNUSU9OUyBJTiBIRUFERVJTICguaCk6CiAgQ29tcGlsZXItaW5saW5lZCBzdGF0aWMgZnVuY3Rpb25zIChzdWNoIGFzIHN0YXRpYyBpbmxpbmVzIGluIG1tLyouaCBvciBpbmNsdWRlL2xpbnV4LyouaCkgbGFjawogIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMgaW4gdm1saW51eCBhbmQgY2Fubm90IGJlIHRhcmdldGVkIGRpcmVjdGx5IGJ5IHN5bWJvbCBjb3ZlcmFnZSBmaWx0ZXJzLgogIElmIHRoZSBjaGFuZ2VzIGFyZSBwcmltYXJpbHkgaW4gc3RhdGljIGlubGluZSBoZWxwZXJzLCBpZGVudGlmeSBub24tc3RhdGljLCBmZWF0dXJlLXNwZWNpZmljIGNhbGxlcgogIGZ1bmN0aW9ucyBpbiAuYyBmaWxlcyB0aGF0IGV4ZXJjaXNlIHRoZW0gKGF2b2lkaW5nIHViaXF1aXRvdXMgbGlmZWN5Y2xlIHdyYXBwZXJzKS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjUuIElERU5USUZZSU5HIEVuYWJsZUNvbmZpZ3MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSBjb21waWxlIGFuZCByZWFjaCB0aGUgbW9kaWZpZWQgY29kZToKLSBJbnNwZWN0IEtjb25maWcgZmlsZXMgYW5kICNpZmRlZiBndWFyZHM7IGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgotIENoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncyBuZWVkZWQuCi0gU3RyaXAgYW55ICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPlRhcmdldCBhcmNoaXRlY3R1cmU6IGFtZDY0CgpGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDA2ZGM3OGQwZTZiMWMxNThkNmYyZDFiMzhhNzQ5NjQ0NmM2MzY1NzAKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVHVlIFNlcCA4IDA3OjMyOjU2IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9hbHRlcmEueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vYWx0ZXJhLnlhbWwKaW5kZXggMzAzMGNmNDZmZTc0Yy4uZTQzMTQ2OWE3MTc1MyAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9hbHRlcmEueWFtbAomIzQzOyYjNDM7JiM0MzsgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL2FsdGVyYS55YW1sCkBAIC0xMTQsNiAmIzQzOzExNCw3IEBAIHByb3BlcnRpZXM6CiAgICAgICAgICAgICAgIC0gaW50ZWwsc29jZnBnYS1hZ2lsZXg1LXNvY2RrLWRlYnVnCiAgICAgICAgICAgICAgIC0gaW50ZWwsc29jZnBnYS1hZ2lsZXg1LXNvY2RrLW1vZHVsYXIKICAgICAgICAgICAgICAgLSBpbnRlbCxzb2NmcGdhLWFnaWxleDUtc29jZGstbmFuZAomIzQzOyAgICAgICAgICAgICAgLSBpbnRlbCxzb2NmcGdhLWFnaWxleDUtc29jZGstdHNuLWNmZzIKICAgICAgICAgICAtIGNvbnN0OiBpbnRlbCxzb2NmcGdhLWFnaWxleDUKIAogICAgICAgLSBkZXNjcmlwdGlvbjogQWdpbGV4NzIgYm9hcmRzCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sCmluZGV4IDYzMDg0Zjc2MjM3MzguLjJjMjdiZmQ1YWY4OTIgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sCiYjNDM7JiM0MzsmIzQzOyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sCkBAIC0yNCw2ICYjNDM7MjQsNyBAQCBzZWxlY3Q6CiAgICAgICAgICAgLSBhbHRyLHNvY2ZwZ2Etc3RtbWFjCiAgICAgICAgICAgLSBhbHRyLHNvY2ZwZ2Etc3RtbWFjLWExMC1zMTAKICAgICAgICAgICAtIGFsdHIsc29jZnBnYS1zdG1tYWMtYWdpbGV4NQomIzQzOyAgICAgICAgICAtIGFsdHIsc29jZnBnYS1zdG1tYWMtYWdpbGV4NS10c24KIAogICByZXF1aXJlZDoKICAgICAtIGNvbXBhdGlibGUKQEAgLTQ0LDcgJiM0Mzs0NSw5IEBAIHByb3BlcnRpZXM6CiAgICAgICAgICAgLSBjb25zdDogc25wcyxkd21hYy0zLjc0YQogICAgICAgICAgIC0gY29uc3Q6IHNucHMsZHdtYWMKICAgICAgIC0gaXRlbXM6Ci0gICAgICAgICAgLSBjb25zdDogYWx0cixzb2NmcGdhLXN0bW1hYy1hZ2lsZXg1CiYjNDM7ICAgICAgICAgIC0gZW51bToKJiM0MzsgICAgICAgICAgICAgIC0gYWx0cixzb2NmcGdhLXN0bW1hYy1hZ2lsZXg1CiYjNDM7ICAgICAgICAgICAgICAtIGFsdHIsc29jZnBnYS1zdG1tYWMtYWdpbGV4NS10c24KICAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3eGdtYWMtMi4xMAogCiAgIGNsb2NrczoKZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvTWFrZWZpbGUgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL2ludGVsL01ha2VmaWxlCmluZGV4IDI3MGM3MGZkZjA4NGIuLmNlN2NmM2E2MzI3NTMgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvTWFrZWZpbGUKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9NYWtlZmlsZQpAQCAtOCw2ICYjNDM7OCw3IEBAIGR0Yi0kKENPTkZJR19BUkNIX0lOVEVMX1NPQ0ZQR0EpICYjNDM7PSBzb2NmcGdhX2FnaWxleF9uNjAwMC5kdGIgXAogCQkJCXNvY2ZwZ2FfYWdpbGV4NV9zb2Nka18wMTNiLmR0YiBcCiAJCQkJc29jZnBnYV9hZ2lsZXg1X3NvY2RrX21vZHVsYXIuZHRiIFwKIAkJCQlzb2NmcGdhX2FnaWxleDVfc29jZGtfbmFuZC5kdGIgXAomIzQzOwkJCQlzb2NmcGdhX2FnaWxleDVfc29jZGtfdHNuX2NmZzIuZHRiIFwKIAkJCQlzb2NmcGdhX2FnaWxleDcyX3NvY2RrLmR0YiBcCiAJCQkJc29jZnBnYV9hZ2lsZXg3bV9zb2Nkay5kdGIgXAogCQkJCXNvY2ZwZ2FfbjV4X3NvY2RrLmR0YgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9zb2NmcGdhX2FnaWxleDVfc29jZGtfdHNuX2NmZzIuZHRzIGIvYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9zb2NmcGdhX2FnaWxleDVfc29jZGtfdHNuX2NmZzIuZHRzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjlkMzlmODQzYjQyNDAKLS0tIC9kZXYvbnVsbAomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL2ludGVsL3NvY2ZwZ2FfYWdpbGV4NV9zb2Nka190c25fY2ZnMi5kdHMKQEAgLTAsMCAmIzQzOzEsMTMwIEBACiYjNDM7Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQomIzQzOy8qCiYjNDM7ICogQ29weXJpZ2h0IChDKSAyMDI2LCBBbHRlcmEgQ29ycG9yYXRpb24KJiM0MzsgKi8KJiM0MzsjaW5jbHVkZSAmIzM0O3NvY2ZwZ2FfYWdpbGV4NS5kdHNpJiMzNDsKJiM0MzsKJiM0MzsvIHsKJiM0MzsJbW9kZWwgPSAmIzM0O1NvQ0ZQR0EgQWdpbGV4NSBTb0NESyBUU04gQ29uZmlnMiYjMzQ7OwomIzQzOwljb21wYXRpYmxlID0gJiMzNDtpbnRlbCxzb2NmcGdhLWFnaWxleDUtc29jZGstdHNuLWNmZzImIzM0OywgJiMzNDtpbnRlbCxzb2NmcGdhLWFnaWxleDUmIzM0OzsKJiM0MzsKJiM0MzsJYWxpYXNlcyB7CiYjNDM7CQlzZXJpYWwwID0gJmFtcDt1YXJ0MDsKJiM0MzsJCWV0aGVybmV0MSA9ICZhbXA7Z21hYzE7CiYjNDM7CQlldGhlcm5ldDIgPSAmYW1wO2dtYWMyOwomIzQzOwl9OwomIzQzOwomIzQzOwljaG9zZW4gewomIzQzOwkJc3Rkb3V0LXBhdGggPSAmIzM0O3NlcmlhbDA6MTE1MjAwbjgmIzM0OzsKJiM0MzsJfTsKJiM0MzsKJiM0MzsJbGVkcyB7CiYjNDM7CQljb21wYXRpYmxlID0gJiMzNDtncGlvLWxlZHMmIzM0OzsKJiM0MzsKJiM0MzsJCWxlZC0wIHsKJiM0MzsJCQlsYWJlbCA9ICYjMzQ7aHBzX2xlZDAmIzM0OzsKJiM0MzsJCQlncGlvcyA9ICZsdDsmYW1wO3BvcnRhIDExIEdQSU9fQUNUSVZFX0hJR0gmZ3Q7OwomIzQzOwkJfTsKJiM0MzsKJiM0MzsJfTsKJiM0MzsKJiM0MzsJbWVtb3J5QDgwMDAwMDAwIHsKJiM0MzsJCWRldmljZV90eXBlID0gJiMzNDttZW1vcnkmIzM0OzsKJiM0MzsJCS8qIFdlIGV4cGVjdCB0aGUgYm9vdGxvYWRlciB0byBmaWxsIGluIHRoZSByZWcgKi8KJiM0MzsJCXJlZyA9ICZsdDsweDAgMHg4MDAwMDAwMCAweDAgMHgwJmd0OzsKJiM0MzsJfTsKJiM0Mzt9OwomIzQzOwomIzQzOyZhbXA7Z3BpbzAgewomIzQzOwlzdGF0dXMgPSAmIzM0O29rYXkmIzM0OzsKJiM0Mzt9OwomIzQzOwomIzQzOyZhbXA7Z3BpbzEgewomIzQzOwlzdGF0dXMgPSAmIzM0O29rYXkmIzM0OzsKJiM0Mzt9OwomIzQzOwomIzQzOyZhbXA7Z21hYzEgewomIzQzOwlzdGF0dXMgPSAmIzM0O29rYXkmIzM0OzsKJiM0MzsJY29tcGF0aWJsZSA9ICYjMzQ7YWx0cixzb2NmcGdhLXN0bW1hYy1hZ2lsZXg1LXRzbiYjMzQ7LAomIzQzOwkJICAgICAmIzM0O3NucHMsZHd4Z21hYy0yLjEwJiMzNDs7CiYjNDM7CXBoeS1tb2RlID0gJiMzNDtyZ21paS1pZCYjMzQ7OwomIzQzOwlwaHktaGFuZGxlID0gJmx0OyZhbXA7ZW1hYzFfcGh5MCZndDs7CiYjNDM7CW1heC1mcmFtZS1zaXplID0gJmx0OzkwMDAmZ3Q7OwomIzQzOwomIzQzOwltZGlvMCB7CiYjNDM7CQkjYWRkcmVzcy1jZWxscyA9ICZsdDsxJmd0OzsKJiM0MzsJCSNzaXplLWNlbGxzID0gJmx0OzAmZ3Q7OwomIzQzOwkJY29tcGF0aWJsZSA9ICYjMzQ7c25wcyxkd21hYy1tZGlvJiMzNDs7CiYjNDM7CiYjNDM7CQllbWFjMV9waHkwOiBldGhlcm5ldC1waHlAMCB7CiYjNDM7CQkJcmVnID0gJmx0OzAmZ3Q7OwomIzQzOwkJfTsKJiM0MzsJfTsKJiM0Mzt9OwomIzQzOwomIzQzOyZhbXA7Z21hYzIgewomIzQzOwlzdGF0dXMgPSAmIzM0O29rYXkmIzM0OzsKJiM0MzsJcGh5LW1vZGUgPSAmIzM0O3JnbWlpLWlkJiMzNDs7CiYjNDM7CXBoeS1oYW5kbGUgPSAmbHQ7JmFtcDtlbWFjMl9waHkwJmd0OzsKJiM0MzsJbWF4LWZyYW1lLXNpemUgPSAmbHQ7OTAwMCZndDs7CiYjNDM7CiYjNDM7CW1kaW8wIHsKJiM0MzsJCSNhZGRyZXNzLWNlbGxzID0gJmx0OzEmZ3Q7OwomIzQzOwkJI3NpemUtY2VsbHMgPSAmbHQ7MCZndDs7CiYjNDM7CQljb21wYXRpYmxlID0gJiMzNDtzbnBzLGR3bWFjLW1kaW8mIzM0OzsKJiM0MzsKJiM0MzsJCWVtYWMyX3BoeTA6IGV0aGVybmV0LXBoeUAwIHsKJiM0MzsJCQlyZWcgPSAmbHQ7MCZndDs7CiYjNDM7CQl9OwomIzQzOwl9OwomIzQzO307CiYjNDM7CiYjNDM7JmFtcDtvc2MxIHsKJiM0MzsJY2xvY2stZnJlcXVlbmN5ID0gJmx0OzI1MDAwMDAwJmd0OzsKJiM0Mzt9OwomIzQzOwomIzQzOyZhbXA7cXNwaSB7CiYjNDM7CXN0YXR1cyA9ICYjMzQ7b2theSYjMzQ7OwomIzQzOwlmbGFzaEAwIHsKJiM0MzsJCWNvbXBhdGlibGUgPSAmIzM0O21pY3JvbixtdDI1cXUwMmcmIzM0OywgJiMzNDtqZWRlYyxzcGktbm9yJiMzNDs7CiYjNDM7CQlyZWcgPSAmbHQ7MCZndDs7CiYjNDM7CQlzcGktbWF4LWZyZXF1ZW5jeSA9ICZsdDsxMDAwMDAwMDAmZ3Q7OwomIzQzOwkJbTI1cCxmYXN0LXJlYWQ7CiYjNDM7CQljZG5zLHJlYWQtZGVsYXkgPSAmbHQ7MiZndDs7CiYjNDM7CQljZG5zLHRzaHNsLW5zID0gJmx0OzUwJmd0OzsKJiM0MzsJCWNkbnMsdHNkMmQtbnMgPSAmbHQ7NTAmZ3Q7OwomIzQzOwkJY2Rucyx0Y2hzaC1ucyA9ICZsdDs0Jmd0OzsKJiM0MzsJCWNkbnMsdHNsY2gtbnMgPSAmbHQ7NCZndDs7CiYjNDM7CQlzcGktdHgtYnVzLXdpZHRoID0gJmx0OzQmZ3Q7OwomIzQzOwkJc3BpLXJ4LWJ1cy13aWR0aCA9ICZsdDs0Jmd0OzsKJiM0MzsKJiM0MzsJCXBhcnRpdGlvbnMgewomIzQzOwkJCWNvbXBhdGlibGUgPSAmIzM0O2ZpeGVkLXBhcnRpdGlvbnMmIzM0OzsKJiM0MzsJCQkjYWRkcmVzcy1jZWxscyA9ICZsdDsxJmd0OzsKJiM0MzsJCQkjc2l6ZS1jZWxscyA9ICZsdDsxJmd0OzsKJiM0MzsKJiM0MzsJCQlxc3BpX2Jvb3Q6IHBhcnRpdGlvbkAwIHsKJiM0MzsJCQkJbGFiZWwgPSAmIzM0O3UtYm9vdCYjMzQ7OwomIzQzOwkJCQlyZWcgPSAmbHQ7MHgwIDB4MDQyMDAwMDAmZ3Q7OwomIzQzOwkJCX07CiYjNDM7CiYjNDM7CQkJcm9vdDogcGFydGl0aW9uQDQyMDAwMDAgewomIzQzOwkJCQlsYWJlbCA9ICYjMzQ7cm9vdCYjMzQ7OwomIzQzOwkJCQlyZWcgPSAmbHQ7MHgwNDIwMDAwMCAweDBiZTAwMDAwJmd0OzsKJiM0MzsJCQl9OwomIzQzOwkJfTsKJiM0MzsJfTsKJiM0Mzt9OwomIzQzOwomIzQzOyZhbXA7dWFydDAgewomIzQzOwlzdGF0dXMgPSAmIzM0O29rYXkmIzM0OzsKJiM0Mzt9OwomIzQzOwomIzQzOyZhbXA7dXNiMCB7CiYjNDM7CXN0YXR1cyA9ICYjMzQ7b2theSYjMzQ7OwomIzQzOwlkaXNhYmxlLW92ZXItY3VycmVudDsKJiM0Mzt9OwomIzQzOwomIzQzOyZhbXA7d2F0Y2hkb2cwIHsKJiM0MzsJc3RhdHVzID0gJiMzNDtva2F5JiMzNDs7CiYjNDM7fTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYwppbmRleCAxZDdmMGE1N2QyODg5Li4wNjMyMTA1YjQyMGYxIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jCkBAIC02OSwxMiAmIzQzOzY5LDEzIEBAIHN0cnVjdCBzb2NmcGdhX2R3bWFjIHsKIAl2b2lkIF9faW9tZW0gKnRzZV9wY3NfYmFzZTsKIAl2b2lkIF9faW9tZW0gKnNnbWlpX2FkYXB0ZXJfYmFzZTsKIAlib29sIGYyaF9wdHBfcmVmX2NsazsKJiM0MzsJcGh5X2ludGVyZmFjZV90IG1hY19pbnRlcmZhY2U7CiAJY29uc3Qgc3RydWN0IHNvY2ZwZ2FfZHdtYWNfb3BzICpvcHM7CiB9OwogCiBzdGF0aWMgcGh5X2ludGVyZmFjZV90IHNvY2ZwZ2FfZ2V0X3BsYXRfcGh5bW9kZShzdHJ1Y3Qgc29jZnBnYV9kd21hYyAqZHdtYWMpCiB7Ci0JcmV0dXJuIGR3bWFjLSZndDtwbGF0X2RhdC0mZ3Q7cGh5X2ludGVyZmFjZTsKJiM0MzsJcmV0dXJuIGR3bWFjLSZndDttYWNfaW50ZXJmYWNlOwogfQogCiBzdGF0aWMgdm9pZCBzb2NmcGdhX3NnbWlpX2NvbmZpZyhzdHJ1Y3Qgc29jZnBnYV9kd21hYyAqZHdtYWMsIGJvb2wgZW5hYmxlKQpAQCAtNjUwLDYgJiM0Mzs2NTEsOCBAQCBzdGF0aWMgaW50IHNvY2ZwZ2FfZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlwbGF0X2RhdC0mZ3Q7cGNzX2V4aXQgPSBzb2NmcGdhX2R3bWFjX3Bjc19leGl0OwogCXBsYXRfZGF0LSZndDtzZWxlY3RfcGNzID0gc29jZnBnYV9kd21hY19zZWxlY3RfcGNzOwogCiYjNDM7CWR3bWFjLSZndDttYWNfaW50ZXJmYWNlID0gcGxhdF9kYXQtJmd0O3BoeV9pbnRlcmZhY2U7CiYjNDM7CiAJb3BzLSZndDtzZXR1cF9wbGF0X2RhdChkd21hYyk7CiAKIAlyZXR1cm4gZGV2bV9zdG1tYWNfcGx0ZnJfcHJvYmUocGRldiwgcGxhdF9kYXQsICZhbXA7c3RtbWFjX3Jlcyk7CkBAIC02NzAsMTAgJiM0Mzs2NzMsMjggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzb2NmcGdhX2R3bWFjX29wcyBzb2NmcGdhX2FnaWxleDVfb3BzID0gewogCS5zZXR1cF9wbGF0X2RhdCA9IHNvY2ZwZ2FfYWdpbGV4NV9zZXR1cF9wbGF0X2RhdCwKIH07CiAKJiM0MztzdGF0aWMgdm9pZCBzb2NmcGdhX2FnaWxleDVfdHNuX2dtYWNfc2V0dXBfcGxhdF9kYXQoc3RydWN0IHNvY2ZwZ2FfZHdtYWMgKmR3bWFjKQomIzQzO3sKJiM0MzsJc3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdCA9IGR3bWFjLSZndDtwbGF0X2RhdDsKJiM0MzsKJiM0MzsJc29jZnBnYV9hZ2lsZXg1X3NldHVwX3BsYXRfZGF0KGR3bWFjKTsKJiM0MzsKJiM0MzsJLyogRlBHQSBjb252ZXJ0ZXIgc3VwcGxpZXMgUkdNSUkgZGVsYXlzOyBNQUMgdXNlcyBHTUlJLCBQSFkgZ2V0cyBwbGFpbiBSR01JSSAqLwomIzQzOwlkd21hYy0mZ3Q7bWFjX2ludGVyZmFjZSA9IFBIWV9JTlRFUkZBQ0VfTU9ERV9HTUlJOwomIzQzOwlpZiAocGh5X2ludGVyZmFjZV9tb2RlX2lzX3JnbWlpKHBsYXRfZGF0LSZndDtwaHlfaW50ZXJmYWNlKSkKJiM0MzsJCXBsYXRfZGF0LSZndDtwaHlfaW50ZXJmYWNlID0gUEhZX0lOVEVSRkFDRV9NT0RFX1JHTUlJOwomIzQzO30KJiM0MzsKJiM0MztzdGF0aWMgY29uc3Qgc3RydWN0IHNvY2ZwZ2FfZHdtYWNfb3BzIHNvY2ZwZ2FfYWdpbGV4NV90c25fZ21hY19vcHMgPSB7CiYjNDM7CS5zZXRfcGh5X21vZGUgPSBzb2NmcGdhX2dlbjEwX3NldF9waHlfbW9kZSwKJiM0MzsJLnNldHVwX3BsYXRfZGF0ID0gc29jZnBnYV9hZ2lsZXg1X3Rzbl9nbWFjX3NldHVwX3BsYXRfZGF0LAomIzQzO307CiYjNDM7CiBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBzb2NmcGdhX2R3bWFjX21hdGNoW10gPSB7CiAJeyAuY29tcGF0aWJsZSA9ICYjMzQ7YWx0cixzb2NmcGdhLXN0bW1hYyYjMzQ7LCAuZGF0YSA9ICZhbXA7c29jZnBnYV9nZW41X29wcyB9LAogCXsgLmNvbXBhdGlibGUgPSAmIzM0O2FsdHIsc29jZnBnYS1zdG1tYWMtYTEwLXMxMCYjMzQ7LCAuZGF0YSA9ICZhbXA7c29jZnBnYV9nZW4xMF9vcHMgfSwKIAl7IC5jb21wYXRpYmxlID0gJiMzNDthbHRyLHNvY2ZwZ2Etc3RtbWFjLWFnaWxleDUmIzM0OywgLmRhdGEgPSAmYW1wO3NvY2ZwZ2FfYWdpbGV4NV9vcHMgfSwKJiM0MzsJeyAuY29tcGF0aWJsZSA9ICYjMzQ7YWx0cixzb2NmcGdhLXN0bW1hYy1hZ2lsZXg1LXRzbiYjMzQ7LCAuZGF0YSA9ICZhbXA7c29jZnBnYV9hZ2lsZXg1X3Rzbl9nbWFjX29wcyB9LAogCXsgfQogfTsKIE1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHNvY2ZwZ2FfZHdtYWNfbWF0Y2gpOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wOCAwNzozMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1OTA0CgkJCQkJCQlvdXRwdXQ6IDM5CgkJCQkJCQl0aG91Z2h0czogMjgwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgUGF0Y2g6IEZvY3VzIG9uIFBsYXRmb3JtIFNwZWNpZmljcyoqCgpPa2F5LCBzbyB0aGUgdGFzayBpcyB0byByZXZpZXcgdGhpcyBwYXRjaC4gRmlyc3QgdGhpbmdzIGZpcnN0LCB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZSBpcyBhbWQ2NCwgd2hpY2ggaW1tZWRpYXRlbHkgcmFpc2VzIGEgZmxhZy4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgdGhpcyBwYXRjaCBpcyBldmVuIHJlbGV2YW50IHRvIHRoYXQgYXJjaGl0ZWN0dXJlLCBnaXZlbiB0aGUgZmlsZXMgaW52b2x2ZWQuIExldCYjMzk7cyBsb29rIGF0IHRoZSBtb2RpZmllZCBmaWxlczogYERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vYWx0ZXJhLnlhbWxgLCBgRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbHRyLHNvY2ZwZ2Etc3RtbWFjLnlhbWxgLCBgYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9NYWtlZmlsZWAsIGBhcmNoL2FybTY0L2Jvb3QvZHRzL2ludGVsL3NvY2ZwZ2FfYWdpbGV4NV9zb2Nka190c25fY2ZnMi5kdHNgLCBhbmQgYGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuY2AuCgpSaWdodCBhd2F5LCB0aGUgcHJlcG9uZGVyYW5jZSBvZiBBUk0gYW5kIEFSTTY0IHJlbGF0ZWQgcGF0aHMganVtcHMgb3V0IGF0IG1lLiBUaGUgZHRiIGFuZCBiaW5kaW5ncyBhcmUgYWxsIGZvciBBbHRlcmEvSW50ZWwgU29DRlBHQSBwbGF0Zm9ybXMsIHByaW1hcmlseSBBUk0vQVJNNjQuIFRoZSBtb3N0IGludGVyZXN0aW5nIGZpbGUgaXMgYGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuY2AuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoYXQgdGhhdCBFdGhlcm5ldCBkcml2ZXIgaXMgZG9pbmcgb24gYW4gYW1kNjQgc3lzdGVtLiBNeSBpbml0aWFsIGluc3RpbmN0IGlzIHRoYXQgdGhpcyBpcyBnb2luZyB0byBiZSBwbGF0Zm9ybS1zcGVjaWZpYyBoYXJkd2FyZS4gSSBuZWVkIHRvIHZlcmlmeSB0aGF0IHRoaXMgY29kZSBpcyBldmVuIGJ1aWx0IG9yIHByb2JlZCBvbiBhbWQ2NC4gTGV0JiMzOTtzIGdyZXAgdGhlIGNvZGUgZm9yIGFueSBDT05GSUcgb3B0aW9ucyB0aGF0IG1pZ2h0IHJlc3RyaWN0IGl0cyBidWlsZCBvciBydW50aW1lIGVudmlyb25tZW50LiBUaGlzIHNob3VsZCBnaXZlIG1lIGEgY2xlYXIgcGljdHVyZSBvZiBpdHMgYXBwbGljYWJpbGl0eSAob3IgbGFjayB0aGVyZW9mKSB0byB0aGUgYW1kNjQgYXJjaGl0ZWN0dXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA4IDA3OjMzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2R3bWFjLXNvY2ZwZ2EmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZT00Nj1zdG1tYWMtcGxhdGZvcm0tb2Jqczo9IHN0bW1hY19wbGF0Zm9ybS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTo0Nzpkd21hYy1hbHRyLXNvY2ZwZ2Etb2JqcyA6PSBkd21hYy1zb2NmcGdhLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTQ4LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA4IDA3OjMzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDY2ODMKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiAzNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIHNlZS4gTXkgZmlyc3QgdGhvdWdodCBpcyB0byBkaWcgaW50byB0aGUga2VybmVsIGNvbmZpZ3VyYXRpb24sIHNwZWNpZmljYWxseSB0byBzZWUgdGhlIHNldHRpbmdzIHJlbGF0ZWQgdG8gdGhlIEFsdGVyYS9JbnRlbCBTb0MgRlBHQSBFdGhlcm5ldCBjb250cm9sbGVyLCB3aGljaCBJICprbm93KiBpcyBvZnRlbiByZWZlcnJlZCB0byBhcyAmIzM5O2R3bWFjLWFsdHItc29jZnBnYSYjMzk7IGluIHRoZSBjb2RlYmFzZS4gSSYjMzk7bGwgbmVlZCB0byBjaGVjayB0aGUgcmVsZXZhbnQgS2NvbmZpZyBmaWxlLCB3aGljaCwgYmFzZWQgb24gbXkgZXhwZXJpZW5jZSwgaXMgbGlrZWx5IGxvY2F0ZWQgdW5kZXIgYGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWdgLiBUaW1lIHRvIGdldCBhIHF1aWNrIG92ZXJ2aWV3IG9mIHdoYXQgb3B0aW9ucyBhcmUgYXZhaWxhYmxlIGFuZCBob3cgdGhleSYjMzk7cmUgc2V0IHVwLiBUaGlzIHdpbGwgaGVscCBtZSB1bmRlcnN0YW5kIHdoYXQmIzM5O3MgY29uZmlndXJlZCwgYW5kIG1vcmUgaW1wb3J0YW50bHksIHdoYXQgaXNuJiMzOTt0LCBlc3BlY2lhbGx5IGlmIEkmIzM5O20gdHJvdWJsZXNob290aW5nIG9yIGludGVncmF0aW5nIHRoaXMgcGxhdGZvcm0uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDggMDc6MzM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7RFdNQUNfU09DRlBHQSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTkxPWNvbmZpZyBEV01BQ19TMzJcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIwMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjAzOmNvbmZpZyBEV01BQ19TT0NGUEdBXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIwNC1cdHRyaXN0YXRlIFwmIzM0O1NPQ0ZQR0EgZHdtYWMgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlPTI4PW9iai0kKENPTkZJR19EV01BQ19TMzIpXHRcdCYjNDM7PSBkd21hYy1zMzIub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6Mjk6b2JqLSQoQ09ORklHX0RXTUFDX1NPQ0ZQR0EpXHQmIzQzOz0gZHdtYWMtYWx0ci1zb2NmcGdhLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTMwLW9iai0kKENPTkZJR19EV01BQ19TT1BIR08pXHQmIzQzOz0gZHdtYWMtc29waGdvLm9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wOCAwNzozMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3MTcxCgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogMTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIHRoZSBvbmUgdGhpbmtpbmcgaXQ6CgoqKkRpdmluZyBpbnRvIHRoZSBEV01BQ19TT0NGUEdBIEtjb25maWcqKgoKQWxyaWdodCwgdGltZSB0byBkaWcgaW50byB0aGUgS2NvbmZpZyByZWxhdGVkIHRvIERXTUFDX1NPQ0ZQR0EuIEkgbmVlZCB0byBnZXQgYSBjbGVhciBwaWN0dXJlIG9mIGhvdyB0aGlzIHNwZWNpZmljIGhhcmR3YXJlIGFic3RyYWN0aW9uIGxheWVyIGlzIGNvbmZpZ3VyZWQgYW5kIGl0cyBkZXBlbmRlbmNpZXMgd2l0aGluIHRoZSBicm9hZGVyIGtlcm5lbCBjb25maWd1cmF0aW9uIGxhbmRzY2FwZS4gSSYjMzk7bGwgYmUgbG9va2luZyBmb3I6CgoqICAgKipLZXkgRGVwZW5kZW5jaWVzOioqIFdoYXQgb3RoZXIgS2NvbmZpZyBzeW1ib2xzIGRvZXMgRFdNQUNcX1NPQ0ZQR0EgZGVwZW5kIG9uPyBBcmUgdGhlcmUgc3BlY2lmaWMgYm9hcmQgY29uZmlndXJhdGlvbnMsIG90aGVyIGhhcmR3YXJlIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyYWwgZmVhdHVyZXMgdGhhdCBpdCByZXF1aXJlcyBvciBpcyBpbmNvbXBhdGlibGUgd2l0aD8gVW5kZXJzdGFuZGluZyB0aGVzZSBkZXBlbmRlbmNpZXMgd2lsbCBsZXQgbWUgYXNzZXNzIGl0cyBpbnRlZ3JhdGlvbiwgYW5kIHNlZSBpZiB0aGVyZSBhcmUgbWlzc2luZyBiaXRzLgoqICAgKipEZWZhdWx0IFZhbHVlcyBhbmQgT3B0aW9uczoqKiBXaGF0IGFyZSB0aGUgZGVmYXVsdCBzZXR0aW5ncyBmb3IgdGhpcz8gQXJlIHRoZXJlIGFueSBjb25maWd1cmFibGUgb3B0aW9ucz8gRG8gdGhleSBtYWtlIHNlbnNlPyBBcmUgdGhlIGRlZmF1bHQgdmFsdWVzIG9wdGltaXplZCBmb3IgdHlwaWNhbCBGUEdBLWJhc2VkIEV0aGVybmV0IE1BQyBpbXBsZW1lbnRhdGlvbnMgb3IgZG8gdGhleSBuZWVkIGFkanVzdG1lbnQ/CiogICAqKkNvbmRpdGlvbmFsIENvbXBpbGF0aW9uOioqIEhvdyBpcyBEV01BQ1xfU09DRlBHQSBjb25kaXRpb25hbGx5IGNvbXBpbGVkPyBBcmUgdGhlcmUgc3BlY2lmaWMgYGlmYCBvciBgc2VsZWN0YCBzdGF0ZW1lbnRzIHRoYXQgY29udHJvbCBpdHMgYXZhaWxhYmlsaXR5PyBUaGlzIHdpbGwgYWxsb3cgbWUgdG8gYXNzZXNzIGl0cyBjb3ZlcmFnZS4KKiAgICoqRG9jdW1lbnRhdGlvbiBhbmQgQ29tbWVudHM6KiogQXJlIHRoZXJlIGFueSBoZWxwZnVsIGNvbW1lbnRzIG9yIGRlc2NyaXB0aXZlIHRleHQgYXNzb2NpYXRlZCB3aXRoIERXTUFDXF9TT0NGUEdBPyBUaGlzIHdvdWxkIGJlIGEgYm9udXMgYW5kIHNhdmUgbWUgYSBsb3Qgb2YgdGltZS4KKiAgICoqUmVsYXRpb25zaGlwIHRvIG90aGVyIE1BQyBkcml2ZXJzOioqIEl0JiMzOTtzIGltcG9ydGFudCB0byB1bmRlcnN0YW5kIHdoZXJlIHRoZSBEV01BQ1xfU09DRlBHQSBkcml2ZXIgZml0cyBpbi4gSXMgaXQgZGVzaWduZWQgdG8gYmUgc3RhbmRhbG9uZSwgb3IgdG8gd29yayB3aXRoIG90aGVyIGRyaXZlcnM/IElzIGl0IGEgaGFyZHdhcmUgYWJzdHJhY3Rpb24gbGF5ZXIgb3ZlciBhIHN0YW5kYXJkIGRyaXZlcj8KCkJhc2ljYWxseSwgSSB3YW50IHRvIGZvcm0gYSBtZW50YWwgbW9kZWwgb2YgaG93IHRoZSBEV01BQ1xfU09DRlBHQSBjb25maWd1cmF0aW9uIGludGVncmF0ZXMgd2l0aCB0aGUgbGFyZ2VyIHBpY3R1cmUuIEkgd2FudCB0byBidWlsZCBhIGNvbmNlcHR1YWwgZnJhbWV3b3JrLCBzbyBJIGNhbiBtb3JlIHF1aWNrbHkgaWRlbnRpZnkgcG90ZW50aWFsIGNvbmZsaWN0cywgb3Bwb3J0dW5pdGllcyBmb3Igb3B0aW1pemF0aW9uLCBvciBhcmVhcyB3aGVyZSB0aGUgY29uZmlndXJhdGlvbiBpcyB1bmNsZWFyIG9yIGluY29tcGxldGUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDggMDc6MzM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMjAwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAyMDA6XHRcdCAgU09DcyBHTUFDIGV0aGVybmV0IGNvbnRyb2xsZXIsIGllLiBTMzJHMnh4LCBTMzJHM3h4IGFuZFxuIDIwMTpcdFx0ICBTMzJSNDUuXG4gMjAyOlx0XG4gMjAzOlx0Y29uZmlnIERXTUFDX1NPQ0ZQR0FcbiAyMDQ6XHRcdHRyaXN0YXRlIFwmIzM0O1NPQ0ZQR0EgZHdtYWMgc3VwcG9ydFwmIzM0O1xuIDIwNTpcdFx0ZGVmYXVsdCBBUkNIX0lOVEVMX1NPQ0ZQR0FcbiAyMDY6XHRcdGRlcGVuZHMgb24gT0YgXHUwMDI2XHUwMDI2IChBUkNIX0lOVEVMX1NPQ0ZQR0EgfHwgQ09NUElMRV9URVNUKVxuIDIwNzpcdFx0c2VsZWN0IE1GRF9TWVNDT05cbiAyMDg6XHRcdHNlbGVjdCBNRElPX1JFR01BUFxuIDIwOTpcdFx0c2VsZWN0IFJFR01BUF9NTUlPXG4gMjEwOlx0XHRzZWxlY3QgUENTX0xZTlhcbiAyMTE6XHRcdGhlbHBcbiAyMTI6XHRcdCAgU3VwcG9ydCBmb3IgZXRoZXJuZXQgY29udHJvbGxlciBvbiBBbHRlcmEgU09DRlBHQVxuIDIxMzpcdFxuIDIxNDpcdFx0ICBUaGlzIHNlbGVjdHMgdGhlIEFsdGVyYSBTT0NGUEdBIFNvQyBnbHVlIGxheWVyIHN1cHBvcnRcbiAyMTU6XHRcdCAgZm9yIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3JcbiAyMTY6XHRcdCAgYXJyaWE1IGFuZCBjeWNsb25lNSBGUEdBIFNvQ3MuXG4gMjE3Olx0XG4gMjE4Olx0Y29uZmlnIERXTUFDX1NPUEhHT1xuIDIxOTpcdFx0dHJpc3RhdGUgXCYjMzQ7U29waGdvIGR3bWFjIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wOCAwNzozMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3OTQ5CgkJCQkJCQlvdXRwdXQ6IDUwCgkJCQkJCQl0aG91Z2h0czogMTMyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgRFdNQUMgU09DRlBHQSBDb25maWd1cmF0aW9uKioKCkFscmlnaHQsIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIEZpcnN0LCBgQ09ORklHX0RXTUFDX1NPQ0ZQR0FgLiBUaGUgZGVwZW5kZW5jeSBpcyBgT0YgJmFtcDsmYW1wOyAoQVJDSF9JTlRFTF9TT0NGUEdBIHx8IENPTVBJTEVfVEVTVClgLiBTbywgaXQmIzM5O3MgdGllZCB0byBhbiAqT0YqIChkZXZpY2UgdHJlZSkgZW52aXJvbm1lbnQgYW5kIGVpdGhlciBhIHNwZWNpZmljIEludGVsIFNvQ0ZQR0EgYXJjaGl0ZWN0dXJlIG9yIGEgY29tcGlsYXRpb24gdGVzdC4gUmlnaHQgYXdheSwgSSYjMzk7bSB0aGlua2luZywgaXMgdGhpcyBhIHNwZWNpYWxpemVkIHBsYXRmb3JtIGRyaXZlciwgc3BlY2lmaWNhbGx5IGZvciwgc2F5LCBBZ2lsZXg1LCBDeWNsb25lNSwgQXJyaWExMCwgb3IgU3RyYXRpeDEwPwoKVG8gY29uZmlybSwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoZSBkcml2ZXIgYmVoYXZlcyBkdXJpbmcgcHJvYmluZy4gSSYjMzk7bGwgbmVlZCB0byBjaGVjayBpZiBgZHdtYWMtc29jZnBnYS5jYCByZWdpc3RlcnMgaXRzZWxmIGFzIGEgcGxhdGZvcm0gZHJpdmVyLiBUaGF0JiMzOTtzIHRoZSB0eXBpY2FsIHBhdHRlcm4gZm9yIHRoZXNlIGtpbmRzIG9mIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlcnMuIFRpbWUgdG8gZGl2ZSBpbnRvIHRoZSBjb2RlOiBJJiMzOTttIHB1bGxpbmcgdXAgYGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuY2Agbm93IHRvIHRha2UgYSBsb29rLiBJJiMzOTtsbCBmb2N1cyBvbiB0aGUgcHJvYmUgZnVuY3Rpb24gYW5kIHNlZSBpZiBpdCYjMzk7cyBoYW5kbGluZyB0aGUgZGV2aWNlIGluaXRpYWxpemF0aW9uIGFwcHJvcHJpYXRlbHkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA4IDA3OjMzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogNjQwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDcwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyA2NDA6XHRcdCAqIG1vZGUuIENyZWF0ZSBhIGNvcHkgb2YgdGhlIGNvcmUgcmVzZXQgaGFuZGxlIHNvIGl0IGNhbiBiZSB1c2VkIGJ5XG4gNjQxOlx0XHQgKiB0aGUgZHJpdmVyIGxhdGVyLlxuIDY0MjpcdFx0ICovXG4gNjQzOlx0XHRkd21hYy1cdTAwM2VzdG1tYWNfcnN0ID0gcGxhdF9kYXQtXHUwMDNlc3RtbWFjX3JzdDtcbiA2NDQ6XHRcdGR3bWFjLVx1MDAzZW9wcyA9IG9wcztcbiA2NDU6XHRcdGR3bWFjLVx1MDAzZXBsYXRfZGF0ID0gcGxhdF9kYXQ7XG4gNjQ2Olx0XG4gNjQ3Olx0XHRwbGF0X2RhdC1cdTAwM2Vic3BfcHJpdiA9IGR3bWFjO1xuIDY0ODpcdFx0cGxhdF9kYXQtXHUwMDNlZml4X21hY19zcGVlZCA9IHNvY2ZwZ2FfZHdtYWNfZml4X21hY19zcGVlZDtcbiA2NDk6XHRcdHBsYXRfZGF0LVx1MDAzZWluaXQgPSBzb2NmcGdhX2R3bWFjX2luaXQ7XG4gNjUwOlx0XHRwbGF0X2RhdC1cdTAwM2VwY3NfaW5pdCA9IHNvY2ZwZ2FfZHdtYWNfcGNzX2luaXQ7XG4gNjUxOlx0XHRwbGF0X2RhdC1cdTAwM2VwY3NfZXhpdCA9IHNvY2ZwZ2FfZHdtYWNfcGNzX2V4aXQ7XG4gNjUyOlx0XHRwbGF0X2RhdC1cdTAwM2VzZWxlY3RfcGNzID0gc29jZnBnYV9kd21hY19zZWxlY3RfcGNzO1xuIDY1MzpcdFxuIDY1NDpcdFx0ZHdtYWMtXHUwMDNlbWFjX2ludGVyZmFjZSA9IHBsYXRfZGF0LVx1MDAzZXBoeV9pbnRlcmZhY2U7XG4gNjU1Olx0XG4gNjU2Olx0XHRvcHMtXHUwMDNlc2V0dXBfcGxhdF9kYXQoZHdtYWMpO1xuIDY1NzpcdFxuIDY1ODpcdFx0cmV0dXJuIGRldm1fc3RtbWFjX3BsdGZyX3Byb2JlKHBkZXYsIHBsYXRfZGF0LCBcdTAwMjZzdG1tYWNfcmVzKTtcbiA2NTk6XHR9XG4gNjYwOlx0XG4gNjYxOlx0c3RhdGljIGNvbnN0IHN0cnVjdCBzb2NmcGdhX2R3bWFjX29wcyBzb2NmcGdhX2dlbjVfb3BzID0ge1xuIDY2MjpcdFx0LnNldF9waHlfbW9kZSA9IHNvY2ZwZ2FfZ2VuNV9zZXRfcGh5X21vZGUsXG4gNjYzOlx0XHQuc2V0dXBfcGxhdF9kYXQgPSBzb2NmcGdhX2dlbjVfc2V0dXBfcGxhdF9kYXQsXG4gNjY0Olx0fTtcbiA2NjU6XHRcbiA2NjY6XHRzdGF0aWMgY29uc3Qgc3RydWN0IHNvY2ZwZ2FfZHdtYWNfb3BzIHNvY2ZwZ2FfZ2VuMTBfb3BzID0ge1xuIDY2NzpcdFx0LnNldF9waHlfbW9kZSA9IHNvY2ZwZ2FfZ2VuMTBfc2V0X3BoeV9tb2RlLFxuIDY2ODpcdFx0LnNldHVwX3BsYXRfZGF0ID0gc29jZnBnYV9nZW41X3NldHVwX3BsYXRfZGF0LFxuIDY2OTpcdH07XG4gNjcwOlx0XG4gNjcxOlx0c3RhdGljIGNvbnN0IHN0cnVjdCBzb2NmcGdhX2R3bWFjX29wcyBzb2NmcGdhX2FnaWxleDVfb3BzID0ge1xuIDY3MjpcdFx0LnNldF9waHlfbW9kZSA9IHNvY2ZwZ2FfZ2VuMTBfc2V0X3BoeV9tb2RlLFxuIDY3MzpcdFx0LnNldHVwX3BsYXRfZGF0ID0gc29jZnBnYV9hZ2lsZXg1X3NldHVwX3BsYXRfZGF0LFxuIDY3NDpcdH07XG4gNjc1Olx0XG4gNjc2Olx0c3RhdGljIHZvaWQgc29jZnBnYV9hZ2lsZXg1X3Rzbl9nbWFjX3NldHVwX3BsYXRfZGF0KHN0cnVjdCBzb2NmcGdhX2R3bWFjICpkd21hYylcbiA2Nzc6XHR7XG4gNjc4Olx0XHRzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXRfZGF0ID0gZHdtYWMtXHUwMDNlcGxhdF9kYXQ7XG4gNjc5Olx0XG4gNjgwOlx0XHRzb2NmcGdhX2FnaWxleDVfc2V0dXBfcGxhdF9kYXQoZHdtYWMpO1xuIDY4MTpcdFxuIDY4MjpcdFx0LyogRlBHQSBjb252ZXJ0ZXIgc3VwcGxpZXMgUkdNSUkgZGVsYXlzOyBNQUMgdXNlcyBHTUlJLCBQSFkgZ2V0cyBwbGFpbiBSR01JSSAqL1xuIDY4MzpcdFx0ZHdtYWMtXHUwMDNlbWFjX2ludGVyZmFjZSA9IFBIWV9JTlRFUkZBQ0VfTU9ERV9HTUlJO1xuIDY4NDpcdFx0aWYgKHBoeV9pbnRlcmZhY2VfbW9kZV9pc19yZ21paShwbGF0X2RhdC1cdTAwM2VwaHlfaW50ZXJmYWNlKSlcbiA2ODU6XHRcdFx0cGxhdF9kYXQtXHUwMDNlcGh5X2ludGVyZmFjZSA9IFBIWV9JTlRFUkZBQ0VfTU9ERV9SR01JSTtcbiA2ODY6XHR9XG4gNjg3Olx0XG4gNjg4Olx0c3RhdGljIGNvbnN0IHN0cnVjdCBzb2NmcGdhX2R3bWFjX29wcyBzb2NmcGdhX2FnaWxleDVfdHNuX2dtYWNfb3BzID0ge1xuIDY4OTpcdFx0LnNldF9waHlfbW9kZSA9IHNvY2ZwZ2FfZ2VuMTBfc2V0X3BoeV9tb2RlLFxuIDY5MDpcdFx0LnNldHVwX3BsYXRfZGF0ID0gc29jZnBnYV9hZ2lsZXg1X3Rzbl9nbWFjX3NldHVwX3BsYXRfZGF0LFxuIDY5MTpcdH07XG4gNjkyOlx0XG4gNjkzOlx0c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgc29jZnBnYV9kd21hY19tYXRjaFtdID0ge1xuIDY5NDpcdFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O2FsdHIsc29jZnBnYS1zdG1tYWNcJiMzNDssIC5kYXRhID0gXHUwMDI2c29jZnBnYV9nZW41X29wcyB9LFxuIDY5NTpcdFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O2FsdHIsc29jZnBnYS1zdG1tYWMtYTEwLXMxMFwmIzM0OywgLmRhdGEgPSBcdTAwMjZzb2NmcGdhX2dlbjEwX29wcyB9LFxuIDY5NjpcdFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O2FsdHIsc29jZnBnYS1zdG1tYWMtYWdpbGV4NVwmIzM0OywgLmRhdGEgPSBcdTAwMjZzb2NmcGdhX2FnaWxleDVfb3BzIH0sXG4gNjk3Olx0XHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7YWx0cixzb2NmcGdhLXN0bW1hYy1hZ2lsZXg1LXRzblwmIzM0OywgLmRhdGEgPSBcdTAwMjZzb2NmcGdhX2FnaWxleDVfdHNuX2dtYWNfb3BzIH0sXG4gNjk4Olx0XHR7IH1cbiA2OTk6XHR9O1xuIDcwMDpcdE1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHNvY2ZwZ2FfZHdtYWNfbWF0Y2gpO1xuIDcwMTpcdFxuIDcwMjpcdHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHNvY2ZwZ2FfZHdtYWNfZHJpdmVyID0ge1xuIDcwMzpcdFx0LnByb2JlICA9IHNvY2ZwZ2FfZHdtYWNfcHJvYmUsXG4gNzA0Olx0XHQuZHJpdmVyID0ge1xuIDcwNTpcdFx0XHQubmFtZSAgICAgICAgICAgPSBcJiMzNDtzb2NmcGdhLWR3bWFjXCYjMzQ7LFxuIDcwNjpcdFx0XHQucG1cdFx0PSBcdTAwMjZzdG1tYWNfcGx0ZnJfcG1fb3BzLFxuIDcwNzpcdFx0XHQub2ZfbWF0Y2hfdGFibGUgPSBzb2NmcGdhX2R3bWFjX21hdGNoLFxuIDcwODpcdFx0fSxcbiA3MDk6XHR9O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wOCAwNzozMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA5Nzg1CgkJCQkJCQlvdXRwdXQ6IDk4CgkJCQkJCQl0aG91Z2h0czogNTY2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlJlYWNoYWJpbGl0eSBBbmFseXNpcyBmb3IgYW1kNjQgQXJjaGl0ZWN0dXJlKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIFdlJiMzOTtyZSBsb29raW5nIGF0IHJlYWNoYWJpbGl0eSBmb3IgYW4gYW1kNjQgdGFyZ2V0LCBhbmQgdGhpcyBwYXRjaCBoYXMgYSBmZXcgcmVkIGZsYWdzLiBGaXJzdCwgd2Ugc2VlIGRvY3VtZW50YXRpb24gYW5kIERUUyBmaWxlcyB0aGF0IHNlZW0gZm9jdXNlZCBvbiBBUk02NCwgcGFydGljdWxhcmx5IGZvciBJbnRlbC9BbHRlcmEgU29DRlBHQSBzeXN0ZW1zLiBUaGUgYGR3bWFjLXNvY2ZwZ2EuY2AgZHJpdmVyIGlzIGEgZGVhZCBnaXZlYXdheSDigJMgaXQmIzM5O3MgYW4gT0YgcGxhdGZvcm0gZHJpdmVyLCBkZXNpZ25lZCB0byB3b3JrIHdpdGggdGhvc2Ugc3BlY2lmaWMgU29DRlBHQSBTb0NzLiBDcnVjaWFsbHksIG9uIGFtZDY0LCB3ZSBkb24mIzM5O3QgaGF2ZSB0aGF0IGhhcmR3YXJlLiBObyBTb0NGUEdBIERldmljZSBUcmVlIG5vZGVzIGV4aXN0LCBhbmQgdGhleSBhcmVuJiMzOTt0IGVtdWxhdGVkIGluIHRoZSB1c3VhbCBRRU1VIG9yIEdDRSBlbnZpcm9ubWVudHMuIE5vdCBldmVuIHdpdGggYENPTkZJR19DT01QSUxFX1RFU1RgIHdvdWxkIHRoaXMgY29kZSBiZSBhYmxlIHRvICpkbyogYW55dGhpbmcuCgpTZWN0aW9uIDIgY29uZmlybXMgbXkgc3VzcGljaW9uLCBwb2ludGluZyBvdXQgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlIGxpa2UgdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoZXMsIFNtYXJ0TklDcywgb3IgR1BVIGRyaXZlcnMgdGhhdCByZXF1aXJlIHNwZWNpZmljIHBoeXNpY2FsIGNvbXBvbmVudHMuIFNlY3Rpb24gMSBkcml2ZXMgdGhlIHBvaW50IGhvbWUgLSBmdXp6aW5nIGhpbmdlcyBvbiAqZXhlY3V0YWJsZSogY29kZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBzZXR1cHMuIElmIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSwgYXMgdGhpcyBjZXJ0YWlubHkgYXBwZWFycyB0byBiZSwgaXQmIzM5O3MgYSBuby1nbyBmb3IgZnV6emluZywgcmVnYXJkbGVzcyBvZiBob3cgY29tcGxleCBvciBhc3NlcnRpb24tbGFkZW4gaXQgbWlnaHQgYmUuCgpUaGVyZWZvcmUsIGJlY2F1c2UgdGhpcyBkcml2ZXIgYW5kIGFzc29jaWF0ZWQgRGV2aWNlIFRyZWUgY29uZmlndXJhdGlvbnMgYXJlIHNwZWNpZmljIHRvIGFuIGFyY2hpdGVjdHVyZSBhbmQgaGFyZHdhcmUgbm90IHByZXNlbnQgaW4gdGhlIHRhcmdldCBlbnZpcm9ubWVudCwgZnV6emluZyBpcyBhIHdhc3RlIG9mIHRpbWUgYW5kIHJlc291cmNlcy4gU28sIHRoZSBgV29ydGhGdXp6aW5nYCBwYXJhbWV0ZXIgc2hvdWxkIGJlIHNldCB0byBgZmFsc2VgLiBObyBzcGVjaWZpYyBjb25maWd1cmF0aW9ucyBuZWVkIGVuYWJsaW5nLCBhbmQgdGhlcmUgYXJlIG5vIHNwZWNpZmljIHN5bWJvbHMgb2YgaW50ZXJlc3Qgc2luY2UgdGhlIGNvZGUgY2Fubm90IGJlIGV4ZWN1dGVkLiBUaGUgYFJlYXNvbmluZ2AgcGFyYW1ldGVyIHdpbGwgYmUgc2V0IHRvIGEgY29uY2lzZSBleHBsYW5hdGlvbiBvZiB0aGUgc2l0dWF0aW9uLiBMZXQmIzM5O3MgY2FsbCBgc2V0LXJlc3VsdHNgIHdpdGggdGhlc2UgcGFyYW1ldGVycy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDggMDc6MzM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBEZXZpY2V0cmVlIGJpbmRpbmdzLCBBUk02NCBEVFMgZmlsZXMsIGFuZCB0aGUgZHdtYWMtc29jZnBnYSBwbGF0Zm9ybSBFdGhlcm5ldCBkcml2ZXIgZm9yIEludGVsL0FsdGVyYSBTb0NGUEdBIFNvQ3MuIFRoaXMgZHJpdmVyIGlzIHRpZWQgdG8gc3BlY2lmaWMgQVJNL0FSTTY0IFNvQyBEZXZpY2V0cmVlIGhhcmR3YXJlIGFuZCBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgb24gdGhlIGFtZDY0IHRhcmdldCBhcmNoaXRlY3R1cmUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBEZXZpY2V0cmVlIGJpbmRpbmdzLCBBUk02NCBEVFMgZmlsZXMsIGFuZCB0aGUgZHdtYWMtc29jZnBnYSBwbGF0Zm9ybSBFdGhlcm5ldCBkcml2ZXIgZm9yIEludGVsL0FsdGVyYSBTb0NGUEdBIFNvQ3MuIFRoaXMgZHJpdmVyIGlzIHRpZWQgdG8gc3BlY2lmaWMgQVJNL0FSTTY0IFNvQyBEZXZpY2V0cmVlIGhhcmR3YXJlIGFuZCBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgb24gdGhlIGFtZDY0IHRhcmdldCBhcmNoaXRlY3R1cmUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wOCAwNzozMzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+SWY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDktMDhUMDc6MzI6NTcuMTU0NTAwMjg2WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTk1NDU3Nzg5MjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJcIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBEZXZpY2V0cmVlIGJpbmRpbmdzLCBBUk02NCBEVFMgZmlsZXMsIGFuZCB0aGUgZHdtYWMtc29jZnBnYSBwbGF0Zm9ybSBFdGhlcm5ldCBkcml2ZXIgZm9yIEludGVsL0FsdGVyYSBTb0NGUEdBIFNvQ3MuIFRoaXMgZHJpdmVyIGlzIHRpZWQgdG8gc3BlY2lmaWMgQVJNL0FSTTY0IFNvQyBEZXZpY2V0cmVlIGhhcmR3YXJlIGFuZCBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgb24gdGhlIGFtZDY0IHRhcmdldCBhcmNoaXRlY3R1cmUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wOFQwNzozMjo1Ny4xNTQ1MDUwNTdaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU1NDEyMjA2MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDA2ZGM3OGQwZTZiMWMxNThkNmYyZDFiMzhhNzQ5NjQ0NmM2MzY1NzBcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFR1ZSBTZXAgOCAwNzozMjo1NiAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL2FsdGVyYS55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9hbHRlcmEueWFtbFxcbmluZGV4IDMwMzBjZjQ2ZmU3NGMuLmU0MzE0NjlhNzE3NTMgMTAwNjQ0XFxuLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9hbHRlcmEueWFtbFxcbisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vYWx0ZXJhLnlhbWxcXG5AQCAtMTE0LDYgKzExNCw3IEBAIHByb3BlcnRpZXM6XFxuICAgICAgICAgICAgICAgLSBpbnRlbCxzb2NmcGdhLWFnaWxleDUtc29jZGstZGVidWdcXG4gICAgICAgICAgICAgICAtIGludGVsLHNvY2ZwZ2EtYWdpbGV4NS1zb2Nkay1tb2R1bGFyXFxuICAgICAgICAgICAgICAgLSBpbnRlbCxzb2NmcGdhLWFnaWxleDUtc29jZGstbmFuZFxcbisgICAgICAgICAgICAgIC0gaW50ZWwsc29jZnBnYS1hZ2lsZXg1LXNvY2RrLXRzbi1jZmcyXFxuICAgICAgICAgICAtIGNvbnN0OiBpbnRlbCxzb2NmcGdhLWFnaWxleDVcXG4gXFxuICAgICAgIC0gZGVzY3JpcHRpb246IEFnaWxleDcyIGJvYXJkc1xcbmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sXFxuaW5kZXggNjMwODRmNzYyMzczOC4uMmMyN2JmZDVhZjg5MiAxMDA2NDRcXG4tLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbFxcbisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sXFxuQEAgLTI0LDYgKzI0LDcgQEAgc2VsZWN0OlxcbiAgICAgICAgICAgLSBhbHRyLHNvY2ZwZ2Etc3RtbWFjXFxuICAgICAgICAgICAtIGFsdHIsc29jZnBnYS1zdG1tYWMtYTEwLXMxMFxcbiAgICAgICAgICAgLSBhbHRyLHNvY2ZwZ2Etc3RtbWFjLWFnaWxleDVcXG4rICAgICAgICAgIC0gYWx0cixzb2NmcGdhLXN0bW1hYy1hZ2lsZXg1LXRzblxcbiBcXG4gICByZXF1aXJlZDpcXG4gICAgIC0gY29tcGF0aWJsZVxcbkBAIC00NCw3ICs0NSw5IEBAIHByb3BlcnRpZXM6XFxuICAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjLTMuNzRhXFxuICAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjXFxuICAgICAgIC0gaXRlbXM6XFxuLSAgICAgICAgICAtIGNvbnN0OiBhbHRyLHNvY2ZwZ2Etc3RtbWFjLWFnaWxleDVcXG4rICAgICAgICAgIC0gZW51bTpcXG4rICAgICAgICAgICAgICAtIGFsdHIsc29jZnBnYS1zdG1tYWMtYWdpbGV4NVxcbisgICAgICAgICAgICAgIC0gYWx0cixzb2NmcGdhLXN0bW1hYy1hZ2lsZXg1LXRzblxcbiAgICAgICAgICAgLSBjb25zdDogc25wcyxkd3hnbWFjLTIuMTBcXG4gXFxuICAgY2xvY2tzOlxcbmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2Jvb3QvZHRzL2ludGVsL01ha2VmaWxlIGIvYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9NYWtlZmlsZVxcbmluZGV4IDI3MGM3MGZkZjA4NGIuLmNlN2NmM2E2MzI3NTMgMTAwNjQ0XFxuLS0tIGEvYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9NYWtlZmlsZVxcbisrKyBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvTWFrZWZpbGVcXG5AQCAtOCw2ICs4LDcgQEAgZHRiLSQoQ09ORklHX0FSQ0hfSU5URUxfU09DRlBHQSkgKz0gc29jZnBnYV9hZ2lsZXhfbjYwMDAuZHRiIFxcXFxcXG4gXFx0XFx0XFx0XFx0c29jZnBnYV9hZ2lsZXg1X3NvY2RrXzAxM2IuZHRiIFxcXFxcXG4gXFx0XFx0XFx0XFx0c29jZnBnYV9hZ2lsZXg1X3NvY2RrX21vZHVsYXIuZHRiIFxcXFxcXG4gXFx0XFx0XFx0XFx0c29jZnBnYV9hZ2lsZXg1X3NvY2RrX25hbmQuZHRiIFxcXFxcXG4rXFx0XFx0XFx0XFx0c29jZnBnYV9hZ2lsZXg1X3NvY2RrX3Rzbl9jZmcyLmR0YiBcXFxcXFxuIFxcdFxcdFxcdFxcdHNvY2ZwZ2FfYWdpbGV4NzJfc29jZGsuZHRiIFxcXFxcXG4gXFx0XFx0XFx0XFx0c29jZnBnYV9hZ2lsZXg3bV9zb2Nkay5kdGIgXFxcXFxcbiBcXHRcXHRcXHRcXHRzb2NmcGdhX241eF9zb2Nkay5kdGJcXG5kaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9zb2NmcGdhX2FnaWxleDVfc29jZGtfdHNuX2NmZzIuZHRzIGIvYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9zb2NmcGdhX2FnaWxleDVfc29jZGtfdHNuX2NmZzIuZHRzXFxubmV3IGZpbGUgbW9kZSAxMDA2NDRcXG5pbmRleCAwMDAwMDAwMDAwMDAwLi45ZDM5Zjg0M2I0MjQwXFxuLS0tIC9kZXYvbnVsbFxcbisrKyBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvc29jZnBnYV9hZ2lsZXg1X3NvY2RrX3Rzbl9jZmcyLmR0c1xcbkBAIC0wLDAgKzEsMTMwIEBAXFxuKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG4rLypcXG4rICogQ29weXJpZ2h0IChDKSAyMDI2LCBBbHRlcmEgQ29ycG9yYXRpb25cXG4rICovXFxuKyNpbmNsdWRlIFxcXCJzb2NmcGdhX2FnaWxleDUuZHRzaVxcXCJcXG4rXFxuKy8ge1xcbitcXHRtb2RlbCA9IFxcXCJTb0NGUEdBIEFnaWxleDUgU29DREsgVFNOIENvbmZpZzJcXFwiO1xcbitcXHRjb21wYXRpYmxlID0gXFxcImludGVsLHNvY2ZwZ2EtYWdpbGV4NS1zb2Nkay10c24tY2ZnMlxcXCIsIFxcXCJpbnRlbCxzb2NmcGdhLWFnaWxleDVcXFwiO1xcbitcXG4rXFx0YWxpYXNlcyB7XFxuK1xcdFxcdHNlcmlhbDAgPSBcXHUwMDI2dWFydDA7XFxuK1xcdFxcdGV0aGVybmV0MSA9IFxcdTAwMjZnbWFjMTtcXG4rXFx0XFx0ZXRoZXJuZXQyID0gXFx1MDAyNmdtYWMyO1xcbitcXHR9O1xcbitcXG4rXFx0Y2hvc2VuIHtcXG4rXFx0XFx0c3Rkb3V0LXBhdGggPSBcXFwic2VyaWFsMDoxMTUyMDBuOFxcXCI7XFxuK1xcdH07XFxuK1xcbitcXHRsZWRzIHtcXG4rXFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJncGlvLWxlZHNcXFwiO1xcbitcXG4rXFx0XFx0bGVkLTAge1xcbitcXHRcXHRcXHRsYWJlbCA9IFxcXCJocHNfbGVkMFxcXCI7XFxuK1xcdFxcdFxcdGdwaW9zID0gXFx1MDAzY1xcdTAwMjZwb3J0YSAxMSBHUElPX0FDVElWRV9ISUdIXFx1MDAzZTtcXG4rXFx0XFx0fTtcXG4rXFxuK1xcdH07XFxuK1xcbitcXHRtZW1vcnlAODAwMDAwMDAge1xcbitcXHRcXHRkZXZpY2VfdHlwZSA9IFxcXCJtZW1vcnlcXFwiO1xcbitcXHRcXHQvKiBXZSBleHBlY3QgdGhlIGJvb3Rsb2FkZXIgdG8gZmlsbCBpbiB0aGUgcmVnICovXFxuK1xcdFxcdHJlZyA9IFxcdTAwM2MweDAgMHg4MDAwMDAwMCAweDAgMHgwXFx1MDAzZTtcXG4rXFx0fTtcXG4rfTtcXG4rXFxuK1xcdTAwMjZncGlvMCB7XFxuK1xcdHN0YXR1cyA9IFxcXCJva2F5XFxcIjtcXG4rfTtcXG4rXFxuK1xcdTAwMjZncGlvMSB7XFxuK1xcdHN0YXR1cyA9IFxcXCJva2F5XFxcIjtcXG4rfTtcXG4rXFxuK1xcdTAwMjZnbWFjMSB7XFxuK1xcdHN0YXR1cyA9IFxcXCJva2F5XFxcIjtcXG4rXFx0Y29tcGF0aWJsZSA9IFxcXCJhbHRyLHNvY2ZwZ2Etc3RtbWFjLWFnaWxleDUtdHNuXFxcIixcXG4rXFx0XFx0ICAgICBcXFwic25wcyxkd3hnbWFjLTIuMTBcXFwiO1xcbitcXHRwaHktbW9kZSA9IFxcXCJyZ21paS1pZFxcXCI7XFxuK1xcdHBoeS1oYW5kbGUgPSBcXHUwMDNjXFx1MDAyNmVtYWMxX3BoeTBcXHUwMDNlO1xcbitcXHRtYXgtZnJhbWUtc2l6ZSA9IFxcdTAwM2M5MDAwXFx1MDAzZTtcXG4rXFxuK1xcdG1kaW8wIHtcXG4rXFx0XFx0I2FkZHJlc3MtY2VsbHMgPSBcXHUwMDNjMVxcdTAwM2U7XFxuK1xcdFxcdCNzaXplLWNlbGxzID0gXFx1MDAzYzBcXHUwMDNlO1xcbitcXHRcXHRjb21wYXRpYmxlID0gXFxcInNucHMsZHdtYWMtbWRpb1xcXCI7XFxuK1xcbitcXHRcXHRlbWFjMV9waHkwOiBldGhlcm5ldC1waHlAMCB7XFxuK1xcdFxcdFxcdHJlZyA9IFxcdTAwM2MwXFx1MDAzZTtcXG4rXFx0XFx0fTtcXG4rXFx0fTtcXG4rfTtcXG4rXFxuK1xcdTAwMjZnbWFjMiB7XFxuK1xcdHN0YXR1cyA9IFxcXCJva2F5XFxcIjtcXG4rXFx0cGh5LW1vZGUgPSBcXFwicmdtaWktaWRcXFwiO1xcbitcXHRwaHktaGFuZGxlID0gXFx1MDAzY1xcdTAwMjZlbWFjMl9waHkwXFx1MDAzZTtcXG4rXFx0bWF4LWZyYW1lLXNpemUgPSBcXHUwMDNjOTAwMFxcdTAwM2U7XFxuK1xcbitcXHRtZGlvMCB7XFxuK1xcdFxcdCNhZGRyZXNzLWNlbGxzID0gXFx1MDAzYzFcXHUwMDNlO1xcbitcXHRcXHQjc2l6ZS1jZWxscyA9IFxcdTAwM2MwXFx1MDAzZTtcXG4rXFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzbnBzLGR3bWFjLW1kaW9cXFwiO1xcbitcXG4rXFx0XFx0ZW1hYzJfcGh5MDogZXRoZXJuZXQtcGh5QDAge1xcbitcXHRcXHRcXHRyZWcgPSBcXHUwMDNjMFxcdTAwM2U7XFxuK1xcdFxcdH07XFxuK1xcdH07XFxuK307XFxuK1xcbitcXHUwMDI2b3NjMSB7XFxuK1xcdGNsb2NrLWZyZXF1ZW5jeSA9IFxcdTAwM2MyNTAwMDAwMFxcdTAwM2U7XFxuK307XFxuK1xcbitcXHUwMDI2cXNwaSB7XFxuK1xcdHN0YXR1cyA9IFxcXCJva2F5XFxcIjtcXG4rXFx0Zmxhc2hAMCB7XFxuK1xcdFxcdGNvbXBhdGlibGUgPSBcXFwibWljcm9uLG10MjVxdTAyZ1xcXCIsIFxcXCJqZWRlYyxzcGktbm9yXFxcIjtcXG4rXFx0XFx0cmVnID0gXFx1MDAzYzBcXHUwMDNlO1xcbitcXHRcXHRzcGktbWF4LWZyZXF1ZW5jeSA9IFxcdTAwM2MxMDAwMDAwMDBcXHUwMDNlO1xcbitcXHRcXHRtMjVwLGZhc3QtcmVhZDtcXG4rXFx0XFx0Y2RucyxyZWFkLWRlbGF5ID0gXFx1MDAzYzJcXHUwMDNlO1xcbitcXHRcXHRjZG5zLHRzaHNsLW5zID0gXFx1MDAzYzUwXFx1MDAzZTtcXG4rXFx0XFx0Y2Rucyx0c2QyZC1ucyA9IFxcdTAwM2M1MFxcdTAwM2U7XFxuK1xcdFxcdGNkbnMsdGNoc2gtbnMgPSBcXHUwMDNjNFxcdTAwM2U7XFxuK1xcdFxcdGNkbnMsdHNsY2gtbnMgPSBcXHUwMDNjNFxcdTAwM2U7XFxuK1xcdFxcdHNwaS10eC1idXMtd2lkdGggPSBcXHUwMDNjNFxcdTAwM2U7XFxuK1xcdFxcdHNwaS1yeC1idXMtd2lkdGggPSBcXHUwMDNjNFxcdTAwM2U7XFxuK1xcbitcXHRcXHRwYXJ0aXRpb25zIHtcXG4rXFx0XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJmaXhlZC1wYXJ0aXRpb25zXFxcIjtcXG4rXFx0XFx0XFx0I2FkZHJlc3MtY2VsbHMgPSBcXHUwMDNjMVxcdTAwM2U7XFxuK1xcdFxcdFxcdCNzaXplLWNlbGxzID0gXFx1MDAzYzFcXHUwMDNlO1xcbitcXG4rXFx0XFx0XFx0cXNwaV9ib290OiBwYXJ0aXRpb25AMCB7XFxuK1xcdFxcdFxcdFxcdGxhYmVsID0gXFxcInUtYm9vdFxcXCI7XFxuK1xcdFxcdFxcdFxcdHJlZyA9IFxcdTAwM2MweDAgMHgwNDIwMDAwMFxcdTAwM2U7XFxuK1xcdFxcdFxcdH07XFxuK1xcbitcXHRcXHRcXHRyb290OiBwYXJ0aXRpb25ANDIwMDAwMCB7XFxuK1xcdFxcdFxcdFxcdGxhYmVsID0gXFxcInJvb3RcXFwiO1xcbitcXHRcXHRcXHRcXHRyZWcgPSBcXHUwMDNjMHgwNDIwMDAwMCAweDBiZTAwMDAwXFx1MDAzZTtcXG4rXFx0XFx0XFx0fTtcXG4rXFx0XFx0fTtcXG4rXFx0fTtcXG4rfTtcXG4rXFxuK1xcdTAwMjZ1YXJ0MCB7XFxuK1xcdHN0YXR1cyA9IFxcXCJva2F5XFxcIjtcXG4rfTtcXG4rXFxuK1xcdTAwMjZ1c2IwIHtcXG4rXFx0c3RhdHVzID0gXFxcIm9rYXlcXFwiO1xcbitcXHRkaXNhYmxlLW92ZXItY3VycmVudDtcXG4rfTtcXG4rXFxuK1xcdTAwMjZ3YXRjaGRvZzAge1xcbitcXHRzdGF0dXMgPSBcXFwib2theVxcXCI7XFxuK307XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuY1xcbmluZGV4IDFkN2YwYTU3ZDI4ODkuLjA2MzIxMDViNDIwZjEgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jXFxuQEAgLTY5LDEyICs2OSwxMyBAQCBzdHJ1Y3Qgc29jZnBnYV9kd21hYyB7XFxuIFxcdHZvaWQgX19pb21lbSAqdHNlX3Bjc19iYXNlO1xcbiBcXHR2b2lkIF9faW9tZW0gKnNnbWlpX2FkYXB0ZXJfYmFzZTtcXG4gXFx0Ym9vbCBmMmhfcHRwX3JlZl9jbGs7XFxuK1xcdHBoeV9pbnRlcmZhY2VfdCBtYWNfaW50ZXJmYWNlO1xcbiBcXHRjb25zdCBzdHJ1Y3Qgc29jZnBnYV9kd21hY19vcHMgKm9wcztcXG4gfTtcXG4gXFxuIHN0YXRpYyBwaHlfaW50ZXJmYWNlX3Qgc29jZnBnYV9nZXRfcGxhdF9waHltb2RlKHN0cnVjdCBzb2NmcGdhX2R3bWFjICpkd21hYylcXG4ge1xcbi1cXHRyZXR1cm4gZHdtYWMtXFx1MDAzZXBsYXRfZGF0LVxcdTAwM2VwaHlfaW50ZXJmYWNlO1xcbitcXHRyZXR1cm4gZHdtYWMtXFx1MDAzZW1hY19pbnRlcmZhY2U7XFxuIH1cXG4gXFxuIHN0YXRpYyB2b2lkIHNvY2ZwZ2Ffc2dtaWlfY29uZmlnKHN0cnVjdCBzb2NmcGdhX2R3bWFjICpkd21hYywgYm9vbCBlbmFibGUpXFxuQEAgLTY1MCw2ICs2NTEsOCBAQCBzdGF0aWMgaW50IHNvY2ZwZ2FfZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4gXFx0cGxhdF9kYXQtXFx1MDAzZXBjc19leGl0ID0gc29jZnBnYV9kd21hY19wY3NfZXhpdDtcXG4gXFx0cGxhdF9kYXQtXFx1MDAzZXNlbGVjdF9wY3MgPSBzb2NmcGdhX2R3bWFjX3NlbGVjdF9wY3M7XFxuIFxcbitcXHRkd21hYy1cXHUwMDNlbWFjX2ludGVyZmFjZSA9IHBsYXRfZGF0LVxcdTAwM2VwaHlfaW50ZXJmYWNlO1xcbitcXG4gXFx0b3BzLVxcdTAwM2VzZXR1cF9wbGF0X2RhdChkd21hYyk7XFxuIFxcbiBcXHRyZXR1cm4gZGV2bV9zdG1tYWNfcGx0ZnJfcHJvYmUocGRldiwgcGxhdF9kYXQsIFxcdTAwMjZzdG1tYWNfcmVzKTtcXG5AQCAtNjcwLDEwICs2NzMsMjggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzb2NmcGdhX2R3bWFjX29wcyBzb2NmcGdhX2FnaWxleDVfb3BzID0ge1xcbiBcXHQuc2V0dXBfcGxhdF9kYXQgPSBzb2NmcGdhX2FnaWxleDVfc2V0dXBfcGxhdF9kYXQsXFxuIH07XFxuIFxcbitzdGF0aWMgdm9pZCBzb2NmcGdhX2FnaWxleDVfdHNuX2dtYWNfc2V0dXBfcGxhdF9kYXQoc3RydWN0IHNvY2ZwZ2FfZHdtYWMgKmR3bWFjKVxcbit7XFxuK1xcdHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQgPSBkd21hYy1cXHUwMDNlcGxhdF9kYXQ7XFxuK1xcbitcXHRzb2NmcGdhX2FnaWxleDVfc2V0dXBfcGxhdF9kYXQoZHdtYWMpO1xcbitcXG4rXFx0LyogRlBHQSBjb252ZXJ0ZXIgc3VwcGxpZXMgUkdNSUkgZGVsYXlzOyBNQUMgdXNlcyBHTUlJLCBQSFkgZ2V0cyBwbGFpbiBSR01JSSAqL1xcbitcXHRkd21hYy1cXHUwMDNlbWFjX2ludGVyZmFjZSA9IFBIWV9JTlRFUkZBQ0VfTU9ERV9HTUlJO1xcbitcXHRpZiAocGh5X2ludGVyZmFjZV9tb2RlX2lzX3JnbWlpKHBsYXRfZGF0LVxcdTAwM2VwaHlfaW50ZXJmYWNlKSlcXG4rXFx0XFx0cGxhdF9kYXQtXFx1MDAzZXBoeV9pbnRlcmZhY2UgPSBQSFlfSU5URVJGQUNFX01PREVfUkdNSUk7XFxuK31cXG4rXFxuK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc29jZnBnYV9kd21hY19vcHMgc29jZnBnYV9hZ2lsZXg1X3Rzbl9nbWFjX29wcyA9IHtcXG4rXFx0LnNldF9waHlfbW9kZSA9IHNvY2ZwZ2FfZ2VuMTBfc2V0X3BoeV9tb2RlLFxcbitcXHQuc2V0dXBfcGxhdF9kYXQgPSBzb2NmcGdhX2FnaWxleDVfdHNuX2dtYWNfc2V0dXBfcGxhdF9kYXQsXFxuK307XFxuK1xcbiBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBzb2NmcGdhX2R3bWFjX21hdGNoW10gPSB7XFxuIFxcdHsgLmNvbXBhdGlibGUgPSBcXFwiYWx0cixzb2NmcGdhLXN0bW1hY1xcXCIsIC5kYXRhID0gXFx1MDAyNnNvY2ZwZ2FfZ2VuNV9vcHMgfSxcXG4gXFx0eyAuY29tcGF0aWJsZSA9IFxcXCJhbHRyLHNvY2ZwZ2Etc3RtbWFjLWExMC1zMTBcXFwiLCAuZGF0YSA9IFxcdTAwMjZzb2NmcGdhX2dlbjEwX29wcyB9LFxcbiBcXHR7IC5jb21wYXRpYmxlID0gXFxcImFsdHIsc29jZnBnYS1zdG1tYWMtYWdpbGV4NVxcXCIsIC5kYXRhID0gXFx1MDAyNnNvY2ZwZ2FfYWdpbGV4NV9vcHMgfSxcXG4rXFx0eyAuY29tcGF0aWJsZSA9IFxcXCJhbHRyLHNvY2ZwZ2Etc3RtbWFjLWFnaWxleDUtdHNuXFxcIiwgLmRhdGEgPSBcXHUwMDI2c29jZnBnYV9hZ2lsZXg1X3Rzbl9nbWFjX29wcyB9LFxcbiBcXHR7IH1cXG4gfTtcXG4gTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgc29jZnBnYV9kd21hY19tYXRjaCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA4VDA3OjMyOjU3LjcwOTMwMjkxOFoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImNvcmUiLCJEdXJhdGlvbiI6MTg5OTA5NjEzNTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIERldmljZXRyZWUgYmluZGluZ3MsIEFSTTY0IERUUyBmaWxlcywgYW5kIHRoZSBkd21hYy1zb2NmcGdhIHBsYXRmb3JtIEV0aGVybmV0IGRyaXZlciBmb3IgSW50ZWwvQWx0ZXJhIFNvQ0ZQR0EgU29Dcy4gVGhpcyBkcml2ZXIgaXMgdGllZCB0byBzcGVjaWZpYyBBUk0vQVJNNjQgU29DIERldmljZXRyZWUgaGFyZHdhcmUgYW5kIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBvbiB0aGUgYW1kNjQgdGFyZ2V0IGFyY2hpdGVjdHVyZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyIGFuZCBzZWN1cml0eSBlbmdpbmVlci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZXZhbHVhdGUgd2hldGhlciBpdCB3YXJyYW50cyBmdXp6aW5nIHdpdGggc3l6a2FsbGVyLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiBpbnRlcm5hbCBhc3N1bXB0aW9ucy4gWW91IG11c3QgYWN0aXZlbHkgdXNlIHlvdXIgY29kZSBhY2Nlc3NcbnRvb2xzIHRvIGluc3BlY3QgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSwgY2FsbGVycywgYW5kIHN1cnJvdW5kaW5nIGNvbnRleHQuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4xLiBDT1JFIFRSSUFHRSBQSElMT1NPUEhZXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuVGhlIGdvYWwgb2YgcGF0Y2ggZnV6emluZyBpcyB0byBkaXNjb3ZlciBjcmFzaGVzLCByZWdyZXNzaW9ucywgZXhwb3NlZCBsYXRlbnQgYnVncyxcbmFuZCBuZXdseSB0cmlnZ2VyZWQgYXNzZXJ0aW9ucyBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBzZXJpZXMuXG5cbi0gUkVBQ0hBQklMSVRZIElTIFRIRSBQUklNQVJZIEdBVEU6XG4gIEZ1enppbmcgY2FuIG9ubHkgZGlzY292ZXIgYnVncyBpbiBjb2RlIHRoYXQgY2FuIGFjdHVhbGx5IGV4ZWN1dGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWRcbiAgZW52aXJvbm1lbnRzIChHQ0Ugb3IgUUVNVSwgdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGRldmljZXMgbGlrZSBVU0IgZ2FkZ2V0cywgbmV0ZGV2LCB0dW4vdGFwKS5cbiAgSWYgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIChzZWUgU2VjdGlvbiAyKSwgaXQgTVVTVCBOT1QgYmUgZnV6emVkLFxuICByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgYWRkcyBhc3NlcnRpb25zIG9yIGNvbXBsZXggbG9naWMuXG5cbi0gRE8gTk9UIEJMSU5ETFkgVFJVU1QgXCJOTyBGVU5DVElPTkFMIENIQU5HRVwiIChORkNJKSBPUiBcIlJFRkFDVE9SSU5HXCIgQ0xBSU1TOlxuICBQYXRjaCBhdXRob3JzIHJvdXRpbmVseSBsYWJlbCBjaGFuZ2VzIGFzIFwiY2xlYW51cHNcIiwgXCJyZWZhY3RvcmluZ3NcIiwgb3Igc3RhdGVcbiAgXCJObyBmdW5jdGlvbmFsIGNoYW5nZSBpbnRlbmRlZFwiLiBEbyBOT1QgdGFrZSB0aGVzZSBjbGFpbXMgYXQgZmFjZSB2YWx1ZS5cbiAgQ29kZSByZWZhY3RvcmluZ3MgdGhhdCByZWFycmFuZ2UgbG9naWMsIGludHJvZHVjZSBoZWxwZXIgZnVuY3Rpb25zLCBvciBhbHRlciBzdGF0ZSBtYW5hZ2VtZW50XG4gIGluIGNvcmUgc3Vic3lzdGVtcyBmcmVxdWVudGx5IGludHJvZHVjZSBzdWJ0bGUgc2VtYW50aWMgc2hpZnRzIG9yIHVuY292ZXIgbGF0ZW50IGtlcm5lbCBidWdzLlxuICBJZiByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlIGlzIG1vZGlmaWVkIG9yIHJlZmFjdG9yZWQsIGl0IE1VU1QgYmUgZnV6emVkLlxuXG4tIE5FVyBPUiBNT0RJRklFRCBBU1NFUlRJT05TIElOIFJFQUNIQUJMRSBDT0RFIE1VU1QgQkUgRlVaWkVEOlxuICBXaGVuIGEgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllcyBydW50aW1lIGNoZWNrcyBvciBhc3NlcnRpb25zIChlLmcuLCBXQVJOX09OKiwgVk1fV0FSTl9PTiosXG4gIEJVR19PTiosIGxvY2tkZXBfYXNzZXJ0KikgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMsIGl0IGVuZm9yY2VzIG5ldyBvciBzdHJpY3RlciBpbnZhcmlhbnRzLlxuICBFdmVuIGlmIHRoZSBhdXRob3IgYmVsaWV2ZXMgdGhlIGludmFyaWFudCBhbHdheXMgaG9sZHMsIGZ1enppbmcgaXMgZXNzZW50aWFsIHRvIHZlcmlmeSB3aGV0aGVyXG4gIGFuIHVudXN1YWwgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucyBjYW4gdmlvbGF0ZSBpdC5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjIuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz1mYWxzZSAoTkVHQVRJVkUgQ1JJVEVSSUEpXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBPTkxZIElGIGFsbCBtb2RpZmllZCBjb2RlIGZhbGxzIHN0cmljdGx5IGludG8gb25lIG9yIG1vcmUgb2YgdGhlc2UgY2F0ZWdvcmllczpcblxuLSBOb24ta2VybmVsIGFuZCBub24tZXhlY3V0YWJsZSBjaGFuZ2VzOlxuICAqIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIGNvbW1lbnRzLCBvciBzcGVsbGluZyBmaXhlcy5cbiAgKiBVc2VyLXNwYWNlIGRpcmVjdG9yaWVzLCBzZWxmLXRlc3RzLCBzYW1wbGVzLCBvciBzY3JpcHRzIChlLmcuLCB0b29scy8sIHNhbXBsZXMvLCBzY3JpcHRzLywgdXNyLylcbiAgICB0aGF0IGRvIG5vdCBhZmZlY3QgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAodm1saW51eCkgb3Iga2VybmVsIG1vZHVsZXMuXG4gICogUHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZyAoZS5nLiwgbWVzc2FnZSBzdHJpbmdzIGluIHByX2VyciwgcHJpbnRrLCBkZXZfaW5mbykgb3IgdHJhY2Vwb2ludHNcbiAgICB0aGF0IGRvIG5vdCBhbHRlciBjb250cm9sIGZsb3cgb3IgZGF0YSBzdHJ1Y3R1cmVzLlxuICAqIEJ1aWxkIHN5c3RlbSBvciBLY29uZmlnIGNoYW5nZXMgdGhhdCBkbyBub3QgYWx0ZXIgY29tcGlsZWQgQyBsb2dpYy5cbi0gU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlOlxuICAqIFZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgICBpb25pYywgYW1kZ3B1KSByZXF1aXJpbmcgcGh5c2ljYWwgQVNJQy9QQ0llIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBVbnJlYWNoYWJsZSBleGVjdXRpb24gcGF0aHM6XG4gICogRHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoLnJlbW92ZSwgLnNodXRkb3duLCBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIpIGV4ZWN1dGVkIG9ubHkgZHVyaW5nXG4gICAgcGh5c2ljYWwgUENJIGhvdC11bnBsdWcgb3IgbWFudWFsIHN5c2ZzIGRyaXZlciB1bmJpbmRpbmcuXG4gICogQ29kZSBwYXRocyBleGNsdXNpdmUgdG8gYXJjaGl0ZWN0dXJlcyBvdGhlciB0aGFuIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuMy4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPXRydWUgKFBPU0lUSVZFIENSSVRFUklBKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZSB3aGVuZXZlciB0aGUgcGF0Y2ggdG91Y2hlcyByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlLCBpbmNsdWRpbmc6XG4tIENvcmUgU3Vic3lzdGVtczpcbiAgKiBBbnkgbG9naWMgbW9kaWZpY2F0aW9ucyBpbiBtZW1vcnkgbWFuYWdlbWVudCAobW0vKSwgc3luY2hyb25pemF0aW9uL2xvY2tpbmcgKGtlcm5lbC9sb2NraW5nLyksXG4gICAgQlBGLCBzY2hlZHVsZXIsIGNvcmUgbmV0d29ya2luZywgVkZTLCBvciBzeXNjYWxsIGhhbmRsaW5nLlxuLSBSZWZhY3RvcmluZ3MgYW5kIENvZGUgQ2xlYW51cHM6XG4gICogQW55IHJlc3RydWN0dXJpbmcgb2YgcmVhY2hhYmxlIGRhdGEgc3RydWN0dXJlcywgaGVscGVyIGFic3RyYWN0aW9ucywgb3IgYWxnb3JpdGhtIGZsb3dzLlxuLSBSdW50aW1lIEFzc2VydGlvbnMgYW5kIERlZmVuc2l2ZSBDaGVja3M6XG4gICogQW55IGludHJvZHVjdGlvbiBvciBhbHRlcmF0aW9uIG9mIGFzc2VydGlvbnMgKFdBUk5fT04qLCBWTV9XQVJOX09OKiwgQlVHX09OKiwgZXRjLikgaW4gcmVhY2hhYmxlIHBhdGhzLlxuLSBSZWFjaGFibGUgRHJpdmVycyBhbmQgUHJvdG9jb2xzOlxuICAqIERyaXZlcnMgYWNjZXNzaWJsZSB2aWEgdmlydHVhbCBidXNlcyAodmlydGlvLCBVU0IgZ2FkZ2V0LCBsb29wYmFjaywgbmV0bGluaywgYmluZGVyLCBzb2NrZXRzLCBldGMuKS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjQuIEVYVFJBQ1RJTkcgRm9jdXNTeW1ib2xzIChQUkVWRU5USU5HIERJTFVUSU9OKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbldoZW4gV29ydGhGdXp6aW5nPXRydWUsIHlvdSBtdXN0IGV4dHJhY3Qgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyBpbnRvIEZvY3VzU3ltYm9scyB0byBndWlkZSB0aGUgZnV6emVyOlxuXG4tIEFWT0lEIFVCSVFVSVRPVVMgTElGRUNZQ0xFIEhPVC1QQVRIUzpcbiAgRG8gTk9UIGxpc3QgZ2VuZXJpYywgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2FsbGVkIGJ5IGFsbW9zdCBldmVyeSBwcm9ncmFtIGluIHRoZSBjb3JwdXNcbiAgKGluY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvOiBnZW5lcmFsIG1lbW9yeSBhbGxvY2F0b3JzIGFuZCBkZWFsbG9jYXRvcnMsIHBhZ2UgZmF1bHRcbiAgYW5kIHRyYXAgaGFuZGxlcnMsIG9yIGNvcmUgc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXM7IHRoaXMgaXMgbm90IGFuIGV4aGF1c3RpdmUgbGlzdCkuXG4gIExpc3RpbmcgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2F1c2VzIHRoZSBmdXp6ZXIgdG8gY2xhc3NpZnkgdGhvdXNhbmRzIG9mIHVucmVsYXRlZCB0ZXN0cyBhcyBcImZvY3VzZWRcIixcbiAgd2hpY2ggc2V2ZXJlbHkgZGlsdXRlcyBmdXp6aW5nIGVmZm9ydCBhd2F5IGZyb20gdGhlIGFjdHVhbCBjaGFuZ2VzLlxuXG4tIFRBUkdFVCBTUEVDSUZJQyBGRUFUVVJFIExPR0lDIEFORCBFTlRSWVBPSU5UUzpcbiAgTGlzdCBmdW5jdGlvbnMgdGhhdCBzcGVjaWZpY2FsbHkgaW1wbGVtZW50IHRoZSBsb2dpYyBiZWluZyBhZGRlZCBvciBhbHRlcmVkLCBvciBkaXJlY3QgQVBJIGVudHJ5cG9pbnRzXG4gIGZvciB0aGUgc3Vic3lzdGVtIGZlYXR1cmUgdW5kZXIgcmV2aWV3LlxuXG4tIEhBTkRMSU5HIFNUQVRJQyBJTkxJTkUgRlVOQ1RJT05TIElOIEhFQURFUlMgKC5oKTpcbiAgQ29tcGlsZXItaW5saW5lZCBzdGF0aWMgZnVuY3Rpb25zIChzdWNoIGFzIHN0YXRpYyBpbmxpbmVzIGluIG1tLyouaCBvciBpbmNsdWRlL2xpbnV4LyouaCkgbGFja1xuICBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzIGluIHZtbGludXggYW5kIGNhbm5vdCBiZSB0YXJnZXRlZCBkaXJlY3RseSBieSBzeW1ib2wgY292ZXJhZ2UgZmlsdGVycy5cbiAgSWYgdGhlIGNoYW5nZXMgYXJlIHByaW1hcmlseSBpbiBzdGF0aWMgaW5saW5lIGhlbHBlcnMsIGlkZW50aWZ5IG5vbi1zdGF0aWMsIGZlYXR1cmUtc3BlY2lmaWMgY2FsbGVyXG4gIGZ1bmN0aW9ucyBpbiAuYyBmaWxlcyB0aGF0IGV4ZXJjaXNlIHRoZW0gKGF2b2lkaW5nIHViaXF1aXRvdXMgbGlmZWN5Y2xlIHdyYXBwZXJzKS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjUuIElERU5USUZZSU5HIEVuYWJsZUNvbmZpZ3Ncbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5JZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IGNvbXBpbGUgYW5kIHJlYWNoIHRoZSBtb2RpZmllZCBjb2RlOlxuLSBJbnNwZWN0IEtjb25maWcgZmlsZXMgYW5kICNpZmRlZiBndWFyZHM7IGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuLSBDaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MgbmVlZGVkLlxuLSBTdHJpcCBhbnkgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiVGFyZ2V0IGFyY2hpdGVjdHVyZTogYW1kNjRcblxuRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgMDZkYzc4ZDBlNmIxYzE1OGQ2ZjJkMWIzOGE3NDk2NDQ2YzYzNjU3MFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgU2VwIDggMDc6MzI6NTYgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL2FsdGVyYS55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9hbHRlcmEueWFtbFxuaW5kZXggMzAzMGNmNDZmZTc0Yy4uZTQzMTQ2OWE3MTc1MyAxMDA2NDRcbi0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vYWx0ZXJhLnlhbWxcbisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vYWx0ZXJhLnlhbWxcbkBAIC0xMTQsNiArMTE0LDcgQEAgcHJvcGVydGllczpcbiAgICAgICAgICAgICAgIC0gaW50ZWwsc29jZnBnYS1hZ2lsZXg1LXNvY2RrLWRlYnVnXG4gICAgICAgICAgICAgICAtIGludGVsLHNvY2ZwZ2EtYWdpbGV4NS1zb2Nkay1tb2R1bGFyXG4gICAgICAgICAgICAgICAtIGludGVsLHNvY2ZwZ2EtYWdpbGV4NS1zb2Nkay1uYW5kXG4rICAgICAgICAgICAgICAtIGludGVsLHNvY2ZwZ2EtYWdpbGV4NS1zb2Nkay10c24tY2ZnMlxuICAgICAgICAgICAtIGNvbnN0OiBpbnRlbCxzb2NmcGdhLWFnaWxleDVcbiBcbiAgICAgICAtIGRlc2NyaXB0aW9uOiBBZ2lsZXg3MiBib2FyZHNcbmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sXG5pbmRleCA2MzA4NGY3NjIzNzM4Li4yYzI3YmZkNWFmODkyIDEwMDY0NFxuLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbHRyLHNvY2ZwZ2Etc3RtbWFjLnlhbWxcbisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sXG5AQCAtMjQsNiArMjQsNyBAQCBzZWxlY3Q6XG4gICAgICAgICAgIC0gYWx0cixzb2NmcGdhLXN0bW1hY1xuICAgICAgICAgICAtIGFsdHIsc29jZnBnYS1zdG1tYWMtYTEwLXMxMFxuICAgICAgICAgICAtIGFsdHIsc29jZnBnYS1zdG1tYWMtYWdpbGV4NVxuKyAgICAgICAgICAtIGFsdHIsc29jZnBnYS1zdG1tYWMtYWdpbGV4NS10c25cbiBcbiAgIHJlcXVpcmVkOlxuICAgICAtIGNvbXBhdGlibGVcbkBAIC00NCw3ICs0NSw5IEBAIHByb3BlcnRpZXM6XG4gICAgICAgICAgIC0gY29uc3Q6IHNucHMsZHdtYWMtMy43NGFcbiAgICAgICAgICAgLSBjb25zdDogc25wcyxkd21hY1xuICAgICAgIC0gaXRlbXM6XG4tICAgICAgICAgIC0gY29uc3Q6IGFsdHIsc29jZnBnYS1zdG1tYWMtYWdpbGV4NVxuKyAgICAgICAgICAtIGVudW06XG4rICAgICAgICAgICAgICAtIGFsdHIsc29jZnBnYS1zdG1tYWMtYWdpbGV4NVxuKyAgICAgICAgICAgICAgLSBhbHRyLHNvY2ZwZ2Etc3RtbWFjLWFnaWxleDUtdHNuXG4gICAgICAgICAgIC0gY29uc3Q6IHNucHMsZHd4Z21hYy0yLjEwXG4gXG4gICBjbG9ja3M6XG5kaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9NYWtlZmlsZSBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvTWFrZWZpbGVcbmluZGV4IDI3MGM3MGZkZjA4NGIuLmNlN2NmM2E2MzI3NTMgMTAwNjQ0XG4tLS0gYS9hcmNoL2FybTY0L2Jvb3QvZHRzL2ludGVsL01ha2VmaWxlXG4rKysgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL2ludGVsL01ha2VmaWxlXG5AQCAtOCw2ICs4LDcgQEAgZHRiLSQoQ09ORklHX0FSQ0hfSU5URUxfU09DRlBHQSkgKz0gc29jZnBnYV9hZ2lsZXhfbjYwMDAuZHRiIFxcXG4gXHRcdFx0XHRzb2NmcGdhX2FnaWxleDVfc29jZGtfMDEzYi5kdGIgXFxcbiBcdFx0XHRcdHNvY2ZwZ2FfYWdpbGV4NV9zb2Nka19tb2R1bGFyLmR0YiBcXFxuIFx0XHRcdFx0c29jZnBnYV9hZ2lsZXg1X3NvY2RrX25hbmQuZHRiIFxcXG4rXHRcdFx0XHRzb2NmcGdhX2FnaWxleDVfc29jZGtfdHNuX2NmZzIuZHRiIFxcXG4gXHRcdFx0XHRzb2NmcGdhX2FnaWxleDcyX3NvY2RrLmR0YiBcXFxuIFx0XHRcdFx0c29jZnBnYV9hZ2lsZXg3bV9zb2Nkay5kdGIgXFxcbiBcdFx0XHRcdHNvY2ZwZ2FfbjV4X3NvY2RrLmR0YlxuZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvc29jZnBnYV9hZ2lsZXg1X3NvY2RrX3Rzbl9jZmcyLmR0cyBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvc29jZnBnYV9hZ2lsZXg1X3NvY2RrX3Rzbl9jZmcyLmR0c1xubmV3IGZpbGUgbW9kZSAxMDA2NDRcbmluZGV4IDAwMDAwMDAwMDAwMDAuLjlkMzlmODQzYjQyNDBcbi0tLSAvZGV2L251bGxcbisrKyBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvc29jZnBnYV9hZ2lsZXg1X3NvY2RrX3Rzbl9jZmcyLmR0c1xuQEAgLTAsMCArMSwxMzAgQEBcbisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG4rLypcbisgKiBDb3B5cmlnaHQgKEMpIDIwMjYsIEFsdGVyYSBDb3Jwb3JhdGlvblxuKyAqL1xuKyNpbmNsdWRlIFwic29jZnBnYV9hZ2lsZXg1LmR0c2lcIlxuK1xuKy8ge1xuK1x0bW9kZWwgPSBcIlNvQ0ZQR0EgQWdpbGV4NSBTb0NESyBUU04gQ29uZmlnMlwiO1xuK1x0Y29tcGF0aWJsZSA9IFwiaW50ZWwsc29jZnBnYS1hZ2lsZXg1LXNvY2RrLXRzbi1jZmcyXCIsIFwiaW50ZWwsc29jZnBnYS1hZ2lsZXg1XCI7XG4rXG4rXHRhbGlhc2VzIHtcbitcdFx0c2VyaWFsMCA9IFx1MDAyNnVhcnQwO1xuK1x0XHRldGhlcm5ldDEgPSBcdTAwMjZnbWFjMTtcbitcdFx0ZXRoZXJuZXQyID0gXHUwMDI2Z21hYzI7XG4rXHR9O1xuK1xuK1x0Y2hvc2VuIHtcbitcdFx0c3Rkb3V0LXBhdGggPSBcInNlcmlhbDA6MTE1MjAwbjhcIjtcbitcdH07XG4rXG4rXHRsZWRzIHtcbitcdFx0Y29tcGF0aWJsZSA9IFwiZ3Bpby1sZWRzXCI7XG4rXG4rXHRcdGxlZC0wIHtcbitcdFx0XHRsYWJlbCA9IFwiaHBzX2xlZDBcIjtcbitcdFx0XHRncGlvcyA9IFx1MDAzY1x1MDAyNnBvcnRhIDExIEdQSU9fQUNUSVZFX0hJR0hcdTAwM2U7XG4rXHRcdH07XG4rXG4rXHR9O1xuK1xuK1x0bWVtb3J5QDgwMDAwMDAwIHtcbitcdFx0ZGV2aWNlX3R5cGUgPSBcIm1lbW9yeVwiO1xuK1x0XHQvKiBXZSBleHBlY3QgdGhlIGJvb3Rsb2FkZXIgdG8gZmlsbCBpbiB0aGUgcmVnICovXG4rXHRcdHJlZyA9IFx1MDAzYzB4MCAweDgwMDAwMDAwIDB4MCAweDBcdTAwM2U7XG4rXHR9O1xuK307XG4rXG4rXHUwMDI2Z3BpbzAge1xuK1x0c3RhdHVzID0gXCJva2F5XCI7XG4rfTtcbitcbitcdTAwMjZncGlvMSB7XG4rXHRzdGF0dXMgPSBcIm9rYXlcIjtcbit9O1xuK1xuK1x1MDAyNmdtYWMxIHtcbitcdHN0YXR1cyA9IFwib2theVwiO1xuK1x0Y29tcGF0aWJsZSA9IFwiYWx0cixzb2NmcGdhLXN0bW1hYy1hZ2lsZXg1LXRzblwiLFxuK1x0XHQgICAgIFwic25wcyxkd3hnbWFjLTIuMTBcIjtcbitcdHBoeS1tb2RlID0gXCJyZ21paS1pZFwiO1xuK1x0cGh5LWhhbmRsZSA9IFx1MDAzY1x1MDAyNmVtYWMxX3BoeTBcdTAwM2U7XG4rXHRtYXgtZnJhbWUtc2l6ZSA9IFx1MDAzYzkwMDBcdTAwM2U7XG4rXG4rXHRtZGlvMCB7XG4rXHRcdCNhZGRyZXNzLWNlbGxzID0gXHUwMDNjMVx1MDAzZTtcbitcdFx0I3NpemUtY2VsbHMgPSBcdTAwM2MwXHUwMDNlO1xuK1x0XHRjb21wYXRpYmxlID0gXCJzbnBzLGR3bWFjLW1kaW9cIjtcbitcbitcdFx0ZW1hYzFfcGh5MDogZXRoZXJuZXQtcGh5QDAge1xuK1x0XHRcdHJlZyA9IFx1MDAzYzBcdTAwM2U7XG4rXHRcdH07XG4rXHR9O1xuK307XG4rXG4rXHUwMDI2Z21hYzIge1xuK1x0c3RhdHVzID0gXCJva2F5XCI7XG4rXHRwaHktbW9kZSA9IFwicmdtaWktaWRcIjtcbitcdHBoeS1oYW5kbGUgPSBcdTAwM2NcdTAwMjZlbWFjMl9waHkwXHUwMDNlO1xuK1x0bWF4LWZyYW1lLXNpemUgPSBcdTAwM2M5MDAwXHUwMDNlO1xuK1xuK1x0bWRpbzAge1xuK1x0XHQjYWRkcmVzcy1jZWxscyA9IFx1MDAzYzFcdTAwM2U7XG4rXHRcdCNzaXplLWNlbGxzID0gXHUwMDNjMFx1MDAzZTtcbitcdFx0Y29tcGF0aWJsZSA9IFwic25wcyxkd21hYy1tZGlvXCI7XG4rXG4rXHRcdGVtYWMyX3BoeTA6IGV0aGVybmV0LXBoeUAwIHtcbitcdFx0XHRyZWcgPSBcdTAwM2MwXHUwMDNlO1xuK1x0XHR9O1xuK1x0fTtcbit9O1xuK1xuK1x1MDAyNm9zYzEge1xuK1x0Y2xvY2stZnJlcXVlbmN5ID0gXHUwMDNjMjUwMDAwMDBcdTAwM2U7XG4rfTtcbitcbitcdTAwMjZxc3BpIHtcbitcdHN0YXR1cyA9IFwib2theVwiO1xuK1x0Zmxhc2hAMCB7XG4rXHRcdGNvbXBhdGlibGUgPSBcIm1pY3JvbixtdDI1cXUwMmdcIiwgXCJqZWRlYyxzcGktbm9yXCI7XG4rXHRcdHJlZyA9IFx1MDAzYzBcdTAwM2U7XG4rXHRcdHNwaS1tYXgtZnJlcXVlbmN5ID0gXHUwMDNjMTAwMDAwMDAwXHUwMDNlO1xuK1x0XHRtMjVwLGZhc3QtcmVhZDtcbitcdFx0Y2RucyxyZWFkLWRlbGF5ID0gXHUwMDNjMlx1MDAzZTtcbitcdFx0Y2Rucyx0c2hzbC1ucyA9IFx1MDAzYzUwXHUwMDNlO1xuK1x0XHRjZG5zLHRzZDJkLW5zID0gXHUwMDNjNTBcdTAwM2U7XG4rXHRcdGNkbnMsdGNoc2gtbnMgPSBcdTAwM2M0XHUwMDNlO1xuK1x0XHRjZG5zLHRzbGNoLW5zID0gXHUwMDNjNFx1MDAzZTtcbitcdFx0c3BpLXR4LWJ1cy13aWR0aCA9IFx1MDAzYzRcdTAwM2U7XG4rXHRcdHNwaS1yeC1idXMtd2lkdGggPSBcdTAwM2M0XHUwMDNlO1xuK1xuK1x0XHRwYXJ0aXRpb25zIHtcbitcdFx0XHRjb21wYXRpYmxlID0gXCJmaXhlZC1wYXJ0aXRpb25zXCI7XG4rXHRcdFx0I2FkZHJlc3MtY2VsbHMgPSBcdTAwM2MxXHUwMDNlO1xuK1x0XHRcdCNzaXplLWNlbGxzID0gXHUwMDNjMVx1MDAzZTtcbitcbitcdFx0XHRxc3BpX2Jvb3Q6IHBhcnRpdGlvbkAwIHtcbitcdFx0XHRcdGxhYmVsID0gXCJ1LWJvb3RcIjtcbitcdFx0XHRcdHJlZyA9IFx1MDAzYzB4MCAweDA0MjAwMDAwXHUwMDNlO1xuK1x0XHRcdH07XG4rXG4rXHRcdFx0cm9vdDogcGFydGl0aW9uQDQyMDAwMDAge1xuK1x0XHRcdFx0bGFiZWwgPSBcInJvb3RcIjtcbitcdFx0XHRcdHJlZyA9IFx1MDAzYzB4MDQyMDAwMDAgMHgwYmUwMDAwMFx1MDAzZTtcbitcdFx0XHR9O1xuK1x0XHR9O1xuK1x0fTtcbit9O1xuK1xuK1x1MDAyNnVhcnQwIHtcbitcdHN0YXR1cyA9IFwib2theVwiO1xuK307XG4rXG4rXHUwMDI2dXNiMCB7XG4rXHRzdGF0dXMgPSBcIm9rYXlcIjtcbitcdGRpc2FibGUtb3Zlci1jdXJyZW50O1xuK307XG4rXG4rXHUwMDI2d2F0Y2hkb2cwIHtcbitcdHN0YXR1cyA9IFwib2theVwiO1xuK307XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jXG5pbmRleCAxZDdmMGE1N2QyODg5Li4wNjMyMTA1YjQyMGYxIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmNcbkBAIC02OSwxMiArNjksMTMgQEAgc3RydWN0IHNvY2ZwZ2FfZHdtYWMge1xuIFx0dm9pZCBfX2lvbWVtICp0c2VfcGNzX2Jhc2U7XG4gXHR2b2lkIF9faW9tZW0gKnNnbWlpX2FkYXB0ZXJfYmFzZTtcbiBcdGJvb2wgZjJoX3B0cF9yZWZfY2xrO1xuK1x0cGh5X2ludGVyZmFjZV90IG1hY19pbnRlcmZhY2U7XG4gXHRjb25zdCBzdHJ1Y3Qgc29jZnBnYV9kd21hY19vcHMgKm9wcztcbiB9O1xuIFxuIHN0YXRpYyBwaHlfaW50ZXJmYWNlX3Qgc29jZnBnYV9nZXRfcGxhdF9waHltb2RlKHN0cnVjdCBzb2NmcGdhX2R3bWFjICpkd21hYylcbiB7XG4tXHRyZXR1cm4gZHdtYWMtXHUwMDNlcGxhdF9kYXQtXHUwMDNlcGh5X2ludGVyZmFjZTtcbitcdHJldHVybiBkd21hYy1cdTAwM2VtYWNfaW50ZXJmYWNlO1xuIH1cbiBcbiBzdGF0aWMgdm9pZCBzb2NmcGdhX3NnbWlpX2NvbmZpZyhzdHJ1Y3Qgc29jZnBnYV9kd21hYyAqZHdtYWMsIGJvb2wgZW5hYmxlKVxuQEAgLTY1MCw2ICs2NTEsOCBAQCBzdGF0aWMgaW50IHNvY2ZwZ2FfZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbiBcdHBsYXRfZGF0LVx1MDAzZXBjc19leGl0ID0gc29jZnBnYV9kd21hY19wY3NfZXhpdDtcbiBcdHBsYXRfZGF0LVx1MDAzZXNlbGVjdF9wY3MgPSBzb2NmcGdhX2R3bWFjX3NlbGVjdF9wY3M7XG4gXG4rXHRkd21hYy1cdTAwM2VtYWNfaW50ZXJmYWNlID0gcGxhdF9kYXQtXHUwMDNlcGh5X2ludGVyZmFjZTtcbitcbiBcdG9wcy1cdTAwM2VzZXR1cF9wbGF0X2RhdChkd21hYyk7XG4gXG4gXHRyZXR1cm4gZGV2bV9zdG1tYWNfcGx0ZnJfcHJvYmUocGRldiwgcGxhdF9kYXQsIFx1MDAyNnN0bW1hY19yZXMpO1xuQEAgLTY3MCwxMCArNjczLDI4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc29jZnBnYV9kd21hY19vcHMgc29jZnBnYV9hZ2lsZXg1X29wcyA9IHtcbiBcdC5zZXR1cF9wbGF0X2RhdCA9IHNvY2ZwZ2FfYWdpbGV4NV9zZXR1cF9wbGF0X2RhdCxcbiB9O1xuIFxuK3N0YXRpYyB2b2lkIHNvY2ZwZ2FfYWdpbGV4NV90c25fZ21hY19zZXR1cF9wbGF0X2RhdChzdHJ1Y3Qgc29jZnBnYV9kd21hYyAqZHdtYWMpXG4re1xuK1x0c3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdCA9IGR3bWFjLVx1MDAzZXBsYXRfZGF0O1xuK1xuK1x0c29jZnBnYV9hZ2lsZXg1X3NldHVwX3BsYXRfZGF0KGR3bWFjKTtcbitcbitcdC8qIEZQR0EgY29udmVydGVyIHN1cHBsaWVzIFJHTUlJIGRlbGF5czsgTUFDIHVzZXMgR01JSSwgUEhZIGdldHMgcGxhaW4gUkdNSUkgKi9cbitcdGR3bWFjLVx1MDAzZW1hY19pbnRlcmZhY2UgPSBQSFlfSU5URVJGQUNFX01PREVfR01JSTtcbitcdGlmIChwaHlfaW50ZXJmYWNlX21vZGVfaXNfcmdtaWkocGxhdF9kYXQtXHUwMDNlcGh5X2ludGVyZmFjZSkpXG4rXHRcdHBsYXRfZGF0LVx1MDAzZXBoeV9pbnRlcmZhY2UgPSBQSFlfSU5URVJGQUNFX01PREVfUkdNSUk7XG4rfVxuK1xuK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc29jZnBnYV9kd21hY19vcHMgc29jZnBnYV9hZ2lsZXg1X3Rzbl9nbWFjX29wcyA9IHtcbitcdC5zZXRfcGh5X21vZGUgPSBzb2NmcGdhX2dlbjEwX3NldF9waHlfbW9kZSxcbitcdC5zZXR1cF9wbGF0X2RhdCA9IHNvY2ZwZ2FfYWdpbGV4NV90c25fZ21hY19zZXR1cF9wbGF0X2RhdCxcbit9O1xuK1xuIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHNvY2ZwZ2FfZHdtYWNfbWF0Y2hbXSA9IHtcbiBcdHsgLmNvbXBhdGlibGUgPSBcImFsdHIsc29jZnBnYS1zdG1tYWNcIiwgLmRhdGEgPSBcdTAwMjZzb2NmcGdhX2dlbjVfb3BzIH0sXG4gXHR7IC5jb21wYXRpYmxlID0gXCJhbHRyLHNvY2ZwZ2Etc3RtbWFjLWExMC1zMTBcIiwgLmRhdGEgPSBcdTAwMjZzb2NmcGdhX2dlbjEwX29wcyB9LFxuIFx0eyAuY29tcGF0aWJsZSA9IFwiYWx0cixzb2NmcGdhLXN0bW1hYy1hZ2lsZXg1XCIsIC5kYXRhID0gXHUwMDI2c29jZnBnYV9hZ2lsZXg1X29wcyB9LFxuK1x0eyAuY29tcGF0aWJsZSA9IFwiYWx0cixzb2NmcGdhLXN0bW1hYy1hZ2lsZXg1LXRzblwiLCAuZGF0YSA9IFx1MDAyNnNvY2ZwZ2FfYWdpbGV4NV90c25fZ21hY19vcHMgfSxcbiBcdHsgfVxuIH07XG4gTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgc29jZnBnYV9kd21hY19tYXRjaCk7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wOFQwNzozMjo1Ny43MDkzMDQyODlaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo1NzQyNjM5NzU3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUGF0Y2g6IEZvY3VzIG9uIFBsYXRmb3JtIFNwZWNpZmljcyoqXG5cbk9rYXksIHNvIHRoZSB0YXNrIGlzIHRvIHJldmlldyB0aGlzIHBhdGNoLiBGaXJzdCB0aGluZ3MgZmlyc3QsIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlIGlzIGFtZDY0LCB3aGljaCBpbW1lZGlhdGVseSByYWlzZXMgYSBmbGFnLiBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiB0aGlzIHBhdGNoIGlzIGV2ZW4gcmVsZXZhbnQgdG8gdGhhdCBhcmNoaXRlY3R1cmUsIGdpdmVuIHRoZSBmaWxlcyBpbnZvbHZlZC4gTGV0J3MgbG9vayBhdCB0aGUgbW9kaWZpZWQgZmlsZXM6IGBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL2FsdGVyYS55YW1sYCwgYERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sYCwgYGFyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvTWFrZWZpbGVgLCBgYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9zb2NmcGdhX2FnaWxleDVfc29jZGtfdHNuX2NmZzIuZHRzYCwgYW5kIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmNgLlxuXG5SaWdodCBhd2F5LCB0aGUgcHJlcG9uZGVyYW5jZSBvZiBBUk0gYW5kIEFSTTY0IHJlbGF0ZWQgcGF0aHMganVtcHMgb3V0IGF0IG1lLiBUaGUgZHRiIGFuZCBiaW5kaW5ncyBhcmUgYWxsIGZvciBBbHRlcmEvSW50ZWwgU29DRlBHQSBwbGF0Zm9ybXMsIHByaW1hcmlseSBBUk0vQVJNNjQuIFRoZSBtb3N0IGludGVyZXN0aW5nIGZpbGUgaXMgYGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuY2AuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoYXQgdGhhdCBFdGhlcm5ldCBkcml2ZXIgaXMgZG9pbmcgb24gYW4gYW1kNjQgc3lzdGVtLiBNeSBpbml0aWFsIGluc3RpbmN0IGlzIHRoYXQgdGhpcyBpcyBnb2luZyB0byBiZSBwbGF0Zm9ybS1zcGVjaWZpYyBoYXJkd2FyZS4gSSBuZWVkIHRvIHZlcmlmeSB0aGF0IHRoaXMgY29kZSBpcyBldmVuIGJ1aWx0IG9yIHByb2JlZCBvbiBhbWQ2NC4gTGV0J3MgZ3JlcCB0aGUgY29kZSBmb3IgYW55IENPTkZJRyBvcHRpb25zIHRoYXQgbWlnaHQgcmVzdHJpY3QgaXRzIGJ1aWxkIG9yIHJ1bnRpbWUgZW52aXJvbm1lbnQuIFRoaXMgc2hvdWxkIGdpdmUgbWUgYSBjbGVhciBwaWN0dXJlIG9mIGl0cyBhcHBsaWNhYmlsaXR5IChvciBsYWNrIHRoZXJlb2YpIHRvIHRoZSBhbWQ2NCBhcmNoaXRlY3R1cmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU5MDQsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyODAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wOFQwNzozMzowMy40NTE5NDgwNzVaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzA2ODQ0OTI1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImR3bWFjLXNvY2ZwZ2FcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU9NDY9c3RtbWFjLXBsYXRmb3JtLW9ianM6PSBzdG1tYWNfcGxhdGZvcm0ub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjQ3OmR3bWFjLWFsdHItc29jZnBnYS1vYmpzIDo9IGR3bWFjLXNvY2ZwZ2Eub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTQ4LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wOFQwNzozMzowMy43NTg3OTk4NVoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjE4NTk0OTkxNDMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIHNlZS4gTXkgZmlyc3QgdGhvdWdodCBpcyB0byBkaWcgaW50byB0aGUga2VybmVsIGNvbmZpZ3VyYXRpb24sIHNwZWNpZmljYWxseSB0byBzZWUgdGhlIHNldHRpbmdzIHJlbGF0ZWQgdG8gdGhlIEFsdGVyYS9JbnRlbCBTb0MgRlBHQSBFdGhlcm5ldCBjb250cm9sbGVyLCB3aGljaCBJICprbm93KiBpcyBvZnRlbiByZWZlcnJlZCB0byBhcyAnZHdtYWMtYWx0ci1zb2NmcGdhJyBpbiB0aGUgY29kZWJhc2UuIEknbGwgbmVlZCB0byBjaGVjayB0aGUgcmVsZXZhbnQgS2NvbmZpZyBmaWxlLCB3aGljaCwgYmFzZWQgb24gbXkgZXhwZXJpZW5jZSwgaXMgbGlrZWx5IGxvY2F0ZWQgdW5kZXIgYGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWdgLiBUaW1lIHRvIGdldCBhIHF1aWNrIG92ZXJ2aWV3IG9mIHdoYXQgb3B0aW9ucyBhcmUgYXZhaWxhYmxlIGFuZCBob3cgdGhleSdyZSBzZXQgdXAuIFRoaXMgd2lsbCBoZWxwIG1lIHVuZGVyc3RhbmQgd2hhdCdzIGNvbmZpZ3VyZWQsIGFuZCBtb3JlIGltcG9ydGFudGx5LCB3aGF0IGlzbid0LCBlc3BlY2lhbGx5IGlmIEknbSB0cm91Ymxlc2hvb3Rpbmcgb3IgaW50ZWdyYXRpbmcgdGhpcyBwbGF0Zm9ybS5cblxuXG4iLCJJbnB1dFRva2VucyI6NjY4MywiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA4VDA3OjMzOjA1LjYxODMwMTQwM1oiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NzAyMzA2OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJEV01BQ19TT0NGUEdBXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTkxPWNvbmZpZyBEV01BQ19TMzJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjAyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjAzOmNvbmZpZyBEV01BQ19TT0NGUEdBXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMDQtXFx0dHJpc3RhdGUgXFxcIlNPQ0ZQR0EgZHdtYWMgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlPTI4PW9iai0kKENPTkZJR19EV01BQ19TMzIpXFx0XFx0Kz0gZHdtYWMtczMyLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToyOTpvYmotJChDT05GSUdfRFdNQUNfU09DRlBHQSlcXHQrPSBkd21hYy1hbHRyLXNvY2ZwZ2Eub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTMwLW9iai0kKENPTkZJR19EV01BQ19TT1BIR08pXFx0Kz0gZHdtYWMtc29waGdvLm9cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDhUMDc6MzM6MDUuNjY1MzI5NzgyWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6Mzg1OTkzMDgzMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIGEgc3VtbWFyeSBvZiBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSB0aGUgb25lIHRoaW5raW5nIGl0OlxuXG4qKkRpdmluZyBpbnRvIHRoZSBEV01BQ19TT0NGUEdBIEtjb25maWcqKlxuXG5BbHJpZ2h0LCB0aW1lIHRvIGRpZyBpbnRvIHRoZSBLY29uZmlnIHJlbGF0ZWQgdG8gRFdNQUNfU09DRlBHQS4gSSBuZWVkIHRvIGdldCBhIGNsZWFyIHBpY3R1cmUgb2YgaG93IHRoaXMgc3BlY2lmaWMgaGFyZHdhcmUgYWJzdHJhY3Rpb24gbGF5ZXIgaXMgY29uZmlndXJlZCBhbmQgaXRzIGRlcGVuZGVuY2llcyB3aXRoaW4gdGhlIGJyb2FkZXIga2VybmVsIGNvbmZpZ3VyYXRpb24gbGFuZHNjYXBlLiBJJ2xsIGJlIGxvb2tpbmcgZm9yOlxuXG4qICAgKipLZXkgRGVwZW5kZW5jaWVzOioqIFdoYXQgb3RoZXIgS2NvbmZpZyBzeW1ib2xzIGRvZXMgRFdNQUNcXF9TT0NGUEdBIGRlcGVuZCBvbj8gQXJlIHRoZXJlIHNwZWNpZmljIGJvYXJkIGNvbmZpZ3VyYXRpb25zLCBvdGhlciBoYXJkd2FyZSBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmFsIGZlYXR1cmVzIHRoYXQgaXQgcmVxdWlyZXMgb3IgaXMgaW5jb21wYXRpYmxlIHdpdGg/IFVuZGVyc3RhbmRpbmcgdGhlc2UgZGVwZW5kZW5jaWVzIHdpbGwgbGV0IG1lIGFzc2VzcyBpdHMgaW50ZWdyYXRpb24sIGFuZCBzZWUgaWYgdGhlcmUgYXJlIG1pc3NpbmcgYml0cy5cbiogICAqKkRlZmF1bHQgVmFsdWVzIGFuZCBPcHRpb25zOioqIFdoYXQgYXJlIHRoZSBkZWZhdWx0IHNldHRpbmdzIGZvciB0aGlzPyBBcmUgdGhlcmUgYW55IGNvbmZpZ3VyYWJsZSBvcHRpb25zPyBEbyB0aGV5IG1ha2Ugc2Vuc2U/IEFyZSB0aGUgZGVmYXVsdCB2YWx1ZXMgb3B0aW1pemVkIGZvciB0eXBpY2FsIEZQR0EtYmFzZWQgRXRoZXJuZXQgTUFDIGltcGxlbWVudGF0aW9ucyBvciBkbyB0aGV5IG5lZWQgYWRqdXN0bWVudD9cbiogICAqKkNvbmRpdGlvbmFsIENvbXBpbGF0aW9uOioqIEhvdyBpcyBEV01BQ1xcX1NPQ0ZQR0EgY29uZGl0aW9uYWxseSBjb21waWxlZD8gQXJlIHRoZXJlIHNwZWNpZmljIGBpZmAgb3IgYHNlbGVjdGAgc3RhdGVtZW50cyB0aGF0IGNvbnRyb2wgaXRzIGF2YWlsYWJpbGl0eT8gVGhpcyB3aWxsIGFsbG93IG1lIHRvIGFzc2VzcyBpdHMgY292ZXJhZ2UuXG4qICAgKipEb2N1bWVudGF0aW9uIGFuZCBDb21tZW50czoqKiBBcmUgdGhlcmUgYW55IGhlbHBmdWwgY29tbWVudHMgb3IgZGVzY3JpcHRpdmUgdGV4dCBhc3NvY2lhdGVkIHdpdGggRFdNQUNcXF9TT0NGUEdBPyBUaGlzIHdvdWxkIGJlIGEgYm9udXMgYW5kIHNhdmUgbWUgYSBsb3Qgb2YgdGltZS5cbiogICAqKlJlbGF0aW9uc2hpcCB0byBvdGhlciBNQUMgZHJpdmVyczoqKiBJdCdzIGltcG9ydGFudCB0byB1bmRlcnN0YW5kIHdoZXJlIHRoZSBEV01BQ1xcX1NPQ0ZQR0EgZHJpdmVyIGZpdHMgaW4uIElzIGl0IGRlc2lnbmVkIHRvIGJlIHN0YW5kYWxvbmUsIG9yIHRvIHdvcmsgd2l0aCBvdGhlciBkcml2ZXJzPyBJcyBpdCBhIGhhcmR3YXJlIGFic3RyYWN0aW9uIGxheWVyIG92ZXIgYSBzdGFuZGFyZCBkcml2ZXI/XG5cbkJhc2ljYWxseSwgSSB3YW50IHRvIGZvcm0gYSBtZW50YWwgbW9kZWwgb2YgaG93IHRoZSBEV01BQ1xcX1NPQ0ZQR0EgY29uZmlndXJhdGlvbiBpbnRlZ3JhdGVzIHdpdGggdGhlIGxhcmdlciBwaWN0dXJlLiBJIHdhbnQgdG8gYnVpbGQgYSBjb25jZXB0dWFsIGZyYW1ld29yaywgc28gSSBjYW4gbW9yZSBxdWlja2x5IGlkZW50aWZ5IHBvdGVudGlhbCBjb25mbGljdHMsIG9wcG9ydHVuaXRpZXMgZm9yIG9wdGltaXphdGlvbiwgb3IgYXJlYXMgd2hlcmUgdGhlIGNvbmZpZ3VyYXRpb24gaXMgdW5jbGVhciBvciBpbmNvbXBsZXRlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo3MTcxLCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDhUMDc6MzM6MDkuNTI1MjYzMTQ2WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzkxOTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAyMDAsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAyMDA6XFx0XFx0ICBTT0NzIEdNQUMgZXRoZXJuZXQgY29udHJvbGxlciwgaWUuIFMzMkcyeHgsIFMzMkczeHggYW5kXFxuIDIwMTpcXHRcXHQgIFMzMlI0NS5cXG4gMjAyOlxcdFxcbiAyMDM6XFx0Y29uZmlnIERXTUFDX1NPQ0ZQR0FcXG4gMjA0OlxcdFxcdHRyaXN0YXRlIFxcXCJTT0NGUEdBIGR3bWFjIHN1cHBvcnRcXFwiXFxuIDIwNTpcXHRcXHRkZWZhdWx0IEFSQ0hfSU5URUxfU09DRlBHQVxcbiAyMDY6XFx0XFx0ZGVwZW5kcyBvbiBPRiBcXHUwMDI2XFx1MDAyNiAoQVJDSF9JTlRFTF9TT0NGUEdBIHx8IENPTVBJTEVfVEVTVClcXG4gMjA3OlxcdFxcdHNlbGVjdCBNRkRfU1lTQ09OXFxuIDIwODpcXHRcXHRzZWxlY3QgTURJT19SRUdNQVBcXG4gMjA5OlxcdFxcdHNlbGVjdCBSRUdNQVBfTU1JT1xcbiAyMTA6XFx0XFx0c2VsZWN0IFBDU19MWU5YXFxuIDIxMTpcXHRcXHRoZWxwXFxuIDIxMjpcXHRcXHQgIFN1cHBvcnQgZm9yIGV0aGVybmV0IGNvbnRyb2xsZXIgb24gQWx0ZXJhIFNPQ0ZQR0FcXG4gMjEzOlxcdFxcbiAyMTQ6XFx0XFx0ICBUaGlzIHNlbGVjdHMgdGhlIEFsdGVyYSBTT0NGUEdBIFNvQyBnbHVlIGxheWVyIHN1cHBvcnRcXG4gMjE1OlxcdFxcdCAgZm9yIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3JcXG4gMjE2OlxcdFxcdCAgYXJyaWE1IGFuZCBjeWNsb25lNSBGUEdBIFNvQ3MuXFxuIDIxNzpcXHRcXG4gMjE4OlxcdGNvbmZpZyBEV01BQ19TT1BIR09cXG4gMjE5OlxcdFxcdHRyaXN0YXRlIFxcXCJTb3BoZ28gZHdtYWMgc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDhUMDc6MzM6MDkuNTI1MzQzOTg2WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MjE3NjM5Nzg5OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIERXTUFDIFNPQ0ZQR0EgQ29uZmlndXJhdGlvbioqXG5cbkFscmlnaHQsIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gRmlyc3QsIGBDT05GSUdfRFdNQUNfU09DRlBHQWAuIFRoZSBkZXBlbmRlbmN5IGlzIGBPRiBcdTAwMjZcdTAwMjYgKEFSQ0hfSU5URUxfU09DRlBHQSB8fCBDT01QSUxFX1RFU1QpYC4gU28sIGl0J3MgdGllZCB0byBhbiAqT0YqIChkZXZpY2UgdHJlZSkgZW52aXJvbm1lbnQgYW5kIGVpdGhlciBhIHNwZWNpZmljIEludGVsIFNvQ0ZQR0EgYXJjaGl0ZWN0dXJlIG9yIGEgY29tcGlsYXRpb24gdGVzdC4gUmlnaHQgYXdheSwgSSdtIHRoaW5raW5nLCBpcyB0aGlzIGEgc3BlY2lhbGl6ZWQgcGxhdGZvcm0gZHJpdmVyLCBzcGVjaWZpY2FsbHkgZm9yLCBzYXksIEFnaWxleDUsIEN5Y2xvbmU1LCBBcnJpYTEwLCBvciBTdHJhdGl4MTA/XG5cblRvIGNvbmZpcm0sIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgZHJpdmVyIGJlaGF2ZXMgZHVyaW5nIHByb2JpbmcuIEknbGwgbmVlZCB0byBjaGVjayBpZiBgZHdtYWMtc29jZnBnYS5jYCByZWdpc3RlcnMgaXRzZWxmIGFzIGEgcGxhdGZvcm0gZHJpdmVyLiBUaGF0J3MgdGhlIHR5cGljYWwgcGF0dGVybiBmb3IgdGhlc2Uga2luZHMgb2YgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVycy4gVGltZSB0byBkaXZlIGludG8gdGhlIGNvZGU6IEknbSBwdWxsaW5nIHVwIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmNgIG5vdyB0byB0YWtlIGEgbG9vay4gSSdsbCBmb2N1cyBvbiB0aGUgcHJvYmUgZnVuY3Rpb24gYW5kIHNlZSBpZiBpdCdzIGhhbmRsaW5nIHRoZSBkZXZpY2UgaW5pdGlhbGl6YXRpb24gYXBwcm9wcmlhdGVseS5cblxuXG4iLCJJbnB1dFRva2VucyI6Nzk0OSwiT3V0cHV0VG9rZW5zIjo1MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzMiwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA4VDA3OjMzOjExLjcwMTc0NDE0NVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNjU0NjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDY0MCxcbiAgXCJMaW5lQ291bnRcIjogNzBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDY0MDpcXHRcXHQgKiBtb2RlLiBDcmVhdGUgYSBjb3B5IG9mIHRoZSBjb3JlIHJlc2V0IGhhbmRsZSBzbyBpdCBjYW4gYmUgdXNlZCBieVxcbiA2NDE6XFx0XFx0ICogdGhlIGRyaXZlciBsYXRlci5cXG4gNjQyOlxcdFxcdCAqL1xcbiA2NDM6XFx0XFx0ZHdtYWMtXFx1MDAzZXN0bW1hY19yc3QgPSBwbGF0X2RhdC1cXHUwMDNlc3RtbWFjX3JzdDtcXG4gNjQ0OlxcdFxcdGR3bWFjLVxcdTAwM2VvcHMgPSBvcHM7XFxuIDY0NTpcXHRcXHRkd21hYy1cXHUwMDNlcGxhdF9kYXQgPSBwbGF0X2RhdDtcXG4gNjQ2OlxcdFxcbiA2NDc6XFx0XFx0cGxhdF9kYXQtXFx1MDAzZWJzcF9wcml2ID0gZHdtYWM7XFxuIDY0ODpcXHRcXHRwbGF0X2RhdC1cXHUwMDNlZml4X21hY19zcGVlZCA9IHNvY2ZwZ2FfZHdtYWNfZml4X21hY19zcGVlZDtcXG4gNjQ5OlxcdFxcdHBsYXRfZGF0LVxcdTAwM2Vpbml0ID0gc29jZnBnYV9kd21hY19pbml0O1xcbiA2NTA6XFx0XFx0cGxhdF9kYXQtXFx1MDAzZXBjc19pbml0ID0gc29jZnBnYV9kd21hY19wY3NfaW5pdDtcXG4gNjUxOlxcdFxcdHBsYXRfZGF0LVxcdTAwM2VwY3NfZXhpdCA9IHNvY2ZwZ2FfZHdtYWNfcGNzX2V4aXQ7XFxuIDY1MjpcXHRcXHRwbGF0X2RhdC1cXHUwMDNlc2VsZWN0X3BjcyA9IHNvY2ZwZ2FfZHdtYWNfc2VsZWN0X3BjcztcXG4gNjUzOlxcdFxcbiA2NTQ6XFx0XFx0ZHdtYWMtXFx1MDAzZW1hY19pbnRlcmZhY2UgPSBwbGF0X2RhdC1cXHUwMDNlcGh5X2ludGVyZmFjZTtcXG4gNjU1OlxcdFxcbiA2NTY6XFx0XFx0b3BzLVxcdTAwM2VzZXR1cF9wbGF0X2RhdChkd21hYyk7XFxuIDY1NzpcXHRcXG4gNjU4OlxcdFxcdHJldHVybiBkZXZtX3N0bW1hY19wbHRmcl9wcm9iZShwZGV2LCBwbGF0X2RhdCwgXFx1MDAyNnN0bW1hY19yZXMpO1xcbiA2NTk6XFx0fVxcbiA2NjA6XFx0XFxuIDY2MTpcXHRzdGF0aWMgY29uc3Qgc3RydWN0IHNvY2ZwZ2FfZHdtYWNfb3BzIHNvY2ZwZ2FfZ2VuNV9vcHMgPSB7XFxuIDY2MjpcXHRcXHQuc2V0X3BoeV9tb2RlID0gc29jZnBnYV9nZW41X3NldF9waHlfbW9kZSxcXG4gNjYzOlxcdFxcdC5zZXR1cF9wbGF0X2RhdCA9IHNvY2ZwZ2FfZ2VuNV9zZXR1cF9wbGF0X2RhdCxcXG4gNjY0OlxcdH07XFxuIDY2NTpcXHRcXG4gNjY2OlxcdHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc29jZnBnYV9kd21hY19vcHMgc29jZnBnYV9nZW4xMF9vcHMgPSB7XFxuIDY2NzpcXHRcXHQuc2V0X3BoeV9tb2RlID0gc29jZnBnYV9nZW4xMF9zZXRfcGh5X21vZGUsXFxuIDY2ODpcXHRcXHQuc2V0dXBfcGxhdF9kYXQgPSBzb2NmcGdhX2dlbjVfc2V0dXBfcGxhdF9kYXQsXFxuIDY2OTpcXHR9O1xcbiA2NzA6XFx0XFxuIDY3MTpcXHRzdGF0aWMgY29uc3Qgc3RydWN0IHNvY2ZwZ2FfZHdtYWNfb3BzIHNvY2ZwZ2FfYWdpbGV4NV9vcHMgPSB7XFxuIDY3MjpcXHRcXHQuc2V0X3BoeV9tb2RlID0gc29jZnBnYV9nZW4xMF9zZXRfcGh5X21vZGUsXFxuIDY3MzpcXHRcXHQuc2V0dXBfcGxhdF9kYXQgPSBzb2NmcGdhX2FnaWxleDVfc2V0dXBfcGxhdF9kYXQsXFxuIDY3NDpcXHR9O1xcbiA2NzU6XFx0XFxuIDY3NjpcXHRzdGF0aWMgdm9pZCBzb2NmcGdhX2FnaWxleDVfdHNuX2dtYWNfc2V0dXBfcGxhdF9kYXQoc3RydWN0IHNvY2ZwZ2FfZHdtYWMgKmR3bWFjKVxcbiA2Nzc6XFx0e1xcbiA2Nzg6XFx0XFx0c3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdCA9IGR3bWFjLVxcdTAwM2VwbGF0X2RhdDtcXG4gNjc5OlxcdFxcbiA2ODA6XFx0XFx0c29jZnBnYV9hZ2lsZXg1X3NldHVwX3BsYXRfZGF0KGR3bWFjKTtcXG4gNjgxOlxcdFxcbiA2ODI6XFx0XFx0LyogRlBHQSBjb252ZXJ0ZXIgc3VwcGxpZXMgUkdNSUkgZGVsYXlzOyBNQUMgdXNlcyBHTUlJLCBQSFkgZ2V0cyBwbGFpbiBSR01JSSAqL1xcbiA2ODM6XFx0XFx0ZHdtYWMtXFx1MDAzZW1hY19pbnRlcmZhY2UgPSBQSFlfSU5URVJGQUNFX01PREVfR01JSTtcXG4gNjg0OlxcdFxcdGlmIChwaHlfaW50ZXJmYWNlX21vZGVfaXNfcmdtaWkocGxhdF9kYXQtXFx1MDAzZXBoeV9pbnRlcmZhY2UpKVxcbiA2ODU6XFx0XFx0XFx0cGxhdF9kYXQtXFx1MDAzZXBoeV9pbnRlcmZhY2UgPSBQSFlfSU5URVJGQUNFX01PREVfUkdNSUk7XFxuIDY4NjpcXHR9XFxuIDY4NzpcXHRcXG4gNjg4OlxcdHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc29jZnBnYV9kd21hY19vcHMgc29jZnBnYV9hZ2lsZXg1X3Rzbl9nbWFjX29wcyA9IHtcXG4gNjg5OlxcdFxcdC5zZXRfcGh5X21vZGUgPSBzb2NmcGdhX2dlbjEwX3NldF9waHlfbW9kZSxcXG4gNjkwOlxcdFxcdC5zZXR1cF9wbGF0X2RhdCA9IHNvY2ZwZ2FfYWdpbGV4NV90c25fZ21hY19zZXR1cF9wbGF0X2RhdCxcXG4gNjkxOlxcdH07XFxuIDY5MjpcXHRcXG4gNjkzOlxcdHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHNvY2ZwZ2FfZHdtYWNfbWF0Y2hbXSA9IHtcXG4gNjk0OlxcdFxcdHsgLmNvbXBhdGlibGUgPSBcXFwiYWx0cixzb2NmcGdhLXN0bW1hY1xcXCIsIC5kYXRhID0gXFx1MDAyNnNvY2ZwZ2FfZ2VuNV9vcHMgfSxcXG4gNjk1OlxcdFxcdHsgLmNvbXBhdGlibGUgPSBcXFwiYWx0cixzb2NmcGdhLXN0bW1hYy1hMTAtczEwXFxcIiwgLmRhdGEgPSBcXHUwMDI2c29jZnBnYV9nZW4xMF9vcHMgfSxcXG4gNjk2OlxcdFxcdHsgLmNvbXBhdGlibGUgPSBcXFwiYWx0cixzb2NmcGdhLXN0bW1hYy1hZ2lsZXg1XFxcIiwgLmRhdGEgPSBcXHUwMDI2c29jZnBnYV9hZ2lsZXg1X29wcyB9LFxcbiA2OTc6XFx0XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJhbHRyLHNvY2ZwZ2Etc3RtbWFjLWFnaWxleDUtdHNuXFxcIiwgLmRhdGEgPSBcXHUwMDI2c29jZnBnYV9hZ2lsZXg1X3Rzbl9nbWFjX29wcyB9LFxcbiA2OTg6XFx0XFx0eyB9XFxuIDY5OTpcXHR9O1xcbiA3MDA6XFx0TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgc29jZnBnYV9kd21hY19tYXRjaCk7XFxuIDcwMTpcXHRcXG4gNzAyOlxcdHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHNvY2ZwZ2FfZHdtYWNfZHJpdmVyID0ge1xcbiA3MDM6XFx0XFx0LnByb2JlICA9IHNvY2ZwZ2FfZHdtYWNfcHJvYmUsXFxuIDcwNDpcXHRcXHQuZHJpdmVyID0ge1xcbiA3MDU6XFx0XFx0XFx0Lm5hbWUgICAgICAgICAgID0gXFxcInNvY2ZwZ2EtZHdtYWNcXFwiLFxcbiA3MDY6XFx0XFx0XFx0LnBtXFx0XFx0PSBcXHUwMDI2c3RtbWFjX3BsdGZyX3BtX29wcyxcXG4gNzA3OlxcdFxcdFxcdC5vZl9tYXRjaF90YWJsZSA9IHNvY2ZwZ2FfZHdtYWNfbWF0Y2gsXFxuIDcwODpcXHRcXHR9LFxcbiA3MDk6XFx0fTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDhUMDc6MzM6MTEuNzAxOTEyNDI1WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjQ5OTgzMjYxOTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqUmVhY2hhYmlsaXR5IEFuYWx5c2lzIGZvciBhbWQ2NCBBcmNoaXRlY3R1cmUqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIFdlJ3JlIGxvb2tpbmcgYXQgcmVhY2hhYmlsaXR5IGZvciBhbiBhbWQ2NCB0YXJnZXQsIGFuZCB0aGlzIHBhdGNoIGhhcyBhIGZldyByZWQgZmxhZ3MuIEZpcnN0LCB3ZSBzZWUgZG9jdW1lbnRhdGlvbiBhbmQgRFRTIGZpbGVzIHRoYXQgc2VlbSBmb2N1c2VkIG9uIEFSTTY0LCBwYXJ0aWN1bGFybHkgZm9yIEludGVsL0FsdGVyYSBTb0NGUEdBIHN5c3RlbXMuIFRoZSBgZHdtYWMtc29jZnBnYS5jYCBkcml2ZXIgaXMgYSBkZWFkIGdpdmVhd2F5IOKAkyBpdCdzIGFuIE9GIHBsYXRmb3JtIGRyaXZlciwgZGVzaWduZWQgdG8gd29yayB3aXRoIHRob3NlIHNwZWNpZmljIFNvQ0ZQR0EgU29Dcy4gQ3J1Y2lhbGx5LCBvbiBhbWQ2NCwgd2UgZG9uJ3QgaGF2ZSB0aGF0IGhhcmR3YXJlLiBObyBTb0NGUEdBIERldmljZSBUcmVlIG5vZGVzIGV4aXN0LCBhbmQgdGhleSBhcmVuJ3QgZW11bGF0ZWQgaW4gdGhlIHVzdWFsIFFFTVUgb3IgR0NFIGVudmlyb25tZW50cy4gTm90IGV2ZW4gd2l0aCBgQ09ORklHX0NPTVBJTEVfVEVTVGAgd291bGQgdGhpcyBjb2RlIGJlIGFibGUgdG8gKmRvKiBhbnl0aGluZy5cblxuU2VjdGlvbiAyIGNvbmZpcm1zIG15IHN1c3BpY2lvbiwgcG9pbnRpbmcgb3V0IHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZSBsaWtlIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzIHRoYXQgcmVxdWlyZSBzcGVjaWZpYyBwaHlzaWNhbCBjb21wb25lbnRzLiBTZWN0aW9uIDEgZHJpdmVzIHRoZSBwb2ludCBob21lIC0gZnV6emluZyBoaW5nZXMgb24gKmV4ZWN1dGFibGUqIGNvZGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgc2V0dXBzLiBJZiB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUsIGFzIHRoaXMgY2VydGFpbmx5IGFwcGVhcnMgdG8gYmUsIGl0J3MgYSBuby1nbyBmb3IgZnV6emluZywgcmVnYXJkbGVzcyBvZiBob3cgY29tcGxleCBvciBhc3NlcnRpb24tbGFkZW4gaXQgbWlnaHQgYmUuXG5cblRoZXJlZm9yZSwgYmVjYXVzZSB0aGlzIGRyaXZlciBhbmQgYXNzb2NpYXRlZCBEZXZpY2UgVHJlZSBjb25maWd1cmF0aW9ucyBhcmUgc3BlY2lmaWMgdG8gYW4gYXJjaGl0ZWN0dXJlIGFuZCBoYXJkd2FyZSBub3QgcHJlc2VudCBpbiB0aGUgdGFyZ2V0IGVudmlyb25tZW50LCBmdXp6aW5nIGlzIGEgd2FzdGUgb2YgdGltZSBhbmQgcmVzb3VyY2VzLiBTbywgdGhlIGBXb3J0aEZ1enppbmdgIHBhcmFtZXRlciBzaG91bGQgYmUgc2V0IHRvIGBmYWxzZWAuIE5vIHNwZWNpZmljIGNvbmZpZ3VyYXRpb25zIG5lZWQgZW5hYmxpbmcsIGFuZCB0aGVyZSBhcmUgbm8gc3BlY2lmaWMgc3ltYm9scyBvZiBpbnRlcmVzdCBzaW5jZSB0aGUgY29kZSBjYW5ub3QgYmUgZXhlY3V0ZWQuIFRoZSBgUmVhc29uaW5nYCBwYXJhbWV0ZXIgd2lsbCBiZSBzZXQgdG8gYSBjb25jaXNlIGV4cGxhbmF0aW9uIG9mIHRoZSBzaXR1YXRpb24uIExldCdzIGNhbGwgYHNldC1yZXN1bHRzYCB3aXRoIHRoZXNlIHBhcmFtZXRlcnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjk3ODUsIk91dHB1dFRva2VucyI6OTgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1NjYsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wOFQwNzozMzoxNi43MDAyNDIxODJaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMDY1MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBEZXZpY2V0cmVlIGJpbmRpbmdzLCBBUk02NCBEVFMgZmlsZXMsIGFuZCB0aGUgZHdtYWMtc29jZnBnYSBwbGF0Zm9ybSBFdGhlcm5ldCBkcml2ZXIgZm9yIEludGVsL0FsdGVyYSBTb0NGUEdBIFNvQ3MuIFRoaXMgZHJpdmVyIGlzIHRpZWQgdG8gc3BlY2lmaWMgQVJNL0FSTTY0IFNvQyBEZXZpY2V0cmVlIGhhcmR3YXJlIGFuZCBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgb24gdGhlIGFtZDY0IHRhcmdldCBhcmNoaXRlY3R1cmUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBEZXZpY2V0cmVlIGJpbmRpbmdzLCBBUk02NCBEVFMgZmlsZXMsIGFuZCB0aGUgZHdtYWMtc29jZnBnYSBwbGF0Zm9ybSBFdGhlcm5ldCBkcml2ZXIgZm9yIEludGVsL0FsdGVyYSBTb0NGUEdBIFNvQ3MuIFRoaXMgZHJpdmVyIGlzIHRpZWQgdG8gc3BlY2lmaWMgQVJNL0FSTTY0IFNvQyBEZXZpY2V0cmVlIGhhcmR3YXJlIGFuZCBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgb24gdGhlIGFtZDY0IHRhcmdldCBhcmNoaXRlY3R1cmUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wOFQwNzozMzoxNi43MDAyNjYyNTJaIiwiU2VxIjoxMywiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM0NjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowdg9ft[0].run-triage(0) Phase: Succeeded StartedAt: 2026-09-08 07:12:31 +0000 UTC FinishedAt: 2026-09-08 07:33:17 +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+CgkJCTx0ZD4yMDI2LzA5LzA4IDA3OjMyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgRGV2aWNldHJlZSBiaW5kaW5ncywgQVJNNjQgRFRTIGZpbGVzLCBhbmQgdGhlIGR3bWFjLXNvY2ZwZ2EgcGxhdGZvcm0gRXRoZXJuZXQgZHJpdmVyIGZvciBJbnRlbC9BbHRlcmEgU29DRlBHQSBTb0NzLiBUaGlzIGRyaXZlciBpcyB0aWVkIHRvIHNwZWNpZmljIEFSTS9BUk02NCBTb0MgRGV2aWNldHJlZSBoYXJkd2FyZSBhbmQgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIG9uIHRoZSBhbWQ2NCB0YXJnZXQgYXJjaGl0ZWN0dXJlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wOCAwNzozMjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDA2ZGM3OGQwZTZiMWMxNThkNmYyZDFiMzhhNzQ5NjQ0NmM2MzY1NzBcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIFNlcCA4IDA3OjMyOjU2IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vYWx0ZXJhLnlhbWwgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL2FsdGVyYS55YW1sXG5pbmRleCAzMDMwY2Y0NmZlNzRjLi5lNDMxNDY5YTcxNzUzIDEwMDY0NFxuLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9hbHRlcmEueWFtbFxuJiM0MzsmIzQzOyYjNDM7IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9hbHRlcmEueWFtbFxuQEAgLTExNCw2ICYjNDM7MTE0LDcgQEAgcHJvcGVydGllczpcbiAgICAgICAgICAgICAgIC0gaW50ZWwsc29jZnBnYS1hZ2lsZXg1LXNvY2RrLWRlYnVnXG4gICAgICAgICAgICAgICAtIGludGVsLHNvY2ZwZ2EtYWdpbGV4NS1zb2Nkay1tb2R1bGFyXG4gICAgICAgICAgICAgICAtIGludGVsLHNvY2ZwZ2EtYWdpbGV4NS1zb2Nkay1uYW5kXG4mIzQzOyAgICAgICAgICAgICAgLSBpbnRlbCxzb2NmcGdhLWFnaWxleDUtc29jZGstdHNuLWNmZzJcbiAgICAgICAgICAgLSBjb25zdDogaW50ZWwsc29jZnBnYS1hZ2lsZXg1XG4gXG4gICAgICAgLSBkZXNjcmlwdGlvbjogQWdpbGV4NzIgYm9hcmRzXG5kaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbHRyLHNvY2ZwZ2Etc3RtbWFjLnlhbWwgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbFxuaW5kZXggNjMwODRmNzYyMzczOC4uMmMyN2JmZDVhZjg5MiAxMDA2NDRcbi0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sXG4mIzQzOyYjNDM7JiM0MzsgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbFxuQEAgLTI0LDYgJiM0MzsyNCw3IEBAIHNlbGVjdDpcbiAgICAgICAgICAgLSBhbHRyLHNvY2ZwZ2Etc3RtbWFjXG4gICAgICAgICAgIC0gYWx0cixzb2NmcGdhLXN0bW1hYy1hMTAtczEwXG4gICAgICAgICAgIC0gYWx0cixzb2NmcGdhLXN0bW1hYy1hZ2lsZXg1XG4mIzQzOyAgICAgICAgICAtIGFsdHIsc29jZnBnYS1zdG1tYWMtYWdpbGV4NS10c25cbiBcbiAgIHJlcXVpcmVkOlxuICAgICAtIGNvbXBhdGlibGVcbkBAIC00NCw3ICYjNDM7NDUsOSBAQCBwcm9wZXJ0aWVzOlxuICAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjLTMuNzRhXG4gICAgICAgICAgIC0gY29uc3Q6IHNucHMsZHdtYWNcbiAgICAgICAtIGl0ZW1zOlxuLSAgICAgICAgICAtIGNvbnN0OiBhbHRyLHNvY2ZwZ2Etc3RtbWFjLWFnaWxleDVcbiYjNDM7ICAgICAgICAgIC0gZW51bTpcbiYjNDM7ICAgICAgICAgICAgICAtIGFsdHIsc29jZnBnYS1zdG1tYWMtYWdpbGV4NVxuJiM0MzsgICAgICAgICAgICAgIC0gYWx0cixzb2NmcGdhLXN0bW1hYy1hZ2lsZXg1LXRzblxuICAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3eGdtYWMtMi4xMFxuIFxuICAgY2xvY2tzOlxuZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvTWFrZWZpbGUgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL2ludGVsL01ha2VmaWxlXG5pbmRleCAyNzBjNzBmZGYwODRiLi5jZTdjZjNhNjMyNzUzIDEwMDY0NFxuLS0tIGEvYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9NYWtlZmlsZVxuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9NYWtlZmlsZVxuQEAgLTgsNiAmIzQzOzgsNyBAQCBkdGItJChDT05GSUdfQVJDSF9JTlRFTF9TT0NGUEdBKSAmIzQzOz0gc29jZnBnYV9hZ2lsZXhfbjYwMDAuZHRiIFxcXG4gXHRcdFx0XHRzb2NmcGdhX2FnaWxleDVfc29jZGtfMDEzYi5kdGIgXFxcbiBcdFx0XHRcdHNvY2ZwZ2FfYWdpbGV4NV9zb2Nka19tb2R1bGFyLmR0YiBcXFxuIFx0XHRcdFx0c29jZnBnYV9hZ2lsZXg1X3NvY2RrX25hbmQuZHRiIFxcXG4mIzQzO1x0XHRcdFx0c29jZnBnYV9hZ2lsZXg1X3NvY2RrX3Rzbl9jZmcyLmR0YiBcXFxuIFx0XHRcdFx0c29jZnBnYV9hZ2lsZXg3Ml9zb2Nkay5kdGIgXFxcbiBcdFx0XHRcdHNvY2ZwZ2FfYWdpbGV4N21fc29jZGsuZHRiIFxcXG4gXHRcdFx0XHRzb2NmcGdhX241eF9zb2Nkay5kdGJcbmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2Jvb3QvZHRzL2ludGVsL3NvY2ZwZ2FfYWdpbGV4NV9zb2Nka190c25fY2ZnMi5kdHMgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL2ludGVsL3NvY2ZwZ2FfYWdpbGV4NV9zb2Nka190c25fY2ZnMi5kdHNcbm5ldyBmaWxlIG1vZGUgMTAwNjQ0XG5pbmRleCAwMDAwMDAwMDAwMDAwLi45ZDM5Zjg0M2I0MjQwXG4tLS0gL2Rldi9udWxsXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL2ludGVsL3NvY2ZwZ2FfYWdpbGV4NV9zb2Nka190c25fY2ZnMi5kdHNcbkBAIC0wLDAgJiM0MzsxLDEzMCBAQFxuJiM0MzsvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG4mIzQzOy8qXG4mIzQzOyAqIENvcHlyaWdodCAoQykgMjAyNiwgQWx0ZXJhIENvcnBvcmF0aW9uXG4mIzQzOyAqL1xuJiM0MzsjaW5jbHVkZSBcJiMzNDtzb2NmcGdhX2FnaWxleDUuZHRzaVwmIzM0O1xuJiM0MztcbiYjNDM7LyB7XG4mIzQzO1x0bW9kZWwgPSBcJiMzNDtTb0NGUEdBIEFnaWxleDUgU29DREsgVFNOIENvbmZpZzJcJiMzNDs7XG4mIzQzO1x0Y29tcGF0aWJsZSA9IFwmIzM0O2ludGVsLHNvY2ZwZ2EtYWdpbGV4NS1zb2Nkay10c24tY2ZnMlwmIzM0OywgXCYjMzQ7aW50ZWwsc29jZnBnYS1hZ2lsZXg1XCYjMzQ7O1xuJiM0MztcbiYjNDM7XHRhbGlhc2VzIHtcbiYjNDM7XHRcdHNlcmlhbDAgPSBcdTAwMjZ1YXJ0MDtcbiYjNDM7XHRcdGV0aGVybmV0MSA9IFx1MDAyNmdtYWMxO1xuJiM0MztcdFx0ZXRoZXJuZXQyID0gXHUwMDI2Z21hYzI7XG4mIzQzO1x0fTtcbiYjNDM7XG4mIzQzO1x0Y2hvc2VuIHtcbiYjNDM7XHRcdHN0ZG91dC1wYXRoID0gXCYjMzQ7c2VyaWFsMDoxMTUyMDBuOFwmIzM0OztcbiYjNDM7XHR9O1xuJiM0MztcbiYjNDM7XHRsZWRzIHtcbiYjNDM7XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtncGlvLWxlZHNcJiMzNDs7XG4mIzQzO1xuJiM0MztcdFx0bGVkLTAge1xuJiM0MztcdFx0XHRsYWJlbCA9IFwmIzM0O2hwc19sZWQwXCYjMzQ7O1xuJiM0MztcdFx0XHRncGlvcyA9IFx1MDAzY1x1MDAyNnBvcnRhIDExIEdQSU9fQUNUSVZFX0hJR0hcdTAwM2U7XG4mIzQzO1x0XHR9O1xuJiM0MztcbiYjNDM7XHR9O1xuJiM0MztcbiYjNDM7XHRtZW1vcnlAODAwMDAwMDAge1xuJiM0MztcdFx0ZGV2aWNlX3R5cGUgPSBcJiMzNDttZW1vcnlcJiMzNDs7XG4mIzQzO1x0XHQvKiBXZSBleHBlY3QgdGhlIGJvb3Rsb2FkZXIgdG8gZmlsbCBpbiB0aGUgcmVnICovXG4mIzQzO1x0XHRyZWcgPSBcdTAwM2MweDAgMHg4MDAwMDAwMCAweDAgMHgwXHUwMDNlO1xuJiM0MztcdH07XG4mIzQzO307XG4mIzQzO1xuJiM0MztcdTAwMjZncGlvMCB7XG4mIzQzO1x0c3RhdHVzID0gXCYjMzQ7b2theVwmIzM0OztcbiYjNDM7fTtcbiYjNDM7XG4mIzQzO1x1MDAyNmdwaW8xIHtcbiYjNDM7XHRzdGF0dXMgPSBcJiMzNDtva2F5XCYjMzQ7O1xuJiM0Mzt9O1xuJiM0MztcbiYjNDM7XHUwMDI2Z21hYzEge1xuJiM0MztcdHN0YXR1cyA9IFwmIzM0O29rYXlcJiMzNDs7XG4mIzQzO1x0Y29tcGF0aWJsZSA9IFwmIzM0O2FsdHIsc29jZnBnYS1zdG1tYWMtYWdpbGV4NS10c25cJiMzNDssXG4mIzQzO1x0XHQgICAgIFwmIzM0O3NucHMsZHd4Z21hYy0yLjEwXCYjMzQ7O1xuJiM0MztcdHBoeS1tb2RlID0gXCYjMzQ7cmdtaWktaWRcJiMzNDs7XG4mIzQzO1x0cGh5LWhhbmRsZSA9IFx1MDAzY1x1MDAyNmVtYWMxX3BoeTBcdTAwM2U7XG4mIzQzO1x0bWF4LWZyYW1lLXNpemUgPSBcdTAwM2M5MDAwXHUwMDNlO1xuJiM0MztcbiYjNDM7XHRtZGlvMCB7XG4mIzQzO1x0XHQjYWRkcmVzcy1jZWxscyA9IFx1MDAzYzFcdTAwM2U7XG4mIzQzO1x0XHQjc2l6ZS1jZWxscyA9IFx1MDAzYzBcdTAwM2U7XG4mIzQzO1x0XHRjb21wYXRpYmxlID0gXCYjMzQ7c25wcyxkd21hYy1tZGlvXCYjMzQ7O1xuJiM0MztcbiYjNDM7XHRcdGVtYWMxX3BoeTA6IGV0aGVybmV0LXBoeUAwIHtcbiYjNDM7XHRcdFx0cmVnID0gXHUwMDNjMFx1MDAzZTtcbiYjNDM7XHRcdH07XG4mIzQzO1x0fTtcbiYjNDM7fTtcbiYjNDM7XG4mIzQzO1x1MDAyNmdtYWMyIHtcbiYjNDM7XHRzdGF0dXMgPSBcJiMzNDtva2F5XCYjMzQ7O1xuJiM0MztcdHBoeS1tb2RlID0gXCYjMzQ7cmdtaWktaWRcJiMzNDs7XG4mIzQzO1x0cGh5LWhhbmRsZSA9IFx1MDAzY1x1MDAyNmVtYWMyX3BoeTBcdTAwM2U7XG4mIzQzO1x0bWF4LWZyYW1lLXNpemUgPSBcdTAwM2M5MDAwXHUwMDNlO1xuJiM0MztcbiYjNDM7XHRtZGlvMCB7XG4mIzQzO1x0XHQjYWRkcmVzcy1jZWxscyA9IFx1MDAzYzFcdTAwM2U7XG4mIzQzO1x0XHQjc2l6ZS1jZWxscyA9IFx1MDAzYzBcdTAwM2U7XG4mIzQzO1x0XHRjb21wYXRpYmxlID0gXCYjMzQ7c25wcyxkd21hYy1tZGlvXCYjMzQ7O1xuJiM0MztcbiYjNDM7XHRcdGVtYWMyX3BoeTA6IGV0aGVybmV0LXBoeUAwIHtcbiYjNDM7XHRcdFx0cmVnID0gXHUwMDNjMFx1MDAzZTtcbiYjNDM7XHRcdH07XG4mIzQzO1x0fTtcbiYjNDM7fTtcbiYjNDM7XG4mIzQzO1x1MDAyNm9zYzEge1xuJiM0MztcdGNsb2NrLWZyZXF1ZW5jeSA9IFx1MDAzYzI1MDAwMDAwXHUwMDNlO1xuJiM0Mzt9O1xuJiM0MztcbiYjNDM7XHUwMDI2cXNwaSB7XG4mIzQzO1x0c3RhdHVzID0gXCYjMzQ7b2theVwmIzM0OztcbiYjNDM7XHRmbGFzaEAwIHtcbiYjNDM7XHRcdGNvbXBhdGlibGUgPSBcJiMzNDttaWNyb24sbXQyNXF1MDJnXCYjMzQ7LCBcJiMzNDtqZWRlYyxzcGktbm9yXCYjMzQ7O1xuJiM0MztcdFx0cmVnID0gXHUwMDNjMFx1MDAzZTtcbiYjNDM7XHRcdHNwaS1tYXgtZnJlcXVlbmN5ID0gXHUwMDNjMTAwMDAwMDAwXHUwMDNlO1xuJiM0MztcdFx0bTI1cCxmYXN0LXJlYWQ7XG4mIzQzO1x0XHRjZG5zLHJlYWQtZGVsYXkgPSBcdTAwM2MyXHUwMDNlO1xuJiM0MztcdFx0Y2Rucyx0c2hzbC1ucyA9IFx1MDAzYzUwXHUwMDNlO1xuJiM0MztcdFx0Y2Rucyx0c2QyZC1ucyA9IFx1MDAzYzUwXHUwMDNlO1xuJiM0MztcdFx0Y2Rucyx0Y2hzaC1ucyA9IFx1MDAzYzRcdTAwM2U7XG4mIzQzO1x0XHRjZG5zLHRzbGNoLW5zID0gXHUwMDNjNFx1MDAzZTtcbiYjNDM7XHRcdHNwaS10eC1idXMtd2lkdGggPSBcdTAwM2M0XHUwMDNlO1xuJiM0MztcdFx0c3BpLXJ4LWJ1cy13aWR0aCA9IFx1MDAzYzRcdTAwM2U7XG4mIzQzO1xuJiM0MztcdFx0cGFydGl0aW9ucyB7XG4mIzQzO1x0XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtmaXhlZC1wYXJ0aXRpb25zXCYjMzQ7O1xuJiM0MztcdFx0XHQjYWRkcmVzcy1jZWxscyA9IFx1MDAzYzFcdTAwM2U7XG4mIzQzO1x0XHRcdCNzaXplLWNlbGxzID0gXHUwMDNjMVx1MDAzZTtcbiYjNDM7XG4mIzQzO1x0XHRcdHFzcGlfYm9vdDogcGFydGl0aW9uQDAge1xuJiM0MztcdFx0XHRcdGxhYmVsID0gXCYjMzQ7dS1ib290XCYjMzQ7O1xuJiM0MztcdFx0XHRcdHJlZyA9IFx1MDAzYzB4MCAweDA0MjAwMDAwXHUwMDNlO1xuJiM0MztcdFx0XHR9O1xuJiM0MztcbiYjNDM7XHRcdFx0cm9vdDogcGFydGl0aW9uQDQyMDAwMDAge1xuJiM0MztcdFx0XHRcdGxhYmVsID0gXCYjMzQ7cm9vdFwmIzM0OztcbiYjNDM7XHRcdFx0XHRyZWcgPSBcdTAwM2MweDA0MjAwMDAwIDB4MGJlMDAwMDBcdTAwM2U7XG4mIzQzO1x0XHRcdH07XG4mIzQzO1x0XHR9O1xuJiM0MztcdH07XG4mIzQzO307XG4mIzQzO1xuJiM0MztcdTAwMjZ1YXJ0MCB7XG4mIzQzO1x0c3RhdHVzID0gXCYjMzQ7b2theVwmIzM0OztcbiYjNDM7fTtcbiYjNDM7XG4mIzQzO1x1MDAyNnVzYjAge1xuJiM0MztcdHN0YXR1cyA9IFwmIzM0O29rYXlcJiMzNDs7XG4mIzQzO1x0ZGlzYWJsZS1vdmVyLWN1cnJlbnQ7XG4mIzQzO307XG4mIzQzO1xuJiM0MztcdTAwMjZ3YXRjaGRvZzAge1xuJiM0MztcdHN0YXR1cyA9IFwmIzM0O29rYXlcJiMzNDs7XG4mIzQzO307XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jXG5pbmRleCAxZDdmMGE1N2QyODg5Li4wNjMyMTA1YjQyMGYxIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmNcbkBAIC02OSwxMiAmIzQzOzY5LDEzIEBAIHN0cnVjdCBzb2NmcGdhX2R3bWFjIHtcbiBcdHZvaWQgX19pb21lbSAqdHNlX3Bjc19iYXNlO1xuIFx0dm9pZCBfX2lvbWVtICpzZ21paV9hZGFwdGVyX2Jhc2U7XG4gXHRib29sIGYyaF9wdHBfcmVmX2NsaztcbiYjNDM7XHRwaHlfaW50ZXJmYWNlX3QgbWFjX2ludGVyZmFjZTtcbiBcdGNvbnN0IHN0cnVjdCBzb2NmcGdhX2R3bWFjX29wcyAqb3BzO1xuIH07XG4gXG4gc3RhdGljIHBoeV9pbnRlcmZhY2VfdCBzb2NmcGdhX2dldF9wbGF0X3BoeW1vZGUoc3RydWN0IHNvY2ZwZ2FfZHdtYWMgKmR3bWFjKVxuIHtcbi1cdHJldHVybiBkd21hYy1cdTAwM2VwbGF0X2RhdC1cdTAwM2VwaHlfaW50ZXJmYWNlO1xuJiM0MztcdHJldHVybiBkd21hYy1cdTAwM2VtYWNfaW50ZXJmYWNlO1xuIH1cbiBcbiBzdGF0aWMgdm9pZCBzb2NmcGdhX3NnbWlpX2NvbmZpZyhzdHJ1Y3Qgc29jZnBnYV9kd21hYyAqZHdtYWMsIGJvb2wgZW5hYmxlKVxuQEAgLTY1MCw2ICYjNDM7NjUxLDggQEAgc3RhdGljIGludCBzb2NmcGdhX2R3bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4gXHRwbGF0X2RhdC1cdTAwM2VwY3NfZXhpdCA9IHNvY2ZwZ2FfZHdtYWNfcGNzX2V4aXQ7XG4gXHRwbGF0X2RhdC1cdTAwM2VzZWxlY3RfcGNzID0gc29jZnBnYV9kd21hY19zZWxlY3RfcGNzO1xuIFxuJiM0MztcdGR3bWFjLVx1MDAzZW1hY19pbnRlcmZhY2UgPSBwbGF0X2RhdC1cdTAwM2VwaHlfaW50ZXJmYWNlO1xuJiM0MztcbiBcdG9wcy1cdTAwM2VzZXR1cF9wbGF0X2RhdChkd21hYyk7XG4gXG4gXHRyZXR1cm4gZGV2bV9zdG1tYWNfcGx0ZnJfcHJvYmUocGRldiwgcGxhdF9kYXQsIFx1MDAyNnN0bW1hY19yZXMpO1xuQEAgLTY3MCwxMCAmIzQzOzY3MywyOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHNvY2ZwZ2FfZHdtYWNfb3BzIHNvY2ZwZ2FfYWdpbGV4NV9vcHMgPSB7XG4gXHQuc2V0dXBfcGxhdF9kYXQgPSBzb2NmcGdhX2FnaWxleDVfc2V0dXBfcGxhdF9kYXQsXG4gfTtcbiBcbiYjNDM7c3RhdGljIHZvaWQgc29jZnBnYV9hZ2lsZXg1X3Rzbl9nbWFjX3NldHVwX3BsYXRfZGF0KHN0cnVjdCBzb2NmcGdhX2R3bWFjICpkd21hYylcbiYjNDM7e1xuJiM0MztcdHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQgPSBkd21hYy1cdTAwM2VwbGF0X2RhdDtcbiYjNDM7XG4mIzQzO1x0c29jZnBnYV9hZ2lsZXg1X3NldHVwX3BsYXRfZGF0KGR3bWFjKTtcbiYjNDM7XG4mIzQzO1x0LyogRlBHQSBjb252ZXJ0ZXIgc3VwcGxpZXMgUkdNSUkgZGVsYXlzOyBNQUMgdXNlcyBHTUlJLCBQSFkgZ2V0cyBwbGFpbiBSR01JSSAqL1xuJiM0MztcdGR3bWFjLVx1MDAzZW1hY19pbnRlcmZhY2UgPSBQSFlfSU5URVJGQUNFX01PREVfR01JSTtcbiYjNDM7XHRpZiAocGh5X2ludGVyZmFjZV9tb2RlX2lzX3JnbWlpKHBsYXRfZGF0LVx1MDAzZXBoeV9pbnRlcmZhY2UpKVxuJiM0MztcdFx0cGxhdF9kYXQtXHUwMDNlcGh5X2ludGVyZmFjZSA9IFBIWV9JTlRFUkZBQ0VfTU9ERV9SR01JSTtcbiYjNDM7fVxuJiM0MztcbiYjNDM7c3RhdGljIGNvbnN0IHN0cnVjdCBzb2NmcGdhX2R3bWFjX29wcyBzb2NmcGdhX2FnaWxleDVfdHNuX2dtYWNfb3BzID0ge1xuJiM0MztcdC5zZXRfcGh5X21vZGUgPSBzb2NmcGdhX2dlbjEwX3NldF9waHlfbW9kZSxcbiYjNDM7XHQuc2V0dXBfcGxhdF9kYXQgPSBzb2NmcGdhX2FnaWxleDVfdHNuX2dtYWNfc2V0dXBfcGxhdF9kYXQsXG4mIzQzO307XG4mIzQzO1xuIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHNvY2ZwZ2FfZHdtYWNfbWF0Y2hbXSA9IHtcbiBcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDthbHRyLHNvY2ZwZ2Etc3RtbWFjXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNnNvY2ZwZ2FfZ2VuNV9vcHMgfSxcbiBcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDthbHRyLHNvY2ZwZ2Etc3RtbWFjLWExMC1zMTBcJiMzNDssIC5kYXRhID0gXHUwMDI2c29jZnBnYV9nZW4xMF9vcHMgfSxcbiBcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDthbHRyLHNvY2ZwZ2Etc3RtbWFjLWFnaWxleDVcJiMzNDssIC5kYXRhID0gXHUwMDI2c29jZnBnYV9hZ2lsZXg1X29wcyB9LFxuJiM0MztcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDthbHRyLHNvY2ZwZ2Etc3RtbWFjLWFnaWxleDUtdHNuXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNnNvY2ZwZ2FfYWdpbGV4NV90c25fZ21hY19vcHMgfSxcbiBcdHsgfVxuIH07XG4gTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgc29jZnBnYV9kd21hY19tYXRjaCk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDggMDc6MzI8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Y29yZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgRGV2aWNldHJlZSBiaW5kaW5ncywgQVJNNjQgRFRTIGZpbGVzLCBhbmQgdGhlIGR3bWFjLXNvY2ZwZ2EgcGxhdGZvcm0gRXRoZXJuZXQgZHJpdmVyIGZvciBJbnRlbC9BbHRlcmEgU29DRlBHQSBTb0NzLiBUaGlzIGRyaXZlciBpcyB0aWVkIHRvIHNwZWNpZmljIEFSTS9BUk02NCBTb0MgRGV2aWNldHJlZSBoYXJkd2FyZSBhbmQgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIG9uIHRoZSBhbWQ2NCB0YXJnZXQgYXJjaGl0ZWN0dXJlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIgYW5kIHNlY3VyaXR5IGVuZ2luZWVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGV2YWx1YXRlIHdoZXRoZXIgaXQgd2FycmFudHMgZnV6emluZyB3aXRoIHN5emthbGxlci4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24gaW50ZXJuYWwgYXNzdW1wdGlvbnMuIFlvdSBtdXN0IGFjdGl2ZWx5IHVzZSB5b3VyIGNvZGUgYWNjZXNzCnRvb2xzIHRvIGluc3BlY3QgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSwgY2FsbGVycywgYW5kIHN1cnJvdW5kaW5nIGNvbnRleHQuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoxLiBDT1JFIFRSSUFHRSBQSElMT1NPUEhZCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClRoZSBnb2FsIG9mIHBhdGNoIGZ1enppbmcgaXMgdG8gZGlzY292ZXIgY3Jhc2hlcywgcmVncmVzc2lvbnMsIGV4cG9zZWQgbGF0ZW50IGJ1Z3MsCmFuZCBuZXdseSB0cmlnZ2VyZWQgYXNzZXJ0aW9ucyBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBzZXJpZXMuCgotIFJFQUNIQUJJTElUWSBJUyBUSEUgUFJJTUFSWSBHQVRFOgogIEZ1enppbmcgY2FuIG9ubHkgZGlzY292ZXIgYnVncyBpbiBjb2RlIHRoYXQgY2FuIGFjdHVhbGx5IGV4ZWN1dGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQKICBlbnZpcm9ubWVudHMgKEdDRSBvciBRRU1VLCB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgZGV2aWNlcyBsaWtlIFVTQiBnYWRnZXRzLCBuZXRkZXYsIHR1bi90YXApLgogIElmIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSAoc2VlIFNlY3Rpb24gMiksIGl0IE1VU1QgTk9UIGJlIGZ1enplZCwKICByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgYWRkcyBhc3NlcnRpb25zIG9yIGNvbXBsZXggbG9naWMuCgotIERPIE5PVCBCTElORExZIFRSVVNUICYjMzQ7Tk8gRlVOQ1RJT05BTCBDSEFOR0UmIzM0OyAoTkZDSSkgT1IgJiMzNDtSRUZBQ1RPUklORyYjMzQ7IENMQUlNUzoKICBQYXRjaCBhdXRob3JzIHJvdXRpbmVseSBsYWJlbCBjaGFuZ2VzIGFzICYjMzQ7Y2xlYW51cHMmIzM0OywgJiMzNDtyZWZhY3RvcmluZ3MmIzM0Oywgb3Igc3RhdGUKICAmIzM0O05vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVkJiMzNDsuIERvIE5PVCB0YWtlIHRoZXNlIGNsYWltcyBhdCBmYWNlIHZhbHVlLgogIENvZGUgcmVmYWN0b3JpbmdzIHRoYXQgcmVhcnJhbmdlIGxvZ2ljLCBpbnRyb2R1Y2UgaGVscGVyIGZ1bmN0aW9ucywgb3IgYWx0ZXIgc3RhdGUgbWFuYWdlbWVudAogIGluIGNvcmUgc3Vic3lzdGVtcyBmcmVxdWVudGx5IGludHJvZHVjZSBzdWJ0bGUgc2VtYW50aWMgc2hpZnRzIG9yIHVuY292ZXIgbGF0ZW50IGtlcm5lbCBidWdzLgogIElmIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUgaXMgbW9kaWZpZWQgb3IgcmVmYWN0b3JlZCwgaXQgTVVTVCBiZSBmdXp6ZWQuCgotIE5FVyBPUiBNT0RJRklFRCBBU1NFUlRJT05TIElOIFJFQUNIQUJMRSBDT0RFIE1VU1QgQkUgRlVaWkVEOgogIFdoZW4gYSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzIHJ1bnRpbWUgY2hlY2tzIG9yIGFzc2VydGlvbnMgKGUuZy4sIFdBUk5fT04qLCBWTV9XQVJOX09OKiwKICBCVUdfT04qLCBsb2NrZGVwX2Fzc2VydCopIGluIHJlYWNoYWJsZSBjb2RlIHBhdGhzLCBpdCBlbmZvcmNlcyBuZXcgb3Igc3RyaWN0ZXIgaW52YXJpYW50cy4KICBFdmVuIGlmIHRoZSBhdXRob3IgYmVsaWV2ZXMgdGhlIGludmFyaWFudCBhbHdheXMgaG9sZHMsIGZ1enppbmcgaXMgZXNzZW50aWFsIHRvIHZlcmlmeSB3aGV0aGVyCiAgYW4gdW51c3VhbCBzZXF1ZW5jZSBvZiBvcGVyYXRpb25zIGNhbiB2aW9sYXRlIGl0LgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMi4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPWZhbHNlIChORUdBVElWRSBDUklURVJJQSkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBPTkxZIElGIGFsbCBtb2RpZmllZCBjb2RlIGZhbGxzIHN0cmljdGx5IGludG8gb25lIG9yIG1vcmUgb2YgdGhlc2UgY2F0ZWdvcmllczoKCi0gTm9uLWtlcm5lbCBhbmQgbm9uLWV4ZWN1dGFibGUgY2hhbmdlczoKICAqIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIGNvbW1lbnRzLCBvciBzcGVsbGluZyBmaXhlcy4KICAqIFVzZXItc3BhY2UgZGlyZWN0b3JpZXMsIHNlbGYtdGVzdHMsIHNhbXBsZXMsIG9yIHNjcmlwdHMgKGUuZy4sIHRvb2xzLywgc2FtcGxlcy8sIHNjcmlwdHMvLCB1c3IvKQogICAgdGhhdCBkbyBub3QgYWZmZWN0IHRoZSBjb21waWxlZCBrZXJuZWwgaW1hZ2UgKHZtbGludXgpIG9yIGtlcm5lbCBtb2R1bGVzLgogICogUHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZyAoZS5nLiwgbWVzc2FnZSBzdHJpbmdzIGluIHByX2VyciwgcHJpbnRrLCBkZXZfaW5mbykgb3IgdHJhY2Vwb2ludHMKICAgIHRoYXQgZG8gbm90IGFsdGVyIGNvbnRyb2wgZmxvdyBvciBkYXRhIHN0cnVjdHVyZXMuCiAgKiBCdWlsZCBzeXN0ZW0gb3IgS2NvbmZpZyBjaGFuZ2VzIHRoYXQgZG8gbm90IGFsdGVyIGNvbXBpbGVkIEMgbG9naWMuCi0gU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlOgogICogVmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoZXMsIFNtYXJ0TklDcywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogICAgaW9uaWMsIGFtZGdwdSkgcmVxdWlyaW5nIHBoeXNpY2FsIEFTSUMvUENJZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBVbnJlYWNoYWJsZSBleGVjdXRpb24gcGF0aHM6CiAgKiBEcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzICgucmVtb3ZlLCAuc2h1dGRvd24sIHBjaV91bnJlZ2lzdGVyX2RyaXZlcikgZXhlY3V0ZWQgb25seSBkdXJpbmcKICAgIHBoeXNpY2FsIFBDSSBob3QtdW5wbHVnIG9yIG1hbnVhbCBzeXNmcyBkcml2ZXIgdW5iaW5kaW5nLgogICogQ29kZSBwYXRocyBleGNsdXNpdmUgdG8gYXJjaGl0ZWN0dXJlcyBvdGhlciB0aGFuIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMy4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPXRydWUgKFBPU0lUSVZFIENSSVRFUklBKQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSZXR1cm4gV29ydGhGdXp6aW5nPXRydWUgd2hlbmV2ZXIgdGhlIHBhdGNoIHRvdWNoZXMgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSwgaW5jbHVkaW5nOgotIENvcmUgU3Vic3lzdGVtczoKICAqIEFueSBsb2dpYyBtb2RpZmljYXRpb25zIGluIG1lbW9yeSBtYW5hZ2VtZW50IChtbS8pLCBzeW5jaHJvbml6YXRpb24vbG9ja2luZyAoa2VybmVsL2xvY2tpbmcvKSwKICAgIEJQRiwgc2NoZWR1bGVyLCBjb3JlIG5ldHdvcmtpbmcsIFZGUywgb3Igc3lzY2FsbCBoYW5kbGluZy4KLSBSZWZhY3RvcmluZ3MgYW5kIENvZGUgQ2xlYW51cHM6CiAgKiBBbnkgcmVzdHJ1Y3R1cmluZyBvZiByZWFjaGFibGUgZGF0YSBzdHJ1Y3R1cmVzLCBoZWxwZXIgYWJzdHJhY3Rpb25zLCBvciBhbGdvcml0aG0gZmxvd3MuCi0gUnVudGltZSBBc3NlcnRpb25zIGFuZCBEZWZlbnNpdmUgQ2hlY2tzOgogICogQW55IGludHJvZHVjdGlvbiBvciBhbHRlcmF0aW9uIG9mIGFzc2VydGlvbnMgKFdBUk5fT04qLCBWTV9XQVJOX09OKiwgQlVHX09OKiwgZXRjLikgaW4gcmVhY2hhYmxlIHBhdGhzLgotIFJlYWNoYWJsZSBEcml2ZXJzIGFuZCBQcm90b2NvbHM6CiAgKiBEcml2ZXJzIGFjY2Vzc2libGUgdmlhIHZpcnR1YWwgYnVzZXMgKHZpcnRpbywgVVNCIGdhZGdldCwgbG9vcGJhY2ssIG5ldGxpbmssIGJpbmRlciwgc29ja2V0cywgZXRjLikuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo0LiBFWFRSQUNUSU5HIEZvY3VzU3ltYm9scyAoUFJFVkVOVElORyBESUxVVElPTikKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KV2hlbiBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IG11c3QgZXh0cmFjdCBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIGludG8gRm9jdXNTeW1ib2xzIHRvIGd1aWRlIHRoZSBmdXp6ZXI6CgotIEFWT0lEIFVCSVFVSVRPVVMgTElGRUNZQ0xFIEhPVC1QQVRIUzoKICBEbyBOT1QgbGlzdCBnZW5lcmljLCB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYWxsZWQgYnkgYWxtb3N0IGV2ZXJ5IHByb2dyYW0gaW4gdGhlIGNvcnB1cwogIChpbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0bzogZ2VuZXJhbCBtZW1vcnkgYWxsb2NhdG9ycyBhbmQgZGVhbGxvY2F0b3JzLCBwYWdlIGZhdWx0CiAgYW5kIHRyYXAgaGFuZGxlcnMsIG9yIGNvcmUgc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXM7IHRoaXMgaXMgbm90IGFuIGV4aGF1c3RpdmUgbGlzdCkuCiAgTGlzdGluZyB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYXVzZXMgdGhlIGZ1enplciB0byBjbGFzc2lmeSB0aG91c2FuZHMgb2YgdW5yZWxhdGVkIHRlc3RzIGFzICYjMzQ7Zm9jdXNlZCYjMzQ7LAogIHdoaWNoIHNldmVyZWx5IGRpbHV0ZXMgZnV6emluZyBlZmZvcnQgYXdheSBmcm9tIHRoZSBhY3R1YWwgY2hhbmdlcy4KCi0gVEFSR0VUIFNQRUNJRklDIEZFQVRVUkUgTE9HSUMgQU5EIEVOVFJZUE9JTlRTOgogIExpc3QgZnVuY3Rpb25zIHRoYXQgc3BlY2lmaWNhbGx5IGltcGxlbWVudCB0aGUgbG9naWMgYmVpbmcgYWRkZWQgb3IgYWx0ZXJlZCwgb3IgZGlyZWN0IEFQSSBlbnRyeXBvaW50cwogIGZvciB0aGUgc3Vic3lzdGVtIGZlYXR1cmUgdW5kZXIgcmV2aWV3LgoKLSBIQU5ETElORyBTVEFUSUMgSU5MSU5FIEZVTkNUSU9OUyBJTiBIRUFERVJTICguaCk6CiAgQ29tcGlsZXItaW5saW5lZCBzdGF0aWMgZnVuY3Rpb25zIChzdWNoIGFzIHN0YXRpYyBpbmxpbmVzIGluIG1tLyouaCBvciBpbmNsdWRlL2xpbnV4LyouaCkgbGFjawogIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMgaW4gdm1saW51eCBhbmQgY2Fubm90IGJlIHRhcmdldGVkIGRpcmVjdGx5IGJ5IHN5bWJvbCBjb3ZlcmFnZSBmaWx0ZXJzLgogIElmIHRoZSBjaGFuZ2VzIGFyZSBwcmltYXJpbHkgaW4gc3RhdGljIGlubGluZSBoZWxwZXJzLCBpZGVudGlmeSBub24tc3RhdGljLCBmZWF0dXJlLXNwZWNpZmljIGNhbGxlcgogIGZ1bmN0aW9ucyBpbiAuYyBmaWxlcyB0aGF0IGV4ZXJjaXNlIHRoZW0gKGF2b2lkaW5nIHViaXF1aXRvdXMgbGlmZWN5Y2xlIHdyYXBwZXJzKS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjUuIElERU5USUZZSU5HIEVuYWJsZUNvbmZpZ3MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSBjb21waWxlIGFuZCByZWFjaCB0aGUgbW9kaWZpZWQgY29kZToKLSBJbnNwZWN0IEtjb25maWcgZmlsZXMgYW5kICNpZmRlZiBndWFyZHM7IGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgotIENoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncyBuZWVkZWQuCi0gU3RyaXAgYW55ICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPlRhcmdldCBhcmNoaXRlY3R1cmU6IGFtZDY0CgpGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDA2ZGM3OGQwZTZiMWMxNThkNmYyZDFiMzhhNzQ5NjQ0NmM2MzY1NzAKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVHVlIFNlcCA4IDA3OjMyOjU2IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9hbHRlcmEueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vYWx0ZXJhLnlhbWwKaW5kZXggMzAzMGNmNDZmZTc0Yy4uZTQzMTQ2OWE3MTc1MyAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9hbHRlcmEueWFtbAomIzQzOyYjNDM7JiM0MzsgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL2FsdGVyYS55YW1sCkBAIC0xMTQsNiAmIzQzOzExNCw3IEBAIHByb3BlcnRpZXM6CiAgICAgICAgICAgICAgIC0gaW50ZWwsc29jZnBnYS1hZ2lsZXg1LXNvY2RrLWRlYnVnCiAgICAgICAgICAgICAgIC0gaW50ZWwsc29jZnBnYS1hZ2lsZXg1LXNvY2RrLW1vZHVsYXIKICAgICAgICAgICAgICAgLSBpbnRlbCxzb2NmcGdhLWFnaWxleDUtc29jZGstbmFuZAomIzQzOyAgICAgICAgICAgICAgLSBpbnRlbCxzb2NmcGdhLWFnaWxleDUtc29jZGstdHNuLWNmZzIKICAgICAgICAgICAtIGNvbnN0OiBpbnRlbCxzb2NmcGdhLWFnaWxleDUKIAogICAgICAgLSBkZXNjcmlwdGlvbjogQWdpbGV4NzIgYm9hcmRzCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sCmluZGV4IDYzMDg0Zjc2MjM3MzguLjJjMjdiZmQ1YWY4OTIgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sCiYjNDM7JiM0MzsmIzQzOyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sCkBAIC0yNCw2ICYjNDM7MjQsNyBAQCBzZWxlY3Q6CiAgICAgICAgICAgLSBhbHRyLHNvY2ZwZ2Etc3RtbWFjCiAgICAgICAgICAgLSBhbHRyLHNvY2ZwZ2Etc3RtbWFjLWExMC1zMTAKICAgICAgICAgICAtIGFsdHIsc29jZnBnYS1zdG1tYWMtYWdpbGV4NQomIzQzOyAgICAgICAgICAtIGFsdHIsc29jZnBnYS1zdG1tYWMtYWdpbGV4NS10c24KIAogICByZXF1aXJlZDoKICAgICAtIGNvbXBhdGlibGUKQEAgLTQ0LDcgJiM0Mzs0NSw5IEBAIHByb3BlcnRpZXM6CiAgICAgICAgICAgLSBjb25zdDogc25wcyxkd21hYy0zLjc0YQogICAgICAgICAgIC0gY29uc3Q6IHNucHMsZHdtYWMKICAgICAgIC0gaXRlbXM6Ci0gICAgICAgICAgLSBjb25zdDogYWx0cixzb2NmcGdhLXN0bW1hYy1hZ2lsZXg1CiYjNDM7ICAgICAgICAgIC0gZW51bToKJiM0MzsgICAgICAgICAgICAgIC0gYWx0cixzb2NmcGdhLXN0bW1hYy1hZ2lsZXg1CiYjNDM7ICAgICAgICAgICAgICAtIGFsdHIsc29jZnBnYS1zdG1tYWMtYWdpbGV4NS10c24KICAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3eGdtYWMtMi4xMAogCiAgIGNsb2NrczoKZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvTWFrZWZpbGUgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL2ludGVsL01ha2VmaWxlCmluZGV4IDI3MGM3MGZkZjA4NGIuLmNlN2NmM2E2MzI3NTMgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvTWFrZWZpbGUKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9NYWtlZmlsZQpAQCAtOCw2ICYjNDM7OCw3IEBAIGR0Yi0kKENPTkZJR19BUkNIX0lOVEVMX1NPQ0ZQR0EpICYjNDM7PSBzb2NmcGdhX2FnaWxleF9uNjAwMC5kdGIgXAogCQkJCXNvY2ZwZ2FfYWdpbGV4NV9zb2Nka18wMTNiLmR0YiBcCiAJCQkJc29jZnBnYV9hZ2lsZXg1X3NvY2RrX21vZHVsYXIuZHRiIFwKIAkJCQlzb2NmcGdhX2FnaWxleDVfc29jZGtfbmFuZC5kdGIgXAomIzQzOwkJCQlzb2NmcGdhX2FnaWxleDVfc29jZGtfdHNuX2NmZzIuZHRiIFwKIAkJCQlzb2NmcGdhX2FnaWxleDcyX3NvY2RrLmR0YiBcCiAJCQkJc29jZnBnYV9hZ2lsZXg3bV9zb2Nkay5kdGIgXAogCQkJCXNvY2ZwZ2FfbjV4X3NvY2RrLmR0YgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9zb2NmcGdhX2FnaWxleDVfc29jZGtfdHNuX2NmZzIuZHRzIGIvYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9zb2NmcGdhX2FnaWxleDVfc29jZGtfdHNuX2NmZzIuZHRzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjlkMzlmODQzYjQyNDAKLS0tIC9kZXYvbnVsbAomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL2ludGVsL3NvY2ZwZ2FfYWdpbGV4NV9zb2Nka190c25fY2ZnMi5kdHMKQEAgLTAsMCAmIzQzOzEsMTMwIEBACiYjNDM7Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQomIzQzOy8qCiYjNDM7ICogQ29weXJpZ2h0IChDKSAyMDI2LCBBbHRlcmEgQ29ycG9yYXRpb24KJiM0MzsgKi8KJiM0MzsjaW5jbHVkZSAmIzM0O3NvY2ZwZ2FfYWdpbGV4NS5kdHNpJiMzNDsKJiM0MzsKJiM0MzsvIHsKJiM0MzsJbW9kZWwgPSAmIzM0O1NvQ0ZQR0EgQWdpbGV4NSBTb0NESyBUU04gQ29uZmlnMiYjMzQ7OwomIzQzOwljb21wYXRpYmxlID0gJiMzNDtpbnRlbCxzb2NmcGdhLWFnaWxleDUtc29jZGstdHNuLWNmZzImIzM0OywgJiMzNDtpbnRlbCxzb2NmcGdhLWFnaWxleDUmIzM0OzsKJiM0MzsKJiM0MzsJYWxpYXNlcyB7CiYjNDM7CQlzZXJpYWwwID0gJmFtcDt1YXJ0MDsKJiM0MzsJCWV0aGVybmV0MSA9ICZhbXA7Z21hYzE7CiYjNDM7CQlldGhlcm5ldDIgPSAmYW1wO2dtYWMyOwomIzQzOwl9OwomIzQzOwomIzQzOwljaG9zZW4gewomIzQzOwkJc3Rkb3V0LXBhdGggPSAmIzM0O3NlcmlhbDA6MTE1MjAwbjgmIzM0OzsKJiM0MzsJfTsKJiM0MzsKJiM0MzsJbGVkcyB7CiYjNDM7CQljb21wYXRpYmxlID0gJiMzNDtncGlvLWxlZHMmIzM0OzsKJiM0MzsKJiM0MzsJCWxlZC0wIHsKJiM0MzsJCQlsYWJlbCA9ICYjMzQ7aHBzX2xlZDAmIzM0OzsKJiM0MzsJCQlncGlvcyA9ICZsdDsmYW1wO3BvcnRhIDExIEdQSU9fQUNUSVZFX0hJR0gmZ3Q7OwomIzQzOwkJfTsKJiM0MzsKJiM0MzsJfTsKJiM0MzsKJiM0MzsJbWVtb3J5QDgwMDAwMDAwIHsKJiM0MzsJCWRldmljZV90eXBlID0gJiMzNDttZW1vcnkmIzM0OzsKJiM0MzsJCS8qIFdlIGV4cGVjdCB0aGUgYm9vdGxvYWRlciB0byBmaWxsIGluIHRoZSByZWcgKi8KJiM0MzsJCXJlZyA9ICZsdDsweDAgMHg4MDAwMDAwMCAweDAgMHgwJmd0OzsKJiM0MzsJfTsKJiM0Mzt9OwomIzQzOwomIzQzOyZhbXA7Z3BpbzAgewomIzQzOwlzdGF0dXMgPSAmIzM0O29rYXkmIzM0OzsKJiM0Mzt9OwomIzQzOwomIzQzOyZhbXA7Z3BpbzEgewomIzQzOwlzdGF0dXMgPSAmIzM0O29rYXkmIzM0OzsKJiM0Mzt9OwomIzQzOwomIzQzOyZhbXA7Z21hYzEgewomIzQzOwlzdGF0dXMgPSAmIzM0O29rYXkmIzM0OzsKJiM0MzsJY29tcGF0aWJsZSA9ICYjMzQ7YWx0cixzb2NmcGdhLXN0bW1hYy1hZ2lsZXg1LXRzbiYjMzQ7LAomIzQzOwkJICAgICAmIzM0O3NucHMsZHd4Z21hYy0yLjEwJiMzNDs7CiYjNDM7CXBoeS1tb2RlID0gJiMzNDtyZ21paS1pZCYjMzQ7OwomIzQzOwlwaHktaGFuZGxlID0gJmx0OyZhbXA7ZW1hYzFfcGh5MCZndDs7CiYjNDM7CW1heC1mcmFtZS1zaXplID0gJmx0OzkwMDAmZ3Q7OwomIzQzOwomIzQzOwltZGlvMCB7CiYjNDM7CQkjYWRkcmVzcy1jZWxscyA9ICZsdDsxJmd0OzsKJiM0MzsJCSNzaXplLWNlbGxzID0gJmx0OzAmZ3Q7OwomIzQzOwkJY29tcGF0aWJsZSA9ICYjMzQ7c25wcyxkd21hYy1tZGlvJiMzNDs7CiYjNDM7CiYjNDM7CQllbWFjMV9waHkwOiBldGhlcm5ldC1waHlAMCB7CiYjNDM7CQkJcmVnID0gJmx0OzAmZ3Q7OwomIzQzOwkJfTsKJiM0MzsJfTsKJiM0Mzt9OwomIzQzOwomIzQzOyZhbXA7Z21hYzIgewomIzQzOwlzdGF0dXMgPSAmIzM0O29rYXkmIzM0OzsKJiM0MzsJcGh5LW1vZGUgPSAmIzM0O3JnbWlpLWlkJiMzNDs7CiYjNDM7CXBoeS1oYW5kbGUgPSAmbHQ7JmFtcDtlbWFjMl9waHkwJmd0OzsKJiM0MzsJbWF4LWZyYW1lLXNpemUgPSAmbHQ7OTAwMCZndDs7CiYjNDM7CiYjNDM7CW1kaW8wIHsKJiM0MzsJCSNhZGRyZXNzLWNlbGxzID0gJmx0OzEmZ3Q7OwomIzQzOwkJI3NpemUtY2VsbHMgPSAmbHQ7MCZndDs7CiYjNDM7CQljb21wYXRpYmxlID0gJiMzNDtzbnBzLGR3bWFjLW1kaW8mIzM0OzsKJiM0MzsKJiM0MzsJCWVtYWMyX3BoeTA6IGV0aGVybmV0LXBoeUAwIHsKJiM0MzsJCQlyZWcgPSAmbHQ7MCZndDs7CiYjNDM7CQl9OwomIzQzOwl9OwomIzQzO307CiYjNDM7CiYjNDM7JmFtcDtvc2MxIHsKJiM0MzsJY2xvY2stZnJlcXVlbmN5ID0gJmx0OzI1MDAwMDAwJmd0OzsKJiM0Mzt9OwomIzQzOwomIzQzOyZhbXA7cXNwaSB7CiYjNDM7CXN0YXR1cyA9ICYjMzQ7b2theSYjMzQ7OwomIzQzOwlmbGFzaEAwIHsKJiM0MzsJCWNvbXBhdGlibGUgPSAmIzM0O21pY3JvbixtdDI1cXUwMmcmIzM0OywgJiMzNDtqZWRlYyxzcGktbm9yJiMzNDs7CiYjNDM7CQlyZWcgPSAmbHQ7MCZndDs7CiYjNDM7CQlzcGktbWF4LWZyZXF1ZW5jeSA9ICZsdDsxMDAwMDAwMDAmZ3Q7OwomIzQzOwkJbTI1cCxmYXN0LXJlYWQ7CiYjNDM7CQljZG5zLHJlYWQtZGVsYXkgPSAmbHQ7MiZndDs7CiYjNDM7CQljZG5zLHRzaHNsLW5zID0gJmx0OzUwJmd0OzsKJiM0MzsJCWNkbnMsdHNkMmQtbnMgPSAmbHQ7NTAmZ3Q7OwomIzQzOwkJY2Rucyx0Y2hzaC1ucyA9ICZsdDs0Jmd0OzsKJiM0MzsJCWNkbnMsdHNsY2gtbnMgPSAmbHQ7NCZndDs7CiYjNDM7CQlzcGktdHgtYnVzLXdpZHRoID0gJmx0OzQmZ3Q7OwomIzQzOwkJc3BpLXJ4LWJ1cy13aWR0aCA9ICZsdDs0Jmd0OzsKJiM0MzsKJiM0MzsJCXBhcnRpdGlvbnMgewomIzQzOwkJCWNvbXBhdGlibGUgPSAmIzM0O2ZpeGVkLXBhcnRpdGlvbnMmIzM0OzsKJiM0MzsJCQkjYWRkcmVzcy1jZWxscyA9ICZsdDsxJmd0OzsKJiM0MzsJCQkjc2l6ZS1jZWxscyA9ICZsdDsxJmd0OzsKJiM0MzsKJiM0MzsJCQlxc3BpX2Jvb3Q6IHBhcnRpdGlvbkAwIHsKJiM0MzsJCQkJbGFiZWwgPSAmIzM0O3UtYm9vdCYjMzQ7OwomIzQzOwkJCQlyZWcgPSAmbHQ7MHgwIDB4MDQyMDAwMDAmZ3Q7OwomIzQzOwkJCX07CiYjNDM7CiYjNDM7CQkJcm9vdDogcGFydGl0aW9uQDQyMDAwMDAgewomIzQzOwkJCQlsYWJlbCA9ICYjMzQ7cm9vdCYjMzQ7OwomIzQzOwkJCQlyZWcgPSAmbHQ7MHgwNDIwMDAwMCAweDBiZTAwMDAwJmd0OzsKJiM0MzsJCQl9OwomIzQzOwkJfTsKJiM0MzsJfTsKJiM0Mzt9OwomIzQzOwomIzQzOyZhbXA7dWFydDAgewomIzQzOwlzdGF0dXMgPSAmIzM0O29rYXkmIzM0OzsKJiM0Mzt9OwomIzQzOwomIzQzOyZhbXA7dXNiMCB7CiYjNDM7CXN0YXR1cyA9ICYjMzQ7b2theSYjMzQ7OwomIzQzOwlkaXNhYmxlLW92ZXItY3VycmVudDsKJiM0Mzt9OwomIzQzOwomIzQzOyZhbXA7d2F0Y2hkb2cwIHsKJiM0MzsJc3RhdHVzID0gJiMzNDtva2F5JiMzNDs7CiYjNDM7fTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYwppbmRleCAxZDdmMGE1N2QyODg5Li4wNjMyMTA1YjQyMGYxIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jCkBAIC02OSwxMiAmIzQzOzY5LDEzIEBAIHN0cnVjdCBzb2NmcGdhX2R3bWFjIHsKIAl2b2lkIF9faW9tZW0gKnRzZV9wY3NfYmFzZTsKIAl2b2lkIF9faW9tZW0gKnNnbWlpX2FkYXB0ZXJfYmFzZTsKIAlib29sIGYyaF9wdHBfcmVmX2NsazsKJiM0MzsJcGh5X2ludGVyZmFjZV90IG1hY19pbnRlcmZhY2U7CiAJY29uc3Qgc3RydWN0IHNvY2ZwZ2FfZHdtYWNfb3BzICpvcHM7CiB9OwogCiBzdGF0aWMgcGh5X2ludGVyZmFjZV90IHNvY2ZwZ2FfZ2V0X3BsYXRfcGh5bW9kZShzdHJ1Y3Qgc29jZnBnYV9kd21hYyAqZHdtYWMpCiB7Ci0JcmV0dXJuIGR3bWFjLSZndDtwbGF0X2RhdC0mZ3Q7cGh5X2ludGVyZmFjZTsKJiM0MzsJcmV0dXJuIGR3bWFjLSZndDttYWNfaW50ZXJmYWNlOwogfQogCiBzdGF0aWMgdm9pZCBzb2NmcGdhX3NnbWlpX2NvbmZpZyhzdHJ1Y3Qgc29jZnBnYV9kd21hYyAqZHdtYWMsIGJvb2wgZW5hYmxlKQpAQCAtNjUwLDYgJiM0Mzs2NTEsOCBAQCBzdGF0aWMgaW50IHNvY2ZwZ2FfZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlwbGF0X2RhdC0mZ3Q7cGNzX2V4aXQgPSBzb2NmcGdhX2R3bWFjX3Bjc19leGl0OwogCXBsYXRfZGF0LSZndDtzZWxlY3RfcGNzID0gc29jZnBnYV9kd21hY19zZWxlY3RfcGNzOwogCiYjNDM7CWR3bWFjLSZndDttYWNfaW50ZXJmYWNlID0gcGxhdF9kYXQtJmd0O3BoeV9pbnRlcmZhY2U7CiYjNDM7CiAJb3BzLSZndDtzZXR1cF9wbGF0X2RhdChkd21hYyk7CiAKIAlyZXR1cm4gZGV2bV9zdG1tYWNfcGx0ZnJfcHJvYmUocGRldiwgcGxhdF9kYXQsICZhbXA7c3RtbWFjX3Jlcyk7CkBAIC02NzAsMTAgJiM0Mzs2NzMsMjggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzb2NmcGdhX2R3bWFjX29wcyBzb2NmcGdhX2FnaWxleDVfb3BzID0gewogCS5zZXR1cF9wbGF0X2RhdCA9IHNvY2ZwZ2FfYWdpbGV4NV9zZXR1cF9wbGF0X2RhdCwKIH07CiAKJiM0MztzdGF0aWMgdm9pZCBzb2NmcGdhX2FnaWxleDVfdHNuX2dtYWNfc2V0dXBfcGxhdF9kYXQoc3RydWN0IHNvY2ZwZ2FfZHdtYWMgKmR3bWFjKQomIzQzO3sKJiM0MzsJc3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdCA9IGR3bWFjLSZndDtwbGF0X2RhdDsKJiM0MzsKJiM0MzsJc29jZnBnYV9hZ2lsZXg1X3NldHVwX3BsYXRfZGF0KGR3bWFjKTsKJiM0MzsKJiM0MzsJLyogRlBHQSBjb252ZXJ0ZXIgc3VwcGxpZXMgUkdNSUkgZGVsYXlzOyBNQUMgdXNlcyBHTUlJLCBQSFkgZ2V0cyBwbGFpbiBSR01JSSAqLwomIzQzOwlkd21hYy0mZ3Q7bWFjX2ludGVyZmFjZSA9IFBIWV9JTlRFUkZBQ0VfTU9ERV9HTUlJOwomIzQzOwlpZiAocGh5X2ludGVyZmFjZV9tb2RlX2lzX3JnbWlpKHBsYXRfZGF0LSZndDtwaHlfaW50ZXJmYWNlKSkKJiM0MzsJCXBsYXRfZGF0LSZndDtwaHlfaW50ZXJmYWNlID0gUEhZX0lOVEVSRkFDRV9NT0RFX1JHTUlJOwomIzQzO30KJiM0MzsKJiM0MztzdGF0aWMgY29uc3Qgc3RydWN0IHNvY2ZwZ2FfZHdtYWNfb3BzIHNvY2ZwZ2FfYWdpbGV4NV90c25fZ21hY19vcHMgPSB7CiYjNDM7CS5zZXRfcGh5X21vZGUgPSBzb2NmcGdhX2dlbjEwX3NldF9waHlfbW9kZSwKJiM0MzsJLnNldHVwX3BsYXRfZGF0ID0gc29jZnBnYV9hZ2lsZXg1X3Rzbl9nbWFjX3NldHVwX3BsYXRfZGF0LAomIzQzO307CiYjNDM7CiBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBzb2NmcGdhX2R3bWFjX21hdGNoW10gPSB7CiAJeyAuY29tcGF0aWJsZSA9ICYjMzQ7YWx0cixzb2NmcGdhLXN0bW1hYyYjMzQ7LCAuZGF0YSA9ICZhbXA7c29jZnBnYV9nZW41X29wcyB9LAogCXsgLmNvbXBhdGlibGUgPSAmIzM0O2FsdHIsc29jZnBnYS1zdG1tYWMtYTEwLXMxMCYjMzQ7LCAuZGF0YSA9ICZhbXA7c29jZnBnYV9nZW4xMF9vcHMgfSwKIAl7IC5jb21wYXRpYmxlID0gJiMzNDthbHRyLHNvY2ZwZ2Etc3RtbWFjLWFnaWxleDUmIzM0OywgLmRhdGEgPSAmYW1wO3NvY2ZwZ2FfYWdpbGV4NV9vcHMgfSwKJiM0MzsJeyAuY29tcGF0aWJsZSA9ICYjMzQ7YWx0cixzb2NmcGdhLXN0bW1hYy1hZ2lsZXg1LXRzbiYjMzQ7LCAuZGF0YSA9ICZhbXA7c29jZnBnYV9hZ2lsZXg1X3Rzbl9nbWFjX29wcyB9LAogCXsgfQogfTsKIE1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHNvY2ZwZ2FfZHdtYWNfbWF0Y2gpOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wOCAwNzozMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1OTA0CgkJCQkJCQlvdXRwdXQ6IDM5CgkJCQkJCQl0aG91Z2h0czogMjgwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgUGF0Y2g6IEZvY3VzIG9uIFBsYXRmb3JtIFNwZWNpZmljcyoqCgpPa2F5LCBzbyB0aGUgdGFzayBpcyB0byByZXZpZXcgdGhpcyBwYXRjaC4gRmlyc3QgdGhpbmdzIGZpcnN0LCB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZSBpcyBhbWQ2NCwgd2hpY2ggaW1tZWRpYXRlbHkgcmFpc2VzIGEgZmxhZy4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgdGhpcyBwYXRjaCBpcyBldmVuIHJlbGV2YW50IHRvIHRoYXQgYXJjaGl0ZWN0dXJlLCBnaXZlbiB0aGUgZmlsZXMgaW52b2x2ZWQuIExldCYjMzk7cyBsb29rIGF0IHRoZSBtb2RpZmllZCBmaWxlczogYERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vYWx0ZXJhLnlhbWxgLCBgRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbHRyLHNvY2ZwZ2Etc3RtbWFjLnlhbWxgLCBgYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9NYWtlZmlsZWAsIGBhcmNoL2FybTY0L2Jvb3QvZHRzL2ludGVsL3NvY2ZwZ2FfYWdpbGV4NV9zb2Nka190c25fY2ZnMi5kdHNgLCBhbmQgYGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuY2AuCgpSaWdodCBhd2F5LCB0aGUgcHJlcG9uZGVyYW5jZSBvZiBBUk0gYW5kIEFSTTY0IHJlbGF0ZWQgcGF0aHMganVtcHMgb3V0IGF0IG1lLiBUaGUgZHRiIGFuZCBiaW5kaW5ncyBhcmUgYWxsIGZvciBBbHRlcmEvSW50ZWwgU29DRlBHQSBwbGF0Zm9ybXMsIHByaW1hcmlseSBBUk0vQVJNNjQuIFRoZSBtb3N0IGludGVyZXN0aW5nIGZpbGUgaXMgYGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuY2AuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoYXQgdGhhdCBFdGhlcm5ldCBkcml2ZXIgaXMgZG9pbmcgb24gYW4gYW1kNjQgc3lzdGVtLiBNeSBpbml0aWFsIGluc3RpbmN0IGlzIHRoYXQgdGhpcyBpcyBnb2luZyB0byBiZSBwbGF0Zm9ybS1zcGVjaWZpYyBoYXJkd2FyZS4gSSBuZWVkIHRvIHZlcmlmeSB0aGF0IHRoaXMgY29kZSBpcyBldmVuIGJ1aWx0IG9yIHByb2JlZCBvbiBhbWQ2NC4gTGV0JiMzOTtzIGdyZXAgdGhlIGNvZGUgZm9yIGFueSBDT05GSUcgb3B0aW9ucyB0aGF0IG1pZ2h0IHJlc3RyaWN0IGl0cyBidWlsZCBvciBydW50aW1lIGVudmlyb25tZW50LiBUaGlzIHNob3VsZCBnaXZlIG1lIGEgY2xlYXIgcGljdHVyZSBvZiBpdHMgYXBwbGljYWJpbGl0eSAob3IgbGFjayB0aGVyZW9mKSB0byB0aGUgYW1kNjQgYXJjaGl0ZWN0dXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA4IDA3OjMzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2R3bWFjLXNvY2ZwZ2EmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZT00Nj1zdG1tYWMtcGxhdGZvcm0tb2Jqczo9IHN0bW1hY19wbGF0Zm9ybS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTo0Nzpkd21hYy1hbHRyLXNvY2ZwZ2Etb2JqcyA6PSBkd21hYy1zb2NmcGdhLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTQ4LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA4IDA3OjMzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDY2ODMKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiAzNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIHNlZS4gTXkgZmlyc3QgdGhvdWdodCBpcyB0byBkaWcgaW50byB0aGUga2VybmVsIGNvbmZpZ3VyYXRpb24sIHNwZWNpZmljYWxseSB0byBzZWUgdGhlIHNldHRpbmdzIHJlbGF0ZWQgdG8gdGhlIEFsdGVyYS9JbnRlbCBTb0MgRlBHQSBFdGhlcm5ldCBjb250cm9sbGVyLCB3aGljaCBJICprbm93KiBpcyBvZnRlbiByZWZlcnJlZCB0byBhcyAmIzM5O2R3bWFjLWFsdHItc29jZnBnYSYjMzk7IGluIHRoZSBjb2RlYmFzZS4gSSYjMzk7bGwgbmVlZCB0byBjaGVjayB0aGUgcmVsZXZhbnQgS2NvbmZpZyBmaWxlLCB3aGljaCwgYmFzZWQgb24gbXkgZXhwZXJpZW5jZSwgaXMgbGlrZWx5IGxvY2F0ZWQgdW5kZXIgYGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWdgLiBUaW1lIHRvIGdldCBhIHF1aWNrIG92ZXJ2aWV3IG9mIHdoYXQgb3B0aW9ucyBhcmUgYXZhaWxhYmxlIGFuZCBob3cgdGhleSYjMzk7cmUgc2V0IHVwLiBUaGlzIHdpbGwgaGVscCBtZSB1bmRlcnN0YW5kIHdoYXQmIzM5O3MgY29uZmlndXJlZCwgYW5kIG1vcmUgaW1wb3J0YW50bHksIHdoYXQgaXNuJiMzOTt0LCBlc3BlY2lhbGx5IGlmIEkmIzM5O20gdHJvdWJsZXNob290aW5nIG9yIGludGVncmF0aW5nIHRoaXMgcGxhdGZvcm0uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDggMDc6MzM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7RFdNQUNfU09DRlBHQSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTkxPWNvbmZpZyBEV01BQ19TMzJcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIwMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjAzOmNvbmZpZyBEV01BQ19TT0NGUEdBXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIwNC1cdHRyaXN0YXRlIFwmIzM0O1NPQ0ZQR0EgZHdtYWMgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlPTI4PW9iai0kKENPTkZJR19EV01BQ19TMzIpXHRcdCYjNDM7PSBkd21hYy1zMzIub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6Mjk6b2JqLSQoQ09ORklHX0RXTUFDX1NPQ0ZQR0EpXHQmIzQzOz0gZHdtYWMtYWx0ci1zb2NmcGdhLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTMwLW9iai0kKENPTkZJR19EV01BQ19TT1BIR08pXHQmIzQzOz0gZHdtYWMtc29waGdvLm9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wOCAwNzozMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3MTcxCgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogMTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIHRoZSBvbmUgdGhpbmtpbmcgaXQ6CgoqKkRpdmluZyBpbnRvIHRoZSBEV01BQ19TT0NGUEdBIEtjb25maWcqKgoKQWxyaWdodCwgdGltZSB0byBkaWcgaW50byB0aGUgS2NvbmZpZyByZWxhdGVkIHRvIERXTUFDX1NPQ0ZQR0EuIEkgbmVlZCB0byBnZXQgYSBjbGVhciBwaWN0dXJlIG9mIGhvdyB0aGlzIHNwZWNpZmljIGhhcmR3YXJlIGFic3RyYWN0aW9uIGxheWVyIGlzIGNvbmZpZ3VyZWQgYW5kIGl0cyBkZXBlbmRlbmNpZXMgd2l0aGluIHRoZSBicm9hZGVyIGtlcm5lbCBjb25maWd1cmF0aW9uIGxhbmRzY2FwZS4gSSYjMzk7bGwgYmUgbG9va2luZyBmb3I6CgoqICAgKipLZXkgRGVwZW5kZW5jaWVzOioqIFdoYXQgb3RoZXIgS2NvbmZpZyBzeW1ib2xzIGRvZXMgRFdNQUNcX1NPQ0ZQR0EgZGVwZW5kIG9uPyBBcmUgdGhlcmUgc3BlY2lmaWMgYm9hcmQgY29uZmlndXJhdGlvbnMsIG90aGVyIGhhcmR3YXJlIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyYWwgZmVhdHVyZXMgdGhhdCBpdCByZXF1aXJlcyBvciBpcyBpbmNvbXBhdGlibGUgd2l0aD8gVW5kZXJzdGFuZGluZyB0aGVzZSBkZXBlbmRlbmNpZXMgd2lsbCBsZXQgbWUgYXNzZXNzIGl0cyBpbnRlZ3JhdGlvbiwgYW5kIHNlZSBpZiB0aGVyZSBhcmUgbWlzc2luZyBiaXRzLgoqICAgKipEZWZhdWx0IFZhbHVlcyBhbmQgT3B0aW9uczoqKiBXaGF0IGFyZSB0aGUgZGVmYXVsdCBzZXR0aW5ncyBmb3IgdGhpcz8gQXJlIHRoZXJlIGFueSBjb25maWd1cmFibGUgb3B0aW9ucz8gRG8gdGhleSBtYWtlIHNlbnNlPyBBcmUgdGhlIGRlZmF1bHQgdmFsdWVzIG9wdGltaXplZCBmb3IgdHlwaWNhbCBGUEdBLWJhc2VkIEV0aGVybmV0IE1BQyBpbXBsZW1lbnRhdGlvbnMgb3IgZG8gdGhleSBuZWVkIGFkanVzdG1lbnQ/CiogICAqKkNvbmRpdGlvbmFsIENvbXBpbGF0aW9uOioqIEhvdyBpcyBEV01BQ1xfU09DRlBHQSBjb25kaXRpb25hbGx5IGNvbXBpbGVkPyBBcmUgdGhlcmUgc3BlY2lmaWMgYGlmYCBvciBgc2VsZWN0YCBzdGF0ZW1lbnRzIHRoYXQgY29udHJvbCBpdHMgYXZhaWxhYmlsaXR5PyBUaGlzIHdpbGwgYWxsb3cgbWUgdG8gYXNzZXNzIGl0cyBjb3ZlcmFnZS4KKiAgICoqRG9jdW1lbnRhdGlvbiBhbmQgQ29tbWVudHM6KiogQXJlIHRoZXJlIGFueSBoZWxwZnVsIGNvbW1lbnRzIG9yIGRlc2NyaXB0aXZlIHRleHQgYXNzb2NpYXRlZCB3aXRoIERXTUFDXF9TT0NGUEdBPyBUaGlzIHdvdWxkIGJlIGEgYm9udXMgYW5kIHNhdmUgbWUgYSBsb3Qgb2YgdGltZS4KKiAgICoqUmVsYXRpb25zaGlwIHRvIG90aGVyIE1BQyBkcml2ZXJzOioqIEl0JiMzOTtzIGltcG9ydGFudCB0byB1bmRlcnN0YW5kIHdoZXJlIHRoZSBEV01BQ1xfU09DRlBHQSBkcml2ZXIgZml0cyBpbi4gSXMgaXQgZGVzaWduZWQgdG8gYmUgc3RhbmRhbG9uZSwgb3IgdG8gd29yayB3aXRoIG90aGVyIGRyaXZlcnM/IElzIGl0IGEgaGFyZHdhcmUgYWJzdHJhY3Rpb24gbGF5ZXIgb3ZlciBhIHN0YW5kYXJkIGRyaXZlcj8KCkJhc2ljYWxseSwgSSB3YW50IHRvIGZvcm0gYSBtZW50YWwgbW9kZWwgb2YgaG93IHRoZSBEV01BQ1xfU09DRlBHQSBjb25maWd1cmF0aW9uIGludGVncmF0ZXMgd2l0aCB0aGUgbGFyZ2VyIHBpY3R1cmUuIEkgd2FudCB0byBidWlsZCBhIGNvbmNlcHR1YWwgZnJhbWV3b3JrLCBzbyBJIGNhbiBtb3JlIHF1aWNrbHkgaWRlbnRpZnkgcG90ZW50aWFsIGNvbmZsaWN0cywgb3Bwb3J0dW5pdGllcyBmb3Igb3B0aW1pemF0aW9uLCBvciBhcmVhcyB3aGVyZSB0aGUgY29uZmlndXJhdGlvbiBpcyB1bmNsZWFyIG9yIGluY29tcGxldGUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDggMDc6MzM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMjAwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAyMDA6XHRcdCAgU09DcyBHTUFDIGV0aGVybmV0IGNvbnRyb2xsZXIsIGllLiBTMzJHMnh4LCBTMzJHM3h4IGFuZFxuIDIwMTpcdFx0ICBTMzJSNDUuXG4gMjAyOlx0XG4gMjAzOlx0Y29uZmlnIERXTUFDX1NPQ0ZQR0FcbiAyMDQ6XHRcdHRyaXN0YXRlIFwmIzM0O1NPQ0ZQR0EgZHdtYWMgc3VwcG9ydFwmIzM0O1xuIDIwNTpcdFx0ZGVmYXVsdCBBUkNIX0lOVEVMX1NPQ0ZQR0FcbiAyMDY6XHRcdGRlcGVuZHMgb24gT0YgXHUwMDI2XHUwMDI2IChBUkNIX0lOVEVMX1NPQ0ZQR0EgfHwgQ09NUElMRV9URVNUKVxuIDIwNzpcdFx0c2VsZWN0IE1GRF9TWVNDT05cbiAyMDg6XHRcdHNlbGVjdCBNRElPX1JFR01BUFxuIDIwOTpcdFx0c2VsZWN0IFJFR01BUF9NTUlPXG4gMjEwOlx0XHRzZWxlY3QgUENTX0xZTlhcbiAyMTE6XHRcdGhlbHBcbiAyMTI6XHRcdCAgU3VwcG9ydCBmb3IgZXRoZXJuZXQgY29udHJvbGxlciBvbiBBbHRlcmEgU09DRlBHQVxuIDIxMzpcdFxuIDIxNDpcdFx0ICBUaGlzIHNlbGVjdHMgdGhlIEFsdGVyYSBTT0NGUEdBIFNvQyBnbHVlIGxheWVyIHN1cHBvcnRcbiAyMTU6XHRcdCAgZm9yIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3JcbiAyMTY6XHRcdCAgYXJyaWE1IGFuZCBjeWNsb25lNSBGUEdBIFNvQ3MuXG4gMjE3Olx0XG4gMjE4Olx0Y29uZmlnIERXTUFDX1NPUEhHT1xuIDIxOTpcdFx0dHJpc3RhdGUgXCYjMzQ7U29waGdvIGR3bWFjIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wOCAwNzozMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3OTQ5CgkJCQkJCQlvdXRwdXQ6IDUwCgkJCQkJCQl0aG91Z2h0czogMTMyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgRFdNQUMgU09DRlBHQSBDb25maWd1cmF0aW9uKioKCkFscmlnaHQsIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIEZpcnN0LCBgQ09ORklHX0RXTUFDX1NPQ0ZQR0FgLiBUaGUgZGVwZW5kZW5jeSBpcyBgT0YgJmFtcDsmYW1wOyAoQVJDSF9JTlRFTF9TT0NGUEdBIHx8IENPTVBJTEVfVEVTVClgLiBTbywgaXQmIzM5O3MgdGllZCB0byBhbiAqT0YqIChkZXZpY2UgdHJlZSkgZW52aXJvbm1lbnQgYW5kIGVpdGhlciBhIHNwZWNpZmljIEludGVsIFNvQ0ZQR0EgYXJjaGl0ZWN0dXJlIG9yIGEgY29tcGlsYXRpb24gdGVzdC4gUmlnaHQgYXdheSwgSSYjMzk7bSB0aGlua2luZywgaXMgdGhpcyBhIHNwZWNpYWxpemVkIHBsYXRmb3JtIGRyaXZlciwgc3BlY2lmaWNhbGx5IGZvciwgc2F5LCBBZ2lsZXg1LCBDeWNsb25lNSwgQXJyaWExMCwgb3IgU3RyYXRpeDEwPwoKVG8gY29uZmlybSwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoZSBkcml2ZXIgYmVoYXZlcyBkdXJpbmcgcHJvYmluZy4gSSYjMzk7bGwgbmVlZCB0byBjaGVjayBpZiBgZHdtYWMtc29jZnBnYS5jYCByZWdpc3RlcnMgaXRzZWxmIGFzIGEgcGxhdGZvcm0gZHJpdmVyLiBUaGF0JiMzOTtzIHRoZSB0eXBpY2FsIHBhdHRlcm4gZm9yIHRoZXNlIGtpbmRzIG9mIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlcnMuIFRpbWUgdG8gZGl2ZSBpbnRvIHRoZSBjb2RlOiBJJiMzOTttIHB1bGxpbmcgdXAgYGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuY2Agbm93IHRvIHRha2UgYSBsb29rLiBJJiMzOTtsbCBmb2N1cyBvbiB0aGUgcHJvYmUgZnVuY3Rpb24gYW5kIHNlZSBpZiBpdCYjMzk7cyBoYW5kbGluZyB0aGUgZGV2aWNlIGluaXRpYWxpemF0aW9uIGFwcHJvcHJpYXRlbHkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA4IDA3OjMzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogNjQwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDcwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyA2NDA6XHRcdCAqIG1vZGUuIENyZWF0ZSBhIGNvcHkgb2YgdGhlIGNvcmUgcmVzZXQgaGFuZGxlIHNvIGl0IGNhbiBiZSB1c2VkIGJ5XG4gNjQxOlx0XHQgKiB0aGUgZHJpdmVyIGxhdGVyLlxuIDY0MjpcdFx0ICovXG4gNjQzOlx0XHRkd21hYy1cdTAwM2VzdG1tYWNfcnN0ID0gcGxhdF9kYXQtXHUwMDNlc3RtbWFjX3JzdDtcbiA2NDQ6XHRcdGR3bWFjLVx1MDAzZW9wcyA9IG9wcztcbiA2NDU6XHRcdGR3bWFjLVx1MDAzZXBsYXRfZGF0ID0gcGxhdF9kYXQ7XG4gNjQ2Olx0XG4gNjQ3Olx0XHRwbGF0X2RhdC1cdTAwM2Vic3BfcHJpdiA9IGR3bWFjO1xuIDY0ODpcdFx0cGxhdF9kYXQtXHUwMDNlZml4X21hY19zcGVlZCA9IHNvY2ZwZ2FfZHdtYWNfZml4X21hY19zcGVlZDtcbiA2NDk6XHRcdHBsYXRfZGF0LVx1MDAzZWluaXQgPSBzb2NmcGdhX2R3bWFjX2luaXQ7XG4gNjUwOlx0XHRwbGF0X2RhdC1cdTAwM2VwY3NfaW5pdCA9IHNvY2ZwZ2FfZHdtYWNfcGNzX2luaXQ7XG4gNjUxOlx0XHRwbGF0X2RhdC1cdTAwM2VwY3NfZXhpdCA9IHNvY2ZwZ2FfZHdtYWNfcGNzX2V4aXQ7XG4gNjUyOlx0XHRwbGF0X2RhdC1cdTAwM2VzZWxlY3RfcGNzID0gc29jZnBnYV9kd21hY19zZWxlY3RfcGNzO1xuIDY1MzpcdFxuIDY1NDpcdFx0ZHdtYWMtXHUwMDNlbWFjX2ludGVyZmFjZSA9IHBsYXRfZGF0LVx1MDAzZXBoeV9pbnRlcmZhY2U7XG4gNjU1Olx0XG4gNjU2Olx0XHRvcHMtXHUwMDNlc2V0dXBfcGxhdF9kYXQoZHdtYWMpO1xuIDY1NzpcdFxuIDY1ODpcdFx0cmV0dXJuIGRldm1fc3RtbWFjX3BsdGZyX3Byb2JlKHBkZXYsIHBsYXRfZGF0LCBcdTAwMjZzdG1tYWNfcmVzKTtcbiA2NTk6XHR9XG4gNjYwOlx0XG4gNjYxOlx0c3RhdGljIGNvbnN0IHN0cnVjdCBzb2NmcGdhX2R3bWFjX29wcyBzb2NmcGdhX2dlbjVfb3BzID0ge1xuIDY2MjpcdFx0LnNldF9waHlfbW9kZSA9IHNvY2ZwZ2FfZ2VuNV9zZXRfcGh5X21vZGUsXG4gNjYzOlx0XHQuc2V0dXBfcGxhdF9kYXQgPSBzb2NmcGdhX2dlbjVfc2V0dXBfcGxhdF9kYXQsXG4gNjY0Olx0fTtcbiA2NjU6XHRcbiA2NjY6XHRzdGF0aWMgY29uc3Qgc3RydWN0IHNvY2ZwZ2FfZHdtYWNfb3BzIHNvY2ZwZ2FfZ2VuMTBfb3BzID0ge1xuIDY2NzpcdFx0LnNldF9waHlfbW9kZSA9IHNvY2ZwZ2FfZ2VuMTBfc2V0X3BoeV9tb2RlLFxuIDY2ODpcdFx0LnNldHVwX3BsYXRfZGF0ID0gc29jZnBnYV9nZW41X3NldHVwX3BsYXRfZGF0LFxuIDY2OTpcdH07XG4gNjcwOlx0XG4gNjcxOlx0c3RhdGljIGNvbnN0IHN0cnVjdCBzb2NmcGdhX2R3bWFjX29wcyBzb2NmcGdhX2FnaWxleDVfb3BzID0ge1xuIDY3MjpcdFx0LnNldF9waHlfbW9kZSA9IHNvY2ZwZ2FfZ2VuMTBfc2V0X3BoeV9tb2RlLFxuIDY3MzpcdFx0LnNldHVwX3BsYXRfZGF0ID0gc29jZnBnYV9hZ2lsZXg1X3NldHVwX3BsYXRfZGF0LFxuIDY3NDpcdH07XG4gNjc1Olx0XG4gNjc2Olx0c3RhdGljIHZvaWQgc29jZnBnYV9hZ2lsZXg1X3Rzbl9nbWFjX3NldHVwX3BsYXRfZGF0KHN0cnVjdCBzb2NmcGdhX2R3bWFjICpkd21hYylcbiA2Nzc6XHR7XG4gNjc4Olx0XHRzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXRfZGF0ID0gZHdtYWMtXHUwMDNlcGxhdF9kYXQ7XG4gNjc5Olx0XG4gNjgwOlx0XHRzb2NmcGdhX2FnaWxleDVfc2V0dXBfcGxhdF9kYXQoZHdtYWMpO1xuIDY4MTpcdFxuIDY4MjpcdFx0LyogRlBHQSBjb252ZXJ0ZXIgc3VwcGxpZXMgUkdNSUkgZGVsYXlzOyBNQUMgdXNlcyBHTUlJLCBQSFkgZ2V0cyBwbGFpbiBSR01JSSAqL1xuIDY4MzpcdFx0ZHdtYWMtXHUwMDNlbWFjX2ludGVyZmFjZSA9IFBIWV9JTlRFUkZBQ0VfTU9ERV9HTUlJO1xuIDY4NDpcdFx0aWYgKHBoeV9pbnRlcmZhY2VfbW9kZV9pc19yZ21paShwbGF0X2RhdC1cdTAwM2VwaHlfaW50ZXJmYWNlKSlcbiA2ODU6XHRcdFx0cGxhdF9kYXQtXHUwMDNlcGh5X2ludGVyZmFjZSA9IFBIWV9JTlRFUkZBQ0VfTU9ERV9SR01JSTtcbiA2ODY6XHR9XG4gNjg3Olx0XG4gNjg4Olx0c3RhdGljIGNvbnN0IHN0cnVjdCBzb2NmcGdhX2R3bWFjX29wcyBzb2NmcGdhX2FnaWxleDVfdHNuX2dtYWNfb3BzID0ge1xuIDY4OTpcdFx0LnNldF9waHlfbW9kZSA9IHNvY2ZwZ2FfZ2VuMTBfc2V0X3BoeV9tb2RlLFxuIDY5MDpcdFx0LnNldHVwX3BsYXRfZGF0ID0gc29jZnBnYV9hZ2lsZXg1X3Rzbl9nbWFjX3NldHVwX3BsYXRfZGF0LFxuIDY5MTpcdH07XG4gNjkyOlx0XG4gNjkzOlx0c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgc29jZnBnYV9kd21hY19tYXRjaFtdID0ge1xuIDY5NDpcdFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O2FsdHIsc29jZnBnYS1zdG1tYWNcJiMzNDssIC5kYXRhID0gXHUwMDI2c29jZnBnYV9nZW41X29wcyB9LFxuIDY5NTpcdFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O2FsdHIsc29jZnBnYS1zdG1tYWMtYTEwLXMxMFwmIzM0OywgLmRhdGEgPSBcdTAwMjZzb2NmcGdhX2dlbjEwX29wcyB9LFxuIDY5NjpcdFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O2FsdHIsc29jZnBnYS1zdG1tYWMtYWdpbGV4NVwmIzM0OywgLmRhdGEgPSBcdTAwMjZzb2NmcGdhX2FnaWxleDVfb3BzIH0sXG4gNjk3Olx0XHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7YWx0cixzb2NmcGdhLXN0bW1hYy1hZ2lsZXg1LXRzblwmIzM0OywgLmRhdGEgPSBcdTAwMjZzb2NmcGdhX2FnaWxleDVfdHNuX2dtYWNfb3BzIH0sXG4gNjk4Olx0XHR7IH1cbiA2OTk6XHR9O1xuIDcwMDpcdE1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHNvY2ZwZ2FfZHdtYWNfbWF0Y2gpO1xuIDcwMTpcdFxuIDcwMjpcdHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHNvY2ZwZ2FfZHdtYWNfZHJpdmVyID0ge1xuIDcwMzpcdFx0LnByb2JlICA9IHNvY2ZwZ2FfZHdtYWNfcHJvYmUsXG4gNzA0Olx0XHQuZHJpdmVyID0ge1xuIDcwNTpcdFx0XHQubmFtZSAgICAgICAgICAgPSBcJiMzNDtzb2NmcGdhLWR3bWFjXCYjMzQ7LFxuIDcwNjpcdFx0XHQucG1cdFx0PSBcdTAwMjZzdG1tYWNfcGx0ZnJfcG1fb3BzLFxuIDcwNzpcdFx0XHQub2ZfbWF0Y2hfdGFibGUgPSBzb2NmcGdhX2R3bWFjX21hdGNoLFxuIDcwODpcdFx0fSxcbiA3MDk6XHR9O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wOCAwNzozMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA5Nzg1CgkJCQkJCQlvdXRwdXQ6IDk4CgkJCQkJCQl0aG91Z2h0czogNTY2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlJlYWNoYWJpbGl0eSBBbmFseXNpcyBmb3IgYW1kNjQgQXJjaGl0ZWN0dXJlKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIFdlJiMzOTtyZSBsb29raW5nIGF0IHJlYWNoYWJpbGl0eSBmb3IgYW4gYW1kNjQgdGFyZ2V0LCBhbmQgdGhpcyBwYXRjaCBoYXMgYSBmZXcgcmVkIGZsYWdzLiBGaXJzdCwgd2Ugc2VlIGRvY3VtZW50YXRpb24gYW5kIERUUyBmaWxlcyB0aGF0IHNlZW0gZm9jdXNlZCBvbiBBUk02NCwgcGFydGljdWxhcmx5IGZvciBJbnRlbC9BbHRlcmEgU29DRlBHQSBzeXN0ZW1zLiBUaGUgYGR3bWFjLXNvY2ZwZ2EuY2AgZHJpdmVyIGlzIGEgZGVhZCBnaXZlYXdheSDigJMgaXQmIzM5O3MgYW4gT0YgcGxhdGZvcm0gZHJpdmVyLCBkZXNpZ25lZCB0byB3b3JrIHdpdGggdGhvc2Ugc3BlY2lmaWMgU29DRlBHQSBTb0NzLiBDcnVjaWFsbHksIG9uIGFtZDY0LCB3ZSBkb24mIzM5O3QgaGF2ZSB0aGF0IGhhcmR3YXJlLiBObyBTb0NGUEdBIERldmljZSBUcmVlIG5vZGVzIGV4aXN0LCBhbmQgdGhleSBhcmVuJiMzOTt0IGVtdWxhdGVkIGluIHRoZSB1c3VhbCBRRU1VIG9yIEdDRSBlbnZpcm9ubWVudHMuIE5vdCBldmVuIHdpdGggYENPTkZJR19DT01QSUxFX1RFU1RgIHdvdWxkIHRoaXMgY29kZSBiZSBhYmxlIHRvICpkbyogYW55dGhpbmcuCgpTZWN0aW9uIDIgY29uZmlybXMgbXkgc3VzcGljaW9uLCBwb2ludGluZyBvdXQgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlIGxpa2UgdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoZXMsIFNtYXJ0TklDcywgb3IgR1BVIGRyaXZlcnMgdGhhdCByZXF1aXJlIHNwZWNpZmljIHBoeXNpY2FsIGNvbXBvbmVudHMuIFNlY3Rpb24gMSBkcml2ZXMgdGhlIHBvaW50IGhvbWUgLSBmdXp6aW5nIGhpbmdlcyBvbiAqZXhlY3V0YWJsZSogY29kZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBzZXR1cHMuIElmIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSwgYXMgdGhpcyBjZXJ0YWlubHkgYXBwZWFycyB0byBiZSwgaXQmIzM5O3MgYSBuby1nbyBmb3IgZnV6emluZywgcmVnYXJkbGVzcyBvZiBob3cgY29tcGxleCBvciBhc3NlcnRpb24tbGFkZW4gaXQgbWlnaHQgYmUuCgpUaGVyZWZvcmUsIGJlY2F1c2UgdGhpcyBkcml2ZXIgYW5kIGFzc29jaWF0ZWQgRGV2aWNlIFRyZWUgY29uZmlndXJhdGlvbnMgYXJlIHNwZWNpZmljIHRvIGFuIGFyY2hpdGVjdHVyZSBhbmQgaGFyZHdhcmUgbm90IHByZXNlbnQgaW4gdGhlIHRhcmdldCBlbnZpcm9ubWVudCwgZnV6emluZyBpcyBhIHdhc3RlIG9mIHRpbWUgYW5kIHJlc291cmNlcy4gU28sIHRoZSBgV29ydGhGdXp6aW5nYCBwYXJhbWV0ZXIgc2hvdWxkIGJlIHNldCB0byBgZmFsc2VgLiBObyBzcGVjaWZpYyBjb25maWd1cmF0aW9ucyBuZWVkIGVuYWJsaW5nLCBhbmQgdGhlcmUgYXJlIG5vIHNwZWNpZmljIHN5bWJvbHMgb2YgaW50ZXJlc3Qgc2luY2UgdGhlIGNvZGUgY2Fubm90IGJlIGV4ZWN1dGVkLiBUaGUgYFJlYXNvbmluZ2AgcGFyYW1ldGVyIHdpbGwgYmUgc2V0IHRvIGEgY29uY2lzZSBleHBsYW5hdGlvbiBvZiB0aGUgc2l0dWF0aW9uLiBMZXQmIzM5O3MgY2FsbCBgc2V0LXJlc3VsdHNgIHdpdGggdGhlc2UgcGFyYW1ldGVycy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDggMDc6MzM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBEZXZpY2V0cmVlIGJpbmRpbmdzLCBBUk02NCBEVFMgZmlsZXMsIGFuZCB0aGUgZHdtYWMtc29jZnBnYSBwbGF0Zm9ybSBFdGhlcm5ldCBkcml2ZXIgZm9yIEludGVsL0FsdGVyYSBTb0NGUEdBIFNvQ3MuIFRoaXMgZHJpdmVyIGlzIHRpZWQgdG8gc3BlY2lmaWMgQVJNL0FSTTY0IFNvQyBEZXZpY2V0cmVlIGhhcmR3YXJlIGFuZCBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgb24gdGhlIGFtZDY0IHRhcmdldCBhcmNoaXRlY3R1cmUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBEZXZpY2V0cmVlIGJpbmRpbmdzLCBBUk02NCBEVFMgZmlsZXMsIGFuZCB0aGUgZHdtYWMtc29jZnBnYSBwbGF0Zm9ybSBFdGhlcm5ldCBkcml2ZXIgZm9yIEludGVsL0FsdGVyYSBTb0NGUEdBIFNvQ3MuIFRoaXMgZHJpdmVyIGlzIHRpZWQgdG8gc3BlY2lmaWMgQVJNL0FSTTY0IFNvQyBEZXZpY2V0cmVlIGhhcmR3YXJlIGFuZCBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgb24gdGhlIGFtZDY0IHRhcmdldCBhcmNoaXRlY3R1cmUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wOCAwNzozMzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+SWY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDktMDhUMDc6MzI6NTcuMTU0NTAwMjg2WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTk1NDU3Nzg5MjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJcIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBEZXZpY2V0cmVlIGJpbmRpbmdzLCBBUk02NCBEVFMgZmlsZXMsIGFuZCB0aGUgZHdtYWMtc29jZnBnYSBwbGF0Zm9ybSBFdGhlcm5ldCBkcml2ZXIgZm9yIEludGVsL0FsdGVyYSBTb0NGUEdBIFNvQ3MuIFRoaXMgZHJpdmVyIGlzIHRpZWQgdG8gc3BlY2lmaWMgQVJNL0FSTTY0IFNvQyBEZXZpY2V0cmVlIGhhcmR3YXJlIGFuZCBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgb24gdGhlIGFtZDY0IHRhcmdldCBhcmNoaXRlY3R1cmUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wOFQwNzozMjo1Ny4xNTQ1MDUwNTdaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU1NDEyMjA2MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDA2ZGM3OGQwZTZiMWMxNThkNmYyZDFiMzhhNzQ5NjQ0NmM2MzY1NzBcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFR1ZSBTZXAgOCAwNzozMjo1NiAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL2FsdGVyYS55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9hbHRlcmEueWFtbFxcbmluZGV4IDMwMzBjZjQ2ZmU3NGMuLmU0MzE0NjlhNzE3NTMgMTAwNjQ0XFxuLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9hbHRlcmEueWFtbFxcbisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vYWx0ZXJhLnlhbWxcXG5AQCAtMTE0LDYgKzExNCw3IEBAIHByb3BlcnRpZXM6XFxuICAgICAgICAgICAgICAgLSBpbnRlbCxzb2NmcGdhLWFnaWxleDUtc29jZGstZGVidWdcXG4gICAgICAgICAgICAgICAtIGludGVsLHNvY2ZwZ2EtYWdpbGV4NS1zb2Nkay1tb2R1bGFyXFxuICAgICAgICAgICAgICAgLSBpbnRlbCxzb2NmcGdhLWFnaWxleDUtc29jZGstbmFuZFxcbisgICAgICAgICAgICAgIC0gaW50ZWwsc29jZnBnYS1hZ2lsZXg1LXNvY2RrLXRzbi1jZmcyXFxuICAgICAgICAgICAtIGNvbnN0OiBpbnRlbCxzb2NmcGdhLWFnaWxleDVcXG4gXFxuICAgICAgIC0gZGVzY3JpcHRpb246IEFnaWxleDcyIGJvYXJkc1xcbmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sXFxuaW5kZXggNjMwODRmNzYyMzczOC4uMmMyN2JmZDVhZjg5MiAxMDA2NDRcXG4tLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbFxcbisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sXFxuQEAgLTI0LDYgKzI0LDcgQEAgc2VsZWN0OlxcbiAgICAgICAgICAgLSBhbHRyLHNvY2ZwZ2Etc3RtbWFjXFxuICAgICAgICAgICAtIGFsdHIsc29jZnBnYS1zdG1tYWMtYTEwLXMxMFxcbiAgICAgICAgICAgLSBhbHRyLHNvY2ZwZ2Etc3RtbWFjLWFnaWxleDVcXG4rICAgICAgICAgIC0gYWx0cixzb2NmcGdhLXN0bW1hYy1hZ2lsZXg1LXRzblxcbiBcXG4gICByZXF1aXJlZDpcXG4gICAgIC0gY29tcGF0aWJsZVxcbkBAIC00NCw3ICs0NSw5IEBAIHByb3BlcnRpZXM6XFxuICAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjLTMuNzRhXFxuICAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjXFxuICAgICAgIC0gaXRlbXM6XFxuLSAgICAgICAgICAtIGNvbnN0OiBhbHRyLHNvY2ZwZ2Etc3RtbWFjLWFnaWxleDVcXG4rICAgICAgICAgIC0gZW51bTpcXG4rICAgICAgICAgICAgICAtIGFsdHIsc29jZnBnYS1zdG1tYWMtYWdpbGV4NVxcbisgICAgICAgICAgICAgIC0gYWx0cixzb2NmcGdhLXN0bW1hYy1hZ2lsZXg1LXRzblxcbiAgICAgICAgICAgLSBjb25zdDogc25wcyxkd3hnbWFjLTIuMTBcXG4gXFxuICAgY2xvY2tzOlxcbmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2Jvb3QvZHRzL2ludGVsL01ha2VmaWxlIGIvYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9NYWtlZmlsZVxcbmluZGV4IDI3MGM3MGZkZjA4NGIuLmNlN2NmM2E2MzI3NTMgMTAwNjQ0XFxuLS0tIGEvYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9NYWtlZmlsZVxcbisrKyBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvTWFrZWZpbGVcXG5AQCAtOCw2ICs4LDcgQEAgZHRiLSQoQ09ORklHX0FSQ0hfSU5URUxfU09DRlBHQSkgKz0gc29jZnBnYV9hZ2lsZXhfbjYwMDAuZHRiIFxcXFxcXG4gXFx0XFx0XFx0XFx0c29jZnBnYV9hZ2lsZXg1X3NvY2RrXzAxM2IuZHRiIFxcXFxcXG4gXFx0XFx0XFx0XFx0c29jZnBnYV9hZ2lsZXg1X3NvY2RrX21vZHVsYXIuZHRiIFxcXFxcXG4gXFx0XFx0XFx0XFx0c29jZnBnYV9hZ2lsZXg1X3NvY2RrX25hbmQuZHRiIFxcXFxcXG4rXFx0XFx0XFx0XFx0c29jZnBnYV9hZ2lsZXg1X3NvY2RrX3Rzbl9jZmcyLmR0YiBcXFxcXFxuIFxcdFxcdFxcdFxcdHNvY2ZwZ2FfYWdpbGV4NzJfc29jZGsuZHRiIFxcXFxcXG4gXFx0XFx0XFx0XFx0c29jZnBnYV9hZ2lsZXg3bV9zb2Nkay5kdGIgXFxcXFxcbiBcXHRcXHRcXHRcXHRzb2NmcGdhX241eF9zb2Nkay5kdGJcXG5kaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9zb2NmcGdhX2FnaWxleDVfc29jZGtfdHNuX2NmZzIuZHRzIGIvYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9zb2NmcGdhX2FnaWxleDVfc29jZGtfdHNuX2NmZzIuZHRzXFxubmV3IGZpbGUgbW9kZSAxMDA2NDRcXG5pbmRleCAwMDAwMDAwMDAwMDAwLi45ZDM5Zjg0M2I0MjQwXFxuLS0tIC9kZXYvbnVsbFxcbisrKyBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvc29jZnBnYV9hZ2lsZXg1X3NvY2RrX3Rzbl9jZmcyLmR0c1xcbkBAIC0wLDAgKzEsMTMwIEBAXFxuKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG4rLypcXG4rICogQ29weXJpZ2h0IChDKSAyMDI2LCBBbHRlcmEgQ29ycG9yYXRpb25cXG4rICovXFxuKyNpbmNsdWRlIFxcXCJzb2NmcGdhX2FnaWxleDUuZHRzaVxcXCJcXG4rXFxuKy8ge1xcbitcXHRtb2RlbCA9IFxcXCJTb0NGUEdBIEFnaWxleDUgU29DREsgVFNOIENvbmZpZzJcXFwiO1xcbitcXHRjb21wYXRpYmxlID0gXFxcImludGVsLHNvY2ZwZ2EtYWdpbGV4NS1zb2Nkay10c24tY2ZnMlxcXCIsIFxcXCJpbnRlbCxzb2NmcGdhLWFnaWxleDVcXFwiO1xcbitcXG4rXFx0YWxpYXNlcyB7XFxuK1xcdFxcdHNlcmlhbDAgPSBcXHUwMDI2dWFydDA7XFxuK1xcdFxcdGV0aGVybmV0MSA9IFxcdTAwMjZnbWFjMTtcXG4rXFx0XFx0ZXRoZXJuZXQyID0gXFx1MDAyNmdtYWMyO1xcbitcXHR9O1xcbitcXG4rXFx0Y2hvc2VuIHtcXG4rXFx0XFx0c3Rkb3V0LXBhdGggPSBcXFwic2VyaWFsMDoxMTUyMDBuOFxcXCI7XFxuK1xcdH07XFxuK1xcbitcXHRsZWRzIHtcXG4rXFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJncGlvLWxlZHNcXFwiO1xcbitcXG4rXFx0XFx0bGVkLTAge1xcbitcXHRcXHRcXHRsYWJlbCA9IFxcXCJocHNfbGVkMFxcXCI7XFxuK1xcdFxcdFxcdGdwaW9zID0gXFx1MDAzY1xcdTAwMjZwb3J0YSAxMSBHUElPX0FDVElWRV9ISUdIXFx1MDAzZTtcXG4rXFx0XFx0fTtcXG4rXFxuK1xcdH07XFxuK1xcbitcXHRtZW1vcnlAODAwMDAwMDAge1xcbitcXHRcXHRkZXZpY2VfdHlwZSA9IFxcXCJtZW1vcnlcXFwiO1xcbitcXHRcXHQvKiBXZSBleHBlY3QgdGhlIGJvb3Rsb2FkZXIgdG8gZmlsbCBpbiB0aGUgcmVnICovXFxuK1xcdFxcdHJlZyA9IFxcdTAwM2MweDAgMHg4MDAwMDAwMCAweDAgMHgwXFx1MDAzZTtcXG4rXFx0fTtcXG4rfTtcXG4rXFxuK1xcdTAwMjZncGlvMCB7XFxuK1xcdHN0YXR1cyA9IFxcXCJva2F5XFxcIjtcXG4rfTtcXG4rXFxuK1xcdTAwMjZncGlvMSB7XFxuK1xcdHN0YXR1cyA9IFxcXCJva2F5XFxcIjtcXG4rfTtcXG4rXFxuK1xcdTAwMjZnbWFjMSB7XFxuK1xcdHN0YXR1cyA9IFxcXCJva2F5XFxcIjtcXG4rXFx0Y29tcGF0aWJsZSA9IFxcXCJhbHRyLHNvY2ZwZ2Etc3RtbWFjLWFnaWxleDUtdHNuXFxcIixcXG4rXFx0XFx0ICAgICBcXFwic25wcyxkd3hnbWFjLTIuMTBcXFwiO1xcbitcXHRwaHktbW9kZSA9IFxcXCJyZ21paS1pZFxcXCI7XFxuK1xcdHBoeS1oYW5kbGUgPSBcXHUwMDNjXFx1MDAyNmVtYWMxX3BoeTBcXHUwMDNlO1xcbitcXHRtYXgtZnJhbWUtc2l6ZSA9IFxcdTAwM2M5MDAwXFx1MDAzZTtcXG4rXFxuK1xcdG1kaW8wIHtcXG4rXFx0XFx0I2FkZHJlc3MtY2VsbHMgPSBcXHUwMDNjMVxcdTAwM2U7XFxuK1xcdFxcdCNzaXplLWNlbGxzID0gXFx1MDAzYzBcXHUwMDNlO1xcbitcXHRcXHRjb21wYXRpYmxlID0gXFxcInNucHMsZHdtYWMtbWRpb1xcXCI7XFxuK1xcbitcXHRcXHRlbWFjMV9waHkwOiBldGhlcm5ldC1waHlAMCB7XFxuK1xcdFxcdFxcdHJlZyA9IFxcdTAwM2MwXFx1MDAzZTtcXG4rXFx0XFx0fTtcXG4rXFx0fTtcXG4rfTtcXG4rXFxuK1xcdTAwMjZnbWFjMiB7XFxuK1xcdHN0YXR1cyA9IFxcXCJva2F5XFxcIjtcXG4rXFx0cGh5LW1vZGUgPSBcXFwicmdtaWktaWRcXFwiO1xcbitcXHRwaHktaGFuZGxlID0gXFx1MDAzY1xcdTAwMjZlbWFjMl9waHkwXFx1MDAzZTtcXG4rXFx0bWF4LWZyYW1lLXNpemUgPSBcXHUwMDNjOTAwMFxcdTAwM2U7XFxuK1xcbitcXHRtZGlvMCB7XFxuK1xcdFxcdCNhZGRyZXNzLWNlbGxzID0gXFx1MDAzYzFcXHUwMDNlO1xcbitcXHRcXHQjc2l6ZS1jZWxscyA9IFxcdTAwM2MwXFx1MDAzZTtcXG4rXFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzbnBzLGR3bWFjLW1kaW9cXFwiO1xcbitcXG4rXFx0XFx0ZW1hYzJfcGh5MDogZXRoZXJuZXQtcGh5QDAge1xcbitcXHRcXHRcXHRyZWcgPSBcXHUwMDNjMFxcdTAwM2U7XFxuK1xcdFxcdH07XFxuK1xcdH07XFxuK307XFxuK1xcbitcXHUwMDI2b3NjMSB7XFxuK1xcdGNsb2NrLWZyZXF1ZW5jeSA9IFxcdTAwM2MyNTAwMDAwMFxcdTAwM2U7XFxuK307XFxuK1xcbitcXHUwMDI2cXNwaSB7XFxuK1xcdHN0YXR1cyA9IFxcXCJva2F5XFxcIjtcXG4rXFx0Zmxhc2hAMCB7XFxuK1xcdFxcdGNvbXBhdGlibGUgPSBcXFwibWljcm9uLG10MjVxdTAyZ1xcXCIsIFxcXCJqZWRlYyxzcGktbm9yXFxcIjtcXG4rXFx0XFx0cmVnID0gXFx1MDAzYzBcXHUwMDNlO1xcbitcXHRcXHRzcGktbWF4LWZyZXF1ZW5jeSA9IFxcdTAwM2MxMDAwMDAwMDBcXHUwMDNlO1xcbitcXHRcXHRtMjVwLGZhc3QtcmVhZDtcXG4rXFx0XFx0Y2RucyxyZWFkLWRlbGF5ID0gXFx1MDAzYzJcXHUwMDNlO1xcbitcXHRcXHRjZG5zLHRzaHNsLW5zID0gXFx1MDAzYzUwXFx1MDAzZTtcXG4rXFx0XFx0Y2Rucyx0c2QyZC1ucyA9IFxcdTAwM2M1MFxcdTAwM2U7XFxuK1xcdFxcdGNkbnMsdGNoc2gtbnMgPSBcXHUwMDNjNFxcdTAwM2U7XFxuK1xcdFxcdGNkbnMsdHNsY2gtbnMgPSBcXHUwMDNjNFxcdTAwM2U7XFxuK1xcdFxcdHNwaS10eC1idXMtd2lkdGggPSBcXHUwMDNjNFxcdTAwM2U7XFxuK1xcdFxcdHNwaS1yeC1idXMtd2lkdGggPSBcXHUwMDNjNFxcdTAwM2U7XFxuK1xcbitcXHRcXHRwYXJ0aXRpb25zIHtcXG4rXFx0XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJmaXhlZC1wYXJ0aXRpb25zXFxcIjtcXG4rXFx0XFx0XFx0I2FkZHJlc3MtY2VsbHMgPSBcXHUwMDNjMVxcdTAwM2U7XFxuK1xcdFxcdFxcdCNzaXplLWNlbGxzID0gXFx1MDAzYzFcXHUwMDNlO1xcbitcXG4rXFx0XFx0XFx0cXNwaV9ib290OiBwYXJ0aXRpb25AMCB7XFxuK1xcdFxcdFxcdFxcdGxhYmVsID0gXFxcInUtYm9vdFxcXCI7XFxuK1xcdFxcdFxcdFxcdHJlZyA9IFxcdTAwM2MweDAgMHgwNDIwMDAwMFxcdTAwM2U7XFxuK1xcdFxcdFxcdH07XFxuK1xcbitcXHRcXHRcXHRyb290OiBwYXJ0aXRpb25ANDIwMDAwMCB7XFxuK1xcdFxcdFxcdFxcdGxhYmVsID0gXFxcInJvb3RcXFwiO1xcbitcXHRcXHRcXHRcXHRyZWcgPSBcXHUwMDNjMHgwNDIwMDAwMCAweDBiZTAwMDAwXFx1MDAzZTtcXG4rXFx0XFx0XFx0fTtcXG4rXFx0XFx0fTtcXG4rXFx0fTtcXG4rfTtcXG4rXFxuK1xcdTAwMjZ1YXJ0MCB7XFxuK1xcdHN0YXR1cyA9IFxcXCJva2F5XFxcIjtcXG4rfTtcXG4rXFxuK1xcdTAwMjZ1c2IwIHtcXG4rXFx0c3RhdHVzID0gXFxcIm9rYXlcXFwiO1xcbitcXHRkaXNhYmxlLW92ZXItY3VycmVudDtcXG4rfTtcXG4rXFxuK1xcdTAwMjZ3YXRjaGRvZzAge1xcbitcXHRzdGF0dXMgPSBcXFwib2theVxcXCI7XFxuK307XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuY1xcbmluZGV4IDFkN2YwYTU3ZDI4ODkuLjA2MzIxMDViNDIwZjEgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jXFxuQEAgLTY5LDEyICs2OSwxMyBAQCBzdHJ1Y3Qgc29jZnBnYV9kd21hYyB7XFxuIFxcdHZvaWQgX19pb21lbSAqdHNlX3Bjc19iYXNlO1xcbiBcXHR2b2lkIF9faW9tZW0gKnNnbWlpX2FkYXB0ZXJfYmFzZTtcXG4gXFx0Ym9vbCBmMmhfcHRwX3JlZl9jbGs7XFxuK1xcdHBoeV9pbnRlcmZhY2VfdCBtYWNfaW50ZXJmYWNlO1xcbiBcXHRjb25zdCBzdHJ1Y3Qgc29jZnBnYV9kd21hY19vcHMgKm9wcztcXG4gfTtcXG4gXFxuIHN0YXRpYyBwaHlfaW50ZXJmYWNlX3Qgc29jZnBnYV9nZXRfcGxhdF9waHltb2RlKHN0cnVjdCBzb2NmcGdhX2R3bWFjICpkd21hYylcXG4ge1xcbi1cXHRyZXR1cm4gZHdtYWMtXFx1MDAzZXBsYXRfZGF0LVxcdTAwM2VwaHlfaW50ZXJmYWNlO1xcbitcXHRyZXR1cm4gZHdtYWMtXFx1MDAzZW1hY19pbnRlcmZhY2U7XFxuIH1cXG4gXFxuIHN0YXRpYyB2b2lkIHNvY2ZwZ2Ffc2dtaWlfY29uZmlnKHN0cnVjdCBzb2NmcGdhX2R3bWFjICpkd21hYywgYm9vbCBlbmFibGUpXFxuQEAgLTY1MCw2ICs2NTEsOCBAQCBzdGF0aWMgaW50IHNvY2ZwZ2FfZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4gXFx0cGxhdF9kYXQtXFx1MDAzZXBjc19leGl0ID0gc29jZnBnYV9kd21hY19wY3NfZXhpdDtcXG4gXFx0cGxhdF9kYXQtXFx1MDAzZXNlbGVjdF9wY3MgPSBzb2NmcGdhX2R3bWFjX3NlbGVjdF9wY3M7XFxuIFxcbitcXHRkd21hYy1cXHUwMDNlbWFjX2ludGVyZmFjZSA9IHBsYXRfZGF0LVxcdTAwM2VwaHlfaW50ZXJmYWNlO1xcbitcXG4gXFx0b3BzLVxcdTAwM2VzZXR1cF9wbGF0X2RhdChkd21hYyk7XFxuIFxcbiBcXHRyZXR1cm4gZGV2bV9zdG1tYWNfcGx0ZnJfcHJvYmUocGRldiwgcGxhdF9kYXQsIFxcdTAwMjZzdG1tYWNfcmVzKTtcXG5AQCAtNjcwLDEwICs2NzMsMjggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzb2NmcGdhX2R3bWFjX29wcyBzb2NmcGdhX2FnaWxleDVfb3BzID0ge1xcbiBcXHQuc2V0dXBfcGxhdF9kYXQgPSBzb2NmcGdhX2FnaWxleDVfc2V0dXBfcGxhdF9kYXQsXFxuIH07XFxuIFxcbitzdGF0aWMgdm9pZCBzb2NmcGdhX2FnaWxleDVfdHNuX2dtYWNfc2V0dXBfcGxhdF9kYXQoc3RydWN0IHNvY2ZwZ2FfZHdtYWMgKmR3bWFjKVxcbit7XFxuK1xcdHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQgPSBkd21hYy1cXHUwMDNlcGxhdF9kYXQ7XFxuK1xcbitcXHRzb2NmcGdhX2FnaWxleDVfc2V0dXBfcGxhdF9kYXQoZHdtYWMpO1xcbitcXG4rXFx0LyogRlBHQSBjb252ZXJ0ZXIgc3VwcGxpZXMgUkdNSUkgZGVsYXlzOyBNQUMgdXNlcyBHTUlJLCBQSFkgZ2V0cyBwbGFpbiBSR01JSSAqL1xcbitcXHRkd21hYy1cXHUwMDNlbWFjX2ludGVyZmFjZSA9IFBIWV9JTlRFUkZBQ0VfTU9ERV9HTUlJO1xcbitcXHRpZiAocGh5X2ludGVyZmFjZV9tb2RlX2lzX3JnbWlpKHBsYXRfZGF0LVxcdTAwM2VwaHlfaW50ZXJmYWNlKSlcXG4rXFx0XFx0cGxhdF9kYXQtXFx1MDAzZXBoeV9pbnRlcmZhY2UgPSBQSFlfSU5URVJGQUNFX01PREVfUkdNSUk7XFxuK31cXG4rXFxuK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc29jZnBnYV9kd21hY19vcHMgc29jZnBnYV9hZ2lsZXg1X3Rzbl9nbWFjX29wcyA9IHtcXG4rXFx0LnNldF9waHlfbW9kZSA9IHNvY2ZwZ2FfZ2VuMTBfc2V0X3BoeV9tb2RlLFxcbitcXHQuc2V0dXBfcGxhdF9kYXQgPSBzb2NmcGdhX2FnaWxleDVfdHNuX2dtYWNfc2V0dXBfcGxhdF9kYXQsXFxuK307XFxuK1xcbiBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBzb2NmcGdhX2R3bWFjX21hdGNoW10gPSB7XFxuIFxcdHsgLmNvbXBhdGlibGUgPSBcXFwiYWx0cixzb2NmcGdhLXN0bW1hY1xcXCIsIC5kYXRhID0gXFx1MDAyNnNvY2ZwZ2FfZ2VuNV9vcHMgfSxcXG4gXFx0eyAuY29tcGF0aWJsZSA9IFxcXCJhbHRyLHNvY2ZwZ2Etc3RtbWFjLWExMC1zMTBcXFwiLCAuZGF0YSA9IFxcdTAwMjZzb2NmcGdhX2dlbjEwX29wcyB9LFxcbiBcXHR7IC5jb21wYXRpYmxlID0gXFxcImFsdHIsc29jZnBnYS1zdG1tYWMtYWdpbGV4NVxcXCIsIC5kYXRhID0gXFx1MDAyNnNvY2ZwZ2FfYWdpbGV4NV9vcHMgfSxcXG4rXFx0eyAuY29tcGF0aWJsZSA9IFxcXCJhbHRyLHNvY2ZwZ2Etc3RtbWFjLWFnaWxleDUtdHNuXFxcIiwgLmRhdGEgPSBcXHUwMDI2c29jZnBnYV9hZ2lsZXg1X3Rzbl9nbWFjX29wcyB9LFxcbiBcXHR7IH1cXG4gfTtcXG4gTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgc29jZnBnYV9kd21hY19tYXRjaCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA4VDA3OjMyOjU3LjcwOTMwMjkxOFoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImNvcmUiLCJEdXJhdGlvbiI6MTg5OTA5NjEzNTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIERldmljZXRyZWUgYmluZGluZ3MsIEFSTTY0IERUUyBmaWxlcywgYW5kIHRoZSBkd21hYy1zb2NmcGdhIHBsYXRmb3JtIEV0aGVybmV0IGRyaXZlciBmb3IgSW50ZWwvQWx0ZXJhIFNvQ0ZQR0EgU29Dcy4gVGhpcyBkcml2ZXIgaXMgdGllZCB0byBzcGVjaWZpYyBBUk0vQVJNNjQgU29DIERldmljZXRyZWUgaGFyZHdhcmUgYW5kIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBvbiB0aGUgYW1kNjQgdGFyZ2V0IGFyY2hpdGVjdHVyZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyIGFuZCBzZWN1cml0eSBlbmdpbmVlci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZXZhbHVhdGUgd2hldGhlciBpdCB3YXJyYW50cyBmdXp6aW5nIHdpdGggc3l6a2FsbGVyLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiBpbnRlcm5hbCBhc3N1bXB0aW9ucy4gWW91IG11c3QgYWN0aXZlbHkgdXNlIHlvdXIgY29kZSBhY2Nlc3NcbnRvb2xzIHRvIGluc3BlY3QgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSwgY2FsbGVycywgYW5kIHN1cnJvdW5kaW5nIGNvbnRleHQuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4xLiBDT1JFIFRSSUFHRSBQSElMT1NPUEhZXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuVGhlIGdvYWwgb2YgcGF0Y2ggZnV6emluZyBpcyB0byBkaXNjb3ZlciBjcmFzaGVzLCByZWdyZXNzaW9ucywgZXhwb3NlZCBsYXRlbnQgYnVncyxcbmFuZCBuZXdseSB0cmlnZ2VyZWQgYXNzZXJ0aW9ucyBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBzZXJpZXMuXG5cbi0gUkVBQ0hBQklMSVRZIElTIFRIRSBQUklNQVJZIEdBVEU6XG4gIEZ1enppbmcgY2FuIG9ubHkgZGlzY292ZXIgYnVncyBpbiBjb2RlIHRoYXQgY2FuIGFjdHVhbGx5IGV4ZWN1dGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWRcbiAgZW52aXJvbm1lbnRzIChHQ0Ugb3IgUUVNVSwgdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGRldmljZXMgbGlrZSBVU0IgZ2FkZ2V0cywgbmV0ZGV2LCB0dW4vdGFwKS5cbiAgSWYgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIChzZWUgU2VjdGlvbiAyKSwgaXQgTVVTVCBOT1QgYmUgZnV6emVkLFxuICByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgYWRkcyBhc3NlcnRpb25zIG9yIGNvbXBsZXggbG9naWMuXG5cbi0gRE8gTk9UIEJMSU5ETFkgVFJVU1QgXCJOTyBGVU5DVElPTkFMIENIQU5HRVwiIChORkNJKSBPUiBcIlJFRkFDVE9SSU5HXCIgQ0xBSU1TOlxuICBQYXRjaCBhdXRob3JzIHJvdXRpbmVseSBsYWJlbCBjaGFuZ2VzIGFzIFwiY2xlYW51cHNcIiwgXCJyZWZhY3RvcmluZ3NcIiwgb3Igc3RhdGVcbiAgXCJObyBmdW5jdGlvbmFsIGNoYW5nZSBpbnRlbmRlZFwiLiBEbyBOT1QgdGFrZSB0aGVzZSBjbGFpbXMgYXQgZmFjZSB2YWx1ZS5cbiAgQ29kZSByZWZhY3RvcmluZ3MgdGhhdCByZWFycmFuZ2UgbG9naWMsIGludHJvZHVjZSBoZWxwZXIgZnVuY3Rpb25zLCBvciBhbHRlciBzdGF0ZSBtYW5hZ2VtZW50XG4gIGluIGNvcmUgc3Vic3lzdGVtcyBmcmVxdWVudGx5IGludHJvZHVjZSBzdWJ0bGUgc2VtYW50aWMgc2hpZnRzIG9yIHVuY292ZXIgbGF0ZW50IGtlcm5lbCBidWdzLlxuICBJZiByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlIGlzIG1vZGlmaWVkIG9yIHJlZmFjdG9yZWQsIGl0IE1VU1QgYmUgZnV6emVkLlxuXG4tIE5FVyBPUiBNT0RJRklFRCBBU1NFUlRJT05TIElOIFJFQUNIQUJMRSBDT0RFIE1VU1QgQkUgRlVaWkVEOlxuICBXaGVuIGEgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllcyBydW50aW1lIGNoZWNrcyBvciBhc3NlcnRpb25zIChlLmcuLCBXQVJOX09OKiwgVk1fV0FSTl9PTiosXG4gIEJVR19PTiosIGxvY2tkZXBfYXNzZXJ0KikgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMsIGl0IGVuZm9yY2VzIG5ldyBvciBzdHJpY3RlciBpbnZhcmlhbnRzLlxuICBFdmVuIGlmIHRoZSBhdXRob3IgYmVsaWV2ZXMgdGhlIGludmFyaWFudCBhbHdheXMgaG9sZHMsIGZ1enppbmcgaXMgZXNzZW50aWFsIHRvIHZlcmlmeSB3aGV0aGVyXG4gIGFuIHVudXN1YWwgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucyBjYW4gdmlvbGF0ZSBpdC5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjIuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz1mYWxzZSAoTkVHQVRJVkUgQ1JJVEVSSUEpXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBPTkxZIElGIGFsbCBtb2RpZmllZCBjb2RlIGZhbGxzIHN0cmljdGx5IGludG8gb25lIG9yIG1vcmUgb2YgdGhlc2UgY2F0ZWdvcmllczpcblxuLSBOb24ta2VybmVsIGFuZCBub24tZXhlY3V0YWJsZSBjaGFuZ2VzOlxuICAqIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIGNvbW1lbnRzLCBvciBzcGVsbGluZyBmaXhlcy5cbiAgKiBVc2VyLXNwYWNlIGRpcmVjdG9yaWVzLCBzZWxmLXRlc3RzLCBzYW1wbGVzLCBvciBzY3JpcHRzIChlLmcuLCB0b29scy8sIHNhbXBsZXMvLCBzY3JpcHRzLywgdXNyLylcbiAgICB0aGF0IGRvIG5vdCBhZmZlY3QgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAodm1saW51eCkgb3Iga2VybmVsIG1vZHVsZXMuXG4gICogUHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZyAoZS5nLiwgbWVzc2FnZSBzdHJpbmdzIGluIHByX2VyciwgcHJpbnRrLCBkZXZfaW5mbykgb3IgdHJhY2Vwb2ludHNcbiAgICB0aGF0IGRvIG5vdCBhbHRlciBjb250cm9sIGZsb3cgb3IgZGF0YSBzdHJ1Y3R1cmVzLlxuICAqIEJ1aWxkIHN5c3RlbSBvciBLY29uZmlnIGNoYW5nZXMgdGhhdCBkbyBub3QgYWx0ZXIgY29tcGlsZWQgQyBsb2dpYy5cbi0gU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlOlxuICAqIFZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgICBpb25pYywgYW1kZ3B1KSByZXF1aXJpbmcgcGh5c2ljYWwgQVNJQy9QQ0llIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBVbnJlYWNoYWJsZSBleGVjdXRpb24gcGF0aHM6XG4gICogRHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoLnJlbW92ZSwgLnNodXRkb3duLCBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIpIGV4ZWN1dGVkIG9ubHkgZHVyaW5nXG4gICAgcGh5c2ljYWwgUENJIGhvdC11bnBsdWcgb3IgbWFudWFsIHN5c2ZzIGRyaXZlciB1bmJpbmRpbmcuXG4gICogQ29kZSBwYXRocyBleGNsdXNpdmUgdG8gYXJjaGl0ZWN0dXJlcyBvdGhlciB0aGFuIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuMy4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPXRydWUgKFBPU0lUSVZFIENSSVRFUklBKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZSB3aGVuZXZlciB0aGUgcGF0Y2ggdG91Y2hlcyByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlLCBpbmNsdWRpbmc6XG4tIENvcmUgU3Vic3lzdGVtczpcbiAgKiBBbnkgbG9naWMgbW9kaWZpY2F0aW9ucyBpbiBtZW1vcnkgbWFuYWdlbWVudCAobW0vKSwgc3luY2hyb25pemF0aW9uL2xvY2tpbmcgKGtlcm5lbC9sb2NraW5nLyksXG4gICAgQlBGLCBzY2hlZHVsZXIsIGNvcmUgbmV0d29ya2luZywgVkZTLCBvciBzeXNjYWxsIGhhbmRsaW5nLlxuLSBSZWZhY3RvcmluZ3MgYW5kIENvZGUgQ2xlYW51cHM6XG4gICogQW55IHJlc3RydWN0dXJpbmcgb2YgcmVhY2hhYmxlIGRhdGEgc3RydWN0dXJlcywgaGVscGVyIGFic3RyYWN0aW9ucywgb3IgYWxnb3JpdGhtIGZsb3dzLlxuLSBSdW50aW1lIEFzc2VydGlvbnMgYW5kIERlZmVuc2l2ZSBDaGVja3M6XG4gICogQW55IGludHJvZHVjdGlvbiBvciBhbHRlcmF0aW9uIG9mIGFzc2VydGlvbnMgKFdBUk5fT04qLCBWTV9XQVJOX09OKiwgQlVHX09OKiwgZXRjLikgaW4gcmVhY2hhYmxlIHBhdGhzLlxuLSBSZWFjaGFibGUgRHJpdmVycyBhbmQgUHJvdG9jb2xzOlxuICAqIERyaXZlcnMgYWNjZXNzaWJsZSB2aWEgdmlydHVhbCBidXNlcyAodmlydGlvLCBVU0IgZ2FkZ2V0LCBsb29wYmFjaywgbmV0bGluaywgYmluZGVyLCBzb2NrZXRzLCBldGMuKS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjQuIEVYVFJBQ1RJTkcgRm9jdXNTeW1ib2xzIChQUkVWRU5USU5HIERJTFVUSU9OKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbldoZW4gV29ydGhGdXp6aW5nPXRydWUsIHlvdSBtdXN0IGV4dHJhY3Qgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyBpbnRvIEZvY3VzU3ltYm9scyB0byBndWlkZSB0aGUgZnV6emVyOlxuXG4tIEFWT0lEIFVCSVFVSVRPVVMgTElGRUNZQ0xFIEhPVC1QQVRIUzpcbiAgRG8gTk9UIGxpc3QgZ2VuZXJpYywgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2FsbGVkIGJ5IGFsbW9zdCBldmVyeSBwcm9ncmFtIGluIHRoZSBjb3JwdXNcbiAgKGluY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvOiBnZW5lcmFsIG1lbW9yeSBhbGxvY2F0b3JzIGFuZCBkZWFsbG9jYXRvcnMsIHBhZ2UgZmF1bHRcbiAgYW5kIHRyYXAgaGFuZGxlcnMsIG9yIGNvcmUgc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXM7IHRoaXMgaXMgbm90IGFuIGV4aGF1c3RpdmUgbGlzdCkuXG4gIExpc3RpbmcgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2F1c2VzIHRoZSBmdXp6ZXIgdG8gY2xhc3NpZnkgdGhvdXNhbmRzIG9mIHVucmVsYXRlZCB0ZXN0cyBhcyBcImZvY3VzZWRcIixcbiAgd2hpY2ggc2V2ZXJlbHkgZGlsdXRlcyBmdXp6aW5nIGVmZm9ydCBhd2F5IGZyb20gdGhlIGFjdHVhbCBjaGFuZ2VzLlxuXG4tIFRBUkdFVCBTUEVDSUZJQyBGRUFUVVJFIExPR0lDIEFORCBFTlRSWVBPSU5UUzpcbiAgTGlzdCBmdW5jdGlvbnMgdGhhdCBzcGVjaWZpY2FsbHkgaW1wbGVtZW50IHRoZSBsb2dpYyBiZWluZyBhZGRlZCBvciBhbHRlcmVkLCBvciBkaXJlY3QgQVBJIGVudHJ5cG9pbnRzXG4gIGZvciB0aGUgc3Vic3lzdGVtIGZlYXR1cmUgdW5kZXIgcmV2aWV3LlxuXG4tIEhBTkRMSU5HIFNUQVRJQyBJTkxJTkUgRlVOQ1RJT05TIElOIEhFQURFUlMgKC5oKTpcbiAgQ29tcGlsZXItaW5saW5lZCBzdGF0aWMgZnVuY3Rpb25zIChzdWNoIGFzIHN0YXRpYyBpbmxpbmVzIGluIG1tLyouaCBvciBpbmNsdWRlL2xpbnV4LyouaCkgbGFja1xuICBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzIGluIHZtbGludXggYW5kIGNhbm5vdCBiZSB0YXJnZXRlZCBkaXJlY3RseSBieSBzeW1ib2wgY292ZXJhZ2UgZmlsdGVycy5cbiAgSWYgdGhlIGNoYW5nZXMgYXJlIHByaW1hcmlseSBpbiBzdGF0aWMgaW5saW5lIGhlbHBlcnMsIGlkZW50aWZ5IG5vbi1zdGF0aWMsIGZlYXR1cmUtc3BlY2lmaWMgY2FsbGVyXG4gIGZ1bmN0aW9ucyBpbiAuYyBmaWxlcyB0aGF0IGV4ZXJjaXNlIHRoZW0gKGF2b2lkaW5nIHViaXF1aXRvdXMgbGlmZWN5Y2xlIHdyYXBwZXJzKS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjUuIElERU5USUZZSU5HIEVuYWJsZUNvbmZpZ3Ncbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5JZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IGNvbXBpbGUgYW5kIHJlYWNoIHRoZSBtb2RpZmllZCBjb2RlOlxuLSBJbnNwZWN0IEtjb25maWcgZmlsZXMgYW5kICNpZmRlZiBndWFyZHM7IGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuLSBDaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MgbmVlZGVkLlxuLSBTdHJpcCBhbnkgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiVGFyZ2V0IGFyY2hpdGVjdHVyZTogYW1kNjRcblxuRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgMDZkYzc4ZDBlNmIxYzE1OGQ2ZjJkMWIzOGE3NDk2NDQ2YzYzNjU3MFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgU2VwIDggMDc6MzI6NTYgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL2FsdGVyYS55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9hbHRlcmEueWFtbFxuaW5kZXggMzAzMGNmNDZmZTc0Yy4uZTQzMTQ2OWE3MTc1MyAxMDA2NDRcbi0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vYWx0ZXJhLnlhbWxcbisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vYWx0ZXJhLnlhbWxcbkBAIC0xMTQsNiArMTE0LDcgQEAgcHJvcGVydGllczpcbiAgICAgICAgICAgICAgIC0gaW50ZWwsc29jZnBnYS1hZ2lsZXg1LXNvY2RrLWRlYnVnXG4gICAgICAgICAgICAgICAtIGludGVsLHNvY2ZwZ2EtYWdpbGV4NS1zb2Nkay1tb2R1bGFyXG4gICAgICAgICAgICAgICAtIGludGVsLHNvY2ZwZ2EtYWdpbGV4NS1zb2Nkay1uYW5kXG4rICAgICAgICAgICAgICAtIGludGVsLHNvY2ZwZ2EtYWdpbGV4NS1zb2Nkay10c24tY2ZnMlxuICAgICAgICAgICAtIGNvbnN0OiBpbnRlbCxzb2NmcGdhLWFnaWxleDVcbiBcbiAgICAgICAtIGRlc2NyaXB0aW9uOiBBZ2lsZXg3MiBib2FyZHNcbmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sXG5pbmRleCA2MzA4NGY3NjIzNzM4Li4yYzI3YmZkNWFmODkyIDEwMDY0NFxuLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbHRyLHNvY2ZwZ2Etc3RtbWFjLnlhbWxcbisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sXG5AQCAtMjQsNiArMjQsNyBAQCBzZWxlY3Q6XG4gICAgICAgICAgIC0gYWx0cixzb2NmcGdhLXN0bW1hY1xuICAgICAgICAgICAtIGFsdHIsc29jZnBnYS1zdG1tYWMtYTEwLXMxMFxuICAgICAgICAgICAtIGFsdHIsc29jZnBnYS1zdG1tYWMtYWdpbGV4NVxuKyAgICAgICAgICAtIGFsdHIsc29jZnBnYS1zdG1tYWMtYWdpbGV4NS10c25cbiBcbiAgIHJlcXVpcmVkOlxuICAgICAtIGNvbXBhdGlibGVcbkBAIC00NCw3ICs0NSw5IEBAIHByb3BlcnRpZXM6XG4gICAgICAgICAgIC0gY29uc3Q6IHNucHMsZHdtYWMtMy43NGFcbiAgICAgICAgICAgLSBjb25zdDogc25wcyxkd21hY1xuICAgICAgIC0gaXRlbXM6XG4tICAgICAgICAgIC0gY29uc3Q6IGFsdHIsc29jZnBnYS1zdG1tYWMtYWdpbGV4NVxuKyAgICAgICAgICAtIGVudW06XG4rICAgICAgICAgICAgICAtIGFsdHIsc29jZnBnYS1zdG1tYWMtYWdpbGV4NVxuKyAgICAgICAgICAgICAgLSBhbHRyLHNvY2ZwZ2Etc3RtbWFjLWFnaWxleDUtdHNuXG4gICAgICAgICAgIC0gY29uc3Q6IHNucHMsZHd4Z21hYy0yLjEwXG4gXG4gICBjbG9ja3M6XG5kaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9NYWtlZmlsZSBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvTWFrZWZpbGVcbmluZGV4IDI3MGM3MGZkZjA4NGIuLmNlN2NmM2E2MzI3NTMgMTAwNjQ0XG4tLS0gYS9hcmNoL2FybTY0L2Jvb3QvZHRzL2ludGVsL01ha2VmaWxlXG4rKysgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL2ludGVsL01ha2VmaWxlXG5AQCAtOCw2ICs4LDcgQEAgZHRiLSQoQ09ORklHX0FSQ0hfSU5URUxfU09DRlBHQSkgKz0gc29jZnBnYV9hZ2lsZXhfbjYwMDAuZHRiIFxcXG4gXHRcdFx0XHRzb2NmcGdhX2FnaWxleDVfc29jZGtfMDEzYi5kdGIgXFxcbiBcdFx0XHRcdHNvY2ZwZ2FfYWdpbGV4NV9zb2Nka19tb2R1bGFyLmR0YiBcXFxuIFx0XHRcdFx0c29jZnBnYV9hZ2lsZXg1X3NvY2RrX25hbmQuZHRiIFxcXG4rXHRcdFx0XHRzb2NmcGdhX2FnaWxleDVfc29jZGtfdHNuX2NmZzIuZHRiIFxcXG4gXHRcdFx0XHRzb2NmcGdhX2FnaWxleDcyX3NvY2RrLmR0YiBcXFxuIFx0XHRcdFx0c29jZnBnYV9hZ2lsZXg3bV9zb2Nkay5kdGIgXFxcbiBcdFx0XHRcdHNvY2ZwZ2FfbjV4X3NvY2RrLmR0YlxuZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvc29jZnBnYV9hZ2lsZXg1X3NvY2RrX3Rzbl9jZmcyLmR0cyBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvc29jZnBnYV9hZ2lsZXg1X3NvY2RrX3Rzbl9jZmcyLmR0c1xubmV3IGZpbGUgbW9kZSAxMDA2NDRcbmluZGV4IDAwMDAwMDAwMDAwMDAuLjlkMzlmODQzYjQyNDBcbi0tLSAvZGV2L251bGxcbisrKyBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvc29jZnBnYV9hZ2lsZXg1X3NvY2RrX3Rzbl9jZmcyLmR0c1xuQEAgLTAsMCArMSwxMzAgQEBcbisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG4rLypcbisgKiBDb3B5cmlnaHQgKEMpIDIwMjYsIEFsdGVyYSBDb3Jwb3JhdGlvblxuKyAqL1xuKyNpbmNsdWRlIFwic29jZnBnYV9hZ2lsZXg1LmR0c2lcIlxuK1xuKy8ge1xuK1x0bW9kZWwgPSBcIlNvQ0ZQR0EgQWdpbGV4NSBTb0NESyBUU04gQ29uZmlnMlwiO1xuK1x0Y29tcGF0aWJsZSA9IFwiaW50ZWwsc29jZnBnYS1hZ2lsZXg1LXNvY2RrLXRzbi1jZmcyXCIsIFwiaW50ZWwsc29jZnBnYS1hZ2lsZXg1XCI7XG4rXG4rXHRhbGlhc2VzIHtcbitcdFx0c2VyaWFsMCA9IFx1MDAyNnVhcnQwO1xuK1x0XHRldGhlcm5ldDEgPSBcdTAwMjZnbWFjMTtcbitcdFx0ZXRoZXJuZXQyID0gXHUwMDI2Z21hYzI7XG4rXHR9O1xuK1xuK1x0Y2hvc2VuIHtcbitcdFx0c3Rkb3V0LXBhdGggPSBcInNlcmlhbDA6MTE1MjAwbjhcIjtcbitcdH07XG4rXG4rXHRsZWRzIHtcbitcdFx0Y29tcGF0aWJsZSA9IFwiZ3Bpby1sZWRzXCI7XG4rXG4rXHRcdGxlZC0wIHtcbitcdFx0XHRsYWJlbCA9IFwiaHBzX2xlZDBcIjtcbitcdFx0XHRncGlvcyA9IFx1MDAzY1x1MDAyNnBvcnRhIDExIEdQSU9fQUNUSVZFX0hJR0hcdTAwM2U7XG4rXHRcdH07XG4rXG4rXHR9O1xuK1xuK1x0bWVtb3J5QDgwMDAwMDAwIHtcbitcdFx0ZGV2aWNlX3R5cGUgPSBcIm1lbW9yeVwiO1xuK1x0XHQvKiBXZSBleHBlY3QgdGhlIGJvb3Rsb2FkZXIgdG8gZmlsbCBpbiB0aGUgcmVnICovXG4rXHRcdHJlZyA9IFx1MDAzYzB4MCAweDgwMDAwMDAwIDB4MCAweDBcdTAwM2U7XG4rXHR9O1xuK307XG4rXG4rXHUwMDI2Z3BpbzAge1xuK1x0c3RhdHVzID0gXCJva2F5XCI7XG4rfTtcbitcbitcdTAwMjZncGlvMSB7XG4rXHRzdGF0dXMgPSBcIm9rYXlcIjtcbit9O1xuK1xuK1x1MDAyNmdtYWMxIHtcbitcdHN0YXR1cyA9IFwib2theVwiO1xuK1x0Y29tcGF0aWJsZSA9IFwiYWx0cixzb2NmcGdhLXN0bW1hYy1hZ2lsZXg1LXRzblwiLFxuK1x0XHQgICAgIFwic25wcyxkd3hnbWFjLTIuMTBcIjtcbitcdHBoeS1tb2RlID0gXCJyZ21paS1pZFwiO1xuK1x0cGh5LWhhbmRsZSA9IFx1MDAzY1x1MDAyNmVtYWMxX3BoeTBcdTAwM2U7XG4rXHRtYXgtZnJhbWUtc2l6ZSA9IFx1MDAzYzkwMDBcdTAwM2U7XG4rXG4rXHRtZGlvMCB7XG4rXHRcdCNhZGRyZXNzLWNlbGxzID0gXHUwMDNjMVx1MDAzZTtcbitcdFx0I3NpemUtY2VsbHMgPSBcdTAwM2MwXHUwMDNlO1xuK1x0XHRjb21wYXRpYmxlID0gXCJzbnBzLGR3bWFjLW1kaW9cIjtcbitcbitcdFx0ZW1hYzFfcGh5MDogZXRoZXJuZXQtcGh5QDAge1xuK1x0XHRcdHJlZyA9IFx1MDAzYzBcdTAwM2U7XG4rXHRcdH07XG4rXHR9O1xuK307XG4rXG4rXHUwMDI2Z21hYzIge1xuK1x0c3RhdHVzID0gXCJva2F5XCI7XG4rXHRwaHktbW9kZSA9IFwicmdtaWktaWRcIjtcbitcdHBoeS1oYW5kbGUgPSBcdTAwM2NcdTAwMjZlbWFjMl9waHkwXHUwMDNlO1xuK1x0bWF4LWZyYW1lLXNpemUgPSBcdTAwM2M5MDAwXHUwMDNlO1xuK1xuK1x0bWRpbzAge1xuK1x0XHQjYWRkcmVzcy1jZWxscyA9IFx1MDAzYzFcdTAwM2U7XG4rXHRcdCNzaXplLWNlbGxzID0gXHUwMDNjMFx1MDAzZTtcbitcdFx0Y29tcGF0aWJsZSA9IFwic25wcyxkd21hYy1tZGlvXCI7XG4rXG4rXHRcdGVtYWMyX3BoeTA6IGV0aGVybmV0LXBoeUAwIHtcbitcdFx0XHRyZWcgPSBcdTAwM2MwXHUwMDNlO1xuK1x0XHR9O1xuK1x0fTtcbit9O1xuK1xuK1x1MDAyNm9zYzEge1xuK1x0Y2xvY2stZnJlcXVlbmN5ID0gXHUwMDNjMjUwMDAwMDBcdTAwM2U7XG4rfTtcbitcbitcdTAwMjZxc3BpIHtcbitcdHN0YXR1cyA9IFwib2theVwiO1xuK1x0Zmxhc2hAMCB7XG4rXHRcdGNvbXBhdGlibGUgPSBcIm1pY3JvbixtdDI1cXUwMmdcIiwgXCJqZWRlYyxzcGktbm9yXCI7XG4rXHRcdHJlZyA9IFx1MDAzYzBcdTAwM2U7XG4rXHRcdHNwaS1tYXgtZnJlcXVlbmN5ID0gXHUwMDNjMTAwMDAwMDAwXHUwMDNlO1xuK1x0XHRtMjVwLGZhc3QtcmVhZDtcbitcdFx0Y2RucyxyZWFkLWRlbGF5ID0gXHUwMDNjMlx1MDAzZTtcbitcdFx0Y2Rucyx0c2hzbC1ucyA9IFx1MDAzYzUwXHUwMDNlO1xuK1x0XHRjZG5zLHRzZDJkLW5zID0gXHUwMDNjNTBcdTAwM2U7XG4rXHRcdGNkbnMsdGNoc2gtbnMgPSBcdTAwM2M0XHUwMDNlO1xuK1x0XHRjZG5zLHRzbGNoLW5zID0gXHUwMDNjNFx1MDAzZTtcbitcdFx0c3BpLXR4LWJ1cy13aWR0aCA9IFx1MDAzYzRcdTAwM2U7XG4rXHRcdHNwaS1yeC1idXMtd2lkdGggPSBcdTAwM2M0XHUwMDNlO1xuK1xuK1x0XHRwYXJ0aXRpb25zIHtcbitcdFx0XHRjb21wYXRpYmxlID0gXCJmaXhlZC1wYXJ0aXRpb25zXCI7XG4rXHRcdFx0I2FkZHJlc3MtY2VsbHMgPSBcdTAwM2MxXHUwMDNlO1xuK1x0XHRcdCNzaXplLWNlbGxzID0gXHUwMDNjMVx1MDAzZTtcbitcbitcdFx0XHRxc3BpX2Jvb3Q6IHBhcnRpdGlvbkAwIHtcbitcdFx0XHRcdGxhYmVsID0gXCJ1LWJvb3RcIjtcbitcdFx0XHRcdHJlZyA9IFx1MDAzYzB4MCAweDA0MjAwMDAwXHUwMDNlO1xuK1x0XHRcdH07XG4rXG4rXHRcdFx0cm9vdDogcGFydGl0aW9uQDQyMDAwMDAge1xuK1x0XHRcdFx0bGFiZWwgPSBcInJvb3RcIjtcbitcdFx0XHRcdHJlZyA9IFx1MDAzYzB4MDQyMDAwMDAgMHgwYmUwMDAwMFx1MDAzZTtcbitcdFx0XHR9O1xuK1x0XHR9O1xuK1x0fTtcbit9O1xuK1xuK1x1MDAyNnVhcnQwIHtcbitcdHN0YXR1cyA9IFwib2theVwiO1xuK307XG4rXG4rXHUwMDI2dXNiMCB7XG4rXHRzdGF0dXMgPSBcIm9rYXlcIjtcbitcdGRpc2FibGUtb3Zlci1jdXJyZW50O1xuK307XG4rXG4rXHUwMDI2d2F0Y2hkb2cwIHtcbitcdHN0YXR1cyA9IFwib2theVwiO1xuK307XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jXG5pbmRleCAxZDdmMGE1N2QyODg5Li4wNjMyMTA1YjQyMGYxIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmNcbkBAIC02OSwxMiArNjksMTMgQEAgc3RydWN0IHNvY2ZwZ2FfZHdtYWMge1xuIFx0dm9pZCBfX2lvbWVtICp0c2VfcGNzX2Jhc2U7XG4gXHR2b2lkIF9faW9tZW0gKnNnbWlpX2FkYXB0ZXJfYmFzZTtcbiBcdGJvb2wgZjJoX3B0cF9yZWZfY2xrO1xuK1x0cGh5X2ludGVyZmFjZV90IG1hY19pbnRlcmZhY2U7XG4gXHRjb25zdCBzdHJ1Y3Qgc29jZnBnYV9kd21hY19vcHMgKm9wcztcbiB9O1xuIFxuIHN0YXRpYyBwaHlfaW50ZXJmYWNlX3Qgc29jZnBnYV9nZXRfcGxhdF9waHltb2RlKHN0cnVjdCBzb2NmcGdhX2R3bWFjICpkd21hYylcbiB7XG4tXHRyZXR1cm4gZHdtYWMtXHUwMDNlcGxhdF9kYXQtXHUwMDNlcGh5X2ludGVyZmFjZTtcbitcdHJldHVybiBkd21hYy1cdTAwM2VtYWNfaW50ZXJmYWNlO1xuIH1cbiBcbiBzdGF0aWMgdm9pZCBzb2NmcGdhX3NnbWlpX2NvbmZpZyhzdHJ1Y3Qgc29jZnBnYV9kd21hYyAqZHdtYWMsIGJvb2wgZW5hYmxlKVxuQEAgLTY1MCw2ICs2NTEsOCBAQCBzdGF0aWMgaW50IHNvY2ZwZ2FfZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbiBcdHBsYXRfZGF0LVx1MDAzZXBjc19leGl0ID0gc29jZnBnYV9kd21hY19wY3NfZXhpdDtcbiBcdHBsYXRfZGF0LVx1MDAzZXNlbGVjdF9wY3MgPSBzb2NmcGdhX2R3bWFjX3NlbGVjdF9wY3M7XG4gXG4rXHRkd21hYy1cdTAwM2VtYWNfaW50ZXJmYWNlID0gcGxhdF9kYXQtXHUwMDNlcGh5X2ludGVyZmFjZTtcbitcbiBcdG9wcy1cdTAwM2VzZXR1cF9wbGF0X2RhdChkd21hYyk7XG4gXG4gXHRyZXR1cm4gZGV2bV9zdG1tYWNfcGx0ZnJfcHJvYmUocGRldiwgcGxhdF9kYXQsIFx1MDAyNnN0bW1hY19yZXMpO1xuQEAgLTY3MCwxMCArNjczLDI4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc29jZnBnYV9kd21hY19vcHMgc29jZnBnYV9hZ2lsZXg1X29wcyA9IHtcbiBcdC5zZXR1cF9wbGF0X2RhdCA9IHNvY2ZwZ2FfYWdpbGV4NV9zZXR1cF9wbGF0X2RhdCxcbiB9O1xuIFxuK3N0YXRpYyB2b2lkIHNvY2ZwZ2FfYWdpbGV4NV90c25fZ21hY19zZXR1cF9wbGF0X2RhdChzdHJ1Y3Qgc29jZnBnYV9kd21hYyAqZHdtYWMpXG4re1xuK1x0c3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdCA9IGR3bWFjLVx1MDAzZXBsYXRfZGF0O1xuK1xuK1x0c29jZnBnYV9hZ2lsZXg1X3NldHVwX3BsYXRfZGF0KGR3bWFjKTtcbitcbitcdC8qIEZQR0EgY29udmVydGVyIHN1cHBsaWVzIFJHTUlJIGRlbGF5czsgTUFDIHVzZXMgR01JSSwgUEhZIGdldHMgcGxhaW4gUkdNSUkgKi9cbitcdGR3bWFjLVx1MDAzZW1hY19pbnRlcmZhY2UgPSBQSFlfSU5URVJGQUNFX01PREVfR01JSTtcbitcdGlmIChwaHlfaW50ZXJmYWNlX21vZGVfaXNfcmdtaWkocGxhdF9kYXQtXHUwMDNlcGh5X2ludGVyZmFjZSkpXG4rXHRcdHBsYXRfZGF0LVx1MDAzZXBoeV9pbnRlcmZhY2UgPSBQSFlfSU5URVJGQUNFX01PREVfUkdNSUk7XG4rfVxuK1xuK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc29jZnBnYV9kd21hY19vcHMgc29jZnBnYV9hZ2lsZXg1X3Rzbl9nbWFjX29wcyA9IHtcbitcdC5zZXRfcGh5X21vZGUgPSBzb2NmcGdhX2dlbjEwX3NldF9waHlfbW9kZSxcbitcdC5zZXR1cF9wbGF0X2RhdCA9IHNvY2ZwZ2FfYWdpbGV4NV90c25fZ21hY19zZXR1cF9wbGF0X2RhdCxcbit9O1xuK1xuIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHNvY2ZwZ2FfZHdtYWNfbWF0Y2hbXSA9IHtcbiBcdHsgLmNvbXBhdGlibGUgPSBcImFsdHIsc29jZnBnYS1zdG1tYWNcIiwgLmRhdGEgPSBcdTAwMjZzb2NmcGdhX2dlbjVfb3BzIH0sXG4gXHR7IC5jb21wYXRpYmxlID0gXCJhbHRyLHNvY2ZwZ2Etc3RtbWFjLWExMC1zMTBcIiwgLmRhdGEgPSBcdTAwMjZzb2NmcGdhX2dlbjEwX29wcyB9LFxuIFx0eyAuY29tcGF0aWJsZSA9IFwiYWx0cixzb2NmcGdhLXN0bW1hYy1hZ2lsZXg1XCIsIC5kYXRhID0gXHUwMDI2c29jZnBnYV9hZ2lsZXg1X29wcyB9LFxuK1x0eyAuY29tcGF0aWJsZSA9IFwiYWx0cixzb2NmcGdhLXN0bW1hYy1hZ2lsZXg1LXRzblwiLCAuZGF0YSA9IFx1MDAyNnNvY2ZwZ2FfYWdpbGV4NV90c25fZ21hY19vcHMgfSxcbiBcdHsgfVxuIH07XG4gTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgc29jZnBnYV9kd21hY19tYXRjaCk7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wOFQwNzozMjo1Ny43MDkzMDQyODlaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo1NzQyNjM5NzU3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUGF0Y2g6IEZvY3VzIG9uIFBsYXRmb3JtIFNwZWNpZmljcyoqXG5cbk9rYXksIHNvIHRoZSB0YXNrIGlzIHRvIHJldmlldyB0aGlzIHBhdGNoLiBGaXJzdCB0aGluZ3MgZmlyc3QsIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlIGlzIGFtZDY0LCB3aGljaCBpbW1lZGlhdGVseSByYWlzZXMgYSBmbGFnLiBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiB0aGlzIHBhdGNoIGlzIGV2ZW4gcmVsZXZhbnQgdG8gdGhhdCBhcmNoaXRlY3R1cmUsIGdpdmVuIHRoZSBmaWxlcyBpbnZvbHZlZC4gTGV0J3MgbG9vayBhdCB0aGUgbW9kaWZpZWQgZmlsZXM6IGBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL2FsdGVyYS55YW1sYCwgYERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sYCwgYGFyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvTWFrZWZpbGVgLCBgYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9zb2NmcGdhX2FnaWxleDVfc29jZGtfdHNuX2NmZzIuZHRzYCwgYW5kIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmNgLlxuXG5SaWdodCBhd2F5LCB0aGUgcHJlcG9uZGVyYW5jZSBvZiBBUk0gYW5kIEFSTTY0IHJlbGF0ZWQgcGF0aHMganVtcHMgb3V0IGF0IG1lLiBUaGUgZHRiIGFuZCBiaW5kaW5ncyBhcmUgYWxsIGZvciBBbHRlcmEvSW50ZWwgU29DRlBHQSBwbGF0Zm9ybXMsIHByaW1hcmlseSBBUk0vQVJNNjQuIFRoZSBtb3N0IGludGVyZXN0aW5nIGZpbGUgaXMgYGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuY2AuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoYXQgdGhhdCBFdGhlcm5ldCBkcml2ZXIgaXMgZG9pbmcgb24gYW4gYW1kNjQgc3lzdGVtLiBNeSBpbml0aWFsIGluc3RpbmN0IGlzIHRoYXQgdGhpcyBpcyBnb2luZyB0byBiZSBwbGF0Zm9ybS1zcGVjaWZpYyBoYXJkd2FyZS4gSSBuZWVkIHRvIHZlcmlmeSB0aGF0IHRoaXMgY29kZSBpcyBldmVuIGJ1aWx0IG9yIHByb2JlZCBvbiBhbWQ2NC4gTGV0J3MgZ3JlcCB0aGUgY29kZSBmb3IgYW55IENPTkZJRyBvcHRpb25zIHRoYXQgbWlnaHQgcmVzdHJpY3QgaXRzIGJ1aWxkIG9yIHJ1bnRpbWUgZW52aXJvbm1lbnQuIFRoaXMgc2hvdWxkIGdpdmUgbWUgYSBjbGVhciBwaWN0dXJlIG9mIGl0cyBhcHBsaWNhYmlsaXR5IChvciBsYWNrIHRoZXJlb2YpIHRvIHRoZSBhbWQ2NCBhcmNoaXRlY3R1cmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU5MDQsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyODAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wOFQwNzozMzowMy40NTE5NDgwNzVaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzA2ODQ0OTI1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImR3bWFjLXNvY2ZwZ2FcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU9NDY9c3RtbWFjLXBsYXRmb3JtLW9ianM6PSBzdG1tYWNfcGxhdGZvcm0ub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjQ3OmR3bWFjLWFsdHItc29jZnBnYS1vYmpzIDo9IGR3bWFjLXNvY2ZwZ2Eub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTQ4LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wOFQwNzozMzowMy43NTg3OTk4NVoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjE4NTk0OTkxNDMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIHNlZS4gTXkgZmlyc3QgdGhvdWdodCBpcyB0byBkaWcgaW50byB0aGUga2VybmVsIGNvbmZpZ3VyYXRpb24sIHNwZWNpZmljYWxseSB0byBzZWUgdGhlIHNldHRpbmdzIHJlbGF0ZWQgdG8gdGhlIEFsdGVyYS9JbnRlbCBTb0MgRlBHQSBFdGhlcm5ldCBjb250cm9sbGVyLCB3aGljaCBJICprbm93KiBpcyBvZnRlbiByZWZlcnJlZCB0byBhcyAnZHdtYWMtYWx0ci1zb2NmcGdhJyBpbiB0aGUgY29kZWJhc2UuIEknbGwgbmVlZCB0byBjaGVjayB0aGUgcmVsZXZhbnQgS2NvbmZpZyBmaWxlLCB3aGljaCwgYmFzZWQgb24gbXkgZXhwZXJpZW5jZSwgaXMgbGlrZWx5IGxvY2F0ZWQgdW5kZXIgYGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWdgLiBUaW1lIHRvIGdldCBhIHF1aWNrIG92ZXJ2aWV3IG9mIHdoYXQgb3B0aW9ucyBhcmUgYXZhaWxhYmxlIGFuZCBob3cgdGhleSdyZSBzZXQgdXAuIFRoaXMgd2lsbCBoZWxwIG1lIHVuZGVyc3RhbmQgd2hhdCdzIGNvbmZpZ3VyZWQsIGFuZCBtb3JlIGltcG9ydGFudGx5LCB3aGF0IGlzbid0LCBlc3BlY2lhbGx5IGlmIEknbSB0cm91Ymxlc2hvb3Rpbmcgb3IgaW50ZWdyYXRpbmcgdGhpcyBwbGF0Zm9ybS5cblxuXG4iLCJJbnB1dFRva2VucyI6NjY4MywiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA4VDA3OjMzOjA1LjYxODMwMTQwM1oiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NzAyMzA2OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJEV01BQ19TT0NGUEdBXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTkxPWNvbmZpZyBEV01BQ19TMzJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjAyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjAzOmNvbmZpZyBEV01BQ19TT0NGUEdBXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMDQtXFx0dHJpc3RhdGUgXFxcIlNPQ0ZQR0EgZHdtYWMgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlPTI4PW9iai0kKENPTkZJR19EV01BQ19TMzIpXFx0XFx0Kz0gZHdtYWMtczMyLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToyOTpvYmotJChDT05GSUdfRFdNQUNfU09DRlBHQSlcXHQrPSBkd21hYy1hbHRyLXNvY2ZwZ2Eub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTMwLW9iai0kKENPTkZJR19EV01BQ19TT1BIR08pXFx0Kz0gZHdtYWMtc29waGdvLm9cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDhUMDc6MzM6MDUuNjY1MzI5NzgyWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6Mzg1OTkzMDgzMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIGEgc3VtbWFyeSBvZiBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSB0aGUgb25lIHRoaW5raW5nIGl0OlxuXG4qKkRpdmluZyBpbnRvIHRoZSBEV01BQ19TT0NGUEdBIEtjb25maWcqKlxuXG5BbHJpZ2h0LCB0aW1lIHRvIGRpZyBpbnRvIHRoZSBLY29uZmlnIHJlbGF0ZWQgdG8gRFdNQUNfU09DRlBHQS4gSSBuZWVkIHRvIGdldCBhIGNsZWFyIHBpY3R1cmUgb2YgaG93IHRoaXMgc3BlY2lmaWMgaGFyZHdhcmUgYWJzdHJhY3Rpb24gbGF5ZXIgaXMgY29uZmlndXJlZCBhbmQgaXRzIGRlcGVuZGVuY2llcyB3aXRoaW4gdGhlIGJyb2FkZXIga2VybmVsIGNvbmZpZ3VyYXRpb24gbGFuZHNjYXBlLiBJJ2xsIGJlIGxvb2tpbmcgZm9yOlxuXG4qICAgKipLZXkgRGVwZW5kZW5jaWVzOioqIFdoYXQgb3RoZXIgS2NvbmZpZyBzeW1ib2xzIGRvZXMgRFdNQUNcXF9TT0NGUEdBIGRlcGVuZCBvbj8gQXJlIHRoZXJlIHNwZWNpZmljIGJvYXJkIGNvbmZpZ3VyYXRpb25zLCBvdGhlciBoYXJkd2FyZSBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmFsIGZlYXR1cmVzIHRoYXQgaXQgcmVxdWlyZXMgb3IgaXMgaW5jb21wYXRpYmxlIHdpdGg/IFVuZGVyc3RhbmRpbmcgdGhlc2UgZGVwZW5kZW5jaWVzIHdpbGwgbGV0IG1lIGFzc2VzcyBpdHMgaW50ZWdyYXRpb24sIGFuZCBzZWUgaWYgdGhlcmUgYXJlIG1pc3NpbmcgYml0cy5cbiogICAqKkRlZmF1bHQgVmFsdWVzIGFuZCBPcHRpb25zOioqIFdoYXQgYXJlIHRoZSBkZWZhdWx0IHNldHRpbmdzIGZvciB0aGlzPyBBcmUgdGhlcmUgYW55IGNvbmZpZ3VyYWJsZSBvcHRpb25zPyBEbyB0aGV5IG1ha2Ugc2Vuc2U/IEFyZSB0aGUgZGVmYXVsdCB2YWx1ZXMgb3B0aW1pemVkIGZvciB0eXBpY2FsIEZQR0EtYmFzZWQgRXRoZXJuZXQgTUFDIGltcGxlbWVudGF0aW9ucyBvciBkbyB0aGV5IG5lZWQgYWRqdXN0bWVudD9cbiogICAqKkNvbmRpdGlvbmFsIENvbXBpbGF0aW9uOioqIEhvdyBpcyBEV01BQ1xcX1NPQ0ZQR0EgY29uZGl0aW9uYWxseSBjb21waWxlZD8gQXJlIHRoZXJlIHNwZWNpZmljIGBpZmAgb3IgYHNlbGVjdGAgc3RhdGVtZW50cyB0aGF0IGNvbnRyb2wgaXRzIGF2YWlsYWJpbGl0eT8gVGhpcyB3aWxsIGFsbG93IG1lIHRvIGFzc2VzcyBpdHMgY292ZXJhZ2UuXG4qICAgKipEb2N1bWVudGF0aW9uIGFuZCBDb21tZW50czoqKiBBcmUgdGhlcmUgYW55IGhlbHBmdWwgY29tbWVudHMgb3IgZGVzY3JpcHRpdmUgdGV4dCBhc3NvY2lhdGVkIHdpdGggRFdNQUNcXF9TT0NGUEdBPyBUaGlzIHdvdWxkIGJlIGEgYm9udXMgYW5kIHNhdmUgbWUgYSBsb3Qgb2YgdGltZS5cbiogICAqKlJlbGF0aW9uc2hpcCB0byBvdGhlciBNQUMgZHJpdmVyczoqKiBJdCdzIGltcG9ydGFudCB0byB1bmRlcnN0YW5kIHdoZXJlIHRoZSBEV01BQ1xcX1NPQ0ZQR0EgZHJpdmVyIGZpdHMgaW4uIElzIGl0IGRlc2lnbmVkIHRvIGJlIHN0YW5kYWxvbmUsIG9yIHRvIHdvcmsgd2l0aCBvdGhlciBkcml2ZXJzPyBJcyBpdCBhIGhhcmR3YXJlIGFic3RyYWN0aW9uIGxheWVyIG92ZXIgYSBzdGFuZGFyZCBkcml2ZXI/XG5cbkJhc2ljYWxseSwgSSB3YW50IHRvIGZvcm0gYSBtZW50YWwgbW9kZWwgb2YgaG93IHRoZSBEV01BQ1xcX1NPQ0ZQR0EgY29uZmlndXJhdGlvbiBpbnRlZ3JhdGVzIHdpdGggdGhlIGxhcmdlciBwaWN0dXJlLiBJIHdhbnQgdG8gYnVpbGQgYSBjb25jZXB0dWFsIGZyYW1ld29yaywgc28gSSBjYW4gbW9yZSBxdWlja2x5IGlkZW50aWZ5IHBvdGVudGlhbCBjb25mbGljdHMsIG9wcG9ydHVuaXRpZXMgZm9yIG9wdGltaXphdGlvbiwgb3IgYXJlYXMgd2hlcmUgdGhlIGNvbmZpZ3VyYXRpb24gaXMgdW5jbGVhciBvciBpbmNvbXBsZXRlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo3MTcxLCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDhUMDc6MzM6MDkuNTI1MjYzMTQ2WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzkxOTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAyMDAsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAyMDA6XFx0XFx0ICBTT0NzIEdNQUMgZXRoZXJuZXQgY29udHJvbGxlciwgaWUuIFMzMkcyeHgsIFMzMkczeHggYW5kXFxuIDIwMTpcXHRcXHQgIFMzMlI0NS5cXG4gMjAyOlxcdFxcbiAyMDM6XFx0Y29uZmlnIERXTUFDX1NPQ0ZQR0FcXG4gMjA0OlxcdFxcdHRyaXN0YXRlIFxcXCJTT0NGUEdBIGR3bWFjIHN1cHBvcnRcXFwiXFxuIDIwNTpcXHRcXHRkZWZhdWx0IEFSQ0hfSU5URUxfU09DRlBHQVxcbiAyMDY6XFx0XFx0ZGVwZW5kcyBvbiBPRiBcXHUwMDI2XFx1MDAyNiAoQVJDSF9JTlRFTF9TT0NGUEdBIHx8IENPTVBJTEVfVEVTVClcXG4gMjA3OlxcdFxcdHNlbGVjdCBNRkRfU1lTQ09OXFxuIDIwODpcXHRcXHRzZWxlY3QgTURJT19SRUdNQVBcXG4gMjA5OlxcdFxcdHNlbGVjdCBSRUdNQVBfTU1JT1xcbiAyMTA6XFx0XFx0c2VsZWN0IFBDU19MWU5YXFxuIDIxMTpcXHRcXHRoZWxwXFxuIDIxMjpcXHRcXHQgIFN1cHBvcnQgZm9yIGV0aGVybmV0IGNvbnRyb2xsZXIgb24gQWx0ZXJhIFNPQ0ZQR0FcXG4gMjEzOlxcdFxcbiAyMTQ6XFx0XFx0ICBUaGlzIHNlbGVjdHMgdGhlIEFsdGVyYSBTT0NGUEdBIFNvQyBnbHVlIGxheWVyIHN1cHBvcnRcXG4gMjE1OlxcdFxcdCAgZm9yIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3JcXG4gMjE2OlxcdFxcdCAgYXJyaWE1IGFuZCBjeWNsb25lNSBGUEdBIFNvQ3MuXFxuIDIxNzpcXHRcXG4gMjE4OlxcdGNvbmZpZyBEV01BQ19TT1BIR09cXG4gMjE5OlxcdFxcdHRyaXN0YXRlIFxcXCJTb3BoZ28gZHdtYWMgc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDhUMDc6MzM6MDkuNTI1MzQzOTg2WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MjE3NjM5Nzg5OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIERXTUFDIFNPQ0ZQR0EgQ29uZmlndXJhdGlvbioqXG5cbkFscmlnaHQsIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gRmlyc3QsIGBDT05GSUdfRFdNQUNfU09DRlBHQWAuIFRoZSBkZXBlbmRlbmN5IGlzIGBPRiBcdTAwMjZcdTAwMjYgKEFSQ0hfSU5URUxfU09DRlBHQSB8fCBDT01QSUxFX1RFU1QpYC4gU28sIGl0J3MgdGllZCB0byBhbiAqT0YqIChkZXZpY2UgdHJlZSkgZW52aXJvbm1lbnQgYW5kIGVpdGhlciBhIHNwZWNpZmljIEludGVsIFNvQ0ZQR0EgYXJjaGl0ZWN0dXJlIG9yIGEgY29tcGlsYXRpb24gdGVzdC4gUmlnaHQgYXdheSwgSSdtIHRoaW5raW5nLCBpcyB0aGlzIGEgc3BlY2lhbGl6ZWQgcGxhdGZvcm0gZHJpdmVyLCBzcGVjaWZpY2FsbHkgZm9yLCBzYXksIEFnaWxleDUsIEN5Y2xvbmU1LCBBcnJpYTEwLCBvciBTdHJhdGl4MTA/XG5cblRvIGNvbmZpcm0sIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgZHJpdmVyIGJlaGF2ZXMgZHVyaW5nIHByb2JpbmcuIEknbGwgbmVlZCB0byBjaGVjayBpZiBgZHdtYWMtc29jZnBnYS5jYCByZWdpc3RlcnMgaXRzZWxmIGFzIGEgcGxhdGZvcm0gZHJpdmVyLiBUaGF0J3MgdGhlIHR5cGljYWwgcGF0dGVybiBmb3IgdGhlc2Uga2luZHMgb2YgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVycy4gVGltZSB0byBkaXZlIGludG8gdGhlIGNvZGU6IEknbSBwdWxsaW5nIHVwIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmNgIG5vdyB0byB0YWtlIGEgbG9vay4gSSdsbCBmb2N1cyBvbiB0aGUgcHJvYmUgZnVuY3Rpb24gYW5kIHNlZSBpZiBpdCdzIGhhbmRsaW5nIHRoZSBkZXZpY2UgaW5pdGlhbGl6YXRpb24gYXBwcm9wcmlhdGVseS5cblxuXG4iLCJJbnB1dFRva2VucyI6Nzk0OSwiT3V0cHV0VG9rZW5zIjo1MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzMiwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA4VDA3OjMzOjExLjcwMTc0NDE0NVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNjU0NjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDY0MCxcbiAgXCJMaW5lQ291bnRcIjogNzBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDY0MDpcXHRcXHQgKiBtb2RlLiBDcmVhdGUgYSBjb3B5IG9mIHRoZSBjb3JlIHJlc2V0IGhhbmRsZSBzbyBpdCBjYW4gYmUgdXNlZCBieVxcbiA2NDE6XFx0XFx0ICogdGhlIGRyaXZlciBsYXRlci5cXG4gNjQyOlxcdFxcdCAqL1xcbiA2NDM6XFx0XFx0ZHdtYWMtXFx1MDAzZXN0bW1hY19yc3QgPSBwbGF0X2RhdC1cXHUwMDNlc3RtbWFjX3JzdDtcXG4gNjQ0OlxcdFxcdGR3bWFjLVxcdTAwM2VvcHMgPSBvcHM7XFxuIDY0NTpcXHRcXHRkd21hYy1cXHUwMDNlcGxhdF9kYXQgPSBwbGF0X2RhdDtcXG4gNjQ2OlxcdFxcbiA2NDc6XFx0XFx0cGxhdF9kYXQtXFx1MDAzZWJzcF9wcml2ID0gZHdtYWM7XFxuIDY0ODpcXHRcXHRwbGF0X2RhdC1cXHUwMDNlZml4X21hY19zcGVlZCA9IHNvY2ZwZ2FfZHdtYWNfZml4X21hY19zcGVlZDtcXG4gNjQ5OlxcdFxcdHBsYXRfZGF0LVxcdTAwM2Vpbml0ID0gc29jZnBnYV9kd21hY19pbml0O1xcbiA2NTA6XFx0XFx0cGxhdF9kYXQtXFx1MDAzZXBjc19pbml0ID0gc29jZnBnYV9kd21hY19wY3NfaW5pdDtcXG4gNjUxOlxcdFxcdHBsYXRfZGF0LVxcdTAwM2VwY3NfZXhpdCA9IHNvY2ZwZ2FfZHdtYWNfcGNzX2V4aXQ7XFxuIDY1MjpcXHRcXHRwbGF0X2RhdC1cXHUwMDNlc2VsZWN0X3BjcyA9IHNvY2ZwZ2FfZHdtYWNfc2VsZWN0X3BjcztcXG4gNjUzOlxcdFxcbiA2NTQ6XFx0XFx0ZHdtYWMtXFx1MDAzZW1hY19pbnRlcmZhY2UgPSBwbGF0X2RhdC1cXHUwMDNlcGh5X2ludGVyZmFjZTtcXG4gNjU1OlxcdFxcbiA2NTY6XFx0XFx0b3BzLVxcdTAwM2VzZXR1cF9wbGF0X2RhdChkd21hYyk7XFxuIDY1NzpcXHRcXG4gNjU4OlxcdFxcdHJldHVybiBkZXZtX3N0bW1hY19wbHRmcl9wcm9iZShwZGV2LCBwbGF0X2RhdCwgXFx1MDAyNnN0bW1hY19yZXMpO1xcbiA2NTk6XFx0fVxcbiA2NjA6XFx0XFxuIDY2MTpcXHRzdGF0aWMgY29uc3Qgc3RydWN0IHNvY2ZwZ2FfZHdtYWNfb3BzIHNvY2ZwZ2FfZ2VuNV9vcHMgPSB7XFxuIDY2MjpcXHRcXHQuc2V0X3BoeV9tb2RlID0gc29jZnBnYV9nZW41X3NldF9waHlfbW9kZSxcXG4gNjYzOlxcdFxcdC5zZXR1cF9wbGF0X2RhdCA9IHNvY2ZwZ2FfZ2VuNV9zZXR1cF9wbGF0X2RhdCxcXG4gNjY0OlxcdH07XFxuIDY2NTpcXHRcXG4gNjY2OlxcdHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc29jZnBnYV9kd21hY19vcHMgc29jZnBnYV9nZW4xMF9vcHMgPSB7XFxuIDY2NzpcXHRcXHQuc2V0X3BoeV9tb2RlID0gc29jZnBnYV9nZW4xMF9zZXRfcGh5X21vZGUsXFxuIDY2ODpcXHRcXHQuc2V0dXBfcGxhdF9kYXQgPSBzb2NmcGdhX2dlbjVfc2V0dXBfcGxhdF9kYXQsXFxuIDY2OTpcXHR9O1xcbiA2NzA6XFx0XFxuIDY3MTpcXHRzdGF0aWMgY29uc3Qgc3RydWN0IHNvY2ZwZ2FfZHdtYWNfb3BzIHNvY2ZwZ2FfYWdpbGV4NV9vcHMgPSB7XFxuIDY3MjpcXHRcXHQuc2V0X3BoeV9tb2RlID0gc29jZnBnYV9nZW4xMF9zZXRfcGh5X21vZGUsXFxuIDY3MzpcXHRcXHQuc2V0dXBfcGxhdF9kYXQgPSBzb2NmcGdhX2FnaWxleDVfc2V0dXBfcGxhdF9kYXQsXFxuIDY3NDpcXHR9O1xcbiA2NzU6XFx0XFxuIDY3NjpcXHRzdGF0aWMgdm9pZCBzb2NmcGdhX2FnaWxleDVfdHNuX2dtYWNfc2V0dXBfcGxhdF9kYXQoc3RydWN0IHNvY2ZwZ2FfZHdtYWMgKmR3bWFjKVxcbiA2Nzc6XFx0e1xcbiA2Nzg6XFx0XFx0c3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdCA9IGR3bWFjLVxcdTAwM2VwbGF0X2RhdDtcXG4gNjc5OlxcdFxcbiA2ODA6XFx0XFx0c29jZnBnYV9hZ2lsZXg1X3NldHVwX3BsYXRfZGF0KGR3bWFjKTtcXG4gNjgxOlxcdFxcbiA2ODI6XFx0XFx0LyogRlBHQSBjb252ZXJ0ZXIgc3VwcGxpZXMgUkdNSUkgZGVsYXlzOyBNQUMgdXNlcyBHTUlJLCBQSFkgZ2V0cyBwbGFpbiBSR01JSSAqL1xcbiA2ODM6XFx0XFx0ZHdtYWMtXFx1MDAzZW1hY19pbnRlcmZhY2UgPSBQSFlfSU5URVJGQUNFX01PREVfR01JSTtcXG4gNjg0OlxcdFxcdGlmIChwaHlfaW50ZXJmYWNlX21vZGVfaXNfcmdtaWkocGxhdF9kYXQtXFx1MDAzZXBoeV9pbnRlcmZhY2UpKVxcbiA2ODU6XFx0XFx0XFx0cGxhdF9kYXQtXFx1MDAzZXBoeV9pbnRlcmZhY2UgPSBQSFlfSU5URVJGQUNFX01PREVfUkdNSUk7XFxuIDY4NjpcXHR9XFxuIDY4NzpcXHRcXG4gNjg4OlxcdHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc29jZnBnYV9kd21hY19vcHMgc29jZnBnYV9hZ2lsZXg1X3Rzbl9nbWFjX29wcyA9IHtcXG4gNjg5OlxcdFxcdC5zZXRfcGh5X21vZGUgPSBzb2NmcGdhX2dlbjEwX3NldF9waHlfbW9kZSxcXG4gNjkwOlxcdFxcdC5zZXR1cF9wbGF0X2RhdCA9IHNvY2ZwZ2FfYWdpbGV4NV90c25fZ21hY19zZXR1cF9wbGF0X2RhdCxcXG4gNjkxOlxcdH07XFxuIDY5MjpcXHRcXG4gNjkzOlxcdHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHNvY2ZwZ2FfZHdtYWNfbWF0Y2hbXSA9IHtcXG4gNjk0OlxcdFxcdHsgLmNvbXBhdGlibGUgPSBcXFwiYWx0cixzb2NmcGdhLXN0bW1hY1xcXCIsIC5kYXRhID0gXFx1MDAyNnNvY2ZwZ2FfZ2VuNV9vcHMgfSxcXG4gNjk1OlxcdFxcdHsgLmNvbXBhdGlibGUgPSBcXFwiYWx0cixzb2NmcGdhLXN0bW1hYy1hMTAtczEwXFxcIiwgLmRhdGEgPSBcXHUwMDI2c29jZnBnYV9nZW4xMF9vcHMgfSxcXG4gNjk2OlxcdFxcdHsgLmNvbXBhdGlibGUgPSBcXFwiYWx0cixzb2NmcGdhLXN0bW1hYy1hZ2lsZXg1XFxcIiwgLmRhdGEgPSBcXHUwMDI2c29jZnBnYV9hZ2lsZXg1X29wcyB9LFxcbiA2OTc6XFx0XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJhbHRyLHNvY2ZwZ2Etc3RtbWFjLWFnaWxleDUtdHNuXFxcIiwgLmRhdGEgPSBcXHUwMDI2c29jZnBnYV9hZ2lsZXg1X3Rzbl9nbWFjX29wcyB9LFxcbiA2OTg6XFx0XFx0eyB9XFxuIDY5OTpcXHR9O1xcbiA3MDA6XFx0TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgc29jZnBnYV9kd21hY19tYXRjaCk7XFxuIDcwMTpcXHRcXG4gNzAyOlxcdHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHNvY2ZwZ2FfZHdtYWNfZHJpdmVyID0ge1xcbiA3MDM6XFx0XFx0LnByb2JlICA9IHNvY2ZwZ2FfZHdtYWNfcHJvYmUsXFxuIDcwNDpcXHRcXHQuZHJpdmVyID0ge1xcbiA3MDU6XFx0XFx0XFx0Lm5hbWUgICAgICAgICAgID0gXFxcInNvY2ZwZ2EtZHdtYWNcXFwiLFxcbiA3MDY6XFx0XFx0XFx0LnBtXFx0XFx0PSBcXHUwMDI2c3RtbWFjX3BsdGZyX3BtX29wcyxcXG4gNzA3OlxcdFxcdFxcdC5vZl9tYXRjaF90YWJsZSA9IHNvY2ZwZ2FfZHdtYWNfbWF0Y2gsXFxuIDcwODpcXHRcXHR9LFxcbiA3MDk6XFx0fTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDhUMDc6MzM6MTEuNzAxOTEyNDI1WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjQ5OTgzMjYxOTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqUmVhY2hhYmlsaXR5IEFuYWx5c2lzIGZvciBhbWQ2NCBBcmNoaXRlY3R1cmUqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIFdlJ3JlIGxvb2tpbmcgYXQgcmVhY2hhYmlsaXR5IGZvciBhbiBhbWQ2NCB0YXJnZXQsIGFuZCB0aGlzIHBhdGNoIGhhcyBhIGZldyByZWQgZmxhZ3MuIEZpcnN0LCB3ZSBzZWUgZG9jdW1lbnRhdGlvbiBhbmQgRFRTIGZpbGVzIHRoYXQgc2VlbSBmb2N1c2VkIG9uIEFSTTY0LCBwYXJ0aWN1bGFybHkgZm9yIEludGVsL0FsdGVyYSBTb0NGUEdBIHN5c3RlbXMuIFRoZSBgZHdtYWMtc29jZnBnYS5jYCBkcml2ZXIgaXMgYSBkZWFkIGdpdmVhd2F5IOKAkyBpdCdzIGFuIE9GIHBsYXRmb3JtIGRyaXZlciwgZGVzaWduZWQgdG8gd29yayB3aXRoIHRob3NlIHNwZWNpZmljIFNvQ0ZQR0EgU29Dcy4gQ3J1Y2lhbGx5LCBvbiBhbWQ2NCwgd2UgZG9uJ3QgaGF2ZSB0aGF0IGhhcmR3YXJlLiBObyBTb0NGUEdBIERldmljZSBUcmVlIG5vZGVzIGV4aXN0LCBhbmQgdGhleSBhcmVuJ3QgZW11bGF0ZWQgaW4gdGhlIHVzdWFsIFFFTVUgb3IgR0NFIGVudmlyb25tZW50cy4gTm90IGV2ZW4gd2l0aCBgQ09ORklHX0NPTVBJTEVfVEVTVGAgd291bGQgdGhpcyBjb2RlIGJlIGFibGUgdG8gKmRvKiBhbnl0aGluZy5cblxuU2VjdGlvbiAyIGNvbmZpcm1zIG15IHN1c3BpY2lvbiwgcG9pbnRpbmcgb3V0IHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZSBsaWtlIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzIHRoYXQgcmVxdWlyZSBzcGVjaWZpYyBwaHlzaWNhbCBjb21wb25lbnRzLiBTZWN0aW9uIDEgZHJpdmVzIHRoZSBwb2ludCBob21lIC0gZnV6emluZyBoaW5nZXMgb24gKmV4ZWN1dGFibGUqIGNvZGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgc2V0dXBzLiBJZiB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUsIGFzIHRoaXMgY2VydGFpbmx5IGFwcGVhcnMgdG8gYmUsIGl0J3MgYSBuby1nbyBmb3IgZnV6emluZywgcmVnYXJkbGVzcyBvZiBob3cgY29tcGxleCBvciBhc3NlcnRpb24tbGFkZW4gaXQgbWlnaHQgYmUuXG5cblRoZXJlZm9yZSwgYmVjYXVzZSB0aGlzIGRyaXZlciBhbmQgYXNzb2NpYXRlZCBEZXZpY2UgVHJlZSBjb25maWd1cmF0aW9ucyBhcmUgc3BlY2lmaWMgdG8gYW4gYXJjaGl0ZWN0dXJlIGFuZCBoYXJkd2FyZSBub3QgcHJlc2VudCBpbiB0aGUgdGFyZ2V0IGVudmlyb25tZW50LCBmdXp6aW5nIGlzIGEgd2FzdGUgb2YgdGltZSBhbmQgcmVzb3VyY2VzLiBTbywgdGhlIGBXb3J0aEZ1enppbmdgIHBhcmFtZXRlciBzaG91bGQgYmUgc2V0IHRvIGBmYWxzZWAuIE5vIHNwZWNpZmljIGNvbmZpZ3VyYXRpb25zIG5lZWQgZW5hYmxpbmcsIGFuZCB0aGVyZSBhcmUgbm8gc3BlY2lmaWMgc3ltYm9scyBvZiBpbnRlcmVzdCBzaW5jZSB0aGUgY29kZSBjYW5ub3QgYmUgZXhlY3V0ZWQuIFRoZSBgUmVhc29uaW5nYCBwYXJhbWV0ZXIgd2lsbCBiZSBzZXQgdG8gYSBjb25jaXNlIGV4cGxhbmF0aW9uIG9mIHRoZSBzaXR1YXRpb24uIExldCdzIGNhbGwgYHNldC1yZXN1bHRzYCB3aXRoIHRoZXNlIHBhcmFtZXRlcnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjk3ODUsIk91dHB1dFRva2VucyI6OTgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1NjYsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wOFQwNzozMzoxNi43MDAyNDIxODJaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMDY1MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBEZXZpY2V0cmVlIGJpbmRpbmdzLCBBUk02NCBEVFMgZmlsZXMsIGFuZCB0aGUgZHdtYWMtc29jZnBnYSBwbGF0Zm9ybSBFdGhlcm5ldCBkcml2ZXIgZm9yIEludGVsL0FsdGVyYSBTb0NGUEdBIFNvQ3MuIFRoaXMgZHJpdmVyIGlzIHRpZWQgdG8gc3BlY2lmaWMgQVJNL0FSTTY0IFNvQyBEZXZpY2V0cmVlIGhhcmR3YXJlIGFuZCBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgb24gdGhlIGFtZDY0IHRhcmdldCBhcmNoaXRlY3R1cmUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBEZXZpY2V0cmVlIGJpbmRpbmdzLCBBUk02NCBEVFMgZmlsZXMsIGFuZCB0aGUgZHdtYWMtc29jZnBnYSBwbGF0Zm9ybSBFdGhlcm5ldCBkcml2ZXIgZm9yIEludGVsL0FsdGVyYSBTb0NGUEdBIFNvQ3MuIFRoaXMgZHJpdmVyIGlzIHRpZWQgdG8gc3BlY2lmaWMgQVJNL0FSTTY0IFNvQyBEZXZpY2V0cmVlIGhhcmR3YXJlIGFuZCBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgb24gdGhlIGFtZDY0IHRhcmdldCBhcmNoaXRlY3R1cmUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wOFQwNzozMzoxNi43MDAyNjYyNTJaIiwiU2VxIjoxMywiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM0NjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowdg9ft[1] Phase: Running StartedAt: 2026-09-08 07:33:38 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdg9ft[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-09-08 07:33:38 +0000 UTC FinishedAt: 2026-09-08 07:33:43 +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,}