Name: series-workflowtrx4q Phase: Failed StartedAt: 2026-08-10 06:26:03 +0000 UTC FinishedAt: 2026-08-10 07:18:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtrx4q[0] Phase: Succeeded StartedAt: 2026-08-10 06:26:03 +0000 UTC FinishedAt: 2026-08-10 07:18:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtrx4q[0].run-triage Phase: Succeeded StartedAt: 2026-08-10 06:26:03 +0000 UTC FinishedAt: 2026-08-10 07:18:23 +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+CgkJCTx0ZD4yMDI2LzA4LzEwIDA3OjE2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHFjYThrIERTQSBzd2l0Y2ggZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlciBmb3IgUXVhbGNvbW0gQXRoZXJvcyBRQ0E4SyBFdGhlcm5ldCBzd2l0Y2ggY2hpcHMuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIHBoeXNpY2FsIGhhcmR3YXJlIGNvbm5lY3RlZCB2aWEgTURJTyB0byBwcm9iZSBzdWNjZXNzZnVsbHkgKGl0IHJlYWRzIHRoZSBzd2l0Y2ggSUQgZnJvbSBhIGhhcmR3YXJlIHJlZ2lzdGVyIGR1cmluZyBwcm9iZSkuIFNpbmNlIHRoaXMgaGFyZHdhcmUgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUvR0NFIGVudmlyb25tZW50cyB1c2VkIGJ5IHN5emthbGxlciwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggYW5kIGZ1enouJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzEwIDA3OjE2PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgM2NkOTQ1MzA5Y2E0MmVmNTVlM2RhNGQzOWRlYWQ0YzhjYzY2NDI2MlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gQXVnIDEwIDA3OjE2OjQ2IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jIGIvZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmNcbmluZGV4IDRjOTI4OTgzYjg2MjMuLjFkOTBhMjNhYmE2YmIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmNcbkBAIC0xNjAsNiAmIzQzOzE2MCwxMSBAQCBxY2E4a19zZXRfcGFnZShzdHJ1Y3QgcWNhOGtfcHJpdiAqcHJpdiwgdTE2IHBhZ2UpXG4gXHRyZXR1cm4gMDtcbiB9XG4gXG4mIzQzO3N0YXRpYyBib29sIHFjYThrX21nbXRfZXRoX2Rpc2FibGVkKGNvbnN0IHN0cnVjdCBxY2E4a19wcml2ICpwcml2KVxuJiM0Mzt7XG4mIzQzO1x0cmV0dXJuIHByaXYtXHUwMDNlc3dpdGNoX2lkID09IFFDQThLX0lEX1FDQTgzMjc7XG4mIzQzO31cbiYjNDM7XG4gc3RhdGljIHZvaWQgcWNhOGtfcndfcmVnX2Fja19oYW5kbGVyKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgc3RydWN0IHNrX2J1ZmYgKnNrYilcbiB7XG4gXHRzdHJ1Y3QgcWNhOGtfbWdtdF9ldGhfZGF0YSAqbWdtdF9ldGhfZGF0YTtcbkBAIC0zMTYsNiAmIzQzOzMyMSw5IEBAIHN0YXRpYyBpbnQgcWNhOGtfcmVhZF9ldGgoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIHUzMiByZWcsIHUzMiAqdmFsLCBpbnQgbGVuKVxuIFx0Ym9vbCBhY2s7XG4gXHRpbnQgcmV0O1xuIFxuJiM0MztcdGlmIChxY2E4a19tZ210X2V0aF9kaXNhYmxlZChwcml2KSlcbiYjNDM7XHRcdHJldHVybiAtRU5YSU87XG4mIzQzO1xuIFx0c2tiID0gcWNhOGtfYWxsb2NfbWRpb19oZWFkZXIoTURJT19SRUFELCByZWcsIE5VTEwsXG4gXHRcdFx0XHQgICAgICBRQ0E4S19FVEhFUk5FVF9NRElPX1BSSU9SSVRZLCBsZW4pO1xuIFx0aWYgKCFza2IpXG5AQCAtMzY4LDYgJiM0MzszNzYsOSBAQCBzdGF0aWMgaW50IHFjYThrX3dyaXRlX2V0aChzdHJ1Y3QgcWNhOGtfcHJpdiAqcHJpdiwgdTMyIHJlZywgdTMyICp2YWwsIGludCBsZW4pXG4gXHRib29sIGFjaztcbiBcdGludCByZXQ7XG4gXG4mIzQzO1x0aWYgKHFjYThrX21nbXRfZXRoX2Rpc2FibGVkKHByaXYpKVxuJiM0MztcdFx0cmV0dXJuIC1FTlhJTztcbiYjNDM7XG4gXHRza2IgPSBxY2E4a19hbGxvY19tZGlvX2hlYWRlcihNRElPX1dSSVRFLCByZWcsIHZhbCxcbiBcdFx0XHRcdCAgICAgIFFDQThLX0VUSEVSTkVUX01ESU9fUFJJT1JJVFksIGxlbik7XG4gXHRpZiAoIXNrYilcbkBAIC02MzAsNiAmIzQzOzY0MSw5IEBAIHFjYThrX3BoeV9ldGhfY29tbWFuZChzdHJ1Y3QgcWNhOGtfcHJpdiAqcHJpdiwgYm9vbCByZWFkLCBpbnQgcGh5LFxuIFx0aW50IHJldCwgcmV0MTtcbiBcdGJvb2wgYWNrO1xuIFxuJiM0MztcdGlmIChxY2E4a19tZ210X2V0aF9kaXNhYmxlZChwcml2KSlcbiYjNDM7XHRcdHJldHVybiAtRU5YSU87XG4mIzQzO1xuIFx0aWYgKHJlZ251bSBcdTAwM2U9IFFDQThLX01ESU9fTUFTVEVSX01BWF9SRUcpXG4gXHRcdHJldHVybiAtRUlOVkFMO1xuIFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzEwIDA3OjE2PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgcWNhOGsgRFNBIHN3aXRjaCBkcml2ZXIsIHdoaWNoIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVyIGZvciBRdWFsY29tbSBBdGhlcm9zIFFDQThLIEV0aGVybmV0IHN3aXRjaCBjaGlwcy4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgcGh5c2ljYWwgaGFyZHdhcmUgY29ubmVjdGVkIHZpYSBNRElPIHRvIHByb2JlIHN1Y2Nlc3NmdWxseSAoaXQgcmVhZHMgdGhlIHN3aXRjaCBJRCBmcm9tIGEgaGFyZHdhcmUgcmVnaXN0ZXIgZHVyaW5nIHByb2JlKS4gU2luY2UgdGhpcyBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS9HQ0UgZW52aXJvbm1lbnRzIHVzZWQgYnkgc3l6a2FsbGVyLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBhbmQgZnV6ei4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAzY2Q5NDUzMDljYTQyZWY1NWUzZGE0ZDM5ZGVhZDRjOGNjNjY0MjYyCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIE1vbiBBdWcgMTAgMDc6MTY6NDYgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYyBiL2RyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jCmluZGV4IDRjOTI4OTgzYjg2MjMuLjFkOTBhMjNhYmE2YmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jCkBAIC0xNjAsNiAmIzQzOzE2MCwxMSBAQCBxY2E4a19zZXRfcGFnZShzdHJ1Y3QgcWNhOGtfcHJpdiAqcHJpdiwgdTE2IHBhZ2UpCiAJcmV0dXJuIDA7CiB9CiAKJiM0MztzdGF0aWMgYm9vbCBxY2E4a19tZ210X2V0aF9kaXNhYmxlZChjb25zdCBzdHJ1Y3QgcWNhOGtfcHJpdiAqcHJpdikKJiM0Mzt7CiYjNDM7CXJldHVybiBwcml2LSZndDtzd2l0Y2hfaWQgPT0gUUNBOEtfSURfUUNBODMyNzsKJiM0Mzt9CiYjNDM7CiBzdGF0aWMgdm9pZCBxY2E4a19yd19yZWdfYWNrX2hhbmRsZXIoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogewogCXN0cnVjdCBxY2E4a19tZ210X2V0aF9kYXRhICptZ210X2V0aF9kYXRhOwpAQCAtMzE2LDYgJiM0MzszMjEsOSBAQCBzdGF0aWMgaW50IHFjYThrX3JlYWRfZXRoKHN0cnVjdCBxY2E4a19wcml2ICpwcml2LCB1MzIgcmVnLCB1MzIgKnZhbCwgaW50IGxlbikKIAlib29sIGFjazsKIAlpbnQgcmV0OwogCiYjNDM7CWlmIChxY2E4a19tZ210X2V0aF9kaXNhYmxlZChwcml2KSkKJiM0MzsJCXJldHVybiAtRU5YSU87CiYjNDM7CiAJc2tiID0gcWNhOGtfYWxsb2NfbWRpb19oZWFkZXIoTURJT19SRUFELCByZWcsIE5VTEwsCiAJCQkJICAgICAgUUNBOEtfRVRIRVJORVRfTURJT19QUklPUklUWSwgbGVuKTsKIAlpZiAoIXNrYikKQEAgLTM2OCw2ICYjNDM7Mzc2LDkgQEAgc3RhdGljIGludCBxY2E4a193cml0ZV9ldGgoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIHUzMiByZWcsIHUzMiAqdmFsLCBpbnQgbGVuKQogCWJvb2wgYWNrOwogCWludCByZXQ7CiAKJiM0MzsJaWYgKHFjYThrX21nbXRfZXRoX2Rpc2FibGVkKHByaXYpKQomIzQzOwkJcmV0dXJuIC1FTlhJTzsKJiM0MzsKIAlza2IgPSBxY2E4a19hbGxvY19tZGlvX2hlYWRlcihNRElPX1dSSVRFLCByZWcsIHZhbCwKIAkJCQkgICAgICBRQ0E4S19FVEhFUk5FVF9NRElPX1BSSU9SSVRZLCBsZW4pOwogCWlmICghc2tiKQpAQCAtNjMwLDYgJiM0Mzs2NDEsOSBAQCBxY2E4a19waHlfZXRoX2NvbW1hbmQoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIGJvb2wgcmVhZCwgaW50IHBoeSwKIAlpbnQgcmV0LCByZXQxOwogCWJvb2wgYWNrOwogCiYjNDM7CWlmIChxY2E4a19tZ210X2V0aF9kaXNhYmxlZChwcml2KSkKJiM0MzsJCXJldHVybiAtRU5YSU87CiYjNDM7CiAJaWYgKHJlZ251bSAmZ3Q7PSBRQ0E4S19NRElPX01BU1RFUl9NQVhfUkVHKQogCQlyZXR1cm4gLUVJTlZBTDsKIAo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMCAwNzoxNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNDc5CgkJCQkJCQlvdXRwdXQ6IDIzCgkJCQkJCQl0aG91Z2h0czogMTg4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFF1YWxjb21tIEF0aGVyb3MgUUNBOEsgRXRoZXJuZXQgU3dpdGNoIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHRvdWNoaW5nIGBkcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguY2AuIEludGVyZXN0aW5nLiBJdCBsb29rcyBsaWtlIHRoZXkmIzM5O3ZlIGFkZGVkIGEgY2hlY2sgZm9yIGBxY2E4a19tZ210X2V0aF9kaXNhYmxlZChwcml2KWAgd2l0aGluIGBxY2E4a19yZWFkX2V0aGAsIGBxY2E4a193cml0ZV9ldGhgLCBhbmQgYHFjYThrX3BoeV9ldGhfY29tbWFuZGAuIEVzc2VudGlhbGx5LCBpZiB0aGUgYHN3aXRjaF9pZGAgaXMgc2V0IHRvIGBRQ0E4S19JRF9RQ0E4MzI3YCwgaXQmIzM5O2xsIHJldHVybiBgLUVOWElPYC4gVGhpcyBpcyBmb3IgYSBRdWFsY29tbSBBdGhlcm9zIFFDQThLIEV0aGVybmV0IHN3aXRjaCBkcml2ZXIsIGEgRFNBIGRyaXZlciwgd2hpY2ggdXN1YWxseSBtZWFucyBpdCYjMzk7cyBwcmV0dHkgdGlnaHRseSBjb3VwbGVkIHdpdGggc3BlY2lmaWMgaGFyZHdhcmUuCgpNeSBpbW1lZGlhdGUgcXVlc3Rpb24gaXMsIGhvdyBlYXNpbHkgY291bGQgdGhpcyBkcml2ZXIgYmUgZXhlcmNpc2VkIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQ/IERTQSBkcml2ZXJzLCBieSB0aGVpciBuYXR1cmUsIG9mdGVuIHJlbHkgb24gdGhlIHVuZGVybHlpbmcgc3dpdGNoIGhhcmR3YXJlLiBDb3VsZCB0aGlzIGJlIG9uZSBvZiB0aG9zZSBjYXNlcywgb3IgaXMgdGhlcmUgc29tZSBhYnN0cmFjdGlvbiBsYXllciBpbnZvbHZlZD8gVG8gdW5kZXJzdGFuZCB0aGUgaW1wbGljYXRpb25zIG9mIHRoaXMgbmV3IGNoZWNrLCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY29udGV4dC4KCkxldCYjMzk7cyBkaWcgaW50byB0aGUgS2NvbmZpZyBmb3IgdGhpcyBkcml2ZXIuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoYXQgZGVwZW5kZW5jaWVzIGl0IGhhcywgaG93IGl0JiMzOTtzIGNvbmZpZ3VyZWQsIGFuZCB3aGV0aGVyIHRoZXJlIGFyZSBhbnkgY2x1ZXMgYWJvdXQgaXRzIGhhcmR3YXJlIHJlcXVpcmVtZW50cy4gVGhhdCB3aWxsIGhlbHAgbWUgdW5kZXJzdGFuZCB3aGV0aGVyIHRoaXMgcGF0Y2ggaXMgc2ltcGx5IGhhcmRlbmluZyBhIHNwZWNpZmljIGhhcmR3YXJlIGNvbmZpZ3VyYXRpb24sIG9yIGlmIGl0IG1pZ2h0IGltcGFjdCB2aXJ0dWFsaXplZCB1c2VzIGFzIHdlbGwuIEkmIzM5O2xsIGZvY3VzIG9uIGFueXRoaW5nIHRoYXQgc3BlYWtzIHRvIHRoZSBoYXJkd2FyZSBkZXBlbmRlbmNpZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTAgMDc6MTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE5FVF9EU0FfUUNBOEsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL3FjYS9LY29uZmlnPTI9Y29uZmlnIE5FVF9EU0FfQVI5MzMxXG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9LY29uZmlnLTEwLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9LY29uZmlnOjExOmNvbmZpZyBORVRfRFNBX1FDQThLXG5kcml2ZXJzL25ldC9kc2EvcWNhL0tjb25maWctMTItXHR0cmlzdGF0ZSBcJiMzNDtRdWFsY29tbSBBdGhlcm9zIFFDQThLIEV0aGVybmV0IHN3aXRjaCBmYW1pbHkgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvS2NvbmZpZy0xOC1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvS2NvbmZpZzoxOTpjb25maWcgTkVUX0RTQV9RQ0E4S19MRURTX1NVUFBPUlRcbmRyaXZlcnMvbmV0L2RzYS9xY2EvS2NvbmZpZy0yMC1cdGJvb2wgXCYjMzQ7UXVhbGNvbW0gQXRoZXJvcyBRQ0E4SyBFdGhlcm5ldCBzd2l0Y2ggZmFtaWx5IExFRHMgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzEwIDA3OjE3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMyMTEKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiA5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgYW5kIHdyaXR0ZW4gaW4gdGhlIGZpcnN0IHBlcnNvbjoKCioqSW5pdGlhbCBBc3Nlc3NtZW50KioKClJpZ2h0LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBNeSBpbW1lZGlhdGUgaW5zdGluY3QgaXMgdG8gaWRlbnRpZnkgdGhlIGRlcGVuZGVuY2llcy4gV2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBhIHN5c3RlbSwgYSBwcm9jZXNzLCBhIHByb2JsZW0g4oCTIHdoYXRldmVyICYjMzQ7aXQmIzM0OyBpcyDigJMgYW5kIHVuZGVyc3RhbmRpbmcgdGhlIGZvdW5kYXRpb25hbCBlbGVtZW50cyBpcyBwYXJhbW91bnQuIFdoYXQgYXJlIHRoZSBrZXkgdmFyaWFibGVzPyBUaGUgY29yZSBpbnB1dHM/IFRoZSB1bmRlcmx5aW5nIGFzc3VtcHRpb25zPyBQaW5wb2ludGluZyB0aGVzZSBkZXBlbmRlbmNpZXMgaXMgdGhlIGVzc2VudGlhbCBmaXJzdCBzdGVwIHRvIGFueSBlZmZlY3RpdmUgYW5hbHlzaXMuIFdoZXJlIGRvIHdlIGJlZ2luIHRvIHVucmF2ZWwgY29tcGxleGl0eT8KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMCAwNzoxNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2RzYS9xY2EvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMzAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAgMTpcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuICAgMjpcdGNvbmZpZyBORVRfRFNBX0FSOTMzMVxuICAgMzpcdFx0dHJpc3RhdGUgXCYjMzQ7UXVhbGNvbW0gQXRoZXJvcyBBUjkzMzEgRXRoZXJuZXQgc3dpdGNoIHN1cHBvcnRcJiMzNDtcbiAgIDQ6XHRcdGRlcGVuZHMgb24gTkVUX0RTQVxuICAgNTpcdFx0c2VsZWN0IE5FVF9EU0FfVEFHX0FSOTMzMVxuICAgNjpcdFx0c2VsZWN0IFJFR01BUFxuICAgNzpcdFx0aGVscFxuICAgODpcdFx0ICBUaGlzIGVuYWJsZXMgc3VwcG9ydCBmb3IgdGhlIFF1YWxjb21tIEF0aGVyb3MgQVI5MzMxIGJ1aWx0LWluIEV0aGVybmV0XG4gICA5Olx0XHQgIHN3aXRjaC5cbiAgMTA6XHRcbiAgMTE6XHRjb25maWcgTkVUX0RTQV9RQ0E4S1xuICAxMjpcdFx0dHJpc3RhdGUgXCYjMzQ7UXVhbGNvbW0gQXRoZXJvcyBRQ0E4SyBFdGhlcm5ldCBzd2l0Y2ggZmFtaWx5IHN1cHBvcnRcJiMzNDtcbiAgMTM6XHRcdHNlbGVjdCBORVRfRFNBX1RBR19RQ0FcbiAgMTQ6XHRcdHNlbGVjdCBSRUdNQVBcbiAgMTU6XHRcdGhlbHBcbiAgMTY6XHRcdCAgVGhpcyBlbmFibGVzIHN1cHBvcnQgZm9yIHRoZSBRdWFsY29tbSBBdGhlcm9zIFFDQThLIEV0aGVybmV0XG4gIDE3Olx0XHQgIHN3aXRjaCBjaGlwcy5cbiAgMTg6XHRcbiAgMTk6XHRjb25maWcgTkVUX0RTQV9RQ0E4S19MRURTX1NVUFBPUlRcbiAgMjA6XHRcdGJvb2wgXCYjMzQ7UXVhbGNvbW0gQXRoZXJvcyBRQ0E4SyBFdGhlcm5ldCBzd2l0Y2ggZmFtaWx5IExFRHMgc3VwcG9ydFwmIzM0O1xuICAyMTpcdFx0ZGVwZW5kcyBvbiBORVRfRFNBX1FDQThLXG4gIDIyOlx0XHRkZXBlbmRzIG9uIExFRFNfQ0xBU1M9eSB8fCBMRURTX0NMQVNTPU5FVF9EU0FfUUNBOEtcbiAgMjM6XHRcdGRlcGVuZHMgb24gTEVEU19UUklHR0VSU1xuICAyNDpcdFx0aGVscFxuICAyNTpcdFx0ICBUaGlzIGVuYWJsZWQgc3VwcG9ydCBmb3IgTEVEcyBwcmVzZW50IG9uIHRoZSBRdWFsY29tbSBBdGhlcm9zXG4gIDI2Olx0XHQgIFFDQThLIEV0aGVybmV0IHN3aXRjaCBjaGlwcy5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMCAwNzoxNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNzY3CgkJCQkJCQlvdXRwdXQ6IDIwCgkJCQkJCQl0aG91Z2h0czogNjgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBRQ0E4SyBFdGhlcm5ldCBTd2l0Y2ggRHJpdmVyKioKCk9rYXksIHNvIHRoaXMgaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXIsIGZvY3VzaW5nIG9uIFF1YWxjb21tIEF0aGVyb3MgUUNBOEsgRXRoZXJuZXQgc3dpdGNoIGNoaXBzLiBNeSBpbml0aWFsIHF1ZXN0aW9uIGlzIHdoZXRoZXIgb3Igbm90IHRoaXMgaXMgZ29pbmcgdG8gYmUgZW11bGF0YWJsZSBvciByZWFjaGFibGUgd2l0aGluIFFFTVUuIEZyb20gbXkgZXhwZXJpZW5jZSB3aXRoIHRoZXNlIGtpbmRzIG9mIERTQSBkcml2ZXJzLCBidWlsdCBmb3IgdmVyeSBzcGVjaWZpYyBoYXJkd2FyZSBzd2l0Y2hlcywgaXQmIzM5O3MgcHJldHR5IHJhcmUgdG8gc2VlIHRoZW0gZnVsbHkgZW11bGF0ZWQgaW4gYSBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50LiBTbywgSSBuZWVkIHRvIGRpZyBkZWVwZXIuIEZpcnN0LCBJIGhhdmUgdG8gZmlndXJlIG91dCBpZiB0aGlzIGRyaXZlciBjb21tdW5pY2F0ZXMgdmlhIE1ESU8gb3IgU1BJLiBUaGlzIGlzIHRoZSBzdGFydGluZyBwb2ludCBmb3IgdW5kZXJzdGFuZGluZyBpdHMgcG90ZW50aWFsIGZvciBpbnRlZ3JhdGlvbiBvciwgZnJhbmtseSwgdGhlIGxpa2VsaWhvb2Qgb2YgYSBzdWNjZXNzZnVsIGVtdWxhdGlvbiBlZmZvcnQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTAgMDc6MTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cWNhOGtfbWF0Y2gmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jPTIxODg9c3RhdGljIGludCBuc3NfY2NfcWNhOGtfcHJvYmUoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KVxuLS1cbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMjAzLVxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIyMDQ6c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbnNzX2NjX3FjYThrX21hdGNoX3RhYmxlW10gPSB7XG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjIwNS1cdHsgLmNvbXBhdGlibGUgPSBcJiMzNDtxY29tLHFjYTgwODQtbnNzY2NcJiMzNDsgfSxcbi0tXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjIwNy19O1xuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIyMDg6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgbnNzX2NjX3FjYThrX21hdGNoX3RhYmxlKTtcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMjA5LVxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jPTIyMTA9c3RhdGljIHN0cnVjdCBtZGlvX2RyaXZlciBuc3NfY2NfcWNhOGtfZHJpdmVyID0ge1xuLS1cbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMjEyLVx0XHQubmFtZSA9IFwmIzM0O3Fjb20scWNhOGstbnNzY2NcJiMzNDssXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjIxMzpcdFx0Lm9mX21hdGNoX3RhYmxlXHQ9IG5zc19jY19xY2E4a19tYXRjaF90YWJsZSxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMjE0LVx0fSxcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz0xMTIxPXFjYThrX3NldHVwX29mX3B3c19yZWcoc3RydWN0IHFjYThrX3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0xMTIyLXtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjExMjM6XHRjb25zdCBzdHJ1Y3QgcWNhOGtfbWF0Y2hfZGF0YSAqZGF0YSA9IHByaXYtXHUwMDNlaW5mbztcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTExMjQtXHRzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUgPSBwcml2LVx1MDAzZWRldi1cdTAwM2VvZl9ub2RlO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTIyMDQ9c3RhdGljIGNvbnN0IHN0cnVjdCBxY2E4a19pbmZvX29wcyBxY2E4eHh4X29wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0yMjA3LVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MjIwODpzdGF0aWMgY29uc3Qgc3RydWN0IHFjYThrX21hdGNoX2RhdGEgcWNhODMyNyA9IHtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTIyMDktXHQuaWQgPSBRQ0E4S19JRF9RQ0E4MzI3LFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTIyMTQtXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzoyMjE1OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcWNhOGtfbWF0Y2hfZGF0YSBxY2E4MzI4ID0ge1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMjIxNi1cdC5pZCA9IFFDQThLX0lEX1FDQTgzMjcsXG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMjIyMC1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjIyMjE6c3RhdGljIGNvbnN0IHN0cnVjdCBxY2E4a19tYXRjaF9kYXRhIHFjYTgzM3ggPSB7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0yMjIyLVx0LmlkID0gUUNBOEtfSURfUUNBODMzNyxcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLmg9Mzc4PXN0cnVjdCBxY2E4a19pbmZvX29wcyB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay5oLTM4MS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGsuaDozODI6c3RydWN0IHFjYThrX21hdGNoX2RhdGEge1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay5oLTM4My1cdHU4IGlkO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGsuaD00NDU9c3RydWN0IHFjYThrX3ByaXYge1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGsuaC00NjktXHRzdHJ1Y3QgcWNhOGtfcGNzIHBjc19wb3J0XzY7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLmg6NDcwOlx0Y29uc3Qgc3RydWN0IHFjYThrX21hdGNoX2RhdGEgKmluZm87XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLmgtNDcxLVx0c3RydWN0IHFjYThrX2xlZCBwb3J0c19sZWRbUUNBOEtfTEVEX0NPVU5UXTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMCAwNzoxNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MjYxCgkJCQkJCQlvdXRwdXQ6IDIyCgkJCQkJCQl0aG91Z2h0czogMzYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqRGl2aW5nIGludG8gdGhlIFFDQThLLThYWFggRHJpdmVyKioKCkFscmlnaHQsIHRpbWUgdG8gZ2V0IG15IGhhbmRzIGRpcnR5LiBJIG5lZWQgdG8gcGlucG9pbnQgdGhlIHJlbGV2YW50IHBhcnQgb2YgdGhlIFFDQThLLThYWFggZHJpdmVyIHJlc3BvbnNpYmxlIGZvciBkZXZpY2UgbWF0Y2hpbmcuIExldCYjMzk7cyBzdGFydCBieSB6ZXJvaW5nIGluIG9uIHRoZSBgcWNhOGtfb2ZfbWF0Y2hgIGZ1bmN0aW9uIHdpdGhpbiBgZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmNgLiBUaGlzIGlzIHdoZXJlIHRoZSBtYWdpYyBzaG91bGQgYmUgaGFwcGVuaW5nIOKAkyB0aGUgT3BlbiBGaXJtd2FyZSBtYXRjaGluZyBsb2dpYy4gSSBuZWVkIHRvIHJlZnJlc2ggbXkgbWVtb3J5IG9uIHRoZSBzcGVjaWZpY3Mgb2YgaG93IHRoZSBkZXZpY2UgdHJlZSBpcyBwYXJzZWQgYW5kIGhvdyB0aGVzZSBkcml2ZXJzIGFyZSBhdHRhY2hlZC4gVGhpcyBmaWxlIHNob3VsZCBiZSB0aGUgc3RhcnRpbmcgcG9pbnQsIHRoZSBrZXkgdG8gdW5kZXJzdGFuZGluZyBob3cgd2UgaWRlbnRpZnkgYW5kIGluaXRpYWxpemUgdGhlIFFDQThLLThYWFggc3dpdGNoLiBMZXQmIzM5O3Mgc2VlIHdoYXQmIzM5O3Mgd2hhdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTAgMDc6MTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cWNhOGtfb2ZfbWF0Y2gmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9MjIyMT1zdGF0aWMgY29uc3Qgc3RydWN0IHFjYThrX21hdGNoX2RhdGEgcWNhODMzeCA9IHtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0yMjI2LVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MjIyNzpzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBxY2E4a19vZl9tYXRjaFtdID0ge1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMjIyOC1cdHsgLmNvbXBhdGlibGUgPSBcJiMzNDtxY2EscWNhODMyN1wmIzM0OywgLmRhdGEgPSBcdTAwMjZxY2E4MzI3IH0sXG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9MjIzNT1zdGF0aWMgc3RydWN0IG1kaW9fZHJpdmVyIHFjYThrbWRpb19kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMjI0MC1cdFx0Lm5hbWUgPSBcJiMzNDtxY2E4a1wmIzM0OyxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjIyNDE6XHRcdC5vZl9tYXRjaF90YWJsZSA9IHFjYThrX29mX21hdGNoLFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMjI0Mi1cdFx0LnBtID0gXHUwMDI2cWNhOGtfcG1fb3BzLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMCAwNzoxNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1ODQ5CgkJCQkJCQlvdXRwdXQ6IDE4CgkJCQkJCQl0aG91Z2h0czogOTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTURJTyBEcml2ZXIgSW52ZXN0aWdhdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBgcWNhOGttZGlvX2RyaXZlcmAg4oCTIHRoYXQmIzM5O3MgYW4gTURJTyBkcml2ZXIuIE15IGluaXRpYWwgdGhvdWdodCBpcywgJiMzNDtTdGFuZGFyZCBRRU1VIHByb2JhYmx5IGRvZXNuJiMzOTt0IGVtdWxhdGUgTURJTyBkZXZpY2VzIGRpcmVjdGx5LCB1bmxlc3MgaXQmIzM5O3MgcGFydCBvZiBhIG1vcmUgY29tcHJlaGVuc2l2ZSBTb0MgZW11bGF0aW9uIG9yLCBtYXliZSwgdGhlcmUmIzM5O3MgYSBzcGVjaWFsaXplZCBNRElPIGJ1cyBlbXVsYXRvciBJJiMzOTttIG5vdCBpbW1lZGlhdGVseSB0aGlua2luZyBvZiYjMzQ7LiBUaGVuIGl0IGhpdCBtZTogd2FpdCwgZGlkbiYjMzk7dCBJIHJlYWQgc29tZXRoaW5nIGFib3V0IHN5emthbGxlciBoYXZpbmcgKnNvbWUqIGNhcGFiaWxpdHkgaW4gdGhpcyBhcmVhPyBNYXliZSBmb3IgaW5qZWN0aW5nIGRldmljZXMsIG9yIHVzaW5nIGR1bW15IGJ1c2VzPyBJdOKAmXMgdGltZSB0byBjaGVjayBpZiBzeXprYWxsZXIgaGFzIHNvbWUgc3BlY2lmaWMgc3VwcG9ydCBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBNRElPLiBMZXQmIzM5O3Mgc2VlIGlmIHRoYXQgYmVhcnMgZnJ1aXQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzEwIDA3OjE3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O21kaW9fYnVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAyMzcxIGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvOjE6V2hhdDogICAgICAgICAgL3N5cy9idXMvbWRpb19idXMvZGV2aWNlcy8uLi4vc3RhdGlzdGljcy9cbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYnVzLW1kaW86MjpXaGF0OiAgICAgICAgICAvc3lzL2NsYXNzL21kaW9fYnVzLy4uLi9zdGF0aXN0aWNzL1xuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpby0zLURhdGU6ICAgICAgICAgIEphbnVhcnkgMjAyMFxuLS1cbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYnVzLW1kaW89Nj1EZXNjcmlwdGlvbjpcbi0tXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvLTktXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvOjEwOldoYXQ6ICAgICAgICAgIC9zeXMvYnVzL21kaW9fYnVzL2RldmljZXMvLi4uL3N0YXRpc3RpY3MvdHJhbnNmZXJzXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvOjExOldoYXQ6ICAgICAgICAgIC9zeXMvY2xhc3MvbWRpb19idXMvLi4uL3RyYW5zZmVyc1xuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpby0xMi1EYXRlOiAgICAgICAgICBKYW51YXJ5IDIwMjBcbi0tXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvPTE1PURlc2NyaXB0aW9uOlxuLS1cbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYnVzLW1kaW8tMTctXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvOjE4OldoYXQ6ICAgICAgICAgIC9zeXMvYnVzL21kaW9fYnVzL2RldmljZXMvLi4uL3N0YXRpc3RpY3MvZXJyb3JzXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvOjE5OldoYXQ6ICAgICAgICAgIC9zeXMvY2xhc3MvbWRpb19idXMvLi4uL3N0YXRpc3RpY3MvZXJyb3JzXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvLTIwLURhdGU6ICAgICAgICAgIEphbnVhcnkgMjAyMFxuLS1cbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYnVzLW1kaW89MjM9RGVzY3JpcHRpb246XG4tLVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpby0yNS1cbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYnVzLW1kaW86MjY6V2hhdDogICAgICAgICAgL3N5cy9idXMvbWRpb19idXMvZGV2aWNlcy8uLi4vc3RhdGlzdGljcy93cml0ZXNcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYnVzLW1kaW86Mjc6V2hhdDogICAgICAgICAgL3N5cy9jbGFzcy9tZGlvX2J1cy8uLi4vc3RhdGlzdGljcy93cml0ZXNcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYnVzLW1kaW8tMjgtRGF0ZTogICAgICAgICAgSmFudWFyeSAyMDIwXG4tLVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpbz0zMT1EZXNjcmlwdGlvbjpcbi0tXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvLTMzLVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpbzozNDpXaGF0OiAgICAgICAgICAvc3lzL2J1cy9tZGlvX2J1cy9kZXZpY2VzLy4uLi9zdGF0aXN0aWNzL3JlYWRzXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvOjM1OldoYXQ6ICAgICAgICAgIC9zeXMvY2xhc3MvbWRpb19idXMvLi4uL3N0YXRpc3RpY3MvcmVhZHNcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYnVzLW1kaW8tMzYtRGF0ZTogICAgICAgICAgSmFudWFyeSAyMDIwXG4tLVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpbz0zOT1EZXNjcmlwdGlvbjpcbi0tXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvLTQxLVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpbzo0MjpXaGF0OiAgICAgICAgICAvc3lzL2J1cy9tZGlvX2J1cy9kZXZpY2VzLy4uLi9zdGF0aXN0aWNzL3RyYW5zZmVyc19cdTAwM2NhZGRyXHUwMDNlXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvOjQzOldoYXQ6ICAgICAgICAgIC9zeXMvY2xhc3MvbWRpb19idXMvLi4uL3N0YXRpc3RpY3MvdHJhbnNmZXJzX1x1MDAzY2FkZHJcdTAwM2VcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYnVzLW1kaW8tNDQtRGF0ZTogICAgICAgICAgSmFudWFyeSAyMDIwXG4tLVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpbz00Nz1EZXNjcmlwdGlvbjpcbi0tXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvLTQ5LVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpbzo1MDpXaGF0OiAgICAgICAgICAvc3lzL2J1cy9tZGlvX2J1cy9kZXZpY2VzLy4uLi9zdGF0aXN0aWNzL2Vycm9yc19cdTAwM2NhZGRyXHUwMDNlXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvOjUxOldoYXQ6ICAgICAgICAgIC9zeXMvY2xhc3MvbWRpb19idXMvLi4uL3N0YXRpc3RpY3MvZXJyb3JzX1x1MDAzY2FkZHJcdTAwM2VcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYnVzLW1kaW8tNTItRGF0ZTogICAgICAgICAgSmFudWFyeSAyMDIwXG4tLVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpbz01NT1EZXNjcmlwdGlvbjpcbi0tXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvLTU3LVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpbzo1ODpXaGF0OiAgICAgICAgICAvc3lzL2J1cy9tZGlvX2J1cy9kZXZpY2VzLy4uLi9zdGF0aXN0aWNzL3dyaXRlc19cdTAwM2NhZGRyXHUwMDNlXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvOjU5OldoYXQ6ICAgICAgICAgIC9zeXMvY2xhc3MvbWRpb19idXMvLi4uL3N0YXRpc3RpY3Mvd3JpdGVzX1x1MDAzY2FkZHJcdTAwM2VcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYnVzLW1kaW8tNjAtRGF0ZTogICAgICAgICAgSmFudWFyeSAyMDIwXG4tLVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpbz02Mz1EZXNjcmlwdGlvbjpcbi0tXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvLTY1LVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpbzo2NjpXaGF0OiAgICAgICAgICAvc3lzL2J1cy9tZGlvX2J1cy9kZXZpY2VzLy4uLi9zdGF0aXN0aWNzL3JlYWRzX1x1MDAzY2FkZHJcdTAwM2VcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYnVzLW1kaW86Njc6V2hhdDogICAgICAgICAgL3N5cy9jbGFzcy9tZGlvX2J1cy8uLi4vc3RhdGlzdGljcy9yZWFkc19cdTAwM2NhZGRyXHUwMDNlXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvLTY4LURhdGU6ICAgICAgICAgIEphbnVhcnkgMjAyMFxuLS1cbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtbmV0LXBoeWRldjoxOldoYXQ6XHRcdC9zeXMvY2xhc3MvbWRpb19idXMvXHUwMDNjYnVzXHUwMDNlL1x1MDAzY2RldmljZVx1MDAzZS9hdHRhY2hlZF9kZXZcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtbmV0LXBoeWRldi0yLURhdGU6XHRcdE1heSAyMDE3XG4tLVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1uZXQtcGh5ZGV2PTU9RGVzY3JpcHRpb246XG4tLVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1uZXQtcGh5ZGV2LTgtXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWNsYXNzLW5ldC1waHlkZXY6OTpXaGF0Olx0XHQvc3lzL2NsYXNzL21kaW9fYnVzL1x1MDAzY2J1c1x1MDAzZS9cdTAwM2NkZXZpY2VcdTAwM2UvcGh5X2hhc19maXh1cHNcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtbmV0LXBoeWRldi0xMC1EYXRlOlx0XHRGZWJydWFyeSAyMDE0XG4tLVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1uZXQtcGh5ZGV2PTEzPURlc2NyaXB0aW9uOlxuLS1cbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtbmV0LXBoeWRldi0xOC1cbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtbmV0LXBoeWRldjoxOTpXaGF0Olx0XHQvc3lzL2NsYXNzL21kaW9fYnVzL1x1MDAzY2J1c1x1MDAzZS9cdTAwM2NkZXZpY2VcdTAwM2UvcGh5X2lkXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWNsYXNzLW5ldC1waHlkZXYtMjAtRGF0ZTpcdFx0Tm92ZW1iZXIgMjAxMlxuLS1cbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtbmV0LXBoeWRldj0yMz1EZXNjcmlwdGlvbjpcbi0tXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWNsYXNzLW5ldC1waHlkZXYtMjgtXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWNsYXNzLW5ldC1waHlkZXY6Mjk6V2hhdDpcdFx0L3N5cy9jbGFzcy9tZGlvX2J1cy9cdTAwM2NidXNcdTAwM2UvXHUwMDNjZGV2aWNlXHUwMDNlL2M0NV9waHlfaWRzL21tZFx1MDAzY25cdTAwM2VfZGV2aWNlX2lkXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWNsYXNzLW5ldC1waHlkZXYtMzAtRGF0ZTpcdFx0SnVuZSAyMDI1XG4tLVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1uZXQtcGh5ZGV2PTMzPURlc2NyaXB0aW9uOlxuLS1cbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtbmV0LXBoeWRldi0zOC1cbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtbmV0LXBoeWRldjozOTpXaGF0Olx0XHQvc3lzL2NsYXNzL21kaW9fYnVzL1x1MDAzY2J1c1x1MDAzZS9cdTAwM2NkZXZpY2VcdTAwM2UvcGh5X2ludGVyZmFjZVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1uZXQtcGh5ZGV2LTQwLURhdGU6XHRcdEZlYnJ1YXJ5IDIwMTRcbi0tXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWNsYXNzLW5ldC1waHlkZXY9NDM9RGVzY3JpcHRpb246XG4tLVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1uZXQtcGh5ZGV2LTU1LVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1uZXQtcGh5ZGV2OjU2OldoYXQ6XHRcdC9zeXMvY2xhc3MvbWRpb19idXMvXHUwMDNjYnVzXHUwMDNlL1x1MDAzY2RldmljZVx1MDAzZS9waHlfc3RhbmRhbG9uZVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1uZXQtcGh5ZGV2LTU3LURhdGU6XHRcdE1heSAyMDE5XG4tLVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1uZXQtcGh5ZGV2PTYwPURlc2NyaXB0aW9uOlxuLS1cbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtbmV0LXBoeWRldi02NC1cbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtbmV0LXBoeWRldjo2NTpXaGF0Olx0XHQvc3lzL2NsYXNzL21kaW9fYnVzL1x1MDAzY2J1c1x1MDAzZS9cdTAwM2NkZXZpY2VcdTAwM2UvcGh5X2Rldl9mbGFnc1xuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1uZXQtcGh5ZGV2LTY2LURhdGU6XHRcdE1hcmNoIDIwMjFcbi0tXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMucnN0PTM1Mj1maW5kczo6XG4tLVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L3N0bWljcm8vc3RtbWFjLnJzdC0zNjEtXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMucnN0OjM2MjogICAgICAgIHN0cnVjdCBzdG1tYWNfbWRpb19idXNfZGF0YSAqbWRpb19idXNfZGF0YTtcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy5yc3QtMzYzLVxuLS1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy5yc3Q9NTAyPUZvciBNRElPIGJ1cyBkYXRhLCB3ZSBoYXZlOlxuLS1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy5yc3QtNTA1LVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L3N0bWljcm8vc3RtbWFjLnJzdDo1MDY6ICAgIHN0cnVjdCBzdG1tYWNfbWRpb19idXNfZGF0YSB7XG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMucnN0LTUwNy1cbi0tXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZHNhL2RzYS5yc3Q9NDMyPURTQSBjdXJyZW50bHkgbGV2ZXJhZ2VzIHRoZSBmb2xsb3dpbmcgc3Vic3lzdGVtczpcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kc2EvZHNhLnJzdC00MzMtXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZHNhL2RzYS5yc3Q6NDM0Oi0gTURJTy9QSFkgbGlicmFyeTogYGBkcml2ZXJzL25ldC9waHkvcGh5LmNgYCwgYGBtZGlvX2J1cy5jYGBcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kc2EvZHNhLnJzdC00MzUtLSBTd2l0Y2hkZXY6YGBuZXQvc3dpdGNoZGV2LypgYFxuLS1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9rYXBpLnJzdD0xMTA9UEhZIFN1cHBvcnRcbi0tXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcva2FwaS5yc3QtMTMzLVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2thcGkucnN0OjEzNDouLiBrZXJuZWwtZG9jOjogZHJpdmVycy9uZXQvcGh5L21kaW9fYnVzLmNcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9rYXBpLnJzdC0xMzUtICAgOmV4cG9ydDpcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9rYXBpLnJzdC0xMzYtXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcva2FwaS5yc3Q6MTM3Oi4uIGtlcm5lbC1kb2M6OiBkcml2ZXJzL25ldC9waHkvbWRpb19idXMuY1xuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2thcGkucnN0LTEzOC0gICA6aW50ZXJuYWw6XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9tZWRpYXRlay9tdDc5ODFiLW9wZW53cnQtb25lLmR0cz0xMDg9XHRnbWFjMTogbWFjQDEge1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWVkaWF0ZWsvbXQ3OTgxYi1vcGVud3J0LW9uZS5kdHMtMTE1LVxuYXJjaC9hcm02NC9ib290L2R0cy9tZWRpYXRlay9tdDc5ODFiLW9wZW53cnQtb25lLmR0czoxMTY6XHUwMDI2bWRpb19idXMge1xuYXJjaC9hcm02NC9ib290L2R0cy9tZWRpYXRlay9tdDc5ODFiLW9wZW53cnQtb25lLmR0cy0xMTctXHRwaHkxNTogZXRoZXJuZXQtcGh5QGYge1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWVkaWF0ZWsvbXQ3OTgxYi5kdHNpPTQzMT1cdFx0ZXRoOiBldGhlcm5ldEAxNTEwMDAwMCB7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9tZWRpYXRlay9tdDc5ODFiLmR0c2ktNDc2LVxuYXJjaC9hcm02NC9ib290L2R0cy9tZWRpYXRlay9tdDc5ODFiLmR0c2k6NDc3Olx0XHRcdG1kaW9fYnVzOiBtZGlvLWJ1cyB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21lZGlhdGVrL210Nzk4MWIuZHRzaS00NzgtXHRcdFx0XHQjYWRkcmVzcy1jZWxscyA9IFx1MDAzYzFcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9tZWRpYXRlay9tdDc5ODhhLmR0c2k9OTg4PVx0XHRcdGdtYWMyOiBtYWNAMiB7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9tZWRpYXRlay9tdDc5ODhhLmR0c2ktOTkzLVxuYXJjaC9hcm02NC9ib290L2R0cy9tZWRpYXRlay9tdDc5ODhhLmR0c2k6OTk0Olx0XHRcdG1kaW9fYnVzOiBtZGlvLWJ1cyB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21lZGlhdGVrL210Nzk4OGEuZHRzaS05OTUtXHRcdFx0XHQjYWRkcmVzcy1jZWxscyA9IFx1MDAzYzFcdTAwM2U7XG4tLVxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3o5NDc3LmM9MzIxPXN0YXRpYyBpbnQga3N6OTQ3N19wY3NfY3JlYXRlKHN0cnVjdCBrc3pfZGV2aWNlICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3o5NDc3LmMtMzMyLVxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3o5NDc3LmM6MzMzOlx0YnVzLVx1MDAzZW5hbWUgPSBcJiMzNDtrc3pfcGNzX21kaW9fYnVzXCYjMzQ7O1xuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3o5NDc3LmMtMzM0LVx0c25wcmludGYoYnVzLVx1MDAzZWlkLCBNSUlfQlVTX0lEX1NJWkUsIFwmIzM0OyVzLXBjc1wmIzM0Oyxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzel9jb21tb24uYz0yMTI1PWludCBrc3pfcGFyZW50X21kaW9fcmVhZChzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgYWRkciwgaW50IHJlZ251bSlcbi0tXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzel9jb21tb24uYy0yMTI4LVxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3pfY29tbW9uLmM6MjEyOTpcdHJldHVybiBtZGlvYnVzX3JlYWRfbmVzdGVkKGRldi1cdTAwM2VwYXJlbnRfbWRpb19idXMsIGFkZHIsIHJlZ251bSk7XG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzel9jb21tb24uYy0yMTMwLX1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzel9jb21tb24uYz0yMTQ1PWludCBrc3pfcGFyZW50X21kaW9fd3JpdGUoc3RydWN0IG1paV9idXMgKmJ1cywgaW50IGFkZHIsIGludCByZWdudW0sIHUxNiB2YWwpXG4tLVxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3pfY29tbW9uLmMtMjE0OC1cbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6X2NvbW1vbi5jOjIxNDk6XHRyZXR1cm4gbWRpb2J1c193cml0ZV9uZXN0ZWQoZGV2LVx1MDAzZXBhcmVudF9tZGlvX2J1cywgYWRkciwgcmVnbnVtLCB2YWwpO1xuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3pfY29tbW9uLmMtMjE1MC19XG4tLVxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3pfY29tbW9uLmM9MjMyMT1pbnQga3N6X21kaW9fcmVnaXN0ZXIoc3RydWN0IGtzel9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzel9jb21tb24uYy0yMzQ3LVxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3pfY29tbW9uLmM6MjM0ODpcdFx0ZGV2LVx1MDAzZXBhcmVudF9tZGlvX2J1cyA9IHBhcmVudF9idXM7XG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzel9jb21tb24uYy0yMzQ5LVx0fVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6X2NvbW1vbi5oPTIwNj1zdHJ1Y3Qga3N6X2RldmljZSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3pfY29tbW9uLmgtMjU4LVx0LyoqXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzel9jb21tb24uaDoyNTk6XHQgKiBAcGFyZW50X21kaW9fYnVzOiBQb2ludGVyIHRvIHRoZSBleHRlcm5hbCBNRElPIGJ1cyBjb250cm9sbGVyLlxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3pfY29tbW9uLmgtMjYwLVx0ICpcbi0tXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzel9jb21tb24uaC0yNjUtXHQgKi9cbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6X2NvbW1vbi5oOjI2NjpcdHN0cnVjdCBtaWlfYnVzICpwYXJlbnRfbWRpb19idXM7XG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzel9jb21tb24uaC0yNjctXG4tLVxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9sYW45Mzd4X21haW4uYz0xNDM9c3RhdGljIGludCBsYW45Mzd4X2NyZWF0ZV9waHlfYWRkcl9tYXAoc3RydWN0IGtzel9kZXZpY2UgKmRldiwgYm9vbCBzaWRlX21kaW8pXG4tLVxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9sYW45Mzd4X21haW4uYy0yMTAtLyoqXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2xhbjkzN3hfbWFpbi5jOjIxMTogKiBsYW45Mzd4X21kaW9fYnVzX3ByZWluaXQgLSBQcmUtaW5pdGlhbGl6ZSBNRElPIGJ1cyBmb3IgYWNjZXNzaW5nIFBIWXMuXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2xhbjkzN3hfbWFpbi5jLTIxMi0gKiBAZGV2OiBQb2ludGVyIHRvIGRldmljZSBzdHJ1Y3R1cmUuXG4tLVxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9sYW45Mzd4X21haW4uYy0yMjYtICovXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2xhbjkzN3hfbWFpbi5jOjIyNzpzdGF0aWMgaW50IGxhbjkzN3hfbWRpb19idXNfcHJlaW5pdChzdHJ1Y3Qga3N6X2RldmljZSAqZGV2LCBib29sIHNpZGVfbWRpbylcbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAvbGFuOTM3eF9tYWluLmMtMjI4LXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2xhbjkzN3hfbWFpbi5jPTY4NT1zdGF0aWMgaW50IGxhbjkzN3hfbWRpb19yZWdpc3RlcihzdHJ1Y3Qga3N6X2RldmljZSAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAvbGFuOTM3eF9tYWluLmMtNzExLVxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9sYW45Mzd4X21haW4uYzo3MTI6XHRcdGRldi1cdTAwM2VwYXJlbnRfbWRpb19idXMgPSBwYXJlbnRfYnVzO1xuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9sYW45Mzd4X21haW4uYy03MTMtXHR9XG4tLVxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9sYW45Mzd4X21haW4uYy03MjAtXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2xhbjkzN3hfbWFpbi5jOjcyMTpcdHJldCA9IGxhbjkzN3hfbWRpb19idXNfcHJlaW5pdChkZXYsICEhcGFyZW50X2J1cyk7XG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2xhbjkzN3hfbWFpbi5jLTcyMi1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9MTI2PWludCBtdjg4ZTZ4eHhfd2FpdF9iaXQoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgYWRkciwgaW50IHJlZyxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xMzItXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxMzM6c3RydWN0IG1paV9idXMgKm12ODhlNnh4eF9kZWZhdWx0X21kaW9fYnVzKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcClcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTEzNC17XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxMzU6XHRzdHJ1Y3QgbXY4OGU2eHh4X21kaW9fYnVzICptZGlvX2J1cztcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTEzNi1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjEzNzpcdG1kaW9fYnVzID0gbGlzdF9maXJzdF9lbnRyeV9vcl9udWxsKFx1MDAyNmNoaXAtXHUwMDNlbWRpb3MsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxMzg6XHRcdFx0XHRcdCAgICBzdHJ1Y3QgbXY4OGU2eHh4X21kaW9fYnVzLCBsaXN0KTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjEzOTpcdGlmICghbWRpb19idXMpXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xNDAtXHRcdHJldHVybiBOVUxMO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTQxLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MTQyOlx0cmV0dXJuIG1kaW9fYnVzLVx1MDAzZWJ1cztcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTE0My19XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9Mzc1Nz1zdGF0aWMgaW50IG12ODhlNnh4eF9tZGlvX3JlYWQoc3RydWN0IG1paV9idXMgKmJ1cywgaW50IHBoeSwgaW50IHJlZylcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM3NTgte1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Mzc1OTpcdHN0cnVjdCBtdjg4ZTZ4eHhfbWRpb19idXMgKm1kaW9fYnVzID0gYnVzLVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozNzYwOlx0c3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwID0gbWRpb19idXMtXHUwMDNlY2hpcDtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM3NjEtXHR1MTYgcHJvZF9pZDtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz0zNzgzPXN0YXRpYyBpbnQgbXY4OGU2eHh4X21kaW9fcmVhZF9jNDUoc3RydWN0IG1paV9idXMgKmJ1cywgaW50IHBoeSwgaW50IGRldmFkLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM3ODUte1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Mzc4NjpcdHN0cnVjdCBtdjg4ZTZ4eHhfbWRpb19idXMgKm1kaW9fYnVzID0gYnVzLVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozNzg3Olx0c3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwID0gbWRpb19idXMtXHUwMDNlY2hpcDtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM3ODgtXHR1MTYgdmFsO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTM4MDE9c3RhdGljIGludCBtdjg4ZTZ4eHhfbWRpb193cml0ZShzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgcGh5LCBpbnQgcmVnLCB1MTYgdmFsKVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzgwMi17XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozODAzOlx0c3RydWN0IG12ODhlNnh4eF9tZGlvX2J1cyAqbWRpb19idXMgPSBidXMtXHUwMDNlcHJpdjtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM4MDQ6XHRzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAgPSBtZGlvX2J1cy1cdTAwM2VjaGlwO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzgwNS1cdGludCBlcnI7XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9MzgxNz1zdGF0aWMgaW50IG12ODhlNnh4eF9tZGlvX3dyaXRlX2M0NShzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgcGh5LCBpbnQgZGV2YWQsXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzgxOS17XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozODIwOlx0c3RydWN0IG12ODhlNnh4eF9tZGlvX2J1cyAqbWRpb19idXMgPSBidXMtXHUwMDNlcHJpdjtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM4MjE6XHRzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAgPSBtZGlvX2J1cy1cdTAwM2VjaGlwO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzgyMi1cdGludCBlcnI7XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9MzgzND1zdGF0aWMgaW50IG12ODhlNnh4eF9tZGlvX3JlZ2lzdGVyKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zODM4LVx0c3RhdGljIGludCBpbmRleDtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM4Mzk6XHRzdHJ1Y3QgbXY4OGU2eHh4X21kaW9fYnVzICptZGlvX2J1cztcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM4NDAtXHRzdHJ1Y3QgbWlpX2J1cyAqYnVzO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM4NTQtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozODU1Olx0YnVzID0gbWRpb2J1c19hbGxvY19zaXplKHNpemVvZigqbWRpb19idXMpKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM4NTYtXHRpZiAoIWJ1cylcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zODU4LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Mzg1OTpcdG1kaW9fYnVzID0gYnVzLVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozODYwOlx0bWRpb19idXMtXHUwMDNlYnVzID0gYnVzO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Mzg2MTpcdG1kaW9fYnVzLVx1MDAzZWNoaXAgPSBjaGlwO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Mzg2MjpcdElOSVRfTElTVF9IRUFEKFx1MDAyNm1kaW9fYnVzLVx1MDAzZWxpc3QpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Mzg2MzpcdG1kaW9fYnVzLVx1MDAzZWV4dGVybmFsID0gZXh0ZXJuYWw7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zODY0LVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM4OTUtXHRpZiAoZXh0ZXJuYWwpXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozODk2Olx0XHRsaXN0X2FkZF90YWlsKFx1MDAyNm1kaW9fYnVzLVx1MDAzZWxpc3QsIFx1MDAyNmNoaXAtXHUwMDNlbWRpb3MpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzg5Ny1cdGVsc2VcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM4OTg6XHRcdGxpc3RfYWRkKFx1MDAyNm1kaW9fYnVzLVx1MDAzZWxpc3QsIFx1MDAyNmNoaXAtXHUwMDNlbWRpb3MpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzg5OS1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz0zOTA3PXN0YXRpYyB2b2lkIG12ODhlNnh4eF9tZGlvc191bnJlZ2lzdGVyKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcClcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zOTA5LXtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM5MTA6XHRzdHJ1Y3QgbXY4OGU2eHh4X21kaW9fYnVzICptZGlvX2J1cywgKnA7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zOTExLVx0c3RydWN0IG1paV9idXMgKmJ1cztcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM5MTItXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozOTEzOlx0bGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKG1kaW9fYnVzLCBwLCBcdTAwMjZjaGlwLVx1MDAzZW1kaW9zLCBsaXN0KSB7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozOTE0Olx0XHRidXMgPSBtZGlvX2J1cy1cdTAwM2VidXM7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zOTE1LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzkxNjpcdFx0aWYgKCFtZGlvX2J1cy1cdTAwM2VleHRlcm5hbClcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM5MTctXHRcdFx0bXY4OGU2eHh4X2cyX2lycV9tZGlvX2ZyZWUoY2hpcCwgYnVzKTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz0zOTgwPXN0YXRpYyBpbnQgbXY4OGU2eHh4X3NldHVwKHN0cnVjdCBkc2Ffc3dpdGNoICpkcylcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zOTkxLVx0Y2hpcC1cdTAwM2VkcyA9IGRzO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Mzk5MjpcdGRzLVx1MDAzZXVzZXJfbWlpX2J1cyA9IG12ODhlNnh4eF9kZWZhdWx0X21kaW9fYnVzKGNoaXApO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzk5My1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuaD00ODg9c3RydWN0IG12ODhlNnh4eF9idXNfb3BzIHtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuaC00OTMtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuaDo0OTQ6c3RydWN0IG12ODhlNnh4eF9tZGlvX2J1cyB7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuaC00OTUtXHRzdHJ1Y3QgbWlpX2J1cyAqYnVzO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5oPTg3Mz1pbnQgbXY4OGU2eHh4X3dhaXRfYml0KHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IGFkZHIsIGludCByZWcsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuaC04NzQtXHRcdCAgICAgICBpbnQgYml0LCBpbnQgdmFsKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5oOjg3NTpzdHJ1Y3QgbWlpX2J1cyAqbXY4OGU2eHh4X2RlZmF1bHRfbWRpb19idXMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5oLTg3Ni1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDIuYz03ODc9aW50IG12ODhlNnh4eF9nMl9zbWlfcGh5X3JlYWRfYzIyKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDIuYy03OTAte1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyLmM6NzkxOlx0c3RydWN0IG12ODhlNnh4eF9tZGlvX2J1cyAqbWRpb19idXMgPSBidXMtXHUwMDNlcHJpdjtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMi5jOjc5MjpcdGJvb2wgZXh0ZXJuYWwgPSBtZGlvX2J1cy1cdTAwM2VleHRlcm5hbDtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMi5jLTc5My1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDIuYz03OTg9aW50IG12ODhlNnh4eF9nMl9zbWlfcGh5X3JlYWRfYzQ1KHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDIuYy04MDEte1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyLmM6ODAyOlx0c3RydWN0IG12ODhlNnh4eF9tZGlvX2J1cyAqbWRpb19idXMgPSBidXMtXHUwMDNlcHJpdjtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMi5jOjgwMzpcdGJvb2wgZXh0ZXJuYWwgPSBtZGlvX2J1cy1cdTAwM2VleHRlcm5hbDtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMi5jLTgwNC1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDIuYz04MDk9aW50IG12ODhlNnh4eF9nMl9zbWlfcGh5X3dyaXRlX2MyMihzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyLmMtODEyLXtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMi5jOjgxMzpcdHN0cnVjdCBtdjg4ZTZ4eHhfbWRpb19idXMgKm1kaW9fYnVzID0gYnVzLVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDIuYzo4MTQ6XHRib29sIGV4dGVybmFsID0gbWRpb19idXMtXHUwMDNlZXh0ZXJuYWw7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDIuYy04MTUtXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyLmM9ODIwPWludCBtdjg4ZTZ4eHhfZzJfc21pX3BoeV93cml0ZV9jNDUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMi5jLTgyMy17XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDIuYzo4MjQ6XHRzdHJ1Y3QgbXY4OGU2eHh4X21kaW9fYnVzICptZGlvX2J1cyA9IGJ1cy1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyLmM6ODI1Olx0Ym9vbCBleHRlcm5hbCA9IG1kaW9fYnVzLVx1MDAzZWV4dGVybmFsO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyLmMtODI2LVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcGNzLTYzNTIuYz0zMjE9c3RhdGljIGludCBtdjg4ZTYzNTJfcGNzX2luaXQoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydClcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3Bjcy02MzUyLmMtMzMzLVx0aXJxID0gbXY4OGU2eHh4X3NlcmRlc19pcnFfbWFwcGluZyhjaGlwLCBwb3J0KTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcGNzLTYzNTIuYzozMzQ6XHRidXMgPSBtdjg4ZTZ4eHhfZGVmYXVsdF9tZGlvX2J1cyhjaGlwKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcGNzLTYzNTIuYy0zMzUtXHRkZXYgPSBjaGlwLVx1MDAzZWRldjtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3Bjcy02Mzl4LmM9NTQ5PXN0YXRpYyBpbnQgbXY4OGU2MzkwX3Bjc19pbml0KHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9wY3MtNjM5eC5jLTU1OS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcGNzLTYzOXguYzo1NjA6XHRidXMgPSBtdjg4ZTZ4eHhfZGVmYXVsdF9tZGlvX2J1cyhjaGlwKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcGNzLTYzOXguYy01NjEtXHRkZXYgPSBjaGlwLVx1MDAzZWRldjtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3Bjcy02Mzl4LmM9OTI3PXN0YXRpYyBpbnQgbXY4OGU2MzkzeF9wY3NfaW5pdChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0KVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcGNzLTYzOXguYy05MzctXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3Bjcy02Mzl4LmM6OTM4Olx0YnVzID0gbXY4OGU2eHh4X2RlZmF1bHRfbWRpb19idXMoY2hpcCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3Bjcy02Mzl4LmMtOTM5LVx0ZGV2ID0gY2hpcC1cdTAwM2VkZXY7XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9waHkuYz0yOD1pbnQgbXY4OGU2eHh4X3BoeV9yZWFkKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBoeSwgaW50IHJlZywgdTE2ICp2YWwpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9waHkuYy0zMi1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcGh5LmM6MzM6XHRidXMgPSBtdjg4ZTZ4eHhfZGVmYXVsdF9tZGlvX2J1cyhjaGlwKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcGh5LmMtMzQtXHRpZiAoIWJ1cylcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BoeS5jPTQzPWludCBtdjg4ZTZ4eHhfcGh5X3dyaXRlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBoeSwgaW50IHJlZywgdTE2IHZhbClcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BoeS5jLTQ3LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9waHkuYzo0ODpcdGJ1cyA9IG12ODhlNnh4eF9kZWZhdWx0X21kaW9fYnVzKGNoaXApO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9waHkuYy00OS1cdGlmICghYnVzKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcGh5LmM9NTg9aW50IG12ODhlNnh4eF9waHlfcmVhZF9jNDUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcGh5LCBpbnQgZGV2YWQsXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9waHkuYy02My1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcGh5LmM6NjQ6XHRidXMgPSBtdjg4ZTZ4eHhfZGVmYXVsdF9tZGlvX2J1cyhjaGlwKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcGh5LmMtNjUtXHRpZiAoIWJ1cylcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BoeS5jPTc0PWludCBtdjg4ZTZ4eHhfcGh5X3dyaXRlX2M0NShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwaHksIGludCBkZXZhZCxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BoeS5jLTc5LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9waHkuYzo4MDpcdGJ1cyA9IG12ODhlNnh4eF9kZWZhdWx0X21kaW9fYnVzKGNoaXApO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9waHkuYy04MS1cdGlmICghYnVzKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9uZXRjL25ldGNfbWFpbi5jPTEzMz1zdGF0aWMgaW50IG5ldGNfcG9ydF9nZXRfaW5mb19mcm9tX2R0KHN0cnVjdCBuZXRjX3BvcnQgKm5wLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9uZXRjL25ldGNfbWFpbi5jLTE0OC1cbmRyaXZlcnMvbmV0L2RzYS9uZXRjL25ldGNfbWFpbi5jOjE0OTpzdGF0aWMgaW50IG5ldGNfcG9ydF9jcmVhdGVfZW1kaW9fYnVzKHN0cnVjdCBuZXRjX3BvcnQgKm5wLFxuZHJpdmVycy9uZXQvZHNhL25ldGMvbmV0Y19tYWluLmMtMTUwLVx0XHRcdFx0ICAgICAgc3RydWN0IGRldmljZV9ub2RlICpub2RlKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9uZXRjL25ldGNfbWFpbi5jLTE4OS1cbmRyaXZlcnMvbmV0L2RzYS9uZXRjL25ldGNfbWFpbi5jOjE5MDpzdGF0aWMgaW50IG5ldGNfcG9ydF9jcmVhdGVfbWRpb19idXMoc3RydWN0IG5ldGNfcG9ydCAqbnAsXG5kcml2ZXJzL25ldC9kc2EvbmV0Yy9uZXRjX21haW4uYy0xOTEtXHRcdFx0XHQgICAgIHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSlcbi0tXG5kcml2ZXJzL25ldC9kc2EvbmV0Yy9uZXRjX21haW4uYy0xOTctXHRpZiAobWRpb19ub2RlKSB7XG5kcml2ZXJzL25ldC9kc2EvbmV0Yy9uZXRjX21haW4uYzoxOTg6XHRcdGVyciA9IG5ldGNfcG9ydF9jcmVhdGVfZW1kaW9fYnVzKG5wLCBtZGlvX25vZGUpO1xuZHJpdmVycy9uZXQvZHNhL25ldGMvbmV0Y19tYWluLmMtMTk5LVx0XHRvZl9ub2RlX3B1dChtZGlvX25vZGUpO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9uZXRjL25ldGNfbWFpbi5jPTI0MT1zdGF0aWMgaW50IG5ldGNfaW5pdF9hbGxfcG9ydHMoc3RydWN0IG5ldGNfc3dpdGNoICpwcml2KVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9uZXRjL25ldGNfbWFpbi5jLTI4My1cdFx0aWYgKGRzYV9wb3J0X2lzX3VzZXIoZHApKSB7XG5kcml2ZXJzL25ldC9kc2EvbmV0Yy9uZXRjX21haW4uYzoyODQ6XHRcdFx0ZXJyID0gbmV0Y19wb3J0X2NyZWF0ZV9tZGlvX2J1cyhucCwgZHAtXHUwMDNlZG4pO1xuZHJpdmVycy9uZXQvZHNhL25ldGMvbmV0Y19tYWluLmMtMjg1LVx0XHRcdGlmIChlcnIpIHtcbi0tXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L2ZlbGl4LmM9MTUxNz1zdGF0aWMgaW50IGZlbGl4X2luaXRfc3RydWN0cyhzdHJ1Y3QgZmVsaXggKmZlbGl4LCBpbnQgbnVtX3BoeXNfcG9ydHMpXG4tLVxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9mZWxpeC5jLTE2MDItXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L2ZlbGl4LmM6MTYwMzpcdGlmIChmZWxpeC1cdTAwM2VpbmZvLVx1MDAzZW1kaW9fYnVzX2FsbG9jKSB7XG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L2ZlbGl4LmM6MTYwNDpcdFx0ZXJyID0gZmVsaXgtXHUwMDNlaW5mby1cdTAwM2VtZGlvX2J1c19hbGxvYyhvY2Vsb3QpO1xuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9mZWxpeC5jLTE2MDUtXHRcdGlmIChlcnIgXHUwMDNjIDApXG4tLVxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9mZWxpeC5jPTE2OTY9c3RhdGljIGludCBmZWxpeF9zZXR1cChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpXG4tLVxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9mZWxpeC5jLTE3Njgtb3V0X21kaW9idXNfZnJlZTpcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXguYzoxNzY5Olx0aWYgKGZlbGl4LVx1MDAzZWluZm8tXHUwMDNlbWRpb19idXNfZnJlZSlcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXguYzoxNzcwOlx0XHRmZWxpeC1cdTAwM2VpbmZvLVx1MDAzZW1kaW9fYnVzX2ZyZWUob2NlbG90KTtcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXguYy0xNzcxLVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXguYz0xNzc1PXN0YXRpYyB2b2lkIGZlbGl4X3RlYXJkb3duKHN0cnVjdCBkc2Ffc3dpdGNoICpkcylcbi0tXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L2ZlbGl4LmMtMTc5Mi1cbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXguYzoxNzkzOlx0aWYgKGZlbGl4LVx1MDAzZWluZm8tXHUwMDNlbWRpb19idXNfZnJlZSlcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXguYzoxNzk0Olx0XHRmZWxpeC1cdTAwM2VpbmZvLVx1MDAzZW1kaW9fYnVzX2ZyZWUob2NlbG90KTtcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXguYy0xNzk1LX1cbi0tXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L2ZlbGl4Lmg9MjI9c3RydWN0IGZlbGl4X2luZm8ge1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXguaC01NS1cbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXguaDo1NjpcdGludFx0KCptZGlvX2J1c19hbGxvYykoc3RydWN0IG9jZWxvdCAqb2NlbG90KTtcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXguaDo1NzpcdHZvaWRcdCgqbWRpb19idXNfZnJlZSkoc3RydWN0IG9jZWxvdCAqb2NlbG90KTtcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXguaC01OC1cdGludFx0KCpwb3J0X3NldHVwX3RjKShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXhfdnNjOTk1OS5jPTk1MT1zdGF0aWMgdm9pZCB2c2M5OTU5X3dtX3N0YXQodTMyIHZhbCwgdTMyICppbnVzZSwgdTMyICptYXh1c2UpXG4tLVxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9mZWxpeF92c2M5OTU5LmMtOTU2LVxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9mZWxpeF92c2M5OTU5LmM6OTU3OnN0YXRpYyBpbnQgdnNjOTk1OV9tZGlvX2J1c19hbGxvYyhzdHJ1Y3Qgb2NlbG90ICpvY2Vsb3QpXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L2ZlbGl4X3ZzYzk5NTkuYy05NTgte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXhfdnNjOTk1OS5jLTEwNDQtXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L2ZlbGl4X3ZzYzk5NTkuYzoxMDQ1OnN0YXRpYyB2b2lkIHZzYzk5NTlfbWRpb19idXNfZnJlZShzdHJ1Y3Qgb2NlbG90ICpvY2Vsb3QpXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L2ZlbGl4X3ZzYzk5NTkuYy0xMDQ2LXtcbi0tXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L2ZlbGl4X3ZzYzk5NTkuYz0yNjU5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmVsaXhfaW5mbyBmZWxpeF9pbmZvX3ZzYzk5NTkgPSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9mZWxpeF92c2M5OTU5LmMtMjY3NS1cdC5wdHBfY2Fwc1x0XHQ9IFx1MDAyNnZzYzk5NTlfcHRwX2NhcHMsXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L2ZlbGl4X3ZzYzk5NTkuYzoyNjc2Olx0Lm1kaW9fYnVzX2FsbG9jXHRcdD0gdnNjOTk1OV9tZGlvX2J1c19hbGxvYyxcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXhfdnNjOTk1OS5jOjI2Nzc6XHQubWRpb19idXNfZnJlZVx0XHQ9IHZzYzk5NTlfbWRpb19idXNfZnJlZSxcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXhfdnNjOTk1OS5jLTI2NzgtXHQucG9ydF9tb2Rlc1x0XHQ9IHZzYzk5NTlfcG9ydF9tb2Rlcyxcbi0tXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L3NldmlsbGVfdnNjOTk1My5jPTg2OT1zdGF0aWMgY29uc3Qgc3RydWN0IG9jZWxvdF9vcHMgdnNjOTk1M19vcHMgPSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9zZXZpbGxlX3ZzYzk5NTMuYy04NzctXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L3NldmlsbGVfdnNjOTk1My5jOjg3ODpzdGF0aWMgaW50IHZzYzk5NTNfbWRpb19idXNfYWxsb2Moc3RydWN0IG9jZWxvdCAqb2NlbG90KVxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9zZXZpbGxlX3ZzYzk5NTMuYy04Nzkte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3Qvc2V2aWxsZV92c2M5OTUzLmMtOTM0LVxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9zZXZpbGxlX3ZzYzk5NTMuYzo5MzU6c3RhdGljIHZvaWQgdnNjOTk1M19tZGlvX2J1c19mcmVlKHN0cnVjdCBvY2Vsb3QgKm9jZWxvdClcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3Qvc2V2aWxsZV92c2M5OTUzLmMtOTM2LXtcbi0tXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L3NldmlsbGVfdnNjOTk1My5jPTk1MD1zdGF0aWMgY29uc3Qgc3RydWN0IGZlbGl4X2luZm8gc2V2aWxsZV9pbmZvX3ZzYzk5NTMgPSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9zZXZpbGxlX3ZzYzk5NTMuYy05NjQtXHQubnVtX3BvcnRzXHRcdD0gVlNDOTk1M19OVU1fUE9SVFMsXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L3NldmlsbGVfdnNjOTk1My5jOjk2NTpcdC5tZGlvX2J1c19hbGxvY1x0XHQ9IHZzYzk5NTNfbWRpb19idXNfYWxsb2MsXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L3NldmlsbGVfdnNjOTk1My5jOjk2NjpcdC5tZGlvX2J1c19mcmVlXHRcdD0gdnNjOTk1M19tZGlvX2J1c19mcmVlLFxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9zZXZpbGxlX3ZzYzk5NTMuYy05NjctXHQucG9ydF9tb2Rlc1x0XHQ9IHZzYzk5NTNfcG9ydF9tb2Rlcyxcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz04MDc9c3RhdGljIGludFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6ODA4OnFjYThrX21kaW9fYnVzeV93YWl0KHN0cnVjdCBtaWlfYnVzICpidXMsIHUzMiByZWcsIHUzMiBtYXNrKVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtODA5LXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz04MzA9cWNhOGtfbWRpb193cml0ZShzdHJ1Y3QgcWNhOGtfcHJpdiAqcHJpdiwgaW50IHBoeSwgaW50IHJlZ251bSwgdTE2IGRhdGEpXG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtODU0LVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6ODU1Olx0cmV0ID0gcWNhOGtfbWRpb19idXN5X3dhaXQoYnVzLCBRQ0E4S19NRElPX01BU1RFUl9DVFJMLFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtODU2LVx0XHRcdFx0ICAgUUNBOEtfTURJT19NQVNURVJfQlVTWSk7XG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9ODY4PXFjYThrX21kaW9fcmVhZChzdHJ1Y3QgcWNhOGtfcHJpdiAqcHJpdiwgaW50IHBoeSwgaW50IHJlZ251bSlcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy04OTEtXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo4OTI6XHRyZXQgPSBxY2E4a19tZGlvX2J1c3lfd2FpdChidXMsIFFDQThLX01ESU9fTUFTVEVSX0NUUkwsXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy04OTMtXHRcdFx0XHQgICBRQ0E4S19NRElPX01BU1RFUl9CVVNZKTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz05NjE9cWNhOGtfbWRpb19yZWdpc3RlcihzdHJ1Y3QgcWNhOGtfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy05NzgtXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo5Nzk6XHRwcml2LVx1MDAzZWludGVybmFsX21kaW9fYnVzID0gYnVzO1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtOTgwLVx0YnVzLVx1MDAzZXByaXYgPSAodm9pZCAqKXByaXY7XG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9MTAwOD1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzoxMDA5OnFjYThrX3NldHVwX21kaW9fYnVzKHN0cnVjdCBxY2E4a19wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMTAxMC17XG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9MTg1Nz1xY2E4a19zZXR1cChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpXG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMTg3NC1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjE4NzU6XHRyZXQgPSBxY2E4a19zZXR1cF9tZGlvX2J1cyhwcml2KTtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTE4NzYtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstbGVkcy5jPTM2NT1xY2E4a19wYXJzZV9wb3J0X2xlZHMoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIHN0cnVjdCBmd25vZGVfaGFuZGxlICpwb3J0LCBpbnQgcG9ydF9udW0pXG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1sZWRzLmMtNDMxLVx0XHRpbml0X2RhdGEuZGV2aWNlbmFtZSA9IGthc3ByaW50ZihHRlBfS0VSTkVMLCBcJiMzNDslczowJWRcJiMzNDssXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWxlZHMuYzo0MzI6XHRcdFx0XHRcdFx0IHByaXYtXHUwMDNlaW50ZXJuYWxfbWRpb19idXMgP1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1sZWRzLmM6NDMzOlx0XHRcdFx0XHRcdCBwcml2LVx1MDAzZWludGVybmFsX21kaW9fYnVzLVx1MDAzZWlkIDogcHJpdi1cdTAwM2VidXMtXHUwMDNlaWQsXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWxlZHMuYy00MzQtXHRcdFx0XHRcdFx0IHBvcnRfbnVtKTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLmg9NDQ1PXN0cnVjdCBxY2E4a19wcml2IHtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLmgtNDU4LVx0c3RydWN0IG1paV9idXMgKmJ1cztcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGsuaDo0NTk6XHRzdHJ1Y3QgbWlpX2J1cyAqaW50ZXJuYWxfbWRpb19idXM7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLmgtNDYwLVx0c3RydWN0IGRzYV9zd2l0Y2ggKmRzO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS92aXRlc3NlLXZzYzczeHgtY29yZS5jPTUyMT1zdGF0aWMgaW50IHZzYzczeHhfZGV0ZWN0KHN0cnVjdCB2c2M3M3h4ICp2c2MpXG4tLVxuZHJpdmVycy9uZXQvZHNhL3ZpdGVzc2UtdnNjNzN4eC1jb3JlLmMtNjA0LVxuZHJpdmVycy9uZXQvZHNhL3ZpdGVzc2UtdnNjNzN4eC1jb3JlLmM6NjA1OnN0YXRpYyBpbnQgdnNjNzN4eF9tZGlvX2J1c3lfY2hlY2soc3RydWN0IHZzYzczeHggKnZzYylcbmRyaXZlcnMvbmV0L2RzYS92aXRlc3NlLXZzYzczeHgtY29yZS5jLTYwNi17XG4tLVxuZHJpdmVycy9uZXQvZHNhL3ZpdGVzc2UtdnNjNzN4eC1jb3JlLmM9NjIxPXN0YXRpYyBpbnQgdnNjNzN4eF9waHlfcmVhZChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwaHksIGludCByZWdudW0pXG4tLVxuZHJpdmVycy9uZXQvZHNhL3ZpdGVzc2UtdnNjNzN4eC1jb3JlLmMtNjI3LVxuZHJpdmVycy9uZXQvZHNhL3ZpdGVzc2UtdnNjNzN4eC1jb3JlLmM6NjI4Olx0cmV0ID0gdnNjNzN4eF9tZGlvX2J1c3lfY2hlY2sodnNjKTtcbmRyaXZlcnMvbmV0L2RzYS92aXRlc3NlLXZzYzczeHgtY29yZS5jLTYyOS1cdGlmIChyZXQpXG4tLVxuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzEwIDA3OjE3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE4ODU5CgkJCQkJCQlvdXRwdXQ6IDE4CgkJCQkJCQl0aG91Z2h0czogMjA1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk1ESU8gJmFtcDsgUUNBOEsgRHJpdmVyIEZ1enppbmcgLSBBIFF1aWNrIEFzc2Vzc21lbnQqKgoKT2theSwgc28gc3l6a2FsbGVyICptaWdodCogYmUgYWJsZSB0byB0b3VjaCBNRElPLiBCdXQgd2FpdCwgTURJTyBpdHNlbGYgaXMganVzdCBhIGJ1cywgcmlnaHQ/IEl0JiMzOTtzIG5vdCBhIGRyaXZlciBpbiB0aGUgd2F5IHdlIHVzdWFsbHkgdGhpbmsgb2YgdGhlbS4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIGRvZXMgUUVNVSBldmVuICpoYXZlKiBhbiBNRElPIGVtdWxhdG9yPyBZZWFoLCBzb21lIFNvQ3MgZG8sIHRoYXQmIzM5O3MgcmlnaHQuIEhvd2V2ZXIsIEkmIzM5O20gcHJldHR5IHN1cmUgc3l6a2FsbGVyIHVzdWFsbHkgYnlwYXNzZXMgaGFyZHdhcmUgc3BlY2lmaWMgZHJpdmVycyB1bmxlc3MgdGhlcmUmIzM5O3MgYSBuZXRsaW5rL3N5c2ZzIGludGVyZmFjZSBvciBhIGR1bW15IGRyaXZlciBhdmFpbGFibGUuCgpSaWdodCwgbGV0JiMzOTtzIHNlZSBpZiB3ZSBjYW4gZXZlbiAqcmVhY2gqIGBxY2E4ay04eHh4LmNgLiBJcyB0aGVyZSBhIGNsZXZlciB3YXkgdG8gaW5zdGFudGlhdGUgaXQgd2l0aCBhIGRldmljZSB0cmVlIG92ZXJsYXkgd2l0aGluIHRoZSBzeXprYWxsZXIgY29udGV4dD8gSSByZW1lbWJlciBgc3l6X21vdW50X2ltYWdlYCwgb3Igc29tZXRoaW5nIHNpbWlsYXIsIGJ1dCB0aGF0IHR5cGljYWxseSB3b24mIzM5O3QgaW5zdGFudGlhdGUgcmFuZG9tIHBsYXRmb3JtIGRldmljZXMgb3IgTURJTyBkZXZpY2VzIHVubGVzcyB0aGVyZSYjMzk7cyBhIGRlZGljYXRlZCBwc2V1ZG8tc3lzY2FsbC4KCkhhbmcgb24uLi4gSSBzaG91bGQgYmUgdGhpbmtpbmcgbW9yZSBicm9hZGx5LiBTeXprYWxsZXIgaGFzIGBzeXpfZ2VuZXRsaW5rX2dldF9mYW1pbHlgIGFuZCBgc3l6X29wZW5fZGV2YCBhbmQgc28gb24sIHJpZ2h0PyBTbyBpdCBtaWdodCBiZSBwb3NzaWJsZS4KCk9rYXksIGxldCYjMzk7cyBjdXQgdGhlIHNwZWN1bGF0aW9uLiBUaW1lIHRvIGp1c3QgY2hlY2sgdGhlIHN5emthbGxlciBkZXNjcmlwdGlvbnMuIEkgbmVlZCB0byBzZWUgaWYgdGhlcmUmIzM5O3MgKmFueSogbWVudGlvbiBvZiBNRElPIG9yIHRoZSBRQ0E4SyBmYW1pbHkuIFRoYXQmIzM5O3MgdGhlIGZpcnN0IHN0ZXAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzEwIDA3OjE3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3FjYThrJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxOTk5IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svcWNvbSxxY2E4ay1uc3NjYy55YW1sLTMtLS0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svcWNvbSxxY2E4ay1uc3NjYy55YW1sOjQ6JGlkOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvc2NoZW1hcy9jbG9jay9xY29tLHFjYThrLW5zc2NjLnlhbWwjXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svcWNvbSxxY2E4ay1uc3NjYy55YW1sLTUtJHNjaGVtYTogaHR0cDovL2RldmljZXRyZWUub3JnL21ldGEtc2NoZW1hcy9jb3JlLnlhbWwjXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL3Fjb20scWNhOGstbnNzY2MueWFtbD0xMz1kZXNjcmlwdGlvbjogfFxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9xY29tLHFjYThrLW5zc2NjLnlhbWwtMTctICBTZWUgYWxzbzo6XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svcWNvbSxxY2E4ay1uc3NjYy55YW1sOjE4OiAgICBpbmNsdWRlL2R0LWJpbmRpbmdzL2Nsb2NrL3Fjb20scWNhOGstbnNzY2MuaFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL3Fjb20scWNhOGstbnNzY2MueWFtbDoxOTogICAgaW5jbHVkZS9kdC1iaW5kaW5ncy9yZXNldC9xY29tLHFjYThrLW5zc2NjLmhcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9xY29tLHFjYThrLW5zc2NjLnlhbWwtMjAtXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL3Fjb20scWNhOGstbnNzY2MueWFtbD02Mz1leGFtcGxlczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svcWNvbSxxY2E4ay1uc3NjYy55YW1sLTc0LSAgICAgICAgY2xvY2tzID0gXHUwMDNjXHUwMDI2cGNzMF9wbGxcdTAwM2UsXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svcWNvbSxxY2E4ay1uc3NjYy55YW1sOjc1OiAgICAgICAgICAgICAgICAgXHUwMDNjXHUwMDI2cWNhOGtfdW5pcGh5MF9yeFx1MDAzZSxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9xY29tLHFjYThrLW5zc2NjLnlhbWw6NzY6ICAgICAgICAgICAgICAgICBcdTAwM2NcdTAwMjZxY2E4a191bmlwaHkwX3R4XHUwMDNlLFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL3Fjb20scWNhOGstbnNzY2MueWFtbDo3NzogICAgICAgICAgICAgICAgIFx1MDAzY1x1MDAyNnFjYThrX3VuaXBoeTFfcnhcdTAwM2UsXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svcWNvbSxxY2E4ay1uc3NjYy55YW1sOjc4OiAgICAgICAgICAgICAgICAgXHUwMDNjXHUwMDI2cWNhOGtfdW5pcGh5MV90eFx1MDAzZSxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9xY29tLHFjYThrLW5zc2NjLnlhbWw6Nzk6ICAgICAgICAgICAgICAgICBcdTAwM2NcdTAwMjZxY2E4a191bmlwaHkxX3J4MzEycDVtXHUwMDNlLFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL3Fjb20scWNhOGstbnNzY2MueWFtbDo4MDogICAgICAgICAgICAgICAgIFx1MDAzY1x1MDAyNnFjYThrX3VuaXBoeTFfdHgzMTJwNW1cdTAwM2U7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svcWNvbSxxY2E4ay1uc3NjYy55YW1sLTgxLSAgICAgICAgI2Nsb2NrLWNlbGxzID0gXHUwMDNjMVx1MDAzZTtcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9xY2E4ay55YW1sLTMtLS0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9xY2E4ay55YW1sOjQ6JGlkOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvc2NoZW1hcy9uZXQvZHNhL3FjYThrLnlhbWwjXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9xY2E4ay55YW1sLTUtJHNjaGVtYTogaHR0cDovL2RldmljZXRyZWUub3JnL21ldGEtc2NoZW1hcy9jb3JlLnlhbWwjXG4tLVxuZHJpdmVycy9jbGsvcWNvbS9LY29uZmlnPTUwMz1jb25maWcgSVBRX05TU0NDX1FDQThLXG4tLVxuZHJpdmVycy9jbGsvcWNvbS9LY29uZmlnLTUwOS1cdCAgU2F5IFkgb3IgTSBpZiB5b3Ugd2FudCB0byB1c2UgbmV0d29yayBmZWF0dXJlcyBvZiBzd2l0Y2ggb3JcbmRyaXZlcnMvY2xrL3Fjb20vS2NvbmZpZzo1MTA6XHQgIFBIWSBkZXZpY2UuIFNlbGVjdCB0aGlzIGZvciB0aGUgcm9vdCBjbG9jayBvZiBxY2E4ay5cbmRyaXZlcnMvY2xrL3Fjb20vS2NvbmZpZy01MTEtXG4tLVxuZHJpdmVycy9jbGsvcWNvbS9NYWtlZmlsZT02Nz1vYmotJChDT05GSUdfSVBRX0xDQ184MDZYKSAmIzQzOz0gbGNjLWlwcTgwNngub1xuZHJpdmVycy9jbGsvcWNvbS9NYWtlZmlsZTo2ODpvYmotJChDT05GSUdfSVBRX05TU0NDX1FDQThLKSAmIzQzOz0gbnNzY2MtcWNhOGsub1xuZHJpdmVycy9jbGsvcWNvbS9NYWtlZmlsZS02OS1vYmotJChDT05GSUdfTURNX0dDQ185NjA3KSAmIzQzOz0gZ2NjLW1kbTk2MDcub1xuLS1cbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0xNS1cbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoxNjojaW5jbHVkZSBcdTAwM2NkdC1iaW5kaW5ncy9jbG9jay9xY29tLHFjYThrLW5zc2NjLmhcdTAwM2VcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoxNzojaW5jbHVkZSBcdTAwM2NkdC1iaW5kaW5ncy9yZXNldC9xY29tLHFjYThrLW5zc2NjLmhcdTAwM2VcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0xOC1cbi0tXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM9MTgxOT1zdGF0aWMgc3RydWN0IGNsa19icmFuY2ggbnNzX2NjX2dlcGh5M19zeXNfY2xrID0ge1xuLS1cbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0xODM1LVxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjE4MzY6c3RhdGljIHN0cnVjdCBjbGtfcmVnbWFwICpuc3NfY2NfcWNhOGtfY2xvY2tzW10gPSB7XG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMTgzNy1cdFtOU1NfQ0NfU1dJVENIX0NPUkVfQ0xLX1NSQ10gPSBcdTAwMjZuc3NfY2Nfc3dpdGNoX2NvcmVfY2xrX3NyYy5jbGtyLFxuLS1cbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0xOTM4LVxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjE5Mzk6c3RhdGljIGNvbnN0IHN0cnVjdCBxY29tX3Jlc2V0X21hcCBuc3NfY2NfcWNhOGtfcmVzZXRzW10gPSB7XG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMTk0MC1cdFtOU1NfQ0NfU1dJVENIX0NPUkVfQVJFU10gPSB7IDB4YywgMiB9LFxuLS1cbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYz0yMDI0PXN0YXRpYyBpbmxpbmUgdm9pZCBjb252ZXJ0X3JlZ190b19taWlfYWRkcih1MzIgcmVnYWRkciwgdTE2ICpyZWcsIHUxNiAqcGh5X2FkZHIsIHUxNiAqcGFnZSlcbi0tXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjAzMC1cbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMDMxOnN0YXRpYyBpbnQgcWNhOGtfbWlpX3JlYWQoc3RydWN0IG1paV9idXMgKmJ1cywgdTE2IHN3aXRjaF9waHlfaWQsIHUzMiByZWcsIHUzMiAqdmFsKVxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIwMzIte1xuLS1cbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMDQ0LVx0aWYgKHJldCBcdTAwM2MgMClcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMDQ1Olx0XHRkZXZfZXJyX3JhdGVsaW1pdGVkKFx1MDAyNmJ1cy1cdTAwM2VkZXYsIFwmIzM0O2ZhaWwgdG8gcmVhZCBxY2E4ayBtaWkgcmVnaXN0ZXJcXG5cJiMzNDspO1xuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIwNDYtXG4tLVxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIwNDktXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjA1MDpzdGF0aWMgdm9pZCBxY2E4a19taWlfd3JpdGUoc3RydWN0IG1paV9idXMgKmJ1cywgdTE2IHN3aXRjaF9waHlfaWQsIHUzMiByZWcsIHUzMiB2YWwpXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjA1MS17XG4tLVxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIwNTktXHRpZiAocmV0IFx1MDAzYyAwKVxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIwNjA6XHRcdGRldl9lcnJfcmF0ZWxpbWl0ZWQoXHUwMDI2YnVzLVx1MDAzZWRldiwgXCYjMzQ7ZmFpbCB0byB3cml0ZSBxY2E4ayBtaWkgcmVnaXN0ZXJcXG5cJiMzNDspO1xuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIwNjEtfVxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIwNjItXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjA2MzpzdGF0aWMgaW50IHFjYThrX21paV9wYWdlX3NldChzdHJ1Y3QgbWlpX2J1cyAqYnVzLCB1MTYgc3dpdGNoX3BoeV9pZCwgdTMyIHJlZywgdTE2IHBhZ2UpXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjA2NC17XG4tLVxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIwNzMtXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjA3NDpzdGF0aWMgaW50IHFjYThrX3JlZ21hcF9yZWFkKHZvaWQgKmNvbnRleHQsIHVuc2lnbmVkIGludCByZWdhZGRyLCB1bnNpZ25lZCBpbnQgKnZhbClcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMDc1LXtcbi0tXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjA4My1cdG11dGV4X2xvY2soXHUwMDI2YnVzLVx1MDAzZW1kaW9fbG9jayk7XG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjA4NDpcdHJldCA9IHFjYThrX21paV9wYWdlX3NldChidXMsIFFDQThLX0hJR0hfQUREUl9QUkVGSVgsIFFDQThLX0NGR19QQUdFX1JFRywgcGFnZSk7XG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjA4NS1cdGlmIChyZXQgXHUwMDNjIDApXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjA4NjpcdFx0Z290byBxY2E4a19yZWFkX2V4aXQ7XG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjA4Ny1cbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMDg4Olx0cmV0ID0gcWNhOGtfbWlpX3JlYWQoYnVzLCBwaHlfYWRkciwgcmVnLCB2YWwpO1xuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIwODktXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjA5MDpxY2E4a19yZWFkX2V4aXQ6XG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjA5MS1cdG11dGV4X3VubG9jayhcdTAwMjZidXMtXHUwMDNlbWRpb19sb2NrKTtcbi0tXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjA5NC1cbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMDk1OnN0YXRpYyBpbnQgcWNhOGtfcmVnbWFwX3dyaXRlKHZvaWQgKmNvbnRleHQsIHVuc2lnbmVkIGludCByZWdhZGRyLCB1bnNpZ25lZCBpbnQgdmFsKVxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIwOTYte1xuLS1cbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMTA0LVx0bXV0ZXhfbG9jayhcdTAwMjZidXMtXHUwMDNlbWRpb19sb2NrKTtcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMTA1Olx0cmV0ID0gcWNhOGtfbWlpX3BhZ2Vfc2V0KGJ1cywgUUNBOEtfSElHSF9BRERSX1BSRUZJWCwgUUNBOEtfQ0ZHX1BBR0VfUkVHLCBwYWdlKTtcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMTA2LVx0aWYgKHJldCBcdTAwM2MgMClcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMTA3Olx0XHRnb3RvIHFjYThrX3dyaXRlX2V4aXQ7XG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjEwOC1cbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMTA5Olx0cWNhOGtfbWlpX3dyaXRlKGJ1cywgcGh5X2FkZHIsIHJlZywgdmFsKTtcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMTEwLVxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIxMTE6cWNhOGtfd3JpdGVfZXhpdDpcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMTEyLVx0bXV0ZXhfdW5sb2NrKFx1MDAyNmJ1cy1cdTAwM2VtZGlvX2xvY2spO1xuLS1cbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMTE1LVxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIxMTY6c3RhdGljIGludCBxY2E4a19yZWdtYXBfdXBkYXRlX2JpdHModm9pZCAqY29udGV4dCwgdW5zaWduZWQgaW50IHJlZ2FkZHIsXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjExNy1cdFx0XHRcdCAgICB1bnNpZ25lZCBpbnQgbWFzaywgdW5zaWduZWQgaW50IHZhbHVlKVxuLS1cbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMTI3LVx0bXV0ZXhfbG9jayhcdTAwMjZidXMtXHUwMDNlbWRpb19sb2NrKTtcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMTI4Olx0cmV0ID0gcWNhOGtfbWlpX3BhZ2Vfc2V0KGJ1cywgUUNBOEtfSElHSF9BRERSX1BSRUZJWCwgUUNBOEtfQ0ZHX1BBR0VfUkVHLCBwYWdlKTtcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMTI5LVx0aWYgKHJldCBcdTAwM2MgMClcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMTMwOlx0XHRnb3RvIHFjYThrX3VwZGF0ZV9leGl0O1xuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIxMzEtXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjEzMjpcdHJldCA9IHFjYThrX21paV9yZWFkKGJ1cywgcGh5X2FkZHIsIHJlZywgXHUwMDI2dmFsKTtcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMTMzLVx0aWYgKHJldCBcdTAwM2MgMClcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMTM0Olx0XHRnb3RvIHFjYThrX3VwZGF0ZV9leGl0O1xuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIxMzUtXG4tLVxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIxMzctXHR2YWwgfD0gdmFsdWU7XG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjEzODpcdHFjYThrX21paV93cml0ZShidXMsIHBoeV9hZGRyLCByZWcsIHZhbCk7XG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjEzOS1cbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMTQwOnFjYThrX3VwZGF0ZV9leGl0OlxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIxNDEtXHRtdXRleF91bmxvY2soXHUwMDI2YnVzLVx1MDAzZW1kaW9fbG9jayk7XG4tLVxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIxNDQtXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjE0NTpzdGF0aWMgY29uc3Qgc3RydWN0IHJlZ21hcF9jb25maWcgbnNzX2NjX3FjYThrX3JlZ21hcF9jb25maWcgPSB7XG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjE0Ni1cdC5yZWdfYml0cyA9IDEyLFxuLS1cbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMTQ5LVx0Lm1heF9yZWdpc3RlciA9IDB4MzBjLFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIxNTA6XHQucmVnX3JlYWQgPSBxY2E4a19yZWdtYXBfcmVhZCxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMTUxOlx0LnJlZ193cml0ZSA9IHFjYThrX3JlZ21hcF93cml0ZSxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMTUyOlx0LnJlZ191cGRhdGVfYml0cyA9IHFjYThrX3JlZ21hcF91cGRhdGVfYml0cyxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMTUzLVx0LmRpc2FibGVfbG9ja2luZyA9IHRydWUsXG4tLVxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIxNTUtXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjE1NjpzdGF0aWMgY29uc3Qgc3RydWN0IHFjb21fY2NfZGVzYyBuc3NfY2NfcWNhOGtfZGVzYyA9IHtcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMTU3Olx0LmNvbmZpZyA9IFx1MDAyNm5zc19jY19xY2E4a19yZWdtYXBfY29uZmlnLFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIxNTg6XHQuY2xrcyA9IG5zc19jY19xY2E4a19jbG9ja3MsXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjE1OTpcdC5udW1fY2xrcyA9IEFSUkFZX1NJWkUobnNzX2NjX3FjYThrX2Nsb2NrcyksXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjE2MDpcdC5yZXNldHMgPSBuc3NfY2NfcWNhOGtfcmVzZXRzLFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIxNjE6XHQubnVtX3Jlc2V0cyA9IEFSUkFZX1NJWkUobnNzX2NjX3FjYThrX3Jlc2V0cyksXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjE2Mi19O1xuLS1cbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMTY3LSAqL1xuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIxNjg6c3RhdGljIGludCBuc3NfY2NfcWNhOGtfY2xvY2tfZW5hYmxlX2FuZF9yZXNldChzdHJ1Y3QgZGV2aWNlICpkZXYpXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjE2OS17XG4tLVxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIxODctXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjE4ODpzdGF0aWMgaW50IG5zc19jY19xY2E4a19wcm9iZShzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjE4OS17XG4tLVxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIxOTItXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjE5MzpcdHJldCA9IG5zc19jY19xY2E4a19jbG9ja19lbmFibGVfYW5kX3Jlc2V0KFx1MDAyNm1kaW9kZXYtXHUwMDNlZGV2KTtcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMTk0LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjE5Ni1cbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMTk3Olx0cmVnbWFwID0gZGV2bV9yZWdtYXBfaW5pdChcdTAwMjZtZGlvZGV2LVx1MDAzZWRldiwgTlVMTCwgbWRpb2Rldi1cdTAwM2VidXMsIG5zc19jY19xY2E4a19kZXNjLmNvbmZpZyk7XG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjE5OC1cdGlmIChJU19FUlIocmVnbWFwKSlcbi0tXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjIwMC1cbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMjAxOlx0cmV0dXJuIHFjb21fY2NfcmVhbGx5X3Byb2JlKFx1MDAyNm1kaW9kZXYtXHUwMDNlZGV2LCBcdTAwMjZuc3NfY2NfcWNhOGtfZGVzYywgcmVnbWFwKTtcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMjAyLX1cbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMjAzLVxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIyMDQ6c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbnNzX2NjX3FjYThrX21hdGNoX3RhYmxlW10gPSB7XG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjIwNS1cdHsgLmNvbXBhdGlibGUgPSBcJiMzNDtxY29tLHFjYTgwODQtbnNzY2NcJiMzNDsgfSxcbi0tXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjIwNy19O1xuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIyMDg6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgbnNzX2NjX3FjYThrX21hdGNoX3RhYmxlKTtcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMjA5LVxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIyMTA6c3RhdGljIHN0cnVjdCBtZGlvX2RyaXZlciBuc3NfY2NfcWNhOGtfZHJpdmVyID0ge1xuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIyMTEtXHQubWRpb2Rydi5kcml2ZXIgPSB7XG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjIxMjpcdFx0Lm5hbWUgPSBcJiMzNDtxY29tLHFjYThrLW5zc2NjXCYjMzQ7LFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIyMTM6XHRcdC5vZl9tYXRjaF90YWJsZVx0PSBuc3NfY2NfcWNhOGtfbWF0Y2hfdGFibGUsXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjIxNC1cdH0sXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjIxNTpcdC5wcm9iZSA9IG5zc19jY19xY2E4a19wcm9iZSxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMjE2LX07XG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjIxNy1cbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMjE4Om1kaW9fbW9kdWxlX2RyaXZlcihuc3NfY2NfcWNhOGtfZHJpdmVyKTtcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMjE5LVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvTWFrZWZpbGU9Mj1vYmotJChDT05GSUdfTkVUX0RTQV9BUjkzMzEpXHQmIzQzOz0gYXI5MzMxLm9cbmRyaXZlcnMvbmV0L2RzYS9xY2EvTWFrZWZpbGU6MzpvYmotJChDT05GSUdfTkVUX0RTQV9RQ0E4SylcdCYjNDM7PSBxY2E4ay5vXG5kcml2ZXJzL25ldC9kc2EvcWNhL01ha2VmaWxlOjQ6cWNhOGsteSBcdFx0XHQmIzQzOz0gcWNhOGstY29tbW9uLm8gcWNhOGstOHh4eC5vXG5kcml2ZXJzL25ldC9kc2EvcWNhL01ha2VmaWxlLTUtaWZkZWYgQ09ORklHX05FVF9EU0FfUUNBOEtfTEVEU19TVVBQT1JUXG5kcml2ZXJzL25ldC9kc2EvcWNhL01ha2VmaWxlOjY6cWNhOGsteVx0XHRcdFx0JiM0Mzs9IHFjYThrLWxlZHMub1xuZHJpdmVycy9uZXQvZHNhL3FjYS9NYWtlZmlsZS03LWVuZGlmXG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMjMtXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzoyNDojaW5jbHVkZSBcJiMzNDtxY2E4ay5oXCYjMzQ7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzoyNTojaW5jbHVkZSBcJiMzNDtxY2E4a19sZWRzLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTI2LVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9Mjc9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjI4OnFjYThrX3NwbGl0X2FkZHIodTMyIHJlZ2FkZHIsIHUxNiAqcjEsIHUxNiAqcjIsIHUxNiAqcGFnZSlcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTI5LXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz00MD1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo0MTpxY2E4a19taWlfd3JpdGVfbG8oc3RydWN0IG1paV9idXMgKmJ1cywgaW50IHBoeV9pZCwgdTMyIHJlZ251bSwgdTMyIHZhbClcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTQyLXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy00OS1cdFx0ZGV2X2Vycl9yYXRlbGltaXRlZChcdTAwMjZidXMtXHUwMDNlZGV2LFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NTA6XHRcdFx0XHQgICAgXCYjMzQ7ZmFpbGVkIHRvIHdyaXRlIHFjYThrIDMyYml0IGxvIHJlZ2lzdGVyXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTUxLVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTU1PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjU2OnFjYThrX21paV93cml0ZV9oaShzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgcGh5X2lkLCB1MzIgcmVnbnVtLCB1MzIgdmFsKVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNTcte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTY0LVx0XHRkZXZfZXJyX3JhdGVsaW1pdGVkKFx1MDAyNmJ1cy1cdTAwM2VkZXYsXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo2NTpcdFx0XHRcdCAgICBcJiMzNDtmYWlsZWQgdG8gd3JpdGUgcWNhOGsgMzJiaXQgaGkgcmVnaXN0ZXJcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNjYtXG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9NzA9c3RhdGljIGludFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NzE6cWNhOGtfbWlpX3JlYWRfbG8oc3RydWN0IG1paV9idXMgKmJ1cywgaW50IHBoeV9pZCwgdTMyIHJlZ251bSwgdTMyICp2YWwpXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy03Mi17XG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtODMtXHRkZXZfZXJyX3JhdGVsaW1pdGVkKFx1MDAyNmJ1cy1cdTAwM2VkZXYsXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo4NDpcdFx0XHQgICAgXCYjMzQ7ZmFpbGVkIHRvIHJlYWQgcWNhOGsgMzJiaXQgbG8gcmVnaXN0ZXJcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtODUtXHQqdmFsID0gMDtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz05MD1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo5MTpxY2E4a19taWlfcmVhZF9oaShzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgcGh5X2lkLCB1MzIgcmVnbnVtLCB1MzIgKnZhbClcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTkyLXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0xMDMtXHRkZXZfZXJyX3JhdGVsaW1pdGVkKFx1MDAyNmJ1cy1cdTAwM2VkZXYsXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzoxMDQ6XHRcdFx0ICAgIFwmIzM0O2ZhaWxlZCB0byByZWFkIHFjYThrIDMyYml0IGhpIHJlZ2lzdGVyXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTEwNS1cdCp2YWwgPSAwO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTExMD1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzoxMTE6cWNhOGtfbWlpX3JlYWQzMihzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgcGh5X2lkLCB1MzIgcmVnbnVtLCB1MzIgKnZhbClcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTExMi17XG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMTE3LVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MTE4Olx0cmV0ID0gcWNhOGtfbWlpX3JlYWRfbG8oYnVzLCBwaHlfaWQsIHJlZ251bSwgXHUwMDI2bG8pO1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMTE5LVx0aWYgKHJldCBcdTAwM2MgMClcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0xMjEtXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzoxMjI6XHRyZXQgPSBxY2E4a19taWlfcmVhZF9oaShidXMsIHBoeV9pZCwgcmVnbnVtICYjNDM7IDEsIFx1MDAyNmhpKTtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTEyMy1cdGlmIChyZXQgXHUwMDNjIDApXG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9MTMyPXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzoxMzM6cWNhOGtfbWlpX3dyaXRlMzIoc3RydWN0IG1paV9idXMgKmJ1cywgaW50IHBoeV9pZCwgdTMyIHJlZ251bSwgdTMyIHZhbClcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTEzNC17XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzoxMzU6XHRpZiAocWNhOGtfbWlpX3dyaXRlX2xvKGJ1cywgcGh5X2lkLCByZWdudW0sIHZhbCkgXHUwMDNjIDApXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0xMzYtXHRcdHJldHVybjtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTEzNy1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjEzODpcdHFjYThrX21paV93cml0ZV9oaShidXMsIHBoeV9pZCwgcmVnbnVtICYjNDM7IDEsIHZhbCk7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0xMzktfVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTE0MT1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzoxNDI6cWNhOGtfc2V0X3BhZ2Uoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIHUxNiBwYWdlKVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMTQzLXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0xNTMtXHRcdGRldl9lcnJfcmF0ZWxpbWl0ZWQoXHUwMDI2YnVzLVx1MDAzZWRldixcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjE1NDpcdFx0XHRcdCAgICBcJiMzNDtmYWlsZWQgdG8gc2V0IHFjYThrIHBhZ2VcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMTU1LVx0XHRyZXR1cm4gcmV0O1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTE2Mi1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjE2MzpzdGF0aWMgYm9vbCBxY2E4a19tZ210X2V0aF9kaXNhYmxlZChjb25zdCBzdHJ1Y3QgcWNhOGtfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTE2NC17XG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMTY3LVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MTY4OnN0YXRpYyB2b2lkIHFjYThrX3J3X3JlZ19hY2tfaGFuZGxlcihzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIHN0cnVjdCBza19idWZmICpza2IpXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0xNjkte1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MTcwOlx0c3RydWN0IHFjYThrX21nbXRfZXRoX2RhdGEgKm1nbXRfZXRoX2RhdGE7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzoxNzE6XHRzdHJ1Y3QgcWNhOGtfcHJpdiAqcHJpdiA9IGRzLVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0xNzItXHRzdHJ1Y3QgcWNhX21nbXRfZXRoaGRyICptZ210X2V0aGhkcjtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0yMjItXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzoyMjM6c3RhdGljIHN0cnVjdCBza19idWZmICpxY2E4a19hbGxvY19tZGlvX2hlYWRlcihlbnVtIG1kaW9fY21kIGNtZCwgdTMyIHJlZywgdTMyICp2YWwsXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0yMjQtXHRcdFx0XHRcdCAgICAgICBpbnQgcHJpb3JpdHksIHVuc2lnbmVkIGludCBsZW4pXG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMzA2LVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MzA3OnN0YXRpYyB2b2lkIHFjYThrX21kaW9faGVhZGVyX2ZpbGxfc2VxX251bShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgc2VxX251bSlcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTMwOC17XG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMzE2LVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MzE3OnN0YXRpYyBpbnQgcWNhOGtfcmVhZF9ldGgoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIHUzMiByZWcsIHUzMiAqdmFsLCBpbnQgbGVuKVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMzE4LXtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjMxOTpcdHN0cnVjdCBxY2E4a19tZ210X2V0aF9kYXRhICptZ210X2V0aF9kYXRhID0gXHUwMDI2cHJpdi1cdTAwM2VtZ210X2V0aF9kYXRhO1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMzIwLVx0c3RydWN0IHNrX2J1ZmYgKnNrYjtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0zMjMtXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzozMjQ6XHRpZiAocWNhOGtfbWdtdF9ldGhfZGlzYWJsZWQocHJpdikpXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0zMjUtXHRcdHJldHVybiAtRU5YSU87XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0zMjYtXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzozMjc6XHRza2IgPSBxY2E4a19hbGxvY19tZGlvX2hlYWRlcihNRElPX1JFQUQsIHJlZywgTlVMTCxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTMyOC1cdFx0XHRcdCAgICAgIFFDQThLX0VUSEVSTkVUX01ESU9fUFJJT1JJVFksIGxlbik7XG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMzQ2LVx0bWdtdF9ldGhfZGF0YS1cdTAwM2VzZXEmIzQzOyYjNDM7O1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MzQ3Olx0cWNhOGtfbWRpb19oZWFkZXJfZmlsbF9zZXFfbnVtKHNrYiwgbWdtdF9ldGhfZGF0YS1cdTAwM2VzZXEpO1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMzQ4LVx0bWdtdF9ldGhfZGF0YS1cdTAwM2VhY2sgPSBmYWxzZTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0zNzEtXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzozNzI6c3RhdGljIGludCBxY2E4a193cml0ZV9ldGgoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIHUzMiByZWcsIHUzMiAqdmFsLCBpbnQgbGVuKVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMzczLXtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjM3NDpcdHN0cnVjdCBxY2E4a19tZ210X2V0aF9kYXRhICptZ210X2V0aF9kYXRhID0gXHUwMDI2cHJpdi1cdTAwM2VtZ210X2V0aF9kYXRhO1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMzc1LVx0c3RydWN0IHNrX2J1ZmYgKnNrYjtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0zNzgtXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzozNzk6XHRpZiAocWNhOGtfbWdtdF9ldGhfZGlzYWJsZWQocHJpdikpXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0zODAtXHRcdHJldHVybiAtRU5YSU87XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0zODEtXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzozODI6XHRza2IgPSBxY2E4a19hbGxvY19tZGlvX2hlYWRlcihNRElPX1dSSVRFLCByZWcsIHZhbCxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTM4My1cdFx0XHRcdCAgICAgIFFDQThLX0VUSEVSTkVUX01ESU9fUFJJT1JJVFksIGxlbik7XG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNDAxLVx0bWdtdF9ldGhfZGF0YS1cdTAwM2VzZXEmIzQzOyYjNDM7O1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NDAyOlx0cWNhOGtfbWRpb19oZWFkZXJfZmlsbF9zZXFfbnVtKHNrYiwgbWdtdF9ldGhfZGF0YS1cdTAwM2VzZXEpO1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNDAzLVx0bWdtdF9ldGhfZGF0YS1cdTAwM2VhY2sgPSBmYWxzZTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz00MjM9c3RhdGljIGludFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NDI0OnFjYThrX3JlZ21hcF91cGRhdGVfYml0c19ldGgoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIHUzMiByZWcsIHUzMiBtYXNrLCB1MzIgd3JpdGVfdmFsKVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNDI1LXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy00MjgtXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo0Mjk6XHRyZXQgPSBxY2E4a19yZWFkX2V0aChwcml2LCByZWcsIFx1MDAyNnZhbCwgc2l6ZW9mKHZhbCkpO1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNDMwLVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy00MzUtXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo0MzY6XHRyZXR1cm4gcWNhOGtfd3JpdGVfZXRoKHByaXYsIHJlZywgXHUwMDI2dmFsLCBzaXplb2YodmFsKSk7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy00MzctfVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTQzOT1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo0NDA6cWNhOGtfcmVhZF9taWkoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIHVpbnQzMl90IHJlZywgdWludDMyX3QgKnZhbClcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTQ0MS17XG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNDQ1LVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NDQ2Olx0cWNhOGtfc3BsaXRfYWRkcihyZWcsIFx1MDAyNnIxLCBcdTAwMjZyMiwgXHUwMDI2cGFnZSk7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy00NDctXG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNDQ5LVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NDUwOlx0cmV0ID0gcWNhOGtfc2V0X3BhZ2UocHJpdiwgcGFnZSk7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy00NTEtXHRpZiAocmV0IFx1MDAzYyAwKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTQ1My1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjQ1NDpcdHJldCA9IHFjYThrX21paV9yZWFkMzIoYnVzLCAweDEwIHwgcjIsIHIxLCB2YWwpO1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNDU1LVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTQ2MT1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo0NjI6cWNhOGtfd3JpdGVfbWlpKHN0cnVjdCBxY2E4a19wcml2ICpwcml2LCB1aW50MzJfdCByZWcsIHVpbnQzMl90IHZhbClcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTQ2My17XG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNDY3LVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NDY4Olx0cWNhOGtfc3BsaXRfYWRkcihyZWcsIFx1MDAyNnIxLCBcdTAwMjZyMiwgXHUwMDI2cGFnZSk7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy00NjktXG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNDcxLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NDcyOlx0cmV0ID0gcWNhOGtfc2V0X3BhZ2UocHJpdiwgcGFnZSk7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy00NzMtXHRpZiAocmV0IFx1MDAzYyAwKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTQ3NS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjQ3NjpcdHFjYThrX21paV93cml0ZTMyKGJ1cywgMHgxMCB8IHIyLCByMSwgdmFsKTtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTQ3Ny1cbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz00ODM9c3RhdGljIGludFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NDg0OnFjYThrX3JlZ21hcF91cGRhdGVfYml0c19taWkoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIHVpbnQzMl90IHJlZyxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTQ4NS1cdFx0XHQgICAgIHVpbnQzMl90IG1hc2ssIHVpbnQzMl90IHdyaXRlX3ZhbClcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy00OTEtXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo0OTI6XHRxY2E4a19zcGxpdF9hZGRyKHJlZywgXHUwMDI2cjEsIFx1MDAyNnIyLCBcdTAwMjZwYWdlKTtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTQ5My1cbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy00OTUtXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo0OTY6XHRyZXQgPSBxY2E4a19zZXRfcGFnZShwcml2LCBwYWdlKTtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTQ5Ny1cdGlmIChyZXQgXHUwMDNjIDApXG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNDk5LVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NTAwOlx0cmV0ID0gcWNhOGtfbWlpX3JlYWQzMihidXMsIDB4MTAgfCByMiwgcjEsIFx1MDAyNnZhbCk7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy01MDEtXHRpZiAocmV0IFx1MDAzYyAwKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTUwNS1cdHZhbCB8PSB3cml0ZV92YWw7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo1MDY6XHRxY2E4a19taWlfd3JpdGUzMihidXMsIDB4MTAgfCByMiwgcjEsIHZhbCk7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy01MDctXG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9NTE0PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjUxNTpxY2E4a19idWxrX3JlYWQodm9pZCAqY3R4LCBjb25zdCB2b2lkICpyZWdfYnVmLCBzaXplX3QgcmVnX2xlbixcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTUxNi1cdFx0dm9pZCAqdmFsX2J1Ziwgc2l6ZV90IHZhbF9sZW4pXG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNTE4LVx0aW50IGksIGNvdW50ID0gdmFsX2xlbiAvIHNpemVvZih1MzIpLCByZXQ7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo1MTk6XHRzdHJ1Y3QgcWNhOGtfcHJpdiAqcHJpdiA9IGN0eDtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTUyMC1cdHUzMiByZWcgPSAqKHUxNiAqKXJlZ19idWY7XG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNTIyLVx0aWYgKHByaXYtXHUwMDNlbWdtdF9jb25kdWl0IFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NTIzOlx0ICAgICFxY2E4a19yZWFkX2V0aChwcml2LCByZWcsIHZhbF9idWYsIHZhbF9sZW4pKVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNTI0LVx0XHRyZXR1cm4gMDtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy01MjctXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBjb3VudDsgaSYjNDM7JiM0MzssIHJlZyAmIzQzOz0gc2l6ZW9mKHUzMikpIHtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjUyODpcdFx0cmV0ID0gcWNhOGtfcmVhZF9taWkocHJpdiwgcmVnLCB2YWxfYnVmICYjNDM7IGkpO1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNTI5LVx0XHRpZiAocmV0IFx1MDAzYyAwKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTUzNj1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo1Mzc6cWNhOGtfYnVsa19nYXRoZXJfd3JpdGUodm9pZCAqY3R4LCBjb25zdCB2b2lkICpyZWdfYnVmLCBzaXplX3QgcmVnX2xlbixcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTUzOC1cdFx0XHRjb25zdCB2b2lkICp2YWxfYnVmLCBzaXplX3QgdmFsX2xlbilcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy01NDAtXHRpbnQgaSwgY291bnQgPSB2YWxfbGVuIC8gc2l6ZW9mKHUzMiksIHJldDtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjU0MTpcdHN0cnVjdCBxY2E4a19wcml2ICpwcml2ID0gY3R4O1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNTQyLVx0dTMyIHJlZyA9ICoodTE2ICopcmVnX2J1Zjtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy01NDUtXHRpZiAocHJpdi1cdTAwM2VtZ210X2NvbmR1aXQgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo1NDY6XHQgICAgIXFjYThrX3dyaXRlX2V0aChwcml2LCByZWcsIHZhbCwgdmFsX2xlbikpXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy01NDctXHRcdHJldHVybiAwO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTU1Mi1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIGNvdW50OyBpJiM0MzsmIzQzOywgcmVnICYjNDM7PSBzaXplb2YodTMyKSwgdmFsJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NTUzOlx0XHRyZXQgPSBxY2E4a193cml0ZV9taWkocHJpdiwgcmVnLCAqdmFsKTtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTU1NC1cdFx0aWYgKHJldCBcdTAwM2MgMClcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz01NjE9c3RhdGljIGludFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NTYyOnFjYThrX2J1bGtfd3JpdGUodm9pZCAqY3R4LCBjb25zdCB2b2lkICpkYXRhLCBzaXplX3QgYnl0ZXMpXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy01NjMte1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NTY0Olx0cmV0dXJuIHFjYThrX2J1bGtfZ2F0aGVyX3dyaXRlKGN0eCwgZGF0YSwgc2l6ZW9mKHUxNiksIGRhdGEgJiM0Mzsgc2l6ZW9mKHUxNiksXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy01NjUtXHRcdFx0XHQgICAgICAgYnl0ZXMgLSBzaXplb2YodTE2KSk7XG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9NTY4PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjU2OTpxY2E4a19yZWdtYXBfdXBkYXRlX2JpdHModm9pZCAqY3R4LCB1aW50MzJfdCByZWcsIHVpbnQzMl90IG1hc2ssIHVpbnQzMl90IHdyaXRlX3ZhbClcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTU3MC17XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo1NzE6XHRzdHJ1Y3QgcWNhOGtfcHJpdiAqcHJpdiA9IGN0eDtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTU3Mi1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjU3MzpcdGlmICghcWNhOGtfcmVnbWFwX3VwZGF0ZV9iaXRzX2V0aChwcml2LCByZWcsIG1hc2ssIHdyaXRlX3ZhbCkpXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy01NzQtXHRcdHJldHVybiAwO1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNTc1LVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NTc2Olx0cmV0dXJuIHFjYThrX3JlZ21hcF91cGRhdGVfYml0c19taWkocHJpdiwgcmVnLCBtYXNrLCB3cml0ZV92YWwpO1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNTc3LX1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTU3OC1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjU3OTpzdGF0aWMgY29uc3Qgc3RydWN0IHJlZ21hcF9jb25maWcgcWNhOGtfcmVnbWFwX2NvbmZpZyA9IHtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTU4MC1cdC5yZWdfYml0cyA9IDE2LFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTU4My1cdC5tYXhfcmVnaXN0ZXIgPSAweDE2YWMsIC8qIGVuZCBNSUIgLSBQb3J0NiByYW5nZSAqL1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NTg0Olx0LnJlYWQgPSBxY2E4a19idWxrX3JlYWQsXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo1ODU6XHQud3JpdGUgPSBxY2E4a19idWxrX3dyaXRlLFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NTg2Olx0LnJlZ191cGRhdGVfYml0cyA9IHFjYThrX3JlZ21hcF91cGRhdGVfYml0cyxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjU4NzpcdC5yZF90YWJsZSA9IFx1MDAyNnFjYThrX3JlYWRhYmxlX3RhYmxlLFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NTg4Olx0LmRpc2FibGVfbG9ja2luZyA9IHRydWUsIC8qIExvY2tpbmcgaXMgaGFuZGxlZCBieSBxY2E4ayByZWFkL3dyaXRlICovXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy01ODktXHQuY2FjaGVfdHlwZSA9IFJFR0NBQ0hFX05PTkUsIC8qIEV4cGxpY2l0bHkgZGlzYWJsZSBDQUNIRSAqL1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTU5Nz1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo1OTg6cWNhOGtfcGh5X2V0aF9idXN5X3dhaXQoc3RydWN0IHFjYThrX21nbXRfZXRoX2RhdGEgKm1nbXRfZXRoX2RhdGEsXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy01OTktXHRcdFx0c3RydWN0IHNrX2J1ZmYgKnJlYWRfc2tiLCB1MzIgKnZhbClcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy02MTEtXHRtZ210X2V0aF9kYXRhLVx1MDAzZXNlcSYjNDM7JiM0Mzs7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo2MTI6XHRxY2E4a19tZGlvX2hlYWRlcl9maWxsX3NlcV9udW0oc2tiLCBtZ210X2V0aF9kYXRhLVx1MDAzZXNlcSk7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy02MTMtXHRtZ210X2V0aF9kYXRhLVx1MDAzZWFjayA9IGZhbHNlO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTYzMz1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo2MzQ6cWNhOGtfcGh5X2V0aF9jb21tYW5kKHN0cnVjdCBxY2E4a19wcml2ICpwcml2LCBib29sIHJlYWQsIGludCBwaHksXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy02MzUtXHRcdCAgICAgIGludCByZWdudW0sIHUxNiBkYXRhKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTYzNy1cdHN0cnVjdCBza19idWZmICp3cml0ZV9za2IsICpjbGVhcl9za2IsICpyZWFkX3NrYjtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjYzODpcdHN0cnVjdCBxY2E4a19tZ210X2V0aF9kYXRhICptZ210X2V0aF9kYXRhO1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNjM5LVx0dTMyIHdyaXRlX3ZhbCwgY2xlYXJfdmFsID0gMCwgdmFsO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTY0My1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjY0NDpcdGlmIChxY2E4a19tZ210X2V0aF9kaXNhYmxlZChwcml2KSlcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTY0NS1cdFx0cmV0dXJuIC1FTlhJTztcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy02NjMtXHQvKiBQcmVhbGxvYyBhbGwgdGhlIG5lZWRlZCBza2IgYmVmb3JlIHRoZSBsb2NrICovXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo2NjQ6XHR3cml0ZV9za2IgPSBxY2E4a19hbGxvY19tZGlvX2hlYWRlcihNRElPX1dSSVRFLCBRQ0E4S19NRElPX01BU1RFUl9DVFJMLCBcdTAwMjZ3cml0ZV92YWwsXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy02NjUtXHRcdFx0XHRcdCAgICBRQ0E4S19FVEhFUk5FVF9QSFlfUFJJT1JJVFksIHNpemVvZih3cml0ZV92YWwpKTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy02NjgtXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo2Njk6XHRjbGVhcl9za2IgPSBxY2E4a19hbGxvY19tZGlvX2hlYWRlcihNRElPX1dSSVRFLCBRQ0E4S19NRElPX01BU1RFUl9DVFJMLCBcdTAwMjZjbGVhcl92YWwsXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy02NzAtXHRcdFx0XHRcdCAgICBRQ0E4S19FVEhFUk5FVF9QSFlfUFJJT1JJVFksIHNpemVvZihjbGVhcl92YWwpKTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy02NzUtXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo2NzY6XHRyZWFkX3NrYiA9IHFjYThrX2FsbG9jX21kaW9faGVhZGVyKE1ESU9fUkVBRCwgUUNBOEtfTURJT19NQVNURVJfQ1RSTCwgXHUwMDI2Y2xlYXJfdmFsLFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNjc3LVx0XHRcdFx0XHQgICBRQ0E4S19FVEhFUk5FVF9QSFlfUFJJT1JJVFksIHNpemVvZihjbGVhcl92YWwpKTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy03MTYtXHRtZ210X2V0aF9kYXRhLVx1MDAzZXNlcSYjNDM7JiM0Mzs7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo3MTc6XHRxY2E4a19tZGlvX2hlYWRlcl9maWxsX3NlcV9udW0od3JpdGVfc2tiLCBtZ210X2V0aF9kYXRhLVx1MDAzZXNlcSk7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy03MTgtXHRtZ210X2V0aF9kYXRhLVx1MDAzZWFjayA9IGZhbHNlO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTczOC1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjczOTpcdHJldCA9IHJlYWRfcG9sbF90aW1lb3V0KHFjYThrX3BoeV9ldGhfYnVzeV93YWl0LCByZXQxLFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNzQwLVx0XHRcdFx0ISh2YWwgXHUwMDI2IFFDQThLX01ESU9fTUFTVEVSX0JVU1kpLCAwLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTc1My1cdFx0bWdtdF9ldGhfZGF0YS1cdTAwM2VzZXEmIzQzOyYjNDM7O1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NzU0Olx0XHRxY2E4a19tZGlvX2hlYWRlcl9maWxsX3NlcV9udW0ocmVhZF9za2IsIG1nbXRfZXRoX2RhdGEtXHUwMDNlc2VxKTtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTc1NS1cdFx0bWdtdF9ldGhfZGF0YS1cdTAwM2VhY2sgPSBmYWxzZTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy03ODItXHRtZ210X2V0aF9kYXRhLVx1MDAzZXNlcSYjNDM7JiM0Mzs7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo3ODM6XHRxY2E4a19tZGlvX2hlYWRlcl9maWxsX3NlcV9udW0oY2xlYXJfc2tiLCBtZ210X2V0aF9kYXRhLVx1MDAzZXNlcSk7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy03ODQtXHRtZ210X2V0aF9kYXRhLVx1MDAzZWFjayA9IGZhbHNlO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTgwNz1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo4MDg6cWNhOGtfbWRpb19idXN5X3dhaXQoc3RydWN0IG1paV9idXMgKmJ1cywgdTMyIHJlZywgdTMyIG1hc2spXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy04MDkte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTgxMy1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjgxNDpcdHFjYThrX3NwbGl0X2FkZHIocmVnLCBcdTAwMjZyMSwgXHUwMDI2cjIsIFx1MDAyNnBhZ2UpO1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtODE1LVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6ODE2Olx0cmV0ID0gcmVhZF9wb2xsX3RpbWVvdXQocWNhOGtfbWlpX3JlYWRfaGksIHJldDEsICEodmFsIFx1MDAyNiBtYXNrKSwgMCxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTgxNy1cdFx0XHRcdFFDQThLX0JVU1lfV0FJVF9USU1FT1VUICogVVNFQ19QRVJfTVNFQywgZmFsc2UsXG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtODE5LVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6ODIwOlx0LyogQ2hlY2sgaWYgcWNhOGtfcmVhZCBoYXMgZmFpbGVkIGZvciBhIGRpZmZlcmVudCByZWFzb25cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTgyMS1cdCAqIGJlZm9yZSByZXR1cm50aW5nIC1FVElNRURPVVRcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz04Mjk9c3RhdGljIGludFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6ODMwOnFjYThrX21kaW9fd3JpdGUoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIGludCBwaHksIGludCByZWdudW0sIHUxNiBkYXRhKVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtODMxLXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy04NDQtXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo4NDU6XHRxY2E4a19zcGxpdF9hZGRyKFFDQThLX01ESU9fTUFTVEVSX0NUUkwsIFx1MDAyNnIxLCBcdTAwMjZyMiwgXHUwMDI2cGFnZSk7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy04NDYtXG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtODQ4LVxuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzEwIDA3OjE3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM0NDA2CgkJCQkJCQlvdXRwdXQ6IDIyCgkJCQkJCQl0aG91Z2h0czogMTY2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgUUNBOEsgRXRoZXJuZXQgRHJpdmVyIE1vZGlmaWNhdGlvbnMqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGltbWVkaWF0ZWx5LCBteSBmb2N1cyBsYW5kcyBvbiBgZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmNgLiBUaGF0JiMzOTtzIHRoZSBkcml2ZXIgZmlsZSBpdHNlbGYsIHNvIGl0JiMzOTtzIHRoZSBjb3JlIG9mIHRoZSBjaGFuZ2VzLiBUaGUga2V5IGZ1bmN0aW9ucyB0aGF0IGhhdmUgYmVlbiB0b3VjaGVkIGFyZSBgcWNhOGtfcmVhZF9ldGhgLCBgcWNhOGtfd3JpdGVfZXRoYCwgYW5kIGBxY2E4a19waHlfZXRoX2NvbW1hbmRgLiBLbm93aW5nIHRoZXNlIGFyZSBtb2RpZmllZCB0ZWxscyBtZSB3ZSYjMzk7cmUgbGlrZWx5IGRlYWxpbmcgd2l0aCBzb21lIGZ1bmRhbWVudGFsIEV0aGVybmV0IGNvbW11bmljYXRpb24gb3BlcmF0aW9ucywgcHJvYmFibHkgcmVhZGluZyBhbmQgd3JpdGluZyB0byB0aGUgUEhZLCBwZXJoYXBzIGlzc3VpbmcgY29tbWFuZHMuCgpOb3csIHdoZXJlIGFyZSAqdGhlc2UqIGZ1bmN0aW9ucyBjYWxsZWQgZnJvbT8gQWgsIHllcywgYHFjYThrX2J1bGtfcmVhZGAsIGBxY2E4a19idWxrX2dhdGhlcl93cml0ZWAsIGBxY2E4a19waHlfZXRoX2J1c3lfd2FpdGAsIGFuZCBzbyBvbi4gVGhlc2UgYXJlIGhpbnRpbmcgYXQgb3B0aW1pemF0aW9ucyBvciBwZXJoYXBzIGhhbmRsaW5nIGxhcmdlciBkYXRhIHRyYW5zZmVycyBtb3JlIGVmZmljaWVudGx5LiBBbmQgSSByZW1lbWJlciBub3cg4oCTIHRoZXNlIGZ1bmN0aW9ucyBhcmUgYWxsIHBhcnQgb2YgdGhlICpyZWdtYXAqIG9wZXJhdGlvbnMuIFJpZ2h0LCB0aGlzIGlzIGhvdyB3ZSYjMzk7cmUgYWJzdHJhY3RpbmcgcmVnaXN0ZXIgYWNjZXNzIHRvIHRoZSBoYXJkd2FyZS4gU3BlY2lmaWNhbGx5LCB0aGVzZSBmdW5jdGlvbnMgZml0IHdpdGhpbiB0aGUgYHFjYThrX3JlZ21hcF9jb25maWdgIGNvbmZpZ3VyYXRpb24uCgpOb3cgdGhlIHF1ZXN0aW9uIGlzLCBob3cgYW5kIHdoZXJlIGlzIHRoaXMgcmVnbWFwIGluaXRpYWxpemVkPyBJdCYjMzk7cyBlaXRoZXIgaW4gYHFjYThrX3NldHVwYCBvciwgaG1tLCBtYXliZSBgcWNhOGtfc3dfcHJvYmVgPyBNeSBpbml0aWFsIGluc3RpbmN0IGlzIHRvIGdvIHdpdGggYHFjYThrX3N3X3Byb2JlYC4gTGV0JiMzOTtzIGp1c3QgcXVpY2tseSBjb25maXJtIHRoYXQuLi4gSSYjMzk7bGwgY2hlY2sgYHFjYThrX3N3X3Byb2JlYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTAgMDc6MTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cWNhOGtfc3dfcHJvYmUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9MjA3Mj1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzoyMDczOnFjYThrX3N3X3Byb2JlKHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2RldilcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTIwNzQte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTIyMzU9c3RhdGljIHN0cnVjdCBtZGlvX2RyaXZlciBxY2E4a21kaW9fZHJpdmVyID0ge1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MjIzNjpcdC5wcm9iZSAgPSBxY2E4a19zd19wcm9iZSxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTIyMzctXHQucmVtb3ZlID0gcWNhOGtfc3dfcmVtb3ZlLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMCAwNzoxNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNTE3NQoJCQkJCQkJb3V0cHV0OiAyNwoJCQkJCQkJdGhvdWdodHM6IDI0MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNRElPIERyaXZlciBJbnN0YW50aWF0aW9uOiBBIFN5emthbGxlciBDaGFsbGVuZ2UqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgTURJTyBkcml2ZXIgYW5kIHdvbmRlcmluZyBob3cgSSBjYW4gcG9rZSBhdCBpdCB3aXRoIHN5emthbGxlci4gVGhlIGltbWVkaWF0ZSBwcm9ibGVtIGlzIHRoYXQgc3l6a2FsbGVyIGRvZXNuJiMzOTt0IHNlZW0gdG8gaGF2ZSBhICpnZW5lcmljKiBtZXRob2QgZm9yIGluc3RhbnRpYXRpbmcgTURJTyBkZXZpY2VzLiBVbmxlc3MgdGhlcmUmIzM5O3Mgc29tZSBzcGVjaWFsIHBzZXVkby1zeXNjYWxsIG9yIG5ldGxpbmsgaW50ZXJmYWNlLCBJJiMzOTttIGtpbmQgb2Ygc3R1Y2suIEkmIzM5O20gYXdhcmUgb2YgdGhlIGV4aXN0aW5nIHRvb2xzIGxpa2UgYHN5el9nZW5ldGxpbmtfZ2V0X2ZhbWlseWAgYW5kIGBzeXpfb3Blbl9kZXZgLCBidXQgdGhleSBkb24mIzM5O3QganVtcCBvdXQgYXMgYSBkaXJlY3Qgc29sdXRpb24gaGVyZS4KClRoZSBvYnZpb3VzIHdheSBNRElPIGRldmljZXMgYXJlICp1c3VhbGx5KiBicm91Z2h0IHRvIGxpZmUgaXMgdGhyb3VnaCB0aGUgZGV2aWNlIHRyZWUsIGFuZCB1bmZvcnR1bmF0ZWx5LCBJIGNhbiYjMzk7dCBpbmplY3QgZGV2aWNlIHRyZWUgb3ZlcmxheXMgdXNpbmcgc3l6a2FsbGVyLiBUaGF0JiMzOTtzIGEgZGVhZCBlbmQuCgpPa2F5LCBzeXNmcyB0aGVuPyBDYW4gSSBsZXZlcmFnZSBzeXNmcyB0byBpbnN0YW50aWF0ZSB0aGVzZSBkZXZpY2VzPyBMZXQgbWUgdGhpbmsuLi4gQ291bGQgSSBkbyBzb21ldGhpbmcgbGlrZSBgZWNobyAmIzM0O3FjYThrJiMzNDsgJmd0OyAvc3lzL2J1cy9tZGlvX2J1cy9kZXZpY2VzLy4uLmA/IE5vLCB3YWl0IGEgbWludXRlLCB0aGUgTURJTyBidXMgZG9lc24mIzM5O3Qgc2VlbSB0byBoYXZlIHRoYXQgY29udmVuaWVudCBgbmV3X2RldmljZWAgc3lzZnMgYXR0cmlidXRlIGxpa2UgSTJDIG9yIFNQSS4gVGhhdCYjMzk7cyBmcnVzdHJhdGluZy4KCkxldCYjMzk7cyBzdGVwIGJhY2ssIGFuZCByZS10aGluayB0aGlzLiBTeXprYWxsZXIgaGFzIHRoZXNlIHZlcnkgc3BlY2lmaWMgc3lzY2FsbHMgZm9yIG90aGVyIHN1YnN5c3RlbXMsIHRoaW5ncyBsaWtlIGBzeXpfdXNiX2Nvbm5lY3RgIGZvciBVU0IgYW5kIGBzeXpfODAyMTFfaW5qZWN0X2ZyYW1lYCBmb3IgbWFjODAyMTEuIERvZXMgaXQgaGF2ZSBhbnl0aGluZyAqYXQgYWxsKiBzcGVjaWZpYyB0byBNRElPPyBJIG5lZWQgdG8gY2hlY2suIFRoaXMgZmVlbHMgbGlrZSBpdCBtaWdodCBiZSB0aGUgb25seSByb3V0ZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTAgMDc6MTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzeXpfJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7c3lzL2xpbnV4LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzEwIDA3OjE3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM1ODA2CgkJCQkJCQlvdXRwdXQ6IDIwCgkJCQkJCQl0aG91Z2h0czogMzI5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgU2NvcGUgb2YgTXkgSW52ZXN0aWdhdGlvbioqCgpPa2F5LCBzbyB0aGUgaW5zdHJ1Y3Rpb25zIGFyZSBwcmV0dHkgY2xlYXI6IHRoaXMgdG9vbCAqY2Fubm90KiBoYW5kbGUgc2VhcmNoaW5nIHdpdGhpbiBzeXprYWxsZXImIzM5O3MgYHN5cy8qYCBkZXNjcmlwdGlvbnMgb3IgZXhwcmVzc2lvbnMgdXNpbmcgYHN5el9gLCB3aGljaCBtYWtlcyBzZW5zZSBiZWNhdXNlIHRob3NlIGFyZSBwc2V1ZG8tc3lzY2FsbHMgYW5kIGFyZW4mIzM5O3QgZGlyZWN0bHkgcHJlc2VudCBpbiB0aGUgTGludXgga2VybmVsLiBUaGV5IGV4cGxpY2l0bHkgdGVsbCBtZSB0byB1c2UgYHJlYWQtc3l6LXNwZWNgIGFuZCBgc3l6LWdyZXBwZXJgIGZvciB0aGF0LCBidXQgaG9sZCBvbi4uLiBJIGRvbiYjMzk7dCBzZWUgdGhvc2UgdG9vbHMgbGlzdGVkLiBNeSBvcHRpb25zIGhlcmUgYXJlIGxpbWl0ZWQgdG8gYGdyZXBwZXJgLCBgY29kZXNlYXJjaC1kaXItaW5kZXhgLCBgcmVhZC1maWxlYCwgYW5kIGBzZXQtcmVzdWx0c2AuIFNvLCBJJiMzOTttIGVmZmVjdGl2ZWx5IGJsb2NrZWQgZnJvbSBsb29raW5nIGF0IHRob3NlIHN5emthbGxlciBjb25zdHJ1Y3RzIGRpcmVjdGx5LgoKQnV0LCB0aGF0JiMzOTtzIGFscmlnaHQsIEkgY2FuIHdvcmsgYXJvdW5kIHRoaXMgYmFzZWQgb24gbXkga25vd2xlZGdlLiBNRElPIGRldmljZXMsIGluIGdlbmVyYWwsIGFyZW4mIzM5O3Qgc29tZXRoaW5nIHlvdSBpbnN0YW50aWF0ZSBmcm9tIHVzZXItc3BhY2UgaW4gYSBzdHJhaWdodGZvcndhcmQgbWFubmVyLiBUaGVyZSYjMzk7cyBubyBzdGFuZGFyZCBgc3l6X21kaW9fY29ubmVjdGAgZXF1aXZhbGVudCBvciBhbnl0aGluZyBsaWtlIHRoYXQgdGhhdCBJJiMzOTttIGF3YXJlIG9mLiBBbmQsIGxvb2tpbmcgYXQgdGhlIGNvbnRleHQsIHRoaXMgaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBzd2l0Y2ggZHJpdmVyIOKAkyBhIFF1YWxjb21tIEF0aGVyb3MgUUNBOEssIHNwZWNpZmljYWxseS4KClR5cGljYWxseSwgaGFyZHdhcmUtc3BlY2lmaWMgbmV0d29yayBzd2l0Y2ggZHJpdmVycywgZXNwZWNpYWxseSBEU0EgZHJpdmVycywgYXJlIGNvbXBsZXRlbHkgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSB1bmxlc3MgeW91JiMzOTt2ZSBnb3QgKnZlcnkqIHNwZWNpZmljIGhhcmR3YXJlIGVtdWxhdGlvbiBnb2luZyBvbi4gQW5kIFFFTVUgY2VydGFpbmx5IGRvZXNuJiMzOTt0IGVtdWxhdGUgUUNBOEsgc3dpdGNoZXMuIFRoZXJlZm9yZSwgY29uc2lkZXJpbmcgdGhlIGxpbWl0YXRpb25zIG9mIHdoYXQgSSAqY2FuKiB1c2UsIHRoZSBjaGFuY2VzIG9mIHJlYWNoaW5nIHRoZXNlIGNvZGUgcGF0aHMgaW4gZW52aXJvbm1lbnRzIGxpa2UgR29vZ2xlIENvbXB1dGUgRW5naW5lIG9yIFFFTVUgYXJlIHNsaW0gdG8gbm9uZS4gSXQmIzM5O3MgZXNzZW50aWFsbHkgaW1wb3NzaWJsZSwgYXMgdGhlIGNvZGUgcmVsaWVzIG9uIGludGVyYWN0aW5nIHdpdGggdGhlIHBoeXNpY2FsIGhhcmR3YXJlLgoKSnVzdCB0byBiZSB0aG9yb3VnaCwgSSBzaG91bGQgZG91YmxlIGNoZWNrIHRvIHNlZSBpZiB0aGVyZSYjMzk7cyBzb21lIGtpbmQgb2YgZHVtbXkgTURJTyBidXMgb3Igc29tZXRoaW5nIHNpbWlsYXIgd2hpY2ggbWF5IHByb2JlIHRoaXMuIEhvd2V2ZXIsIGV2ZW4gaWYgdGhlcmUgaXMsIHRoZSBkcml2ZXImIzM5O3MgYHFjYThrX3N3X3Byb2JlYCBmdW5jdGlvbiByZWFkcyBoYXJkd2FyZSByZWdpc3RlcnMgdG8gaWRlbnRpZnkgdGhlIGNoaXAsIGFuZCB0aGF0IHdpbGwgYmUgaW1wb3NzaWJsZSB0byBkbyB3aXRoIGEgZHVtbXkgaW1wbGVtZW50YXRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzEwIDA3OjE4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3FjYThrX3JlYWQmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jPTIwNzQ9c3RhdGljIGludCBxY2E4a19yZWdtYXBfcmVhZCh2b2lkICpjb250ZXh0LCB1bnNpZ25lZCBpbnQgcmVnYWRkciwgdW5zaWduZWQgaW50ICp2YWwpXG4tLVxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIwODUtXHRpZiAocmV0IFx1MDAzYyAwKVxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIwODY6XHRcdGdvdG8gcWNhOGtfcmVhZF9leGl0O1xuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIwODctXG4tLVxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIwODktXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjA5MDpxY2E4a19yZWFkX2V4aXQ6XG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjA5MS1cdG11dGV4X3VubG9jayhcdTAwMjZidXMtXHUwMDNlbWRpb19sb2NrKTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz0zMDc9c3RhdGljIHZvaWQgcWNhOGtfbWRpb19oZWFkZXJfZmlsbF9zZXFfbnVtKHN0cnVjdCBza19idWZmICpza2IsIHUzMiBzZXFfbnVtKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTMxNi1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjMxNzpzdGF0aWMgaW50IHFjYThrX3JlYWRfZXRoKHN0cnVjdCBxY2E4a19wcml2ICpwcml2LCB1MzIgcmVnLCB1MzIgKnZhbCwgaW50IGxlbilcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTMxOC17XG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9NDI0PXFjYThrX3JlZ21hcF91cGRhdGVfYml0c19ldGgoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIHUzMiByZWcsIHUzMiBtYXNrLCB1MzIgd3JpdGVfdmFsKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTQyOC1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjQyOTpcdHJldCA9IHFjYThrX3JlYWRfZXRoKHByaXYsIHJlZywgXHUwMDI2dmFsLCBzaXplb2YodmFsKSk7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy00MzAtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTQzOT1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo0NDA6cWNhOGtfcmVhZF9taWkoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIHVpbnQzMl90IHJlZywgdWludDMyX3QgKnZhbClcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTQ0MS17XG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9NTE1PXFjYThrX2J1bGtfcmVhZCh2b2lkICpjdHgsIGNvbnN0IHZvaWQgKnJlZ19idWYsIHNpemVfdCByZWdfbGVuLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTUyMi1cdGlmIChwcml2LVx1MDAzZW1nbXRfY29uZHVpdCBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjUyMzpcdCAgICAhcWNhOGtfcmVhZF9ldGgocHJpdiwgcmVnLCB2YWxfYnVmLCB2YWxfbGVuKSlcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTUyNC1cdFx0cmV0dXJuIDA7XG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNTI3LVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgY291bnQ7IGkmIzQzOyYjNDM7LCByZWcgJiM0Mzs9IHNpemVvZih1MzIpKSB7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo1Mjg6XHRcdHJldCA9IHFjYThrX3JlYWRfbWlpKHByaXYsIHJlZywgdmFsX2J1ZiAmIzQzOyBpKTtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTUyOS1cdFx0aWYgKHJldCBcdTAwM2MgMClcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz01Nzk9c3RhdGljIGNvbnN0IHN0cnVjdCByZWdtYXBfY29uZmlnIHFjYThrX3JlZ21hcF9jb25maWcgPSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNTg2LVx0LnJlZ191cGRhdGVfYml0cyA9IHFjYThrX3JlZ21hcF91cGRhdGVfYml0cyxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjU4NzpcdC5yZF90YWJsZSA9IFx1MDAyNnFjYThrX3JlYWRhYmxlX3RhYmxlLFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNTg4LVx0LmRpc2FibGVfbG9ja2luZyA9IHRydWUsIC8qIExvY2tpbmcgaXMgaGFuZGxlZCBieSBxY2E4ayByZWFkL3dyaXRlICovXG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9ODA4PXFjYThrX21kaW9fYnVzeV93YWl0KHN0cnVjdCBtaWlfYnVzICpidXMsIHUzMiByZWcsIHUzMiBtYXNrKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTgxOS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjgyMDpcdC8qIENoZWNrIGlmIHFjYThrX3JlYWQgaGFzIGZhaWxlZCBmb3IgYSBkaWZmZXJlbnQgcmVhc29uXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy04MjEtXHQgKiBiZWZvcmUgcmV0dXJudGluZyAtRVRJTUVET1VUXG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9MTUwOD1zdGF0aWMgdm9pZCBxY2E4a19wY3NfZ2V0X3N0YXRlKHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzLCB1bnNpZ25lZCBpbnQgbmVnX21vZGUsXG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMTUxNS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjE1MTY6XHRyZXQgPSBxY2E4a19yZWFkKHByaXYsIFFDQThLX1JFR19QT1JUX1NUQVRVUyhwb3J0KSwgXHUwMDI2cmVnKTtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTE1MTctXHRpZiAocmV0IFx1MDAzYyAwKSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9MTU0OD1zdGF0aWMgaW50IHFjYThrX3Bjc19jb25maWcoc3RydWN0IHBoeWxpbmtfcGNzICpwY3MsIHVuc2lnbmVkIGludCBuZWdfbW9kZSxcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0xNTgyLVx0LyogQ29uZmlndXJlIHRoZSBTR01JSSBwYXJhbWV0ZXJzICovXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzoxNTgzOlx0cmV0ID0gcWNhOGtfcmVhZChwcml2LCBRQ0E4S19SRUdfU0dNSUlfQ1RSTCwgXHUwMDI2dmFsKTtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTE1ODQtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTIwNzM9cWNhOGtfc3dfcHJvYmUoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTIxMTItXHQvKiBDaGVjayB0aGUgZGV0ZWN0ZWQgc3dpdGNoIGlkICovXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzoyMTEzOlx0cmV0ID0gcWNhOGtfcmVhZF9zd2l0Y2hfaWQocHJpdik7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0yMTE0LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jPTIyPWNvbnN0IHN0cnVjdCBxY2E4a19taWJfZGVzYyBhcjgzMjdfbWliW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYy02NS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmM6NjY6aW50IHFjYThrX3JlYWQoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIHUzMiByZWcsIHUzMiAqdmFsKVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYy02Ny17XG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYz03Nj1pbnQgcWNhOGtfcm13KHN0cnVjdCBxY2E4a19wcml2ICpwcml2LCB1MzIgcmVnLCB1MzIgbWFzaywgdTMyIHdyaXRlX3ZhbClcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jLTgwLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYzo4MTpzdGF0aWMgY29uc3Qgc3RydWN0IHJlZ21hcF9yYW5nZSBxY2E4a19yZWFkYWJsZV9yYW5nZXNbXSA9IHtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmMtODItXHRyZWdtYXBfcmVnX3JhbmdlKDB4MDAwMCwgMHgwMGU0KSwgLyogR2xvYmFsIGNvbnRyb2wgKi9cbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jLTk4LVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYzo5OTpjb25zdCBzdHJ1Y3QgcmVnbWFwX2FjY2Vzc190YWJsZSBxY2E4a19yZWFkYWJsZV90YWJsZSA9IHtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmM6MTAwOlx0Lnllc19yYW5nZXMgPSBxY2E4a19yZWFkYWJsZV9yYW5nZXMsXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jOjEwMTpcdC5uX3llc19yYW5nZXMgPSBBUlJBWV9TSVpFKHFjYThrX3JlYWRhYmxlX3JhbmdlcyksXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jLTEwMi19O1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmM9MTY0PXN0YXRpYyBpbnQgcWNhOGtfZmRiX2FjY2VzcyhzdHJ1Y3QgcWNhOGtfcHJpdiAqcHJpdiwgZW51bSBxY2E4a19mZGJfY21kIGNtZCxcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jLTE4OS1cdGlmIChjbWQgPT0gUUNBOEtfRkRCX0xPQUQpIHtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmM6MTkwOlx0XHRyZXQgPSBxY2E4a19yZWFkKHByaXYsIFFDQThLX1JFR19BVFVfRlVOQywgXHUwMDI2cmVnKTtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmMtMTkxLVx0XHRpZiAocmV0IFx1MDAzYyAwKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmM9MzI1PXN0YXRpYyBpbnQgcWNhOGtfdmxhbl9hY2Nlc3Moc3RydWN0IHFjYThrX3ByaXYgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYy0zNDctXHRpZiAoY21kID09IFFDQThLX1ZMQU5fTE9BRCkge1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYzozNDg6XHRcdHJldCA9IHFjYThrX3JlYWQocHJpdiwgUUNBOEtfUkVHX1ZUVV9GVU5DMSwgXHUwMDI2cmVnKTtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmMtMzQ5LVx0XHRpZiAocmV0IFx1MDAzYyAwKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmM9MzU4PXN0YXRpYyBpbnQgcWNhOGtfdmxhbl9hZGQoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIHU4IHBvcnQsIHUxNiB2aWQsXG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYy0zNzQtXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jOjM3NTpcdHJldCA9IHFjYThrX3JlYWQocHJpdiwgUUNBOEtfUkVHX1ZUVV9GVU5DMCwgXHUwMDI2cmVnKTtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmMtMzc2LVx0aWYgKHJldCBcdTAwM2MgMClcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jPTM5Nj1zdGF0aWMgaW50IHFjYThrX3ZsYW5fZGVsKHN0cnVjdCBxY2E4a19wcml2ICpwcml2LCB1OCBwb3J0LCB1MTYgdmlkKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmMtNDA2LVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYzo0MDc6XHRyZXQgPSBxY2E4a19yZWFkKHByaXYsIFFDQThLX1JFR19WVFVfRlVOQzAsIFx1MDAyNnJlZyk7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jLTQwOC1cdGlmIChyZXQgXHUwMDNjIDApXG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYz00OTM9dm9pZCBxY2E4a19nZXRfZXRodG9vbF9zdGF0cyhzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmMtNTA5LVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYzo1MTA6XHRcdHJldCA9IHFjYThrX3JlYWQocHJpdiwgcmVnLCBcdTAwMjZ2YWwpO1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYy01MTEtXHRcdGlmIChyZXQgXHUwMDNjIDApXG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYy01MTQtXHRcdGlmIChtaWItXHUwMDNlc2l6ZSA9PSAyKSB7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jOjUxNTpcdFx0XHRyZXQgPSBxY2E4a19yZWFkKHByaXYsIHJlZyAmIzQzOyA0LCBcdTAwMjZoaSk7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jLTUxNi1cdFx0XHRpZiAocmV0IFx1MDAzYyAwKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmM9NTM2PWludCBxY2E4a19zZXRfbWFjX2VlZShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmMtNTQ0LVx0bXV0ZXhfbG9jayhcdTAwMjZwcml2LVx1MDAzZXJlZ19tdXRleCk7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jOjU0NTpcdHJldCA9IHFjYThrX3JlYWQocHJpdiwgUUNBOEtfUkVHX0VFRV9DVFJMLCBcdTAwMjZyZWcpO1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYy01NDYtXHRpZiAocmV0IFx1MDAzYyAwKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmM9MTIyND1pbnQgcWNhOGtfcG9ydF9sYWdfbGVhdmUoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jLTEyMjktXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jOjEyMzA6aW50IHFjYThrX3JlYWRfc3dpdGNoX2lkKHN0cnVjdCBxY2E4a19wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYy0xMjMxLXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jLTEyMzgtXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jOjEyMzk6XHRyZXQgPSBxY2E4a19yZWFkKHByaXYsIFFDQThLX1JFR19NQVNLX0NUUkwsIFx1MDAyNnZhbCk7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jLTEyNDAtXHRpZiAocmV0IFx1MDAzYyAwKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGsuaD01MDI9ZXh0ZXJuIGNvbnN0IHN0cnVjdCBxY2E4a19taWJfZGVzYyBhcjgzMjdfbWliW107XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLmg6NTAzOmV4dGVybiBjb25zdCBzdHJ1Y3QgcmVnbWFwX2FjY2Vzc190YWJsZSBxY2E4a19yZWFkYWJsZV90YWJsZTtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGsuaC01MDQtaW50IHFjYThrX21pYl9pbml0KHN0cnVjdCBxY2E4a19wcml2ICpwcml2KTtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGsuaD01MDU9dm9pZCBxY2E4a19wb3J0X3NldF9zdGF0dXMoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIGludCBwb3J0LCBpbnQgZW5hYmxlKTtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGsuaDo1MDY6aW50IHFjYThrX3JlYWRfc3dpdGNoX2lkKHN0cnVjdCBxY2E4a19wcml2ICpwcml2KTtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGsuaC01MDctXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLmgtNTA4LS8qIENvbW1vbiByZWFkL3dyaXRlL3JtdyBmdW5jdGlvbiAqL1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay5oOjUwOTppbnQgcWNhOGtfcmVhZChzdHJ1Y3QgcWNhOGtfcHJpdiAqcHJpdiwgdTMyIHJlZywgdTMyICp2YWwpO1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay5oLTUxMC1pbnQgcWNhOGtfd3JpdGUoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIHUzMiByZWcsIHUzMiB2YWwpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMCAwNzoxODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MDY4NAoJCQkJCQkJb3V0cHV0OiAxMjAKCQkJCQkJCXRob3VnaHRzOiAzNTgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBGdXp6YWJpbGl0eSBvZiB0aGUgUUNBOEsgRFNBIFN3aXRjaCBEcml2ZXIqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW5pdGlhbCBhc3Nlc3NtZW50IGlzIHRoYXQgdGhpcyBRQ0E4SyBzd2l0Y2ggZHJpdmVyLCBzcGVjaWZpY2FsbHkgdGhlIGBxY2E4a19zd19wcm9iZWAgZnVuY3Rpb24sIHByZXNlbnRzIGEgc2lnbmlmaWNhbnQgaHVyZGxlIGZvciBmdXp6aW5nLiBUaGUgZnVuY3Rpb24gYHFjYThrX3JlYWRfc3dpdGNoX2lkKHByaXYpYCBpcyBjYWxsZWQgd2l0aGluIGBxY2E4a19zd19wcm9iZWAsIGFuZCBjcnVjaWFsbHksIHRoaXMgcmVsaWVzIG9uIHRoZSBwaHlzaWNhbCBwcmVzZW5jZSBvZiB0aGUgaGFyZHdhcmUuIEdpdmVuIHRoYXQgc3RhbmRhcmQgUUVNVSBkb2VzbiYjMzk7dCBlbXVsYXRlIHRoZXNlIFFDQThLIHN3aXRjaGVzLCB0aGUgcHJvYmUgd2lsbCBpbmV2aXRhYmx5IGZhaWwgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudC4gQ29uc2VxdWVudGx5LCB0aGUgY29kZSBwYXRocyB0b3VjaGVkIGJ5IHRoaXMgcGF0Y2gsIGludm9sdmluZyBjaGVja3MgZm9yIGBxY2E4a19tZ210X2V0aF9kaXNhYmxlZGAgaW4gYHFjYThrX3JlYWRfZXRoYCwgYHFjYThrX3dyaXRlX2V0aGAsIGFuZCBgcWNhOGtfcGh5X2V0aF9jb21tYW5kYCwgYXJlIGNvbXBsZXRlbHkgdW5yZWFjaGFibGUgd2l0aGluIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciwgY3JpdGljYWxseSwgU3l6a2FsbGVyJiMzOTtzIFFFTVUuIFRoZXNlIGZ1bmN0aW9ucyBhcmUgb25seSBjYWxsZWQgYWZ0ZXIgYSBzdWNjZXNzZnVsIHByb2JlIGFuZCBzd2l0Y2ggaW5pdGlhbGl6YXRpb24uCgpUbyBiZSBhYnNvbHV0ZWx5IHN1cmUsIEkmIzM5O3ZlIGNvbnNpZGVyZWQgcG90ZW50aWFsIHdvcmthcm91bmRzLiBJcyB0aGVyZSBhIGR1bW15IGRyaXZlciBvdXQgdGhlcmUgdGhhdCBtaWdodCBpbnN0YW50aWF0ZSB0aGlzLCBzb21laG93IG1ha2luZyBpdCBhY2Nlc3NpYmxlPyBObywgaXQmIzM5O3Mgbm90LiBUaGUgZHJpdmVyIHJlbGllcyBvbiBzcGVjaWZpYyBNRElPIGNvbXBhdGlibGUgc3RyaW5ncywgbGlrZSAmIzM0O3FjYSxxY2E4MzI3LCYjMzQ7IG1hdGNoZWQgdGhyb3VnaCB0aGUgZGV2aWNlIHRyZWUgKE9GKS4gU3l6a2FsbGVyIGRvZXNuJiMzOTt0IGR5bmFtaWNhbGx5IGluamVjdCBPRiBub2RlcyBmb3IgTURJTyBkZXZpY2VzLCB3aGljaCB3b3VsZCBiZSBuZWVkZWQgaGVyZS4gRXZlbiBpZiBzdWNoIGEgdGhpbmcgd2VyZSBwb3NzaWJsZSwgdGhlIHByb2JlIGZ1bmN0aW9uIGl0c2VsZiByZWFkcyBhIHN3aXRjaCBJRCBmcm9tIGEgc3BlY2lmaWMgcmVnaXN0ZXIuIFRoYXQgcmVhZCB3b3VsZCBmYWlsIHdpdGhvdXQgYW4gYXBwcm9wcmlhdGUgZW11bGF0b3IsIGFuZCB0aGF0JiMzOTtzIG5vdCBzb21ldGhpbmcgd2UgaGF2ZSBhdmFpbGFibGUuCgpUaGVyZWZvcmUsIGFmdGVyIGEgdGhvcm91Z2ggcmV2aWV3LCBJJiMzOTttIGNvbmZpZGVudCBpbiBjb25jbHVkaW5nIHRoYXQgdGhpcyBpcyBub3Qgd29ydGggZnV6emluZywgYW5kIEkgc2hvdWxkIHNldCBgV29ydGhGdXp6aW5nPWZhbHNlYC4gVGhlIHJlYXNvbmluZyB3aWxsIGJlIHN0cmFpZ2h0Zm9yd2FyZDogdGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIERTQSBzd2l0Y2ggZHJpdmVyIGZvciBRQ0E4SyBjaGlwcyB0aGF0IHJlcXVpcmVzIHBoeXNpY2FsIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMCAwNzoxODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBxY2E4ayBEU0Egc3dpdGNoIGRyaXZlciwgd2hpY2ggaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXIgZm9yIFF1YWxjb21tIEF0aGVyb3MgUUNBOEsgRXRoZXJuZXQgc3dpdGNoIGNoaXBzLiBUaGlzIGRyaXZlciByZXF1aXJlcyBwaHlzaWNhbCBoYXJkd2FyZSBjb25uZWN0ZWQgdmlhIE1ESU8gdG8gcHJvYmUgc3VjY2Vzc2Z1bGx5IChpdCByZWFkcyB0aGUgc3dpdGNoIElEIGZyb20gYSBoYXJkd2FyZSByZWdpc3RlciBkdXJpbmcgcHJvYmUpLiBTaW5jZSB0aGlzIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VL0dDRSBlbnZpcm9ubWVudHMgdXNlZCBieSBzeXprYWxsZXIsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGFuZCBmdXp6LiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHFjYThrIERTQSBzd2l0Y2ggZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlciBmb3IgUXVhbGNvbW0gQXRoZXJvcyBRQ0E4SyBFdGhlcm5ldCBzd2l0Y2ggY2hpcHMuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIHBoeXNpY2FsIGhhcmR3YXJlIGNvbm5lY3RlZCB2aWEgTURJTyB0byBwcm9iZSBzdWNjZXNzZnVsbHkgKGl0IHJlYWRzIHRoZSBzd2l0Y2ggSUQgZnJvbSBhIGhhcmR3YXJlIHJlZ2lzdGVyIGR1cmluZyBwcm9iZSkuIFNpbmNlIHRoaXMgaGFyZHdhcmUgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUvR0NFIGVudmlyb25tZW50cyB1c2VkIGJ5IHN5emthbGxlciwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggYW5kIGZ1enouJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIzLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMCAwNzoxODwvdGQ+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+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMTBUMDc6MTY6NDguNzA3NDg3Mjk2WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODMwNjk0NjY1NjEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJcIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgcWNhOGsgRFNBIHN3aXRjaCBkcml2ZXIsIHdoaWNoIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVyIGZvciBRdWFsY29tbSBBdGhlcm9zIFFDQThLIEV0aGVybmV0IHN3aXRjaCBjaGlwcy4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgcGh5c2ljYWwgaGFyZHdhcmUgY29ubmVjdGVkIHZpYSBNRElPIHRvIHByb2JlIHN1Y2Nlc3NmdWxseSAoaXQgcmVhZHMgdGhlIHN3aXRjaCBJRCBmcm9tIGEgaGFyZHdhcmUgcmVnaXN0ZXIgZHVyaW5nIHByb2JlKS4gU2luY2UgdGhpcyBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS9HQ0UgZW52aXJvbm1lbnRzIHVzZWQgYnkgc3l6a2FsbGVyLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBhbmQgZnV6ei5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTEwVDA3OjE2OjQ4LjcwNzQ5NTcyNloiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQxMTgyOTM5MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDNjZDk0NTMwOWNhNDJlZjU1ZTNkYTRkMzlkZWFkNGM4Y2M2NjQyNjJcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIE1vbiBBdWcgMTAgMDc6MTY6NDYgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMgYi9kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguY1xcbmluZGV4IDRjOTI4OTgzYjg2MjMuLjFkOTBhMjNhYmE2YmIgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmNcXG4rKysgYi9kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguY1xcbkBAIC0xNjAsNiArMTYwLDExIEBAIHFjYThrX3NldF9wYWdlKHN0cnVjdCBxY2E4a19wcml2ICpwcml2LCB1MTYgcGFnZSlcXG4gXFx0cmV0dXJuIDA7XFxuIH1cXG4gXFxuK3N0YXRpYyBib29sIHFjYThrX21nbXRfZXRoX2Rpc2FibGVkKGNvbnN0IHN0cnVjdCBxY2E4a19wcml2ICpwcml2KVxcbit7XFxuK1xcdHJldHVybiBwcml2LVxcdTAwM2Vzd2l0Y2hfaWQgPT0gUUNBOEtfSURfUUNBODMyNztcXG4rfVxcbitcXG4gc3RhdGljIHZvaWQgcWNhOGtfcndfcmVnX2Fja19oYW5kbGVyKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4ge1xcbiBcXHRzdHJ1Y3QgcWNhOGtfbWdtdF9ldGhfZGF0YSAqbWdtdF9ldGhfZGF0YTtcXG5AQCAtMzE2LDYgKzMyMSw5IEBAIHN0YXRpYyBpbnQgcWNhOGtfcmVhZF9ldGgoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIHUzMiByZWcsIHUzMiAqdmFsLCBpbnQgbGVuKVxcbiBcXHRib29sIGFjaztcXG4gXFx0aW50IHJldDtcXG4gXFxuK1xcdGlmIChxY2E4a19tZ210X2V0aF9kaXNhYmxlZChwcml2KSlcXG4rXFx0XFx0cmV0dXJuIC1FTlhJTztcXG4rXFxuIFxcdHNrYiA9IHFjYThrX2FsbG9jX21kaW9faGVhZGVyKE1ESU9fUkVBRCwgcmVnLCBOVUxMLFxcbiBcXHRcXHRcXHRcXHQgICAgICBRQ0E4S19FVEhFUk5FVF9NRElPX1BSSU9SSVRZLCBsZW4pO1xcbiBcXHRpZiAoIXNrYilcXG5AQCAtMzY4LDYgKzM3Niw5IEBAIHN0YXRpYyBpbnQgcWNhOGtfd3JpdGVfZXRoKHN0cnVjdCBxY2E4a19wcml2ICpwcml2LCB1MzIgcmVnLCB1MzIgKnZhbCwgaW50IGxlbilcXG4gXFx0Ym9vbCBhY2s7XFxuIFxcdGludCByZXQ7XFxuIFxcbitcXHRpZiAocWNhOGtfbWdtdF9ldGhfZGlzYWJsZWQocHJpdikpXFxuK1xcdFxcdHJldHVybiAtRU5YSU87XFxuK1xcbiBcXHRza2IgPSBxY2E4a19hbGxvY19tZGlvX2hlYWRlcihNRElPX1dSSVRFLCByZWcsIHZhbCxcXG4gXFx0XFx0XFx0XFx0ICAgICAgUUNBOEtfRVRIRVJORVRfTURJT19QUklPUklUWSwgbGVuKTtcXG4gXFx0aWYgKCFza2IpXFxuQEAgLTYzMCw2ICs2NDEsOSBAQCBxY2E4a19waHlfZXRoX2NvbW1hbmQoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIGJvb2wgcmVhZCwgaW50IHBoeSxcXG4gXFx0aW50IHJldCwgcmV0MTtcXG4gXFx0Ym9vbCBhY2s7XFxuIFxcbitcXHRpZiAocWNhOGtfbWdtdF9ldGhfZGlzYWJsZWQocHJpdikpXFxuK1xcdFxcdHJldHVybiAtRU5YSU87XFxuK1xcbiBcXHRpZiAocmVnbnVtIFxcdTAwM2U9IFFDQThLX01ESU9fTUFTVEVSX01BWF9SRUcpXFxuIFxcdFxcdHJldHVybiAtRUlOVkFMO1xcbiBcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTBUMDc6MTY6NTAuMTIwMzIzNDU5WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6ODE2NTY2MTc2MzgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBxY2E4ayBEU0Egc3dpdGNoIGRyaXZlciwgd2hpY2ggaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXIgZm9yIFF1YWxjb21tIEF0aGVyb3MgUUNBOEsgRXRoZXJuZXQgc3dpdGNoIGNoaXBzLiBUaGlzIGRyaXZlciByZXF1aXJlcyBwaHlzaWNhbCBoYXJkd2FyZSBjb25uZWN0ZWQgdmlhIE1ESU8gdG8gcHJvYmUgc3VjY2Vzc2Z1bGx5IChpdCByZWFkcyB0aGUgc3dpdGNoIElEIGZyb20gYSBoYXJkd2FyZSByZWdpc3RlciBkdXJpbmcgcHJvYmUpLiBTaW5jZSB0aGlzIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VL0dDRSBlbnZpcm9ubWVudHMgdXNlZCBieSBzeXprYWxsZXIsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGFuZCBmdXp6LlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgM2NkOTQ1MzA5Y2E0MmVmNTVlM2RhNGQzOWRlYWQ0YzhjYzY2NDI2MlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gQXVnIDEwIDA3OjE2OjQ2IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMgYi9kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguY1xuaW5kZXggNGM5Mjg5ODNiODYyMy4uMWQ5MGEyM2FiYTZiYiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jXG4rKysgYi9kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguY1xuQEAgLTE2MCw2ICsxNjAsMTEgQEAgcWNhOGtfc2V0X3BhZ2Uoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIHUxNiBwYWdlKVxuIFx0cmV0dXJuIDA7XG4gfVxuIFxuK3N0YXRpYyBib29sIHFjYThrX21nbXRfZXRoX2Rpc2FibGVkKGNvbnN0IHN0cnVjdCBxY2E4a19wcml2ICpwcml2KVxuK3tcbitcdHJldHVybiBwcml2LVx1MDAzZXN3aXRjaF9pZCA9PSBRQ0E4S19JRF9RQ0E4MzI3O1xuK31cbitcbiBzdGF0aWMgdm9pZCBxY2E4a19yd19yZWdfYWNrX2hhbmRsZXIoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuIHtcbiBcdHN0cnVjdCBxY2E4a19tZ210X2V0aF9kYXRhICptZ210X2V0aF9kYXRhO1xuQEAgLTMxNiw2ICszMjEsOSBAQCBzdGF0aWMgaW50IHFjYThrX3JlYWRfZXRoKHN0cnVjdCBxY2E4a19wcml2ICpwcml2LCB1MzIgcmVnLCB1MzIgKnZhbCwgaW50IGxlbilcbiBcdGJvb2wgYWNrO1xuIFx0aW50IHJldDtcbiBcbitcdGlmIChxY2E4a19tZ210X2V0aF9kaXNhYmxlZChwcml2KSlcbitcdFx0cmV0dXJuIC1FTlhJTztcbitcbiBcdHNrYiA9IHFjYThrX2FsbG9jX21kaW9faGVhZGVyKE1ESU9fUkVBRCwgcmVnLCBOVUxMLFxuIFx0XHRcdFx0ICAgICAgUUNBOEtfRVRIRVJORVRfTURJT19QUklPUklUWSwgbGVuKTtcbiBcdGlmICghc2tiKVxuQEAgLTM2OCw2ICszNzYsOSBAQCBzdGF0aWMgaW50IHFjYThrX3dyaXRlX2V0aChzdHJ1Y3QgcWNhOGtfcHJpdiAqcHJpdiwgdTMyIHJlZywgdTMyICp2YWwsIGludCBsZW4pXG4gXHRib29sIGFjaztcbiBcdGludCByZXQ7XG4gXG4rXHRpZiAocWNhOGtfbWdtdF9ldGhfZGlzYWJsZWQocHJpdikpXG4rXHRcdHJldHVybiAtRU5YSU87XG4rXG4gXHRza2IgPSBxY2E4a19hbGxvY19tZGlvX2hlYWRlcihNRElPX1dSSVRFLCByZWcsIHZhbCxcbiBcdFx0XHRcdCAgICAgIFFDQThLX0VUSEVSTkVUX01ESU9fUFJJT1JJVFksIGxlbik7XG4gXHRpZiAoIXNrYilcbkBAIC02MzAsNiArNjQxLDkgQEAgcWNhOGtfcGh5X2V0aF9jb21tYW5kKHN0cnVjdCBxY2E4a19wcml2ICpwcml2LCBib29sIHJlYWQsIGludCBwaHksXG4gXHRpbnQgcmV0LCByZXQxO1xuIFx0Ym9vbCBhY2s7XG4gXG4rXHRpZiAocWNhOGtfbWdtdF9ldGhfZGlzYWJsZWQocHJpdikpXG4rXHRcdHJldHVybiAtRU5YSU87XG4rXG4gXHRpZiAocmVnbnVtIFx1MDAzZT0gUUNBOEtfTURJT19NQVNURVJfTUFYX1JFRylcbiBcdFx0cmV0dXJuIC1FSU5WQUw7XG4gXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMFQwNzoxNjo1MC4xMjAzMjU0MjlaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMzA4MTMxNDA0OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBRdWFsY29tbSBBdGhlcm9zIFFDQThLIEV0aGVybmV0IFN3aXRjaCBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHRvdWNoaW5nIGBkcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguY2AuIEludGVyZXN0aW5nLiBJdCBsb29rcyBsaWtlIHRoZXkndmUgYWRkZWQgYSBjaGVjayBmb3IgYHFjYThrX21nbXRfZXRoX2Rpc2FibGVkKHByaXYpYCB3aXRoaW4gYHFjYThrX3JlYWRfZXRoYCwgYHFjYThrX3dyaXRlX2V0aGAsIGFuZCBgcWNhOGtfcGh5X2V0aF9jb21tYW5kYC4gRXNzZW50aWFsbHksIGlmIHRoZSBgc3dpdGNoX2lkYCBpcyBzZXQgdG8gYFFDQThLX0lEX1FDQTgzMjdgLCBpdCdsbCByZXR1cm4gYC1FTlhJT2AuIFRoaXMgaXMgZm9yIGEgUXVhbGNvbW0gQXRoZXJvcyBRQ0E4SyBFdGhlcm5ldCBzd2l0Y2ggZHJpdmVyLCBhIERTQSBkcml2ZXIsIHdoaWNoIHVzdWFsbHkgbWVhbnMgaXQncyBwcmV0dHkgdGlnaHRseSBjb3VwbGVkIHdpdGggc3BlY2lmaWMgaGFyZHdhcmUuXG5cbk15IGltbWVkaWF0ZSBxdWVzdGlvbiBpcywgaG93IGVhc2lseSBjb3VsZCB0aGlzIGRyaXZlciBiZSBleGVyY2lzZWQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudD8gRFNBIGRyaXZlcnMsIGJ5IHRoZWlyIG5hdHVyZSwgb2Z0ZW4gcmVseSBvbiB0aGUgdW5kZXJseWluZyBzd2l0Y2ggaGFyZHdhcmUuIENvdWxkIHRoaXMgYmUgb25lIG9mIHRob3NlIGNhc2VzLCBvciBpcyB0aGVyZSBzb21lIGFic3RyYWN0aW9uIGxheWVyIGludm9sdmVkPyBUbyB1bmRlcnN0YW5kIHRoZSBpbXBsaWNhdGlvbnMgb2YgdGhpcyBuZXcgY2hlY2ssIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjb250ZXh0LlxuXG5MZXQncyBkaWcgaW50byB0aGUgS2NvbmZpZyBmb3IgdGhpcyBkcml2ZXIuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoYXQgZGVwZW5kZW5jaWVzIGl0IGhhcywgaG93IGl0J3MgY29uZmlndXJlZCwgYW5kIHdoZXRoZXIgdGhlcmUgYXJlIGFueSBjbHVlcyBhYm91dCBpdHMgaGFyZHdhcmUgcmVxdWlyZW1lbnRzLiBUaGF0IHdpbGwgaGVscCBtZSB1bmRlcnN0YW5kIHdoZXRoZXIgdGhpcyBwYXRjaCBpcyBzaW1wbHkgaGFyZGVuaW5nIGEgc3BlY2lmaWMgaGFyZHdhcmUgY29uZmlndXJhdGlvbiwgb3IgaWYgaXQgbWlnaHQgaW1wYWN0IHZpcnR1YWxpemVkIHVzZXMgYXMgd2VsbC4gSSdsbCBmb2N1cyBvbiBhbnl0aGluZyB0aGF0IHNwZWFrcyB0byB0aGUgaGFyZHdhcmUgZGVwZW5kZW5jaWVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNDc5LCJPdXRwdXRUb2tlbnMiOjIzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTg4LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTBUMDc6MTc6MDMuMjAxNjQyOTM3WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI0MTUyOTE5NzMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE5FVF9EU0FfUUNBOEtcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZHNhL3FjYS9LY29uZmlnPTI9Y29uZmlnIE5FVF9EU0FfQVI5MzMxXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL0tjb25maWctMTAtXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9LY29uZmlnOjExOmNvbmZpZyBORVRfRFNBX1FDQThLXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9LY29uZmlnLTEyLVxcdHRyaXN0YXRlIFxcXCJRdWFsY29tbSBBdGhlcm9zIFFDQThLIEV0aGVybmV0IHN3aXRjaCBmYW1pbHkgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvS2NvbmZpZy0xOC1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL0tjb25maWc6MTk6Y29uZmlnIE5FVF9EU0FfUUNBOEtfTEVEU19TVVBQT1JUXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9LY29uZmlnLTIwLVxcdGJvb2wgXFxcIlF1YWxjb21tIEF0aGVyb3MgUUNBOEsgRXRoZXJuZXQgc3dpdGNoIGZhbWlseSBMRURzIHN1cHBvcnRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTEwVDA3OjE3OjA1LjYxNjkzOTc3WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjQyODcwOTYzMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgYW5kIHdyaXR0ZW4gaW4gdGhlIGZpcnN0IHBlcnNvbjpcblxuKipJbml0aWFsIEFzc2Vzc21lbnQqKlxuXG5SaWdodCwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBNeSBpbW1lZGlhdGUgaW5zdGluY3QgaXMgdG8gaWRlbnRpZnkgdGhlIGRlcGVuZGVuY2llcy4gV2UncmUgZGVhbGluZyB3aXRoIGEgc3lzdGVtLCBhIHByb2Nlc3MsIGEgcHJvYmxlbSDigJMgd2hhdGV2ZXIgXCJpdFwiIGlzIOKAkyBhbmQgdW5kZXJzdGFuZGluZyB0aGUgZm91bmRhdGlvbmFsIGVsZW1lbnRzIGlzIHBhcmFtb3VudC4gV2hhdCBhcmUgdGhlIGtleSB2YXJpYWJsZXM/IFRoZSBjb3JlIGlucHV0cz8gVGhlIHVuZGVybHlpbmcgYXNzdW1wdGlvbnM/IFBpbnBvaW50aW5nIHRoZXNlIGRlcGVuZGVuY2llcyBpcyB0aGUgZXNzZW50aWFsIGZpcnN0IHN0ZXAgdG8gYW55IGVmZmVjdGl2ZSBhbmFseXNpcy4gV2hlcmUgZG8gd2UgYmVnaW4gdG8gdW5yYXZlbCBjb21wbGV4aXR5P1xuXG5cbiIsIklucHV0VG9rZW5zIjozMjExLCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xMFQwNzoxNzowOC4wNDU2NTI3MDJaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3NTkwOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC9kc2EvcWNhL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogMzBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG4gICAyOlxcdGNvbmZpZyBORVRfRFNBX0FSOTMzMVxcbiAgIDM6XFx0XFx0dHJpc3RhdGUgXFxcIlF1YWxjb21tIEF0aGVyb3MgQVI5MzMxIEV0aGVybmV0IHN3aXRjaCBzdXBwb3J0XFxcIlxcbiAgIDQ6XFx0XFx0ZGVwZW5kcyBvbiBORVRfRFNBXFxuICAgNTpcXHRcXHRzZWxlY3QgTkVUX0RTQV9UQUdfQVI5MzMxXFxuICAgNjpcXHRcXHRzZWxlY3QgUkVHTUFQXFxuICAgNzpcXHRcXHRoZWxwXFxuICAgODpcXHRcXHQgIFRoaXMgZW5hYmxlcyBzdXBwb3J0IGZvciB0aGUgUXVhbGNvbW0gQXRoZXJvcyBBUjkzMzEgYnVpbHQtaW4gRXRoZXJuZXRcXG4gICA5OlxcdFxcdCAgc3dpdGNoLlxcbiAgMTA6XFx0XFxuICAxMTpcXHRjb25maWcgTkVUX0RTQV9RQ0E4S1xcbiAgMTI6XFx0XFx0dHJpc3RhdGUgXFxcIlF1YWxjb21tIEF0aGVyb3MgUUNBOEsgRXRoZXJuZXQgc3dpdGNoIGZhbWlseSBzdXBwb3J0XFxcIlxcbiAgMTM6XFx0XFx0c2VsZWN0IE5FVF9EU0FfVEFHX1FDQVxcbiAgMTQ6XFx0XFx0c2VsZWN0IFJFR01BUFxcbiAgMTU6XFx0XFx0aGVscFxcbiAgMTY6XFx0XFx0ICBUaGlzIGVuYWJsZXMgc3VwcG9ydCBmb3IgdGhlIFF1YWxjb21tIEF0aGVyb3MgUUNBOEsgRXRoZXJuZXRcXG4gIDE3OlxcdFxcdCAgc3dpdGNoIGNoaXBzLlxcbiAgMTg6XFx0XFxuICAxOTpcXHRjb25maWcgTkVUX0RTQV9RQ0E4S19MRURTX1NVUFBPUlRcXG4gIDIwOlxcdFxcdGJvb2wgXFxcIlF1YWxjb21tIEF0aGVyb3MgUUNBOEsgRXRoZXJuZXQgc3dpdGNoIGZhbWlseSBMRURzIHN1cHBvcnRcXFwiXFxuICAyMTpcXHRcXHRkZXBlbmRzIG9uIE5FVF9EU0FfUUNBOEtcXG4gIDIyOlxcdFxcdGRlcGVuZHMgb24gTEVEU19DTEFTUz15IHx8IExFRFNfQ0xBU1M9TkVUX0RTQV9RQ0E4S1xcbiAgMjM6XFx0XFx0ZGVwZW5kcyBvbiBMRURTX1RSSUdHRVJTXFxuICAyNDpcXHRcXHRoZWxwXFxuICAyNTpcXHRcXHQgIFRoaXMgZW5hYmxlZCBzdXBwb3J0IGZvciBMRURzIHByZXNlbnQgb24gdGhlIFF1YWxjb21tIEF0aGVyb3NcXG4gIDI2OlxcdFxcdCAgUUNBOEsgRXRoZXJuZXQgc3dpdGNoIGNoaXBzLlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMFQwNzoxNzowOC4wNDU3MzA3NDJaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNzU2NDA3MTkwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUUNBOEsgRXRoZXJuZXQgU3dpdGNoIERyaXZlcioqXG5cbk9rYXksIHNvIHRoaXMgaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXIsIGZvY3VzaW5nIG9uIFF1YWxjb21tIEF0aGVyb3MgUUNBOEsgRXRoZXJuZXQgc3dpdGNoIGNoaXBzLiBNeSBpbml0aWFsIHF1ZXN0aW9uIGlzIHdoZXRoZXIgb3Igbm90IHRoaXMgaXMgZ29pbmcgdG8gYmUgZW11bGF0YWJsZSBvciByZWFjaGFibGUgd2l0aGluIFFFTVUuIEZyb20gbXkgZXhwZXJpZW5jZSB3aXRoIHRoZXNlIGtpbmRzIG9mIERTQSBkcml2ZXJzLCBidWlsdCBmb3IgdmVyeSBzcGVjaWZpYyBoYXJkd2FyZSBzd2l0Y2hlcywgaXQncyBwcmV0dHkgcmFyZSB0byBzZWUgdGhlbSBmdWxseSBlbXVsYXRlZCBpbiBhIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnQuIFNvLCBJIG5lZWQgdG8gZGlnIGRlZXBlci4gRmlyc3QsIEkgaGF2ZSB0byBmaWd1cmUgb3V0IGlmIHRoaXMgZHJpdmVyIGNvbW11bmljYXRlcyB2aWEgTURJTyBvciBTUEkuIFRoaXMgaXMgdGhlIHN0YXJ0aW5nIHBvaW50IGZvciB1bmRlcnN0YW5kaW5nIGl0cyBwb3RlbnRpYWwgZm9yIGludGVncmF0aW9uIG9yLCBmcmFua2x5LCB0aGUgbGlrZWxpaG9vZCBvZiBhIHN1Y2Nlc3NmdWwgZW11bGF0aW9uIGVmZm9ydC5cblxuXG4iLCJJbnB1dFRva2VucyI6Mzc2NywiT3V0cHV0VG9rZW5zIjoyMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY4LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTBUMDc6MTc6MTEuODAyMTQxNDE0WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE2NTE3NjM5ODYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicWNhOGtfbWF0Y2hcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jPTIxODg9c3RhdGljIGludCBuc3NfY2NfcWNhOGtfcHJvYmUoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KVxcbi0tXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIyMDMtXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIyMDQ6c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbnNzX2NjX3FjYThrX21hdGNoX3RhYmxlW10gPSB7XFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIyMDUtXFx0eyAuY29tcGF0aWJsZSA9IFxcXCJxY29tLHFjYTgwODQtbnNzY2NcXFwiIH0sXFxuLS1cXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjIwNy19O1xcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMjA4Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG5zc19jY19xY2E4a19tYXRjaF90YWJsZSk7XFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIyMDktXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jPTIyMTA9c3RhdGljIHN0cnVjdCBtZGlvX2RyaXZlciBuc3NfY2NfcWNhOGtfZHJpdmVyID0ge1xcbi0tXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIyMTItXFx0XFx0Lm5hbWUgPSBcXFwicWNvbSxxY2E4ay1uc3NjY1xcXCIsXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIyMTM6XFx0XFx0Lm9mX21hdGNoX3RhYmxlXFx0PSBuc3NfY2NfcWNhOGtfbWF0Y2hfdGFibGUsXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIyMTQtXFx0fSxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTExMjE9cWNhOGtfc2V0dXBfb2ZfcHdzX3JlZyhzdHJ1Y3QgcWNhOGtfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0xMTIyLXtcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzoxMTIzOlxcdGNvbnN0IHN0cnVjdCBxY2E4a19tYXRjaF9kYXRhICpkYXRhID0gcHJpdi1cXHUwMDNlaW5mbztcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0xMTI0LVxcdHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSA9IHByaXYtXFx1MDAzZWRldi1cXHUwMDNlb2Zfbm9kZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTIyMDQ9c3RhdGljIGNvbnN0IHN0cnVjdCBxY2E4a19pbmZvX29wcyBxY2E4eHh4X29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTIyMDctXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MjIwODpzdGF0aWMgY29uc3Qgc3RydWN0IHFjYThrX21hdGNoX2RhdGEgcWNhODMyNyA9IHtcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0yMjA5LVxcdC5pZCA9IFFDQThLX0lEX1FDQTgzMjcsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0yMjE0LVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjIyMTU6c3RhdGljIGNvbnN0IHN0cnVjdCBxY2E4a19tYXRjaF9kYXRhIHFjYTgzMjggPSB7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMjIxNi1cXHQuaWQgPSBRQ0E4S19JRF9RQ0E4MzI3LFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMjIyMC1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzoyMjIxOnN0YXRpYyBjb25zdCBzdHJ1Y3QgcWNhOGtfbWF0Y2hfZGF0YSBxY2E4MzN4ID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTIyMjItXFx0LmlkID0gUUNBOEtfSURfUUNBODMzNyxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGsuaD0zNzg9c3RydWN0IHFjYThrX2luZm9fb3BzIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGsuaC0zODEtXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay5oOjM4MjpzdHJ1Y3QgcWNhOGtfbWF0Y2hfZGF0YSB7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay5oLTM4My1cXHR1OCBpZDtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGsuaD00NDU9c3RydWN0IHFjYThrX3ByaXYge1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay5oLTQ2OS1cXHRzdHJ1Y3QgcWNhOGtfcGNzIHBjc19wb3J0XzY7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay5oOjQ3MDpcXHRjb25zdCBzdHJ1Y3QgcWNhOGtfbWF0Y2hfZGF0YSAqaW5mbztcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLmgtNDcxLVxcdHN0cnVjdCBxY2E4a19sZWQgcG9ydHNfbGVkW1FDQThLX0xFRF9DT1VOVF07XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTEwVDA3OjE3OjEzLjQ1MzkwOTRaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMjgwMjY1NTkzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipEaXZpbmcgaW50byB0aGUgUUNBOEstOFhYWCBEcml2ZXIqKlxuXG5BbHJpZ2h0LCB0aW1lIHRvIGdldCBteSBoYW5kcyBkaXJ0eS4gSSBuZWVkIHRvIHBpbnBvaW50IHRoZSByZWxldmFudCBwYXJ0IG9mIHRoZSBRQ0E4Sy04WFhYIGRyaXZlciByZXNwb25zaWJsZSBmb3IgZGV2aWNlIG1hdGNoaW5nLiBMZXQncyBzdGFydCBieSB6ZXJvaW5nIGluIG9uIHRoZSBgcWNhOGtfb2ZfbWF0Y2hgIGZ1bmN0aW9uIHdpdGhpbiBgZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmNgLiBUaGlzIGlzIHdoZXJlIHRoZSBtYWdpYyBzaG91bGQgYmUgaGFwcGVuaW5nIOKAkyB0aGUgT3BlbiBGaXJtd2FyZSBtYXRjaGluZyBsb2dpYy4gSSBuZWVkIHRvIHJlZnJlc2ggbXkgbWVtb3J5IG9uIHRoZSBzcGVjaWZpY3Mgb2YgaG93IHRoZSBkZXZpY2UgdHJlZSBpcyBwYXJzZWQgYW5kIGhvdyB0aGVzZSBkcml2ZXJzIGFyZSBhdHRhY2hlZC4gVGhpcyBmaWxlIHNob3VsZCBiZSB0aGUgc3RhcnRpbmcgcG9pbnQsIHRoZSBrZXkgdG8gdW5kZXJzdGFuZGluZyBob3cgd2UgaWRlbnRpZnkgYW5kIGluaXRpYWxpemUgdGhlIFFDQThLLThYWFggc3dpdGNoLiBMZXQncyBzZWUgd2hhdCdzIHdoYXQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUyNjEsIk91dHB1dFRva2VucyI6MjIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xMFQwNzoxNzoxNi43MzQxNzY5MTNaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEzOTcxNDY4NTQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicWNhOGtfb2ZfbWF0Y2hcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9MjIyMT1zdGF0aWMgY29uc3Qgc3RydWN0IHFjYThrX21hdGNoX2RhdGEgcWNhODMzeCA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTIyMjYtXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MjIyNzpzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBxY2E4a19vZl9tYXRjaFtdID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTIyMjgtXFx0eyAuY29tcGF0aWJsZSA9IFxcXCJxY2EscWNhODMyN1xcXCIsIC5kYXRhID0gXFx1MDAyNnFjYTgzMjcgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTIyMzU9c3RhdGljIHN0cnVjdCBtZGlvX2RyaXZlciBxY2E4a21kaW9fZHJpdmVyID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMjI0MC1cXHRcXHQubmFtZSA9IFxcXCJxY2E4a1xcXCIsXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MjI0MTpcXHRcXHQub2ZfbWF0Y2hfdGFibGUgPSBxY2E4a19vZl9tYXRjaCxcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0yMjQyLVxcdFxcdC5wbSA9IFxcdTAwMjZxY2E4a19wbV9vcHMsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTEwVDA3OjE3OjE4LjEzMTMzMDczN1oiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0OTM1ODE2NTM5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk1ESU8gRHJpdmVyIEludmVzdGlnYXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGBxY2E4a21kaW9fZHJpdmVyYCDigJMgdGhhdCdzIGFuIE1ESU8gZHJpdmVyLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIFwiU3RhbmRhcmQgUUVNVSBwcm9iYWJseSBkb2Vzbid0IGVtdWxhdGUgTURJTyBkZXZpY2VzIGRpcmVjdGx5LCB1bmxlc3MgaXQncyBwYXJ0IG9mIGEgbW9yZSBjb21wcmVoZW5zaXZlIFNvQyBlbXVsYXRpb24gb3IsIG1heWJlLCB0aGVyZSdzIGEgc3BlY2lhbGl6ZWQgTURJTyBidXMgZW11bGF0b3IgSSdtIG5vdCBpbW1lZGlhdGVseSB0aGlua2luZyBvZlwiLiBUaGVuIGl0IGhpdCBtZTogd2FpdCwgZGlkbid0IEkgcmVhZCBzb21ldGhpbmcgYWJvdXQgc3l6a2FsbGVyIGhhdmluZyAqc29tZSogY2FwYWJpbGl0eSBpbiB0aGlzIGFyZWE/IE1heWJlIGZvciBpbmplY3RpbmcgZGV2aWNlcywgb3IgdXNpbmcgZHVtbXkgYnVzZXM/IEl04oCZcyB0aW1lIHRvIGNoZWNrIGlmIHN5emthbGxlciBoYXMgc29tZSBzcGVjaWZpYyBzdXBwb3J0IGZvciBpbnRlcmFjdGluZyB3aXRoIE1ESU8uIExldCdzIHNlZSBpZiB0aGF0IGJlYXJzIGZydWl0LlxuXG5cbiIsIklucHV0VG9rZW5zIjo1ODQ5LCJPdXRwdXRUb2tlbnMiOjE4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OTIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTBUMDc6MTc6MjMuMDY3MTQ5MjE3WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDA4OTI5NzAzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1kaW9fYnVzXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMjM3MSBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpbzoxOldoYXQ6ICAgICAgICAgIC9zeXMvYnVzL21kaW9fYnVzL2RldmljZXMvLi4uL3N0YXRpc3RpY3MvXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpbzoyOldoYXQ6ICAgICAgICAgIC9zeXMvY2xhc3MvbWRpb19idXMvLi4uL3N0YXRpc3RpY3MvXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpby0zLURhdGU6ICAgICAgICAgIEphbnVhcnkgMjAyMFxcbi0tXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpbz02PURlc2NyaXB0aW9uOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpby05LVxcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYnVzLW1kaW86MTA6V2hhdDogICAgICAgICAgL3N5cy9idXMvbWRpb19idXMvZGV2aWNlcy8uLi4vc3RhdGlzdGljcy90cmFuc2ZlcnNcXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvOjExOldoYXQ6ICAgICAgICAgIC9zeXMvY2xhc3MvbWRpb19idXMvLi4uL3RyYW5zZmVyc1xcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYnVzLW1kaW8tMTItRGF0ZTogICAgICAgICAgSmFudWFyeSAyMDIwXFxuLS1cXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvPTE1PURlc2NyaXB0aW9uOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpby0xNy1cXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvOjE4OldoYXQ6ICAgICAgICAgIC9zeXMvYnVzL21kaW9fYnVzL2RldmljZXMvLi4uL3N0YXRpc3RpY3MvZXJyb3JzXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpbzoxOTpXaGF0OiAgICAgICAgICAvc3lzL2NsYXNzL21kaW9fYnVzLy4uLi9zdGF0aXN0aWNzL2Vycm9yc1xcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYnVzLW1kaW8tMjAtRGF0ZTogICAgICAgICAgSmFudWFyeSAyMDIwXFxuLS1cXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvPTIzPURlc2NyaXB0aW9uOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpby0yNS1cXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvOjI2OldoYXQ6ICAgICAgICAgIC9zeXMvYnVzL21kaW9fYnVzL2RldmljZXMvLi4uL3N0YXRpc3RpY3Mvd3JpdGVzXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpbzoyNzpXaGF0OiAgICAgICAgICAvc3lzL2NsYXNzL21kaW9fYnVzLy4uLi9zdGF0aXN0aWNzL3dyaXRlc1xcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYnVzLW1kaW8tMjgtRGF0ZTogICAgICAgICAgSmFudWFyeSAyMDIwXFxuLS1cXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvPTMxPURlc2NyaXB0aW9uOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpby0zMy1cXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvOjM0OldoYXQ6ICAgICAgICAgIC9zeXMvYnVzL21kaW9fYnVzL2RldmljZXMvLi4uL3N0YXRpc3RpY3MvcmVhZHNcXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvOjM1OldoYXQ6ICAgICAgICAgIC9zeXMvY2xhc3MvbWRpb19idXMvLi4uL3N0YXRpc3RpY3MvcmVhZHNcXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvLTM2LURhdGU6ICAgICAgICAgIEphbnVhcnkgMjAyMFxcbi0tXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpbz0zOT1EZXNjcmlwdGlvbjpcXG4tLVxcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYnVzLW1kaW8tNDEtXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpbzo0MjpXaGF0OiAgICAgICAgICAvc3lzL2J1cy9tZGlvX2J1cy9kZXZpY2VzLy4uLi9zdGF0aXN0aWNzL3RyYW5zZmVyc19cXHUwMDNjYWRkclxcdTAwM2VcXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvOjQzOldoYXQ6ICAgICAgICAgIC9zeXMvY2xhc3MvbWRpb19idXMvLi4uL3N0YXRpc3RpY3MvdHJhbnNmZXJzX1xcdTAwM2NhZGRyXFx1MDAzZVxcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYnVzLW1kaW8tNDQtRGF0ZTogICAgICAgICAgSmFudWFyeSAyMDIwXFxuLS1cXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvPTQ3PURlc2NyaXB0aW9uOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpby00OS1cXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvOjUwOldoYXQ6ICAgICAgICAgIC9zeXMvYnVzL21kaW9fYnVzL2RldmljZXMvLi4uL3N0YXRpc3RpY3MvZXJyb3JzX1xcdTAwM2NhZGRyXFx1MDAzZVxcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYnVzLW1kaW86NTE6V2hhdDogICAgICAgICAgL3N5cy9jbGFzcy9tZGlvX2J1cy8uLi4vc3RhdGlzdGljcy9lcnJvcnNfXFx1MDAzY2FkZHJcXHUwMDNlXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpby01Mi1EYXRlOiAgICAgICAgICBKYW51YXJ5IDIwMjBcXG4tLVxcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYnVzLW1kaW89NTU9RGVzY3JpcHRpb246XFxuLS1cXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvLTU3LVxcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYnVzLW1kaW86NTg6V2hhdDogICAgICAgICAgL3N5cy9idXMvbWRpb19idXMvZGV2aWNlcy8uLi4vc3RhdGlzdGljcy93cml0ZXNfXFx1MDAzY2FkZHJcXHUwMDNlXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpbzo1OTpXaGF0OiAgICAgICAgICAvc3lzL2NsYXNzL21kaW9fYnVzLy4uLi9zdGF0aXN0aWNzL3dyaXRlc19cXHUwMDNjYWRkclxcdTAwM2VcXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvLTYwLURhdGU6ICAgICAgICAgIEphbnVhcnkgMjAyMFxcbi0tXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpbz02Mz1EZXNjcmlwdGlvbjpcXG4tLVxcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYnVzLW1kaW8tNjUtXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpbzo2NjpXaGF0OiAgICAgICAgICAvc3lzL2J1cy9tZGlvX2J1cy9kZXZpY2VzLy4uLi9zdGF0aXN0aWNzL3JlYWRzX1xcdTAwM2NhZGRyXFx1MDAzZVxcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYnVzLW1kaW86Njc6V2hhdDogICAgICAgICAgL3N5cy9jbGFzcy9tZGlvX2J1cy8uLi4vc3RhdGlzdGljcy9yZWFkc19cXHUwMDNjYWRkclxcdTAwM2VcXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvLTY4LURhdGU6ICAgICAgICAgIEphbnVhcnkgMjAyMFxcbi0tXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1uZXQtcGh5ZGV2OjE6V2hhdDpcXHRcXHQvc3lzL2NsYXNzL21kaW9fYnVzL1xcdTAwM2NidXNcXHUwMDNlL1xcdTAwM2NkZXZpY2VcXHUwMDNlL2F0dGFjaGVkX2RldlxcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtbmV0LXBoeWRldi0yLURhdGU6XFx0XFx0TWF5IDIwMTdcXG4tLVxcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtbmV0LXBoeWRldj01PURlc2NyaXB0aW9uOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1uZXQtcGh5ZGV2LTgtXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1uZXQtcGh5ZGV2Ojk6V2hhdDpcXHRcXHQvc3lzL2NsYXNzL21kaW9fYnVzL1xcdTAwM2NidXNcXHUwMDNlL1xcdTAwM2NkZXZpY2VcXHUwMDNlL3BoeV9oYXNfZml4dXBzXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1uZXQtcGh5ZGV2LTEwLURhdGU6XFx0XFx0RmVicnVhcnkgMjAxNFxcbi0tXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1uZXQtcGh5ZGV2PTEzPURlc2NyaXB0aW9uOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1uZXQtcGh5ZGV2LTE4LVxcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtbmV0LXBoeWRldjoxOTpXaGF0OlxcdFxcdC9zeXMvY2xhc3MvbWRpb19idXMvXFx1MDAzY2J1c1xcdTAwM2UvXFx1MDAzY2RldmljZVxcdTAwM2UvcGh5X2lkXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1uZXQtcGh5ZGV2LTIwLURhdGU6XFx0XFx0Tm92ZW1iZXIgMjAxMlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1uZXQtcGh5ZGV2PTIzPURlc2NyaXB0aW9uOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1uZXQtcGh5ZGV2LTI4LVxcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtbmV0LXBoeWRldjoyOTpXaGF0OlxcdFxcdC9zeXMvY2xhc3MvbWRpb19idXMvXFx1MDAzY2J1c1xcdTAwM2UvXFx1MDAzY2RldmljZVxcdTAwM2UvYzQ1X3BoeV9pZHMvbW1kXFx1MDAzY25cXHUwMDNlX2RldmljZV9pZFxcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtbmV0LXBoeWRldi0zMC1EYXRlOlxcdFxcdEp1bmUgMjAyNVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1uZXQtcGh5ZGV2PTMzPURlc2NyaXB0aW9uOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1uZXQtcGh5ZGV2LTM4LVxcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtbmV0LXBoeWRldjozOTpXaGF0OlxcdFxcdC9zeXMvY2xhc3MvbWRpb19idXMvXFx1MDAzY2J1c1xcdTAwM2UvXFx1MDAzY2RldmljZVxcdTAwM2UvcGh5X2ludGVyZmFjZVxcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtbmV0LXBoeWRldi00MC1EYXRlOlxcdFxcdEZlYnJ1YXJ5IDIwMTRcXG4tLVxcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtbmV0LXBoeWRldj00Mz1EZXNjcmlwdGlvbjpcXG4tLVxcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtbmV0LXBoeWRldi01NS1cXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWNsYXNzLW5ldC1waHlkZXY6NTY6V2hhdDpcXHRcXHQvc3lzL2NsYXNzL21kaW9fYnVzL1xcdTAwM2NidXNcXHUwMDNlL1xcdTAwM2NkZXZpY2VcXHUwMDNlL3BoeV9zdGFuZGFsb25lXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1uZXQtcGh5ZGV2LTU3LURhdGU6XFx0XFx0TWF5IDIwMTlcXG4tLVxcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtbmV0LXBoeWRldj02MD1EZXNjcmlwdGlvbjpcXG4tLVxcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtbmV0LXBoeWRldi02NC1cXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWNsYXNzLW5ldC1waHlkZXY6NjU6V2hhdDpcXHRcXHQvc3lzL2NsYXNzL21kaW9fYnVzL1xcdTAwM2NidXNcXHUwMDNlL1xcdTAwM2NkZXZpY2VcXHUwMDNlL3BoeV9kZXZfZmxhZ3NcXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWNsYXNzLW5ldC1waHlkZXYtNjYtRGF0ZTpcXHRcXHRNYXJjaCAyMDIxXFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMucnN0PTM1Mj1maW5kczo6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMucnN0LTM2MS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMucnN0OjM2MjogICAgICAgIHN0cnVjdCBzdG1tYWNfbWRpb19idXNfZGF0YSAqbWRpb19idXNfZGF0YTtcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMucnN0LTM2My1cXG4tLVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy5yc3Q9NTAyPUZvciBNRElPIGJ1cyBkYXRhLCB3ZSBoYXZlOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L3N0bWljcm8vc3RtbWFjLnJzdC01MDUtXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L3N0bWljcm8vc3RtbWFjLnJzdDo1MDY6ICAgIHN0cnVjdCBzdG1tYWNfbWRpb19idXNfZGF0YSB7XFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L3N0bWljcm8vc3RtbWFjLnJzdC01MDctXFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZHNhL2RzYS5yc3Q9NDMyPURTQSBjdXJyZW50bHkgbGV2ZXJhZ2VzIHRoZSBmb2xsb3dpbmcgc3Vic3lzdGVtczpcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZHNhL2RzYS5yc3QtNDMzLVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kc2EvZHNhLnJzdDo0MzQ6LSBNRElPL1BIWSBsaWJyYXJ5OiBgYGRyaXZlcnMvbmV0L3BoeS9waHkuY2BgLCBgYG1kaW9fYnVzLmNgYFxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kc2EvZHNhLnJzdC00MzUtLSBTd2l0Y2hkZXY6YGBuZXQvc3dpdGNoZGV2LypgYFxcbi0tXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2thcGkucnN0PTExMD1QSFkgU3VwcG9ydFxcbi0tXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2thcGkucnN0LTEzMy1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcva2FwaS5yc3Q6MTM0Oi4uIGtlcm5lbC1kb2M6OiBkcml2ZXJzL25ldC9waHkvbWRpb19idXMuY1xcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9rYXBpLnJzdC0xMzUtICAgOmV4cG9ydDpcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcva2FwaS5yc3QtMTM2LVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9rYXBpLnJzdDoxMzc6Li4ga2VybmVsLWRvYzo6IGRyaXZlcnMvbmV0L3BoeS9tZGlvX2J1cy5jXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2thcGkucnN0LTEzOC0gICA6aW50ZXJuYWw6XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21lZGlhdGVrL210Nzk4MWItb3BlbndydC1vbmUuZHRzPTEwOD1cXHRnbWFjMTogbWFjQDEge1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9tZWRpYXRlay9tdDc5ODFiLW9wZW53cnQtb25lLmR0cy0xMTUtXFxuYXJjaC9hcm02NC9ib290L2R0cy9tZWRpYXRlay9tdDc5ODFiLW9wZW53cnQtb25lLmR0czoxMTY6XFx1MDAyNm1kaW9fYnVzIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21lZGlhdGVrL210Nzk4MWItb3BlbndydC1vbmUuZHRzLTExNy1cXHRwaHkxNTogZXRoZXJuZXQtcGh5QGYge1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9tZWRpYXRlay9tdDc5ODFiLmR0c2k9NDMxPVxcdFxcdGV0aDogZXRoZXJuZXRAMTUxMDAwMDAge1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9tZWRpYXRlay9tdDc5ODFiLmR0c2ktNDc2LVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWVkaWF0ZWsvbXQ3OTgxYi5kdHNpOjQ3NzpcXHRcXHRcXHRtZGlvX2J1czogbWRpby1idXMge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWVkaWF0ZWsvbXQ3OTgxYi5kdHNpLTQ3OC1cXHRcXHRcXHRcXHQjYWRkcmVzcy1jZWxscyA9IFxcdTAwM2MxXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWVkaWF0ZWsvbXQ3OTg4YS5kdHNpPTk4OD1cXHRcXHRcXHRnbWFjMjogbWFjQDIge1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9tZWRpYXRlay9tdDc5ODhhLmR0c2ktOTkzLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWVkaWF0ZWsvbXQ3OTg4YS5kdHNpOjk5NDpcXHRcXHRcXHRtZGlvX2J1czogbWRpby1idXMge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWVkaWF0ZWsvbXQ3OTg4YS5kdHNpLTk5NS1cXHRcXHRcXHRcXHQjYWRkcmVzcy1jZWxscyA9IFxcdTAwM2MxXFx1MDAzZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6OTQ3Ny5jPTMyMT1zdGF0aWMgaW50IGtzejk0NzdfcGNzX2NyZWF0ZShzdHJ1Y3Qga3N6X2RldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3o5NDc3LmMtMzMyLVxcbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6OTQ3Ny5jOjMzMzpcXHRidXMtXFx1MDAzZW5hbWUgPSBcXFwia3N6X3Bjc19tZGlvX2J1c1xcXCI7XFxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3o5NDc3LmMtMzM0LVxcdHNucHJpbnRmKGJ1cy1cXHUwMDNlaWQsIE1JSV9CVVNfSURfU0laRSwgXFxcIiVzLXBjc1xcXCIsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzel9jb21tb24uYz0yMTI1PWludCBrc3pfcGFyZW50X21kaW9fcmVhZChzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgYWRkciwgaW50IHJlZ251bSlcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6X2NvbW1vbi5jLTIxMjgtXFxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3pfY29tbW9uLmM6MjEyOTpcXHRyZXR1cm4gbWRpb2J1c19yZWFkX25lc3RlZChkZXYtXFx1MDAzZXBhcmVudF9tZGlvX2J1cywgYWRkciwgcmVnbnVtKTtcXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzel9jb21tb24uYy0yMTMwLX1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6X2NvbW1vbi5jPTIxNDU9aW50IGtzel9wYXJlbnRfbWRpb193cml0ZShzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgYWRkciwgaW50IHJlZ251bSwgdTE2IHZhbClcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6X2NvbW1vbi5jLTIxNDgtXFxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3pfY29tbW9uLmM6MjE0OTpcXHRyZXR1cm4gbWRpb2J1c193cml0ZV9uZXN0ZWQoZGV2LVxcdTAwM2VwYXJlbnRfbWRpb19idXMsIGFkZHIsIHJlZ251bSwgdmFsKTtcXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzel9jb21tb24uYy0yMTUwLX1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6X2NvbW1vbi5jPTIzMjE9aW50IGtzel9tZGlvX3JlZ2lzdGVyKHN0cnVjdCBrc3pfZGV2aWNlICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzel9jb21tb24uYy0yMzQ3LVxcbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6X2NvbW1vbi5jOjIzNDg6XFx0XFx0ZGV2LVxcdTAwM2VwYXJlbnRfbWRpb19idXMgPSBwYXJlbnRfYnVzO1xcbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6X2NvbW1vbi5jLTIzNDktXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3pfY29tbW9uLmg9MjA2PXN0cnVjdCBrc3pfZGV2aWNlIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6X2NvbW1vbi5oLTI1OC1cXHQvKipcXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzel9jb21tb24uaDoyNTk6XFx0ICogQHBhcmVudF9tZGlvX2J1czogUG9pbnRlciB0byB0aGUgZXh0ZXJuYWwgTURJTyBidXMgY29udHJvbGxlci5cXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzel9jb21tb24uaC0yNjAtXFx0ICpcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6X2NvbW1vbi5oLTI2NS1cXHQgKi9cXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzel9jb21tb24uaDoyNjY6XFx0c3RydWN0IG1paV9idXMgKnBhcmVudF9tZGlvX2J1cztcXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzel9jb21tb24uaC0yNjctXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2xhbjkzN3hfbWFpbi5jPTE0Mz1zdGF0aWMgaW50IGxhbjkzN3hfY3JlYXRlX3BoeV9hZGRyX21hcChzdHJ1Y3Qga3N6X2RldmljZSAqZGV2LCBib29sIHNpZGVfbWRpbylcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAvbGFuOTM3eF9tYWluLmMtMjEwLS8qKlxcbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAvbGFuOTM3eF9tYWluLmM6MjExOiAqIGxhbjkzN3hfbWRpb19idXNfcHJlaW5pdCAtIFByZS1pbml0aWFsaXplIE1ESU8gYnVzIGZvciBhY2Nlc3NpbmcgUEhZcy5cXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2xhbjkzN3hfbWFpbi5jLTIxMi0gKiBAZGV2OiBQb2ludGVyIHRvIGRldmljZSBzdHJ1Y3R1cmUuXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2xhbjkzN3hfbWFpbi5jLTIyNi0gKi9cXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2xhbjkzN3hfbWFpbi5jOjIyNzpzdGF0aWMgaW50IGxhbjkzN3hfbWRpb19idXNfcHJlaW5pdChzdHJ1Y3Qga3N6X2RldmljZSAqZGV2LCBib29sIHNpZGVfbWRpbylcXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2xhbjkzN3hfbWFpbi5jLTIyOC17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2xhbjkzN3hfbWFpbi5jPTY4NT1zdGF0aWMgaW50IGxhbjkzN3hfbWRpb19yZWdpc3RlcihzdHJ1Y3Qga3N6X2RldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9sYW45Mzd4X21haW4uYy03MTEtXFxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9sYW45Mzd4X21haW4uYzo3MTI6XFx0XFx0ZGV2LVxcdTAwM2VwYXJlbnRfbWRpb19idXMgPSBwYXJlbnRfYnVzO1xcbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAvbGFuOTM3eF9tYWluLmMtNzEzLVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAvbGFuOTM3eF9tYWluLmMtNzIwLVxcbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAvbGFuOTM3eF9tYWluLmM6NzIxOlxcdHJldCA9IGxhbjkzN3hfbWRpb19idXNfcHJlaW5pdChkZXYsICEhcGFyZW50X2J1cyk7XFxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9sYW45Mzd4X21haW4uYy03MjItXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTEyNj1pbnQgbXY4OGU2eHh4X3dhaXRfYml0KHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IGFkZHIsIGludCByZWcsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xMzItXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MTMzOnN0cnVjdCBtaWlfYnVzICptdjg4ZTZ4eHhfZGVmYXVsdF9tZGlvX2J1cyhzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTM0LXtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxMzU6XFx0c3RydWN0IG12ODhlNnh4eF9tZGlvX2J1cyAqbWRpb19idXM7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTM2LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjEzNzpcXHRtZGlvX2J1cyA9IGxpc3RfZmlyc3RfZW50cnlfb3JfbnVsbChcXHUwMDI2Y2hpcC1cXHUwMDNlbWRpb3MsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MTM4OlxcdFxcdFxcdFxcdFxcdCAgICBzdHJ1Y3QgbXY4OGU2eHh4X21kaW9fYnVzLCBsaXN0KTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxMzk6XFx0aWYgKCFtZGlvX2J1cylcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xNDAtXFx0XFx0cmV0dXJuIE5VTEw7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTQxLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjE0MjpcXHRyZXR1cm4gbWRpb19idXMtXFx1MDAzZWJ1cztcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xNDMtfVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9Mzc1Nz1zdGF0aWMgaW50IG12ODhlNnh4eF9tZGlvX3JlYWQoc3RydWN0IG1paV9idXMgKmJ1cywgaW50IHBoeSwgaW50IHJlZylcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zNzU4LXtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozNzU5OlxcdHN0cnVjdCBtdjg4ZTZ4eHhfbWRpb19idXMgKm1kaW9fYnVzID0gYnVzLVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM3NjA6XFx0c3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwID0gbWRpb19idXMtXFx1MDAzZWNoaXA7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzc2MS1cXHR1MTYgcHJvZF9pZDtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTM3ODM9c3RhdGljIGludCBtdjg4ZTZ4eHhfbWRpb19yZWFkX2M0NShzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgcGh5LCBpbnQgZGV2YWQsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zNzg1LXtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozNzg2OlxcdHN0cnVjdCBtdjg4ZTZ4eHhfbWRpb19idXMgKm1kaW9fYnVzID0gYnVzLVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM3ODc6XFx0c3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwID0gbWRpb19idXMtXFx1MDAzZWNoaXA7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzc4OC1cXHR1MTYgdmFsO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9MzgwMT1zdGF0aWMgaW50IG12ODhlNnh4eF9tZGlvX3dyaXRlKHN0cnVjdCBtaWlfYnVzICpidXMsIGludCBwaHksIGludCByZWcsIHUxNiB2YWwpXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzgwMi17XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzgwMzpcXHRzdHJ1Y3QgbXY4OGU2eHh4X21kaW9fYnVzICptZGlvX2J1cyA9IGJ1cy1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozODA0OlxcdHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCA9IG1kaW9fYnVzLVxcdTAwM2VjaGlwO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM4MDUtXFx0aW50IGVycjtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTM4MTc9c3RhdGljIGludCBtdjg4ZTZ4eHhfbWRpb193cml0ZV9jNDUoc3RydWN0IG1paV9idXMgKmJ1cywgaW50IHBoeSwgaW50IGRldmFkLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzgxOS17XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzgyMDpcXHRzdHJ1Y3QgbXY4OGU2eHh4X21kaW9fYnVzICptZGlvX2J1cyA9IGJ1cy1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozODIxOlxcdHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCA9IG1kaW9fYnVzLVxcdTAwM2VjaGlwO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM4MjItXFx0aW50IGVycjtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTM4MzQ9c3RhdGljIGludCBtdjg4ZTZ4eHhfbWRpb19yZWdpc3RlcihzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zODM4LVxcdHN0YXRpYyBpbnQgaW5kZXg7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzgzOTpcXHRzdHJ1Y3QgbXY4OGU2eHh4X21kaW9fYnVzICptZGlvX2J1cztcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zODQwLVxcdHN0cnVjdCBtaWlfYnVzICpidXM7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zODU0LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM4NTU6XFx0YnVzID0gbWRpb2J1c19hbGxvY19zaXplKHNpemVvZigqbWRpb19idXMpKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zODU2LVxcdGlmICghYnVzKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzg1OC1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozODU5OlxcdG1kaW9fYnVzID0gYnVzLVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM4NjA6XFx0bWRpb19idXMtXFx1MDAzZWJ1cyA9IGJ1cztcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozODYxOlxcdG1kaW9fYnVzLVxcdTAwM2VjaGlwID0gY2hpcDtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozODYyOlxcdElOSVRfTElTVF9IRUFEKFxcdTAwMjZtZGlvX2J1cy1cXHUwMDNlbGlzdCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Mzg2MzpcXHRtZGlvX2J1cy1cXHUwMDNlZXh0ZXJuYWwgPSBleHRlcm5hbDtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zODY0LVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzg5NS1cXHRpZiAoZXh0ZXJuYWwpXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Mzg5NjpcXHRcXHRsaXN0X2FkZF90YWlsKFxcdTAwMjZtZGlvX2J1cy1cXHUwMDNlbGlzdCwgXFx1MDAyNmNoaXAtXFx1MDAzZW1kaW9zKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zODk3LVxcdGVsc2VcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozODk4OlxcdFxcdGxpc3RfYWRkKFxcdTAwMjZtZGlvX2J1cy1cXHUwMDNlbGlzdCwgXFx1MDAyNmNoaXAtXFx1MDAzZW1kaW9zKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zODk5LVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9MzkwNz1zdGF0aWMgdm9pZCBtdjg4ZTZ4eHhfbWRpb3NfdW5yZWdpc3RlcihzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zOTA5LXtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozOTEwOlxcdHN0cnVjdCBtdjg4ZTZ4eHhfbWRpb19idXMgKm1kaW9fYnVzLCAqcDtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zOTExLVxcdHN0cnVjdCBtaWlfYnVzICpidXM7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzkxMi1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozOTEzOlxcdGxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShtZGlvX2J1cywgcCwgXFx1MDAyNmNoaXAtXFx1MDAzZW1kaW9zLCBsaXN0KSB7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzkxNDpcXHRcXHRidXMgPSBtZGlvX2J1cy1cXHUwMDNlYnVzO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM5MTUtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzkxNjpcXHRcXHRpZiAoIW1kaW9fYnVzLVxcdTAwM2VleHRlcm5hbClcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zOTE3LVxcdFxcdFxcdG12ODhlNnh4eF9nMl9pcnFfbWRpb19mcmVlKGNoaXAsIGJ1cyk7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz0zOTgwPXN0YXRpYyBpbnQgbXY4OGU2eHh4X3NldHVwKHN0cnVjdCBkc2Ffc3dpdGNoICpkcylcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM5OTEtXFx0Y2hpcC1cXHUwMDNlZHMgPSBkcztcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozOTkyOlxcdGRzLVxcdTAwM2V1c2VyX21paV9idXMgPSBtdjg4ZTZ4eHhfZGVmYXVsdF9tZGlvX2J1cyhjaGlwKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zOTkzLVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmg9NDg4PXN0cnVjdCBtdjg4ZTZ4eHhfYnVzX29wcyB7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuaC00OTMtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmg6NDk0OnN0cnVjdCBtdjg4ZTZ4eHhfbWRpb19idXMge1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5oLTQ5NS1cXHRzdHJ1Y3QgbWlpX2J1cyAqYnVzO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmg9ODczPWludCBtdjg4ZTZ4eHhfd2FpdF9iaXQoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgYWRkciwgaW50IHJlZyxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuaC04NzQtXFx0XFx0ICAgICAgIGludCBiaXQsIGludCB2YWwpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5oOjg3NTpzdHJ1Y3QgbWlpX2J1cyAqbXY4OGU2eHh4X2RlZmF1bHRfbWRpb19idXMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuaC04NzYtXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDIuYz03ODc9aW50IG12ODhlNnh4eF9nMl9zbWlfcGh5X3JlYWRfYzIyKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMi5jLTc5MC17XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyLmM6NzkxOlxcdHN0cnVjdCBtdjg4ZTZ4eHhfbWRpb19idXMgKm1kaW9fYnVzID0gYnVzLVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMi5jOjc5MjpcXHRib29sIGV4dGVybmFsID0gbWRpb19idXMtXFx1MDAzZWV4dGVybmFsO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMi5jLTc5My1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMi5jPTc5OD1pbnQgbXY4OGU2eHh4X2cyX3NtaV9waHlfcmVhZF9jNDUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyLmMtODAxLXtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDIuYzo4MDI6XFx0c3RydWN0IG12ODhlNnh4eF9tZGlvX2J1cyAqbWRpb19idXMgPSBidXMtXFx1MDAzZXByaXY7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyLmM6ODAzOlxcdGJvb2wgZXh0ZXJuYWwgPSBtZGlvX2J1cy1cXHUwMDNlZXh0ZXJuYWw7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyLmMtODA0LVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyLmM9ODA5PWludCBtdjg4ZTZ4eHhfZzJfc21pX3BoeV93cml0ZV9jMjIoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyLmMtODEyLXtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDIuYzo4MTM6XFx0c3RydWN0IG12ODhlNnh4eF9tZGlvX2J1cyAqbWRpb19idXMgPSBidXMtXFx1MDAzZXByaXY7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyLmM6ODE0OlxcdGJvb2wgZXh0ZXJuYWwgPSBtZGlvX2J1cy1cXHUwMDNlZXh0ZXJuYWw7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyLmMtODE1LVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyLmM9ODIwPWludCBtdjg4ZTZ4eHhfZzJfc21pX3BoeV93cml0ZV9jNDUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyLmMtODIzLXtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDIuYzo4MjQ6XFx0c3RydWN0IG12ODhlNnh4eF9tZGlvX2J1cyAqbWRpb19idXMgPSBidXMtXFx1MDAzZXByaXY7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyLmM6ODI1OlxcdGJvb2wgZXh0ZXJuYWwgPSBtZGlvX2J1cy1cXHUwMDNlZXh0ZXJuYWw7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyLmMtODI2LVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9wY3MtNjM1Mi5jPTMyMT1zdGF0aWMgaW50IG12ODhlNjM1Ml9wY3NfaW5pdChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0KVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9wY3MtNjM1Mi5jLTMzMy1cXHRpcnEgPSBtdjg4ZTZ4eHhfc2VyZGVzX2lycV9tYXBwaW5nKGNoaXAsIHBvcnQpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcGNzLTYzNTIuYzozMzQ6XFx0YnVzID0gbXY4OGU2eHh4X2RlZmF1bHRfbWRpb19idXMoY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9wY3MtNjM1Mi5jLTMzNS1cXHRkZXYgPSBjaGlwLVxcdTAwM2VkZXY7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3Bjcy02Mzl4LmM9NTQ5PXN0YXRpYyBpbnQgbXY4OGU2MzkwX3Bjc19pbml0KHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3Bjcy02Mzl4LmMtNTU5LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcGNzLTYzOXguYzo1NjA6XFx0YnVzID0gbXY4OGU2eHh4X2RlZmF1bHRfbWRpb19idXMoY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9wY3MtNjM5eC5jLTU2MS1cXHRkZXYgPSBjaGlwLVxcdTAwM2VkZXY7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3Bjcy02Mzl4LmM9OTI3PXN0YXRpYyBpbnQgbXY4OGU2MzkzeF9wY3NfaW5pdChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0KVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9wY3MtNjM5eC5jLTkzNy1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3Bjcy02Mzl4LmM6OTM4OlxcdGJ1cyA9IG12ODhlNnh4eF9kZWZhdWx0X21kaW9fYnVzKGNoaXApO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcGNzLTYzOXguYy05MzktXFx0ZGV2ID0gY2hpcC1cXHUwMDNlZGV2O1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9waHkuYz0yOD1pbnQgbXY4OGU2eHh4X3BoeV9yZWFkKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBoeSwgaW50IHJlZywgdTE2ICp2YWwpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BoeS5jLTMyLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcGh5LmM6MzM6XFx0YnVzID0gbXY4OGU2eHh4X2RlZmF1bHRfbWRpb19idXMoY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9waHkuYy0zNC1cXHRpZiAoIWJ1cylcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcGh5LmM9NDM9aW50IG12ODhlNnh4eF9waHlfd3JpdGUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcGh5LCBpbnQgcmVnLCB1MTYgdmFsKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9waHkuYy00Ny1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BoeS5jOjQ4OlxcdGJ1cyA9IG12ODhlNnh4eF9kZWZhdWx0X21kaW9fYnVzKGNoaXApO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcGh5LmMtNDktXFx0aWYgKCFidXMpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BoeS5jPTU4PWludCBtdjg4ZTZ4eHhfcGh5X3JlYWRfYzQ1KHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBoeSwgaW50IGRldmFkLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9waHkuYy02My1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BoeS5jOjY0OlxcdGJ1cyA9IG12ODhlNnh4eF9kZWZhdWx0X21kaW9fYnVzKGNoaXApO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcGh5LmMtNjUtXFx0aWYgKCFidXMpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BoeS5jPTc0PWludCBtdjg4ZTZ4eHhfcGh5X3dyaXRlX2M0NShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwaHksIGludCBkZXZhZCxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcGh5LmMtNzktXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9waHkuYzo4MDpcXHRidXMgPSBtdjg4ZTZ4eHhfZGVmYXVsdF9tZGlvX2J1cyhjaGlwKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BoeS5jLTgxLVxcdGlmICghYnVzKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL25ldGMvbmV0Y19tYWluLmM9MTMzPXN0YXRpYyBpbnQgbmV0Y19wb3J0X2dldF9pbmZvX2Zyb21fZHQoc3RydWN0IG5ldGNfcG9ydCAqbnAsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbmV0Yy9uZXRjX21haW4uYy0xNDgtXFxuZHJpdmVycy9uZXQvZHNhL25ldGMvbmV0Y19tYWluLmM6MTQ5OnN0YXRpYyBpbnQgbmV0Y19wb3J0X2NyZWF0ZV9lbWRpb19idXMoc3RydWN0IG5ldGNfcG9ydCAqbnAsXFxuZHJpdmVycy9uZXQvZHNhL25ldGMvbmV0Y19tYWluLmMtMTUwLVxcdFxcdFxcdFxcdCAgICAgIHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9uZXRjL25ldGNfbWFpbi5jLTE4OS1cXG5kcml2ZXJzL25ldC9kc2EvbmV0Yy9uZXRjX21haW4uYzoxOTA6c3RhdGljIGludCBuZXRjX3BvcnRfY3JlYXRlX21kaW9fYnVzKHN0cnVjdCBuZXRjX3BvcnQgKm5wLFxcbmRyaXZlcnMvbmV0L2RzYS9uZXRjL25ldGNfbWFpbi5jLTE5MS1cXHRcXHRcXHRcXHQgICAgIHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9uZXRjL25ldGNfbWFpbi5jLTE5Ny1cXHRpZiAobWRpb19ub2RlKSB7XFxuZHJpdmVycy9uZXQvZHNhL25ldGMvbmV0Y19tYWluLmM6MTk4OlxcdFxcdGVyciA9IG5ldGNfcG9ydF9jcmVhdGVfZW1kaW9fYnVzKG5wLCBtZGlvX25vZGUpO1xcbmRyaXZlcnMvbmV0L2RzYS9uZXRjL25ldGNfbWFpbi5jLTE5OS1cXHRcXHRvZl9ub2RlX3B1dChtZGlvX25vZGUpO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL25ldGMvbmV0Y19tYWluLmM9MjQxPXN0YXRpYyBpbnQgbmV0Y19pbml0X2FsbF9wb3J0cyhzdHJ1Y3QgbmV0Y19zd2l0Y2ggKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbmV0Yy9uZXRjX21haW4uYy0yODMtXFx0XFx0aWYgKGRzYV9wb3J0X2lzX3VzZXIoZHApKSB7XFxuZHJpdmVycy9uZXQvZHNhL25ldGMvbmV0Y19tYWluLmM6Mjg0OlxcdFxcdFxcdGVyciA9IG5ldGNfcG9ydF9jcmVhdGVfbWRpb19idXMobnAsIGRwLVxcdTAwM2Vkbik7XFxuZHJpdmVycy9uZXQvZHNhL25ldGMvbmV0Y19tYWluLmMtMjg1LVxcdFxcdFxcdGlmIChlcnIpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXguYz0xNTE3PXN0YXRpYyBpbnQgZmVsaXhfaW5pdF9zdHJ1Y3RzKHN0cnVjdCBmZWxpeCAqZmVsaXgsIGludCBudW1fcGh5c19wb3J0cylcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXguYy0xNjAyLVxcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXguYzoxNjAzOlxcdGlmIChmZWxpeC1cXHUwMDNlaW5mby1cXHUwMDNlbWRpb19idXNfYWxsb2MpIHtcXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L2ZlbGl4LmM6MTYwNDpcXHRcXHRlcnIgPSBmZWxpeC1cXHUwMDNlaW5mby1cXHUwMDNlbWRpb19idXNfYWxsb2Mob2NlbG90KTtcXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L2ZlbGl4LmMtMTYwNS1cXHRcXHRpZiAoZXJyIFxcdTAwM2MgMClcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXguYz0xNjk2PXN0YXRpYyBpbnQgZmVsaXhfc2V0dXAoc3RydWN0IGRzYV9zd2l0Y2ggKmRzKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9mZWxpeC5jLTE3Njgtb3V0X21kaW9idXNfZnJlZTpcXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L2ZlbGl4LmM6MTc2OTpcXHRpZiAoZmVsaXgtXFx1MDAzZWluZm8tXFx1MDAzZW1kaW9fYnVzX2ZyZWUpXFxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9mZWxpeC5jOjE3NzA6XFx0XFx0ZmVsaXgtXFx1MDAzZWluZm8tXFx1MDAzZW1kaW9fYnVzX2ZyZWUob2NlbG90KTtcXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L2ZlbGl4LmMtMTc3MS1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXguYz0xNzc1PXN0YXRpYyB2b2lkIGZlbGl4X3RlYXJkb3duKHN0cnVjdCBkc2Ffc3dpdGNoICpkcylcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXguYy0xNzkyLVxcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXguYzoxNzkzOlxcdGlmIChmZWxpeC1cXHUwMDNlaW5mby1cXHUwMDNlbWRpb19idXNfZnJlZSlcXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L2ZlbGl4LmM6MTc5NDpcXHRcXHRmZWxpeC1cXHUwMDNlaW5mby1cXHUwMDNlbWRpb19idXNfZnJlZShvY2Vsb3QpO1xcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXguYy0xNzk1LX1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXguaD0yMj1zdHJ1Y3QgZmVsaXhfaW5mbyB7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L2ZlbGl4LmgtNTUtXFxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9mZWxpeC5oOjU2OlxcdGludFxcdCgqbWRpb19idXNfYWxsb2MpKHN0cnVjdCBvY2Vsb3QgKm9jZWxvdCk7XFxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9mZWxpeC5oOjU3OlxcdHZvaWRcXHQoKm1kaW9fYnVzX2ZyZWUpKHN0cnVjdCBvY2Vsb3QgKm9jZWxvdCk7XFxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9mZWxpeC5oLTU4LVxcdGludFxcdCgqcG9ydF9zZXR1cF90Yykoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXhfdnNjOTk1OS5jPTk1MT1zdGF0aWMgdm9pZCB2c2M5OTU5X3dtX3N0YXQodTMyIHZhbCwgdTMyICppbnVzZSwgdTMyICptYXh1c2UpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L2ZlbGl4X3ZzYzk5NTkuYy05NTYtXFxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9mZWxpeF92c2M5OTU5LmM6OTU3OnN0YXRpYyBpbnQgdnNjOTk1OV9tZGlvX2J1c19hbGxvYyhzdHJ1Y3Qgb2NlbG90ICpvY2Vsb3QpXFxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9mZWxpeF92c2M5OTU5LmMtOTU4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXhfdnNjOTk1OS5jLTEwNDQtXFxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9mZWxpeF92c2M5OTU5LmM6MTA0NTpzdGF0aWMgdm9pZCB2c2M5OTU5X21kaW9fYnVzX2ZyZWUoc3RydWN0IG9jZWxvdCAqb2NlbG90KVxcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXhfdnNjOTk1OS5jLTEwNDYte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9mZWxpeF92c2M5OTU5LmM9MjY1OT1zdGF0aWMgY29uc3Qgc3RydWN0IGZlbGl4X2luZm8gZmVsaXhfaW5mb192c2M5OTU5ID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9mZWxpeF92c2M5OTU5LmMtMjY3NS1cXHQucHRwX2NhcHNcXHRcXHQ9IFxcdTAwMjZ2c2M5OTU5X3B0cF9jYXBzLFxcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXhfdnNjOTk1OS5jOjI2NzY6XFx0Lm1kaW9fYnVzX2FsbG9jXFx0XFx0PSB2c2M5OTU5X21kaW9fYnVzX2FsbG9jLFxcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXhfdnNjOTk1OS5jOjI2Nzc6XFx0Lm1kaW9fYnVzX2ZyZWVcXHRcXHQ9IHZzYzk5NTlfbWRpb19idXNfZnJlZSxcXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L2ZlbGl4X3ZzYzk5NTkuYy0yNjc4LVxcdC5wb3J0X21vZGVzXFx0XFx0PSB2c2M5OTU5X3BvcnRfbW9kZXMsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L3NldmlsbGVfdnNjOTk1My5jPTg2OT1zdGF0aWMgY29uc3Qgc3RydWN0IG9jZWxvdF9vcHMgdnNjOTk1M19vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L3NldmlsbGVfdnNjOTk1My5jLTg3Ny1cXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L3NldmlsbGVfdnNjOTk1My5jOjg3ODpzdGF0aWMgaW50IHZzYzk5NTNfbWRpb19idXNfYWxsb2Moc3RydWN0IG9jZWxvdCAqb2NlbG90KVxcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3Qvc2V2aWxsZV92c2M5OTUzLmMtODc5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3Qvc2V2aWxsZV92c2M5OTUzLmMtOTM0LVxcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3Qvc2V2aWxsZV92c2M5OTUzLmM6OTM1OnN0YXRpYyB2b2lkIHZzYzk5NTNfbWRpb19idXNfZnJlZShzdHJ1Y3Qgb2NlbG90ICpvY2Vsb3QpXFxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9zZXZpbGxlX3ZzYzk5NTMuYy05MzYte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9zZXZpbGxlX3ZzYzk5NTMuYz05NTA9c3RhdGljIGNvbnN0IHN0cnVjdCBmZWxpeF9pbmZvIHNldmlsbGVfaW5mb192c2M5OTUzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9zZXZpbGxlX3ZzYzk5NTMuYy05NjQtXFx0Lm51bV9wb3J0c1xcdFxcdD0gVlNDOTk1M19OVU1fUE9SVFMsXFxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9zZXZpbGxlX3ZzYzk5NTMuYzo5NjU6XFx0Lm1kaW9fYnVzX2FsbG9jXFx0XFx0PSB2c2M5OTUzX21kaW9fYnVzX2FsbG9jLFxcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3Qvc2V2aWxsZV92c2M5OTUzLmM6OTY2OlxcdC5tZGlvX2J1c19mcmVlXFx0XFx0PSB2c2M5OTUzX21kaW9fYnVzX2ZyZWUsXFxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9zZXZpbGxlX3ZzYzk5NTMuYy05NjctXFx0LnBvcnRfbW9kZXNcXHRcXHQ9IHZzYzk5NTNfcG9ydF9tb2RlcyxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTgwNz1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6ODA4OnFjYThrX21kaW9fYnVzeV93YWl0KHN0cnVjdCBtaWlfYnVzICpidXMsIHUzMiByZWcsIHUzMiBtYXNrKVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTgwOS17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz04MzA9cWNhOGtfbWRpb193cml0ZShzdHJ1Y3QgcWNhOGtfcHJpdiAqcHJpdiwgaW50IHBoeSwgaW50IHJlZ251bSwgdTE2IGRhdGEpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy04NTQtXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6ODU1OlxcdHJldCA9IHFjYThrX21kaW9fYnVzeV93YWl0KGJ1cywgUUNBOEtfTURJT19NQVNURVJfQ1RSTCxcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy04NTYtXFx0XFx0XFx0XFx0ICAgUUNBOEtfTURJT19NQVNURVJfQlVTWSk7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz04Njg9cWNhOGtfbWRpb19yZWFkKHN0cnVjdCBxY2E4a19wcml2ICpwcml2LCBpbnQgcGh5LCBpbnQgcmVnbnVtKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtODkxLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjg5MjpcXHRyZXQgPSBxY2E4a19tZGlvX2J1c3lfd2FpdChidXMsIFFDQThLX01ESU9fTUFTVEVSX0NUUkwsXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtODkzLVxcdFxcdFxcdFxcdCAgIFFDQThLX01ESU9fTUFTVEVSX0JVU1kpO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9OTYxPXFjYThrX21kaW9fcmVnaXN0ZXIoc3RydWN0IHFjYThrX3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy05NzgtXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6OTc5OlxcdHByaXYtXFx1MDAzZWludGVybmFsX21kaW9fYnVzID0gYnVzO1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTk4MC1cXHRidXMtXFx1MDAzZXByaXYgPSAodm9pZCAqKXByaXY7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz0xMDA4PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzoxMDA5OnFjYThrX3NldHVwX21kaW9fYnVzKHN0cnVjdCBxY2E4a19wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTEwMTAte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9MTg1Nz1xY2E4a19zZXR1cChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0xODc0LVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjE4NzU6XFx0cmV0ID0gcWNhOGtfc2V0dXBfbWRpb19idXMocHJpdik7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMTg3Ni1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1sZWRzLmM9MzY1PXFjYThrX3BhcnNlX3BvcnRfbGVkcyhzdHJ1Y3QgcWNhOGtfcHJpdiAqcHJpdiwgc3RydWN0IGZ3bm9kZV9oYW5kbGUgKnBvcnQsIGludCBwb3J0X251bSlcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstbGVkcy5jLTQzMS1cXHRcXHRpbml0X2RhdGEuZGV2aWNlbmFtZSA9IGthc3ByaW50ZihHRlBfS0VSTkVMLCBcXFwiJXM6MCVkXFxcIixcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWxlZHMuYzo0MzI6XFx0XFx0XFx0XFx0XFx0XFx0IHByaXYtXFx1MDAzZWludGVybmFsX21kaW9fYnVzID9cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWxlZHMuYzo0MzM6XFx0XFx0XFx0XFx0XFx0XFx0IHByaXYtXFx1MDAzZWludGVybmFsX21kaW9fYnVzLVxcdTAwM2VpZCA6IHByaXYtXFx1MDAzZWJ1cy1cXHUwMDNlaWQsXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1sZWRzLmMtNDM0LVxcdFxcdFxcdFxcdFxcdFxcdCBwb3J0X251bSk7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLmg9NDQ1PXN0cnVjdCBxY2E4a19wcml2IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGsuaC00NTgtXFx0c3RydWN0IG1paV9idXMgKmJ1cztcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLmg6NDU5OlxcdHN0cnVjdCBtaWlfYnVzICppbnRlcm5hbF9tZGlvX2J1cztcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLmgtNDYwLVxcdHN0cnVjdCBkc2Ffc3dpdGNoICpkcztcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS92aXRlc3NlLXZzYzczeHgtY29yZS5jPTUyMT1zdGF0aWMgaW50IHZzYzczeHhfZGV0ZWN0KHN0cnVjdCB2c2M3M3h4ICp2c2MpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2Evdml0ZXNzZS12c2M3M3h4LWNvcmUuYy02MDQtXFxuZHJpdmVycy9uZXQvZHNhL3ZpdGVzc2UtdnNjNzN4eC1jb3JlLmM6NjA1OnN0YXRpYyBpbnQgdnNjNzN4eF9tZGlvX2J1c3lfY2hlY2soc3RydWN0IHZzYzczeHggKnZzYylcXG5kcml2ZXJzL25ldC9kc2Evdml0ZXNzZS12c2M3M3h4LWNvcmUuYy02MDYte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3ZpdGVzc2UtdnNjNzN4eC1jb3JlLmM9NjIxPXN0YXRpYyBpbnQgdnNjNzN4eF9waHlfcmVhZChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwaHksIGludCByZWdudW0pXFxuLS1cXG5kcml2ZXJzL25ldC9kc2Evdml0ZXNzZS12c2M3M3h4LWNvcmUuYy02MjctXFxuZHJpdmVycy9uZXQvZHNhL3ZpdGVzc2UtdnNjNzN4eC1jb3JlLmM6NjI4OlxcdHJldCA9IHZzYzczeHhfbWRpb19idXN5X2NoZWNrKHZzYyk7XFxuZHJpdmVycy9uZXQvZHNhL3ZpdGVzc2UtdnNjNzN4eC1jb3JlLmMtNjI5LVxcdGlmIChyZXQpXFxuLS1cXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTBUMDc6MTc6MjQuNDc2MDgzMTc5WiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY0OTAzNzg3NzMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTURJTyBcdTAwMjYgUUNBOEsgRHJpdmVyIEZ1enppbmcgLSBBIFF1aWNrIEFzc2Vzc21lbnQqKlxuXG5Pa2F5LCBzbyBzeXprYWxsZXIgKm1pZ2h0KiBiZSBhYmxlIHRvIHRvdWNoIE1ESU8uIEJ1dCB3YWl0LCBNRElPIGl0c2VsZiBpcyBqdXN0IGEgYnVzLCByaWdodD8gSXQncyBub3QgYSBkcml2ZXIgaW4gdGhlIHdheSB3ZSB1c3VhbGx5IHRoaW5rIG9mIHRoZW0uIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBkb2VzIFFFTVUgZXZlbiAqaGF2ZSogYW4gTURJTyBlbXVsYXRvcj8gWWVhaCwgc29tZSBTb0NzIGRvLCB0aGF0J3MgcmlnaHQuIEhvd2V2ZXIsIEknbSBwcmV0dHkgc3VyZSBzeXprYWxsZXIgdXN1YWxseSBieXBhc3NlcyBoYXJkd2FyZSBzcGVjaWZpYyBkcml2ZXJzIHVubGVzcyB0aGVyZSdzIGEgbmV0bGluay9zeXNmcyBpbnRlcmZhY2Ugb3IgYSBkdW1teSBkcml2ZXIgYXZhaWxhYmxlLlxuXG5SaWdodCwgbGV0J3Mgc2VlIGlmIHdlIGNhbiBldmVuICpyZWFjaCogYHFjYThrLTh4eHguY2AuIElzIHRoZXJlIGEgY2xldmVyIHdheSB0byBpbnN0YW50aWF0ZSBpdCB3aXRoIGEgZGV2aWNlIHRyZWUgb3ZlcmxheSB3aXRoaW4gdGhlIHN5emthbGxlciBjb250ZXh0PyBJIHJlbWVtYmVyIGBzeXpfbW91bnRfaW1hZ2VgLCBvciBzb21ldGhpbmcgc2ltaWxhciwgYnV0IHRoYXQgdHlwaWNhbGx5IHdvbid0IGluc3RhbnRpYXRlIHJhbmRvbSBwbGF0Zm9ybSBkZXZpY2VzIG9yIE1ESU8gZGV2aWNlcyB1bmxlc3MgdGhlcmUncyBhIGRlZGljYXRlZCBwc2V1ZG8tc3lzY2FsbC5cblxuSGFuZyBvbi4uLiBJIHNob3VsZCBiZSB0aGlua2luZyBtb3JlIGJyb2FkbHkuIFN5emthbGxlciBoYXMgYHN5el9nZW5ldGxpbmtfZ2V0X2ZhbWlseWAgYW5kIGBzeXpfb3Blbl9kZXZgIGFuZCBzbyBvbiwgcmlnaHQ/IFNvIGl0IG1pZ2h0IGJlIHBvc3NpYmxlLlxuXG5Pa2F5LCBsZXQncyBjdXQgdGhlIHNwZWN1bGF0aW9uLiBUaW1lIHRvIGp1c3QgY2hlY2sgdGhlIHN5emthbGxlciBkZXNjcmlwdGlvbnMuIEkgbmVlZCB0byBzZWUgaWYgdGhlcmUncyAqYW55KiBtZW50aW9uIG9mIE1ESU8gb3IgdGhlIFFDQThLIGZhbWlseS4gVGhhdCdzIHRoZSBmaXJzdCBzdGVwLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxODg1OSwiT3V0cHV0VG9rZW5zIjoxOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIwNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xMFQwNzoxNzozMC45NjY0NjQwNjFaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEzOTA2NDMzMTQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicWNhOGtcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxOTk5IGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svcWNvbSxxY2E4ay1uc3NjYy55YW1sLTMtLS0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL3Fjb20scWNhOGstbnNzY2MueWFtbDo0OiRpZDogaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvY2xvY2svcWNvbSxxY2E4ay1uc3NjYy55YW1sI1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9xY29tLHFjYThrLW5zc2NjLnlhbWwtNS0kc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCNcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9xY29tLHFjYThrLW5zc2NjLnlhbWw9MTM9ZGVzY3JpcHRpb246IHxcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9xY29tLHFjYThrLW5zc2NjLnlhbWwtMTctICBTZWUgYWxzbzo6XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL3Fjb20scWNhOGstbnNzY2MueWFtbDoxODogICAgaW5jbHVkZS9kdC1iaW5kaW5ncy9jbG9jay9xY29tLHFjYThrLW5zc2NjLmhcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svcWNvbSxxY2E4ay1uc3NjYy55YW1sOjE5OiAgICBpbmNsdWRlL2R0LWJpbmRpbmdzL3Jlc2V0L3Fjb20scWNhOGstbnNzY2MuaFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9xY29tLHFjYThrLW5zc2NjLnlhbWwtMjAtXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svcWNvbSxxY2E4ay1uc3NjYy55YW1sPTYzPWV4YW1wbGVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL3Fjb20scWNhOGstbnNzY2MueWFtbC03NC0gICAgICAgIGNsb2NrcyA9IFxcdTAwM2NcXHUwMDI2cGNzMF9wbGxcXHUwMDNlLFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9xY29tLHFjYThrLW5zc2NjLnlhbWw6NzU6ICAgICAgICAgICAgICAgICBcXHUwMDNjXFx1MDAyNnFjYThrX3VuaXBoeTBfcnhcXHUwMDNlLFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9xY29tLHFjYThrLW5zc2NjLnlhbWw6NzY6ICAgICAgICAgICAgICAgICBcXHUwMDNjXFx1MDAyNnFjYThrX3VuaXBoeTBfdHhcXHUwMDNlLFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9xY29tLHFjYThrLW5zc2NjLnlhbWw6Nzc6ICAgICAgICAgICAgICAgICBcXHUwMDNjXFx1MDAyNnFjYThrX3VuaXBoeTFfcnhcXHUwMDNlLFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9xY29tLHFjYThrLW5zc2NjLnlhbWw6Nzg6ICAgICAgICAgICAgICAgICBcXHUwMDNjXFx1MDAyNnFjYThrX3VuaXBoeTFfdHhcXHUwMDNlLFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9xY29tLHFjYThrLW5zc2NjLnlhbWw6Nzk6ICAgICAgICAgICAgICAgICBcXHUwMDNjXFx1MDAyNnFjYThrX3VuaXBoeTFfcngzMTJwNW1cXHUwMDNlLFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9xY29tLHFjYThrLW5zc2NjLnlhbWw6ODA6ICAgICAgICAgICAgICAgICBcXHUwMDNjXFx1MDAyNnFjYThrX3VuaXBoeTFfdHgzMTJwNW1cXHUwMDNlO1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9xY29tLHFjYThrLW5zc2NjLnlhbWwtODEtICAgICAgICAjY2xvY2stY2VsbHMgPSBcXHUwMDNjMVxcdTAwM2U7XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9xY2E4ay55YW1sLTMtLS0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvcWNhOGsueWFtbDo0OiRpZDogaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvbmV0L2RzYS9xY2E4ay55YW1sI1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL3FjYThrLnlhbWwtNS0kc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCNcXG4tLVxcbmRyaXZlcnMvY2xrL3Fjb20vS2NvbmZpZz01MDM9Y29uZmlnIElQUV9OU1NDQ19RQ0E4S1xcbi0tXFxuZHJpdmVycy9jbGsvcWNvbS9LY29uZmlnLTUwOS1cXHQgIFNheSBZIG9yIE0gaWYgeW91IHdhbnQgdG8gdXNlIG5ldHdvcmsgZmVhdHVyZXMgb2Ygc3dpdGNoIG9yXFxuZHJpdmVycy9jbGsvcWNvbS9LY29uZmlnOjUxMDpcXHQgIFBIWSBkZXZpY2UuIFNlbGVjdCB0aGlzIGZvciB0aGUgcm9vdCBjbG9jayBvZiBxY2E4ay5cXG5kcml2ZXJzL2Nsay9xY29tL0tjb25maWctNTExLVxcbi0tXFxuZHJpdmVycy9jbGsvcWNvbS9NYWtlZmlsZT02Nz1vYmotJChDT05GSUdfSVBRX0xDQ184MDZYKSArPSBsY2MtaXBxODA2eC5vXFxuZHJpdmVycy9jbGsvcWNvbS9NYWtlZmlsZTo2ODpvYmotJChDT05GSUdfSVBRX05TU0NDX1FDQThLKSArPSBuc3NjYy1xY2E4ay5vXFxuZHJpdmVycy9jbGsvcWNvbS9NYWtlZmlsZS02OS1vYmotJChDT05GSUdfTURNX0dDQ185NjA3KSArPSBnY2MtbWRtOTYwNy5vXFxuLS1cXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMTUtXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjE2OiNpbmNsdWRlIFxcdTAwM2NkdC1iaW5kaW5ncy9jbG9jay9xY29tLHFjYThrLW5zc2NjLmhcXHUwMDNlXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjE3OiNpbmNsdWRlIFxcdTAwM2NkdC1iaW5kaW5ncy9yZXNldC9xY29tLHFjYThrLW5zc2NjLmhcXHUwMDNlXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTE4LVxcbi0tXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jPTE4MTk9c3RhdGljIHN0cnVjdCBjbGtfYnJhbmNoIG5zc19jY19nZXBoeTNfc3lzX2NsayA9IHtcXG4tLVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0xODM1LVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoxODM2OnN0YXRpYyBzdHJ1Y3QgY2xrX3JlZ21hcCAqbnNzX2NjX3FjYThrX2Nsb2Nrc1tdID0ge1xcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0xODM3LVxcdFtOU1NfQ0NfU1dJVENIX0NPUkVfQ0xLX1NSQ10gPSBcXHUwMDI2bnNzX2NjX3N3aXRjaF9jb3JlX2Nsa19zcmMuY2xrcixcXG4tLVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0xOTM4LVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoxOTM5OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcWNvbV9yZXNldF9tYXAgbnNzX2NjX3FjYThrX3Jlc2V0c1tdID0ge1xcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0xOTQwLVxcdFtOU1NfQ0NfU1dJVENIX0NPUkVfQVJFU10gPSB7IDB4YywgMiB9LFxcbi0tXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jPTIwMjQ9c3RhdGljIGlubGluZSB2b2lkIGNvbnZlcnRfcmVnX3RvX21paV9hZGRyKHUzMiByZWdhZGRyLCB1MTYgKnJlZywgdTE2ICpwaHlfYWRkciwgdTE2ICpwYWdlKVxcbi0tXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIwMzAtXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIwMzE6c3RhdGljIGludCBxY2E4a19taWlfcmVhZChzdHJ1Y3QgbWlpX2J1cyAqYnVzLCB1MTYgc3dpdGNoX3BoeV9pZCwgdTMyIHJlZywgdTMyICp2YWwpXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIwMzIte1xcbi0tXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIwNDQtXFx0aWYgKHJldCBcXHUwMDNjIDApXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIwNDU6XFx0XFx0ZGV2X2Vycl9yYXRlbGltaXRlZChcXHUwMDI2YnVzLVxcdTAwM2VkZXYsIFxcXCJmYWlsIHRvIHJlYWQgcWNhOGsgbWlpIHJlZ2lzdGVyXFxcXG5cXFwiKTtcXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjA0Ni1cXG4tLVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMDQ5LVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMDUwOnN0YXRpYyB2b2lkIHFjYThrX21paV93cml0ZShzdHJ1Y3QgbWlpX2J1cyAqYnVzLCB1MTYgc3dpdGNoX3BoeV9pZCwgdTMyIHJlZywgdTMyIHZhbClcXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjA1MS17XFxuLS1cXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjA1OS1cXHRpZiAocmV0IFxcdTAwM2MgMClcXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjA2MDpcXHRcXHRkZXZfZXJyX3JhdGVsaW1pdGVkKFxcdTAwMjZidXMtXFx1MDAzZWRldiwgXFxcImZhaWwgdG8gd3JpdGUgcWNhOGsgbWlpIHJlZ2lzdGVyXFxcXG5cXFwiKTtcXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjA2MS19XFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIwNjItXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIwNjM6c3RhdGljIGludCBxY2E4a19taWlfcGFnZV9zZXQoc3RydWN0IG1paV9idXMgKmJ1cywgdTE2IHN3aXRjaF9waHlfaWQsIHUzMiByZWcsIHUxNiBwYWdlKVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMDY0LXtcXG4tLVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMDczLVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMDc0OnN0YXRpYyBpbnQgcWNhOGtfcmVnbWFwX3JlYWQodm9pZCAqY29udGV4dCwgdW5zaWduZWQgaW50IHJlZ2FkZHIsIHVuc2lnbmVkIGludCAqdmFsKVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMDc1LXtcXG4tLVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMDgzLVxcdG11dGV4X2xvY2soXFx1MDAyNmJ1cy1cXHUwMDNlbWRpb19sb2NrKTtcXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjA4NDpcXHRyZXQgPSBxY2E4a19taWlfcGFnZV9zZXQoYnVzLCBRQ0E4S19ISUdIX0FERFJfUFJFRklYLCBRQ0E4S19DRkdfUEFHRV9SRUcsIHBhZ2UpO1xcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMDg1LVxcdGlmIChyZXQgXFx1MDAzYyAwKVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMDg2OlxcdFxcdGdvdG8gcWNhOGtfcmVhZF9leGl0O1xcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMDg3LVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMDg4OlxcdHJldCA9IHFjYThrX21paV9yZWFkKGJ1cywgcGh5X2FkZHIsIHJlZywgdmFsKTtcXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjA4OS1cXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjA5MDpxY2E4a19yZWFkX2V4aXQ6XFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIwOTEtXFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZidXMtXFx1MDAzZW1kaW9fbG9jayk7XFxuLS1cXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjA5NC1cXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjA5NTpzdGF0aWMgaW50IHFjYThrX3JlZ21hcF93cml0ZSh2b2lkICpjb250ZXh0LCB1bnNpZ25lZCBpbnQgcmVnYWRkciwgdW5zaWduZWQgaW50IHZhbClcXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjA5Ni17XFxuLS1cXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjEwNC1cXHRtdXRleF9sb2NrKFxcdTAwMjZidXMtXFx1MDAzZW1kaW9fbG9jayk7XFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIxMDU6XFx0cmV0ID0gcWNhOGtfbWlpX3BhZ2Vfc2V0KGJ1cywgUUNBOEtfSElHSF9BRERSX1BSRUZJWCwgUUNBOEtfQ0ZHX1BBR0VfUkVHLCBwYWdlKTtcXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjEwNi1cXHRpZiAocmV0IFxcdTAwM2MgMClcXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjEwNzpcXHRcXHRnb3RvIHFjYThrX3dyaXRlX2V4aXQ7XFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIxMDgtXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIxMDk6XFx0cWNhOGtfbWlpX3dyaXRlKGJ1cywgcGh5X2FkZHIsIHJlZywgdmFsKTtcXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjExMC1cXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjExMTpxY2E4a193cml0ZV9leGl0OlxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMTEyLVxcdG11dGV4X3VubG9jayhcXHUwMDI2YnVzLVxcdTAwM2VtZGlvX2xvY2spO1xcbi0tXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIxMTUtXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIxMTY6c3RhdGljIGludCBxY2E4a19yZWdtYXBfdXBkYXRlX2JpdHModm9pZCAqY29udGV4dCwgdW5zaWduZWQgaW50IHJlZ2FkZHIsXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIxMTctXFx0XFx0XFx0XFx0ICAgIHVuc2lnbmVkIGludCBtYXNrLCB1bnNpZ25lZCBpbnQgdmFsdWUpXFxuLS1cXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjEyNy1cXHRtdXRleF9sb2NrKFxcdTAwMjZidXMtXFx1MDAzZW1kaW9fbG9jayk7XFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIxMjg6XFx0cmV0ID0gcWNhOGtfbWlpX3BhZ2Vfc2V0KGJ1cywgUUNBOEtfSElHSF9BRERSX1BSRUZJWCwgUUNBOEtfQ0ZHX1BBR0VfUkVHLCBwYWdlKTtcXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjEyOS1cXHRpZiAocmV0IFxcdTAwM2MgMClcXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjEzMDpcXHRcXHRnb3RvIHFjYThrX3VwZGF0ZV9leGl0O1xcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMTMxLVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMTMyOlxcdHJldCA9IHFjYThrX21paV9yZWFkKGJ1cywgcGh5X2FkZHIsIHJlZywgXFx1MDAyNnZhbCk7XFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIxMzMtXFx0aWYgKHJldCBcXHUwMDNjIDApXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIxMzQ6XFx0XFx0Z290byBxY2E4a191cGRhdGVfZXhpdDtcXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjEzNS1cXG4tLVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMTM3LVxcdHZhbCB8PSB2YWx1ZTtcXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjEzODpcXHRxY2E4a19taWlfd3JpdGUoYnVzLCBwaHlfYWRkciwgcmVnLCB2YWwpO1xcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMTM5LVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMTQwOnFjYThrX3VwZGF0ZV9leGl0OlxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMTQxLVxcdG11dGV4X3VubG9jayhcXHUwMDI2YnVzLVxcdTAwM2VtZGlvX2xvY2spO1xcbi0tXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIxNDQtXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIxNDU6c3RhdGljIGNvbnN0IHN0cnVjdCByZWdtYXBfY29uZmlnIG5zc19jY19xY2E4a19yZWdtYXBfY29uZmlnID0ge1xcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMTQ2LVxcdC5yZWdfYml0cyA9IDEyLFxcbi0tXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIxNDktXFx0Lm1heF9yZWdpc3RlciA9IDB4MzBjLFxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMTUwOlxcdC5yZWdfcmVhZCA9IHFjYThrX3JlZ21hcF9yZWFkLFxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMTUxOlxcdC5yZWdfd3JpdGUgPSBxY2E4a19yZWdtYXBfd3JpdGUsXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIxNTI6XFx0LnJlZ191cGRhdGVfYml0cyA9IHFjYThrX3JlZ21hcF91cGRhdGVfYml0cyxcXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjE1My1cXHQuZGlzYWJsZV9sb2NraW5nID0gdHJ1ZSxcXG4tLVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMTU1LVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMTU2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcWNvbV9jY19kZXNjIG5zc19jY19xY2E4a19kZXNjID0ge1xcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMTU3OlxcdC5jb25maWcgPSBcXHUwMDI2bnNzX2NjX3FjYThrX3JlZ21hcF9jb25maWcsXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIxNTg6XFx0LmNsa3MgPSBuc3NfY2NfcWNhOGtfY2xvY2tzLFxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMTU5OlxcdC5udW1fY2xrcyA9IEFSUkFZX1NJWkUobnNzX2NjX3FjYThrX2Nsb2NrcyksXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIxNjA6XFx0LnJlc2V0cyA9IG5zc19jY19xY2E4a19yZXNldHMsXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIxNjE6XFx0Lm51bV9yZXNldHMgPSBBUlJBWV9TSVpFKG5zc19jY19xY2E4a19yZXNldHMpLFxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMTYyLX07XFxuLS1cXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjE2Ny0gKi9cXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjE2ODpzdGF0aWMgaW50IG5zc19jY19xY2E4a19jbG9ja19lbmFibGVfYW5kX3Jlc2V0KHN0cnVjdCBkZXZpY2UgKmRldilcXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjE2OS17XFxuLS1cXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjE4Ny1cXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjE4ODpzdGF0aWMgaW50IG5zc19jY19xY2E4a19wcm9iZShzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIxODkte1xcbi0tXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIxOTItXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIxOTM6XFx0cmV0ID0gbnNzX2NjX3FjYThrX2Nsb2NrX2VuYWJsZV9hbmRfcmVzZXQoXFx1MDAyNm1kaW9kZXYtXFx1MDAzZWRldik7XFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIxOTQtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMTk2LVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMTk3OlxcdHJlZ21hcCA9IGRldm1fcmVnbWFwX2luaXQoXFx1MDAyNm1kaW9kZXYtXFx1MDAzZWRldiwgTlVMTCwgbWRpb2Rldi1cXHUwMDNlYnVzLCBuc3NfY2NfcWNhOGtfZGVzYy5jb25maWcpO1xcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMTk4LVxcdGlmIChJU19FUlIocmVnbWFwKSlcXG4tLVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMjAwLVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMjAxOlxcdHJldHVybiBxY29tX2NjX3JlYWxseV9wcm9iZShcXHUwMDI2bWRpb2Rldi1cXHUwMDNlZGV2LCBcXHUwMDI2bnNzX2NjX3FjYThrX2Rlc2MsIHJlZ21hcCk7XFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIyMDItfVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMjAzLVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMjA0OnN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG5zc19jY19xY2E4a19tYXRjaF90YWJsZVtdID0ge1xcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMjA1LVxcdHsgLmNvbXBhdGlibGUgPSBcXFwicWNvbSxxY2E4MDg0LW5zc2NjXFxcIiB9LFxcbi0tXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIyMDctfTtcXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjIwODpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBuc3NfY2NfcWNhOGtfbWF0Y2hfdGFibGUpO1xcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMjA5LVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMjEwOnN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgbnNzX2NjX3FjYThrX2RyaXZlciA9IHtcXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjIxMS1cXHQubWRpb2Rydi5kcml2ZXIgPSB7XFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIyMTI6XFx0XFx0Lm5hbWUgPSBcXFwicWNvbSxxY2E4ay1uc3NjY1xcXCIsXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIyMTM6XFx0XFx0Lm9mX21hdGNoX3RhYmxlXFx0PSBuc3NfY2NfcWNhOGtfbWF0Y2hfdGFibGUsXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIyMTQtXFx0fSxcXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjIxNTpcXHQucHJvYmUgPSBuc3NfY2NfcWNhOGtfcHJvYmUsXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIyMTYtfTtcXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjIxNy1cXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjIxODptZGlvX21vZHVsZV9kcml2ZXIobnNzX2NjX3FjYThrX2RyaXZlcik7XFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIyMTktXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL01ha2VmaWxlPTI9b2JqLSQoQ09ORklHX05FVF9EU0FfQVI5MzMxKVxcdCs9IGFyOTMzMS5vXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9NYWtlZmlsZTozOm9iai0kKENPTkZJR19ORVRfRFNBX1FDQThLKVxcdCs9IHFjYThrLm9cXG5kcml2ZXJzL25ldC9kc2EvcWNhL01ha2VmaWxlOjQ6cWNhOGsteSBcXHRcXHRcXHQrPSBxY2E4ay1jb21tb24ubyBxY2E4ay04eHh4Lm9cXG5kcml2ZXJzL25ldC9kc2EvcWNhL01ha2VmaWxlLTUtaWZkZWYgQ09ORklHX05FVF9EU0FfUUNBOEtfTEVEU19TVVBQT1JUXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9NYWtlZmlsZTo2OnFjYThrLXlcXHRcXHRcXHRcXHQrPSBxY2E4ay1sZWRzLm9cXG5kcml2ZXJzL25ldC9kc2EvcWNhL01ha2VmaWxlLTctZW5kaWZcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTIzLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjI0OiNpbmNsdWRlIFxcXCJxY2E4ay5oXFxcIlxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjI1OiNpbmNsdWRlIFxcXCJxY2E4a19sZWRzLmhcXFwiXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMjYtXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9Mjc9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzoyODpxY2E4a19zcGxpdF9hZGRyKHUzMiByZWdhZGRyLCB1MTYgKnIxLCB1MTYgKnIyLCB1MTYgKnBhZ2UpXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMjkte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9NDA9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjQxOnFjYThrX21paV93cml0ZV9sbyhzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgcGh5X2lkLCB1MzIgcmVnbnVtLCB1MzIgdmFsKVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTQyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTQ5LVxcdFxcdGRldl9lcnJfcmF0ZWxpbWl0ZWQoXFx1MDAyNmJ1cy1cXHUwMDNlZGV2LFxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjUwOlxcdFxcdFxcdFxcdCAgICBcXFwiZmFpbGVkIHRvIHdyaXRlIHFjYThrIDMyYml0IGxvIHJlZ2lzdGVyXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy01MS1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTU1PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo1NjpxY2E4a19taWlfd3JpdGVfaGkoc3RydWN0IG1paV9idXMgKmJ1cywgaW50IHBoeV9pZCwgdTMyIHJlZ251bSwgdTMyIHZhbClcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy01Ny17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy02NC1cXHRcXHRkZXZfZXJyX3JhdGVsaW1pdGVkKFxcdTAwMjZidXMtXFx1MDAzZWRldixcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo2NTpcXHRcXHRcXHRcXHQgICAgXFxcImZhaWxlZCB0byB3cml0ZSBxY2E4ayAzMmJpdCBoaSByZWdpc3RlclxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNjYtXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz03MD1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NzE6cWNhOGtfbWlpX3JlYWRfbG8oc3RydWN0IG1paV9idXMgKmJ1cywgaW50IHBoeV9pZCwgdTMyIHJlZ251bSwgdTMyICp2YWwpXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNzIte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtODMtXFx0ZGV2X2Vycl9yYXRlbGltaXRlZChcXHUwMDI2YnVzLVxcdTAwM2VkZXYsXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6ODQ6XFx0XFx0XFx0ICAgIFxcXCJmYWlsZWQgdG8gcmVhZCBxY2E4ayAzMmJpdCBsbyByZWdpc3RlclxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtODUtXFx0KnZhbCA9IDA7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz05MD1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6OTE6cWNhOGtfbWlpX3JlYWRfaGkoc3RydWN0IG1paV9idXMgKmJ1cywgaW50IHBoeV9pZCwgdTMyIHJlZ251bSwgdTMyICp2YWwpXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtOTIte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMTAzLVxcdGRldl9lcnJfcmF0ZWxpbWl0ZWQoXFx1MDAyNmJ1cy1cXHUwMDNlZGV2LFxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjEwNDpcXHRcXHRcXHQgICAgXFxcImZhaWxlZCB0byByZWFkIHFjYThrIDMyYml0IGhpIHJlZ2lzdGVyXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0xMDUtXFx0KnZhbCA9IDA7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz0xMTA9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjExMTpxY2E4a19taWlfcmVhZDMyKHN0cnVjdCBtaWlfYnVzICpidXMsIGludCBwaHlfaWQsIHUzMiByZWdudW0sIHUzMiAqdmFsKVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTExMi17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0xMTctXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MTE4OlxcdHJldCA9IHFjYThrX21paV9yZWFkX2xvKGJ1cywgcGh5X2lkLCByZWdudW0sIFxcdTAwMjZsbyk7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMTE5LVxcdGlmIChyZXQgXFx1MDAzYyAwKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMTIxLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjEyMjpcXHRyZXQgPSBxY2E4a19taWlfcmVhZF9oaShidXMsIHBoeV9pZCwgcmVnbnVtICsgMSwgXFx1MDAyNmhpKTtcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0xMjMtXFx0aWYgKHJldCBcXHUwMDNjIDApXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz0xMzI9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzoxMzM6cWNhOGtfbWlpX3dyaXRlMzIoc3RydWN0IG1paV9idXMgKmJ1cywgaW50IHBoeV9pZCwgdTMyIHJlZ251bSwgdTMyIHZhbClcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0xMzQte1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjEzNTpcXHRpZiAocWNhOGtfbWlpX3dyaXRlX2xvKGJ1cywgcGh5X2lkLCByZWdudW0sIHZhbCkgXFx1MDAzYyAwKVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTEzNi1cXHRcXHRyZXR1cm47XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMTM3LVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjEzODpcXHRxY2E4a19taWlfd3JpdGVfaGkoYnVzLCBwaHlfaWQsIHJlZ251bSArIDEsIHZhbCk7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMTM5LX1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTE0MT1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MTQyOnFjYThrX3NldF9wYWdlKHN0cnVjdCBxY2E4a19wcml2ICpwcml2LCB1MTYgcGFnZSlcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0xNDMte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMTUzLVxcdFxcdGRldl9lcnJfcmF0ZWxpbWl0ZWQoXFx1MDAyNmJ1cy1cXHUwMDNlZGV2LFxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjE1NDpcXHRcXHRcXHRcXHQgICAgXFxcImZhaWxlZCB0byBzZXQgcWNhOGsgcGFnZVxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMTU1LVxcdFxcdHJldHVybiByZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0xNjItXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MTYzOnN0YXRpYyBib29sIHFjYThrX21nbXRfZXRoX2Rpc2FibGVkKGNvbnN0IHN0cnVjdCBxY2E4a19wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTE2NC17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0xNjctXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MTY4OnN0YXRpYyB2b2lkIHFjYThrX3J3X3JlZ19hY2tfaGFuZGxlcihzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIHN0cnVjdCBza19idWZmICpza2IpXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMTY5LXtcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzoxNzA6XFx0c3RydWN0IHFjYThrX21nbXRfZXRoX2RhdGEgKm1nbXRfZXRoX2RhdGE7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MTcxOlxcdHN0cnVjdCBxY2E4a19wcml2ICpwcml2ID0gZHMtXFx1MDAzZXByaXY7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMTcyLVxcdHN0cnVjdCBxY2FfbWdtdF9ldGhoZHIgKm1nbXRfZXRoaGRyO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMjIyLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjIyMzpzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKnFjYThrX2FsbG9jX21kaW9faGVhZGVyKGVudW0gbWRpb19jbWQgY21kLCB1MzIgcmVnLCB1MzIgKnZhbCxcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0yMjQtXFx0XFx0XFx0XFx0XFx0ICAgICAgIGludCBwcmlvcml0eSwgdW5zaWduZWQgaW50IGxlbilcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTMwNi1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzozMDc6c3RhdGljIHZvaWQgcWNhOGtfbWRpb19oZWFkZXJfZmlsbF9zZXFfbnVtKHN0cnVjdCBza19idWZmICpza2IsIHUzMiBzZXFfbnVtKVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTMwOC17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0zMTYtXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MzE3OnN0YXRpYyBpbnQgcWNhOGtfcmVhZF9ldGgoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIHUzMiByZWcsIHUzMiAqdmFsLCBpbnQgbGVuKVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTMxOC17XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MzE5OlxcdHN0cnVjdCBxY2E4a19tZ210X2V0aF9kYXRhICptZ210X2V0aF9kYXRhID0gXFx1MDAyNnByaXYtXFx1MDAzZW1nbXRfZXRoX2RhdGE7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMzIwLVxcdHN0cnVjdCBza19idWZmICpza2I7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0zMjMtXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MzI0OlxcdGlmIChxY2E4a19tZ210X2V0aF9kaXNhYmxlZChwcml2KSlcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0zMjUtXFx0XFx0cmV0dXJuIC1FTlhJTztcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0zMjYtXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MzI3OlxcdHNrYiA9IHFjYThrX2FsbG9jX21kaW9faGVhZGVyKE1ESU9fUkVBRCwgcmVnLCBOVUxMLFxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTMyOC1cXHRcXHRcXHRcXHQgICAgICBRQ0E4S19FVEhFUk5FVF9NRElPX1BSSU9SSVRZLCBsZW4pO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMzQ2LVxcdG1nbXRfZXRoX2RhdGEtXFx1MDAzZXNlcSsrO1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjM0NzpcXHRxY2E4a19tZGlvX2hlYWRlcl9maWxsX3NlcV9udW0oc2tiLCBtZ210X2V0aF9kYXRhLVxcdTAwM2VzZXEpO1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTM0OC1cXHRtZ210X2V0aF9kYXRhLVxcdTAwM2VhY2sgPSBmYWxzZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTM3MS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzozNzI6c3RhdGljIGludCBxY2E4a193cml0ZV9ldGgoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIHUzMiByZWcsIHUzMiAqdmFsLCBpbnQgbGVuKVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTM3My17XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6Mzc0OlxcdHN0cnVjdCBxY2E4a19tZ210X2V0aF9kYXRhICptZ210X2V0aF9kYXRhID0gXFx1MDAyNnByaXYtXFx1MDAzZW1nbXRfZXRoX2RhdGE7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMzc1LVxcdHN0cnVjdCBza19idWZmICpza2I7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0zNzgtXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6Mzc5OlxcdGlmIChxY2E4a19tZ210X2V0aF9kaXNhYmxlZChwcml2KSlcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0zODAtXFx0XFx0cmV0dXJuIC1FTlhJTztcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0zODEtXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MzgyOlxcdHNrYiA9IHFjYThrX2FsbG9jX21kaW9faGVhZGVyKE1ESU9fV1JJVEUsIHJlZywgdmFsLFxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTM4My1cXHRcXHRcXHRcXHQgICAgICBRQ0E4S19FVEhFUk5FVF9NRElPX1BSSU9SSVRZLCBsZW4pO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNDAxLVxcdG1nbXRfZXRoX2RhdGEtXFx1MDAzZXNlcSsrO1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjQwMjpcXHRxY2E4a19tZGlvX2hlYWRlcl9maWxsX3NlcV9udW0oc2tiLCBtZ210X2V0aF9kYXRhLVxcdTAwM2VzZXEpO1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTQwMy1cXHRtZ210X2V0aF9kYXRhLVxcdTAwM2VhY2sgPSBmYWxzZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTQyMz1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NDI0OnFjYThrX3JlZ21hcF91cGRhdGVfYml0c19ldGgoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIHUzMiByZWcsIHUzMiBtYXNrLCB1MzIgd3JpdGVfdmFsKVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTQyNS17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy00MjgtXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NDI5OlxcdHJldCA9IHFjYThrX3JlYWRfZXRoKHByaXYsIHJlZywgXFx1MDAyNnZhbCwgc2l6ZW9mKHZhbCkpO1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTQzMC1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNDM1LVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjQzNjpcXHRyZXR1cm4gcWNhOGtfd3JpdGVfZXRoKHByaXYsIHJlZywgXFx1MDAyNnZhbCwgc2l6ZW9mKHZhbCkpO1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTQzNy19XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz00Mzk9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjQ0MDpxY2E4a19yZWFkX21paShzdHJ1Y3QgcWNhOGtfcHJpdiAqcHJpdiwgdWludDMyX3QgcmVnLCB1aW50MzJfdCAqdmFsKVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTQ0MS17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy00NDUtXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NDQ2OlxcdHFjYThrX3NwbGl0X2FkZHIocmVnLCBcXHUwMDI2cjEsIFxcdTAwMjZyMiwgXFx1MDAyNnBhZ2UpO1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTQ0Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTQ0OS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo0NTA6XFx0cmV0ID0gcWNhOGtfc2V0X3BhZ2UocHJpdiwgcGFnZSk7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNDUxLVxcdGlmIChyZXQgXFx1MDAzYyAwKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNDUzLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjQ1NDpcXHRyZXQgPSBxY2E4a19taWlfcmVhZDMyKGJ1cywgMHgxMCB8IHIyLCByMSwgdmFsKTtcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy00NTUtXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz00NjE9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjQ2MjpxY2E4a193cml0ZV9taWkoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIHVpbnQzMl90IHJlZywgdWludDMyX3QgdmFsKVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTQ2My17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy00NjctXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NDY4OlxcdHFjYThrX3NwbGl0X2FkZHIocmVnLCBcXHUwMDI2cjEsIFxcdTAwMjZyMiwgXFx1MDAyNnBhZ2UpO1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTQ2OS1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTQ3MS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo0NzI6XFx0cmV0ID0gcWNhOGtfc2V0X3BhZ2UocHJpdiwgcGFnZSk7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNDczLVxcdGlmIChyZXQgXFx1MDAzYyAwKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNDc1LVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjQ3NjpcXHRxY2E4a19taWlfd3JpdGUzMihidXMsIDB4MTAgfCByMiwgcjEsIHZhbCk7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNDc3LVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9NDgzPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo0ODQ6cWNhOGtfcmVnbWFwX3VwZGF0ZV9iaXRzX21paShzdHJ1Y3QgcWNhOGtfcHJpdiAqcHJpdiwgdWludDMyX3QgcmVnLFxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTQ4NS1cXHRcXHRcXHQgICAgIHVpbnQzMl90IG1hc2ssIHVpbnQzMl90IHdyaXRlX3ZhbClcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTQ5MS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo0OTI6XFx0cWNhOGtfc3BsaXRfYWRkcihyZWcsIFxcdTAwMjZyMSwgXFx1MDAyNnIyLCBcXHUwMDI2cGFnZSk7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNDkzLVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNDk1LVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjQ5NjpcXHRyZXQgPSBxY2E4a19zZXRfcGFnZShwcml2LCBwYWdlKTtcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy00OTctXFx0aWYgKHJldCBcXHUwMDNjIDApXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy00OTktXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NTAwOlxcdHJldCA9IHFjYThrX21paV9yZWFkMzIoYnVzLCAweDEwIHwgcjIsIHIxLCBcXHUwMDI2dmFsKTtcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy01MDEtXFx0aWYgKHJldCBcXHUwMDNjIDApXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy01MDUtXFx0dmFsIHw9IHdyaXRlX3ZhbDtcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo1MDY6XFx0cWNhOGtfbWlpX3dyaXRlMzIoYnVzLCAweDEwIHwgcjIsIHIxLCB2YWwpO1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTUwNy1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTUxND1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NTE1OnFjYThrX2J1bGtfcmVhZCh2b2lkICpjdHgsIGNvbnN0IHZvaWQgKnJlZ19idWYsIHNpemVfdCByZWdfbGVuLFxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTUxNi1cXHRcXHR2b2lkICp2YWxfYnVmLCBzaXplX3QgdmFsX2xlbilcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTUxOC1cXHRpbnQgaSwgY291bnQgPSB2YWxfbGVuIC8gc2l6ZW9mKHUzMiksIHJldDtcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo1MTk6XFx0c3RydWN0IHFjYThrX3ByaXYgKnByaXYgPSBjdHg7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNTIwLVxcdHUzMiByZWcgPSAqKHUxNiAqKXJlZ19idWY7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy01MjItXFx0aWYgKHByaXYtXFx1MDAzZW1nbXRfY29uZHVpdCBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjUyMzpcXHQgICAgIXFjYThrX3JlYWRfZXRoKHByaXYsIHJlZywgdmFsX2J1ZiwgdmFsX2xlbikpXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNTI0LVxcdFxcdHJldHVybiAwO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNTI3LVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBjb3VudDsgaSsrLCByZWcgKz0gc2l6ZW9mKHUzMikpIHtcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo1Mjg6XFx0XFx0cmV0ID0gcWNhOGtfcmVhZF9taWkocHJpdiwgcmVnLCB2YWxfYnVmICsgaSk7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNTI5LVxcdFxcdGlmIChyZXQgXFx1MDAzYyAwKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9NTM2PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo1Mzc6cWNhOGtfYnVsa19nYXRoZXJfd3JpdGUodm9pZCAqY3R4LCBjb25zdCB2b2lkICpyZWdfYnVmLCBzaXplX3QgcmVnX2xlbixcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy01MzgtXFx0XFx0XFx0Y29uc3Qgdm9pZCAqdmFsX2J1Ziwgc2l6ZV90IHZhbF9sZW4pXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy01NDAtXFx0aW50IGksIGNvdW50ID0gdmFsX2xlbiAvIHNpemVvZih1MzIpLCByZXQ7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NTQxOlxcdHN0cnVjdCBxY2E4a19wcml2ICpwcml2ID0gY3R4O1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTU0Mi1cXHR1MzIgcmVnID0gKih1MTYgKilyZWdfYnVmO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNTQ1LVxcdGlmIChwcml2LVxcdTAwM2VtZ210X2NvbmR1aXQgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo1NDY6XFx0ICAgICFxY2E4a193cml0ZV9ldGgocHJpdiwgcmVnLCB2YWwsIHZhbF9sZW4pKVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTU0Ny1cXHRcXHRyZXR1cm4gMDtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTU1Mi1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgY291bnQ7IGkrKywgcmVnICs9IHNpemVvZih1MzIpLCB2YWwrKykge1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjU1MzpcXHRcXHRyZXQgPSBxY2E4a193cml0ZV9taWkocHJpdiwgcmVnLCAqdmFsKTtcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy01NTQtXFx0XFx0aWYgKHJldCBcXHUwMDNjIDApXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz01NjE9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjU2MjpxY2E4a19idWxrX3dyaXRlKHZvaWQgKmN0eCwgY29uc3Qgdm9pZCAqZGF0YSwgc2l6ZV90IGJ5dGVzKVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTU2My17XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NTY0OlxcdHJldHVybiBxY2E4a19idWxrX2dhdGhlcl93cml0ZShjdHgsIGRhdGEsIHNpemVvZih1MTYpLCBkYXRhICsgc2l6ZW9mKHUxNiksXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNTY1LVxcdFxcdFxcdFxcdCAgICAgICBieXRlcyAtIHNpemVvZih1MTYpKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTU2OD1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NTY5OnFjYThrX3JlZ21hcF91cGRhdGVfYml0cyh2b2lkICpjdHgsIHVpbnQzMl90IHJlZywgdWludDMyX3QgbWFzaywgdWludDMyX3Qgd3JpdGVfdmFsKVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTU3MC17XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NTcxOlxcdHN0cnVjdCBxY2E4a19wcml2ICpwcml2ID0gY3R4O1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTU3Mi1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo1NzM6XFx0aWYgKCFxY2E4a19yZWdtYXBfdXBkYXRlX2JpdHNfZXRoKHByaXYsIHJlZywgbWFzaywgd3JpdGVfdmFsKSlcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy01NzQtXFx0XFx0cmV0dXJuIDA7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNTc1LVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjU3NjpcXHRyZXR1cm4gcWNhOGtfcmVnbWFwX3VwZGF0ZV9iaXRzX21paShwcml2LCByZWcsIG1hc2ssIHdyaXRlX3ZhbCk7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNTc3LX1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy01NzgtXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NTc5OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcmVnbWFwX2NvbmZpZyBxY2E4a19yZWdtYXBfY29uZmlnID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTU4MC1cXHQucmVnX2JpdHMgPSAxNixcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTU4My1cXHQubWF4X3JlZ2lzdGVyID0gMHgxNmFjLCAvKiBlbmQgTUlCIC0gUG9ydDYgcmFuZ2UgKi9cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo1ODQ6XFx0LnJlYWQgPSBxY2E4a19idWxrX3JlYWQsXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NTg1OlxcdC53cml0ZSA9IHFjYThrX2J1bGtfd3JpdGUsXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NTg2OlxcdC5yZWdfdXBkYXRlX2JpdHMgPSBxY2E4a19yZWdtYXBfdXBkYXRlX2JpdHMsXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NTg3OlxcdC5yZF90YWJsZSA9IFxcdTAwMjZxY2E4a19yZWFkYWJsZV90YWJsZSxcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo1ODg6XFx0LmRpc2FibGVfbG9ja2luZyA9IHRydWUsIC8qIExvY2tpbmcgaXMgaGFuZGxlZCBieSBxY2E4ayByZWFkL3dyaXRlICovXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNTg5LVxcdC5jYWNoZV90eXBlID0gUkVHQ0FDSEVfTk9ORSwgLyogRXhwbGljaXRseSBkaXNhYmxlIENBQ0hFICovXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz01OTc9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjU5ODpxY2E4a19waHlfZXRoX2J1c3lfd2FpdChzdHJ1Y3QgcWNhOGtfbWdtdF9ldGhfZGF0YSAqbWdtdF9ldGhfZGF0YSxcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy01OTktXFx0XFx0XFx0c3RydWN0IHNrX2J1ZmYgKnJlYWRfc2tiLCB1MzIgKnZhbClcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTYxMS1cXHRtZ210X2V0aF9kYXRhLVxcdTAwM2VzZXErKztcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo2MTI6XFx0cWNhOGtfbWRpb19oZWFkZXJfZmlsbF9zZXFfbnVtKHNrYiwgbWdtdF9ldGhfZGF0YS1cXHUwMDNlc2VxKTtcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy02MTMtXFx0bWdtdF9ldGhfZGF0YS1cXHUwMDNlYWNrID0gZmFsc2U7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz02MzM9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjYzNDpxY2E4a19waHlfZXRoX2NvbW1hbmQoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIGJvb2wgcmVhZCwgaW50IHBoeSxcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy02MzUtXFx0XFx0ICAgICAgaW50IHJlZ251bSwgdTE2IGRhdGEpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy02MzctXFx0c3RydWN0IHNrX2J1ZmYgKndyaXRlX3NrYiwgKmNsZWFyX3NrYiwgKnJlYWRfc2tiO1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjYzODpcXHRzdHJ1Y3QgcWNhOGtfbWdtdF9ldGhfZGF0YSAqbWdtdF9ldGhfZGF0YTtcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy02MzktXFx0dTMyIHdyaXRlX3ZhbCwgY2xlYXJfdmFsID0gMCwgdmFsO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNjQzLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjY0NDpcXHRpZiAocWNhOGtfbWdtdF9ldGhfZGlzYWJsZWQocHJpdikpXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNjQ1LVxcdFxcdHJldHVybiAtRU5YSU87XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy02NjMtXFx0LyogUHJlYWxsb2MgYWxsIHRoZSBuZWVkZWQgc2tiIGJlZm9yZSB0aGUgbG9jayAqL1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjY2NDpcXHR3cml0ZV9za2IgPSBxY2E4a19hbGxvY19tZGlvX2hlYWRlcihNRElPX1dSSVRFLCBRQ0E4S19NRElPX01BU1RFUl9DVFJMLCBcXHUwMDI2d3JpdGVfdmFsLFxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTY2NS1cXHRcXHRcXHRcXHRcXHQgICAgUUNBOEtfRVRIRVJORVRfUEhZX1BSSU9SSVRZLCBzaXplb2Yod3JpdGVfdmFsKSk7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy02NjgtXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NjY5OlxcdGNsZWFyX3NrYiA9IHFjYThrX2FsbG9jX21kaW9faGVhZGVyKE1ESU9fV1JJVEUsIFFDQThLX01ESU9fTUFTVEVSX0NUUkwsIFxcdTAwMjZjbGVhcl92YWwsXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNjcwLVxcdFxcdFxcdFxcdFxcdCAgICBRQ0E4S19FVEhFUk5FVF9QSFlfUFJJT1JJVFksIHNpemVvZihjbGVhcl92YWwpKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTY3NS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo2NzY6XFx0cmVhZF9za2IgPSBxY2E4a19hbGxvY19tZGlvX2hlYWRlcihNRElPX1JFQUQsIFFDQThLX01ESU9fTUFTVEVSX0NUUkwsIFxcdTAwMjZjbGVhcl92YWwsXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNjc3LVxcdFxcdFxcdFxcdFxcdCAgIFFDQThLX0VUSEVSTkVUX1BIWV9QUklPUklUWSwgc2l6ZW9mKGNsZWFyX3ZhbCkpO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNzE2LVxcdG1nbXRfZXRoX2RhdGEtXFx1MDAzZXNlcSsrO1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjcxNzpcXHRxY2E4a19tZGlvX2hlYWRlcl9maWxsX3NlcV9udW0od3JpdGVfc2tiLCBtZ210X2V0aF9kYXRhLVxcdTAwM2VzZXEpO1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTcxOC1cXHRtZ210X2V0aF9kYXRhLVxcdTAwM2VhY2sgPSBmYWxzZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTczOC1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo3Mzk6XFx0cmV0ID0gcmVhZF9wb2xsX3RpbWVvdXQocWNhOGtfcGh5X2V0aF9idXN5X3dhaXQsIHJldDEsXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNzQwLVxcdFxcdFxcdFxcdCEodmFsIFxcdTAwMjYgUUNBOEtfTURJT19NQVNURVJfQlVTWSksIDAsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy03NTMtXFx0XFx0bWdtdF9ldGhfZGF0YS1cXHUwMDNlc2VxKys7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NzU0OlxcdFxcdHFjYThrX21kaW9faGVhZGVyX2ZpbGxfc2VxX251bShyZWFkX3NrYiwgbWdtdF9ldGhfZGF0YS1cXHUwMDNlc2VxKTtcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy03NTUtXFx0XFx0bWdtdF9ldGhfZGF0YS1cXHUwMDNlYWNrID0gZmFsc2U7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy03ODItXFx0bWdtdF9ldGhfZGF0YS1cXHUwMDNlc2VxKys7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NzgzOlxcdHFjYThrX21kaW9faGVhZGVyX2ZpbGxfc2VxX251bShjbGVhcl9za2IsIG1nbXRfZXRoX2RhdGEtXFx1MDAzZXNlcSk7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNzg0LVxcdG1nbXRfZXRoX2RhdGEtXFx1MDAzZWFjayA9IGZhbHNlO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9ODA3PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo4MDg6cWNhOGtfbWRpb19idXN5X3dhaXQoc3RydWN0IG1paV9idXMgKmJ1cywgdTMyIHJlZywgdTMyIG1hc2spXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtODA5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTgxMy1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo4MTQ6XFx0cWNhOGtfc3BsaXRfYWRkcihyZWcsIFxcdTAwMjZyMSwgXFx1MDAyNnIyLCBcXHUwMDI2cGFnZSk7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtODE1LVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjgxNjpcXHRyZXQgPSByZWFkX3BvbGxfdGltZW91dChxY2E4a19taWlfcmVhZF9oaSwgcmV0MSwgISh2YWwgXFx1MDAyNiBtYXNrKSwgMCxcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy04MTctXFx0XFx0XFx0XFx0UUNBOEtfQlVTWV9XQUlUX1RJTUVPVVQgKiBVU0VDX1BFUl9NU0VDLCBmYWxzZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTgxOS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo4MjA6XFx0LyogQ2hlY2sgaWYgcWNhOGtfcmVhZCBoYXMgZmFpbGVkIGZvciBhIGRpZmZlcmVudCByZWFzb25cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy04MjEtXFx0ICogYmVmb3JlIHJldHVybnRpbmcgLUVUSU1FRE9VVFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9ODI5PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo4MzA6cWNhOGtfbWRpb193cml0ZShzdHJ1Y3QgcWNhOGtfcHJpdiAqcHJpdiwgaW50IHBoeSwgaW50IHJlZ251bSwgdTE2IGRhdGEpXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtODMxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTg0NC1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo4NDU6XFx0cWNhOGtfc3BsaXRfYWRkcihRQ0E4S19NRElPX01BU1RFUl9DVFJMLCBcXHUwMDI2cjEsIFxcdTAwMjZyMiwgXFx1MDAyNnBhZ2UpO1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTg0Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTg0OC1cXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTBUMDc6MTc6MzIuMzU3MTEyMzc2WiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjc5ODk4OTUyMDgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBRQ0E4SyBFdGhlcm5ldCBEcml2ZXIgTW9kaWZpY2F0aW9ucyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGltbWVkaWF0ZWx5LCBteSBmb2N1cyBsYW5kcyBvbiBgZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmNgLiBUaGF0J3MgdGhlIGRyaXZlciBmaWxlIGl0c2VsZiwgc28gaXQncyB0aGUgY29yZSBvZiB0aGUgY2hhbmdlcy4gVGhlIGtleSBmdW5jdGlvbnMgdGhhdCBoYXZlIGJlZW4gdG91Y2hlZCBhcmUgYHFjYThrX3JlYWRfZXRoYCwgYHFjYThrX3dyaXRlX2V0aGAsIGFuZCBgcWNhOGtfcGh5X2V0aF9jb21tYW5kYC4gS25vd2luZyB0aGVzZSBhcmUgbW9kaWZpZWQgdGVsbHMgbWUgd2UncmUgbGlrZWx5IGRlYWxpbmcgd2l0aCBzb21lIGZ1bmRhbWVudGFsIEV0aGVybmV0IGNvbW11bmljYXRpb24gb3BlcmF0aW9ucywgcHJvYmFibHkgcmVhZGluZyBhbmQgd3JpdGluZyB0byB0aGUgUEhZLCBwZXJoYXBzIGlzc3VpbmcgY29tbWFuZHMuXG5cbk5vdywgd2hlcmUgYXJlICp0aGVzZSogZnVuY3Rpb25zIGNhbGxlZCBmcm9tPyBBaCwgeWVzLCBgcWNhOGtfYnVsa19yZWFkYCwgYHFjYThrX2J1bGtfZ2F0aGVyX3dyaXRlYCwgYHFjYThrX3BoeV9ldGhfYnVzeV93YWl0YCwgYW5kIHNvIG9uLiBUaGVzZSBhcmUgaGludGluZyBhdCBvcHRpbWl6YXRpb25zIG9yIHBlcmhhcHMgaGFuZGxpbmcgbGFyZ2VyIGRhdGEgdHJhbnNmZXJzIG1vcmUgZWZmaWNpZW50bHkuIEFuZCBJIHJlbWVtYmVyIG5vdyDigJMgdGhlc2UgZnVuY3Rpb25zIGFyZSBhbGwgcGFydCBvZiB0aGUgKnJlZ21hcCogb3BlcmF0aW9ucy4gUmlnaHQsIHRoaXMgaXMgaG93IHdlJ3JlIGFic3RyYWN0aW5nIHJlZ2lzdGVyIGFjY2VzcyB0byB0aGUgaGFyZHdhcmUuIFNwZWNpZmljYWxseSwgdGhlc2UgZnVuY3Rpb25zIGZpdCB3aXRoaW4gdGhlIGBxY2E4a19yZWdtYXBfY29uZmlnYCBjb25maWd1cmF0aW9uLlxuXG5Ob3cgdGhlIHF1ZXN0aW9uIGlzLCBob3cgYW5kIHdoZXJlIGlzIHRoaXMgcmVnbWFwIGluaXRpYWxpemVkPyBJdCdzIGVpdGhlciBpbiBgcWNhOGtfc2V0dXBgIG9yLCBobW0sIG1heWJlIGBxY2E4a19zd19wcm9iZWA/IE15IGluaXRpYWwgaW5zdGluY3QgaXMgdG8gZ28gd2l0aCBgcWNhOGtfc3dfcHJvYmVgLiBMZXQncyBqdXN0IHF1aWNrbHkgY29uZmlybSB0aGF0Li4uIEknbGwgY2hlY2sgYHFjYThrX3N3X3Byb2JlYC5cblxuXG4iLCJJbnB1dFRva2VucyI6MzQ0MDYsIk91dHB1dFRva2VucyI6MjIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNjYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTBUMDc6MTc6NDAuMzQ3MDEwNDA1WiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzg3NDQ0OTU0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInFjYThrX3N3X3Byb2JlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTIwNzI9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjIwNzM6cWNhOGtfc3dfcHJvYmUoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTIwNzQte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9MjIzNT1zdGF0aWMgc3RydWN0IG1kaW9fZHJpdmVyIHFjYThrbWRpb19kcml2ZXIgPSB7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MjIzNjpcXHQucHJvYmUgID0gcWNhOGtfc3dfcHJvYmUsXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMjIzNy1cXHQucmVtb3ZlID0gcWNhOGtfc3dfcmVtb3ZlLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMFQwNzoxNzo0MS43MzQ0NjAwMDlaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzA2NjIyNzk1MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNRElPIERyaXZlciBJbnN0YW50aWF0aW9uOiBBIFN5emthbGxlciBDaGFsbGVuZ2UqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIE1ESU8gZHJpdmVyIGFuZCB3b25kZXJpbmcgaG93IEkgY2FuIHBva2UgYXQgaXQgd2l0aCBzeXprYWxsZXIuIFRoZSBpbW1lZGlhdGUgcHJvYmxlbSBpcyB0aGF0IHN5emthbGxlciBkb2Vzbid0IHNlZW0gdG8gaGF2ZSBhICpnZW5lcmljKiBtZXRob2QgZm9yIGluc3RhbnRpYXRpbmcgTURJTyBkZXZpY2VzLiBVbmxlc3MgdGhlcmUncyBzb21lIHNwZWNpYWwgcHNldWRvLXN5c2NhbGwgb3IgbmV0bGluayBpbnRlcmZhY2UsIEknbSBraW5kIG9mIHN0dWNrLiBJJ20gYXdhcmUgb2YgdGhlIGV4aXN0aW5nIHRvb2xzIGxpa2UgYHN5el9nZW5ldGxpbmtfZ2V0X2ZhbWlseWAgYW5kIGBzeXpfb3Blbl9kZXZgLCBidXQgdGhleSBkb24ndCBqdW1wIG91dCBhcyBhIGRpcmVjdCBzb2x1dGlvbiBoZXJlLlxuXG5UaGUgb2J2aW91cyB3YXkgTURJTyBkZXZpY2VzIGFyZSAqdXN1YWxseSogYnJvdWdodCB0byBsaWZlIGlzIHRocm91Z2ggdGhlIGRldmljZSB0cmVlLCBhbmQgdW5mb3J0dW5hdGVseSwgSSBjYW4ndCBpbmplY3QgZGV2aWNlIHRyZWUgb3ZlcmxheXMgdXNpbmcgc3l6a2FsbGVyLiBUaGF0J3MgYSBkZWFkIGVuZC5cblxuT2theSwgc3lzZnMgdGhlbj8gQ2FuIEkgbGV2ZXJhZ2Ugc3lzZnMgdG8gaW5zdGFudGlhdGUgdGhlc2UgZGV2aWNlcz8gTGV0IG1lIHRoaW5rLi4uIENvdWxkIEkgZG8gc29tZXRoaW5nIGxpa2UgYGVjaG8gXCJxY2E4a1wiIFx1MDAzZSAvc3lzL2J1cy9tZGlvX2J1cy9kZXZpY2VzLy4uLmA/IE5vLCB3YWl0IGEgbWludXRlLCB0aGUgTURJTyBidXMgZG9lc24ndCBzZWVtIHRvIGhhdmUgdGhhdCBjb252ZW5pZW50IGBuZXdfZGV2aWNlYCBzeXNmcyBhdHRyaWJ1dGUgbGlrZSBJMkMgb3IgU1BJLiBUaGF0J3MgZnJ1c3RyYXRpbmcuXG5cbkxldCdzIHN0ZXAgYmFjaywgYW5kIHJlLXRoaW5rIHRoaXMuIFN5emthbGxlciBoYXMgdGhlc2UgdmVyeSBzcGVjaWZpYyBzeXNjYWxscyBmb3Igb3RoZXIgc3Vic3lzdGVtcywgdGhpbmdzIGxpa2UgYHN5el91c2JfY29ubmVjdGAgZm9yIFVTQiBhbmQgYHN5el84MDIxMV9pbmplY3RfZnJhbWVgIGZvciBtYWM4MDIxMS4gRG9lcyBpdCBoYXZlIGFueXRoaW5nICphdCBhbGwqIHNwZWNpZmljIHRvIE1ESU8/IEkgbmVlZCB0byBjaGVjay4gVGhpcyBmZWVscyBsaWtlIGl0IG1pZ2h0IGJlIHRoZSBvbmx5IHJvdXRlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNTE3NSwiT3V0cHV0VG9rZW5zIjoyNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI0MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xMFQwNzoxNzo0OC44MDA2OTEzMDJaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY0NTkxMzc1LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzeXpfXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcInN5cy9saW51eC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTEwVDA3OjE3OjQ4Ljg2NTI5MTU2N1oiLCJTZXEiOjE5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMTYxNjU2MzcxOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFNjb3BlIG9mIE15IEludmVzdGlnYXRpb24qKlxuXG5Pa2F5LCBzbyB0aGUgaW5zdHJ1Y3Rpb25zIGFyZSBwcmV0dHkgY2xlYXI6IHRoaXMgdG9vbCAqY2Fubm90KiBoYW5kbGUgc2VhcmNoaW5nIHdpdGhpbiBzeXprYWxsZXIncyBgc3lzLypgIGRlc2NyaXB0aW9ucyBvciBleHByZXNzaW9ucyB1c2luZyBgc3l6X2AsIHdoaWNoIG1ha2VzIHNlbnNlIGJlY2F1c2UgdGhvc2UgYXJlIHBzZXVkby1zeXNjYWxscyBhbmQgYXJlbid0IGRpcmVjdGx5IHByZXNlbnQgaW4gdGhlIExpbnV4IGtlcm5lbC4gVGhleSBleHBsaWNpdGx5IHRlbGwgbWUgdG8gdXNlIGByZWFkLXN5ei1zcGVjYCBhbmQgYHN5ei1ncmVwcGVyYCBmb3IgdGhhdCwgYnV0IGhvbGQgb24uLi4gSSBkb24ndCBzZWUgdGhvc2UgdG9vbHMgbGlzdGVkLiBNeSBvcHRpb25zIGhlcmUgYXJlIGxpbWl0ZWQgdG8gYGdyZXBwZXJgLCBgY29kZXNlYXJjaC1kaXItaW5kZXhgLCBgcmVhZC1maWxlYCwgYW5kIGBzZXQtcmVzdWx0c2AuIFNvLCBJJ20gZWZmZWN0aXZlbHkgYmxvY2tlZCBmcm9tIGxvb2tpbmcgYXQgdGhvc2Ugc3l6a2FsbGVyIGNvbnN0cnVjdHMgZGlyZWN0bHkuXG5cbkJ1dCwgdGhhdCdzIGFscmlnaHQsIEkgY2FuIHdvcmsgYXJvdW5kIHRoaXMgYmFzZWQgb24gbXkga25vd2xlZGdlLiBNRElPIGRldmljZXMsIGluIGdlbmVyYWwsIGFyZW4ndCBzb21ldGhpbmcgeW91IGluc3RhbnRpYXRlIGZyb20gdXNlci1zcGFjZSBpbiBhIHN0cmFpZ2h0Zm9yd2FyZCBtYW5uZXIuIFRoZXJlJ3Mgbm8gc3RhbmRhcmQgYHN5el9tZGlvX2Nvbm5lY3RgIGVxdWl2YWxlbnQgb3IgYW55dGhpbmcgbGlrZSB0aGF0IHRoYXQgSSdtIGF3YXJlIG9mLiBBbmQsIGxvb2tpbmcgYXQgdGhlIGNvbnRleHQsIHRoaXMgaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBzd2l0Y2ggZHJpdmVyIOKAkyBhIFF1YWxjb21tIEF0aGVyb3MgUUNBOEssIHNwZWNpZmljYWxseS5cblxuVHlwaWNhbGx5LCBoYXJkd2FyZS1zcGVjaWZpYyBuZXR3b3JrIHN3aXRjaCBkcml2ZXJzLCBlc3BlY2lhbGx5IERTQSBkcml2ZXJzLCBhcmUgY29tcGxldGVseSB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIHVubGVzcyB5b3UndmUgZ290ICp2ZXJ5KiBzcGVjaWZpYyBoYXJkd2FyZSBlbXVsYXRpb24gZ29pbmcgb24uIEFuZCBRRU1VIGNlcnRhaW5seSBkb2Vzbid0IGVtdWxhdGUgUUNBOEsgc3dpdGNoZXMuIFRoZXJlZm9yZSwgY29uc2lkZXJpbmcgdGhlIGxpbWl0YXRpb25zIG9mIHdoYXQgSSAqY2FuKiB1c2UsIHRoZSBjaGFuY2VzIG9mIHJlYWNoaW5nIHRoZXNlIGNvZGUgcGF0aHMgaW4gZW52aXJvbm1lbnRzIGxpa2UgR29vZ2xlIENvbXB1dGUgRW5naW5lIG9yIFFFTVUgYXJlIHNsaW0gdG8gbm9uZS4gSXQncyBlc3NlbnRpYWxseSBpbXBvc3NpYmxlLCBhcyB0aGUgY29kZSByZWxpZXMgb24gaW50ZXJhY3Rpbmcgd2l0aCB0aGUgcGh5c2ljYWwgaGFyZHdhcmUuXG5cbkp1c3QgdG8gYmUgdGhvcm91Z2gsIEkgc2hvdWxkIGRvdWJsZSBjaGVjayB0byBzZWUgaWYgdGhlcmUncyBzb21lIGtpbmQgb2YgZHVtbXkgTURJTyBidXMgb3Igc29tZXRoaW5nIHNpbWlsYXIgd2hpY2ggbWF5IHByb2JlIHRoaXMuIEhvd2V2ZXIsIGV2ZW4gaWYgdGhlcmUgaXMsIHRoZSBkcml2ZXIncyBgcWNhOGtfc3dfcHJvYmVgIGZ1bmN0aW9uIHJlYWRzIGhhcmR3YXJlIHJlZ2lzdGVycyB0byBpZGVudGlmeSB0aGUgY2hpcCwgYW5kIHRoYXQgd2lsbCBiZSBpbXBvc3NpYmxlIHRvIGRvIHdpdGggYSBkdW1teSBpbXBsZW1lbnRhdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MzU4MDYsIk91dHB1dFRva2VucyI6MjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMjksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTBUMDc6MTg6MDAuNDgxODU3NzM2WiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDMwNTU3ODExLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInFjYThrX3JlYWRcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jPTIwNzQ9c3RhdGljIGludCBxY2E4a19yZWdtYXBfcmVhZCh2b2lkICpjb250ZXh0LCB1bnNpZ25lZCBpbnQgcmVnYWRkciwgdW5zaWduZWQgaW50ICp2YWwpXFxuLS1cXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjA4NS1cXHRpZiAocmV0IFxcdTAwM2MgMClcXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjA4NjpcXHRcXHRnb3RvIHFjYThrX3JlYWRfZXhpdDtcXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjA4Ny1cXG4tLVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMDg5LVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMDkwOnFjYThrX3JlYWRfZXhpdDpcXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjA5MS1cXHRtdXRleF91bmxvY2soXFx1MDAyNmJ1cy1cXHUwMDNlbWRpb19sb2NrKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTMwNz1zdGF0aWMgdm9pZCBxY2E4a19tZGlvX2hlYWRlcl9maWxsX3NlcV9udW0oc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyIHNlcV9udW0pXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0zMTYtXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MzE3OnN0YXRpYyBpbnQgcWNhOGtfcmVhZF9ldGgoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIHUzMiByZWcsIHUzMiAqdmFsLCBpbnQgbGVuKVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTMxOC17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz00MjQ9cWNhOGtfcmVnbWFwX3VwZGF0ZV9iaXRzX2V0aChzdHJ1Y3QgcWNhOGtfcHJpdiAqcHJpdiwgdTMyIHJlZywgdTMyIG1hc2ssIHUzMiB3cml0ZV92YWwpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy00MjgtXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NDI5OlxcdHJldCA9IHFjYThrX3JlYWRfZXRoKHByaXYsIHJlZywgXFx1MDAyNnZhbCwgc2l6ZW9mKHZhbCkpO1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTQzMC1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9NDM5PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo0NDA6cWNhOGtfcmVhZF9taWkoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIHVpbnQzMl90IHJlZywgdWludDMyX3QgKnZhbClcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy00NDEte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9NTE1PXFjYThrX2J1bGtfcmVhZCh2b2lkICpjdHgsIGNvbnN0IHZvaWQgKnJlZ19idWYsIHNpemVfdCByZWdfbGVuLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNTIyLVxcdGlmIChwcml2LVxcdTAwM2VtZ210X2NvbmR1aXQgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo1MjM6XFx0ICAgICFxY2E4a19yZWFkX2V0aChwcml2LCByZWcsIHZhbF9idWYsIHZhbF9sZW4pKVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTUyNC1cXHRcXHRyZXR1cm4gMDtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTUyNy1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgY291bnQ7IGkrKywgcmVnICs9IHNpemVvZih1MzIpKSB7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NTI4OlxcdFxcdHJldCA9IHFjYThrX3JlYWRfbWlpKHByaXYsIHJlZywgdmFsX2J1ZiArIGkpO1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTUyOS1cXHRcXHRpZiAocmV0IFxcdTAwM2MgMClcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTU3OT1zdGF0aWMgY29uc3Qgc3RydWN0IHJlZ21hcF9jb25maWcgcWNhOGtfcmVnbWFwX2NvbmZpZyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTU4Ni1cXHQucmVnX3VwZGF0ZV9iaXRzID0gcWNhOGtfcmVnbWFwX3VwZGF0ZV9iaXRzLFxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjU4NzpcXHQucmRfdGFibGUgPSBcXHUwMDI2cWNhOGtfcmVhZGFibGVfdGFibGUsXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNTg4LVxcdC5kaXNhYmxlX2xvY2tpbmcgPSB0cnVlLCAvKiBMb2NraW5nIGlzIGhhbmRsZWQgYnkgcWNhOGsgcmVhZC93cml0ZSAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9ODA4PXFjYThrX21kaW9fYnVzeV93YWl0KHN0cnVjdCBtaWlfYnVzICpidXMsIHUzMiByZWcsIHUzMiBtYXNrKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtODE5LVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjgyMDpcXHQvKiBDaGVjayBpZiBxY2E4a19yZWFkIGhhcyBmYWlsZWQgZm9yIGEgZGlmZmVyZW50IHJlYXNvblxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTgyMS1cXHQgKiBiZWZvcmUgcmV0dXJudGluZyAtRVRJTUVET1VUXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz0xNTA4PXN0YXRpYyB2b2lkIHFjYThrX3Bjc19nZXRfc3RhdGUoc3RydWN0IHBoeWxpbmtfcGNzICpwY3MsIHVuc2lnbmVkIGludCBuZWdfbW9kZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTE1MTUtXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MTUxNjpcXHRyZXQgPSBxY2E4a19yZWFkKHByaXYsIFFDQThLX1JFR19QT1JUX1NUQVRVUyhwb3J0KSwgXFx1MDAyNnJlZyk7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMTUxNy1cXHRpZiAocmV0IFxcdTAwM2MgMCkge1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9MTU0OD1zdGF0aWMgaW50IHFjYThrX3Bjc19jb25maWcoc3RydWN0IHBoeWxpbmtfcGNzICpwY3MsIHVuc2lnbmVkIGludCBuZWdfbW9kZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTE1ODItXFx0LyogQ29uZmlndXJlIHRoZSBTR01JSSBwYXJhbWV0ZXJzICovXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MTU4MzpcXHRyZXQgPSBxY2E4a19yZWFkKHByaXYsIFFDQThLX1JFR19TR01JSV9DVFJMLCBcXHUwMDI2dmFsKTtcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0xNTg0LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz0yMDczPXFjYThrX3N3X3Byb2JlKHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2RldilcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTIxMTItXFx0LyogQ2hlY2sgdGhlIGRldGVjdGVkIHN3aXRjaCBpZCAqL1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjIxMTM6XFx0cmV0ID0gcWNhOGtfcmVhZF9zd2l0Y2hfaWQocHJpdik7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMjExNC1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYz0yMj1jb25zdCBzdHJ1Y3QgcWNhOGtfbWliX2Rlc2MgYXI4MzI3X21pYltdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYy02NS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jOjY2OmludCBxY2E4a19yZWFkKHN0cnVjdCBxY2E4a19wcml2ICpwcml2LCB1MzIgcmVnLCB1MzIgKnZhbClcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jLTY3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmM9NzY9aW50IHFjYThrX3JtdyhzdHJ1Y3QgcWNhOGtfcHJpdiAqcHJpdiwgdTMyIHJlZywgdTMyIG1hc2ssIHUzMiB3cml0ZV92YWwpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jLTgwLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmM6ODE6c3RhdGljIGNvbnN0IHN0cnVjdCByZWdtYXBfcmFuZ2UgcWNhOGtfcmVhZGFibGVfcmFuZ2VzW10gPSB7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYy04Mi1cXHRyZWdtYXBfcmVnX3JhbmdlKDB4MDAwMCwgMHgwMGU0KSwgLyogR2xvYmFsIGNvbnRyb2wgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmMtOTgtXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYzo5OTpjb25zdCBzdHJ1Y3QgcmVnbWFwX2FjY2Vzc190YWJsZSBxY2E4a19yZWFkYWJsZV90YWJsZSA9IHtcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jOjEwMDpcXHQueWVzX3JhbmdlcyA9IHFjYThrX3JlYWRhYmxlX3JhbmdlcyxcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jOjEwMTpcXHQubl95ZXNfcmFuZ2VzID0gQVJSQVlfU0laRShxY2E4a19yZWFkYWJsZV9yYW5nZXMpLFxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmMtMTAyLX07XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jPTE2ND1zdGF0aWMgaW50IHFjYThrX2ZkYl9hY2Nlc3Moc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIGVudW0gcWNhOGtfZmRiX2NtZCBjbWQsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jLTE4OS1cXHRpZiAoY21kID09IFFDQThLX0ZEQl9MT0FEKSB7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYzoxOTA6XFx0XFx0cmV0ID0gcWNhOGtfcmVhZChwcml2LCBRQ0E4S19SRUdfQVRVX0ZVTkMsIFxcdTAwMjZyZWcpO1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmMtMTkxLVxcdFxcdGlmIChyZXQgXFx1MDAzYyAwKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYz0zMjU9c3RhdGljIGludCBxY2E4a192bGFuX2FjY2VzcyhzdHJ1Y3QgcWNhOGtfcHJpdiAqcHJpdixcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmMtMzQ3LVxcdGlmIChjbWQgPT0gUUNBOEtfVkxBTl9MT0FEKSB7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYzozNDg6XFx0XFx0cmV0ID0gcWNhOGtfcmVhZChwcml2LCBRQ0E4S19SRUdfVlRVX0ZVTkMxLCBcXHUwMDI2cmVnKTtcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jLTM0OS1cXHRcXHRpZiAocmV0IFxcdTAwM2MgMClcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmM9MzU4PXN0YXRpYyBpbnQgcWNhOGtfdmxhbl9hZGQoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIHU4IHBvcnQsIHUxNiB2aWQsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jLTM3NC1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jOjM3NTpcXHRyZXQgPSBxY2E4a19yZWFkKHByaXYsIFFDQThLX1JFR19WVFVfRlVOQzAsIFxcdTAwMjZyZWcpO1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmMtMzc2LVxcdGlmIChyZXQgXFx1MDAzYyAwKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYz0zOTY9c3RhdGljIGludCBxY2E4a192bGFuX2RlbChzdHJ1Y3QgcWNhOGtfcHJpdiAqcHJpdiwgdTggcG9ydCwgdTE2IHZpZClcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmMtNDA2LVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmM6NDA3OlxcdHJldCA9IHFjYThrX3JlYWQocHJpdiwgUUNBOEtfUkVHX1ZUVV9GVU5DMCwgXFx1MDAyNnJlZyk7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYy00MDgtXFx0aWYgKHJldCBcXHUwMDNjIDApXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jPTQ5Mz12b2lkIHFjYThrX2dldF9ldGh0b29sX3N0YXRzKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jLTUwOS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jOjUxMDpcXHRcXHRyZXQgPSBxY2E4a19yZWFkKHByaXYsIHJlZywgXFx1MDAyNnZhbCk7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYy01MTEtXFx0XFx0aWYgKHJldCBcXHUwMDNjIDApXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jLTUxNC1cXHRcXHRpZiAobWliLVxcdTAwM2VzaXplID09IDIpIHtcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jOjUxNTpcXHRcXHRcXHRyZXQgPSBxY2E4a19yZWFkKHByaXYsIHJlZyArIDQsIFxcdTAwMjZoaSk7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYy01MTYtXFx0XFx0XFx0aWYgKHJldCBcXHUwMDNjIDApXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jPTUzNj1pbnQgcWNhOGtfc2V0X21hY19lZWUoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmMtNTQ0LVxcdG11dGV4X2xvY2soXFx1MDAyNnByaXYtXFx1MDAzZXJlZ19tdXRleCk7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYzo1NDU6XFx0cmV0ID0gcWNhOGtfcmVhZChwcml2LCBRQ0E4S19SRUdfRUVFX0NUUkwsIFxcdTAwMjZyZWcpO1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmMtNTQ2LVxcdGlmIChyZXQgXFx1MDAzYyAwKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYz0xMjI0PWludCBxY2E4a19wb3J0X2xhZ19sZWF2ZShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYy0xMjI5LVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmM6MTIzMDppbnQgcWNhOGtfcmVhZF9zd2l0Y2hfaWQoc3RydWN0IHFjYThrX3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYy0xMjMxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmMtMTIzOC1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jOjEyMzk6XFx0cmV0ID0gcWNhOGtfcmVhZChwcml2LCBRQ0E4S19SRUdfTUFTS19DVFJMLCBcXHUwMDI2dmFsKTtcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jLTEyNDAtXFx0aWYgKHJldCBcXHUwMDNjIDApXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLmg9NTAyPWV4dGVybiBjb25zdCBzdHJ1Y3QgcWNhOGtfbWliX2Rlc2MgYXI4MzI3X21pYltdO1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGsuaDo1MDM6ZXh0ZXJuIGNvbnN0IHN0cnVjdCByZWdtYXBfYWNjZXNzX3RhYmxlIHFjYThrX3JlYWRhYmxlX3RhYmxlO1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGsuaC01MDQtaW50IHFjYThrX21pYl9pbml0KHN0cnVjdCBxY2E4a19wcml2ICpwcml2KTtcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLmg9NTA1PXZvaWQgcWNhOGtfcG9ydF9zZXRfc3RhdHVzKHN0cnVjdCBxY2E4a19wcml2ICpwcml2LCBpbnQgcG9ydCwgaW50IGVuYWJsZSk7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay5oOjUwNjppbnQgcWNhOGtfcmVhZF9zd2l0Y2hfaWQoc3RydWN0IHFjYThrX3ByaXYgKnByaXYpO1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGsuaC01MDctXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay5oLTUwOC0vKiBDb21tb24gcmVhZC93cml0ZS9ybXcgZnVuY3Rpb24gKi9cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLmg6NTA5OmludCBxY2E4a19yZWFkKHN0cnVjdCBxY2E4a19wcml2ICpwcml2LCB1MzIgcmVnLCB1MzIgKnZhbCk7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay5oLTUxMC1pbnQgcWNhOGtfd3JpdGUoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIHUzMiByZWcsIHUzMiB2YWwpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMFQwNzoxODowMS45MTI0MTk4MTdaIiwiU2VxIjoyMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6OTg2NDQ5ODI0MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIEZ1enphYmlsaXR5IG9mIHRoZSBRQ0E4SyBEU0EgU3dpdGNoIERyaXZlcioqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW5pdGlhbCBhc3Nlc3NtZW50IGlzIHRoYXQgdGhpcyBRQ0E4SyBzd2l0Y2ggZHJpdmVyLCBzcGVjaWZpY2FsbHkgdGhlIGBxY2E4a19zd19wcm9iZWAgZnVuY3Rpb24sIHByZXNlbnRzIGEgc2lnbmlmaWNhbnQgaHVyZGxlIGZvciBmdXp6aW5nLiBUaGUgZnVuY3Rpb24gYHFjYThrX3JlYWRfc3dpdGNoX2lkKHByaXYpYCBpcyBjYWxsZWQgd2l0aGluIGBxY2E4a19zd19wcm9iZWAsIGFuZCBjcnVjaWFsbHksIHRoaXMgcmVsaWVzIG9uIHRoZSBwaHlzaWNhbCBwcmVzZW5jZSBvZiB0aGUgaGFyZHdhcmUuIEdpdmVuIHRoYXQgc3RhbmRhcmQgUUVNVSBkb2Vzbid0IGVtdWxhdGUgdGhlc2UgUUNBOEsgc3dpdGNoZXMsIHRoZSBwcm9iZSB3aWxsIGluZXZpdGFibHkgZmFpbCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LiBDb25zZXF1ZW50bHksIHRoZSBjb2RlIHBhdGhzIHRvdWNoZWQgYnkgdGhpcyBwYXRjaCwgaW52b2x2aW5nIGNoZWNrcyBmb3IgYHFjYThrX21nbXRfZXRoX2Rpc2FibGVkYCBpbiBgcWNhOGtfcmVhZF9ldGhgLCBgcWNhOGtfd3JpdGVfZXRoYCwgYW5kIGBxY2E4a19waHlfZXRoX2NvbW1hbmRgLCBhcmUgY29tcGxldGVseSB1bnJlYWNoYWJsZSB3aXRoaW4gZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yLCBjcml0aWNhbGx5LCBTeXprYWxsZXIncyBRRU1VLiBUaGVzZSBmdW5jdGlvbnMgYXJlIG9ubHkgY2FsbGVkIGFmdGVyIGEgc3VjY2Vzc2Z1bCBwcm9iZSBhbmQgc3dpdGNoIGluaXRpYWxpemF0aW9uLlxuXG5UbyBiZSBhYnNvbHV0ZWx5IHN1cmUsIEkndmUgY29uc2lkZXJlZCBwb3RlbnRpYWwgd29ya2Fyb3VuZHMuIElzIHRoZXJlIGEgZHVtbXkgZHJpdmVyIG91dCB0aGVyZSB0aGF0IG1pZ2h0IGluc3RhbnRpYXRlIHRoaXMsIHNvbWVob3cgbWFraW5nIGl0IGFjY2Vzc2libGU/IE5vLCBpdCdzIG5vdC4gVGhlIGRyaXZlciByZWxpZXMgb24gc3BlY2lmaWMgTURJTyBjb21wYXRpYmxlIHN0cmluZ3MsIGxpa2UgXCJxY2EscWNhODMyNyxcIiBtYXRjaGVkIHRocm91Z2ggdGhlIGRldmljZSB0cmVlIChPRikuIFN5emthbGxlciBkb2Vzbid0IGR5bmFtaWNhbGx5IGluamVjdCBPRiBub2RlcyBmb3IgTURJTyBkZXZpY2VzLCB3aGljaCB3b3VsZCBiZSBuZWVkZWQgaGVyZS4gRXZlbiBpZiBzdWNoIGEgdGhpbmcgd2VyZSBwb3NzaWJsZSwgdGhlIHByb2JlIGZ1bmN0aW9uIGl0c2VsZiByZWFkcyBhIHN3aXRjaCBJRCBmcm9tIGEgc3BlY2lmaWMgcmVnaXN0ZXIuIFRoYXQgcmVhZCB3b3VsZCBmYWlsIHdpdGhvdXQgYW4gYXBwcm9wcmlhdGUgZW11bGF0b3IsIGFuZCB0aGF0J3Mgbm90IHNvbWV0aGluZyB3ZSBoYXZlIGF2YWlsYWJsZS5cblxuVGhlcmVmb3JlLCBhZnRlciBhIHRob3JvdWdoIHJldmlldywgSSdtIGNvbmZpZGVudCBpbiBjb25jbHVkaW5nIHRoYXQgdGhpcyBpcyBub3Qgd29ydGggZnV6emluZywgYW5kIEkgc2hvdWxkIHNldCBgV29ydGhGdXp6aW5nPWZhbHNlYC4gVGhlIHJlYXNvbmluZyB3aWxsIGJlIHN0cmFpZ2h0Zm9yd2FyZDogdGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIERTQSBzd2l0Y2ggZHJpdmVyIGZvciBRQ0E4SyBjaGlwcyB0aGF0IHJlcXVpcmVzIHBoeXNpY2FsIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0MDY4NCwiT3V0cHV0VG9rZW5zIjoxMjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNTgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTBUMDc6MTg6MTEuNzc2OTIwMzk3WiIsIlNlcSI6MjIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTk2NTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHFjYThrIERTQSBzd2l0Y2ggZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlciBmb3IgUXVhbGNvbW0gQXRoZXJvcyBRQ0E4SyBFdGhlcm5ldCBzd2l0Y2ggY2hpcHMuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIHBoeXNpY2FsIGhhcmR3YXJlIGNvbm5lY3RlZCB2aWEgTURJTyB0byBwcm9iZSBzdWNjZXNzZnVsbHkgKGl0IHJlYWRzIHRoZSBzd2l0Y2ggSUQgZnJvbSBhIGhhcmR3YXJlIHJlZ2lzdGVyIGR1cmluZyBwcm9iZSkuIFNpbmNlIHRoaXMgaGFyZHdhcmUgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUvR0NFIGVudmlyb25tZW50cyB1c2VkIGJ5IHN5emthbGxlciwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggYW5kIGZ1enouXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgcWNhOGsgRFNBIHN3aXRjaCBkcml2ZXIsIHdoaWNoIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVyIGZvciBRdWFsY29tbSBBdGhlcm9zIFFDQThLIEV0aGVybmV0IHN3aXRjaCBjaGlwcy4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgcGh5c2ljYWwgaGFyZHdhcmUgY29ubmVjdGVkIHZpYSBNRElPIHRvIHByb2JlIHN1Y2Nlc3NmdWxseSAoaXQgcmVhZHMgdGhlIHN3aXRjaCBJRCBmcm9tIGEgaGFyZHdhcmUgcmVnaXN0ZXIgZHVyaW5nIHByb2JlKS4gU2luY2UgdGhpcyBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS9HQ0UgZW52aXJvbm1lbnRzIHVzZWQgYnkgc3l6a2FsbGVyLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBhbmQgZnV6ei5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTEwVDA3OjE4OjExLjc3Njk0MzE4N1oiLCJTZXEiOjIzLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQ2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowtrx4q[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-10 06:26:03 +0000 UTC FinishedAt: 2026-08-10 07:18:13 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzEwIDA3OjE2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHFjYThrIERTQSBzd2l0Y2ggZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlciBmb3IgUXVhbGNvbW0gQXRoZXJvcyBRQ0E4SyBFdGhlcm5ldCBzd2l0Y2ggY2hpcHMuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIHBoeXNpY2FsIGhhcmR3YXJlIGNvbm5lY3RlZCB2aWEgTURJTyB0byBwcm9iZSBzdWNjZXNzZnVsbHkgKGl0IHJlYWRzIHRoZSBzd2l0Y2ggSUQgZnJvbSBhIGhhcmR3YXJlIHJlZ2lzdGVyIGR1cmluZyBwcm9iZSkuIFNpbmNlIHRoaXMgaGFyZHdhcmUgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUvR0NFIGVudmlyb25tZW50cyB1c2VkIGJ5IHN5emthbGxlciwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggYW5kIGZ1enouJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzEwIDA3OjE2PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgM2NkOTQ1MzA5Y2E0MmVmNTVlM2RhNGQzOWRlYWQ0YzhjYzY2NDI2MlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gQXVnIDEwIDA3OjE2OjQ2IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jIGIvZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmNcbmluZGV4IDRjOTI4OTgzYjg2MjMuLjFkOTBhMjNhYmE2YmIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmNcbkBAIC0xNjAsNiAmIzQzOzE2MCwxMSBAQCBxY2E4a19zZXRfcGFnZShzdHJ1Y3QgcWNhOGtfcHJpdiAqcHJpdiwgdTE2IHBhZ2UpXG4gXHRyZXR1cm4gMDtcbiB9XG4gXG4mIzQzO3N0YXRpYyBib29sIHFjYThrX21nbXRfZXRoX2Rpc2FibGVkKGNvbnN0IHN0cnVjdCBxY2E4a19wcml2ICpwcml2KVxuJiM0Mzt7XG4mIzQzO1x0cmV0dXJuIHByaXYtXHUwMDNlc3dpdGNoX2lkID09IFFDQThLX0lEX1FDQTgzMjc7XG4mIzQzO31cbiYjNDM7XG4gc3RhdGljIHZvaWQgcWNhOGtfcndfcmVnX2Fja19oYW5kbGVyKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgc3RydWN0IHNrX2J1ZmYgKnNrYilcbiB7XG4gXHRzdHJ1Y3QgcWNhOGtfbWdtdF9ldGhfZGF0YSAqbWdtdF9ldGhfZGF0YTtcbkBAIC0zMTYsNiAmIzQzOzMyMSw5IEBAIHN0YXRpYyBpbnQgcWNhOGtfcmVhZF9ldGgoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIHUzMiByZWcsIHUzMiAqdmFsLCBpbnQgbGVuKVxuIFx0Ym9vbCBhY2s7XG4gXHRpbnQgcmV0O1xuIFxuJiM0MztcdGlmIChxY2E4a19tZ210X2V0aF9kaXNhYmxlZChwcml2KSlcbiYjNDM7XHRcdHJldHVybiAtRU5YSU87XG4mIzQzO1xuIFx0c2tiID0gcWNhOGtfYWxsb2NfbWRpb19oZWFkZXIoTURJT19SRUFELCByZWcsIE5VTEwsXG4gXHRcdFx0XHQgICAgICBRQ0E4S19FVEhFUk5FVF9NRElPX1BSSU9SSVRZLCBsZW4pO1xuIFx0aWYgKCFza2IpXG5AQCAtMzY4LDYgJiM0MzszNzYsOSBAQCBzdGF0aWMgaW50IHFjYThrX3dyaXRlX2V0aChzdHJ1Y3QgcWNhOGtfcHJpdiAqcHJpdiwgdTMyIHJlZywgdTMyICp2YWwsIGludCBsZW4pXG4gXHRib29sIGFjaztcbiBcdGludCByZXQ7XG4gXG4mIzQzO1x0aWYgKHFjYThrX21nbXRfZXRoX2Rpc2FibGVkKHByaXYpKVxuJiM0MztcdFx0cmV0dXJuIC1FTlhJTztcbiYjNDM7XG4gXHRza2IgPSBxY2E4a19hbGxvY19tZGlvX2hlYWRlcihNRElPX1dSSVRFLCByZWcsIHZhbCxcbiBcdFx0XHRcdCAgICAgIFFDQThLX0VUSEVSTkVUX01ESU9fUFJJT1JJVFksIGxlbik7XG4gXHRpZiAoIXNrYilcbkBAIC02MzAsNiAmIzQzOzY0MSw5IEBAIHFjYThrX3BoeV9ldGhfY29tbWFuZChzdHJ1Y3QgcWNhOGtfcHJpdiAqcHJpdiwgYm9vbCByZWFkLCBpbnQgcGh5LFxuIFx0aW50IHJldCwgcmV0MTtcbiBcdGJvb2wgYWNrO1xuIFxuJiM0MztcdGlmIChxY2E4a19tZ210X2V0aF9kaXNhYmxlZChwcml2KSlcbiYjNDM7XHRcdHJldHVybiAtRU5YSU87XG4mIzQzO1xuIFx0aWYgKHJlZ251bSBcdTAwM2U9IFFDQThLX01ESU9fTUFTVEVSX01BWF9SRUcpXG4gXHRcdHJldHVybiAtRUlOVkFMO1xuIFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzEwIDA3OjE2PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgcWNhOGsgRFNBIHN3aXRjaCBkcml2ZXIsIHdoaWNoIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVyIGZvciBRdWFsY29tbSBBdGhlcm9zIFFDQThLIEV0aGVybmV0IHN3aXRjaCBjaGlwcy4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgcGh5c2ljYWwgaGFyZHdhcmUgY29ubmVjdGVkIHZpYSBNRElPIHRvIHByb2JlIHN1Y2Nlc3NmdWxseSAoaXQgcmVhZHMgdGhlIHN3aXRjaCBJRCBmcm9tIGEgaGFyZHdhcmUgcmVnaXN0ZXIgZHVyaW5nIHByb2JlKS4gU2luY2UgdGhpcyBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS9HQ0UgZW52aXJvbm1lbnRzIHVzZWQgYnkgc3l6a2FsbGVyLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBhbmQgZnV6ei4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAzY2Q5NDUzMDljYTQyZWY1NWUzZGE0ZDM5ZGVhZDRjOGNjNjY0MjYyCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIE1vbiBBdWcgMTAgMDc6MTY6NDYgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYyBiL2RyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jCmluZGV4IDRjOTI4OTgzYjg2MjMuLjFkOTBhMjNhYmE2YmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jCkBAIC0xNjAsNiAmIzQzOzE2MCwxMSBAQCBxY2E4a19zZXRfcGFnZShzdHJ1Y3QgcWNhOGtfcHJpdiAqcHJpdiwgdTE2IHBhZ2UpCiAJcmV0dXJuIDA7CiB9CiAKJiM0MztzdGF0aWMgYm9vbCBxY2E4a19tZ210X2V0aF9kaXNhYmxlZChjb25zdCBzdHJ1Y3QgcWNhOGtfcHJpdiAqcHJpdikKJiM0Mzt7CiYjNDM7CXJldHVybiBwcml2LSZndDtzd2l0Y2hfaWQgPT0gUUNBOEtfSURfUUNBODMyNzsKJiM0Mzt9CiYjNDM7CiBzdGF0aWMgdm9pZCBxY2E4a19yd19yZWdfYWNrX2hhbmRsZXIoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogewogCXN0cnVjdCBxY2E4a19tZ210X2V0aF9kYXRhICptZ210X2V0aF9kYXRhOwpAQCAtMzE2LDYgJiM0MzszMjEsOSBAQCBzdGF0aWMgaW50IHFjYThrX3JlYWRfZXRoKHN0cnVjdCBxY2E4a19wcml2ICpwcml2LCB1MzIgcmVnLCB1MzIgKnZhbCwgaW50IGxlbikKIAlib29sIGFjazsKIAlpbnQgcmV0OwogCiYjNDM7CWlmIChxY2E4a19tZ210X2V0aF9kaXNhYmxlZChwcml2KSkKJiM0MzsJCXJldHVybiAtRU5YSU87CiYjNDM7CiAJc2tiID0gcWNhOGtfYWxsb2NfbWRpb19oZWFkZXIoTURJT19SRUFELCByZWcsIE5VTEwsCiAJCQkJICAgICAgUUNBOEtfRVRIRVJORVRfTURJT19QUklPUklUWSwgbGVuKTsKIAlpZiAoIXNrYikKQEAgLTM2OCw2ICYjNDM7Mzc2LDkgQEAgc3RhdGljIGludCBxY2E4a193cml0ZV9ldGgoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIHUzMiByZWcsIHUzMiAqdmFsLCBpbnQgbGVuKQogCWJvb2wgYWNrOwogCWludCByZXQ7CiAKJiM0MzsJaWYgKHFjYThrX21nbXRfZXRoX2Rpc2FibGVkKHByaXYpKQomIzQzOwkJcmV0dXJuIC1FTlhJTzsKJiM0MzsKIAlza2IgPSBxY2E4a19hbGxvY19tZGlvX2hlYWRlcihNRElPX1dSSVRFLCByZWcsIHZhbCwKIAkJCQkgICAgICBRQ0E4S19FVEhFUk5FVF9NRElPX1BSSU9SSVRZLCBsZW4pOwogCWlmICghc2tiKQpAQCAtNjMwLDYgJiM0Mzs2NDEsOSBAQCBxY2E4a19waHlfZXRoX2NvbW1hbmQoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIGJvb2wgcmVhZCwgaW50IHBoeSwKIAlpbnQgcmV0LCByZXQxOwogCWJvb2wgYWNrOwogCiYjNDM7CWlmIChxY2E4a19tZ210X2V0aF9kaXNhYmxlZChwcml2KSkKJiM0MzsJCXJldHVybiAtRU5YSU87CiYjNDM7CiAJaWYgKHJlZ251bSAmZ3Q7PSBRQ0E4S19NRElPX01BU1RFUl9NQVhfUkVHKQogCQlyZXR1cm4gLUVJTlZBTDsKIAo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMCAwNzoxNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNDc5CgkJCQkJCQlvdXRwdXQ6IDIzCgkJCQkJCQl0aG91Z2h0czogMTg4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFF1YWxjb21tIEF0aGVyb3MgUUNBOEsgRXRoZXJuZXQgU3dpdGNoIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHRvdWNoaW5nIGBkcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguY2AuIEludGVyZXN0aW5nLiBJdCBsb29rcyBsaWtlIHRoZXkmIzM5O3ZlIGFkZGVkIGEgY2hlY2sgZm9yIGBxY2E4a19tZ210X2V0aF9kaXNhYmxlZChwcml2KWAgd2l0aGluIGBxY2E4a19yZWFkX2V0aGAsIGBxY2E4a193cml0ZV9ldGhgLCBhbmQgYHFjYThrX3BoeV9ldGhfY29tbWFuZGAuIEVzc2VudGlhbGx5LCBpZiB0aGUgYHN3aXRjaF9pZGAgaXMgc2V0IHRvIGBRQ0E4S19JRF9RQ0E4MzI3YCwgaXQmIzM5O2xsIHJldHVybiBgLUVOWElPYC4gVGhpcyBpcyBmb3IgYSBRdWFsY29tbSBBdGhlcm9zIFFDQThLIEV0aGVybmV0IHN3aXRjaCBkcml2ZXIsIGEgRFNBIGRyaXZlciwgd2hpY2ggdXN1YWxseSBtZWFucyBpdCYjMzk7cyBwcmV0dHkgdGlnaHRseSBjb3VwbGVkIHdpdGggc3BlY2lmaWMgaGFyZHdhcmUuCgpNeSBpbW1lZGlhdGUgcXVlc3Rpb24gaXMsIGhvdyBlYXNpbHkgY291bGQgdGhpcyBkcml2ZXIgYmUgZXhlcmNpc2VkIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQ/IERTQSBkcml2ZXJzLCBieSB0aGVpciBuYXR1cmUsIG9mdGVuIHJlbHkgb24gdGhlIHVuZGVybHlpbmcgc3dpdGNoIGhhcmR3YXJlLiBDb3VsZCB0aGlzIGJlIG9uZSBvZiB0aG9zZSBjYXNlcywgb3IgaXMgdGhlcmUgc29tZSBhYnN0cmFjdGlvbiBsYXllciBpbnZvbHZlZD8gVG8gdW5kZXJzdGFuZCB0aGUgaW1wbGljYXRpb25zIG9mIHRoaXMgbmV3IGNoZWNrLCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY29udGV4dC4KCkxldCYjMzk7cyBkaWcgaW50byB0aGUgS2NvbmZpZyBmb3IgdGhpcyBkcml2ZXIuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoYXQgZGVwZW5kZW5jaWVzIGl0IGhhcywgaG93IGl0JiMzOTtzIGNvbmZpZ3VyZWQsIGFuZCB3aGV0aGVyIHRoZXJlIGFyZSBhbnkgY2x1ZXMgYWJvdXQgaXRzIGhhcmR3YXJlIHJlcXVpcmVtZW50cy4gVGhhdCB3aWxsIGhlbHAgbWUgdW5kZXJzdGFuZCB3aGV0aGVyIHRoaXMgcGF0Y2ggaXMgc2ltcGx5IGhhcmRlbmluZyBhIHNwZWNpZmljIGhhcmR3YXJlIGNvbmZpZ3VyYXRpb24sIG9yIGlmIGl0IG1pZ2h0IGltcGFjdCB2aXJ0dWFsaXplZCB1c2VzIGFzIHdlbGwuIEkmIzM5O2xsIGZvY3VzIG9uIGFueXRoaW5nIHRoYXQgc3BlYWtzIHRvIHRoZSBoYXJkd2FyZSBkZXBlbmRlbmNpZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTAgMDc6MTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE5FVF9EU0FfUUNBOEsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL3FjYS9LY29uZmlnPTI9Y29uZmlnIE5FVF9EU0FfQVI5MzMxXG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9LY29uZmlnLTEwLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9LY29uZmlnOjExOmNvbmZpZyBORVRfRFNBX1FDQThLXG5kcml2ZXJzL25ldC9kc2EvcWNhL0tjb25maWctMTItXHR0cmlzdGF0ZSBcJiMzNDtRdWFsY29tbSBBdGhlcm9zIFFDQThLIEV0aGVybmV0IHN3aXRjaCBmYW1pbHkgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvS2NvbmZpZy0xOC1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvS2NvbmZpZzoxOTpjb25maWcgTkVUX0RTQV9RQ0E4S19MRURTX1NVUFBPUlRcbmRyaXZlcnMvbmV0L2RzYS9xY2EvS2NvbmZpZy0yMC1cdGJvb2wgXCYjMzQ7UXVhbGNvbW0gQXRoZXJvcyBRQ0E4SyBFdGhlcm5ldCBzd2l0Y2ggZmFtaWx5IExFRHMgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzEwIDA3OjE3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMyMTEKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiA5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgYW5kIHdyaXR0ZW4gaW4gdGhlIGZpcnN0IHBlcnNvbjoKCioqSW5pdGlhbCBBc3Nlc3NtZW50KioKClJpZ2h0LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBNeSBpbW1lZGlhdGUgaW5zdGluY3QgaXMgdG8gaWRlbnRpZnkgdGhlIGRlcGVuZGVuY2llcy4gV2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBhIHN5c3RlbSwgYSBwcm9jZXNzLCBhIHByb2JsZW0g4oCTIHdoYXRldmVyICYjMzQ7aXQmIzM0OyBpcyDigJMgYW5kIHVuZGVyc3RhbmRpbmcgdGhlIGZvdW5kYXRpb25hbCBlbGVtZW50cyBpcyBwYXJhbW91bnQuIFdoYXQgYXJlIHRoZSBrZXkgdmFyaWFibGVzPyBUaGUgY29yZSBpbnB1dHM/IFRoZSB1bmRlcmx5aW5nIGFzc3VtcHRpb25zPyBQaW5wb2ludGluZyB0aGVzZSBkZXBlbmRlbmNpZXMgaXMgdGhlIGVzc2VudGlhbCBmaXJzdCBzdGVwIHRvIGFueSBlZmZlY3RpdmUgYW5hbHlzaXMuIFdoZXJlIGRvIHdlIGJlZ2luIHRvIHVucmF2ZWwgY29tcGxleGl0eT8KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMCAwNzoxNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2RzYS9xY2EvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMzAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAgMTpcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuICAgMjpcdGNvbmZpZyBORVRfRFNBX0FSOTMzMVxuICAgMzpcdFx0dHJpc3RhdGUgXCYjMzQ7UXVhbGNvbW0gQXRoZXJvcyBBUjkzMzEgRXRoZXJuZXQgc3dpdGNoIHN1cHBvcnRcJiMzNDtcbiAgIDQ6XHRcdGRlcGVuZHMgb24gTkVUX0RTQVxuICAgNTpcdFx0c2VsZWN0IE5FVF9EU0FfVEFHX0FSOTMzMVxuICAgNjpcdFx0c2VsZWN0IFJFR01BUFxuICAgNzpcdFx0aGVscFxuICAgODpcdFx0ICBUaGlzIGVuYWJsZXMgc3VwcG9ydCBmb3IgdGhlIFF1YWxjb21tIEF0aGVyb3MgQVI5MzMxIGJ1aWx0LWluIEV0aGVybmV0XG4gICA5Olx0XHQgIHN3aXRjaC5cbiAgMTA6XHRcbiAgMTE6XHRjb25maWcgTkVUX0RTQV9RQ0E4S1xuICAxMjpcdFx0dHJpc3RhdGUgXCYjMzQ7UXVhbGNvbW0gQXRoZXJvcyBRQ0E4SyBFdGhlcm5ldCBzd2l0Y2ggZmFtaWx5IHN1cHBvcnRcJiMzNDtcbiAgMTM6XHRcdHNlbGVjdCBORVRfRFNBX1RBR19RQ0FcbiAgMTQ6XHRcdHNlbGVjdCBSRUdNQVBcbiAgMTU6XHRcdGhlbHBcbiAgMTY6XHRcdCAgVGhpcyBlbmFibGVzIHN1cHBvcnQgZm9yIHRoZSBRdWFsY29tbSBBdGhlcm9zIFFDQThLIEV0aGVybmV0XG4gIDE3Olx0XHQgIHN3aXRjaCBjaGlwcy5cbiAgMTg6XHRcbiAgMTk6XHRjb25maWcgTkVUX0RTQV9RQ0E4S19MRURTX1NVUFBPUlRcbiAgMjA6XHRcdGJvb2wgXCYjMzQ7UXVhbGNvbW0gQXRoZXJvcyBRQ0E4SyBFdGhlcm5ldCBzd2l0Y2ggZmFtaWx5IExFRHMgc3VwcG9ydFwmIzM0O1xuICAyMTpcdFx0ZGVwZW5kcyBvbiBORVRfRFNBX1FDQThLXG4gIDIyOlx0XHRkZXBlbmRzIG9uIExFRFNfQ0xBU1M9eSB8fCBMRURTX0NMQVNTPU5FVF9EU0FfUUNBOEtcbiAgMjM6XHRcdGRlcGVuZHMgb24gTEVEU19UUklHR0VSU1xuICAyNDpcdFx0aGVscFxuICAyNTpcdFx0ICBUaGlzIGVuYWJsZWQgc3VwcG9ydCBmb3IgTEVEcyBwcmVzZW50IG9uIHRoZSBRdWFsY29tbSBBdGhlcm9zXG4gIDI2Olx0XHQgIFFDQThLIEV0aGVybmV0IHN3aXRjaCBjaGlwcy5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMCAwNzoxNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNzY3CgkJCQkJCQlvdXRwdXQ6IDIwCgkJCQkJCQl0aG91Z2h0czogNjgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBRQ0E4SyBFdGhlcm5ldCBTd2l0Y2ggRHJpdmVyKioKCk9rYXksIHNvIHRoaXMgaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXIsIGZvY3VzaW5nIG9uIFF1YWxjb21tIEF0aGVyb3MgUUNBOEsgRXRoZXJuZXQgc3dpdGNoIGNoaXBzLiBNeSBpbml0aWFsIHF1ZXN0aW9uIGlzIHdoZXRoZXIgb3Igbm90IHRoaXMgaXMgZ29pbmcgdG8gYmUgZW11bGF0YWJsZSBvciByZWFjaGFibGUgd2l0aGluIFFFTVUuIEZyb20gbXkgZXhwZXJpZW5jZSB3aXRoIHRoZXNlIGtpbmRzIG9mIERTQSBkcml2ZXJzLCBidWlsdCBmb3IgdmVyeSBzcGVjaWZpYyBoYXJkd2FyZSBzd2l0Y2hlcywgaXQmIzM5O3MgcHJldHR5IHJhcmUgdG8gc2VlIHRoZW0gZnVsbHkgZW11bGF0ZWQgaW4gYSBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50LiBTbywgSSBuZWVkIHRvIGRpZyBkZWVwZXIuIEZpcnN0LCBJIGhhdmUgdG8gZmlndXJlIG91dCBpZiB0aGlzIGRyaXZlciBjb21tdW5pY2F0ZXMgdmlhIE1ESU8gb3IgU1BJLiBUaGlzIGlzIHRoZSBzdGFydGluZyBwb2ludCBmb3IgdW5kZXJzdGFuZGluZyBpdHMgcG90ZW50aWFsIGZvciBpbnRlZ3JhdGlvbiBvciwgZnJhbmtseSwgdGhlIGxpa2VsaWhvb2Qgb2YgYSBzdWNjZXNzZnVsIGVtdWxhdGlvbiBlZmZvcnQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTAgMDc6MTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cWNhOGtfbWF0Y2gmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jPTIxODg9c3RhdGljIGludCBuc3NfY2NfcWNhOGtfcHJvYmUoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KVxuLS1cbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMjAzLVxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIyMDQ6c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbnNzX2NjX3FjYThrX21hdGNoX3RhYmxlW10gPSB7XG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjIwNS1cdHsgLmNvbXBhdGlibGUgPSBcJiMzNDtxY29tLHFjYTgwODQtbnNzY2NcJiMzNDsgfSxcbi0tXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjIwNy19O1xuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIyMDg6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgbnNzX2NjX3FjYThrX21hdGNoX3RhYmxlKTtcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMjA5LVxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jPTIyMTA9c3RhdGljIHN0cnVjdCBtZGlvX2RyaXZlciBuc3NfY2NfcWNhOGtfZHJpdmVyID0ge1xuLS1cbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMjEyLVx0XHQubmFtZSA9IFwmIzM0O3Fjb20scWNhOGstbnNzY2NcJiMzNDssXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjIxMzpcdFx0Lm9mX21hdGNoX3RhYmxlXHQ9IG5zc19jY19xY2E4a19tYXRjaF90YWJsZSxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMjE0LVx0fSxcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz0xMTIxPXFjYThrX3NldHVwX29mX3B3c19yZWcoc3RydWN0IHFjYThrX3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0xMTIyLXtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjExMjM6XHRjb25zdCBzdHJ1Y3QgcWNhOGtfbWF0Y2hfZGF0YSAqZGF0YSA9IHByaXYtXHUwMDNlaW5mbztcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTExMjQtXHRzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUgPSBwcml2LVx1MDAzZWRldi1cdTAwM2VvZl9ub2RlO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTIyMDQ9c3RhdGljIGNvbnN0IHN0cnVjdCBxY2E4a19pbmZvX29wcyBxY2E4eHh4X29wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0yMjA3LVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MjIwODpzdGF0aWMgY29uc3Qgc3RydWN0IHFjYThrX21hdGNoX2RhdGEgcWNhODMyNyA9IHtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTIyMDktXHQuaWQgPSBRQ0E4S19JRF9RQ0E4MzI3LFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTIyMTQtXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzoyMjE1OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcWNhOGtfbWF0Y2hfZGF0YSBxY2E4MzI4ID0ge1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMjIxNi1cdC5pZCA9IFFDQThLX0lEX1FDQTgzMjcsXG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMjIyMC1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjIyMjE6c3RhdGljIGNvbnN0IHN0cnVjdCBxY2E4a19tYXRjaF9kYXRhIHFjYTgzM3ggPSB7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0yMjIyLVx0LmlkID0gUUNBOEtfSURfUUNBODMzNyxcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLmg9Mzc4PXN0cnVjdCBxY2E4a19pbmZvX29wcyB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay5oLTM4MS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGsuaDozODI6c3RydWN0IHFjYThrX21hdGNoX2RhdGEge1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay5oLTM4My1cdHU4IGlkO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGsuaD00NDU9c3RydWN0IHFjYThrX3ByaXYge1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGsuaC00NjktXHRzdHJ1Y3QgcWNhOGtfcGNzIHBjc19wb3J0XzY7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLmg6NDcwOlx0Y29uc3Qgc3RydWN0IHFjYThrX21hdGNoX2RhdGEgKmluZm87XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLmgtNDcxLVx0c3RydWN0IHFjYThrX2xlZCBwb3J0c19sZWRbUUNBOEtfTEVEX0NPVU5UXTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMCAwNzoxNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MjYxCgkJCQkJCQlvdXRwdXQ6IDIyCgkJCQkJCQl0aG91Z2h0czogMzYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqRGl2aW5nIGludG8gdGhlIFFDQThLLThYWFggRHJpdmVyKioKCkFscmlnaHQsIHRpbWUgdG8gZ2V0IG15IGhhbmRzIGRpcnR5LiBJIG5lZWQgdG8gcGlucG9pbnQgdGhlIHJlbGV2YW50IHBhcnQgb2YgdGhlIFFDQThLLThYWFggZHJpdmVyIHJlc3BvbnNpYmxlIGZvciBkZXZpY2UgbWF0Y2hpbmcuIExldCYjMzk7cyBzdGFydCBieSB6ZXJvaW5nIGluIG9uIHRoZSBgcWNhOGtfb2ZfbWF0Y2hgIGZ1bmN0aW9uIHdpdGhpbiBgZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmNgLiBUaGlzIGlzIHdoZXJlIHRoZSBtYWdpYyBzaG91bGQgYmUgaGFwcGVuaW5nIOKAkyB0aGUgT3BlbiBGaXJtd2FyZSBtYXRjaGluZyBsb2dpYy4gSSBuZWVkIHRvIHJlZnJlc2ggbXkgbWVtb3J5IG9uIHRoZSBzcGVjaWZpY3Mgb2YgaG93IHRoZSBkZXZpY2UgdHJlZSBpcyBwYXJzZWQgYW5kIGhvdyB0aGVzZSBkcml2ZXJzIGFyZSBhdHRhY2hlZC4gVGhpcyBmaWxlIHNob3VsZCBiZSB0aGUgc3RhcnRpbmcgcG9pbnQsIHRoZSBrZXkgdG8gdW5kZXJzdGFuZGluZyBob3cgd2UgaWRlbnRpZnkgYW5kIGluaXRpYWxpemUgdGhlIFFDQThLLThYWFggc3dpdGNoLiBMZXQmIzM5O3Mgc2VlIHdoYXQmIzM5O3Mgd2hhdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTAgMDc6MTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cWNhOGtfb2ZfbWF0Y2gmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9MjIyMT1zdGF0aWMgY29uc3Qgc3RydWN0IHFjYThrX21hdGNoX2RhdGEgcWNhODMzeCA9IHtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0yMjI2LVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MjIyNzpzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBxY2E4a19vZl9tYXRjaFtdID0ge1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMjIyOC1cdHsgLmNvbXBhdGlibGUgPSBcJiMzNDtxY2EscWNhODMyN1wmIzM0OywgLmRhdGEgPSBcdTAwMjZxY2E4MzI3IH0sXG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9MjIzNT1zdGF0aWMgc3RydWN0IG1kaW9fZHJpdmVyIHFjYThrbWRpb19kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMjI0MC1cdFx0Lm5hbWUgPSBcJiMzNDtxY2E4a1wmIzM0OyxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjIyNDE6XHRcdC5vZl9tYXRjaF90YWJsZSA9IHFjYThrX29mX21hdGNoLFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMjI0Mi1cdFx0LnBtID0gXHUwMDI2cWNhOGtfcG1fb3BzLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMCAwNzoxNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1ODQ5CgkJCQkJCQlvdXRwdXQ6IDE4CgkJCQkJCQl0aG91Z2h0czogOTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTURJTyBEcml2ZXIgSW52ZXN0aWdhdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBgcWNhOGttZGlvX2RyaXZlcmAg4oCTIHRoYXQmIzM5O3MgYW4gTURJTyBkcml2ZXIuIE15IGluaXRpYWwgdGhvdWdodCBpcywgJiMzNDtTdGFuZGFyZCBRRU1VIHByb2JhYmx5IGRvZXNuJiMzOTt0IGVtdWxhdGUgTURJTyBkZXZpY2VzIGRpcmVjdGx5LCB1bmxlc3MgaXQmIzM5O3MgcGFydCBvZiBhIG1vcmUgY29tcHJlaGVuc2l2ZSBTb0MgZW11bGF0aW9uIG9yLCBtYXliZSwgdGhlcmUmIzM5O3MgYSBzcGVjaWFsaXplZCBNRElPIGJ1cyBlbXVsYXRvciBJJiMzOTttIG5vdCBpbW1lZGlhdGVseSB0aGlua2luZyBvZiYjMzQ7LiBUaGVuIGl0IGhpdCBtZTogd2FpdCwgZGlkbiYjMzk7dCBJIHJlYWQgc29tZXRoaW5nIGFib3V0IHN5emthbGxlciBoYXZpbmcgKnNvbWUqIGNhcGFiaWxpdHkgaW4gdGhpcyBhcmVhPyBNYXliZSBmb3IgaW5qZWN0aW5nIGRldmljZXMsIG9yIHVzaW5nIGR1bW15IGJ1c2VzPyBJdOKAmXMgdGltZSB0byBjaGVjayBpZiBzeXprYWxsZXIgaGFzIHNvbWUgc3BlY2lmaWMgc3VwcG9ydCBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBNRElPLiBMZXQmIzM5O3Mgc2VlIGlmIHRoYXQgYmVhcnMgZnJ1aXQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzEwIDA3OjE3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O21kaW9fYnVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAyMzcxIGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvOjE6V2hhdDogICAgICAgICAgL3N5cy9idXMvbWRpb19idXMvZGV2aWNlcy8uLi4vc3RhdGlzdGljcy9cbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYnVzLW1kaW86MjpXaGF0OiAgICAgICAgICAvc3lzL2NsYXNzL21kaW9fYnVzLy4uLi9zdGF0aXN0aWNzL1xuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpby0zLURhdGU6ICAgICAgICAgIEphbnVhcnkgMjAyMFxuLS1cbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYnVzLW1kaW89Nj1EZXNjcmlwdGlvbjpcbi0tXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvLTktXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvOjEwOldoYXQ6ICAgICAgICAgIC9zeXMvYnVzL21kaW9fYnVzL2RldmljZXMvLi4uL3N0YXRpc3RpY3MvdHJhbnNmZXJzXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvOjExOldoYXQ6ICAgICAgICAgIC9zeXMvY2xhc3MvbWRpb19idXMvLi4uL3RyYW5zZmVyc1xuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpby0xMi1EYXRlOiAgICAgICAgICBKYW51YXJ5IDIwMjBcbi0tXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvPTE1PURlc2NyaXB0aW9uOlxuLS1cbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYnVzLW1kaW8tMTctXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvOjE4OldoYXQ6ICAgICAgICAgIC9zeXMvYnVzL21kaW9fYnVzL2RldmljZXMvLi4uL3N0YXRpc3RpY3MvZXJyb3JzXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvOjE5OldoYXQ6ICAgICAgICAgIC9zeXMvY2xhc3MvbWRpb19idXMvLi4uL3N0YXRpc3RpY3MvZXJyb3JzXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvLTIwLURhdGU6ICAgICAgICAgIEphbnVhcnkgMjAyMFxuLS1cbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYnVzLW1kaW89MjM9RGVzY3JpcHRpb246XG4tLVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpby0yNS1cbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYnVzLW1kaW86MjY6V2hhdDogICAgICAgICAgL3N5cy9idXMvbWRpb19idXMvZGV2aWNlcy8uLi4vc3RhdGlzdGljcy93cml0ZXNcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYnVzLW1kaW86Mjc6V2hhdDogICAgICAgICAgL3N5cy9jbGFzcy9tZGlvX2J1cy8uLi4vc3RhdGlzdGljcy93cml0ZXNcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYnVzLW1kaW8tMjgtRGF0ZTogICAgICAgICAgSmFudWFyeSAyMDIwXG4tLVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpbz0zMT1EZXNjcmlwdGlvbjpcbi0tXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvLTMzLVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpbzozNDpXaGF0OiAgICAgICAgICAvc3lzL2J1cy9tZGlvX2J1cy9kZXZpY2VzLy4uLi9zdGF0aXN0aWNzL3JlYWRzXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvOjM1OldoYXQ6ICAgICAgICAgIC9zeXMvY2xhc3MvbWRpb19idXMvLi4uL3N0YXRpc3RpY3MvcmVhZHNcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYnVzLW1kaW8tMzYtRGF0ZTogICAgICAgICAgSmFudWFyeSAyMDIwXG4tLVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpbz0zOT1EZXNjcmlwdGlvbjpcbi0tXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvLTQxLVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpbzo0MjpXaGF0OiAgICAgICAgICAvc3lzL2J1cy9tZGlvX2J1cy9kZXZpY2VzLy4uLi9zdGF0aXN0aWNzL3RyYW5zZmVyc19cdTAwM2NhZGRyXHUwMDNlXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvOjQzOldoYXQ6ICAgICAgICAgIC9zeXMvY2xhc3MvbWRpb19idXMvLi4uL3N0YXRpc3RpY3MvdHJhbnNmZXJzX1x1MDAzY2FkZHJcdTAwM2VcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYnVzLW1kaW8tNDQtRGF0ZTogICAgICAgICAgSmFudWFyeSAyMDIwXG4tLVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpbz00Nz1EZXNjcmlwdGlvbjpcbi0tXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvLTQ5LVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpbzo1MDpXaGF0OiAgICAgICAgICAvc3lzL2J1cy9tZGlvX2J1cy9kZXZpY2VzLy4uLi9zdGF0aXN0aWNzL2Vycm9yc19cdTAwM2NhZGRyXHUwMDNlXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvOjUxOldoYXQ6ICAgICAgICAgIC9zeXMvY2xhc3MvbWRpb19idXMvLi4uL3N0YXRpc3RpY3MvZXJyb3JzX1x1MDAzY2FkZHJcdTAwM2VcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYnVzLW1kaW8tNTItRGF0ZTogICAgICAgICAgSmFudWFyeSAyMDIwXG4tLVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpbz01NT1EZXNjcmlwdGlvbjpcbi0tXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvLTU3LVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpbzo1ODpXaGF0OiAgICAgICAgICAvc3lzL2J1cy9tZGlvX2J1cy9kZXZpY2VzLy4uLi9zdGF0aXN0aWNzL3dyaXRlc19cdTAwM2NhZGRyXHUwMDNlXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvOjU5OldoYXQ6ICAgICAgICAgIC9zeXMvY2xhc3MvbWRpb19idXMvLi4uL3N0YXRpc3RpY3Mvd3JpdGVzX1x1MDAzY2FkZHJcdTAwM2VcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYnVzLW1kaW8tNjAtRGF0ZTogICAgICAgICAgSmFudWFyeSAyMDIwXG4tLVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpbz02Mz1EZXNjcmlwdGlvbjpcbi0tXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvLTY1LVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpbzo2NjpXaGF0OiAgICAgICAgICAvc3lzL2J1cy9tZGlvX2J1cy9kZXZpY2VzLy4uLi9zdGF0aXN0aWNzL3JlYWRzX1x1MDAzY2FkZHJcdTAwM2VcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYnVzLW1kaW86Njc6V2hhdDogICAgICAgICAgL3N5cy9jbGFzcy9tZGlvX2J1cy8uLi4vc3RhdGlzdGljcy9yZWFkc19cdTAwM2NhZGRyXHUwMDNlXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvLTY4LURhdGU6ICAgICAgICAgIEphbnVhcnkgMjAyMFxuLS1cbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtbmV0LXBoeWRldjoxOldoYXQ6XHRcdC9zeXMvY2xhc3MvbWRpb19idXMvXHUwMDNjYnVzXHUwMDNlL1x1MDAzY2RldmljZVx1MDAzZS9hdHRhY2hlZF9kZXZcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtbmV0LXBoeWRldi0yLURhdGU6XHRcdE1heSAyMDE3XG4tLVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1uZXQtcGh5ZGV2PTU9RGVzY3JpcHRpb246XG4tLVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1uZXQtcGh5ZGV2LTgtXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWNsYXNzLW5ldC1waHlkZXY6OTpXaGF0Olx0XHQvc3lzL2NsYXNzL21kaW9fYnVzL1x1MDAzY2J1c1x1MDAzZS9cdTAwM2NkZXZpY2VcdTAwM2UvcGh5X2hhc19maXh1cHNcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtbmV0LXBoeWRldi0xMC1EYXRlOlx0XHRGZWJydWFyeSAyMDE0XG4tLVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1uZXQtcGh5ZGV2PTEzPURlc2NyaXB0aW9uOlxuLS1cbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtbmV0LXBoeWRldi0xOC1cbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtbmV0LXBoeWRldjoxOTpXaGF0Olx0XHQvc3lzL2NsYXNzL21kaW9fYnVzL1x1MDAzY2J1c1x1MDAzZS9cdTAwM2NkZXZpY2VcdTAwM2UvcGh5X2lkXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWNsYXNzLW5ldC1waHlkZXYtMjAtRGF0ZTpcdFx0Tm92ZW1iZXIgMjAxMlxuLS1cbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtbmV0LXBoeWRldj0yMz1EZXNjcmlwdGlvbjpcbi0tXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWNsYXNzLW5ldC1waHlkZXYtMjgtXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWNsYXNzLW5ldC1waHlkZXY6Mjk6V2hhdDpcdFx0L3N5cy9jbGFzcy9tZGlvX2J1cy9cdTAwM2NidXNcdTAwM2UvXHUwMDNjZGV2aWNlXHUwMDNlL2M0NV9waHlfaWRzL21tZFx1MDAzY25cdTAwM2VfZGV2aWNlX2lkXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWNsYXNzLW5ldC1waHlkZXYtMzAtRGF0ZTpcdFx0SnVuZSAyMDI1XG4tLVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1uZXQtcGh5ZGV2PTMzPURlc2NyaXB0aW9uOlxuLS1cbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtbmV0LXBoeWRldi0zOC1cbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtbmV0LXBoeWRldjozOTpXaGF0Olx0XHQvc3lzL2NsYXNzL21kaW9fYnVzL1x1MDAzY2J1c1x1MDAzZS9cdTAwM2NkZXZpY2VcdTAwM2UvcGh5X2ludGVyZmFjZVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1uZXQtcGh5ZGV2LTQwLURhdGU6XHRcdEZlYnJ1YXJ5IDIwMTRcbi0tXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWNsYXNzLW5ldC1waHlkZXY9NDM9RGVzY3JpcHRpb246XG4tLVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1uZXQtcGh5ZGV2LTU1LVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1uZXQtcGh5ZGV2OjU2OldoYXQ6XHRcdC9zeXMvY2xhc3MvbWRpb19idXMvXHUwMDNjYnVzXHUwMDNlL1x1MDAzY2RldmljZVx1MDAzZS9waHlfc3RhbmRhbG9uZVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1uZXQtcGh5ZGV2LTU3LURhdGU6XHRcdE1heSAyMDE5XG4tLVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1uZXQtcGh5ZGV2PTYwPURlc2NyaXB0aW9uOlxuLS1cbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtbmV0LXBoeWRldi02NC1cbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtbmV0LXBoeWRldjo2NTpXaGF0Olx0XHQvc3lzL2NsYXNzL21kaW9fYnVzL1x1MDAzY2J1c1x1MDAzZS9cdTAwM2NkZXZpY2VcdTAwM2UvcGh5X2Rldl9mbGFnc1xuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1uZXQtcGh5ZGV2LTY2LURhdGU6XHRcdE1hcmNoIDIwMjFcbi0tXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMucnN0PTM1Mj1maW5kczo6XG4tLVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L3N0bWljcm8vc3RtbWFjLnJzdC0zNjEtXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMucnN0OjM2MjogICAgICAgIHN0cnVjdCBzdG1tYWNfbWRpb19idXNfZGF0YSAqbWRpb19idXNfZGF0YTtcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy5yc3QtMzYzLVxuLS1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy5yc3Q9NTAyPUZvciBNRElPIGJ1cyBkYXRhLCB3ZSBoYXZlOlxuLS1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy5yc3QtNTA1LVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L3N0bWljcm8vc3RtbWFjLnJzdDo1MDY6ICAgIHN0cnVjdCBzdG1tYWNfbWRpb19idXNfZGF0YSB7XG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMucnN0LTUwNy1cbi0tXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZHNhL2RzYS5yc3Q9NDMyPURTQSBjdXJyZW50bHkgbGV2ZXJhZ2VzIHRoZSBmb2xsb3dpbmcgc3Vic3lzdGVtczpcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kc2EvZHNhLnJzdC00MzMtXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZHNhL2RzYS5yc3Q6NDM0Oi0gTURJTy9QSFkgbGlicmFyeTogYGBkcml2ZXJzL25ldC9waHkvcGh5LmNgYCwgYGBtZGlvX2J1cy5jYGBcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kc2EvZHNhLnJzdC00MzUtLSBTd2l0Y2hkZXY6YGBuZXQvc3dpdGNoZGV2LypgYFxuLS1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9rYXBpLnJzdD0xMTA9UEhZIFN1cHBvcnRcbi0tXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcva2FwaS5yc3QtMTMzLVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2thcGkucnN0OjEzNDouLiBrZXJuZWwtZG9jOjogZHJpdmVycy9uZXQvcGh5L21kaW9fYnVzLmNcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9rYXBpLnJzdC0xMzUtICAgOmV4cG9ydDpcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9rYXBpLnJzdC0xMzYtXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcva2FwaS5yc3Q6MTM3Oi4uIGtlcm5lbC1kb2M6OiBkcml2ZXJzL25ldC9waHkvbWRpb19idXMuY1xuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2thcGkucnN0LTEzOC0gICA6aW50ZXJuYWw6XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9tZWRpYXRlay9tdDc5ODFiLW9wZW53cnQtb25lLmR0cz0xMDg9XHRnbWFjMTogbWFjQDEge1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWVkaWF0ZWsvbXQ3OTgxYi1vcGVud3J0LW9uZS5kdHMtMTE1LVxuYXJjaC9hcm02NC9ib290L2R0cy9tZWRpYXRlay9tdDc5ODFiLW9wZW53cnQtb25lLmR0czoxMTY6XHUwMDI2bWRpb19idXMge1xuYXJjaC9hcm02NC9ib290L2R0cy9tZWRpYXRlay9tdDc5ODFiLW9wZW53cnQtb25lLmR0cy0xMTctXHRwaHkxNTogZXRoZXJuZXQtcGh5QGYge1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWVkaWF0ZWsvbXQ3OTgxYi5kdHNpPTQzMT1cdFx0ZXRoOiBldGhlcm5ldEAxNTEwMDAwMCB7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9tZWRpYXRlay9tdDc5ODFiLmR0c2ktNDc2LVxuYXJjaC9hcm02NC9ib290L2R0cy9tZWRpYXRlay9tdDc5ODFiLmR0c2k6NDc3Olx0XHRcdG1kaW9fYnVzOiBtZGlvLWJ1cyB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21lZGlhdGVrL210Nzk4MWIuZHRzaS00NzgtXHRcdFx0XHQjYWRkcmVzcy1jZWxscyA9IFx1MDAzYzFcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9tZWRpYXRlay9tdDc5ODhhLmR0c2k9OTg4PVx0XHRcdGdtYWMyOiBtYWNAMiB7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9tZWRpYXRlay9tdDc5ODhhLmR0c2ktOTkzLVxuYXJjaC9hcm02NC9ib290L2R0cy9tZWRpYXRlay9tdDc5ODhhLmR0c2k6OTk0Olx0XHRcdG1kaW9fYnVzOiBtZGlvLWJ1cyB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21lZGlhdGVrL210Nzk4OGEuZHRzaS05OTUtXHRcdFx0XHQjYWRkcmVzcy1jZWxscyA9IFx1MDAzYzFcdTAwM2U7XG4tLVxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3o5NDc3LmM9MzIxPXN0YXRpYyBpbnQga3N6OTQ3N19wY3NfY3JlYXRlKHN0cnVjdCBrc3pfZGV2aWNlICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3o5NDc3LmMtMzMyLVxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3o5NDc3LmM6MzMzOlx0YnVzLVx1MDAzZW5hbWUgPSBcJiMzNDtrc3pfcGNzX21kaW9fYnVzXCYjMzQ7O1xuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3o5NDc3LmMtMzM0LVx0c25wcmludGYoYnVzLVx1MDAzZWlkLCBNSUlfQlVTX0lEX1NJWkUsIFwmIzM0OyVzLXBjc1wmIzM0Oyxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzel9jb21tb24uYz0yMTI1PWludCBrc3pfcGFyZW50X21kaW9fcmVhZChzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgYWRkciwgaW50IHJlZ251bSlcbi0tXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzel9jb21tb24uYy0yMTI4LVxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3pfY29tbW9uLmM6MjEyOTpcdHJldHVybiBtZGlvYnVzX3JlYWRfbmVzdGVkKGRldi1cdTAwM2VwYXJlbnRfbWRpb19idXMsIGFkZHIsIHJlZ251bSk7XG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzel9jb21tb24uYy0yMTMwLX1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzel9jb21tb24uYz0yMTQ1PWludCBrc3pfcGFyZW50X21kaW9fd3JpdGUoc3RydWN0IG1paV9idXMgKmJ1cywgaW50IGFkZHIsIGludCByZWdudW0sIHUxNiB2YWwpXG4tLVxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3pfY29tbW9uLmMtMjE0OC1cbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6X2NvbW1vbi5jOjIxNDk6XHRyZXR1cm4gbWRpb2J1c193cml0ZV9uZXN0ZWQoZGV2LVx1MDAzZXBhcmVudF9tZGlvX2J1cywgYWRkciwgcmVnbnVtLCB2YWwpO1xuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3pfY29tbW9uLmMtMjE1MC19XG4tLVxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3pfY29tbW9uLmM9MjMyMT1pbnQga3N6X21kaW9fcmVnaXN0ZXIoc3RydWN0IGtzel9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzel9jb21tb24uYy0yMzQ3LVxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3pfY29tbW9uLmM6MjM0ODpcdFx0ZGV2LVx1MDAzZXBhcmVudF9tZGlvX2J1cyA9IHBhcmVudF9idXM7XG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzel9jb21tb24uYy0yMzQ5LVx0fVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6X2NvbW1vbi5oPTIwNj1zdHJ1Y3Qga3N6X2RldmljZSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3pfY29tbW9uLmgtMjU4LVx0LyoqXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzel9jb21tb24uaDoyNTk6XHQgKiBAcGFyZW50X21kaW9fYnVzOiBQb2ludGVyIHRvIHRoZSBleHRlcm5hbCBNRElPIGJ1cyBjb250cm9sbGVyLlxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3pfY29tbW9uLmgtMjYwLVx0ICpcbi0tXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzel9jb21tb24uaC0yNjUtXHQgKi9cbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6X2NvbW1vbi5oOjI2NjpcdHN0cnVjdCBtaWlfYnVzICpwYXJlbnRfbWRpb19idXM7XG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzel9jb21tb24uaC0yNjctXG4tLVxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9sYW45Mzd4X21haW4uYz0xNDM9c3RhdGljIGludCBsYW45Mzd4X2NyZWF0ZV9waHlfYWRkcl9tYXAoc3RydWN0IGtzel9kZXZpY2UgKmRldiwgYm9vbCBzaWRlX21kaW8pXG4tLVxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9sYW45Mzd4X21haW4uYy0yMTAtLyoqXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2xhbjkzN3hfbWFpbi5jOjIxMTogKiBsYW45Mzd4X21kaW9fYnVzX3ByZWluaXQgLSBQcmUtaW5pdGlhbGl6ZSBNRElPIGJ1cyBmb3IgYWNjZXNzaW5nIFBIWXMuXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2xhbjkzN3hfbWFpbi5jLTIxMi0gKiBAZGV2OiBQb2ludGVyIHRvIGRldmljZSBzdHJ1Y3R1cmUuXG4tLVxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9sYW45Mzd4X21haW4uYy0yMjYtICovXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2xhbjkzN3hfbWFpbi5jOjIyNzpzdGF0aWMgaW50IGxhbjkzN3hfbWRpb19idXNfcHJlaW5pdChzdHJ1Y3Qga3N6X2RldmljZSAqZGV2LCBib29sIHNpZGVfbWRpbylcbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAvbGFuOTM3eF9tYWluLmMtMjI4LXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2xhbjkzN3hfbWFpbi5jPTY4NT1zdGF0aWMgaW50IGxhbjkzN3hfbWRpb19yZWdpc3RlcihzdHJ1Y3Qga3N6X2RldmljZSAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAvbGFuOTM3eF9tYWluLmMtNzExLVxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9sYW45Mzd4X21haW4uYzo3MTI6XHRcdGRldi1cdTAwM2VwYXJlbnRfbWRpb19idXMgPSBwYXJlbnRfYnVzO1xuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9sYW45Mzd4X21haW4uYy03MTMtXHR9XG4tLVxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9sYW45Mzd4X21haW4uYy03MjAtXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2xhbjkzN3hfbWFpbi5jOjcyMTpcdHJldCA9IGxhbjkzN3hfbWRpb19idXNfcHJlaW5pdChkZXYsICEhcGFyZW50X2J1cyk7XG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2xhbjkzN3hfbWFpbi5jLTcyMi1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9MTI2PWludCBtdjg4ZTZ4eHhfd2FpdF9iaXQoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgYWRkciwgaW50IHJlZyxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xMzItXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxMzM6c3RydWN0IG1paV9idXMgKm12ODhlNnh4eF9kZWZhdWx0X21kaW9fYnVzKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcClcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTEzNC17XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxMzU6XHRzdHJ1Y3QgbXY4OGU2eHh4X21kaW9fYnVzICptZGlvX2J1cztcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTEzNi1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjEzNzpcdG1kaW9fYnVzID0gbGlzdF9maXJzdF9lbnRyeV9vcl9udWxsKFx1MDAyNmNoaXAtXHUwMDNlbWRpb3MsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxMzg6XHRcdFx0XHRcdCAgICBzdHJ1Y3QgbXY4OGU2eHh4X21kaW9fYnVzLCBsaXN0KTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjEzOTpcdGlmICghbWRpb19idXMpXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xNDAtXHRcdHJldHVybiBOVUxMO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTQxLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MTQyOlx0cmV0dXJuIG1kaW9fYnVzLVx1MDAzZWJ1cztcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTE0My19XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9Mzc1Nz1zdGF0aWMgaW50IG12ODhlNnh4eF9tZGlvX3JlYWQoc3RydWN0IG1paV9idXMgKmJ1cywgaW50IHBoeSwgaW50IHJlZylcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM3NTgte1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Mzc1OTpcdHN0cnVjdCBtdjg4ZTZ4eHhfbWRpb19idXMgKm1kaW9fYnVzID0gYnVzLVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozNzYwOlx0c3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwID0gbWRpb19idXMtXHUwMDNlY2hpcDtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM3NjEtXHR1MTYgcHJvZF9pZDtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz0zNzgzPXN0YXRpYyBpbnQgbXY4OGU2eHh4X21kaW9fcmVhZF9jNDUoc3RydWN0IG1paV9idXMgKmJ1cywgaW50IHBoeSwgaW50IGRldmFkLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM3ODUte1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Mzc4NjpcdHN0cnVjdCBtdjg4ZTZ4eHhfbWRpb19idXMgKm1kaW9fYnVzID0gYnVzLVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozNzg3Olx0c3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwID0gbWRpb19idXMtXHUwMDNlY2hpcDtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM3ODgtXHR1MTYgdmFsO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTM4MDE9c3RhdGljIGludCBtdjg4ZTZ4eHhfbWRpb193cml0ZShzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgcGh5LCBpbnQgcmVnLCB1MTYgdmFsKVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzgwMi17XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozODAzOlx0c3RydWN0IG12ODhlNnh4eF9tZGlvX2J1cyAqbWRpb19idXMgPSBidXMtXHUwMDNlcHJpdjtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM4MDQ6XHRzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAgPSBtZGlvX2J1cy1cdTAwM2VjaGlwO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzgwNS1cdGludCBlcnI7XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9MzgxNz1zdGF0aWMgaW50IG12ODhlNnh4eF9tZGlvX3dyaXRlX2M0NShzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgcGh5LCBpbnQgZGV2YWQsXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzgxOS17XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozODIwOlx0c3RydWN0IG12ODhlNnh4eF9tZGlvX2J1cyAqbWRpb19idXMgPSBidXMtXHUwMDNlcHJpdjtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM4MjE6XHRzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAgPSBtZGlvX2J1cy1cdTAwM2VjaGlwO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzgyMi1cdGludCBlcnI7XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9MzgzND1zdGF0aWMgaW50IG12ODhlNnh4eF9tZGlvX3JlZ2lzdGVyKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zODM4LVx0c3RhdGljIGludCBpbmRleDtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM4Mzk6XHRzdHJ1Y3QgbXY4OGU2eHh4X21kaW9fYnVzICptZGlvX2J1cztcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM4NDAtXHRzdHJ1Y3QgbWlpX2J1cyAqYnVzO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM4NTQtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozODU1Olx0YnVzID0gbWRpb2J1c19hbGxvY19zaXplKHNpemVvZigqbWRpb19idXMpKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM4NTYtXHRpZiAoIWJ1cylcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zODU4LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Mzg1OTpcdG1kaW9fYnVzID0gYnVzLVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozODYwOlx0bWRpb19idXMtXHUwMDNlYnVzID0gYnVzO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Mzg2MTpcdG1kaW9fYnVzLVx1MDAzZWNoaXAgPSBjaGlwO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Mzg2MjpcdElOSVRfTElTVF9IRUFEKFx1MDAyNm1kaW9fYnVzLVx1MDAzZWxpc3QpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Mzg2MzpcdG1kaW9fYnVzLVx1MDAzZWV4dGVybmFsID0gZXh0ZXJuYWw7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zODY0LVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM4OTUtXHRpZiAoZXh0ZXJuYWwpXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozODk2Olx0XHRsaXN0X2FkZF90YWlsKFx1MDAyNm1kaW9fYnVzLVx1MDAzZWxpc3QsIFx1MDAyNmNoaXAtXHUwMDNlbWRpb3MpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzg5Ny1cdGVsc2VcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM4OTg6XHRcdGxpc3RfYWRkKFx1MDAyNm1kaW9fYnVzLVx1MDAzZWxpc3QsIFx1MDAyNmNoaXAtXHUwMDNlbWRpb3MpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzg5OS1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz0zOTA3PXN0YXRpYyB2b2lkIG12ODhlNnh4eF9tZGlvc191bnJlZ2lzdGVyKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcClcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zOTA5LXtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM5MTA6XHRzdHJ1Y3QgbXY4OGU2eHh4X21kaW9fYnVzICptZGlvX2J1cywgKnA7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zOTExLVx0c3RydWN0IG1paV9idXMgKmJ1cztcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM5MTItXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozOTEzOlx0bGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKG1kaW9fYnVzLCBwLCBcdTAwMjZjaGlwLVx1MDAzZW1kaW9zLCBsaXN0KSB7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozOTE0Olx0XHRidXMgPSBtZGlvX2J1cy1cdTAwM2VidXM7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zOTE1LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzkxNjpcdFx0aWYgKCFtZGlvX2J1cy1cdTAwM2VleHRlcm5hbClcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM5MTctXHRcdFx0bXY4OGU2eHh4X2cyX2lycV9tZGlvX2ZyZWUoY2hpcCwgYnVzKTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz0zOTgwPXN0YXRpYyBpbnQgbXY4OGU2eHh4X3NldHVwKHN0cnVjdCBkc2Ffc3dpdGNoICpkcylcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zOTkxLVx0Y2hpcC1cdTAwM2VkcyA9IGRzO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Mzk5MjpcdGRzLVx1MDAzZXVzZXJfbWlpX2J1cyA9IG12ODhlNnh4eF9kZWZhdWx0X21kaW9fYnVzKGNoaXApO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzk5My1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuaD00ODg9c3RydWN0IG12ODhlNnh4eF9idXNfb3BzIHtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuaC00OTMtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuaDo0OTQ6c3RydWN0IG12ODhlNnh4eF9tZGlvX2J1cyB7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuaC00OTUtXHRzdHJ1Y3QgbWlpX2J1cyAqYnVzO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5oPTg3Mz1pbnQgbXY4OGU2eHh4X3dhaXRfYml0KHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IGFkZHIsIGludCByZWcsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuaC04NzQtXHRcdCAgICAgICBpbnQgYml0LCBpbnQgdmFsKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5oOjg3NTpzdHJ1Y3QgbWlpX2J1cyAqbXY4OGU2eHh4X2RlZmF1bHRfbWRpb19idXMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5oLTg3Ni1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDIuYz03ODc9aW50IG12ODhlNnh4eF9nMl9zbWlfcGh5X3JlYWRfYzIyKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDIuYy03OTAte1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyLmM6NzkxOlx0c3RydWN0IG12ODhlNnh4eF9tZGlvX2J1cyAqbWRpb19idXMgPSBidXMtXHUwMDNlcHJpdjtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMi5jOjc5MjpcdGJvb2wgZXh0ZXJuYWwgPSBtZGlvX2J1cy1cdTAwM2VleHRlcm5hbDtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMi5jLTc5My1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDIuYz03OTg9aW50IG12ODhlNnh4eF9nMl9zbWlfcGh5X3JlYWRfYzQ1KHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDIuYy04MDEte1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyLmM6ODAyOlx0c3RydWN0IG12ODhlNnh4eF9tZGlvX2J1cyAqbWRpb19idXMgPSBidXMtXHUwMDNlcHJpdjtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMi5jOjgwMzpcdGJvb2wgZXh0ZXJuYWwgPSBtZGlvX2J1cy1cdTAwM2VleHRlcm5hbDtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMi5jLTgwNC1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDIuYz04MDk9aW50IG12ODhlNnh4eF9nMl9zbWlfcGh5X3dyaXRlX2MyMihzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyLmMtODEyLXtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMi5jOjgxMzpcdHN0cnVjdCBtdjg4ZTZ4eHhfbWRpb19idXMgKm1kaW9fYnVzID0gYnVzLVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDIuYzo4MTQ6XHRib29sIGV4dGVybmFsID0gbWRpb19idXMtXHUwMDNlZXh0ZXJuYWw7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDIuYy04MTUtXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyLmM9ODIwPWludCBtdjg4ZTZ4eHhfZzJfc21pX3BoeV93cml0ZV9jNDUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMi5jLTgyMy17XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDIuYzo4MjQ6XHRzdHJ1Y3QgbXY4OGU2eHh4X21kaW9fYnVzICptZGlvX2J1cyA9IGJ1cy1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyLmM6ODI1Olx0Ym9vbCBleHRlcm5hbCA9IG1kaW9fYnVzLVx1MDAzZWV4dGVybmFsO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyLmMtODI2LVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcGNzLTYzNTIuYz0zMjE9c3RhdGljIGludCBtdjg4ZTYzNTJfcGNzX2luaXQoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydClcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3Bjcy02MzUyLmMtMzMzLVx0aXJxID0gbXY4OGU2eHh4X3NlcmRlc19pcnFfbWFwcGluZyhjaGlwLCBwb3J0KTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcGNzLTYzNTIuYzozMzQ6XHRidXMgPSBtdjg4ZTZ4eHhfZGVmYXVsdF9tZGlvX2J1cyhjaGlwKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcGNzLTYzNTIuYy0zMzUtXHRkZXYgPSBjaGlwLVx1MDAzZWRldjtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3Bjcy02Mzl4LmM9NTQ5PXN0YXRpYyBpbnQgbXY4OGU2MzkwX3Bjc19pbml0KHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9wY3MtNjM5eC5jLTU1OS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcGNzLTYzOXguYzo1NjA6XHRidXMgPSBtdjg4ZTZ4eHhfZGVmYXVsdF9tZGlvX2J1cyhjaGlwKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcGNzLTYzOXguYy01NjEtXHRkZXYgPSBjaGlwLVx1MDAzZWRldjtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3Bjcy02Mzl4LmM9OTI3PXN0YXRpYyBpbnQgbXY4OGU2MzkzeF9wY3NfaW5pdChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0KVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcGNzLTYzOXguYy05MzctXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3Bjcy02Mzl4LmM6OTM4Olx0YnVzID0gbXY4OGU2eHh4X2RlZmF1bHRfbWRpb19idXMoY2hpcCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3Bjcy02Mzl4LmMtOTM5LVx0ZGV2ID0gY2hpcC1cdTAwM2VkZXY7XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9waHkuYz0yOD1pbnQgbXY4OGU2eHh4X3BoeV9yZWFkKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBoeSwgaW50IHJlZywgdTE2ICp2YWwpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9waHkuYy0zMi1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcGh5LmM6MzM6XHRidXMgPSBtdjg4ZTZ4eHhfZGVmYXVsdF9tZGlvX2J1cyhjaGlwKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcGh5LmMtMzQtXHRpZiAoIWJ1cylcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BoeS5jPTQzPWludCBtdjg4ZTZ4eHhfcGh5X3dyaXRlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBoeSwgaW50IHJlZywgdTE2IHZhbClcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BoeS5jLTQ3LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9waHkuYzo0ODpcdGJ1cyA9IG12ODhlNnh4eF9kZWZhdWx0X21kaW9fYnVzKGNoaXApO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9waHkuYy00OS1cdGlmICghYnVzKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcGh5LmM9NTg9aW50IG12ODhlNnh4eF9waHlfcmVhZF9jNDUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcGh5LCBpbnQgZGV2YWQsXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9waHkuYy02My1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcGh5LmM6NjQ6XHRidXMgPSBtdjg4ZTZ4eHhfZGVmYXVsdF9tZGlvX2J1cyhjaGlwKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcGh5LmMtNjUtXHRpZiAoIWJ1cylcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BoeS5jPTc0PWludCBtdjg4ZTZ4eHhfcGh5X3dyaXRlX2M0NShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwaHksIGludCBkZXZhZCxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BoeS5jLTc5LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9waHkuYzo4MDpcdGJ1cyA9IG12ODhlNnh4eF9kZWZhdWx0X21kaW9fYnVzKGNoaXApO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9waHkuYy04MS1cdGlmICghYnVzKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9uZXRjL25ldGNfbWFpbi5jPTEzMz1zdGF0aWMgaW50IG5ldGNfcG9ydF9nZXRfaW5mb19mcm9tX2R0KHN0cnVjdCBuZXRjX3BvcnQgKm5wLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9uZXRjL25ldGNfbWFpbi5jLTE0OC1cbmRyaXZlcnMvbmV0L2RzYS9uZXRjL25ldGNfbWFpbi5jOjE0OTpzdGF0aWMgaW50IG5ldGNfcG9ydF9jcmVhdGVfZW1kaW9fYnVzKHN0cnVjdCBuZXRjX3BvcnQgKm5wLFxuZHJpdmVycy9uZXQvZHNhL25ldGMvbmV0Y19tYWluLmMtMTUwLVx0XHRcdFx0ICAgICAgc3RydWN0IGRldmljZV9ub2RlICpub2RlKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9uZXRjL25ldGNfbWFpbi5jLTE4OS1cbmRyaXZlcnMvbmV0L2RzYS9uZXRjL25ldGNfbWFpbi5jOjE5MDpzdGF0aWMgaW50IG5ldGNfcG9ydF9jcmVhdGVfbWRpb19idXMoc3RydWN0IG5ldGNfcG9ydCAqbnAsXG5kcml2ZXJzL25ldC9kc2EvbmV0Yy9uZXRjX21haW4uYy0xOTEtXHRcdFx0XHQgICAgIHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSlcbi0tXG5kcml2ZXJzL25ldC9kc2EvbmV0Yy9uZXRjX21haW4uYy0xOTctXHRpZiAobWRpb19ub2RlKSB7XG5kcml2ZXJzL25ldC9kc2EvbmV0Yy9uZXRjX21haW4uYzoxOTg6XHRcdGVyciA9IG5ldGNfcG9ydF9jcmVhdGVfZW1kaW9fYnVzKG5wLCBtZGlvX25vZGUpO1xuZHJpdmVycy9uZXQvZHNhL25ldGMvbmV0Y19tYWluLmMtMTk5LVx0XHRvZl9ub2RlX3B1dChtZGlvX25vZGUpO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9uZXRjL25ldGNfbWFpbi5jPTI0MT1zdGF0aWMgaW50IG5ldGNfaW5pdF9hbGxfcG9ydHMoc3RydWN0IG5ldGNfc3dpdGNoICpwcml2KVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9uZXRjL25ldGNfbWFpbi5jLTI4My1cdFx0aWYgKGRzYV9wb3J0X2lzX3VzZXIoZHApKSB7XG5kcml2ZXJzL25ldC9kc2EvbmV0Yy9uZXRjX21haW4uYzoyODQ6XHRcdFx0ZXJyID0gbmV0Y19wb3J0X2NyZWF0ZV9tZGlvX2J1cyhucCwgZHAtXHUwMDNlZG4pO1xuZHJpdmVycy9uZXQvZHNhL25ldGMvbmV0Y19tYWluLmMtMjg1LVx0XHRcdGlmIChlcnIpIHtcbi0tXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L2ZlbGl4LmM9MTUxNz1zdGF0aWMgaW50IGZlbGl4X2luaXRfc3RydWN0cyhzdHJ1Y3QgZmVsaXggKmZlbGl4LCBpbnQgbnVtX3BoeXNfcG9ydHMpXG4tLVxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9mZWxpeC5jLTE2MDItXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L2ZlbGl4LmM6MTYwMzpcdGlmIChmZWxpeC1cdTAwM2VpbmZvLVx1MDAzZW1kaW9fYnVzX2FsbG9jKSB7XG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L2ZlbGl4LmM6MTYwNDpcdFx0ZXJyID0gZmVsaXgtXHUwMDNlaW5mby1cdTAwM2VtZGlvX2J1c19hbGxvYyhvY2Vsb3QpO1xuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9mZWxpeC5jLTE2MDUtXHRcdGlmIChlcnIgXHUwMDNjIDApXG4tLVxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9mZWxpeC5jPTE2OTY9c3RhdGljIGludCBmZWxpeF9zZXR1cChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpXG4tLVxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9mZWxpeC5jLTE3Njgtb3V0X21kaW9idXNfZnJlZTpcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXguYzoxNzY5Olx0aWYgKGZlbGl4LVx1MDAzZWluZm8tXHUwMDNlbWRpb19idXNfZnJlZSlcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXguYzoxNzcwOlx0XHRmZWxpeC1cdTAwM2VpbmZvLVx1MDAzZW1kaW9fYnVzX2ZyZWUob2NlbG90KTtcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXguYy0xNzcxLVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXguYz0xNzc1PXN0YXRpYyB2b2lkIGZlbGl4X3RlYXJkb3duKHN0cnVjdCBkc2Ffc3dpdGNoICpkcylcbi0tXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L2ZlbGl4LmMtMTc5Mi1cbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXguYzoxNzkzOlx0aWYgKGZlbGl4LVx1MDAzZWluZm8tXHUwMDNlbWRpb19idXNfZnJlZSlcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXguYzoxNzk0Olx0XHRmZWxpeC1cdTAwM2VpbmZvLVx1MDAzZW1kaW9fYnVzX2ZyZWUob2NlbG90KTtcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXguYy0xNzk1LX1cbi0tXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L2ZlbGl4Lmg9MjI9c3RydWN0IGZlbGl4X2luZm8ge1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXguaC01NS1cbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXguaDo1NjpcdGludFx0KCptZGlvX2J1c19hbGxvYykoc3RydWN0IG9jZWxvdCAqb2NlbG90KTtcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXguaDo1NzpcdHZvaWRcdCgqbWRpb19idXNfZnJlZSkoc3RydWN0IG9jZWxvdCAqb2NlbG90KTtcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXguaC01OC1cdGludFx0KCpwb3J0X3NldHVwX3RjKShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXhfdnNjOTk1OS5jPTk1MT1zdGF0aWMgdm9pZCB2c2M5OTU5X3dtX3N0YXQodTMyIHZhbCwgdTMyICppbnVzZSwgdTMyICptYXh1c2UpXG4tLVxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9mZWxpeF92c2M5OTU5LmMtOTU2LVxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9mZWxpeF92c2M5OTU5LmM6OTU3OnN0YXRpYyBpbnQgdnNjOTk1OV9tZGlvX2J1c19hbGxvYyhzdHJ1Y3Qgb2NlbG90ICpvY2Vsb3QpXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L2ZlbGl4X3ZzYzk5NTkuYy05NTgte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXhfdnNjOTk1OS5jLTEwNDQtXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L2ZlbGl4X3ZzYzk5NTkuYzoxMDQ1OnN0YXRpYyB2b2lkIHZzYzk5NTlfbWRpb19idXNfZnJlZShzdHJ1Y3Qgb2NlbG90ICpvY2Vsb3QpXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L2ZlbGl4X3ZzYzk5NTkuYy0xMDQ2LXtcbi0tXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L2ZlbGl4X3ZzYzk5NTkuYz0yNjU5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmVsaXhfaW5mbyBmZWxpeF9pbmZvX3ZzYzk5NTkgPSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9mZWxpeF92c2M5OTU5LmMtMjY3NS1cdC5wdHBfY2Fwc1x0XHQ9IFx1MDAyNnZzYzk5NTlfcHRwX2NhcHMsXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L2ZlbGl4X3ZzYzk5NTkuYzoyNjc2Olx0Lm1kaW9fYnVzX2FsbG9jXHRcdD0gdnNjOTk1OV9tZGlvX2J1c19hbGxvYyxcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXhfdnNjOTk1OS5jOjI2Nzc6XHQubWRpb19idXNfZnJlZVx0XHQ9IHZzYzk5NTlfbWRpb19idXNfZnJlZSxcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXhfdnNjOTk1OS5jLTI2NzgtXHQucG9ydF9tb2Rlc1x0XHQ9IHZzYzk5NTlfcG9ydF9tb2Rlcyxcbi0tXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L3NldmlsbGVfdnNjOTk1My5jPTg2OT1zdGF0aWMgY29uc3Qgc3RydWN0IG9jZWxvdF9vcHMgdnNjOTk1M19vcHMgPSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9zZXZpbGxlX3ZzYzk5NTMuYy04NzctXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L3NldmlsbGVfdnNjOTk1My5jOjg3ODpzdGF0aWMgaW50IHZzYzk5NTNfbWRpb19idXNfYWxsb2Moc3RydWN0IG9jZWxvdCAqb2NlbG90KVxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9zZXZpbGxlX3ZzYzk5NTMuYy04Nzkte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3Qvc2V2aWxsZV92c2M5OTUzLmMtOTM0LVxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9zZXZpbGxlX3ZzYzk5NTMuYzo5MzU6c3RhdGljIHZvaWQgdnNjOTk1M19tZGlvX2J1c19mcmVlKHN0cnVjdCBvY2Vsb3QgKm9jZWxvdClcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3Qvc2V2aWxsZV92c2M5OTUzLmMtOTM2LXtcbi0tXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L3NldmlsbGVfdnNjOTk1My5jPTk1MD1zdGF0aWMgY29uc3Qgc3RydWN0IGZlbGl4X2luZm8gc2V2aWxsZV9pbmZvX3ZzYzk5NTMgPSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9zZXZpbGxlX3ZzYzk5NTMuYy05NjQtXHQubnVtX3BvcnRzXHRcdD0gVlNDOTk1M19OVU1fUE9SVFMsXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L3NldmlsbGVfdnNjOTk1My5jOjk2NTpcdC5tZGlvX2J1c19hbGxvY1x0XHQ9IHZzYzk5NTNfbWRpb19idXNfYWxsb2MsXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L3NldmlsbGVfdnNjOTk1My5jOjk2NjpcdC5tZGlvX2J1c19mcmVlXHRcdD0gdnNjOTk1M19tZGlvX2J1c19mcmVlLFxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9zZXZpbGxlX3ZzYzk5NTMuYy05NjctXHQucG9ydF9tb2Rlc1x0XHQ9IHZzYzk5NTNfcG9ydF9tb2Rlcyxcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz04MDc9c3RhdGljIGludFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6ODA4OnFjYThrX21kaW9fYnVzeV93YWl0KHN0cnVjdCBtaWlfYnVzICpidXMsIHUzMiByZWcsIHUzMiBtYXNrKVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtODA5LXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz04MzA9cWNhOGtfbWRpb193cml0ZShzdHJ1Y3QgcWNhOGtfcHJpdiAqcHJpdiwgaW50IHBoeSwgaW50IHJlZ251bSwgdTE2IGRhdGEpXG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtODU0LVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6ODU1Olx0cmV0ID0gcWNhOGtfbWRpb19idXN5X3dhaXQoYnVzLCBRQ0E4S19NRElPX01BU1RFUl9DVFJMLFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtODU2LVx0XHRcdFx0ICAgUUNBOEtfTURJT19NQVNURVJfQlVTWSk7XG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9ODY4PXFjYThrX21kaW9fcmVhZChzdHJ1Y3QgcWNhOGtfcHJpdiAqcHJpdiwgaW50IHBoeSwgaW50IHJlZ251bSlcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy04OTEtXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo4OTI6XHRyZXQgPSBxY2E4a19tZGlvX2J1c3lfd2FpdChidXMsIFFDQThLX01ESU9fTUFTVEVSX0NUUkwsXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy04OTMtXHRcdFx0XHQgICBRQ0E4S19NRElPX01BU1RFUl9CVVNZKTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz05NjE9cWNhOGtfbWRpb19yZWdpc3RlcihzdHJ1Y3QgcWNhOGtfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy05NzgtXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo5Nzk6XHRwcml2LVx1MDAzZWludGVybmFsX21kaW9fYnVzID0gYnVzO1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtOTgwLVx0YnVzLVx1MDAzZXByaXYgPSAodm9pZCAqKXByaXY7XG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9MTAwOD1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzoxMDA5OnFjYThrX3NldHVwX21kaW9fYnVzKHN0cnVjdCBxY2E4a19wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMTAxMC17XG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9MTg1Nz1xY2E4a19zZXR1cChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpXG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMTg3NC1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjE4NzU6XHRyZXQgPSBxY2E4a19zZXR1cF9tZGlvX2J1cyhwcml2KTtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTE4NzYtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstbGVkcy5jPTM2NT1xY2E4a19wYXJzZV9wb3J0X2xlZHMoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIHN0cnVjdCBmd25vZGVfaGFuZGxlICpwb3J0LCBpbnQgcG9ydF9udW0pXG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1sZWRzLmMtNDMxLVx0XHRpbml0X2RhdGEuZGV2aWNlbmFtZSA9IGthc3ByaW50ZihHRlBfS0VSTkVMLCBcJiMzNDslczowJWRcJiMzNDssXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWxlZHMuYzo0MzI6XHRcdFx0XHRcdFx0IHByaXYtXHUwMDNlaW50ZXJuYWxfbWRpb19idXMgP1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1sZWRzLmM6NDMzOlx0XHRcdFx0XHRcdCBwcml2LVx1MDAzZWludGVybmFsX21kaW9fYnVzLVx1MDAzZWlkIDogcHJpdi1cdTAwM2VidXMtXHUwMDNlaWQsXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWxlZHMuYy00MzQtXHRcdFx0XHRcdFx0IHBvcnRfbnVtKTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLmg9NDQ1PXN0cnVjdCBxY2E4a19wcml2IHtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLmgtNDU4LVx0c3RydWN0IG1paV9idXMgKmJ1cztcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGsuaDo0NTk6XHRzdHJ1Y3QgbWlpX2J1cyAqaW50ZXJuYWxfbWRpb19idXM7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLmgtNDYwLVx0c3RydWN0IGRzYV9zd2l0Y2ggKmRzO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS92aXRlc3NlLXZzYzczeHgtY29yZS5jPTUyMT1zdGF0aWMgaW50IHZzYzczeHhfZGV0ZWN0KHN0cnVjdCB2c2M3M3h4ICp2c2MpXG4tLVxuZHJpdmVycy9uZXQvZHNhL3ZpdGVzc2UtdnNjNzN4eC1jb3JlLmMtNjA0LVxuZHJpdmVycy9uZXQvZHNhL3ZpdGVzc2UtdnNjNzN4eC1jb3JlLmM6NjA1OnN0YXRpYyBpbnQgdnNjNzN4eF9tZGlvX2J1c3lfY2hlY2soc3RydWN0IHZzYzczeHggKnZzYylcbmRyaXZlcnMvbmV0L2RzYS92aXRlc3NlLXZzYzczeHgtY29yZS5jLTYwNi17XG4tLVxuZHJpdmVycy9uZXQvZHNhL3ZpdGVzc2UtdnNjNzN4eC1jb3JlLmM9NjIxPXN0YXRpYyBpbnQgdnNjNzN4eF9waHlfcmVhZChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwaHksIGludCByZWdudW0pXG4tLVxuZHJpdmVycy9uZXQvZHNhL3ZpdGVzc2UtdnNjNzN4eC1jb3JlLmMtNjI3LVxuZHJpdmVycy9uZXQvZHNhL3ZpdGVzc2UtdnNjNzN4eC1jb3JlLmM6NjI4Olx0cmV0ID0gdnNjNzN4eF9tZGlvX2J1c3lfY2hlY2sodnNjKTtcbmRyaXZlcnMvbmV0L2RzYS92aXRlc3NlLXZzYzczeHgtY29yZS5jLTYyOS1cdGlmIChyZXQpXG4tLVxuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzEwIDA3OjE3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE4ODU5CgkJCQkJCQlvdXRwdXQ6IDE4CgkJCQkJCQl0aG91Z2h0czogMjA1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk1ESU8gJmFtcDsgUUNBOEsgRHJpdmVyIEZ1enppbmcgLSBBIFF1aWNrIEFzc2Vzc21lbnQqKgoKT2theSwgc28gc3l6a2FsbGVyICptaWdodCogYmUgYWJsZSB0byB0b3VjaCBNRElPLiBCdXQgd2FpdCwgTURJTyBpdHNlbGYgaXMganVzdCBhIGJ1cywgcmlnaHQ/IEl0JiMzOTtzIG5vdCBhIGRyaXZlciBpbiB0aGUgd2F5IHdlIHVzdWFsbHkgdGhpbmsgb2YgdGhlbS4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIGRvZXMgUUVNVSBldmVuICpoYXZlKiBhbiBNRElPIGVtdWxhdG9yPyBZZWFoLCBzb21lIFNvQ3MgZG8sIHRoYXQmIzM5O3MgcmlnaHQuIEhvd2V2ZXIsIEkmIzM5O20gcHJldHR5IHN1cmUgc3l6a2FsbGVyIHVzdWFsbHkgYnlwYXNzZXMgaGFyZHdhcmUgc3BlY2lmaWMgZHJpdmVycyB1bmxlc3MgdGhlcmUmIzM5O3MgYSBuZXRsaW5rL3N5c2ZzIGludGVyZmFjZSBvciBhIGR1bW15IGRyaXZlciBhdmFpbGFibGUuCgpSaWdodCwgbGV0JiMzOTtzIHNlZSBpZiB3ZSBjYW4gZXZlbiAqcmVhY2gqIGBxY2E4ay04eHh4LmNgLiBJcyB0aGVyZSBhIGNsZXZlciB3YXkgdG8gaW5zdGFudGlhdGUgaXQgd2l0aCBhIGRldmljZSB0cmVlIG92ZXJsYXkgd2l0aGluIHRoZSBzeXprYWxsZXIgY29udGV4dD8gSSByZW1lbWJlciBgc3l6X21vdW50X2ltYWdlYCwgb3Igc29tZXRoaW5nIHNpbWlsYXIsIGJ1dCB0aGF0IHR5cGljYWxseSB3b24mIzM5O3QgaW5zdGFudGlhdGUgcmFuZG9tIHBsYXRmb3JtIGRldmljZXMgb3IgTURJTyBkZXZpY2VzIHVubGVzcyB0aGVyZSYjMzk7cyBhIGRlZGljYXRlZCBwc2V1ZG8tc3lzY2FsbC4KCkhhbmcgb24uLi4gSSBzaG91bGQgYmUgdGhpbmtpbmcgbW9yZSBicm9hZGx5LiBTeXprYWxsZXIgaGFzIGBzeXpfZ2VuZXRsaW5rX2dldF9mYW1pbHlgIGFuZCBgc3l6X29wZW5fZGV2YCBhbmQgc28gb24sIHJpZ2h0PyBTbyBpdCBtaWdodCBiZSBwb3NzaWJsZS4KCk9rYXksIGxldCYjMzk7cyBjdXQgdGhlIHNwZWN1bGF0aW9uLiBUaW1lIHRvIGp1c3QgY2hlY2sgdGhlIHN5emthbGxlciBkZXNjcmlwdGlvbnMuIEkgbmVlZCB0byBzZWUgaWYgdGhlcmUmIzM5O3MgKmFueSogbWVudGlvbiBvZiBNRElPIG9yIHRoZSBRQ0E4SyBmYW1pbHkuIFRoYXQmIzM5O3MgdGhlIGZpcnN0IHN0ZXAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzEwIDA3OjE3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3FjYThrJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxOTk5IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svcWNvbSxxY2E4ay1uc3NjYy55YW1sLTMtLS0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svcWNvbSxxY2E4ay1uc3NjYy55YW1sOjQ6JGlkOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvc2NoZW1hcy9jbG9jay9xY29tLHFjYThrLW5zc2NjLnlhbWwjXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svcWNvbSxxY2E4ay1uc3NjYy55YW1sLTUtJHNjaGVtYTogaHR0cDovL2RldmljZXRyZWUub3JnL21ldGEtc2NoZW1hcy9jb3JlLnlhbWwjXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL3Fjb20scWNhOGstbnNzY2MueWFtbD0xMz1kZXNjcmlwdGlvbjogfFxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9xY29tLHFjYThrLW5zc2NjLnlhbWwtMTctICBTZWUgYWxzbzo6XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svcWNvbSxxY2E4ay1uc3NjYy55YW1sOjE4OiAgICBpbmNsdWRlL2R0LWJpbmRpbmdzL2Nsb2NrL3Fjb20scWNhOGstbnNzY2MuaFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL3Fjb20scWNhOGstbnNzY2MueWFtbDoxOTogICAgaW5jbHVkZS9kdC1iaW5kaW5ncy9yZXNldC9xY29tLHFjYThrLW5zc2NjLmhcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9xY29tLHFjYThrLW5zc2NjLnlhbWwtMjAtXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL3Fjb20scWNhOGstbnNzY2MueWFtbD02Mz1leGFtcGxlczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svcWNvbSxxY2E4ay1uc3NjYy55YW1sLTc0LSAgICAgICAgY2xvY2tzID0gXHUwMDNjXHUwMDI2cGNzMF9wbGxcdTAwM2UsXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svcWNvbSxxY2E4ay1uc3NjYy55YW1sOjc1OiAgICAgICAgICAgICAgICAgXHUwMDNjXHUwMDI2cWNhOGtfdW5pcGh5MF9yeFx1MDAzZSxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9xY29tLHFjYThrLW5zc2NjLnlhbWw6NzY6ICAgICAgICAgICAgICAgICBcdTAwM2NcdTAwMjZxY2E4a191bmlwaHkwX3R4XHUwMDNlLFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL3Fjb20scWNhOGstbnNzY2MueWFtbDo3NzogICAgICAgICAgICAgICAgIFx1MDAzY1x1MDAyNnFjYThrX3VuaXBoeTFfcnhcdTAwM2UsXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svcWNvbSxxY2E4ay1uc3NjYy55YW1sOjc4OiAgICAgICAgICAgICAgICAgXHUwMDNjXHUwMDI2cWNhOGtfdW5pcGh5MV90eFx1MDAzZSxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9xY29tLHFjYThrLW5zc2NjLnlhbWw6Nzk6ICAgICAgICAgICAgICAgICBcdTAwM2NcdTAwMjZxY2E4a191bmlwaHkxX3J4MzEycDVtXHUwMDNlLFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL3Fjb20scWNhOGstbnNzY2MueWFtbDo4MDogICAgICAgICAgICAgICAgIFx1MDAzY1x1MDAyNnFjYThrX3VuaXBoeTFfdHgzMTJwNW1cdTAwM2U7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svcWNvbSxxY2E4ay1uc3NjYy55YW1sLTgxLSAgICAgICAgI2Nsb2NrLWNlbGxzID0gXHUwMDNjMVx1MDAzZTtcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9xY2E4ay55YW1sLTMtLS0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9xY2E4ay55YW1sOjQ6JGlkOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvc2NoZW1hcy9uZXQvZHNhL3FjYThrLnlhbWwjXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9xY2E4ay55YW1sLTUtJHNjaGVtYTogaHR0cDovL2RldmljZXRyZWUub3JnL21ldGEtc2NoZW1hcy9jb3JlLnlhbWwjXG4tLVxuZHJpdmVycy9jbGsvcWNvbS9LY29uZmlnPTUwMz1jb25maWcgSVBRX05TU0NDX1FDQThLXG4tLVxuZHJpdmVycy9jbGsvcWNvbS9LY29uZmlnLTUwOS1cdCAgU2F5IFkgb3IgTSBpZiB5b3Ugd2FudCB0byB1c2UgbmV0d29yayBmZWF0dXJlcyBvZiBzd2l0Y2ggb3JcbmRyaXZlcnMvY2xrL3Fjb20vS2NvbmZpZzo1MTA6XHQgIFBIWSBkZXZpY2UuIFNlbGVjdCB0aGlzIGZvciB0aGUgcm9vdCBjbG9jayBvZiBxY2E4ay5cbmRyaXZlcnMvY2xrL3Fjb20vS2NvbmZpZy01MTEtXG4tLVxuZHJpdmVycy9jbGsvcWNvbS9NYWtlZmlsZT02Nz1vYmotJChDT05GSUdfSVBRX0xDQ184MDZYKSAmIzQzOz0gbGNjLWlwcTgwNngub1xuZHJpdmVycy9jbGsvcWNvbS9NYWtlZmlsZTo2ODpvYmotJChDT05GSUdfSVBRX05TU0NDX1FDQThLKSAmIzQzOz0gbnNzY2MtcWNhOGsub1xuZHJpdmVycy9jbGsvcWNvbS9NYWtlZmlsZS02OS1vYmotJChDT05GSUdfTURNX0dDQ185NjA3KSAmIzQzOz0gZ2NjLW1kbTk2MDcub1xuLS1cbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0xNS1cbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoxNjojaW5jbHVkZSBcdTAwM2NkdC1iaW5kaW5ncy9jbG9jay9xY29tLHFjYThrLW5zc2NjLmhcdTAwM2VcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoxNzojaW5jbHVkZSBcdTAwM2NkdC1iaW5kaW5ncy9yZXNldC9xY29tLHFjYThrLW5zc2NjLmhcdTAwM2VcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0xOC1cbi0tXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM9MTgxOT1zdGF0aWMgc3RydWN0IGNsa19icmFuY2ggbnNzX2NjX2dlcGh5M19zeXNfY2xrID0ge1xuLS1cbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0xODM1LVxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjE4MzY6c3RhdGljIHN0cnVjdCBjbGtfcmVnbWFwICpuc3NfY2NfcWNhOGtfY2xvY2tzW10gPSB7XG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMTgzNy1cdFtOU1NfQ0NfU1dJVENIX0NPUkVfQ0xLX1NSQ10gPSBcdTAwMjZuc3NfY2Nfc3dpdGNoX2NvcmVfY2xrX3NyYy5jbGtyLFxuLS1cbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0xOTM4LVxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjE5Mzk6c3RhdGljIGNvbnN0IHN0cnVjdCBxY29tX3Jlc2V0X21hcCBuc3NfY2NfcWNhOGtfcmVzZXRzW10gPSB7XG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMTk0MC1cdFtOU1NfQ0NfU1dJVENIX0NPUkVfQVJFU10gPSB7IDB4YywgMiB9LFxuLS1cbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYz0yMDI0PXN0YXRpYyBpbmxpbmUgdm9pZCBjb252ZXJ0X3JlZ190b19taWlfYWRkcih1MzIgcmVnYWRkciwgdTE2ICpyZWcsIHUxNiAqcGh5X2FkZHIsIHUxNiAqcGFnZSlcbi0tXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjAzMC1cbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMDMxOnN0YXRpYyBpbnQgcWNhOGtfbWlpX3JlYWQoc3RydWN0IG1paV9idXMgKmJ1cywgdTE2IHN3aXRjaF9waHlfaWQsIHUzMiByZWcsIHUzMiAqdmFsKVxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIwMzIte1xuLS1cbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMDQ0LVx0aWYgKHJldCBcdTAwM2MgMClcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMDQ1Olx0XHRkZXZfZXJyX3JhdGVsaW1pdGVkKFx1MDAyNmJ1cy1cdTAwM2VkZXYsIFwmIzM0O2ZhaWwgdG8gcmVhZCBxY2E4ayBtaWkgcmVnaXN0ZXJcXG5cJiMzNDspO1xuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIwNDYtXG4tLVxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIwNDktXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjA1MDpzdGF0aWMgdm9pZCBxY2E4a19taWlfd3JpdGUoc3RydWN0IG1paV9idXMgKmJ1cywgdTE2IHN3aXRjaF9waHlfaWQsIHUzMiByZWcsIHUzMiB2YWwpXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjA1MS17XG4tLVxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIwNTktXHRpZiAocmV0IFx1MDAzYyAwKVxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIwNjA6XHRcdGRldl9lcnJfcmF0ZWxpbWl0ZWQoXHUwMDI2YnVzLVx1MDAzZWRldiwgXCYjMzQ7ZmFpbCB0byB3cml0ZSBxY2E4ayBtaWkgcmVnaXN0ZXJcXG5cJiMzNDspO1xuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIwNjEtfVxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIwNjItXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjA2MzpzdGF0aWMgaW50IHFjYThrX21paV9wYWdlX3NldChzdHJ1Y3QgbWlpX2J1cyAqYnVzLCB1MTYgc3dpdGNoX3BoeV9pZCwgdTMyIHJlZywgdTE2IHBhZ2UpXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjA2NC17XG4tLVxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIwNzMtXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjA3NDpzdGF0aWMgaW50IHFjYThrX3JlZ21hcF9yZWFkKHZvaWQgKmNvbnRleHQsIHVuc2lnbmVkIGludCByZWdhZGRyLCB1bnNpZ25lZCBpbnQgKnZhbClcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMDc1LXtcbi0tXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjA4My1cdG11dGV4X2xvY2soXHUwMDI2YnVzLVx1MDAzZW1kaW9fbG9jayk7XG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjA4NDpcdHJldCA9IHFjYThrX21paV9wYWdlX3NldChidXMsIFFDQThLX0hJR0hfQUREUl9QUkVGSVgsIFFDQThLX0NGR19QQUdFX1JFRywgcGFnZSk7XG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjA4NS1cdGlmIChyZXQgXHUwMDNjIDApXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjA4NjpcdFx0Z290byBxY2E4a19yZWFkX2V4aXQ7XG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjA4Ny1cbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMDg4Olx0cmV0ID0gcWNhOGtfbWlpX3JlYWQoYnVzLCBwaHlfYWRkciwgcmVnLCB2YWwpO1xuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIwODktXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjA5MDpxY2E4a19yZWFkX2V4aXQ6XG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjA5MS1cdG11dGV4X3VubG9jayhcdTAwMjZidXMtXHUwMDNlbWRpb19sb2NrKTtcbi0tXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjA5NC1cbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMDk1OnN0YXRpYyBpbnQgcWNhOGtfcmVnbWFwX3dyaXRlKHZvaWQgKmNvbnRleHQsIHVuc2lnbmVkIGludCByZWdhZGRyLCB1bnNpZ25lZCBpbnQgdmFsKVxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIwOTYte1xuLS1cbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMTA0LVx0bXV0ZXhfbG9jayhcdTAwMjZidXMtXHUwMDNlbWRpb19sb2NrKTtcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMTA1Olx0cmV0ID0gcWNhOGtfbWlpX3BhZ2Vfc2V0KGJ1cywgUUNBOEtfSElHSF9BRERSX1BSRUZJWCwgUUNBOEtfQ0ZHX1BBR0VfUkVHLCBwYWdlKTtcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMTA2LVx0aWYgKHJldCBcdTAwM2MgMClcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMTA3Olx0XHRnb3RvIHFjYThrX3dyaXRlX2V4aXQ7XG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjEwOC1cbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMTA5Olx0cWNhOGtfbWlpX3dyaXRlKGJ1cywgcGh5X2FkZHIsIHJlZywgdmFsKTtcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMTEwLVxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIxMTE6cWNhOGtfd3JpdGVfZXhpdDpcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMTEyLVx0bXV0ZXhfdW5sb2NrKFx1MDAyNmJ1cy1cdTAwM2VtZGlvX2xvY2spO1xuLS1cbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMTE1LVxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIxMTY6c3RhdGljIGludCBxY2E4a19yZWdtYXBfdXBkYXRlX2JpdHModm9pZCAqY29udGV4dCwgdW5zaWduZWQgaW50IHJlZ2FkZHIsXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjExNy1cdFx0XHRcdCAgICB1bnNpZ25lZCBpbnQgbWFzaywgdW5zaWduZWQgaW50IHZhbHVlKVxuLS1cbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMTI3LVx0bXV0ZXhfbG9jayhcdTAwMjZidXMtXHUwMDNlbWRpb19sb2NrKTtcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMTI4Olx0cmV0ID0gcWNhOGtfbWlpX3BhZ2Vfc2V0KGJ1cywgUUNBOEtfSElHSF9BRERSX1BSRUZJWCwgUUNBOEtfQ0ZHX1BBR0VfUkVHLCBwYWdlKTtcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMTI5LVx0aWYgKHJldCBcdTAwM2MgMClcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMTMwOlx0XHRnb3RvIHFjYThrX3VwZGF0ZV9leGl0O1xuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIxMzEtXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjEzMjpcdHJldCA9IHFjYThrX21paV9yZWFkKGJ1cywgcGh5X2FkZHIsIHJlZywgXHUwMDI2dmFsKTtcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMTMzLVx0aWYgKHJldCBcdTAwM2MgMClcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMTM0Olx0XHRnb3RvIHFjYThrX3VwZGF0ZV9leGl0O1xuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIxMzUtXG4tLVxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIxMzctXHR2YWwgfD0gdmFsdWU7XG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjEzODpcdHFjYThrX21paV93cml0ZShidXMsIHBoeV9hZGRyLCByZWcsIHZhbCk7XG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjEzOS1cbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMTQwOnFjYThrX3VwZGF0ZV9leGl0OlxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIxNDEtXHRtdXRleF91bmxvY2soXHUwMDI2YnVzLVx1MDAzZW1kaW9fbG9jayk7XG4tLVxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIxNDQtXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjE0NTpzdGF0aWMgY29uc3Qgc3RydWN0IHJlZ21hcF9jb25maWcgbnNzX2NjX3FjYThrX3JlZ21hcF9jb25maWcgPSB7XG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjE0Ni1cdC5yZWdfYml0cyA9IDEyLFxuLS1cbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMTQ5LVx0Lm1heF9yZWdpc3RlciA9IDB4MzBjLFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIxNTA6XHQucmVnX3JlYWQgPSBxY2E4a19yZWdtYXBfcmVhZCxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMTUxOlx0LnJlZ193cml0ZSA9IHFjYThrX3JlZ21hcF93cml0ZSxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMTUyOlx0LnJlZ191cGRhdGVfYml0cyA9IHFjYThrX3JlZ21hcF91cGRhdGVfYml0cyxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMTUzLVx0LmRpc2FibGVfbG9ja2luZyA9IHRydWUsXG4tLVxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIxNTUtXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjE1NjpzdGF0aWMgY29uc3Qgc3RydWN0IHFjb21fY2NfZGVzYyBuc3NfY2NfcWNhOGtfZGVzYyA9IHtcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMTU3Olx0LmNvbmZpZyA9IFx1MDAyNm5zc19jY19xY2E4a19yZWdtYXBfY29uZmlnLFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIxNTg6XHQuY2xrcyA9IG5zc19jY19xY2E4a19jbG9ja3MsXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjE1OTpcdC5udW1fY2xrcyA9IEFSUkFZX1NJWkUobnNzX2NjX3FjYThrX2Nsb2NrcyksXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjE2MDpcdC5yZXNldHMgPSBuc3NfY2NfcWNhOGtfcmVzZXRzLFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIxNjE6XHQubnVtX3Jlc2V0cyA9IEFSUkFZX1NJWkUobnNzX2NjX3FjYThrX3Jlc2V0cyksXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjE2Mi19O1xuLS1cbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMTY3LSAqL1xuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIxNjg6c3RhdGljIGludCBuc3NfY2NfcWNhOGtfY2xvY2tfZW5hYmxlX2FuZF9yZXNldChzdHJ1Y3QgZGV2aWNlICpkZXYpXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjE2OS17XG4tLVxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIxODctXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjE4ODpzdGF0aWMgaW50IG5zc19jY19xY2E4a19wcm9iZShzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjE4OS17XG4tLVxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIxOTItXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjE5MzpcdHJldCA9IG5zc19jY19xY2E4a19jbG9ja19lbmFibGVfYW5kX3Jlc2V0KFx1MDAyNm1kaW9kZXYtXHUwMDNlZGV2KTtcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMTk0LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjE5Ni1cbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMTk3Olx0cmVnbWFwID0gZGV2bV9yZWdtYXBfaW5pdChcdTAwMjZtZGlvZGV2LVx1MDAzZWRldiwgTlVMTCwgbWRpb2Rldi1cdTAwM2VidXMsIG5zc19jY19xY2E4a19kZXNjLmNvbmZpZyk7XG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjE5OC1cdGlmIChJU19FUlIocmVnbWFwKSlcbi0tXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjIwMC1cbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMjAxOlx0cmV0dXJuIHFjb21fY2NfcmVhbGx5X3Byb2JlKFx1MDAyNm1kaW9kZXYtXHUwMDNlZGV2LCBcdTAwMjZuc3NfY2NfcWNhOGtfZGVzYywgcmVnbWFwKTtcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMjAyLX1cbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMjAzLVxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIyMDQ6c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbnNzX2NjX3FjYThrX21hdGNoX3RhYmxlW10gPSB7XG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjIwNS1cdHsgLmNvbXBhdGlibGUgPSBcJiMzNDtxY29tLHFjYTgwODQtbnNzY2NcJiMzNDsgfSxcbi0tXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjIwNy19O1xuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIyMDg6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgbnNzX2NjX3FjYThrX21hdGNoX3RhYmxlKTtcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMjA5LVxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIyMTA6c3RhdGljIHN0cnVjdCBtZGlvX2RyaXZlciBuc3NfY2NfcWNhOGtfZHJpdmVyID0ge1xuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIyMTEtXHQubWRpb2Rydi5kcml2ZXIgPSB7XG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjIxMjpcdFx0Lm5hbWUgPSBcJiMzNDtxY29tLHFjYThrLW5zc2NjXCYjMzQ7LFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIyMTM6XHRcdC5vZl9tYXRjaF90YWJsZVx0PSBuc3NfY2NfcWNhOGtfbWF0Y2hfdGFibGUsXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjIxNC1cdH0sXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjIxNTpcdC5wcm9iZSA9IG5zc19jY19xY2E4a19wcm9iZSxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMjE2LX07XG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjIxNy1cbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMjE4Om1kaW9fbW9kdWxlX2RyaXZlcihuc3NfY2NfcWNhOGtfZHJpdmVyKTtcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMjE5LVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvTWFrZWZpbGU9Mj1vYmotJChDT05GSUdfTkVUX0RTQV9BUjkzMzEpXHQmIzQzOz0gYXI5MzMxLm9cbmRyaXZlcnMvbmV0L2RzYS9xY2EvTWFrZWZpbGU6MzpvYmotJChDT05GSUdfTkVUX0RTQV9RQ0E4SylcdCYjNDM7PSBxY2E4ay5vXG5kcml2ZXJzL25ldC9kc2EvcWNhL01ha2VmaWxlOjQ6cWNhOGsteSBcdFx0XHQmIzQzOz0gcWNhOGstY29tbW9uLm8gcWNhOGstOHh4eC5vXG5kcml2ZXJzL25ldC9kc2EvcWNhL01ha2VmaWxlLTUtaWZkZWYgQ09ORklHX05FVF9EU0FfUUNBOEtfTEVEU19TVVBQT1JUXG5kcml2ZXJzL25ldC9kc2EvcWNhL01ha2VmaWxlOjY6cWNhOGsteVx0XHRcdFx0JiM0Mzs9IHFjYThrLWxlZHMub1xuZHJpdmVycy9uZXQvZHNhL3FjYS9NYWtlZmlsZS03LWVuZGlmXG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMjMtXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzoyNDojaW5jbHVkZSBcJiMzNDtxY2E4ay5oXCYjMzQ7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzoyNTojaW5jbHVkZSBcJiMzNDtxY2E4a19sZWRzLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTI2LVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9Mjc9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjI4OnFjYThrX3NwbGl0X2FkZHIodTMyIHJlZ2FkZHIsIHUxNiAqcjEsIHUxNiAqcjIsIHUxNiAqcGFnZSlcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTI5LXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz00MD1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo0MTpxY2E4a19taWlfd3JpdGVfbG8oc3RydWN0IG1paV9idXMgKmJ1cywgaW50IHBoeV9pZCwgdTMyIHJlZ251bSwgdTMyIHZhbClcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTQyLXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy00OS1cdFx0ZGV2X2Vycl9yYXRlbGltaXRlZChcdTAwMjZidXMtXHUwMDNlZGV2LFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NTA6XHRcdFx0XHQgICAgXCYjMzQ7ZmFpbGVkIHRvIHdyaXRlIHFjYThrIDMyYml0IGxvIHJlZ2lzdGVyXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTUxLVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTU1PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjU2OnFjYThrX21paV93cml0ZV9oaShzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgcGh5X2lkLCB1MzIgcmVnbnVtLCB1MzIgdmFsKVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNTcte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTY0LVx0XHRkZXZfZXJyX3JhdGVsaW1pdGVkKFx1MDAyNmJ1cy1cdTAwM2VkZXYsXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo2NTpcdFx0XHRcdCAgICBcJiMzNDtmYWlsZWQgdG8gd3JpdGUgcWNhOGsgMzJiaXQgaGkgcmVnaXN0ZXJcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNjYtXG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9NzA9c3RhdGljIGludFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NzE6cWNhOGtfbWlpX3JlYWRfbG8oc3RydWN0IG1paV9idXMgKmJ1cywgaW50IHBoeV9pZCwgdTMyIHJlZ251bSwgdTMyICp2YWwpXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy03Mi17XG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtODMtXHRkZXZfZXJyX3JhdGVsaW1pdGVkKFx1MDAyNmJ1cy1cdTAwM2VkZXYsXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo4NDpcdFx0XHQgICAgXCYjMzQ7ZmFpbGVkIHRvIHJlYWQgcWNhOGsgMzJiaXQgbG8gcmVnaXN0ZXJcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtODUtXHQqdmFsID0gMDtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz05MD1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo5MTpxY2E4a19taWlfcmVhZF9oaShzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgcGh5X2lkLCB1MzIgcmVnbnVtLCB1MzIgKnZhbClcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTkyLXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0xMDMtXHRkZXZfZXJyX3JhdGVsaW1pdGVkKFx1MDAyNmJ1cy1cdTAwM2VkZXYsXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzoxMDQ6XHRcdFx0ICAgIFwmIzM0O2ZhaWxlZCB0byByZWFkIHFjYThrIDMyYml0IGhpIHJlZ2lzdGVyXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTEwNS1cdCp2YWwgPSAwO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTExMD1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzoxMTE6cWNhOGtfbWlpX3JlYWQzMihzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgcGh5X2lkLCB1MzIgcmVnbnVtLCB1MzIgKnZhbClcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTExMi17XG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMTE3LVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MTE4Olx0cmV0ID0gcWNhOGtfbWlpX3JlYWRfbG8oYnVzLCBwaHlfaWQsIHJlZ251bSwgXHUwMDI2bG8pO1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMTE5LVx0aWYgKHJldCBcdTAwM2MgMClcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0xMjEtXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzoxMjI6XHRyZXQgPSBxY2E4a19taWlfcmVhZF9oaShidXMsIHBoeV9pZCwgcmVnbnVtICYjNDM7IDEsIFx1MDAyNmhpKTtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTEyMy1cdGlmIChyZXQgXHUwMDNjIDApXG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9MTMyPXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzoxMzM6cWNhOGtfbWlpX3dyaXRlMzIoc3RydWN0IG1paV9idXMgKmJ1cywgaW50IHBoeV9pZCwgdTMyIHJlZ251bSwgdTMyIHZhbClcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTEzNC17XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzoxMzU6XHRpZiAocWNhOGtfbWlpX3dyaXRlX2xvKGJ1cywgcGh5X2lkLCByZWdudW0sIHZhbCkgXHUwMDNjIDApXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0xMzYtXHRcdHJldHVybjtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTEzNy1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjEzODpcdHFjYThrX21paV93cml0ZV9oaShidXMsIHBoeV9pZCwgcmVnbnVtICYjNDM7IDEsIHZhbCk7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0xMzktfVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTE0MT1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzoxNDI6cWNhOGtfc2V0X3BhZ2Uoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIHUxNiBwYWdlKVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMTQzLXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0xNTMtXHRcdGRldl9lcnJfcmF0ZWxpbWl0ZWQoXHUwMDI2YnVzLVx1MDAzZWRldixcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjE1NDpcdFx0XHRcdCAgICBcJiMzNDtmYWlsZWQgdG8gc2V0IHFjYThrIHBhZ2VcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMTU1LVx0XHRyZXR1cm4gcmV0O1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTE2Mi1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjE2MzpzdGF0aWMgYm9vbCBxY2E4a19tZ210X2V0aF9kaXNhYmxlZChjb25zdCBzdHJ1Y3QgcWNhOGtfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTE2NC17XG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMTY3LVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MTY4OnN0YXRpYyB2b2lkIHFjYThrX3J3X3JlZ19hY2tfaGFuZGxlcihzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIHN0cnVjdCBza19idWZmICpza2IpXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0xNjkte1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MTcwOlx0c3RydWN0IHFjYThrX21nbXRfZXRoX2RhdGEgKm1nbXRfZXRoX2RhdGE7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzoxNzE6XHRzdHJ1Y3QgcWNhOGtfcHJpdiAqcHJpdiA9IGRzLVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0xNzItXHRzdHJ1Y3QgcWNhX21nbXRfZXRoaGRyICptZ210X2V0aGhkcjtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0yMjItXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzoyMjM6c3RhdGljIHN0cnVjdCBza19idWZmICpxY2E4a19hbGxvY19tZGlvX2hlYWRlcihlbnVtIG1kaW9fY21kIGNtZCwgdTMyIHJlZywgdTMyICp2YWwsXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0yMjQtXHRcdFx0XHRcdCAgICAgICBpbnQgcHJpb3JpdHksIHVuc2lnbmVkIGludCBsZW4pXG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMzA2LVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MzA3OnN0YXRpYyB2b2lkIHFjYThrX21kaW9faGVhZGVyX2ZpbGxfc2VxX251bShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgc2VxX251bSlcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTMwOC17XG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMzE2LVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MzE3OnN0YXRpYyBpbnQgcWNhOGtfcmVhZF9ldGgoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIHUzMiByZWcsIHUzMiAqdmFsLCBpbnQgbGVuKVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMzE4LXtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjMxOTpcdHN0cnVjdCBxY2E4a19tZ210X2V0aF9kYXRhICptZ210X2V0aF9kYXRhID0gXHUwMDI2cHJpdi1cdTAwM2VtZ210X2V0aF9kYXRhO1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMzIwLVx0c3RydWN0IHNrX2J1ZmYgKnNrYjtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0zMjMtXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzozMjQ6XHRpZiAocWNhOGtfbWdtdF9ldGhfZGlzYWJsZWQocHJpdikpXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0zMjUtXHRcdHJldHVybiAtRU5YSU87XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0zMjYtXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzozMjc6XHRza2IgPSBxY2E4a19hbGxvY19tZGlvX2hlYWRlcihNRElPX1JFQUQsIHJlZywgTlVMTCxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTMyOC1cdFx0XHRcdCAgICAgIFFDQThLX0VUSEVSTkVUX01ESU9fUFJJT1JJVFksIGxlbik7XG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMzQ2LVx0bWdtdF9ldGhfZGF0YS1cdTAwM2VzZXEmIzQzOyYjNDM7O1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MzQ3Olx0cWNhOGtfbWRpb19oZWFkZXJfZmlsbF9zZXFfbnVtKHNrYiwgbWdtdF9ldGhfZGF0YS1cdTAwM2VzZXEpO1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMzQ4LVx0bWdtdF9ldGhfZGF0YS1cdTAwM2VhY2sgPSBmYWxzZTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0zNzEtXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzozNzI6c3RhdGljIGludCBxY2E4a193cml0ZV9ldGgoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIHUzMiByZWcsIHUzMiAqdmFsLCBpbnQgbGVuKVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMzczLXtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjM3NDpcdHN0cnVjdCBxY2E4a19tZ210X2V0aF9kYXRhICptZ210X2V0aF9kYXRhID0gXHUwMDI2cHJpdi1cdTAwM2VtZ210X2V0aF9kYXRhO1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMzc1LVx0c3RydWN0IHNrX2J1ZmYgKnNrYjtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0zNzgtXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzozNzk6XHRpZiAocWNhOGtfbWdtdF9ldGhfZGlzYWJsZWQocHJpdikpXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0zODAtXHRcdHJldHVybiAtRU5YSU87XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0zODEtXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzozODI6XHRza2IgPSBxY2E4a19hbGxvY19tZGlvX2hlYWRlcihNRElPX1dSSVRFLCByZWcsIHZhbCxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTM4My1cdFx0XHRcdCAgICAgIFFDQThLX0VUSEVSTkVUX01ESU9fUFJJT1JJVFksIGxlbik7XG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNDAxLVx0bWdtdF9ldGhfZGF0YS1cdTAwM2VzZXEmIzQzOyYjNDM7O1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NDAyOlx0cWNhOGtfbWRpb19oZWFkZXJfZmlsbF9zZXFfbnVtKHNrYiwgbWdtdF9ldGhfZGF0YS1cdTAwM2VzZXEpO1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNDAzLVx0bWdtdF9ldGhfZGF0YS1cdTAwM2VhY2sgPSBmYWxzZTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz00MjM9c3RhdGljIGludFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NDI0OnFjYThrX3JlZ21hcF91cGRhdGVfYml0c19ldGgoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIHUzMiByZWcsIHUzMiBtYXNrLCB1MzIgd3JpdGVfdmFsKVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNDI1LXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy00MjgtXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo0Mjk6XHRyZXQgPSBxY2E4a19yZWFkX2V0aChwcml2LCByZWcsIFx1MDAyNnZhbCwgc2l6ZW9mKHZhbCkpO1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNDMwLVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy00MzUtXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo0MzY6XHRyZXR1cm4gcWNhOGtfd3JpdGVfZXRoKHByaXYsIHJlZywgXHUwMDI2dmFsLCBzaXplb2YodmFsKSk7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy00MzctfVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTQzOT1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo0NDA6cWNhOGtfcmVhZF9taWkoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIHVpbnQzMl90IHJlZywgdWludDMyX3QgKnZhbClcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTQ0MS17XG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNDQ1LVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NDQ2Olx0cWNhOGtfc3BsaXRfYWRkcihyZWcsIFx1MDAyNnIxLCBcdTAwMjZyMiwgXHUwMDI2cGFnZSk7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy00NDctXG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNDQ5LVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NDUwOlx0cmV0ID0gcWNhOGtfc2V0X3BhZ2UocHJpdiwgcGFnZSk7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy00NTEtXHRpZiAocmV0IFx1MDAzYyAwKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTQ1My1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjQ1NDpcdHJldCA9IHFjYThrX21paV9yZWFkMzIoYnVzLCAweDEwIHwgcjIsIHIxLCB2YWwpO1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNDU1LVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTQ2MT1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo0NjI6cWNhOGtfd3JpdGVfbWlpKHN0cnVjdCBxY2E4a19wcml2ICpwcml2LCB1aW50MzJfdCByZWcsIHVpbnQzMl90IHZhbClcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTQ2My17XG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNDY3LVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NDY4Olx0cWNhOGtfc3BsaXRfYWRkcihyZWcsIFx1MDAyNnIxLCBcdTAwMjZyMiwgXHUwMDI2cGFnZSk7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy00NjktXG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNDcxLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NDcyOlx0cmV0ID0gcWNhOGtfc2V0X3BhZ2UocHJpdiwgcGFnZSk7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy00NzMtXHRpZiAocmV0IFx1MDAzYyAwKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTQ3NS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjQ3NjpcdHFjYThrX21paV93cml0ZTMyKGJ1cywgMHgxMCB8IHIyLCByMSwgdmFsKTtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTQ3Ny1cbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz00ODM9c3RhdGljIGludFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NDg0OnFjYThrX3JlZ21hcF91cGRhdGVfYml0c19taWkoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIHVpbnQzMl90IHJlZyxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTQ4NS1cdFx0XHQgICAgIHVpbnQzMl90IG1hc2ssIHVpbnQzMl90IHdyaXRlX3ZhbClcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy00OTEtXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo0OTI6XHRxY2E4a19zcGxpdF9hZGRyKHJlZywgXHUwMDI2cjEsIFx1MDAyNnIyLCBcdTAwMjZwYWdlKTtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTQ5My1cbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy00OTUtXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo0OTY6XHRyZXQgPSBxY2E4a19zZXRfcGFnZShwcml2LCBwYWdlKTtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTQ5Ny1cdGlmIChyZXQgXHUwMDNjIDApXG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNDk5LVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NTAwOlx0cmV0ID0gcWNhOGtfbWlpX3JlYWQzMihidXMsIDB4MTAgfCByMiwgcjEsIFx1MDAyNnZhbCk7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy01MDEtXHRpZiAocmV0IFx1MDAzYyAwKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTUwNS1cdHZhbCB8PSB3cml0ZV92YWw7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo1MDY6XHRxY2E4a19taWlfd3JpdGUzMihidXMsIDB4MTAgfCByMiwgcjEsIHZhbCk7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy01MDctXG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9NTE0PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjUxNTpxY2E4a19idWxrX3JlYWQodm9pZCAqY3R4LCBjb25zdCB2b2lkICpyZWdfYnVmLCBzaXplX3QgcmVnX2xlbixcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTUxNi1cdFx0dm9pZCAqdmFsX2J1Ziwgc2l6ZV90IHZhbF9sZW4pXG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNTE4LVx0aW50IGksIGNvdW50ID0gdmFsX2xlbiAvIHNpemVvZih1MzIpLCByZXQ7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo1MTk6XHRzdHJ1Y3QgcWNhOGtfcHJpdiAqcHJpdiA9IGN0eDtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTUyMC1cdHUzMiByZWcgPSAqKHUxNiAqKXJlZ19idWY7XG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNTIyLVx0aWYgKHByaXYtXHUwMDNlbWdtdF9jb25kdWl0IFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NTIzOlx0ICAgICFxY2E4a19yZWFkX2V0aChwcml2LCByZWcsIHZhbF9idWYsIHZhbF9sZW4pKVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNTI0LVx0XHRyZXR1cm4gMDtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy01MjctXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBjb3VudDsgaSYjNDM7JiM0MzssIHJlZyAmIzQzOz0gc2l6ZW9mKHUzMikpIHtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjUyODpcdFx0cmV0ID0gcWNhOGtfcmVhZF9taWkocHJpdiwgcmVnLCB2YWxfYnVmICYjNDM7IGkpO1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNTI5LVx0XHRpZiAocmV0IFx1MDAzYyAwKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTUzNj1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo1Mzc6cWNhOGtfYnVsa19nYXRoZXJfd3JpdGUodm9pZCAqY3R4LCBjb25zdCB2b2lkICpyZWdfYnVmLCBzaXplX3QgcmVnX2xlbixcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTUzOC1cdFx0XHRjb25zdCB2b2lkICp2YWxfYnVmLCBzaXplX3QgdmFsX2xlbilcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy01NDAtXHRpbnQgaSwgY291bnQgPSB2YWxfbGVuIC8gc2l6ZW9mKHUzMiksIHJldDtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjU0MTpcdHN0cnVjdCBxY2E4a19wcml2ICpwcml2ID0gY3R4O1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNTQyLVx0dTMyIHJlZyA9ICoodTE2ICopcmVnX2J1Zjtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy01NDUtXHRpZiAocHJpdi1cdTAwM2VtZ210X2NvbmR1aXQgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo1NDY6XHQgICAgIXFjYThrX3dyaXRlX2V0aChwcml2LCByZWcsIHZhbCwgdmFsX2xlbikpXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy01NDctXHRcdHJldHVybiAwO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTU1Mi1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIGNvdW50OyBpJiM0MzsmIzQzOywgcmVnICYjNDM7PSBzaXplb2YodTMyKSwgdmFsJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NTUzOlx0XHRyZXQgPSBxY2E4a193cml0ZV9taWkocHJpdiwgcmVnLCAqdmFsKTtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTU1NC1cdFx0aWYgKHJldCBcdTAwM2MgMClcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz01NjE9c3RhdGljIGludFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NTYyOnFjYThrX2J1bGtfd3JpdGUodm9pZCAqY3R4LCBjb25zdCB2b2lkICpkYXRhLCBzaXplX3QgYnl0ZXMpXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy01NjMte1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NTY0Olx0cmV0dXJuIHFjYThrX2J1bGtfZ2F0aGVyX3dyaXRlKGN0eCwgZGF0YSwgc2l6ZW9mKHUxNiksIGRhdGEgJiM0Mzsgc2l6ZW9mKHUxNiksXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy01NjUtXHRcdFx0XHQgICAgICAgYnl0ZXMgLSBzaXplb2YodTE2KSk7XG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9NTY4PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjU2OTpxY2E4a19yZWdtYXBfdXBkYXRlX2JpdHModm9pZCAqY3R4LCB1aW50MzJfdCByZWcsIHVpbnQzMl90IG1hc2ssIHVpbnQzMl90IHdyaXRlX3ZhbClcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTU3MC17XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo1NzE6XHRzdHJ1Y3QgcWNhOGtfcHJpdiAqcHJpdiA9IGN0eDtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTU3Mi1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjU3MzpcdGlmICghcWNhOGtfcmVnbWFwX3VwZGF0ZV9iaXRzX2V0aChwcml2LCByZWcsIG1hc2ssIHdyaXRlX3ZhbCkpXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy01NzQtXHRcdHJldHVybiAwO1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNTc1LVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NTc2Olx0cmV0dXJuIHFjYThrX3JlZ21hcF91cGRhdGVfYml0c19taWkocHJpdiwgcmVnLCBtYXNrLCB3cml0ZV92YWwpO1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNTc3LX1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTU3OC1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjU3OTpzdGF0aWMgY29uc3Qgc3RydWN0IHJlZ21hcF9jb25maWcgcWNhOGtfcmVnbWFwX2NvbmZpZyA9IHtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTU4MC1cdC5yZWdfYml0cyA9IDE2LFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTU4My1cdC5tYXhfcmVnaXN0ZXIgPSAweDE2YWMsIC8qIGVuZCBNSUIgLSBQb3J0NiByYW5nZSAqL1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NTg0Olx0LnJlYWQgPSBxY2E4a19idWxrX3JlYWQsXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo1ODU6XHQud3JpdGUgPSBxY2E4a19idWxrX3dyaXRlLFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NTg2Olx0LnJlZ191cGRhdGVfYml0cyA9IHFjYThrX3JlZ21hcF91cGRhdGVfYml0cyxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjU4NzpcdC5yZF90YWJsZSA9IFx1MDAyNnFjYThrX3JlYWRhYmxlX3RhYmxlLFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NTg4Olx0LmRpc2FibGVfbG9ja2luZyA9IHRydWUsIC8qIExvY2tpbmcgaXMgaGFuZGxlZCBieSBxY2E4ayByZWFkL3dyaXRlICovXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy01ODktXHQuY2FjaGVfdHlwZSA9IFJFR0NBQ0hFX05PTkUsIC8qIEV4cGxpY2l0bHkgZGlzYWJsZSBDQUNIRSAqL1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTU5Nz1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo1OTg6cWNhOGtfcGh5X2V0aF9idXN5X3dhaXQoc3RydWN0IHFjYThrX21nbXRfZXRoX2RhdGEgKm1nbXRfZXRoX2RhdGEsXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy01OTktXHRcdFx0c3RydWN0IHNrX2J1ZmYgKnJlYWRfc2tiLCB1MzIgKnZhbClcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy02MTEtXHRtZ210X2V0aF9kYXRhLVx1MDAzZXNlcSYjNDM7JiM0Mzs7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo2MTI6XHRxY2E4a19tZGlvX2hlYWRlcl9maWxsX3NlcV9udW0oc2tiLCBtZ210X2V0aF9kYXRhLVx1MDAzZXNlcSk7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy02MTMtXHRtZ210X2V0aF9kYXRhLVx1MDAzZWFjayA9IGZhbHNlO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTYzMz1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo2MzQ6cWNhOGtfcGh5X2V0aF9jb21tYW5kKHN0cnVjdCBxY2E4a19wcml2ICpwcml2LCBib29sIHJlYWQsIGludCBwaHksXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy02MzUtXHRcdCAgICAgIGludCByZWdudW0sIHUxNiBkYXRhKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTYzNy1cdHN0cnVjdCBza19idWZmICp3cml0ZV9za2IsICpjbGVhcl9za2IsICpyZWFkX3NrYjtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjYzODpcdHN0cnVjdCBxY2E4a19tZ210X2V0aF9kYXRhICptZ210X2V0aF9kYXRhO1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNjM5LVx0dTMyIHdyaXRlX3ZhbCwgY2xlYXJfdmFsID0gMCwgdmFsO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTY0My1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjY0NDpcdGlmIChxY2E4a19tZ210X2V0aF9kaXNhYmxlZChwcml2KSlcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTY0NS1cdFx0cmV0dXJuIC1FTlhJTztcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy02NjMtXHQvKiBQcmVhbGxvYyBhbGwgdGhlIG5lZWRlZCBza2IgYmVmb3JlIHRoZSBsb2NrICovXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo2NjQ6XHR3cml0ZV9za2IgPSBxY2E4a19hbGxvY19tZGlvX2hlYWRlcihNRElPX1dSSVRFLCBRQ0E4S19NRElPX01BU1RFUl9DVFJMLCBcdTAwMjZ3cml0ZV92YWwsXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy02NjUtXHRcdFx0XHRcdCAgICBRQ0E4S19FVEhFUk5FVF9QSFlfUFJJT1JJVFksIHNpemVvZih3cml0ZV92YWwpKTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy02NjgtXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo2Njk6XHRjbGVhcl9za2IgPSBxY2E4a19hbGxvY19tZGlvX2hlYWRlcihNRElPX1dSSVRFLCBRQ0E4S19NRElPX01BU1RFUl9DVFJMLCBcdTAwMjZjbGVhcl92YWwsXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy02NzAtXHRcdFx0XHRcdCAgICBRQ0E4S19FVEhFUk5FVF9QSFlfUFJJT1JJVFksIHNpemVvZihjbGVhcl92YWwpKTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy02NzUtXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo2NzY6XHRyZWFkX3NrYiA9IHFjYThrX2FsbG9jX21kaW9faGVhZGVyKE1ESU9fUkVBRCwgUUNBOEtfTURJT19NQVNURVJfQ1RSTCwgXHUwMDI2Y2xlYXJfdmFsLFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNjc3LVx0XHRcdFx0XHQgICBRQ0E4S19FVEhFUk5FVF9QSFlfUFJJT1JJVFksIHNpemVvZihjbGVhcl92YWwpKTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy03MTYtXHRtZ210X2V0aF9kYXRhLVx1MDAzZXNlcSYjNDM7JiM0Mzs7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo3MTc6XHRxY2E4a19tZGlvX2hlYWRlcl9maWxsX3NlcV9udW0od3JpdGVfc2tiLCBtZ210X2V0aF9kYXRhLVx1MDAzZXNlcSk7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy03MTgtXHRtZ210X2V0aF9kYXRhLVx1MDAzZWFjayA9IGZhbHNlO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTczOC1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjczOTpcdHJldCA9IHJlYWRfcG9sbF90aW1lb3V0KHFjYThrX3BoeV9ldGhfYnVzeV93YWl0LCByZXQxLFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNzQwLVx0XHRcdFx0ISh2YWwgXHUwMDI2IFFDQThLX01ESU9fTUFTVEVSX0JVU1kpLCAwLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTc1My1cdFx0bWdtdF9ldGhfZGF0YS1cdTAwM2VzZXEmIzQzOyYjNDM7O1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NzU0Olx0XHRxY2E4a19tZGlvX2hlYWRlcl9maWxsX3NlcV9udW0ocmVhZF9za2IsIG1nbXRfZXRoX2RhdGEtXHUwMDNlc2VxKTtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTc1NS1cdFx0bWdtdF9ldGhfZGF0YS1cdTAwM2VhY2sgPSBmYWxzZTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy03ODItXHRtZ210X2V0aF9kYXRhLVx1MDAzZXNlcSYjNDM7JiM0Mzs7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo3ODM6XHRxY2E4a19tZGlvX2hlYWRlcl9maWxsX3NlcV9udW0oY2xlYXJfc2tiLCBtZ210X2V0aF9kYXRhLVx1MDAzZXNlcSk7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy03ODQtXHRtZ210X2V0aF9kYXRhLVx1MDAzZWFjayA9IGZhbHNlO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTgwNz1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo4MDg6cWNhOGtfbWRpb19idXN5X3dhaXQoc3RydWN0IG1paV9idXMgKmJ1cywgdTMyIHJlZywgdTMyIG1hc2spXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy04MDkte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTgxMy1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjgxNDpcdHFjYThrX3NwbGl0X2FkZHIocmVnLCBcdTAwMjZyMSwgXHUwMDI2cjIsIFx1MDAyNnBhZ2UpO1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtODE1LVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6ODE2Olx0cmV0ID0gcmVhZF9wb2xsX3RpbWVvdXQocWNhOGtfbWlpX3JlYWRfaGksIHJldDEsICEodmFsIFx1MDAyNiBtYXNrKSwgMCxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTgxNy1cdFx0XHRcdFFDQThLX0JVU1lfV0FJVF9USU1FT1VUICogVVNFQ19QRVJfTVNFQywgZmFsc2UsXG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtODE5LVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6ODIwOlx0LyogQ2hlY2sgaWYgcWNhOGtfcmVhZCBoYXMgZmFpbGVkIGZvciBhIGRpZmZlcmVudCByZWFzb25cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTgyMS1cdCAqIGJlZm9yZSByZXR1cm50aW5nIC1FVElNRURPVVRcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz04Mjk9c3RhdGljIGludFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6ODMwOnFjYThrX21kaW9fd3JpdGUoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIGludCBwaHksIGludCByZWdudW0sIHUxNiBkYXRhKVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtODMxLXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy04NDQtXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo4NDU6XHRxY2E4a19zcGxpdF9hZGRyKFFDQThLX01ESU9fTUFTVEVSX0NUUkwsIFx1MDAyNnIxLCBcdTAwMjZyMiwgXHUwMDI2cGFnZSk7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy04NDYtXG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtODQ4LVxuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzEwIDA3OjE3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM0NDA2CgkJCQkJCQlvdXRwdXQ6IDIyCgkJCQkJCQl0aG91Z2h0czogMTY2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgUUNBOEsgRXRoZXJuZXQgRHJpdmVyIE1vZGlmaWNhdGlvbnMqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGltbWVkaWF0ZWx5LCBteSBmb2N1cyBsYW5kcyBvbiBgZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmNgLiBUaGF0JiMzOTtzIHRoZSBkcml2ZXIgZmlsZSBpdHNlbGYsIHNvIGl0JiMzOTtzIHRoZSBjb3JlIG9mIHRoZSBjaGFuZ2VzLiBUaGUga2V5IGZ1bmN0aW9ucyB0aGF0IGhhdmUgYmVlbiB0b3VjaGVkIGFyZSBgcWNhOGtfcmVhZF9ldGhgLCBgcWNhOGtfd3JpdGVfZXRoYCwgYW5kIGBxY2E4a19waHlfZXRoX2NvbW1hbmRgLiBLbm93aW5nIHRoZXNlIGFyZSBtb2RpZmllZCB0ZWxscyBtZSB3ZSYjMzk7cmUgbGlrZWx5IGRlYWxpbmcgd2l0aCBzb21lIGZ1bmRhbWVudGFsIEV0aGVybmV0IGNvbW11bmljYXRpb24gb3BlcmF0aW9ucywgcHJvYmFibHkgcmVhZGluZyBhbmQgd3JpdGluZyB0byB0aGUgUEhZLCBwZXJoYXBzIGlzc3VpbmcgY29tbWFuZHMuCgpOb3csIHdoZXJlIGFyZSAqdGhlc2UqIGZ1bmN0aW9ucyBjYWxsZWQgZnJvbT8gQWgsIHllcywgYHFjYThrX2J1bGtfcmVhZGAsIGBxY2E4a19idWxrX2dhdGhlcl93cml0ZWAsIGBxY2E4a19waHlfZXRoX2J1c3lfd2FpdGAsIGFuZCBzbyBvbi4gVGhlc2UgYXJlIGhpbnRpbmcgYXQgb3B0aW1pemF0aW9ucyBvciBwZXJoYXBzIGhhbmRsaW5nIGxhcmdlciBkYXRhIHRyYW5zZmVycyBtb3JlIGVmZmljaWVudGx5LiBBbmQgSSByZW1lbWJlciBub3cg4oCTIHRoZXNlIGZ1bmN0aW9ucyBhcmUgYWxsIHBhcnQgb2YgdGhlICpyZWdtYXAqIG9wZXJhdGlvbnMuIFJpZ2h0LCB0aGlzIGlzIGhvdyB3ZSYjMzk7cmUgYWJzdHJhY3RpbmcgcmVnaXN0ZXIgYWNjZXNzIHRvIHRoZSBoYXJkd2FyZS4gU3BlY2lmaWNhbGx5LCB0aGVzZSBmdW5jdGlvbnMgZml0IHdpdGhpbiB0aGUgYHFjYThrX3JlZ21hcF9jb25maWdgIGNvbmZpZ3VyYXRpb24uCgpOb3cgdGhlIHF1ZXN0aW9uIGlzLCBob3cgYW5kIHdoZXJlIGlzIHRoaXMgcmVnbWFwIGluaXRpYWxpemVkPyBJdCYjMzk7cyBlaXRoZXIgaW4gYHFjYThrX3NldHVwYCBvciwgaG1tLCBtYXliZSBgcWNhOGtfc3dfcHJvYmVgPyBNeSBpbml0aWFsIGluc3RpbmN0IGlzIHRvIGdvIHdpdGggYHFjYThrX3N3X3Byb2JlYC4gTGV0JiMzOTtzIGp1c3QgcXVpY2tseSBjb25maXJtIHRoYXQuLi4gSSYjMzk7bGwgY2hlY2sgYHFjYThrX3N3X3Byb2JlYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTAgMDc6MTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cWNhOGtfc3dfcHJvYmUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9MjA3Mj1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzoyMDczOnFjYThrX3N3X3Byb2JlKHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2RldilcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTIwNzQte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTIyMzU9c3RhdGljIHN0cnVjdCBtZGlvX2RyaXZlciBxY2E4a21kaW9fZHJpdmVyID0ge1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MjIzNjpcdC5wcm9iZSAgPSBxY2E4a19zd19wcm9iZSxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTIyMzctXHQucmVtb3ZlID0gcWNhOGtfc3dfcmVtb3ZlLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMCAwNzoxNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNTE3NQoJCQkJCQkJb3V0cHV0OiAyNwoJCQkJCQkJdGhvdWdodHM6IDI0MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNRElPIERyaXZlciBJbnN0YW50aWF0aW9uOiBBIFN5emthbGxlciBDaGFsbGVuZ2UqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgTURJTyBkcml2ZXIgYW5kIHdvbmRlcmluZyBob3cgSSBjYW4gcG9rZSBhdCBpdCB3aXRoIHN5emthbGxlci4gVGhlIGltbWVkaWF0ZSBwcm9ibGVtIGlzIHRoYXQgc3l6a2FsbGVyIGRvZXNuJiMzOTt0IHNlZW0gdG8gaGF2ZSBhICpnZW5lcmljKiBtZXRob2QgZm9yIGluc3RhbnRpYXRpbmcgTURJTyBkZXZpY2VzLiBVbmxlc3MgdGhlcmUmIzM5O3Mgc29tZSBzcGVjaWFsIHBzZXVkby1zeXNjYWxsIG9yIG5ldGxpbmsgaW50ZXJmYWNlLCBJJiMzOTttIGtpbmQgb2Ygc3R1Y2suIEkmIzM5O20gYXdhcmUgb2YgdGhlIGV4aXN0aW5nIHRvb2xzIGxpa2UgYHN5el9nZW5ldGxpbmtfZ2V0X2ZhbWlseWAgYW5kIGBzeXpfb3Blbl9kZXZgLCBidXQgdGhleSBkb24mIzM5O3QganVtcCBvdXQgYXMgYSBkaXJlY3Qgc29sdXRpb24gaGVyZS4KClRoZSBvYnZpb3VzIHdheSBNRElPIGRldmljZXMgYXJlICp1c3VhbGx5KiBicm91Z2h0IHRvIGxpZmUgaXMgdGhyb3VnaCB0aGUgZGV2aWNlIHRyZWUsIGFuZCB1bmZvcnR1bmF0ZWx5LCBJIGNhbiYjMzk7dCBpbmplY3QgZGV2aWNlIHRyZWUgb3ZlcmxheXMgdXNpbmcgc3l6a2FsbGVyLiBUaGF0JiMzOTtzIGEgZGVhZCBlbmQuCgpPa2F5LCBzeXNmcyB0aGVuPyBDYW4gSSBsZXZlcmFnZSBzeXNmcyB0byBpbnN0YW50aWF0ZSB0aGVzZSBkZXZpY2VzPyBMZXQgbWUgdGhpbmsuLi4gQ291bGQgSSBkbyBzb21ldGhpbmcgbGlrZSBgZWNobyAmIzM0O3FjYThrJiMzNDsgJmd0OyAvc3lzL2J1cy9tZGlvX2J1cy9kZXZpY2VzLy4uLmA/IE5vLCB3YWl0IGEgbWludXRlLCB0aGUgTURJTyBidXMgZG9lc24mIzM5O3Qgc2VlbSB0byBoYXZlIHRoYXQgY29udmVuaWVudCBgbmV3X2RldmljZWAgc3lzZnMgYXR0cmlidXRlIGxpa2UgSTJDIG9yIFNQSS4gVGhhdCYjMzk7cyBmcnVzdHJhdGluZy4KCkxldCYjMzk7cyBzdGVwIGJhY2ssIGFuZCByZS10aGluayB0aGlzLiBTeXprYWxsZXIgaGFzIHRoZXNlIHZlcnkgc3BlY2lmaWMgc3lzY2FsbHMgZm9yIG90aGVyIHN1YnN5c3RlbXMsIHRoaW5ncyBsaWtlIGBzeXpfdXNiX2Nvbm5lY3RgIGZvciBVU0IgYW5kIGBzeXpfODAyMTFfaW5qZWN0X2ZyYW1lYCBmb3IgbWFjODAyMTEuIERvZXMgaXQgaGF2ZSBhbnl0aGluZyAqYXQgYWxsKiBzcGVjaWZpYyB0byBNRElPPyBJIG5lZWQgdG8gY2hlY2suIFRoaXMgZmVlbHMgbGlrZSBpdCBtaWdodCBiZSB0aGUgb25seSByb3V0ZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTAgMDc6MTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzeXpfJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7c3lzL2xpbnV4LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzEwIDA3OjE3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM1ODA2CgkJCQkJCQlvdXRwdXQ6IDIwCgkJCQkJCQl0aG91Z2h0czogMzI5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgU2NvcGUgb2YgTXkgSW52ZXN0aWdhdGlvbioqCgpPa2F5LCBzbyB0aGUgaW5zdHJ1Y3Rpb25zIGFyZSBwcmV0dHkgY2xlYXI6IHRoaXMgdG9vbCAqY2Fubm90KiBoYW5kbGUgc2VhcmNoaW5nIHdpdGhpbiBzeXprYWxsZXImIzM5O3MgYHN5cy8qYCBkZXNjcmlwdGlvbnMgb3IgZXhwcmVzc2lvbnMgdXNpbmcgYHN5el9gLCB3aGljaCBtYWtlcyBzZW5zZSBiZWNhdXNlIHRob3NlIGFyZSBwc2V1ZG8tc3lzY2FsbHMgYW5kIGFyZW4mIzM5O3QgZGlyZWN0bHkgcHJlc2VudCBpbiB0aGUgTGludXgga2VybmVsLiBUaGV5IGV4cGxpY2l0bHkgdGVsbCBtZSB0byB1c2UgYHJlYWQtc3l6LXNwZWNgIGFuZCBgc3l6LWdyZXBwZXJgIGZvciB0aGF0LCBidXQgaG9sZCBvbi4uLiBJIGRvbiYjMzk7dCBzZWUgdGhvc2UgdG9vbHMgbGlzdGVkLiBNeSBvcHRpb25zIGhlcmUgYXJlIGxpbWl0ZWQgdG8gYGdyZXBwZXJgLCBgY29kZXNlYXJjaC1kaXItaW5kZXhgLCBgcmVhZC1maWxlYCwgYW5kIGBzZXQtcmVzdWx0c2AuIFNvLCBJJiMzOTttIGVmZmVjdGl2ZWx5IGJsb2NrZWQgZnJvbSBsb29raW5nIGF0IHRob3NlIHN5emthbGxlciBjb25zdHJ1Y3RzIGRpcmVjdGx5LgoKQnV0LCB0aGF0JiMzOTtzIGFscmlnaHQsIEkgY2FuIHdvcmsgYXJvdW5kIHRoaXMgYmFzZWQgb24gbXkga25vd2xlZGdlLiBNRElPIGRldmljZXMsIGluIGdlbmVyYWwsIGFyZW4mIzM5O3Qgc29tZXRoaW5nIHlvdSBpbnN0YW50aWF0ZSBmcm9tIHVzZXItc3BhY2UgaW4gYSBzdHJhaWdodGZvcndhcmQgbWFubmVyLiBUaGVyZSYjMzk7cyBubyBzdGFuZGFyZCBgc3l6X21kaW9fY29ubmVjdGAgZXF1aXZhbGVudCBvciBhbnl0aGluZyBsaWtlIHRoYXQgdGhhdCBJJiMzOTttIGF3YXJlIG9mLiBBbmQsIGxvb2tpbmcgYXQgdGhlIGNvbnRleHQsIHRoaXMgaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBzd2l0Y2ggZHJpdmVyIOKAkyBhIFF1YWxjb21tIEF0aGVyb3MgUUNBOEssIHNwZWNpZmljYWxseS4KClR5cGljYWxseSwgaGFyZHdhcmUtc3BlY2lmaWMgbmV0d29yayBzd2l0Y2ggZHJpdmVycywgZXNwZWNpYWxseSBEU0EgZHJpdmVycywgYXJlIGNvbXBsZXRlbHkgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSB1bmxlc3MgeW91JiMzOTt2ZSBnb3QgKnZlcnkqIHNwZWNpZmljIGhhcmR3YXJlIGVtdWxhdGlvbiBnb2luZyBvbi4gQW5kIFFFTVUgY2VydGFpbmx5IGRvZXNuJiMzOTt0IGVtdWxhdGUgUUNBOEsgc3dpdGNoZXMuIFRoZXJlZm9yZSwgY29uc2lkZXJpbmcgdGhlIGxpbWl0YXRpb25zIG9mIHdoYXQgSSAqY2FuKiB1c2UsIHRoZSBjaGFuY2VzIG9mIHJlYWNoaW5nIHRoZXNlIGNvZGUgcGF0aHMgaW4gZW52aXJvbm1lbnRzIGxpa2UgR29vZ2xlIENvbXB1dGUgRW5naW5lIG9yIFFFTVUgYXJlIHNsaW0gdG8gbm9uZS4gSXQmIzM5O3MgZXNzZW50aWFsbHkgaW1wb3NzaWJsZSwgYXMgdGhlIGNvZGUgcmVsaWVzIG9uIGludGVyYWN0aW5nIHdpdGggdGhlIHBoeXNpY2FsIGhhcmR3YXJlLgoKSnVzdCB0byBiZSB0aG9yb3VnaCwgSSBzaG91bGQgZG91YmxlIGNoZWNrIHRvIHNlZSBpZiB0aGVyZSYjMzk7cyBzb21lIGtpbmQgb2YgZHVtbXkgTURJTyBidXMgb3Igc29tZXRoaW5nIHNpbWlsYXIgd2hpY2ggbWF5IHByb2JlIHRoaXMuIEhvd2V2ZXIsIGV2ZW4gaWYgdGhlcmUgaXMsIHRoZSBkcml2ZXImIzM5O3MgYHFjYThrX3N3X3Byb2JlYCBmdW5jdGlvbiByZWFkcyBoYXJkd2FyZSByZWdpc3RlcnMgdG8gaWRlbnRpZnkgdGhlIGNoaXAsIGFuZCB0aGF0IHdpbGwgYmUgaW1wb3NzaWJsZSB0byBkbyB3aXRoIGEgZHVtbXkgaW1wbGVtZW50YXRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzEwIDA3OjE4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3FjYThrX3JlYWQmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jPTIwNzQ9c3RhdGljIGludCBxY2E4a19yZWdtYXBfcmVhZCh2b2lkICpjb250ZXh0LCB1bnNpZ25lZCBpbnQgcmVnYWRkciwgdW5zaWduZWQgaW50ICp2YWwpXG4tLVxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIwODUtXHRpZiAocmV0IFx1MDAzYyAwKVxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIwODY6XHRcdGdvdG8gcWNhOGtfcmVhZF9leGl0O1xuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIwODctXG4tLVxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIwODktXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjA5MDpxY2E4a19yZWFkX2V4aXQ6XG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjA5MS1cdG11dGV4X3VubG9jayhcdTAwMjZidXMtXHUwMDNlbWRpb19sb2NrKTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz0zMDc9c3RhdGljIHZvaWQgcWNhOGtfbWRpb19oZWFkZXJfZmlsbF9zZXFfbnVtKHN0cnVjdCBza19idWZmICpza2IsIHUzMiBzZXFfbnVtKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTMxNi1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjMxNzpzdGF0aWMgaW50IHFjYThrX3JlYWRfZXRoKHN0cnVjdCBxY2E4a19wcml2ICpwcml2LCB1MzIgcmVnLCB1MzIgKnZhbCwgaW50IGxlbilcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTMxOC17XG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9NDI0PXFjYThrX3JlZ21hcF91cGRhdGVfYml0c19ldGgoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIHUzMiByZWcsIHUzMiBtYXNrLCB1MzIgd3JpdGVfdmFsKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTQyOC1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjQyOTpcdHJldCA9IHFjYThrX3JlYWRfZXRoKHByaXYsIHJlZywgXHUwMDI2dmFsLCBzaXplb2YodmFsKSk7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy00MzAtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTQzOT1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo0NDA6cWNhOGtfcmVhZF9taWkoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIHVpbnQzMl90IHJlZywgdWludDMyX3QgKnZhbClcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTQ0MS17XG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9NTE1PXFjYThrX2J1bGtfcmVhZCh2b2lkICpjdHgsIGNvbnN0IHZvaWQgKnJlZ19idWYsIHNpemVfdCByZWdfbGVuLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTUyMi1cdGlmIChwcml2LVx1MDAzZW1nbXRfY29uZHVpdCBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjUyMzpcdCAgICAhcWNhOGtfcmVhZF9ldGgocHJpdiwgcmVnLCB2YWxfYnVmLCB2YWxfbGVuKSlcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTUyNC1cdFx0cmV0dXJuIDA7XG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNTI3LVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgY291bnQ7IGkmIzQzOyYjNDM7LCByZWcgJiM0Mzs9IHNpemVvZih1MzIpKSB7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo1Mjg6XHRcdHJldCA9IHFjYThrX3JlYWRfbWlpKHByaXYsIHJlZywgdmFsX2J1ZiAmIzQzOyBpKTtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTUyOS1cdFx0aWYgKHJldCBcdTAwM2MgMClcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz01Nzk9c3RhdGljIGNvbnN0IHN0cnVjdCByZWdtYXBfY29uZmlnIHFjYThrX3JlZ21hcF9jb25maWcgPSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNTg2LVx0LnJlZ191cGRhdGVfYml0cyA9IHFjYThrX3JlZ21hcF91cGRhdGVfYml0cyxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjU4NzpcdC5yZF90YWJsZSA9IFx1MDAyNnFjYThrX3JlYWRhYmxlX3RhYmxlLFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNTg4LVx0LmRpc2FibGVfbG9ja2luZyA9IHRydWUsIC8qIExvY2tpbmcgaXMgaGFuZGxlZCBieSBxY2E4ayByZWFkL3dyaXRlICovXG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9ODA4PXFjYThrX21kaW9fYnVzeV93YWl0KHN0cnVjdCBtaWlfYnVzICpidXMsIHUzMiByZWcsIHUzMiBtYXNrKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTgxOS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjgyMDpcdC8qIENoZWNrIGlmIHFjYThrX3JlYWQgaGFzIGZhaWxlZCBmb3IgYSBkaWZmZXJlbnQgcmVhc29uXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy04MjEtXHQgKiBiZWZvcmUgcmV0dXJudGluZyAtRVRJTUVET1VUXG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9MTUwOD1zdGF0aWMgdm9pZCBxY2E4a19wY3NfZ2V0X3N0YXRlKHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzLCB1bnNpZ25lZCBpbnQgbmVnX21vZGUsXG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMTUxNS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjE1MTY6XHRyZXQgPSBxY2E4a19yZWFkKHByaXYsIFFDQThLX1JFR19QT1JUX1NUQVRVUyhwb3J0KSwgXHUwMDI2cmVnKTtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTE1MTctXHRpZiAocmV0IFx1MDAzYyAwKSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9MTU0OD1zdGF0aWMgaW50IHFjYThrX3Bjc19jb25maWcoc3RydWN0IHBoeWxpbmtfcGNzICpwY3MsIHVuc2lnbmVkIGludCBuZWdfbW9kZSxcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0xNTgyLVx0LyogQ29uZmlndXJlIHRoZSBTR01JSSBwYXJhbWV0ZXJzICovXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzoxNTgzOlx0cmV0ID0gcWNhOGtfcmVhZChwcml2LCBRQ0E4S19SRUdfU0dNSUlfQ1RSTCwgXHUwMDI2dmFsKTtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTE1ODQtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTIwNzM9cWNhOGtfc3dfcHJvYmUoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTIxMTItXHQvKiBDaGVjayB0aGUgZGV0ZWN0ZWQgc3dpdGNoIGlkICovXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzoyMTEzOlx0cmV0ID0gcWNhOGtfcmVhZF9zd2l0Y2hfaWQocHJpdik7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0yMTE0LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jPTIyPWNvbnN0IHN0cnVjdCBxY2E4a19taWJfZGVzYyBhcjgzMjdfbWliW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYy02NS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmM6NjY6aW50IHFjYThrX3JlYWQoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIHUzMiByZWcsIHUzMiAqdmFsKVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYy02Ny17XG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYz03Nj1pbnQgcWNhOGtfcm13KHN0cnVjdCBxY2E4a19wcml2ICpwcml2LCB1MzIgcmVnLCB1MzIgbWFzaywgdTMyIHdyaXRlX3ZhbClcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jLTgwLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYzo4MTpzdGF0aWMgY29uc3Qgc3RydWN0IHJlZ21hcF9yYW5nZSBxY2E4a19yZWFkYWJsZV9yYW5nZXNbXSA9IHtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmMtODItXHRyZWdtYXBfcmVnX3JhbmdlKDB4MDAwMCwgMHgwMGU0KSwgLyogR2xvYmFsIGNvbnRyb2wgKi9cbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jLTk4LVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYzo5OTpjb25zdCBzdHJ1Y3QgcmVnbWFwX2FjY2Vzc190YWJsZSBxY2E4a19yZWFkYWJsZV90YWJsZSA9IHtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmM6MTAwOlx0Lnllc19yYW5nZXMgPSBxY2E4a19yZWFkYWJsZV9yYW5nZXMsXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jOjEwMTpcdC5uX3llc19yYW5nZXMgPSBBUlJBWV9TSVpFKHFjYThrX3JlYWRhYmxlX3JhbmdlcyksXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jLTEwMi19O1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmM9MTY0PXN0YXRpYyBpbnQgcWNhOGtfZmRiX2FjY2VzcyhzdHJ1Y3QgcWNhOGtfcHJpdiAqcHJpdiwgZW51bSBxY2E4a19mZGJfY21kIGNtZCxcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jLTE4OS1cdGlmIChjbWQgPT0gUUNBOEtfRkRCX0xPQUQpIHtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmM6MTkwOlx0XHRyZXQgPSBxY2E4a19yZWFkKHByaXYsIFFDQThLX1JFR19BVFVfRlVOQywgXHUwMDI2cmVnKTtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmMtMTkxLVx0XHRpZiAocmV0IFx1MDAzYyAwKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmM9MzI1PXN0YXRpYyBpbnQgcWNhOGtfdmxhbl9hY2Nlc3Moc3RydWN0IHFjYThrX3ByaXYgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYy0zNDctXHRpZiAoY21kID09IFFDQThLX1ZMQU5fTE9BRCkge1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYzozNDg6XHRcdHJldCA9IHFjYThrX3JlYWQocHJpdiwgUUNBOEtfUkVHX1ZUVV9GVU5DMSwgXHUwMDI2cmVnKTtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmMtMzQ5LVx0XHRpZiAocmV0IFx1MDAzYyAwKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmM9MzU4PXN0YXRpYyBpbnQgcWNhOGtfdmxhbl9hZGQoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIHU4IHBvcnQsIHUxNiB2aWQsXG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYy0zNzQtXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jOjM3NTpcdHJldCA9IHFjYThrX3JlYWQocHJpdiwgUUNBOEtfUkVHX1ZUVV9GVU5DMCwgXHUwMDI2cmVnKTtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmMtMzc2LVx0aWYgKHJldCBcdTAwM2MgMClcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jPTM5Nj1zdGF0aWMgaW50IHFjYThrX3ZsYW5fZGVsKHN0cnVjdCBxY2E4a19wcml2ICpwcml2LCB1OCBwb3J0LCB1MTYgdmlkKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmMtNDA2LVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYzo0MDc6XHRyZXQgPSBxY2E4a19yZWFkKHByaXYsIFFDQThLX1JFR19WVFVfRlVOQzAsIFx1MDAyNnJlZyk7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jLTQwOC1cdGlmIChyZXQgXHUwMDNjIDApXG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYz00OTM9dm9pZCBxY2E4a19nZXRfZXRodG9vbF9zdGF0cyhzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmMtNTA5LVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYzo1MTA6XHRcdHJldCA9IHFjYThrX3JlYWQocHJpdiwgcmVnLCBcdTAwMjZ2YWwpO1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYy01MTEtXHRcdGlmIChyZXQgXHUwMDNjIDApXG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYy01MTQtXHRcdGlmIChtaWItXHUwMDNlc2l6ZSA9PSAyKSB7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jOjUxNTpcdFx0XHRyZXQgPSBxY2E4a19yZWFkKHByaXYsIHJlZyAmIzQzOyA0LCBcdTAwMjZoaSk7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jLTUxNi1cdFx0XHRpZiAocmV0IFx1MDAzYyAwKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmM9NTM2PWludCBxY2E4a19zZXRfbWFjX2VlZShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmMtNTQ0LVx0bXV0ZXhfbG9jayhcdTAwMjZwcml2LVx1MDAzZXJlZ19tdXRleCk7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jOjU0NTpcdHJldCA9IHFjYThrX3JlYWQocHJpdiwgUUNBOEtfUkVHX0VFRV9DVFJMLCBcdTAwMjZyZWcpO1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYy01NDYtXHRpZiAocmV0IFx1MDAzYyAwKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmM9MTIyND1pbnQgcWNhOGtfcG9ydF9sYWdfbGVhdmUoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jLTEyMjktXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jOjEyMzA6aW50IHFjYThrX3JlYWRfc3dpdGNoX2lkKHN0cnVjdCBxY2E4a19wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYy0xMjMxLXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jLTEyMzgtXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jOjEyMzk6XHRyZXQgPSBxY2E4a19yZWFkKHByaXYsIFFDQThLX1JFR19NQVNLX0NUUkwsIFx1MDAyNnZhbCk7XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jLTEyNDAtXHRpZiAocmV0IFx1MDAzYyAwKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGsuaD01MDI9ZXh0ZXJuIGNvbnN0IHN0cnVjdCBxY2E4a19taWJfZGVzYyBhcjgzMjdfbWliW107XG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLmg6NTAzOmV4dGVybiBjb25zdCBzdHJ1Y3QgcmVnbWFwX2FjY2Vzc190YWJsZSBxY2E4a19yZWFkYWJsZV90YWJsZTtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGsuaC01MDQtaW50IHFjYThrX21pYl9pbml0KHN0cnVjdCBxY2E4a19wcml2ICpwcml2KTtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGsuaD01MDU9dm9pZCBxY2E4a19wb3J0X3NldF9zdGF0dXMoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIGludCBwb3J0LCBpbnQgZW5hYmxlKTtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGsuaDo1MDY6aW50IHFjYThrX3JlYWRfc3dpdGNoX2lkKHN0cnVjdCBxY2E4a19wcml2ICpwcml2KTtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGsuaC01MDctXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLmgtNTA4LS8qIENvbW1vbiByZWFkL3dyaXRlL3JtdyBmdW5jdGlvbiAqL1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay5oOjUwOTppbnQgcWNhOGtfcmVhZChzdHJ1Y3QgcWNhOGtfcHJpdiAqcHJpdiwgdTMyIHJlZywgdTMyICp2YWwpO1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay5oLTUxMC1pbnQgcWNhOGtfd3JpdGUoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIHUzMiByZWcsIHUzMiB2YWwpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMCAwNzoxODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MDY4NAoJCQkJCQkJb3V0cHV0OiAxMjAKCQkJCQkJCXRob3VnaHRzOiAzNTgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBGdXp6YWJpbGl0eSBvZiB0aGUgUUNBOEsgRFNBIFN3aXRjaCBEcml2ZXIqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW5pdGlhbCBhc3Nlc3NtZW50IGlzIHRoYXQgdGhpcyBRQ0E4SyBzd2l0Y2ggZHJpdmVyLCBzcGVjaWZpY2FsbHkgdGhlIGBxY2E4a19zd19wcm9iZWAgZnVuY3Rpb24sIHByZXNlbnRzIGEgc2lnbmlmaWNhbnQgaHVyZGxlIGZvciBmdXp6aW5nLiBUaGUgZnVuY3Rpb24gYHFjYThrX3JlYWRfc3dpdGNoX2lkKHByaXYpYCBpcyBjYWxsZWQgd2l0aGluIGBxY2E4a19zd19wcm9iZWAsIGFuZCBjcnVjaWFsbHksIHRoaXMgcmVsaWVzIG9uIHRoZSBwaHlzaWNhbCBwcmVzZW5jZSBvZiB0aGUgaGFyZHdhcmUuIEdpdmVuIHRoYXQgc3RhbmRhcmQgUUVNVSBkb2VzbiYjMzk7dCBlbXVsYXRlIHRoZXNlIFFDQThLIHN3aXRjaGVzLCB0aGUgcHJvYmUgd2lsbCBpbmV2aXRhYmx5IGZhaWwgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudC4gQ29uc2VxdWVudGx5LCB0aGUgY29kZSBwYXRocyB0b3VjaGVkIGJ5IHRoaXMgcGF0Y2gsIGludm9sdmluZyBjaGVja3MgZm9yIGBxY2E4a19tZ210X2V0aF9kaXNhYmxlZGAgaW4gYHFjYThrX3JlYWRfZXRoYCwgYHFjYThrX3dyaXRlX2V0aGAsIGFuZCBgcWNhOGtfcGh5X2V0aF9jb21tYW5kYCwgYXJlIGNvbXBsZXRlbHkgdW5yZWFjaGFibGUgd2l0aGluIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciwgY3JpdGljYWxseSwgU3l6a2FsbGVyJiMzOTtzIFFFTVUuIFRoZXNlIGZ1bmN0aW9ucyBhcmUgb25seSBjYWxsZWQgYWZ0ZXIgYSBzdWNjZXNzZnVsIHByb2JlIGFuZCBzd2l0Y2ggaW5pdGlhbGl6YXRpb24uCgpUbyBiZSBhYnNvbHV0ZWx5IHN1cmUsIEkmIzM5O3ZlIGNvbnNpZGVyZWQgcG90ZW50aWFsIHdvcmthcm91bmRzLiBJcyB0aGVyZSBhIGR1bW15IGRyaXZlciBvdXQgdGhlcmUgdGhhdCBtaWdodCBpbnN0YW50aWF0ZSB0aGlzLCBzb21laG93IG1ha2luZyBpdCBhY2Nlc3NpYmxlPyBObywgaXQmIzM5O3Mgbm90LiBUaGUgZHJpdmVyIHJlbGllcyBvbiBzcGVjaWZpYyBNRElPIGNvbXBhdGlibGUgc3RyaW5ncywgbGlrZSAmIzM0O3FjYSxxY2E4MzI3LCYjMzQ7IG1hdGNoZWQgdGhyb3VnaCB0aGUgZGV2aWNlIHRyZWUgKE9GKS4gU3l6a2FsbGVyIGRvZXNuJiMzOTt0IGR5bmFtaWNhbGx5IGluamVjdCBPRiBub2RlcyBmb3IgTURJTyBkZXZpY2VzLCB3aGljaCB3b3VsZCBiZSBuZWVkZWQgaGVyZS4gRXZlbiBpZiBzdWNoIGEgdGhpbmcgd2VyZSBwb3NzaWJsZSwgdGhlIHByb2JlIGZ1bmN0aW9uIGl0c2VsZiByZWFkcyBhIHN3aXRjaCBJRCBmcm9tIGEgc3BlY2lmaWMgcmVnaXN0ZXIuIFRoYXQgcmVhZCB3b3VsZCBmYWlsIHdpdGhvdXQgYW4gYXBwcm9wcmlhdGUgZW11bGF0b3IsIGFuZCB0aGF0JiMzOTtzIG5vdCBzb21ldGhpbmcgd2UgaGF2ZSBhdmFpbGFibGUuCgpUaGVyZWZvcmUsIGFmdGVyIGEgdGhvcm91Z2ggcmV2aWV3LCBJJiMzOTttIGNvbmZpZGVudCBpbiBjb25jbHVkaW5nIHRoYXQgdGhpcyBpcyBub3Qgd29ydGggZnV6emluZywgYW5kIEkgc2hvdWxkIHNldCBgV29ydGhGdXp6aW5nPWZhbHNlYC4gVGhlIHJlYXNvbmluZyB3aWxsIGJlIHN0cmFpZ2h0Zm9yd2FyZDogdGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIERTQSBzd2l0Y2ggZHJpdmVyIGZvciBRQ0E4SyBjaGlwcyB0aGF0IHJlcXVpcmVzIHBoeXNpY2FsIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMCAwNzoxODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBxY2E4ayBEU0Egc3dpdGNoIGRyaXZlciwgd2hpY2ggaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXIgZm9yIFF1YWxjb21tIEF0aGVyb3MgUUNBOEsgRXRoZXJuZXQgc3dpdGNoIGNoaXBzLiBUaGlzIGRyaXZlciByZXF1aXJlcyBwaHlzaWNhbCBoYXJkd2FyZSBjb25uZWN0ZWQgdmlhIE1ESU8gdG8gcHJvYmUgc3VjY2Vzc2Z1bGx5IChpdCByZWFkcyB0aGUgc3dpdGNoIElEIGZyb20gYSBoYXJkd2FyZSByZWdpc3RlciBkdXJpbmcgcHJvYmUpLiBTaW5jZSB0aGlzIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VL0dDRSBlbnZpcm9ubWVudHMgdXNlZCBieSBzeXprYWxsZXIsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGFuZCBmdXp6LiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHFjYThrIERTQSBzd2l0Y2ggZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlciBmb3IgUXVhbGNvbW0gQXRoZXJvcyBRQ0E4SyBFdGhlcm5ldCBzd2l0Y2ggY2hpcHMuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIHBoeXNpY2FsIGhhcmR3YXJlIGNvbm5lY3RlZCB2aWEgTURJTyB0byBwcm9iZSBzdWNjZXNzZnVsbHkgKGl0IHJlYWRzIHRoZSBzd2l0Y2ggSUQgZnJvbSBhIGhhcmR3YXJlIHJlZ2lzdGVyIGR1cmluZyBwcm9iZSkuIFNpbmNlIHRoaXMgaGFyZHdhcmUgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUvR0NFIGVudmlyb25tZW50cyB1c2VkIGJ5IHN5emthbGxlciwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggYW5kIGZ1enouJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIzLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMCAwNzoxODwvdGQ+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+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMTBUMDc6MTY6NDguNzA3NDg3Mjk2WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODMwNjk0NjY1NjEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJcIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgcWNhOGsgRFNBIHN3aXRjaCBkcml2ZXIsIHdoaWNoIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVyIGZvciBRdWFsY29tbSBBdGhlcm9zIFFDQThLIEV0aGVybmV0IHN3aXRjaCBjaGlwcy4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgcGh5c2ljYWwgaGFyZHdhcmUgY29ubmVjdGVkIHZpYSBNRElPIHRvIHByb2JlIHN1Y2Nlc3NmdWxseSAoaXQgcmVhZHMgdGhlIHN3aXRjaCBJRCBmcm9tIGEgaGFyZHdhcmUgcmVnaXN0ZXIgZHVyaW5nIHByb2JlKS4gU2luY2UgdGhpcyBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS9HQ0UgZW52aXJvbm1lbnRzIHVzZWQgYnkgc3l6a2FsbGVyLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBhbmQgZnV6ei5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTEwVDA3OjE2OjQ4LjcwNzQ5NTcyNloiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQxMTgyOTM5MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDNjZDk0NTMwOWNhNDJlZjU1ZTNkYTRkMzlkZWFkNGM4Y2M2NjQyNjJcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIE1vbiBBdWcgMTAgMDc6MTY6NDYgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMgYi9kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguY1xcbmluZGV4IDRjOTI4OTgzYjg2MjMuLjFkOTBhMjNhYmE2YmIgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmNcXG4rKysgYi9kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguY1xcbkBAIC0xNjAsNiArMTYwLDExIEBAIHFjYThrX3NldF9wYWdlKHN0cnVjdCBxY2E4a19wcml2ICpwcml2LCB1MTYgcGFnZSlcXG4gXFx0cmV0dXJuIDA7XFxuIH1cXG4gXFxuK3N0YXRpYyBib29sIHFjYThrX21nbXRfZXRoX2Rpc2FibGVkKGNvbnN0IHN0cnVjdCBxY2E4a19wcml2ICpwcml2KVxcbit7XFxuK1xcdHJldHVybiBwcml2LVxcdTAwM2Vzd2l0Y2hfaWQgPT0gUUNBOEtfSURfUUNBODMyNztcXG4rfVxcbitcXG4gc3RhdGljIHZvaWQgcWNhOGtfcndfcmVnX2Fja19oYW5kbGVyKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4ge1xcbiBcXHRzdHJ1Y3QgcWNhOGtfbWdtdF9ldGhfZGF0YSAqbWdtdF9ldGhfZGF0YTtcXG5AQCAtMzE2LDYgKzMyMSw5IEBAIHN0YXRpYyBpbnQgcWNhOGtfcmVhZF9ldGgoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIHUzMiByZWcsIHUzMiAqdmFsLCBpbnQgbGVuKVxcbiBcXHRib29sIGFjaztcXG4gXFx0aW50IHJldDtcXG4gXFxuK1xcdGlmIChxY2E4a19tZ210X2V0aF9kaXNhYmxlZChwcml2KSlcXG4rXFx0XFx0cmV0dXJuIC1FTlhJTztcXG4rXFxuIFxcdHNrYiA9IHFjYThrX2FsbG9jX21kaW9faGVhZGVyKE1ESU9fUkVBRCwgcmVnLCBOVUxMLFxcbiBcXHRcXHRcXHRcXHQgICAgICBRQ0E4S19FVEhFUk5FVF9NRElPX1BSSU9SSVRZLCBsZW4pO1xcbiBcXHRpZiAoIXNrYilcXG5AQCAtMzY4LDYgKzM3Niw5IEBAIHN0YXRpYyBpbnQgcWNhOGtfd3JpdGVfZXRoKHN0cnVjdCBxY2E4a19wcml2ICpwcml2LCB1MzIgcmVnLCB1MzIgKnZhbCwgaW50IGxlbilcXG4gXFx0Ym9vbCBhY2s7XFxuIFxcdGludCByZXQ7XFxuIFxcbitcXHRpZiAocWNhOGtfbWdtdF9ldGhfZGlzYWJsZWQocHJpdikpXFxuK1xcdFxcdHJldHVybiAtRU5YSU87XFxuK1xcbiBcXHRza2IgPSBxY2E4a19hbGxvY19tZGlvX2hlYWRlcihNRElPX1dSSVRFLCByZWcsIHZhbCxcXG4gXFx0XFx0XFx0XFx0ICAgICAgUUNBOEtfRVRIRVJORVRfTURJT19QUklPUklUWSwgbGVuKTtcXG4gXFx0aWYgKCFza2IpXFxuQEAgLTYzMCw2ICs2NDEsOSBAQCBxY2E4a19waHlfZXRoX2NvbW1hbmQoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIGJvb2wgcmVhZCwgaW50IHBoeSxcXG4gXFx0aW50IHJldCwgcmV0MTtcXG4gXFx0Ym9vbCBhY2s7XFxuIFxcbitcXHRpZiAocWNhOGtfbWdtdF9ldGhfZGlzYWJsZWQocHJpdikpXFxuK1xcdFxcdHJldHVybiAtRU5YSU87XFxuK1xcbiBcXHRpZiAocmVnbnVtIFxcdTAwM2U9IFFDQThLX01ESU9fTUFTVEVSX01BWF9SRUcpXFxuIFxcdFxcdHJldHVybiAtRUlOVkFMO1xcbiBcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTBUMDc6MTY6NTAuMTIwMzIzNDU5WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6ODE2NTY2MTc2MzgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBxY2E4ayBEU0Egc3dpdGNoIGRyaXZlciwgd2hpY2ggaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXIgZm9yIFF1YWxjb21tIEF0aGVyb3MgUUNBOEsgRXRoZXJuZXQgc3dpdGNoIGNoaXBzLiBUaGlzIGRyaXZlciByZXF1aXJlcyBwaHlzaWNhbCBoYXJkd2FyZSBjb25uZWN0ZWQgdmlhIE1ESU8gdG8gcHJvYmUgc3VjY2Vzc2Z1bGx5IChpdCByZWFkcyB0aGUgc3dpdGNoIElEIGZyb20gYSBoYXJkd2FyZSByZWdpc3RlciBkdXJpbmcgcHJvYmUpLiBTaW5jZSB0aGlzIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VL0dDRSBlbnZpcm9ubWVudHMgdXNlZCBieSBzeXprYWxsZXIsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGFuZCBmdXp6LlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgM2NkOTQ1MzA5Y2E0MmVmNTVlM2RhNGQzOWRlYWQ0YzhjYzY2NDI2MlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gQXVnIDEwIDA3OjE2OjQ2IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMgYi9kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguY1xuaW5kZXggNGM5Mjg5ODNiODYyMy4uMWQ5MGEyM2FiYTZiYiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jXG4rKysgYi9kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguY1xuQEAgLTE2MCw2ICsxNjAsMTEgQEAgcWNhOGtfc2V0X3BhZ2Uoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIHUxNiBwYWdlKVxuIFx0cmV0dXJuIDA7XG4gfVxuIFxuK3N0YXRpYyBib29sIHFjYThrX21nbXRfZXRoX2Rpc2FibGVkKGNvbnN0IHN0cnVjdCBxY2E4a19wcml2ICpwcml2KVxuK3tcbitcdHJldHVybiBwcml2LVx1MDAzZXN3aXRjaF9pZCA9PSBRQ0E4S19JRF9RQ0E4MzI3O1xuK31cbitcbiBzdGF0aWMgdm9pZCBxY2E4a19yd19yZWdfYWNrX2hhbmRsZXIoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuIHtcbiBcdHN0cnVjdCBxY2E4a19tZ210X2V0aF9kYXRhICptZ210X2V0aF9kYXRhO1xuQEAgLTMxNiw2ICszMjEsOSBAQCBzdGF0aWMgaW50IHFjYThrX3JlYWRfZXRoKHN0cnVjdCBxY2E4a19wcml2ICpwcml2LCB1MzIgcmVnLCB1MzIgKnZhbCwgaW50IGxlbilcbiBcdGJvb2wgYWNrO1xuIFx0aW50IHJldDtcbiBcbitcdGlmIChxY2E4a19tZ210X2V0aF9kaXNhYmxlZChwcml2KSlcbitcdFx0cmV0dXJuIC1FTlhJTztcbitcbiBcdHNrYiA9IHFjYThrX2FsbG9jX21kaW9faGVhZGVyKE1ESU9fUkVBRCwgcmVnLCBOVUxMLFxuIFx0XHRcdFx0ICAgICAgUUNBOEtfRVRIRVJORVRfTURJT19QUklPUklUWSwgbGVuKTtcbiBcdGlmICghc2tiKVxuQEAgLTM2OCw2ICszNzYsOSBAQCBzdGF0aWMgaW50IHFjYThrX3dyaXRlX2V0aChzdHJ1Y3QgcWNhOGtfcHJpdiAqcHJpdiwgdTMyIHJlZywgdTMyICp2YWwsIGludCBsZW4pXG4gXHRib29sIGFjaztcbiBcdGludCByZXQ7XG4gXG4rXHRpZiAocWNhOGtfbWdtdF9ldGhfZGlzYWJsZWQocHJpdikpXG4rXHRcdHJldHVybiAtRU5YSU87XG4rXG4gXHRza2IgPSBxY2E4a19hbGxvY19tZGlvX2hlYWRlcihNRElPX1dSSVRFLCByZWcsIHZhbCxcbiBcdFx0XHRcdCAgICAgIFFDQThLX0VUSEVSTkVUX01ESU9fUFJJT1JJVFksIGxlbik7XG4gXHRpZiAoIXNrYilcbkBAIC02MzAsNiArNjQxLDkgQEAgcWNhOGtfcGh5X2V0aF9jb21tYW5kKHN0cnVjdCBxY2E4a19wcml2ICpwcml2LCBib29sIHJlYWQsIGludCBwaHksXG4gXHRpbnQgcmV0LCByZXQxO1xuIFx0Ym9vbCBhY2s7XG4gXG4rXHRpZiAocWNhOGtfbWdtdF9ldGhfZGlzYWJsZWQocHJpdikpXG4rXHRcdHJldHVybiAtRU5YSU87XG4rXG4gXHRpZiAocmVnbnVtIFx1MDAzZT0gUUNBOEtfTURJT19NQVNURVJfTUFYX1JFRylcbiBcdFx0cmV0dXJuIC1FSU5WQUw7XG4gXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMFQwNzoxNjo1MC4xMjAzMjU0MjlaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMzA4MTMxNDA0OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBRdWFsY29tbSBBdGhlcm9zIFFDQThLIEV0aGVybmV0IFN3aXRjaCBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHRvdWNoaW5nIGBkcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguY2AuIEludGVyZXN0aW5nLiBJdCBsb29rcyBsaWtlIHRoZXkndmUgYWRkZWQgYSBjaGVjayBmb3IgYHFjYThrX21nbXRfZXRoX2Rpc2FibGVkKHByaXYpYCB3aXRoaW4gYHFjYThrX3JlYWRfZXRoYCwgYHFjYThrX3dyaXRlX2V0aGAsIGFuZCBgcWNhOGtfcGh5X2V0aF9jb21tYW5kYC4gRXNzZW50aWFsbHksIGlmIHRoZSBgc3dpdGNoX2lkYCBpcyBzZXQgdG8gYFFDQThLX0lEX1FDQTgzMjdgLCBpdCdsbCByZXR1cm4gYC1FTlhJT2AuIFRoaXMgaXMgZm9yIGEgUXVhbGNvbW0gQXRoZXJvcyBRQ0E4SyBFdGhlcm5ldCBzd2l0Y2ggZHJpdmVyLCBhIERTQSBkcml2ZXIsIHdoaWNoIHVzdWFsbHkgbWVhbnMgaXQncyBwcmV0dHkgdGlnaHRseSBjb3VwbGVkIHdpdGggc3BlY2lmaWMgaGFyZHdhcmUuXG5cbk15IGltbWVkaWF0ZSBxdWVzdGlvbiBpcywgaG93IGVhc2lseSBjb3VsZCB0aGlzIGRyaXZlciBiZSBleGVyY2lzZWQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudD8gRFNBIGRyaXZlcnMsIGJ5IHRoZWlyIG5hdHVyZSwgb2Z0ZW4gcmVseSBvbiB0aGUgdW5kZXJseWluZyBzd2l0Y2ggaGFyZHdhcmUuIENvdWxkIHRoaXMgYmUgb25lIG9mIHRob3NlIGNhc2VzLCBvciBpcyB0aGVyZSBzb21lIGFic3RyYWN0aW9uIGxheWVyIGludm9sdmVkPyBUbyB1bmRlcnN0YW5kIHRoZSBpbXBsaWNhdGlvbnMgb2YgdGhpcyBuZXcgY2hlY2ssIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjb250ZXh0LlxuXG5MZXQncyBkaWcgaW50byB0aGUgS2NvbmZpZyBmb3IgdGhpcyBkcml2ZXIuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoYXQgZGVwZW5kZW5jaWVzIGl0IGhhcywgaG93IGl0J3MgY29uZmlndXJlZCwgYW5kIHdoZXRoZXIgdGhlcmUgYXJlIGFueSBjbHVlcyBhYm91dCBpdHMgaGFyZHdhcmUgcmVxdWlyZW1lbnRzLiBUaGF0IHdpbGwgaGVscCBtZSB1bmRlcnN0YW5kIHdoZXRoZXIgdGhpcyBwYXRjaCBpcyBzaW1wbHkgaGFyZGVuaW5nIGEgc3BlY2lmaWMgaGFyZHdhcmUgY29uZmlndXJhdGlvbiwgb3IgaWYgaXQgbWlnaHQgaW1wYWN0IHZpcnR1YWxpemVkIHVzZXMgYXMgd2VsbC4gSSdsbCBmb2N1cyBvbiBhbnl0aGluZyB0aGF0IHNwZWFrcyB0byB0aGUgaGFyZHdhcmUgZGVwZW5kZW5jaWVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNDc5LCJPdXRwdXRUb2tlbnMiOjIzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTg4LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTBUMDc6MTc6MDMuMjAxNjQyOTM3WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI0MTUyOTE5NzMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE5FVF9EU0FfUUNBOEtcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZHNhL3FjYS9LY29uZmlnPTI9Y29uZmlnIE5FVF9EU0FfQVI5MzMxXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL0tjb25maWctMTAtXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9LY29uZmlnOjExOmNvbmZpZyBORVRfRFNBX1FDQThLXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9LY29uZmlnLTEyLVxcdHRyaXN0YXRlIFxcXCJRdWFsY29tbSBBdGhlcm9zIFFDQThLIEV0aGVybmV0IHN3aXRjaCBmYW1pbHkgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvS2NvbmZpZy0xOC1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL0tjb25maWc6MTk6Y29uZmlnIE5FVF9EU0FfUUNBOEtfTEVEU19TVVBQT1JUXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9LY29uZmlnLTIwLVxcdGJvb2wgXFxcIlF1YWxjb21tIEF0aGVyb3MgUUNBOEsgRXRoZXJuZXQgc3dpdGNoIGZhbWlseSBMRURzIHN1cHBvcnRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTEwVDA3OjE3OjA1LjYxNjkzOTc3WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjQyODcwOTYzMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgYW5kIHdyaXR0ZW4gaW4gdGhlIGZpcnN0IHBlcnNvbjpcblxuKipJbml0aWFsIEFzc2Vzc21lbnQqKlxuXG5SaWdodCwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBNeSBpbW1lZGlhdGUgaW5zdGluY3QgaXMgdG8gaWRlbnRpZnkgdGhlIGRlcGVuZGVuY2llcy4gV2UncmUgZGVhbGluZyB3aXRoIGEgc3lzdGVtLCBhIHByb2Nlc3MsIGEgcHJvYmxlbSDigJMgd2hhdGV2ZXIgXCJpdFwiIGlzIOKAkyBhbmQgdW5kZXJzdGFuZGluZyB0aGUgZm91bmRhdGlvbmFsIGVsZW1lbnRzIGlzIHBhcmFtb3VudC4gV2hhdCBhcmUgdGhlIGtleSB2YXJpYWJsZXM/IFRoZSBjb3JlIGlucHV0cz8gVGhlIHVuZGVybHlpbmcgYXNzdW1wdGlvbnM/IFBpbnBvaW50aW5nIHRoZXNlIGRlcGVuZGVuY2llcyBpcyB0aGUgZXNzZW50aWFsIGZpcnN0IHN0ZXAgdG8gYW55IGVmZmVjdGl2ZSBhbmFseXNpcy4gV2hlcmUgZG8gd2UgYmVnaW4gdG8gdW5yYXZlbCBjb21wbGV4aXR5P1xuXG5cbiIsIklucHV0VG9rZW5zIjozMjExLCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xMFQwNzoxNzowOC4wNDU2NTI3MDJaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3NTkwOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC9kc2EvcWNhL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogMzBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG4gICAyOlxcdGNvbmZpZyBORVRfRFNBX0FSOTMzMVxcbiAgIDM6XFx0XFx0dHJpc3RhdGUgXFxcIlF1YWxjb21tIEF0aGVyb3MgQVI5MzMxIEV0aGVybmV0IHN3aXRjaCBzdXBwb3J0XFxcIlxcbiAgIDQ6XFx0XFx0ZGVwZW5kcyBvbiBORVRfRFNBXFxuICAgNTpcXHRcXHRzZWxlY3QgTkVUX0RTQV9UQUdfQVI5MzMxXFxuICAgNjpcXHRcXHRzZWxlY3QgUkVHTUFQXFxuICAgNzpcXHRcXHRoZWxwXFxuICAgODpcXHRcXHQgIFRoaXMgZW5hYmxlcyBzdXBwb3J0IGZvciB0aGUgUXVhbGNvbW0gQXRoZXJvcyBBUjkzMzEgYnVpbHQtaW4gRXRoZXJuZXRcXG4gICA5OlxcdFxcdCAgc3dpdGNoLlxcbiAgMTA6XFx0XFxuICAxMTpcXHRjb25maWcgTkVUX0RTQV9RQ0E4S1xcbiAgMTI6XFx0XFx0dHJpc3RhdGUgXFxcIlF1YWxjb21tIEF0aGVyb3MgUUNBOEsgRXRoZXJuZXQgc3dpdGNoIGZhbWlseSBzdXBwb3J0XFxcIlxcbiAgMTM6XFx0XFx0c2VsZWN0IE5FVF9EU0FfVEFHX1FDQVxcbiAgMTQ6XFx0XFx0c2VsZWN0IFJFR01BUFxcbiAgMTU6XFx0XFx0aGVscFxcbiAgMTY6XFx0XFx0ICBUaGlzIGVuYWJsZXMgc3VwcG9ydCBmb3IgdGhlIFF1YWxjb21tIEF0aGVyb3MgUUNBOEsgRXRoZXJuZXRcXG4gIDE3OlxcdFxcdCAgc3dpdGNoIGNoaXBzLlxcbiAgMTg6XFx0XFxuICAxOTpcXHRjb25maWcgTkVUX0RTQV9RQ0E4S19MRURTX1NVUFBPUlRcXG4gIDIwOlxcdFxcdGJvb2wgXFxcIlF1YWxjb21tIEF0aGVyb3MgUUNBOEsgRXRoZXJuZXQgc3dpdGNoIGZhbWlseSBMRURzIHN1cHBvcnRcXFwiXFxuICAyMTpcXHRcXHRkZXBlbmRzIG9uIE5FVF9EU0FfUUNBOEtcXG4gIDIyOlxcdFxcdGRlcGVuZHMgb24gTEVEU19DTEFTUz15IHx8IExFRFNfQ0xBU1M9TkVUX0RTQV9RQ0E4S1xcbiAgMjM6XFx0XFx0ZGVwZW5kcyBvbiBMRURTX1RSSUdHRVJTXFxuICAyNDpcXHRcXHRoZWxwXFxuICAyNTpcXHRcXHQgIFRoaXMgZW5hYmxlZCBzdXBwb3J0IGZvciBMRURzIHByZXNlbnQgb24gdGhlIFF1YWxjb21tIEF0aGVyb3NcXG4gIDI2OlxcdFxcdCAgUUNBOEsgRXRoZXJuZXQgc3dpdGNoIGNoaXBzLlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMFQwNzoxNzowOC4wNDU3MzA3NDJaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNzU2NDA3MTkwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUUNBOEsgRXRoZXJuZXQgU3dpdGNoIERyaXZlcioqXG5cbk9rYXksIHNvIHRoaXMgaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXIsIGZvY3VzaW5nIG9uIFF1YWxjb21tIEF0aGVyb3MgUUNBOEsgRXRoZXJuZXQgc3dpdGNoIGNoaXBzLiBNeSBpbml0aWFsIHF1ZXN0aW9uIGlzIHdoZXRoZXIgb3Igbm90IHRoaXMgaXMgZ29pbmcgdG8gYmUgZW11bGF0YWJsZSBvciByZWFjaGFibGUgd2l0aGluIFFFTVUuIEZyb20gbXkgZXhwZXJpZW5jZSB3aXRoIHRoZXNlIGtpbmRzIG9mIERTQSBkcml2ZXJzLCBidWlsdCBmb3IgdmVyeSBzcGVjaWZpYyBoYXJkd2FyZSBzd2l0Y2hlcywgaXQncyBwcmV0dHkgcmFyZSB0byBzZWUgdGhlbSBmdWxseSBlbXVsYXRlZCBpbiBhIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnQuIFNvLCBJIG5lZWQgdG8gZGlnIGRlZXBlci4gRmlyc3QsIEkgaGF2ZSB0byBmaWd1cmUgb3V0IGlmIHRoaXMgZHJpdmVyIGNvbW11bmljYXRlcyB2aWEgTURJTyBvciBTUEkuIFRoaXMgaXMgdGhlIHN0YXJ0aW5nIHBvaW50IGZvciB1bmRlcnN0YW5kaW5nIGl0cyBwb3RlbnRpYWwgZm9yIGludGVncmF0aW9uIG9yLCBmcmFua2x5LCB0aGUgbGlrZWxpaG9vZCBvZiBhIHN1Y2Nlc3NmdWwgZW11bGF0aW9uIGVmZm9ydC5cblxuXG4iLCJJbnB1dFRva2VucyI6Mzc2NywiT3V0cHV0VG9rZW5zIjoyMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY4LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTBUMDc6MTc6MTEuODAyMTQxNDE0WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE2NTE3NjM5ODYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicWNhOGtfbWF0Y2hcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jPTIxODg9c3RhdGljIGludCBuc3NfY2NfcWNhOGtfcHJvYmUoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KVxcbi0tXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIyMDMtXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIyMDQ6c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbnNzX2NjX3FjYThrX21hdGNoX3RhYmxlW10gPSB7XFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIyMDUtXFx0eyAuY29tcGF0aWJsZSA9IFxcXCJxY29tLHFjYTgwODQtbnNzY2NcXFwiIH0sXFxuLS1cXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjIwNy19O1xcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMjA4Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG5zc19jY19xY2E4a19tYXRjaF90YWJsZSk7XFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIyMDktXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jPTIyMTA9c3RhdGljIHN0cnVjdCBtZGlvX2RyaXZlciBuc3NfY2NfcWNhOGtfZHJpdmVyID0ge1xcbi0tXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIyMTItXFx0XFx0Lm5hbWUgPSBcXFwicWNvbSxxY2E4ay1uc3NjY1xcXCIsXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIyMTM6XFx0XFx0Lm9mX21hdGNoX3RhYmxlXFx0PSBuc3NfY2NfcWNhOGtfbWF0Y2hfdGFibGUsXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIyMTQtXFx0fSxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTExMjE9cWNhOGtfc2V0dXBfb2ZfcHdzX3JlZyhzdHJ1Y3QgcWNhOGtfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0xMTIyLXtcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzoxMTIzOlxcdGNvbnN0IHN0cnVjdCBxY2E4a19tYXRjaF9kYXRhICpkYXRhID0gcHJpdi1cXHUwMDNlaW5mbztcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0xMTI0LVxcdHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSA9IHByaXYtXFx1MDAzZWRldi1cXHUwMDNlb2Zfbm9kZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTIyMDQ9c3RhdGljIGNvbnN0IHN0cnVjdCBxY2E4a19pbmZvX29wcyBxY2E4eHh4X29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTIyMDctXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MjIwODpzdGF0aWMgY29uc3Qgc3RydWN0IHFjYThrX21hdGNoX2RhdGEgcWNhODMyNyA9IHtcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0yMjA5LVxcdC5pZCA9IFFDQThLX0lEX1FDQTgzMjcsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0yMjE0LVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjIyMTU6c3RhdGljIGNvbnN0IHN0cnVjdCBxY2E4a19tYXRjaF9kYXRhIHFjYTgzMjggPSB7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMjIxNi1cXHQuaWQgPSBRQ0E4S19JRF9RQ0E4MzI3LFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMjIyMC1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzoyMjIxOnN0YXRpYyBjb25zdCBzdHJ1Y3QgcWNhOGtfbWF0Y2hfZGF0YSBxY2E4MzN4ID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTIyMjItXFx0LmlkID0gUUNBOEtfSURfUUNBODMzNyxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGsuaD0zNzg9c3RydWN0IHFjYThrX2luZm9fb3BzIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGsuaC0zODEtXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay5oOjM4MjpzdHJ1Y3QgcWNhOGtfbWF0Y2hfZGF0YSB7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay5oLTM4My1cXHR1OCBpZDtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGsuaD00NDU9c3RydWN0IHFjYThrX3ByaXYge1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay5oLTQ2OS1cXHRzdHJ1Y3QgcWNhOGtfcGNzIHBjc19wb3J0XzY7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay5oOjQ3MDpcXHRjb25zdCBzdHJ1Y3QgcWNhOGtfbWF0Y2hfZGF0YSAqaW5mbztcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLmgtNDcxLVxcdHN0cnVjdCBxY2E4a19sZWQgcG9ydHNfbGVkW1FDQThLX0xFRF9DT1VOVF07XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTEwVDA3OjE3OjEzLjQ1MzkwOTRaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMjgwMjY1NTkzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipEaXZpbmcgaW50byB0aGUgUUNBOEstOFhYWCBEcml2ZXIqKlxuXG5BbHJpZ2h0LCB0aW1lIHRvIGdldCBteSBoYW5kcyBkaXJ0eS4gSSBuZWVkIHRvIHBpbnBvaW50IHRoZSByZWxldmFudCBwYXJ0IG9mIHRoZSBRQ0E4Sy04WFhYIGRyaXZlciByZXNwb25zaWJsZSBmb3IgZGV2aWNlIG1hdGNoaW5nLiBMZXQncyBzdGFydCBieSB6ZXJvaW5nIGluIG9uIHRoZSBgcWNhOGtfb2ZfbWF0Y2hgIGZ1bmN0aW9uIHdpdGhpbiBgZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmNgLiBUaGlzIGlzIHdoZXJlIHRoZSBtYWdpYyBzaG91bGQgYmUgaGFwcGVuaW5nIOKAkyB0aGUgT3BlbiBGaXJtd2FyZSBtYXRjaGluZyBsb2dpYy4gSSBuZWVkIHRvIHJlZnJlc2ggbXkgbWVtb3J5IG9uIHRoZSBzcGVjaWZpY3Mgb2YgaG93IHRoZSBkZXZpY2UgdHJlZSBpcyBwYXJzZWQgYW5kIGhvdyB0aGVzZSBkcml2ZXJzIGFyZSBhdHRhY2hlZC4gVGhpcyBmaWxlIHNob3VsZCBiZSB0aGUgc3RhcnRpbmcgcG9pbnQsIHRoZSBrZXkgdG8gdW5kZXJzdGFuZGluZyBob3cgd2UgaWRlbnRpZnkgYW5kIGluaXRpYWxpemUgdGhlIFFDQThLLThYWFggc3dpdGNoLiBMZXQncyBzZWUgd2hhdCdzIHdoYXQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUyNjEsIk91dHB1dFRva2VucyI6MjIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xMFQwNzoxNzoxNi43MzQxNzY5MTNaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEzOTcxNDY4NTQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicWNhOGtfb2ZfbWF0Y2hcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9MjIyMT1zdGF0aWMgY29uc3Qgc3RydWN0IHFjYThrX21hdGNoX2RhdGEgcWNhODMzeCA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTIyMjYtXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MjIyNzpzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBxY2E4a19vZl9tYXRjaFtdID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTIyMjgtXFx0eyAuY29tcGF0aWJsZSA9IFxcXCJxY2EscWNhODMyN1xcXCIsIC5kYXRhID0gXFx1MDAyNnFjYTgzMjcgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTIyMzU9c3RhdGljIHN0cnVjdCBtZGlvX2RyaXZlciBxY2E4a21kaW9fZHJpdmVyID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMjI0MC1cXHRcXHQubmFtZSA9IFxcXCJxY2E4a1xcXCIsXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MjI0MTpcXHRcXHQub2ZfbWF0Y2hfdGFibGUgPSBxY2E4a19vZl9tYXRjaCxcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0yMjQyLVxcdFxcdC5wbSA9IFxcdTAwMjZxY2E4a19wbV9vcHMsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTEwVDA3OjE3OjE4LjEzMTMzMDczN1oiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0OTM1ODE2NTM5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk1ESU8gRHJpdmVyIEludmVzdGlnYXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGBxY2E4a21kaW9fZHJpdmVyYCDigJMgdGhhdCdzIGFuIE1ESU8gZHJpdmVyLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIFwiU3RhbmRhcmQgUUVNVSBwcm9iYWJseSBkb2Vzbid0IGVtdWxhdGUgTURJTyBkZXZpY2VzIGRpcmVjdGx5LCB1bmxlc3MgaXQncyBwYXJ0IG9mIGEgbW9yZSBjb21wcmVoZW5zaXZlIFNvQyBlbXVsYXRpb24gb3IsIG1heWJlLCB0aGVyZSdzIGEgc3BlY2lhbGl6ZWQgTURJTyBidXMgZW11bGF0b3IgSSdtIG5vdCBpbW1lZGlhdGVseSB0aGlua2luZyBvZlwiLiBUaGVuIGl0IGhpdCBtZTogd2FpdCwgZGlkbid0IEkgcmVhZCBzb21ldGhpbmcgYWJvdXQgc3l6a2FsbGVyIGhhdmluZyAqc29tZSogY2FwYWJpbGl0eSBpbiB0aGlzIGFyZWE/IE1heWJlIGZvciBpbmplY3RpbmcgZGV2aWNlcywgb3IgdXNpbmcgZHVtbXkgYnVzZXM/IEl04oCZcyB0aW1lIHRvIGNoZWNrIGlmIHN5emthbGxlciBoYXMgc29tZSBzcGVjaWZpYyBzdXBwb3J0IGZvciBpbnRlcmFjdGluZyB3aXRoIE1ESU8uIExldCdzIHNlZSBpZiB0aGF0IGJlYXJzIGZydWl0LlxuXG5cbiIsIklucHV0VG9rZW5zIjo1ODQ5LCJPdXRwdXRUb2tlbnMiOjE4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OTIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTBUMDc6MTc6MjMuMDY3MTQ5MjE3WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDA4OTI5NzAzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1kaW9fYnVzXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMjM3MSBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpbzoxOldoYXQ6ICAgICAgICAgIC9zeXMvYnVzL21kaW9fYnVzL2RldmljZXMvLi4uL3N0YXRpc3RpY3MvXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpbzoyOldoYXQ6ICAgICAgICAgIC9zeXMvY2xhc3MvbWRpb19idXMvLi4uL3N0YXRpc3RpY3MvXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpby0zLURhdGU6ICAgICAgICAgIEphbnVhcnkgMjAyMFxcbi0tXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpbz02PURlc2NyaXB0aW9uOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpby05LVxcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYnVzLW1kaW86MTA6V2hhdDogICAgICAgICAgL3N5cy9idXMvbWRpb19idXMvZGV2aWNlcy8uLi4vc3RhdGlzdGljcy90cmFuc2ZlcnNcXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvOjExOldoYXQ6ICAgICAgICAgIC9zeXMvY2xhc3MvbWRpb19idXMvLi4uL3RyYW5zZmVyc1xcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYnVzLW1kaW8tMTItRGF0ZTogICAgICAgICAgSmFudWFyeSAyMDIwXFxuLS1cXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvPTE1PURlc2NyaXB0aW9uOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpby0xNy1cXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvOjE4OldoYXQ6ICAgICAgICAgIC9zeXMvYnVzL21kaW9fYnVzL2RldmljZXMvLi4uL3N0YXRpc3RpY3MvZXJyb3JzXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpbzoxOTpXaGF0OiAgICAgICAgICAvc3lzL2NsYXNzL21kaW9fYnVzLy4uLi9zdGF0aXN0aWNzL2Vycm9yc1xcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYnVzLW1kaW8tMjAtRGF0ZTogICAgICAgICAgSmFudWFyeSAyMDIwXFxuLS1cXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvPTIzPURlc2NyaXB0aW9uOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpby0yNS1cXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvOjI2OldoYXQ6ICAgICAgICAgIC9zeXMvYnVzL21kaW9fYnVzL2RldmljZXMvLi4uL3N0YXRpc3RpY3Mvd3JpdGVzXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpbzoyNzpXaGF0OiAgICAgICAgICAvc3lzL2NsYXNzL21kaW9fYnVzLy4uLi9zdGF0aXN0aWNzL3dyaXRlc1xcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYnVzLW1kaW8tMjgtRGF0ZTogICAgICAgICAgSmFudWFyeSAyMDIwXFxuLS1cXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvPTMxPURlc2NyaXB0aW9uOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpby0zMy1cXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvOjM0OldoYXQ6ICAgICAgICAgIC9zeXMvYnVzL21kaW9fYnVzL2RldmljZXMvLi4uL3N0YXRpc3RpY3MvcmVhZHNcXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvOjM1OldoYXQ6ICAgICAgICAgIC9zeXMvY2xhc3MvbWRpb19idXMvLi4uL3N0YXRpc3RpY3MvcmVhZHNcXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvLTM2LURhdGU6ICAgICAgICAgIEphbnVhcnkgMjAyMFxcbi0tXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpbz0zOT1EZXNjcmlwdGlvbjpcXG4tLVxcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYnVzLW1kaW8tNDEtXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpbzo0MjpXaGF0OiAgICAgICAgICAvc3lzL2J1cy9tZGlvX2J1cy9kZXZpY2VzLy4uLi9zdGF0aXN0aWNzL3RyYW5zZmVyc19cXHUwMDNjYWRkclxcdTAwM2VcXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvOjQzOldoYXQ6ICAgICAgICAgIC9zeXMvY2xhc3MvbWRpb19idXMvLi4uL3N0YXRpc3RpY3MvdHJhbnNmZXJzX1xcdTAwM2NhZGRyXFx1MDAzZVxcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYnVzLW1kaW8tNDQtRGF0ZTogICAgICAgICAgSmFudWFyeSAyMDIwXFxuLS1cXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvPTQ3PURlc2NyaXB0aW9uOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpby00OS1cXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvOjUwOldoYXQ6ICAgICAgICAgIC9zeXMvYnVzL21kaW9fYnVzL2RldmljZXMvLi4uL3N0YXRpc3RpY3MvZXJyb3JzX1xcdTAwM2NhZGRyXFx1MDAzZVxcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYnVzLW1kaW86NTE6V2hhdDogICAgICAgICAgL3N5cy9jbGFzcy9tZGlvX2J1cy8uLi4vc3RhdGlzdGljcy9lcnJvcnNfXFx1MDAzY2FkZHJcXHUwMDNlXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpby01Mi1EYXRlOiAgICAgICAgICBKYW51YXJ5IDIwMjBcXG4tLVxcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYnVzLW1kaW89NTU9RGVzY3JpcHRpb246XFxuLS1cXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvLTU3LVxcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYnVzLW1kaW86NTg6V2hhdDogICAgICAgICAgL3N5cy9idXMvbWRpb19idXMvZGV2aWNlcy8uLi4vc3RhdGlzdGljcy93cml0ZXNfXFx1MDAzY2FkZHJcXHUwMDNlXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpbzo1OTpXaGF0OiAgICAgICAgICAvc3lzL2NsYXNzL21kaW9fYnVzLy4uLi9zdGF0aXN0aWNzL3dyaXRlc19cXHUwMDNjYWRkclxcdTAwM2VcXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvLTYwLURhdGU6ICAgICAgICAgIEphbnVhcnkgMjAyMFxcbi0tXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpbz02Mz1EZXNjcmlwdGlvbjpcXG4tLVxcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYnVzLW1kaW8tNjUtXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtbWRpbzo2NjpXaGF0OiAgICAgICAgICAvc3lzL2J1cy9tZGlvX2J1cy9kZXZpY2VzLy4uLi9zdGF0aXN0aWNzL3JlYWRzX1xcdTAwM2NhZGRyXFx1MDAzZVxcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYnVzLW1kaW86Njc6V2hhdDogICAgICAgICAgL3N5cy9jbGFzcy9tZGlvX2J1cy8uLi4vc3RhdGlzdGljcy9yZWFkc19cXHUwMDNjYWRkclxcdTAwM2VcXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1tZGlvLTY4LURhdGU6ICAgICAgICAgIEphbnVhcnkgMjAyMFxcbi0tXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1uZXQtcGh5ZGV2OjE6V2hhdDpcXHRcXHQvc3lzL2NsYXNzL21kaW9fYnVzL1xcdTAwM2NidXNcXHUwMDNlL1xcdTAwM2NkZXZpY2VcXHUwMDNlL2F0dGFjaGVkX2RldlxcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtbmV0LXBoeWRldi0yLURhdGU6XFx0XFx0TWF5IDIwMTdcXG4tLVxcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtbmV0LXBoeWRldj01PURlc2NyaXB0aW9uOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1uZXQtcGh5ZGV2LTgtXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1uZXQtcGh5ZGV2Ojk6V2hhdDpcXHRcXHQvc3lzL2NsYXNzL21kaW9fYnVzL1xcdTAwM2NidXNcXHUwMDNlL1xcdTAwM2NkZXZpY2VcXHUwMDNlL3BoeV9oYXNfZml4dXBzXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1uZXQtcGh5ZGV2LTEwLURhdGU6XFx0XFx0RmVicnVhcnkgMjAxNFxcbi0tXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1uZXQtcGh5ZGV2PTEzPURlc2NyaXB0aW9uOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1uZXQtcGh5ZGV2LTE4LVxcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtbmV0LXBoeWRldjoxOTpXaGF0OlxcdFxcdC9zeXMvY2xhc3MvbWRpb19idXMvXFx1MDAzY2J1c1xcdTAwM2UvXFx1MDAzY2RldmljZVxcdTAwM2UvcGh5X2lkXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1uZXQtcGh5ZGV2LTIwLURhdGU6XFx0XFx0Tm92ZW1iZXIgMjAxMlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1uZXQtcGh5ZGV2PTIzPURlc2NyaXB0aW9uOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1uZXQtcGh5ZGV2LTI4LVxcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtbmV0LXBoeWRldjoyOTpXaGF0OlxcdFxcdC9zeXMvY2xhc3MvbWRpb19idXMvXFx1MDAzY2J1c1xcdTAwM2UvXFx1MDAzY2RldmljZVxcdTAwM2UvYzQ1X3BoeV9pZHMvbW1kXFx1MDAzY25cXHUwMDNlX2RldmljZV9pZFxcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtbmV0LXBoeWRldi0zMC1EYXRlOlxcdFxcdEp1bmUgMjAyNVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1uZXQtcGh5ZGV2PTMzPURlc2NyaXB0aW9uOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1uZXQtcGh5ZGV2LTM4LVxcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtbmV0LXBoeWRldjozOTpXaGF0OlxcdFxcdC9zeXMvY2xhc3MvbWRpb19idXMvXFx1MDAzY2J1c1xcdTAwM2UvXFx1MDAzY2RldmljZVxcdTAwM2UvcGh5X2ludGVyZmFjZVxcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtbmV0LXBoeWRldi00MC1EYXRlOlxcdFxcdEZlYnJ1YXJ5IDIwMTRcXG4tLVxcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtbmV0LXBoeWRldj00Mz1EZXNjcmlwdGlvbjpcXG4tLVxcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtbmV0LXBoeWRldi01NS1cXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWNsYXNzLW5ldC1waHlkZXY6NTY6V2hhdDpcXHRcXHQvc3lzL2NsYXNzL21kaW9fYnVzL1xcdTAwM2NidXNcXHUwMDNlL1xcdTAwM2NkZXZpY2VcXHUwMDNlL3BoeV9zdGFuZGFsb25lXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1uZXQtcGh5ZGV2LTU3LURhdGU6XFx0XFx0TWF5IDIwMTlcXG4tLVxcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtbmV0LXBoeWRldj02MD1EZXNjcmlwdGlvbjpcXG4tLVxcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtbmV0LXBoeWRldi02NC1cXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWNsYXNzLW5ldC1waHlkZXY6NjU6V2hhdDpcXHRcXHQvc3lzL2NsYXNzL21kaW9fYnVzL1xcdTAwM2NidXNcXHUwMDNlL1xcdTAwM2NkZXZpY2VcXHUwMDNlL3BoeV9kZXZfZmxhZ3NcXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWNsYXNzLW5ldC1waHlkZXYtNjYtRGF0ZTpcXHRcXHRNYXJjaCAyMDIxXFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMucnN0PTM1Mj1maW5kczo6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMucnN0LTM2MS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMucnN0OjM2MjogICAgICAgIHN0cnVjdCBzdG1tYWNfbWRpb19idXNfZGF0YSAqbWRpb19idXNfZGF0YTtcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMucnN0LTM2My1cXG4tLVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy5yc3Q9NTAyPUZvciBNRElPIGJ1cyBkYXRhLCB3ZSBoYXZlOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L3N0bWljcm8vc3RtbWFjLnJzdC01MDUtXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L3N0bWljcm8vc3RtbWFjLnJzdDo1MDY6ICAgIHN0cnVjdCBzdG1tYWNfbWRpb19idXNfZGF0YSB7XFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L3N0bWljcm8vc3RtbWFjLnJzdC01MDctXFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZHNhL2RzYS5yc3Q9NDMyPURTQSBjdXJyZW50bHkgbGV2ZXJhZ2VzIHRoZSBmb2xsb3dpbmcgc3Vic3lzdGVtczpcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZHNhL2RzYS5yc3QtNDMzLVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kc2EvZHNhLnJzdDo0MzQ6LSBNRElPL1BIWSBsaWJyYXJ5OiBgYGRyaXZlcnMvbmV0L3BoeS9waHkuY2BgLCBgYG1kaW9fYnVzLmNgYFxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kc2EvZHNhLnJzdC00MzUtLSBTd2l0Y2hkZXY6YGBuZXQvc3dpdGNoZGV2LypgYFxcbi0tXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2thcGkucnN0PTExMD1QSFkgU3VwcG9ydFxcbi0tXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2thcGkucnN0LTEzMy1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcva2FwaS5yc3Q6MTM0Oi4uIGtlcm5lbC1kb2M6OiBkcml2ZXJzL25ldC9waHkvbWRpb19idXMuY1xcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9rYXBpLnJzdC0xMzUtICAgOmV4cG9ydDpcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcva2FwaS5yc3QtMTM2LVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9rYXBpLnJzdDoxMzc6Li4ga2VybmVsLWRvYzo6IGRyaXZlcnMvbmV0L3BoeS9tZGlvX2J1cy5jXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2thcGkucnN0LTEzOC0gICA6aW50ZXJuYWw6XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21lZGlhdGVrL210Nzk4MWItb3BlbndydC1vbmUuZHRzPTEwOD1cXHRnbWFjMTogbWFjQDEge1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9tZWRpYXRlay9tdDc5ODFiLW9wZW53cnQtb25lLmR0cy0xMTUtXFxuYXJjaC9hcm02NC9ib290L2R0cy9tZWRpYXRlay9tdDc5ODFiLW9wZW53cnQtb25lLmR0czoxMTY6XFx1MDAyNm1kaW9fYnVzIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21lZGlhdGVrL210Nzk4MWItb3BlbndydC1vbmUuZHRzLTExNy1cXHRwaHkxNTogZXRoZXJuZXQtcGh5QGYge1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9tZWRpYXRlay9tdDc5ODFiLmR0c2k9NDMxPVxcdFxcdGV0aDogZXRoZXJuZXRAMTUxMDAwMDAge1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9tZWRpYXRlay9tdDc5ODFiLmR0c2ktNDc2LVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWVkaWF0ZWsvbXQ3OTgxYi5kdHNpOjQ3NzpcXHRcXHRcXHRtZGlvX2J1czogbWRpby1idXMge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWVkaWF0ZWsvbXQ3OTgxYi5kdHNpLTQ3OC1cXHRcXHRcXHRcXHQjYWRkcmVzcy1jZWxscyA9IFxcdTAwM2MxXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWVkaWF0ZWsvbXQ3OTg4YS5kdHNpPTk4OD1cXHRcXHRcXHRnbWFjMjogbWFjQDIge1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9tZWRpYXRlay9tdDc5ODhhLmR0c2ktOTkzLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWVkaWF0ZWsvbXQ3OTg4YS5kdHNpOjk5NDpcXHRcXHRcXHRtZGlvX2J1czogbWRpby1idXMge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWVkaWF0ZWsvbXQ3OTg4YS5kdHNpLTk5NS1cXHRcXHRcXHRcXHQjYWRkcmVzcy1jZWxscyA9IFxcdTAwM2MxXFx1MDAzZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6OTQ3Ny5jPTMyMT1zdGF0aWMgaW50IGtzejk0NzdfcGNzX2NyZWF0ZShzdHJ1Y3Qga3N6X2RldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3o5NDc3LmMtMzMyLVxcbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6OTQ3Ny5jOjMzMzpcXHRidXMtXFx1MDAzZW5hbWUgPSBcXFwia3N6X3Bjc19tZGlvX2J1c1xcXCI7XFxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3o5NDc3LmMtMzM0LVxcdHNucHJpbnRmKGJ1cy1cXHUwMDNlaWQsIE1JSV9CVVNfSURfU0laRSwgXFxcIiVzLXBjc1xcXCIsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzel9jb21tb24uYz0yMTI1PWludCBrc3pfcGFyZW50X21kaW9fcmVhZChzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgYWRkciwgaW50IHJlZ251bSlcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6X2NvbW1vbi5jLTIxMjgtXFxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3pfY29tbW9uLmM6MjEyOTpcXHRyZXR1cm4gbWRpb2J1c19yZWFkX25lc3RlZChkZXYtXFx1MDAzZXBhcmVudF9tZGlvX2J1cywgYWRkciwgcmVnbnVtKTtcXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzel9jb21tb24uYy0yMTMwLX1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6X2NvbW1vbi5jPTIxNDU9aW50IGtzel9wYXJlbnRfbWRpb193cml0ZShzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgYWRkciwgaW50IHJlZ251bSwgdTE2IHZhbClcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6X2NvbW1vbi5jLTIxNDgtXFxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3pfY29tbW9uLmM6MjE0OTpcXHRyZXR1cm4gbWRpb2J1c193cml0ZV9uZXN0ZWQoZGV2LVxcdTAwM2VwYXJlbnRfbWRpb19idXMsIGFkZHIsIHJlZ251bSwgdmFsKTtcXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzel9jb21tb24uYy0yMTUwLX1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6X2NvbW1vbi5jPTIzMjE9aW50IGtzel9tZGlvX3JlZ2lzdGVyKHN0cnVjdCBrc3pfZGV2aWNlICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzel9jb21tb24uYy0yMzQ3LVxcbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6X2NvbW1vbi5jOjIzNDg6XFx0XFx0ZGV2LVxcdTAwM2VwYXJlbnRfbWRpb19idXMgPSBwYXJlbnRfYnVzO1xcbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6X2NvbW1vbi5jLTIzNDktXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3pfY29tbW9uLmg9MjA2PXN0cnVjdCBrc3pfZGV2aWNlIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6X2NvbW1vbi5oLTI1OC1cXHQvKipcXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzel9jb21tb24uaDoyNTk6XFx0ICogQHBhcmVudF9tZGlvX2J1czogUG9pbnRlciB0byB0aGUgZXh0ZXJuYWwgTURJTyBidXMgY29udHJvbGxlci5cXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzel9jb21tb24uaC0yNjAtXFx0ICpcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6X2NvbW1vbi5oLTI2NS1cXHQgKi9cXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzel9jb21tb24uaDoyNjY6XFx0c3RydWN0IG1paV9idXMgKnBhcmVudF9tZGlvX2J1cztcXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzel9jb21tb24uaC0yNjctXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2xhbjkzN3hfbWFpbi5jPTE0Mz1zdGF0aWMgaW50IGxhbjkzN3hfY3JlYXRlX3BoeV9hZGRyX21hcChzdHJ1Y3Qga3N6X2RldmljZSAqZGV2LCBib29sIHNpZGVfbWRpbylcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAvbGFuOTM3eF9tYWluLmMtMjEwLS8qKlxcbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAvbGFuOTM3eF9tYWluLmM6MjExOiAqIGxhbjkzN3hfbWRpb19idXNfcHJlaW5pdCAtIFByZS1pbml0aWFsaXplIE1ESU8gYnVzIGZvciBhY2Nlc3NpbmcgUEhZcy5cXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2xhbjkzN3hfbWFpbi5jLTIxMi0gKiBAZGV2OiBQb2ludGVyIHRvIGRldmljZSBzdHJ1Y3R1cmUuXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2xhbjkzN3hfbWFpbi5jLTIyNi0gKi9cXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2xhbjkzN3hfbWFpbi5jOjIyNzpzdGF0aWMgaW50IGxhbjkzN3hfbWRpb19idXNfcHJlaW5pdChzdHJ1Y3Qga3N6X2RldmljZSAqZGV2LCBib29sIHNpZGVfbWRpbylcXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2xhbjkzN3hfbWFpbi5jLTIyOC17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2xhbjkzN3hfbWFpbi5jPTY4NT1zdGF0aWMgaW50IGxhbjkzN3hfbWRpb19yZWdpc3RlcihzdHJ1Y3Qga3N6X2RldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9sYW45Mzd4X21haW4uYy03MTEtXFxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9sYW45Mzd4X21haW4uYzo3MTI6XFx0XFx0ZGV2LVxcdTAwM2VwYXJlbnRfbWRpb19idXMgPSBwYXJlbnRfYnVzO1xcbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAvbGFuOTM3eF9tYWluLmMtNzEzLVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAvbGFuOTM3eF9tYWluLmMtNzIwLVxcbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAvbGFuOTM3eF9tYWluLmM6NzIxOlxcdHJldCA9IGxhbjkzN3hfbWRpb19idXNfcHJlaW5pdChkZXYsICEhcGFyZW50X2J1cyk7XFxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9sYW45Mzd4X21haW4uYy03MjItXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTEyNj1pbnQgbXY4OGU2eHh4X3dhaXRfYml0KHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IGFkZHIsIGludCByZWcsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xMzItXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MTMzOnN0cnVjdCBtaWlfYnVzICptdjg4ZTZ4eHhfZGVmYXVsdF9tZGlvX2J1cyhzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTM0LXtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxMzU6XFx0c3RydWN0IG12ODhlNnh4eF9tZGlvX2J1cyAqbWRpb19idXM7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTM2LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjEzNzpcXHRtZGlvX2J1cyA9IGxpc3RfZmlyc3RfZW50cnlfb3JfbnVsbChcXHUwMDI2Y2hpcC1cXHUwMDNlbWRpb3MsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MTM4OlxcdFxcdFxcdFxcdFxcdCAgICBzdHJ1Y3QgbXY4OGU2eHh4X21kaW9fYnVzLCBsaXN0KTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxMzk6XFx0aWYgKCFtZGlvX2J1cylcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xNDAtXFx0XFx0cmV0dXJuIE5VTEw7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTQxLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjE0MjpcXHRyZXR1cm4gbWRpb19idXMtXFx1MDAzZWJ1cztcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xNDMtfVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9Mzc1Nz1zdGF0aWMgaW50IG12ODhlNnh4eF9tZGlvX3JlYWQoc3RydWN0IG1paV9idXMgKmJ1cywgaW50IHBoeSwgaW50IHJlZylcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zNzU4LXtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozNzU5OlxcdHN0cnVjdCBtdjg4ZTZ4eHhfbWRpb19idXMgKm1kaW9fYnVzID0gYnVzLVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM3NjA6XFx0c3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwID0gbWRpb19idXMtXFx1MDAzZWNoaXA7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzc2MS1cXHR1MTYgcHJvZF9pZDtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTM3ODM9c3RhdGljIGludCBtdjg4ZTZ4eHhfbWRpb19yZWFkX2M0NShzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgcGh5LCBpbnQgZGV2YWQsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zNzg1LXtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozNzg2OlxcdHN0cnVjdCBtdjg4ZTZ4eHhfbWRpb19idXMgKm1kaW9fYnVzID0gYnVzLVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM3ODc6XFx0c3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwID0gbWRpb19idXMtXFx1MDAzZWNoaXA7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzc4OC1cXHR1MTYgdmFsO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9MzgwMT1zdGF0aWMgaW50IG12ODhlNnh4eF9tZGlvX3dyaXRlKHN0cnVjdCBtaWlfYnVzICpidXMsIGludCBwaHksIGludCByZWcsIHUxNiB2YWwpXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzgwMi17XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzgwMzpcXHRzdHJ1Y3QgbXY4OGU2eHh4X21kaW9fYnVzICptZGlvX2J1cyA9IGJ1cy1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozODA0OlxcdHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCA9IG1kaW9fYnVzLVxcdTAwM2VjaGlwO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM4MDUtXFx0aW50IGVycjtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTM4MTc9c3RhdGljIGludCBtdjg4ZTZ4eHhfbWRpb193cml0ZV9jNDUoc3RydWN0IG1paV9idXMgKmJ1cywgaW50IHBoeSwgaW50IGRldmFkLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzgxOS17XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzgyMDpcXHRzdHJ1Y3QgbXY4OGU2eHh4X21kaW9fYnVzICptZGlvX2J1cyA9IGJ1cy1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozODIxOlxcdHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCA9IG1kaW9fYnVzLVxcdTAwM2VjaGlwO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM4MjItXFx0aW50IGVycjtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTM4MzQ9c3RhdGljIGludCBtdjg4ZTZ4eHhfbWRpb19yZWdpc3RlcihzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zODM4LVxcdHN0YXRpYyBpbnQgaW5kZXg7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzgzOTpcXHRzdHJ1Y3QgbXY4OGU2eHh4X21kaW9fYnVzICptZGlvX2J1cztcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zODQwLVxcdHN0cnVjdCBtaWlfYnVzICpidXM7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zODU0LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM4NTU6XFx0YnVzID0gbWRpb2J1c19hbGxvY19zaXplKHNpemVvZigqbWRpb19idXMpKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zODU2LVxcdGlmICghYnVzKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzg1OC1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozODU5OlxcdG1kaW9fYnVzID0gYnVzLVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM4NjA6XFx0bWRpb19idXMtXFx1MDAzZWJ1cyA9IGJ1cztcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozODYxOlxcdG1kaW9fYnVzLVxcdTAwM2VjaGlwID0gY2hpcDtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozODYyOlxcdElOSVRfTElTVF9IRUFEKFxcdTAwMjZtZGlvX2J1cy1cXHUwMDNlbGlzdCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Mzg2MzpcXHRtZGlvX2J1cy1cXHUwMDNlZXh0ZXJuYWwgPSBleHRlcm5hbDtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zODY0LVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzg5NS1cXHRpZiAoZXh0ZXJuYWwpXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Mzg5NjpcXHRcXHRsaXN0X2FkZF90YWlsKFxcdTAwMjZtZGlvX2J1cy1cXHUwMDNlbGlzdCwgXFx1MDAyNmNoaXAtXFx1MDAzZW1kaW9zKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zODk3LVxcdGVsc2VcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozODk4OlxcdFxcdGxpc3RfYWRkKFxcdTAwMjZtZGlvX2J1cy1cXHUwMDNlbGlzdCwgXFx1MDAyNmNoaXAtXFx1MDAzZW1kaW9zKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zODk5LVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9MzkwNz1zdGF0aWMgdm9pZCBtdjg4ZTZ4eHhfbWRpb3NfdW5yZWdpc3RlcihzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zOTA5LXtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozOTEwOlxcdHN0cnVjdCBtdjg4ZTZ4eHhfbWRpb19idXMgKm1kaW9fYnVzLCAqcDtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zOTExLVxcdHN0cnVjdCBtaWlfYnVzICpidXM7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzkxMi1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozOTEzOlxcdGxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShtZGlvX2J1cywgcCwgXFx1MDAyNmNoaXAtXFx1MDAzZW1kaW9zLCBsaXN0KSB7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzkxNDpcXHRcXHRidXMgPSBtZGlvX2J1cy1cXHUwMDNlYnVzO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM5MTUtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzkxNjpcXHRcXHRpZiAoIW1kaW9fYnVzLVxcdTAwM2VleHRlcm5hbClcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zOTE3LVxcdFxcdFxcdG12ODhlNnh4eF9nMl9pcnFfbWRpb19mcmVlKGNoaXAsIGJ1cyk7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz0zOTgwPXN0YXRpYyBpbnQgbXY4OGU2eHh4X3NldHVwKHN0cnVjdCBkc2Ffc3dpdGNoICpkcylcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM5OTEtXFx0Y2hpcC1cXHUwMDNlZHMgPSBkcztcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozOTkyOlxcdGRzLVxcdTAwM2V1c2VyX21paV9idXMgPSBtdjg4ZTZ4eHhfZGVmYXVsdF9tZGlvX2J1cyhjaGlwKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zOTkzLVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmg9NDg4PXN0cnVjdCBtdjg4ZTZ4eHhfYnVzX29wcyB7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuaC00OTMtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmg6NDk0OnN0cnVjdCBtdjg4ZTZ4eHhfbWRpb19idXMge1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5oLTQ5NS1cXHRzdHJ1Y3QgbWlpX2J1cyAqYnVzO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmg9ODczPWludCBtdjg4ZTZ4eHhfd2FpdF9iaXQoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgYWRkciwgaW50IHJlZyxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuaC04NzQtXFx0XFx0ICAgICAgIGludCBiaXQsIGludCB2YWwpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5oOjg3NTpzdHJ1Y3QgbWlpX2J1cyAqbXY4OGU2eHh4X2RlZmF1bHRfbWRpb19idXMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuaC04NzYtXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDIuYz03ODc9aW50IG12ODhlNnh4eF9nMl9zbWlfcGh5X3JlYWRfYzIyKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMi5jLTc5MC17XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyLmM6NzkxOlxcdHN0cnVjdCBtdjg4ZTZ4eHhfbWRpb19idXMgKm1kaW9fYnVzID0gYnVzLVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMi5jOjc5MjpcXHRib29sIGV4dGVybmFsID0gbWRpb19idXMtXFx1MDAzZWV4dGVybmFsO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMi5jLTc5My1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMi5jPTc5OD1pbnQgbXY4OGU2eHh4X2cyX3NtaV9waHlfcmVhZF9jNDUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyLmMtODAxLXtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDIuYzo4MDI6XFx0c3RydWN0IG12ODhlNnh4eF9tZGlvX2J1cyAqbWRpb19idXMgPSBidXMtXFx1MDAzZXByaXY7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyLmM6ODAzOlxcdGJvb2wgZXh0ZXJuYWwgPSBtZGlvX2J1cy1cXHUwMDNlZXh0ZXJuYWw7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyLmMtODA0LVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyLmM9ODA5PWludCBtdjg4ZTZ4eHhfZzJfc21pX3BoeV93cml0ZV9jMjIoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyLmMtODEyLXtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDIuYzo4MTM6XFx0c3RydWN0IG12ODhlNnh4eF9tZGlvX2J1cyAqbWRpb19idXMgPSBidXMtXFx1MDAzZXByaXY7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyLmM6ODE0OlxcdGJvb2wgZXh0ZXJuYWwgPSBtZGlvX2J1cy1cXHUwMDNlZXh0ZXJuYWw7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyLmMtODE1LVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyLmM9ODIwPWludCBtdjg4ZTZ4eHhfZzJfc21pX3BoeV93cml0ZV9jNDUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyLmMtODIzLXtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDIuYzo4MjQ6XFx0c3RydWN0IG12ODhlNnh4eF9tZGlvX2J1cyAqbWRpb19idXMgPSBidXMtXFx1MDAzZXByaXY7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyLmM6ODI1OlxcdGJvb2wgZXh0ZXJuYWwgPSBtZGlvX2J1cy1cXHUwMDNlZXh0ZXJuYWw7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyLmMtODI2LVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9wY3MtNjM1Mi5jPTMyMT1zdGF0aWMgaW50IG12ODhlNjM1Ml9wY3NfaW5pdChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0KVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9wY3MtNjM1Mi5jLTMzMy1cXHRpcnEgPSBtdjg4ZTZ4eHhfc2VyZGVzX2lycV9tYXBwaW5nKGNoaXAsIHBvcnQpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcGNzLTYzNTIuYzozMzQ6XFx0YnVzID0gbXY4OGU2eHh4X2RlZmF1bHRfbWRpb19idXMoY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9wY3MtNjM1Mi5jLTMzNS1cXHRkZXYgPSBjaGlwLVxcdTAwM2VkZXY7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3Bjcy02Mzl4LmM9NTQ5PXN0YXRpYyBpbnQgbXY4OGU2MzkwX3Bjc19pbml0KHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3Bjcy02Mzl4LmMtNTU5LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcGNzLTYzOXguYzo1NjA6XFx0YnVzID0gbXY4OGU2eHh4X2RlZmF1bHRfbWRpb19idXMoY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9wY3MtNjM5eC5jLTU2MS1cXHRkZXYgPSBjaGlwLVxcdTAwM2VkZXY7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3Bjcy02Mzl4LmM9OTI3PXN0YXRpYyBpbnQgbXY4OGU2MzkzeF9wY3NfaW5pdChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0KVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9wY3MtNjM5eC5jLTkzNy1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3Bjcy02Mzl4LmM6OTM4OlxcdGJ1cyA9IG12ODhlNnh4eF9kZWZhdWx0X21kaW9fYnVzKGNoaXApO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcGNzLTYzOXguYy05MzktXFx0ZGV2ID0gY2hpcC1cXHUwMDNlZGV2O1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9waHkuYz0yOD1pbnQgbXY4OGU2eHh4X3BoeV9yZWFkKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBoeSwgaW50IHJlZywgdTE2ICp2YWwpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BoeS5jLTMyLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcGh5LmM6MzM6XFx0YnVzID0gbXY4OGU2eHh4X2RlZmF1bHRfbWRpb19idXMoY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9waHkuYy0zNC1cXHRpZiAoIWJ1cylcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcGh5LmM9NDM9aW50IG12ODhlNnh4eF9waHlfd3JpdGUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcGh5LCBpbnQgcmVnLCB1MTYgdmFsKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9waHkuYy00Ny1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BoeS5jOjQ4OlxcdGJ1cyA9IG12ODhlNnh4eF9kZWZhdWx0X21kaW9fYnVzKGNoaXApO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcGh5LmMtNDktXFx0aWYgKCFidXMpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BoeS5jPTU4PWludCBtdjg4ZTZ4eHhfcGh5X3JlYWRfYzQ1KHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBoeSwgaW50IGRldmFkLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9waHkuYy02My1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BoeS5jOjY0OlxcdGJ1cyA9IG12ODhlNnh4eF9kZWZhdWx0X21kaW9fYnVzKGNoaXApO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcGh5LmMtNjUtXFx0aWYgKCFidXMpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BoeS5jPTc0PWludCBtdjg4ZTZ4eHhfcGh5X3dyaXRlX2M0NShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwaHksIGludCBkZXZhZCxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcGh5LmMtNzktXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9waHkuYzo4MDpcXHRidXMgPSBtdjg4ZTZ4eHhfZGVmYXVsdF9tZGlvX2J1cyhjaGlwKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BoeS5jLTgxLVxcdGlmICghYnVzKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL25ldGMvbmV0Y19tYWluLmM9MTMzPXN0YXRpYyBpbnQgbmV0Y19wb3J0X2dldF9pbmZvX2Zyb21fZHQoc3RydWN0IG5ldGNfcG9ydCAqbnAsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbmV0Yy9uZXRjX21haW4uYy0xNDgtXFxuZHJpdmVycy9uZXQvZHNhL25ldGMvbmV0Y19tYWluLmM6MTQ5OnN0YXRpYyBpbnQgbmV0Y19wb3J0X2NyZWF0ZV9lbWRpb19idXMoc3RydWN0IG5ldGNfcG9ydCAqbnAsXFxuZHJpdmVycy9uZXQvZHNhL25ldGMvbmV0Y19tYWluLmMtMTUwLVxcdFxcdFxcdFxcdCAgICAgIHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9uZXRjL25ldGNfbWFpbi5jLTE4OS1cXG5kcml2ZXJzL25ldC9kc2EvbmV0Yy9uZXRjX21haW4uYzoxOTA6c3RhdGljIGludCBuZXRjX3BvcnRfY3JlYXRlX21kaW9fYnVzKHN0cnVjdCBuZXRjX3BvcnQgKm5wLFxcbmRyaXZlcnMvbmV0L2RzYS9uZXRjL25ldGNfbWFpbi5jLTE5MS1cXHRcXHRcXHRcXHQgICAgIHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9uZXRjL25ldGNfbWFpbi5jLTE5Ny1cXHRpZiAobWRpb19ub2RlKSB7XFxuZHJpdmVycy9uZXQvZHNhL25ldGMvbmV0Y19tYWluLmM6MTk4OlxcdFxcdGVyciA9IG5ldGNfcG9ydF9jcmVhdGVfZW1kaW9fYnVzKG5wLCBtZGlvX25vZGUpO1xcbmRyaXZlcnMvbmV0L2RzYS9uZXRjL25ldGNfbWFpbi5jLTE5OS1cXHRcXHRvZl9ub2RlX3B1dChtZGlvX25vZGUpO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL25ldGMvbmV0Y19tYWluLmM9MjQxPXN0YXRpYyBpbnQgbmV0Y19pbml0X2FsbF9wb3J0cyhzdHJ1Y3QgbmV0Y19zd2l0Y2ggKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbmV0Yy9uZXRjX21haW4uYy0yODMtXFx0XFx0aWYgKGRzYV9wb3J0X2lzX3VzZXIoZHApKSB7XFxuZHJpdmVycy9uZXQvZHNhL25ldGMvbmV0Y19tYWluLmM6Mjg0OlxcdFxcdFxcdGVyciA9IG5ldGNfcG9ydF9jcmVhdGVfbWRpb19idXMobnAsIGRwLVxcdTAwM2Vkbik7XFxuZHJpdmVycy9uZXQvZHNhL25ldGMvbmV0Y19tYWluLmMtMjg1LVxcdFxcdFxcdGlmIChlcnIpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXguYz0xNTE3PXN0YXRpYyBpbnQgZmVsaXhfaW5pdF9zdHJ1Y3RzKHN0cnVjdCBmZWxpeCAqZmVsaXgsIGludCBudW1fcGh5c19wb3J0cylcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXguYy0xNjAyLVxcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXguYzoxNjAzOlxcdGlmIChmZWxpeC1cXHUwMDNlaW5mby1cXHUwMDNlbWRpb19idXNfYWxsb2MpIHtcXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L2ZlbGl4LmM6MTYwNDpcXHRcXHRlcnIgPSBmZWxpeC1cXHUwMDNlaW5mby1cXHUwMDNlbWRpb19idXNfYWxsb2Mob2NlbG90KTtcXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L2ZlbGl4LmMtMTYwNS1cXHRcXHRpZiAoZXJyIFxcdTAwM2MgMClcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXguYz0xNjk2PXN0YXRpYyBpbnQgZmVsaXhfc2V0dXAoc3RydWN0IGRzYV9zd2l0Y2ggKmRzKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9mZWxpeC5jLTE3Njgtb3V0X21kaW9idXNfZnJlZTpcXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L2ZlbGl4LmM6MTc2OTpcXHRpZiAoZmVsaXgtXFx1MDAzZWluZm8tXFx1MDAzZW1kaW9fYnVzX2ZyZWUpXFxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9mZWxpeC5jOjE3NzA6XFx0XFx0ZmVsaXgtXFx1MDAzZWluZm8tXFx1MDAzZW1kaW9fYnVzX2ZyZWUob2NlbG90KTtcXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L2ZlbGl4LmMtMTc3MS1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXguYz0xNzc1PXN0YXRpYyB2b2lkIGZlbGl4X3RlYXJkb3duKHN0cnVjdCBkc2Ffc3dpdGNoICpkcylcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXguYy0xNzkyLVxcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXguYzoxNzkzOlxcdGlmIChmZWxpeC1cXHUwMDNlaW5mby1cXHUwMDNlbWRpb19idXNfZnJlZSlcXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L2ZlbGl4LmM6MTc5NDpcXHRcXHRmZWxpeC1cXHUwMDNlaW5mby1cXHUwMDNlbWRpb19idXNfZnJlZShvY2Vsb3QpO1xcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXguYy0xNzk1LX1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXguaD0yMj1zdHJ1Y3QgZmVsaXhfaW5mbyB7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L2ZlbGl4LmgtNTUtXFxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9mZWxpeC5oOjU2OlxcdGludFxcdCgqbWRpb19idXNfYWxsb2MpKHN0cnVjdCBvY2Vsb3QgKm9jZWxvdCk7XFxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9mZWxpeC5oOjU3OlxcdHZvaWRcXHQoKm1kaW9fYnVzX2ZyZWUpKHN0cnVjdCBvY2Vsb3QgKm9jZWxvdCk7XFxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9mZWxpeC5oLTU4LVxcdGludFxcdCgqcG9ydF9zZXR1cF90Yykoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXhfdnNjOTk1OS5jPTk1MT1zdGF0aWMgdm9pZCB2c2M5OTU5X3dtX3N0YXQodTMyIHZhbCwgdTMyICppbnVzZSwgdTMyICptYXh1c2UpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L2ZlbGl4X3ZzYzk5NTkuYy05NTYtXFxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9mZWxpeF92c2M5OTU5LmM6OTU3OnN0YXRpYyBpbnQgdnNjOTk1OV9tZGlvX2J1c19hbGxvYyhzdHJ1Y3Qgb2NlbG90ICpvY2Vsb3QpXFxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9mZWxpeF92c2M5OTU5LmMtOTU4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXhfdnNjOTk1OS5jLTEwNDQtXFxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9mZWxpeF92c2M5OTU5LmM6MTA0NTpzdGF0aWMgdm9pZCB2c2M5OTU5X21kaW9fYnVzX2ZyZWUoc3RydWN0IG9jZWxvdCAqb2NlbG90KVxcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXhfdnNjOTk1OS5jLTEwNDYte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9mZWxpeF92c2M5OTU5LmM9MjY1OT1zdGF0aWMgY29uc3Qgc3RydWN0IGZlbGl4X2luZm8gZmVsaXhfaW5mb192c2M5OTU5ID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9mZWxpeF92c2M5OTU5LmMtMjY3NS1cXHQucHRwX2NhcHNcXHRcXHQ9IFxcdTAwMjZ2c2M5OTU5X3B0cF9jYXBzLFxcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXhfdnNjOTk1OS5jOjI2NzY6XFx0Lm1kaW9fYnVzX2FsbG9jXFx0XFx0PSB2c2M5OTU5X21kaW9fYnVzX2FsbG9jLFxcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXhfdnNjOTk1OS5jOjI2Nzc6XFx0Lm1kaW9fYnVzX2ZyZWVcXHRcXHQ9IHZzYzk5NTlfbWRpb19idXNfZnJlZSxcXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L2ZlbGl4X3ZzYzk5NTkuYy0yNjc4LVxcdC5wb3J0X21vZGVzXFx0XFx0PSB2c2M5OTU5X3BvcnRfbW9kZXMsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L3NldmlsbGVfdnNjOTk1My5jPTg2OT1zdGF0aWMgY29uc3Qgc3RydWN0IG9jZWxvdF9vcHMgdnNjOTk1M19vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L3NldmlsbGVfdnNjOTk1My5jLTg3Ny1cXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L3NldmlsbGVfdnNjOTk1My5jOjg3ODpzdGF0aWMgaW50IHZzYzk5NTNfbWRpb19idXNfYWxsb2Moc3RydWN0IG9jZWxvdCAqb2NlbG90KVxcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3Qvc2V2aWxsZV92c2M5OTUzLmMtODc5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3Qvc2V2aWxsZV92c2M5OTUzLmMtOTM0LVxcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3Qvc2V2aWxsZV92c2M5OTUzLmM6OTM1OnN0YXRpYyB2b2lkIHZzYzk5NTNfbWRpb19idXNfZnJlZShzdHJ1Y3Qgb2NlbG90ICpvY2Vsb3QpXFxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9zZXZpbGxlX3ZzYzk5NTMuYy05MzYte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9zZXZpbGxlX3ZzYzk5NTMuYz05NTA9c3RhdGljIGNvbnN0IHN0cnVjdCBmZWxpeF9pbmZvIHNldmlsbGVfaW5mb192c2M5OTUzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9zZXZpbGxlX3ZzYzk5NTMuYy05NjQtXFx0Lm51bV9wb3J0c1xcdFxcdD0gVlNDOTk1M19OVU1fUE9SVFMsXFxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9zZXZpbGxlX3ZzYzk5NTMuYzo5NjU6XFx0Lm1kaW9fYnVzX2FsbG9jXFx0XFx0PSB2c2M5OTUzX21kaW9fYnVzX2FsbG9jLFxcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3Qvc2V2aWxsZV92c2M5OTUzLmM6OTY2OlxcdC5tZGlvX2J1c19mcmVlXFx0XFx0PSB2c2M5OTUzX21kaW9fYnVzX2ZyZWUsXFxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9zZXZpbGxlX3ZzYzk5NTMuYy05NjctXFx0LnBvcnRfbW9kZXNcXHRcXHQ9IHZzYzk5NTNfcG9ydF9tb2RlcyxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTgwNz1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6ODA4OnFjYThrX21kaW9fYnVzeV93YWl0KHN0cnVjdCBtaWlfYnVzICpidXMsIHUzMiByZWcsIHUzMiBtYXNrKVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTgwOS17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz04MzA9cWNhOGtfbWRpb193cml0ZShzdHJ1Y3QgcWNhOGtfcHJpdiAqcHJpdiwgaW50IHBoeSwgaW50IHJlZ251bSwgdTE2IGRhdGEpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy04NTQtXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6ODU1OlxcdHJldCA9IHFjYThrX21kaW9fYnVzeV93YWl0KGJ1cywgUUNBOEtfTURJT19NQVNURVJfQ1RSTCxcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy04NTYtXFx0XFx0XFx0XFx0ICAgUUNBOEtfTURJT19NQVNURVJfQlVTWSk7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz04Njg9cWNhOGtfbWRpb19yZWFkKHN0cnVjdCBxY2E4a19wcml2ICpwcml2LCBpbnQgcGh5LCBpbnQgcmVnbnVtKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtODkxLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjg5MjpcXHRyZXQgPSBxY2E4a19tZGlvX2J1c3lfd2FpdChidXMsIFFDQThLX01ESU9fTUFTVEVSX0NUUkwsXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtODkzLVxcdFxcdFxcdFxcdCAgIFFDQThLX01ESU9fTUFTVEVSX0JVU1kpO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9OTYxPXFjYThrX21kaW9fcmVnaXN0ZXIoc3RydWN0IHFjYThrX3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy05NzgtXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6OTc5OlxcdHByaXYtXFx1MDAzZWludGVybmFsX21kaW9fYnVzID0gYnVzO1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTk4MC1cXHRidXMtXFx1MDAzZXByaXYgPSAodm9pZCAqKXByaXY7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz0xMDA4PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzoxMDA5OnFjYThrX3NldHVwX21kaW9fYnVzKHN0cnVjdCBxY2E4a19wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTEwMTAte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9MTg1Nz1xY2E4a19zZXR1cChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0xODc0LVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjE4NzU6XFx0cmV0ID0gcWNhOGtfc2V0dXBfbWRpb19idXMocHJpdik7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMTg3Ni1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1sZWRzLmM9MzY1PXFjYThrX3BhcnNlX3BvcnRfbGVkcyhzdHJ1Y3QgcWNhOGtfcHJpdiAqcHJpdiwgc3RydWN0IGZ3bm9kZV9oYW5kbGUgKnBvcnQsIGludCBwb3J0X251bSlcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstbGVkcy5jLTQzMS1cXHRcXHRpbml0X2RhdGEuZGV2aWNlbmFtZSA9IGthc3ByaW50ZihHRlBfS0VSTkVMLCBcXFwiJXM6MCVkXFxcIixcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWxlZHMuYzo0MzI6XFx0XFx0XFx0XFx0XFx0XFx0IHByaXYtXFx1MDAzZWludGVybmFsX21kaW9fYnVzID9cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWxlZHMuYzo0MzM6XFx0XFx0XFx0XFx0XFx0XFx0IHByaXYtXFx1MDAzZWludGVybmFsX21kaW9fYnVzLVxcdTAwM2VpZCA6IHByaXYtXFx1MDAzZWJ1cy1cXHUwMDNlaWQsXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1sZWRzLmMtNDM0LVxcdFxcdFxcdFxcdFxcdFxcdCBwb3J0X251bSk7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLmg9NDQ1PXN0cnVjdCBxY2E4a19wcml2IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGsuaC00NTgtXFx0c3RydWN0IG1paV9idXMgKmJ1cztcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLmg6NDU5OlxcdHN0cnVjdCBtaWlfYnVzICppbnRlcm5hbF9tZGlvX2J1cztcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLmgtNDYwLVxcdHN0cnVjdCBkc2Ffc3dpdGNoICpkcztcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS92aXRlc3NlLXZzYzczeHgtY29yZS5jPTUyMT1zdGF0aWMgaW50IHZzYzczeHhfZGV0ZWN0KHN0cnVjdCB2c2M3M3h4ICp2c2MpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2Evdml0ZXNzZS12c2M3M3h4LWNvcmUuYy02MDQtXFxuZHJpdmVycy9uZXQvZHNhL3ZpdGVzc2UtdnNjNzN4eC1jb3JlLmM6NjA1OnN0YXRpYyBpbnQgdnNjNzN4eF9tZGlvX2J1c3lfY2hlY2soc3RydWN0IHZzYzczeHggKnZzYylcXG5kcml2ZXJzL25ldC9kc2Evdml0ZXNzZS12c2M3M3h4LWNvcmUuYy02MDYte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3ZpdGVzc2UtdnNjNzN4eC1jb3JlLmM9NjIxPXN0YXRpYyBpbnQgdnNjNzN4eF9waHlfcmVhZChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwaHksIGludCByZWdudW0pXFxuLS1cXG5kcml2ZXJzL25ldC9kc2Evdml0ZXNzZS12c2M3M3h4LWNvcmUuYy02MjctXFxuZHJpdmVycy9uZXQvZHNhL3ZpdGVzc2UtdnNjNzN4eC1jb3JlLmM6NjI4OlxcdHJldCA9IHZzYzczeHhfbWRpb19idXN5X2NoZWNrKHZzYyk7XFxuZHJpdmVycy9uZXQvZHNhL3ZpdGVzc2UtdnNjNzN4eC1jb3JlLmMtNjI5LVxcdGlmIChyZXQpXFxuLS1cXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTBUMDc6MTc6MjQuNDc2MDgzMTc5WiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY0OTAzNzg3NzMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTURJTyBcdTAwMjYgUUNBOEsgRHJpdmVyIEZ1enppbmcgLSBBIFF1aWNrIEFzc2Vzc21lbnQqKlxuXG5Pa2F5LCBzbyBzeXprYWxsZXIgKm1pZ2h0KiBiZSBhYmxlIHRvIHRvdWNoIE1ESU8uIEJ1dCB3YWl0LCBNRElPIGl0c2VsZiBpcyBqdXN0IGEgYnVzLCByaWdodD8gSXQncyBub3QgYSBkcml2ZXIgaW4gdGhlIHdheSB3ZSB1c3VhbGx5IHRoaW5rIG9mIHRoZW0uIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBkb2VzIFFFTVUgZXZlbiAqaGF2ZSogYW4gTURJTyBlbXVsYXRvcj8gWWVhaCwgc29tZSBTb0NzIGRvLCB0aGF0J3MgcmlnaHQuIEhvd2V2ZXIsIEknbSBwcmV0dHkgc3VyZSBzeXprYWxsZXIgdXN1YWxseSBieXBhc3NlcyBoYXJkd2FyZSBzcGVjaWZpYyBkcml2ZXJzIHVubGVzcyB0aGVyZSdzIGEgbmV0bGluay9zeXNmcyBpbnRlcmZhY2Ugb3IgYSBkdW1teSBkcml2ZXIgYXZhaWxhYmxlLlxuXG5SaWdodCwgbGV0J3Mgc2VlIGlmIHdlIGNhbiBldmVuICpyZWFjaCogYHFjYThrLTh4eHguY2AuIElzIHRoZXJlIGEgY2xldmVyIHdheSB0byBpbnN0YW50aWF0ZSBpdCB3aXRoIGEgZGV2aWNlIHRyZWUgb3ZlcmxheSB3aXRoaW4gdGhlIHN5emthbGxlciBjb250ZXh0PyBJIHJlbWVtYmVyIGBzeXpfbW91bnRfaW1hZ2VgLCBvciBzb21ldGhpbmcgc2ltaWxhciwgYnV0IHRoYXQgdHlwaWNhbGx5IHdvbid0IGluc3RhbnRpYXRlIHJhbmRvbSBwbGF0Zm9ybSBkZXZpY2VzIG9yIE1ESU8gZGV2aWNlcyB1bmxlc3MgdGhlcmUncyBhIGRlZGljYXRlZCBwc2V1ZG8tc3lzY2FsbC5cblxuSGFuZyBvbi4uLiBJIHNob3VsZCBiZSB0aGlua2luZyBtb3JlIGJyb2FkbHkuIFN5emthbGxlciBoYXMgYHN5el9nZW5ldGxpbmtfZ2V0X2ZhbWlseWAgYW5kIGBzeXpfb3Blbl9kZXZgIGFuZCBzbyBvbiwgcmlnaHQ/IFNvIGl0IG1pZ2h0IGJlIHBvc3NpYmxlLlxuXG5Pa2F5LCBsZXQncyBjdXQgdGhlIHNwZWN1bGF0aW9uLiBUaW1lIHRvIGp1c3QgY2hlY2sgdGhlIHN5emthbGxlciBkZXNjcmlwdGlvbnMuIEkgbmVlZCB0byBzZWUgaWYgdGhlcmUncyAqYW55KiBtZW50aW9uIG9mIE1ESU8gb3IgdGhlIFFDQThLIGZhbWlseS4gVGhhdCdzIHRoZSBmaXJzdCBzdGVwLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxODg1OSwiT3V0cHV0VG9rZW5zIjoxOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIwNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xMFQwNzoxNzozMC45NjY0NjQwNjFaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEzOTA2NDMzMTQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicWNhOGtcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxOTk5IGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svcWNvbSxxY2E4ay1uc3NjYy55YW1sLTMtLS0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL3Fjb20scWNhOGstbnNzY2MueWFtbDo0OiRpZDogaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvY2xvY2svcWNvbSxxY2E4ay1uc3NjYy55YW1sI1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9xY29tLHFjYThrLW5zc2NjLnlhbWwtNS0kc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCNcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9xY29tLHFjYThrLW5zc2NjLnlhbWw9MTM9ZGVzY3JpcHRpb246IHxcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9xY29tLHFjYThrLW5zc2NjLnlhbWwtMTctICBTZWUgYWxzbzo6XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL3Fjb20scWNhOGstbnNzY2MueWFtbDoxODogICAgaW5jbHVkZS9kdC1iaW5kaW5ncy9jbG9jay9xY29tLHFjYThrLW5zc2NjLmhcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svcWNvbSxxY2E4ay1uc3NjYy55YW1sOjE5OiAgICBpbmNsdWRlL2R0LWJpbmRpbmdzL3Jlc2V0L3Fjb20scWNhOGstbnNzY2MuaFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9xY29tLHFjYThrLW5zc2NjLnlhbWwtMjAtXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svcWNvbSxxY2E4ay1uc3NjYy55YW1sPTYzPWV4YW1wbGVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL3Fjb20scWNhOGstbnNzY2MueWFtbC03NC0gICAgICAgIGNsb2NrcyA9IFxcdTAwM2NcXHUwMDI2cGNzMF9wbGxcXHUwMDNlLFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9xY29tLHFjYThrLW5zc2NjLnlhbWw6NzU6ICAgICAgICAgICAgICAgICBcXHUwMDNjXFx1MDAyNnFjYThrX3VuaXBoeTBfcnhcXHUwMDNlLFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9xY29tLHFjYThrLW5zc2NjLnlhbWw6NzY6ICAgICAgICAgICAgICAgICBcXHUwMDNjXFx1MDAyNnFjYThrX3VuaXBoeTBfdHhcXHUwMDNlLFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9xY29tLHFjYThrLW5zc2NjLnlhbWw6Nzc6ICAgICAgICAgICAgICAgICBcXHUwMDNjXFx1MDAyNnFjYThrX3VuaXBoeTFfcnhcXHUwMDNlLFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9xY29tLHFjYThrLW5zc2NjLnlhbWw6Nzg6ICAgICAgICAgICAgICAgICBcXHUwMDNjXFx1MDAyNnFjYThrX3VuaXBoeTFfdHhcXHUwMDNlLFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9xY29tLHFjYThrLW5zc2NjLnlhbWw6Nzk6ICAgICAgICAgICAgICAgICBcXHUwMDNjXFx1MDAyNnFjYThrX3VuaXBoeTFfcngzMTJwNW1cXHUwMDNlLFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9xY29tLHFjYThrLW5zc2NjLnlhbWw6ODA6ICAgICAgICAgICAgICAgICBcXHUwMDNjXFx1MDAyNnFjYThrX3VuaXBoeTFfdHgzMTJwNW1cXHUwMDNlO1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9xY29tLHFjYThrLW5zc2NjLnlhbWwtODEtICAgICAgICAjY2xvY2stY2VsbHMgPSBcXHUwMDNjMVxcdTAwM2U7XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9xY2E4ay55YW1sLTMtLS0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvcWNhOGsueWFtbDo0OiRpZDogaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvbmV0L2RzYS9xY2E4ay55YW1sI1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL3FjYThrLnlhbWwtNS0kc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCNcXG4tLVxcbmRyaXZlcnMvY2xrL3Fjb20vS2NvbmZpZz01MDM9Y29uZmlnIElQUV9OU1NDQ19RQ0E4S1xcbi0tXFxuZHJpdmVycy9jbGsvcWNvbS9LY29uZmlnLTUwOS1cXHQgIFNheSBZIG9yIE0gaWYgeW91IHdhbnQgdG8gdXNlIG5ldHdvcmsgZmVhdHVyZXMgb2Ygc3dpdGNoIG9yXFxuZHJpdmVycy9jbGsvcWNvbS9LY29uZmlnOjUxMDpcXHQgIFBIWSBkZXZpY2UuIFNlbGVjdCB0aGlzIGZvciB0aGUgcm9vdCBjbG9jayBvZiBxY2E4ay5cXG5kcml2ZXJzL2Nsay9xY29tL0tjb25maWctNTExLVxcbi0tXFxuZHJpdmVycy9jbGsvcWNvbS9NYWtlZmlsZT02Nz1vYmotJChDT05GSUdfSVBRX0xDQ184MDZYKSArPSBsY2MtaXBxODA2eC5vXFxuZHJpdmVycy9jbGsvcWNvbS9NYWtlZmlsZTo2ODpvYmotJChDT05GSUdfSVBRX05TU0NDX1FDQThLKSArPSBuc3NjYy1xY2E4ay5vXFxuZHJpdmVycy9jbGsvcWNvbS9NYWtlZmlsZS02OS1vYmotJChDT05GSUdfTURNX0dDQ185NjA3KSArPSBnY2MtbWRtOTYwNy5vXFxuLS1cXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMTUtXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjE2OiNpbmNsdWRlIFxcdTAwM2NkdC1iaW5kaW5ncy9jbG9jay9xY29tLHFjYThrLW5zc2NjLmhcXHUwMDNlXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjE3OiNpbmNsdWRlIFxcdTAwM2NkdC1iaW5kaW5ncy9yZXNldC9xY29tLHFjYThrLW5zc2NjLmhcXHUwMDNlXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTE4LVxcbi0tXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jPTE4MTk9c3RhdGljIHN0cnVjdCBjbGtfYnJhbmNoIG5zc19jY19nZXBoeTNfc3lzX2NsayA9IHtcXG4tLVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0xODM1LVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoxODM2OnN0YXRpYyBzdHJ1Y3QgY2xrX3JlZ21hcCAqbnNzX2NjX3FjYThrX2Nsb2Nrc1tdID0ge1xcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0xODM3LVxcdFtOU1NfQ0NfU1dJVENIX0NPUkVfQ0xLX1NSQ10gPSBcXHUwMDI2bnNzX2NjX3N3aXRjaF9jb3JlX2Nsa19zcmMuY2xrcixcXG4tLVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0xOTM4LVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoxOTM5OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcWNvbV9yZXNldF9tYXAgbnNzX2NjX3FjYThrX3Jlc2V0c1tdID0ge1xcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0xOTQwLVxcdFtOU1NfQ0NfU1dJVENIX0NPUkVfQVJFU10gPSB7IDB4YywgMiB9LFxcbi0tXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jPTIwMjQ9c3RhdGljIGlubGluZSB2b2lkIGNvbnZlcnRfcmVnX3RvX21paV9hZGRyKHUzMiByZWdhZGRyLCB1MTYgKnJlZywgdTE2ICpwaHlfYWRkciwgdTE2ICpwYWdlKVxcbi0tXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIwMzAtXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIwMzE6c3RhdGljIGludCBxY2E4a19taWlfcmVhZChzdHJ1Y3QgbWlpX2J1cyAqYnVzLCB1MTYgc3dpdGNoX3BoeV9pZCwgdTMyIHJlZywgdTMyICp2YWwpXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIwMzIte1xcbi0tXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIwNDQtXFx0aWYgKHJldCBcXHUwMDNjIDApXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIwNDU6XFx0XFx0ZGV2X2Vycl9yYXRlbGltaXRlZChcXHUwMDI2YnVzLVxcdTAwM2VkZXYsIFxcXCJmYWlsIHRvIHJlYWQgcWNhOGsgbWlpIHJlZ2lzdGVyXFxcXG5cXFwiKTtcXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjA0Ni1cXG4tLVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMDQ5LVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMDUwOnN0YXRpYyB2b2lkIHFjYThrX21paV93cml0ZShzdHJ1Y3QgbWlpX2J1cyAqYnVzLCB1MTYgc3dpdGNoX3BoeV9pZCwgdTMyIHJlZywgdTMyIHZhbClcXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjA1MS17XFxuLS1cXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjA1OS1cXHRpZiAocmV0IFxcdTAwM2MgMClcXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjA2MDpcXHRcXHRkZXZfZXJyX3JhdGVsaW1pdGVkKFxcdTAwMjZidXMtXFx1MDAzZWRldiwgXFxcImZhaWwgdG8gd3JpdGUgcWNhOGsgbWlpIHJlZ2lzdGVyXFxcXG5cXFwiKTtcXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjA2MS19XFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIwNjItXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIwNjM6c3RhdGljIGludCBxY2E4a19taWlfcGFnZV9zZXQoc3RydWN0IG1paV9idXMgKmJ1cywgdTE2IHN3aXRjaF9waHlfaWQsIHUzMiByZWcsIHUxNiBwYWdlKVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMDY0LXtcXG4tLVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMDczLVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMDc0OnN0YXRpYyBpbnQgcWNhOGtfcmVnbWFwX3JlYWQodm9pZCAqY29udGV4dCwgdW5zaWduZWQgaW50IHJlZ2FkZHIsIHVuc2lnbmVkIGludCAqdmFsKVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMDc1LXtcXG4tLVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMDgzLVxcdG11dGV4X2xvY2soXFx1MDAyNmJ1cy1cXHUwMDNlbWRpb19sb2NrKTtcXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjA4NDpcXHRyZXQgPSBxY2E4a19taWlfcGFnZV9zZXQoYnVzLCBRQ0E4S19ISUdIX0FERFJfUFJFRklYLCBRQ0E4S19DRkdfUEFHRV9SRUcsIHBhZ2UpO1xcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMDg1LVxcdGlmIChyZXQgXFx1MDAzYyAwKVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMDg2OlxcdFxcdGdvdG8gcWNhOGtfcmVhZF9leGl0O1xcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMDg3LVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMDg4OlxcdHJldCA9IHFjYThrX21paV9yZWFkKGJ1cywgcGh5X2FkZHIsIHJlZywgdmFsKTtcXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjA4OS1cXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjA5MDpxY2E4a19yZWFkX2V4aXQ6XFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIwOTEtXFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZidXMtXFx1MDAzZW1kaW9fbG9jayk7XFxuLS1cXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjA5NC1cXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjA5NTpzdGF0aWMgaW50IHFjYThrX3JlZ21hcF93cml0ZSh2b2lkICpjb250ZXh0LCB1bnNpZ25lZCBpbnQgcmVnYWRkciwgdW5zaWduZWQgaW50IHZhbClcXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjA5Ni17XFxuLS1cXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjEwNC1cXHRtdXRleF9sb2NrKFxcdTAwMjZidXMtXFx1MDAzZW1kaW9fbG9jayk7XFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIxMDU6XFx0cmV0ID0gcWNhOGtfbWlpX3BhZ2Vfc2V0KGJ1cywgUUNBOEtfSElHSF9BRERSX1BSRUZJWCwgUUNBOEtfQ0ZHX1BBR0VfUkVHLCBwYWdlKTtcXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjEwNi1cXHRpZiAocmV0IFxcdTAwM2MgMClcXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjEwNzpcXHRcXHRnb3RvIHFjYThrX3dyaXRlX2V4aXQ7XFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIxMDgtXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIxMDk6XFx0cWNhOGtfbWlpX3dyaXRlKGJ1cywgcGh5X2FkZHIsIHJlZywgdmFsKTtcXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjExMC1cXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjExMTpxY2E4a193cml0ZV9leGl0OlxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMTEyLVxcdG11dGV4X3VubG9jayhcXHUwMDI2YnVzLVxcdTAwM2VtZGlvX2xvY2spO1xcbi0tXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIxMTUtXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIxMTY6c3RhdGljIGludCBxY2E4a19yZWdtYXBfdXBkYXRlX2JpdHModm9pZCAqY29udGV4dCwgdW5zaWduZWQgaW50IHJlZ2FkZHIsXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIxMTctXFx0XFx0XFx0XFx0ICAgIHVuc2lnbmVkIGludCBtYXNrLCB1bnNpZ25lZCBpbnQgdmFsdWUpXFxuLS1cXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjEyNy1cXHRtdXRleF9sb2NrKFxcdTAwMjZidXMtXFx1MDAzZW1kaW9fbG9jayk7XFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIxMjg6XFx0cmV0ID0gcWNhOGtfbWlpX3BhZ2Vfc2V0KGJ1cywgUUNBOEtfSElHSF9BRERSX1BSRUZJWCwgUUNBOEtfQ0ZHX1BBR0VfUkVHLCBwYWdlKTtcXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjEyOS1cXHRpZiAocmV0IFxcdTAwM2MgMClcXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjEzMDpcXHRcXHRnb3RvIHFjYThrX3VwZGF0ZV9leGl0O1xcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMTMxLVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMTMyOlxcdHJldCA9IHFjYThrX21paV9yZWFkKGJ1cywgcGh5X2FkZHIsIHJlZywgXFx1MDAyNnZhbCk7XFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIxMzMtXFx0aWYgKHJldCBcXHUwMDNjIDApXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIxMzQ6XFx0XFx0Z290byBxY2E4a191cGRhdGVfZXhpdDtcXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjEzNS1cXG4tLVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMTM3LVxcdHZhbCB8PSB2YWx1ZTtcXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjEzODpcXHRxY2E4a19taWlfd3JpdGUoYnVzLCBwaHlfYWRkciwgcmVnLCB2YWwpO1xcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMTM5LVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMTQwOnFjYThrX3VwZGF0ZV9leGl0OlxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMTQxLVxcdG11dGV4X3VubG9jayhcXHUwMDI2YnVzLVxcdTAwM2VtZGlvX2xvY2spO1xcbi0tXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIxNDQtXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIxNDU6c3RhdGljIGNvbnN0IHN0cnVjdCByZWdtYXBfY29uZmlnIG5zc19jY19xY2E4a19yZWdtYXBfY29uZmlnID0ge1xcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMTQ2LVxcdC5yZWdfYml0cyA9IDEyLFxcbi0tXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIxNDktXFx0Lm1heF9yZWdpc3RlciA9IDB4MzBjLFxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMTUwOlxcdC5yZWdfcmVhZCA9IHFjYThrX3JlZ21hcF9yZWFkLFxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMTUxOlxcdC5yZWdfd3JpdGUgPSBxY2E4a19yZWdtYXBfd3JpdGUsXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIxNTI6XFx0LnJlZ191cGRhdGVfYml0cyA9IHFjYThrX3JlZ21hcF91cGRhdGVfYml0cyxcXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjE1My1cXHQuZGlzYWJsZV9sb2NraW5nID0gdHJ1ZSxcXG4tLVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMTU1LVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMTU2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcWNvbV9jY19kZXNjIG5zc19jY19xY2E4a19kZXNjID0ge1xcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMTU3OlxcdC5jb25maWcgPSBcXHUwMDI2bnNzX2NjX3FjYThrX3JlZ21hcF9jb25maWcsXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIxNTg6XFx0LmNsa3MgPSBuc3NfY2NfcWNhOGtfY2xvY2tzLFxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMTU5OlxcdC5udW1fY2xrcyA9IEFSUkFZX1NJWkUobnNzX2NjX3FjYThrX2Nsb2NrcyksXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIxNjA6XFx0LnJlc2V0cyA9IG5zc19jY19xY2E4a19yZXNldHMsXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIxNjE6XFx0Lm51bV9yZXNldHMgPSBBUlJBWV9TSVpFKG5zc19jY19xY2E4a19yZXNldHMpLFxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMTYyLX07XFxuLS1cXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjE2Ny0gKi9cXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjE2ODpzdGF0aWMgaW50IG5zc19jY19xY2E4a19jbG9ja19lbmFibGVfYW5kX3Jlc2V0KHN0cnVjdCBkZXZpY2UgKmRldilcXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjE2OS17XFxuLS1cXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjE4Ny1cXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjE4ODpzdGF0aWMgaW50IG5zc19jY19xY2E4a19wcm9iZShzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIxODkte1xcbi0tXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIxOTItXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIxOTM6XFx0cmV0ID0gbnNzX2NjX3FjYThrX2Nsb2NrX2VuYWJsZV9hbmRfcmVzZXQoXFx1MDAyNm1kaW9kZXYtXFx1MDAzZWRldik7XFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIxOTQtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMTk2LVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMTk3OlxcdHJlZ21hcCA9IGRldm1fcmVnbWFwX2luaXQoXFx1MDAyNm1kaW9kZXYtXFx1MDAzZWRldiwgTlVMTCwgbWRpb2Rldi1cXHUwMDNlYnVzLCBuc3NfY2NfcWNhOGtfZGVzYy5jb25maWcpO1xcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMTk4LVxcdGlmIChJU19FUlIocmVnbWFwKSlcXG4tLVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMjAwLVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMjAxOlxcdHJldHVybiBxY29tX2NjX3JlYWxseV9wcm9iZShcXHUwMDI2bWRpb2Rldi1cXHUwMDNlZGV2LCBcXHUwMDI2bnNzX2NjX3FjYThrX2Rlc2MsIHJlZ21hcCk7XFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIyMDItfVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMjAzLVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMjA0OnN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG5zc19jY19xY2E4a19tYXRjaF90YWJsZVtdID0ge1xcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMjA1LVxcdHsgLmNvbXBhdGlibGUgPSBcXFwicWNvbSxxY2E4MDg0LW5zc2NjXFxcIiB9LFxcbi0tXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIyMDctfTtcXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjIwODpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBuc3NfY2NfcWNhOGtfbWF0Y2hfdGFibGUpO1xcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMjA5LVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMjEwOnN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgbnNzX2NjX3FjYThrX2RyaXZlciA9IHtcXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjIxMS1cXHQubWRpb2Rydi5kcml2ZXIgPSB7XFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIyMTI6XFx0XFx0Lm5hbWUgPSBcXFwicWNvbSxxY2E4ay1uc3NjY1xcXCIsXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIyMTM6XFx0XFx0Lm9mX21hdGNoX3RhYmxlXFx0PSBuc3NfY2NfcWNhOGtfbWF0Y2hfdGFibGUsXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIyMTQtXFx0fSxcXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjIxNTpcXHQucHJvYmUgPSBuc3NfY2NfcWNhOGtfcHJvYmUsXFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIyMTYtfTtcXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjIxNy1cXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjIxODptZGlvX21vZHVsZV9kcml2ZXIobnNzX2NjX3FjYThrX2RyaXZlcik7XFxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIyMTktXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL01ha2VmaWxlPTI9b2JqLSQoQ09ORklHX05FVF9EU0FfQVI5MzMxKVxcdCs9IGFyOTMzMS5vXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9NYWtlZmlsZTozOm9iai0kKENPTkZJR19ORVRfRFNBX1FDQThLKVxcdCs9IHFjYThrLm9cXG5kcml2ZXJzL25ldC9kc2EvcWNhL01ha2VmaWxlOjQ6cWNhOGsteSBcXHRcXHRcXHQrPSBxY2E4ay1jb21tb24ubyBxY2E4ay04eHh4Lm9cXG5kcml2ZXJzL25ldC9kc2EvcWNhL01ha2VmaWxlLTUtaWZkZWYgQ09ORklHX05FVF9EU0FfUUNBOEtfTEVEU19TVVBQT1JUXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9NYWtlZmlsZTo2OnFjYThrLXlcXHRcXHRcXHRcXHQrPSBxY2E4ay1sZWRzLm9cXG5kcml2ZXJzL25ldC9kc2EvcWNhL01ha2VmaWxlLTctZW5kaWZcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTIzLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjI0OiNpbmNsdWRlIFxcXCJxY2E4ay5oXFxcIlxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjI1OiNpbmNsdWRlIFxcXCJxY2E4a19sZWRzLmhcXFwiXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMjYtXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9Mjc9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzoyODpxY2E4a19zcGxpdF9hZGRyKHUzMiByZWdhZGRyLCB1MTYgKnIxLCB1MTYgKnIyLCB1MTYgKnBhZ2UpXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMjkte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9NDA9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjQxOnFjYThrX21paV93cml0ZV9sbyhzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgcGh5X2lkLCB1MzIgcmVnbnVtLCB1MzIgdmFsKVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTQyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTQ5LVxcdFxcdGRldl9lcnJfcmF0ZWxpbWl0ZWQoXFx1MDAyNmJ1cy1cXHUwMDNlZGV2LFxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjUwOlxcdFxcdFxcdFxcdCAgICBcXFwiZmFpbGVkIHRvIHdyaXRlIHFjYThrIDMyYml0IGxvIHJlZ2lzdGVyXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy01MS1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTU1PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo1NjpxY2E4a19taWlfd3JpdGVfaGkoc3RydWN0IG1paV9idXMgKmJ1cywgaW50IHBoeV9pZCwgdTMyIHJlZ251bSwgdTMyIHZhbClcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy01Ny17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy02NC1cXHRcXHRkZXZfZXJyX3JhdGVsaW1pdGVkKFxcdTAwMjZidXMtXFx1MDAzZWRldixcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo2NTpcXHRcXHRcXHRcXHQgICAgXFxcImZhaWxlZCB0byB3cml0ZSBxY2E4ayAzMmJpdCBoaSByZWdpc3RlclxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNjYtXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz03MD1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NzE6cWNhOGtfbWlpX3JlYWRfbG8oc3RydWN0IG1paV9idXMgKmJ1cywgaW50IHBoeV9pZCwgdTMyIHJlZ251bSwgdTMyICp2YWwpXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNzIte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtODMtXFx0ZGV2X2Vycl9yYXRlbGltaXRlZChcXHUwMDI2YnVzLVxcdTAwM2VkZXYsXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6ODQ6XFx0XFx0XFx0ICAgIFxcXCJmYWlsZWQgdG8gcmVhZCBxY2E4ayAzMmJpdCBsbyByZWdpc3RlclxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtODUtXFx0KnZhbCA9IDA7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz05MD1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6OTE6cWNhOGtfbWlpX3JlYWRfaGkoc3RydWN0IG1paV9idXMgKmJ1cywgaW50IHBoeV9pZCwgdTMyIHJlZ251bSwgdTMyICp2YWwpXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtOTIte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMTAzLVxcdGRldl9lcnJfcmF0ZWxpbWl0ZWQoXFx1MDAyNmJ1cy1cXHUwMDNlZGV2LFxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjEwNDpcXHRcXHRcXHQgICAgXFxcImZhaWxlZCB0byByZWFkIHFjYThrIDMyYml0IGhpIHJlZ2lzdGVyXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0xMDUtXFx0KnZhbCA9IDA7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz0xMTA9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjExMTpxY2E4a19taWlfcmVhZDMyKHN0cnVjdCBtaWlfYnVzICpidXMsIGludCBwaHlfaWQsIHUzMiByZWdudW0sIHUzMiAqdmFsKVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTExMi17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0xMTctXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MTE4OlxcdHJldCA9IHFjYThrX21paV9yZWFkX2xvKGJ1cywgcGh5X2lkLCByZWdudW0sIFxcdTAwMjZsbyk7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMTE5LVxcdGlmIChyZXQgXFx1MDAzYyAwKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMTIxLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjEyMjpcXHRyZXQgPSBxY2E4a19taWlfcmVhZF9oaShidXMsIHBoeV9pZCwgcmVnbnVtICsgMSwgXFx1MDAyNmhpKTtcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0xMjMtXFx0aWYgKHJldCBcXHUwMDNjIDApXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz0xMzI9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzoxMzM6cWNhOGtfbWlpX3dyaXRlMzIoc3RydWN0IG1paV9idXMgKmJ1cywgaW50IHBoeV9pZCwgdTMyIHJlZ251bSwgdTMyIHZhbClcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0xMzQte1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjEzNTpcXHRpZiAocWNhOGtfbWlpX3dyaXRlX2xvKGJ1cywgcGh5X2lkLCByZWdudW0sIHZhbCkgXFx1MDAzYyAwKVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTEzNi1cXHRcXHRyZXR1cm47XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMTM3LVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjEzODpcXHRxY2E4a19taWlfd3JpdGVfaGkoYnVzLCBwaHlfaWQsIHJlZ251bSArIDEsIHZhbCk7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMTM5LX1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTE0MT1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MTQyOnFjYThrX3NldF9wYWdlKHN0cnVjdCBxY2E4a19wcml2ICpwcml2LCB1MTYgcGFnZSlcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0xNDMte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMTUzLVxcdFxcdGRldl9lcnJfcmF0ZWxpbWl0ZWQoXFx1MDAyNmJ1cy1cXHUwMDNlZGV2LFxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjE1NDpcXHRcXHRcXHRcXHQgICAgXFxcImZhaWxlZCB0byBzZXQgcWNhOGsgcGFnZVxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMTU1LVxcdFxcdHJldHVybiByZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0xNjItXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MTYzOnN0YXRpYyBib29sIHFjYThrX21nbXRfZXRoX2Rpc2FibGVkKGNvbnN0IHN0cnVjdCBxY2E4a19wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTE2NC17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0xNjctXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MTY4OnN0YXRpYyB2b2lkIHFjYThrX3J3X3JlZ19hY2tfaGFuZGxlcihzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIHN0cnVjdCBza19idWZmICpza2IpXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMTY5LXtcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzoxNzA6XFx0c3RydWN0IHFjYThrX21nbXRfZXRoX2RhdGEgKm1nbXRfZXRoX2RhdGE7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MTcxOlxcdHN0cnVjdCBxY2E4a19wcml2ICpwcml2ID0gZHMtXFx1MDAzZXByaXY7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMTcyLVxcdHN0cnVjdCBxY2FfbWdtdF9ldGhoZHIgKm1nbXRfZXRoaGRyO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMjIyLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjIyMzpzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKnFjYThrX2FsbG9jX21kaW9faGVhZGVyKGVudW0gbWRpb19jbWQgY21kLCB1MzIgcmVnLCB1MzIgKnZhbCxcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0yMjQtXFx0XFx0XFx0XFx0XFx0ICAgICAgIGludCBwcmlvcml0eSwgdW5zaWduZWQgaW50IGxlbilcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTMwNi1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzozMDc6c3RhdGljIHZvaWQgcWNhOGtfbWRpb19oZWFkZXJfZmlsbF9zZXFfbnVtKHN0cnVjdCBza19idWZmICpza2IsIHUzMiBzZXFfbnVtKVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTMwOC17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0zMTYtXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MzE3OnN0YXRpYyBpbnQgcWNhOGtfcmVhZF9ldGgoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIHUzMiByZWcsIHUzMiAqdmFsLCBpbnQgbGVuKVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTMxOC17XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MzE5OlxcdHN0cnVjdCBxY2E4a19tZ210X2V0aF9kYXRhICptZ210X2V0aF9kYXRhID0gXFx1MDAyNnByaXYtXFx1MDAzZW1nbXRfZXRoX2RhdGE7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMzIwLVxcdHN0cnVjdCBza19idWZmICpza2I7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0zMjMtXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MzI0OlxcdGlmIChxY2E4a19tZ210X2V0aF9kaXNhYmxlZChwcml2KSlcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0zMjUtXFx0XFx0cmV0dXJuIC1FTlhJTztcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0zMjYtXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MzI3OlxcdHNrYiA9IHFjYThrX2FsbG9jX21kaW9faGVhZGVyKE1ESU9fUkVBRCwgcmVnLCBOVUxMLFxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTMyOC1cXHRcXHRcXHRcXHQgICAgICBRQ0E4S19FVEhFUk5FVF9NRElPX1BSSU9SSVRZLCBsZW4pO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMzQ2LVxcdG1nbXRfZXRoX2RhdGEtXFx1MDAzZXNlcSsrO1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjM0NzpcXHRxY2E4a19tZGlvX2hlYWRlcl9maWxsX3NlcV9udW0oc2tiLCBtZ210X2V0aF9kYXRhLVxcdTAwM2VzZXEpO1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTM0OC1cXHRtZ210X2V0aF9kYXRhLVxcdTAwM2VhY2sgPSBmYWxzZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTM3MS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzozNzI6c3RhdGljIGludCBxY2E4a193cml0ZV9ldGgoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIHUzMiByZWcsIHUzMiAqdmFsLCBpbnQgbGVuKVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTM3My17XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6Mzc0OlxcdHN0cnVjdCBxY2E4a19tZ210X2V0aF9kYXRhICptZ210X2V0aF9kYXRhID0gXFx1MDAyNnByaXYtXFx1MDAzZW1nbXRfZXRoX2RhdGE7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMzc1LVxcdHN0cnVjdCBza19idWZmICpza2I7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0zNzgtXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6Mzc5OlxcdGlmIChxY2E4a19tZ210X2V0aF9kaXNhYmxlZChwcml2KSlcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0zODAtXFx0XFx0cmV0dXJuIC1FTlhJTztcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0zODEtXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MzgyOlxcdHNrYiA9IHFjYThrX2FsbG9jX21kaW9faGVhZGVyKE1ESU9fV1JJVEUsIHJlZywgdmFsLFxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTM4My1cXHRcXHRcXHRcXHQgICAgICBRQ0E4S19FVEhFUk5FVF9NRElPX1BSSU9SSVRZLCBsZW4pO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNDAxLVxcdG1nbXRfZXRoX2RhdGEtXFx1MDAzZXNlcSsrO1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjQwMjpcXHRxY2E4a19tZGlvX2hlYWRlcl9maWxsX3NlcV9udW0oc2tiLCBtZ210X2V0aF9kYXRhLVxcdTAwM2VzZXEpO1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTQwMy1cXHRtZ210X2V0aF9kYXRhLVxcdTAwM2VhY2sgPSBmYWxzZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTQyMz1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NDI0OnFjYThrX3JlZ21hcF91cGRhdGVfYml0c19ldGgoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIHUzMiByZWcsIHUzMiBtYXNrLCB1MzIgd3JpdGVfdmFsKVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTQyNS17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy00MjgtXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NDI5OlxcdHJldCA9IHFjYThrX3JlYWRfZXRoKHByaXYsIHJlZywgXFx1MDAyNnZhbCwgc2l6ZW9mKHZhbCkpO1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTQzMC1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNDM1LVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjQzNjpcXHRyZXR1cm4gcWNhOGtfd3JpdGVfZXRoKHByaXYsIHJlZywgXFx1MDAyNnZhbCwgc2l6ZW9mKHZhbCkpO1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTQzNy19XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz00Mzk9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjQ0MDpxY2E4a19yZWFkX21paShzdHJ1Y3QgcWNhOGtfcHJpdiAqcHJpdiwgdWludDMyX3QgcmVnLCB1aW50MzJfdCAqdmFsKVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTQ0MS17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy00NDUtXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NDQ2OlxcdHFjYThrX3NwbGl0X2FkZHIocmVnLCBcXHUwMDI2cjEsIFxcdTAwMjZyMiwgXFx1MDAyNnBhZ2UpO1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTQ0Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTQ0OS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo0NTA6XFx0cmV0ID0gcWNhOGtfc2V0X3BhZ2UocHJpdiwgcGFnZSk7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNDUxLVxcdGlmIChyZXQgXFx1MDAzYyAwKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNDUzLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjQ1NDpcXHRyZXQgPSBxY2E4a19taWlfcmVhZDMyKGJ1cywgMHgxMCB8IHIyLCByMSwgdmFsKTtcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy00NTUtXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz00NjE9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjQ2MjpxY2E4a193cml0ZV9taWkoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIHVpbnQzMl90IHJlZywgdWludDMyX3QgdmFsKVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTQ2My17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy00NjctXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NDY4OlxcdHFjYThrX3NwbGl0X2FkZHIocmVnLCBcXHUwMDI2cjEsIFxcdTAwMjZyMiwgXFx1MDAyNnBhZ2UpO1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTQ2OS1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTQ3MS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo0NzI6XFx0cmV0ID0gcWNhOGtfc2V0X3BhZ2UocHJpdiwgcGFnZSk7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNDczLVxcdGlmIChyZXQgXFx1MDAzYyAwKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNDc1LVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjQ3NjpcXHRxY2E4a19taWlfd3JpdGUzMihidXMsIDB4MTAgfCByMiwgcjEsIHZhbCk7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNDc3LVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9NDgzPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo0ODQ6cWNhOGtfcmVnbWFwX3VwZGF0ZV9iaXRzX21paShzdHJ1Y3QgcWNhOGtfcHJpdiAqcHJpdiwgdWludDMyX3QgcmVnLFxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTQ4NS1cXHRcXHRcXHQgICAgIHVpbnQzMl90IG1hc2ssIHVpbnQzMl90IHdyaXRlX3ZhbClcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTQ5MS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo0OTI6XFx0cWNhOGtfc3BsaXRfYWRkcihyZWcsIFxcdTAwMjZyMSwgXFx1MDAyNnIyLCBcXHUwMDI2cGFnZSk7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNDkzLVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNDk1LVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjQ5NjpcXHRyZXQgPSBxY2E4a19zZXRfcGFnZShwcml2LCBwYWdlKTtcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy00OTctXFx0aWYgKHJldCBcXHUwMDNjIDApXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy00OTktXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NTAwOlxcdHJldCA9IHFjYThrX21paV9yZWFkMzIoYnVzLCAweDEwIHwgcjIsIHIxLCBcXHUwMDI2dmFsKTtcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy01MDEtXFx0aWYgKHJldCBcXHUwMDNjIDApXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy01MDUtXFx0dmFsIHw9IHdyaXRlX3ZhbDtcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo1MDY6XFx0cWNhOGtfbWlpX3dyaXRlMzIoYnVzLCAweDEwIHwgcjIsIHIxLCB2YWwpO1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTUwNy1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTUxND1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NTE1OnFjYThrX2J1bGtfcmVhZCh2b2lkICpjdHgsIGNvbnN0IHZvaWQgKnJlZ19idWYsIHNpemVfdCByZWdfbGVuLFxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTUxNi1cXHRcXHR2b2lkICp2YWxfYnVmLCBzaXplX3QgdmFsX2xlbilcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTUxOC1cXHRpbnQgaSwgY291bnQgPSB2YWxfbGVuIC8gc2l6ZW9mKHUzMiksIHJldDtcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo1MTk6XFx0c3RydWN0IHFjYThrX3ByaXYgKnByaXYgPSBjdHg7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNTIwLVxcdHUzMiByZWcgPSAqKHUxNiAqKXJlZ19idWY7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy01MjItXFx0aWYgKHByaXYtXFx1MDAzZW1nbXRfY29uZHVpdCBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjUyMzpcXHQgICAgIXFjYThrX3JlYWRfZXRoKHByaXYsIHJlZywgdmFsX2J1ZiwgdmFsX2xlbikpXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNTI0LVxcdFxcdHJldHVybiAwO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNTI3LVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBjb3VudDsgaSsrLCByZWcgKz0gc2l6ZW9mKHUzMikpIHtcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo1Mjg6XFx0XFx0cmV0ID0gcWNhOGtfcmVhZF9taWkocHJpdiwgcmVnLCB2YWxfYnVmICsgaSk7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNTI5LVxcdFxcdGlmIChyZXQgXFx1MDAzYyAwKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9NTM2PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo1Mzc6cWNhOGtfYnVsa19nYXRoZXJfd3JpdGUodm9pZCAqY3R4LCBjb25zdCB2b2lkICpyZWdfYnVmLCBzaXplX3QgcmVnX2xlbixcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy01MzgtXFx0XFx0XFx0Y29uc3Qgdm9pZCAqdmFsX2J1Ziwgc2l6ZV90IHZhbF9sZW4pXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy01NDAtXFx0aW50IGksIGNvdW50ID0gdmFsX2xlbiAvIHNpemVvZih1MzIpLCByZXQ7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NTQxOlxcdHN0cnVjdCBxY2E4a19wcml2ICpwcml2ID0gY3R4O1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTU0Mi1cXHR1MzIgcmVnID0gKih1MTYgKilyZWdfYnVmO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNTQ1LVxcdGlmIChwcml2LVxcdTAwM2VtZ210X2NvbmR1aXQgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo1NDY6XFx0ICAgICFxY2E4a193cml0ZV9ldGgocHJpdiwgcmVnLCB2YWwsIHZhbF9sZW4pKVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTU0Ny1cXHRcXHRyZXR1cm4gMDtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTU1Mi1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgY291bnQ7IGkrKywgcmVnICs9IHNpemVvZih1MzIpLCB2YWwrKykge1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjU1MzpcXHRcXHRyZXQgPSBxY2E4a193cml0ZV9taWkocHJpdiwgcmVnLCAqdmFsKTtcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy01NTQtXFx0XFx0aWYgKHJldCBcXHUwMDNjIDApXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz01NjE9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjU2MjpxY2E4a19idWxrX3dyaXRlKHZvaWQgKmN0eCwgY29uc3Qgdm9pZCAqZGF0YSwgc2l6ZV90IGJ5dGVzKVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTU2My17XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NTY0OlxcdHJldHVybiBxY2E4a19idWxrX2dhdGhlcl93cml0ZShjdHgsIGRhdGEsIHNpemVvZih1MTYpLCBkYXRhICsgc2l6ZW9mKHUxNiksXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNTY1LVxcdFxcdFxcdFxcdCAgICAgICBieXRlcyAtIHNpemVvZih1MTYpKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTU2OD1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NTY5OnFjYThrX3JlZ21hcF91cGRhdGVfYml0cyh2b2lkICpjdHgsIHVpbnQzMl90IHJlZywgdWludDMyX3QgbWFzaywgdWludDMyX3Qgd3JpdGVfdmFsKVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTU3MC17XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NTcxOlxcdHN0cnVjdCBxY2E4a19wcml2ICpwcml2ID0gY3R4O1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTU3Mi1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo1NzM6XFx0aWYgKCFxY2E4a19yZWdtYXBfdXBkYXRlX2JpdHNfZXRoKHByaXYsIHJlZywgbWFzaywgd3JpdGVfdmFsKSlcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy01NzQtXFx0XFx0cmV0dXJuIDA7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNTc1LVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjU3NjpcXHRyZXR1cm4gcWNhOGtfcmVnbWFwX3VwZGF0ZV9iaXRzX21paShwcml2LCByZWcsIG1hc2ssIHdyaXRlX3ZhbCk7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNTc3LX1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy01NzgtXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NTc5OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcmVnbWFwX2NvbmZpZyBxY2E4a19yZWdtYXBfY29uZmlnID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTU4MC1cXHQucmVnX2JpdHMgPSAxNixcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTU4My1cXHQubWF4X3JlZ2lzdGVyID0gMHgxNmFjLCAvKiBlbmQgTUlCIC0gUG9ydDYgcmFuZ2UgKi9cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo1ODQ6XFx0LnJlYWQgPSBxY2E4a19idWxrX3JlYWQsXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NTg1OlxcdC53cml0ZSA9IHFjYThrX2J1bGtfd3JpdGUsXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NTg2OlxcdC5yZWdfdXBkYXRlX2JpdHMgPSBxY2E4a19yZWdtYXBfdXBkYXRlX2JpdHMsXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NTg3OlxcdC5yZF90YWJsZSA9IFxcdTAwMjZxY2E4a19yZWFkYWJsZV90YWJsZSxcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo1ODg6XFx0LmRpc2FibGVfbG9ja2luZyA9IHRydWUsIC8qIExvY2tpbmcgaXMgaGFuZGxlZCBieSBxY2E4ayByZWFkL3dyaXRlICovXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNTg5LVxcdC5jYWNoZV90eXBlID0gUkVHQ0FDSEVfTk9ORSwgLyogRXhwbGljaXRseSBkaXNhYmxlIENBQ0hFICovXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz01OTc9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjU5ODpxY2E4a19waHlfZXRoX2J1c3lfd2FpdChzdHJ1Y3QgcWNhOGtfbWdtdF9ldGhfZGF0YSAqbWdtdF9ldGhfZGF0YSxcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy01OTktXFx0XFx0XFx0c3RydWN0IHNrX2J1ZmYgKnJlYWRfc2tiLCB1MzIgKnZhbClcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTYxMS1cXHRtZ210X2V0aF9kYXRhLVxcdTAwM2VzZXErKztcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo2MTI6XFx0cWNhOGtfbWRpb19oZWFkZXJfZmlsbF9zZXFfbnVtKHNrYiwgbWdtdF9ldGhfZGF0YS1cXHUwMDNlc2VxKTtcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy02MTMtXFx0bWdtdF9ldGhfZGF0YS1cXHUwMDNlYWNrID0gZmFsc2U7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz02MzM9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjYzNDpxY2E4a19waHlfZXRoX2NvbW1hbmQoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIGJvb2wgcmVhZCwgaW50IHBoeSxcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy02MzUtXFx0XFx0ICAgICAgaW50IHJlZ251bSwgdTE2IGRhdGEpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy02MzctXFx0c3RydWN0IHNrX2J1ZmYgKndyaXRlX3NrYiwgKmNsZWFyX3NrYiwgKnJlYWRfc2tiO1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjYzODpcXHRzdHJ1Y3QgcWNhOGtfbWdtdF9ldGhfZGF0YSAqbWdtdF9ldGhfZGF0YTtcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy02MzktXFx0dTMyIHdyaXRlX3ZhbCwgY2xlYXJfdmFsID0gMCwgdmFsO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNjQzLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjY0NDpcXHRpZiAocWNhOGtfbWdtdF9ldGhfZGlzYWJsZWQocHJpdikpXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNjQ1LVxcdFxcdHJldHVybiAtRU5YSU87XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy02NjMtXFx0LyogUHJlYWxsb2MgYWxsIHRoZSBuZWVkZWQgc2tiIGJlZm9yZSB0aGUgbG9jayAqL1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjY2NDpcXHR3cml0ZV9za2IgPSBxY2E4a19hbGxvY19tZGlvX2hlYWRlcihNRElPX1dSSVRFLCBRQ0E4S19NRElPX01BU1RFUl9DVFJMLCBcXHUwMDI2d3JpdGVfdmFsLFxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTY2NS1cXHRcXHRcXHRcXHRcXHQgICAgUUNBOEtfRVRIRVJORVRfUEhZX1BSSU9SSVRZLCBzaXplb2Yod3JpdGVfdmFsKSk7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy02NjgtXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NjY5OlxcdGNsZWFyX3NrYiA9IHFjYThrX2FsbG9jX21kaW9faGVhZGVyKE1ESU9fV1JJVEUsIFFDQThLX01ESU9fTUFTVEVSX0NUUkwsIFxcdTAwMjZjbGVhcl92YWwsXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNjcwLVxcdFxcdFxcdFxcdFxcdCAgICBRQ0E4S19FVEhFUk5FVF9QSFlfUFJJT1JJVFksIHNpemVvZihjbGVhcl92YWwpKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTY3NS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo2NzY6XFx0cmVhZF9za2IgPSBxY2E4a19hbGxvY19tZGlvX2hlYWRlcihNRElPX1JFQUQsIFFDQThLX01ESU9fTUFTVEVSX0NUUkwsIFxcdTAwMjZjbGVhcl92YWwsXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNjc3LVxcdFxcdFxcdFxcdFxcdCAgIFFDQThLX0VUSEVSTkVUX1BIWV9QUklPUklUWSwgc2l6ZW9mKGNsZWFyX3ZhbCkpO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNzE2LVxcdG1nbXRfZXRoX2RhdGEtXFx1MDAzZXNlcSsrO1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjcxNzpcXHRxY2E4a19tZGlvX2hlYWRlcl9maWxsX3NlcV9udW0od3JpdGVfc2tiLCBtZ210X2V0aF9kYXRhLVxcdTAwM2VzZXEpO1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTcxOC1cXHRtZ210X2V0aF9kYXRhLVxcdTAwM2VhY2sgPSBmYWxzZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTczOC1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo3Mzk6XFx0cmV0ID0gcmVhZF9wb2xsX3RpbWVvdXQocWNhOGtfcGh5X2V0aF9idXN5X3dhaXQsIHJldDEsXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNzQwLVxcdFxcdFxcdFxcdCEodmFsIFxcdTAwMjYgUUNBOEtfTURJT19NQVNURVJfQlVTWSksIDAsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy03NTMtXFx0XFx0bWdtdF9ldGhfZGF0YS1cXHUwMDNlc2VxKys7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NzU0OlxcdFxcdHFjYThrX21kaW9faGVhZGVyX2ZpbGxfc2VxX251bShyZWFkX3NrYiwgbWdtdF9ldGhfZGF0YS1cXHUwMDNlc2VxKTtcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy03NTUtXFx0XFx0bWdtdF9ldGhfZGF0YS1cXHUwMDNlYWNrID0gZmFsc2U7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy03ODItXFx0bWdtdF9ldGhfZGF0YS1cXHUwMDNlc2VxKys7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NzgzOlxcdHFjYThrX21kaW9faGVhZGVyX2ZpbGxfc2VxX251bShjbGVhcl9za2IsIG1nbXRfZXRoX2RhdGEtXFx1MDAzZXNlcSk7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNzg0LVxcdG1nbXRfZXRoX2RhdGEtXFx1MDAzZWFjayA9IGZhbHNlO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9ODA3PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo4MDg6cWNhOGtfbWRpb19idXN5X3dhaXQoc3RydWN0IG1paV9idXMgKmJ1cywgdTMyIHJlZywgdTMyIG1hc2spXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtODA5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTgxMy1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo4MTQ6XFx0cWNhOGtfc3BsaXRfYWRkcihyZWcsIFxcdTAwMjZyMSwgXFx1MDAyNnIyLCBcXHUwMDI2cGFnZSk7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtODE1LVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjgxNjpcXHRyZXQgPSByZWFkX3BvbGxfdGltZW91dChxY2E4a19taWlfcmVhZF9oaSwgcmV0MSwgISh2YWwgXFx1MDAyNiBtYXNrKSwgMCxcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy04MTctXFx0XFx0XFx0XFx0UUNBOEtfQlVTWV9XQUlUX1RJTUVPVVQgKiBVU0VDX1BFUl9NU0VDLCBmYWxzZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTgxOS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo4MjA6XFx0LyogQ2hlY2sgaWYgcWNhOGtfcmVhZCBoYXMgZmFpbGVkIGZvciBhIGRpZmZlcmVudCByZWFzb25cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy04MjEtXFx0ICogYmVmb3JlIHJldHVybnRpbmcgLUVUSU1FRE9VVFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9ODI5PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo4MzA6cWNhOGtfbWRpb193cml0ZShzdHJ1Y3QgcWNhOGtfcHJpdiAqcHJpdiwgaW50IHBoeSwgaW50IHJlZ251bSwgdTE2IGRhdGEpXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtODMxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTg0NC1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo4NDU6XFx0cWNhOGtfc3BsaXRfYWRkcihRQ0E4S19NRElPX01BU1RFUl9DVFJMLCBcXHUwMDI2cjEsIFxcdTAwMjZyMiwgXFx1MDAyNnBhZ2UpO1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTg0Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTg0OC1cXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTBUMDc6MTc6MzIuMzU3MTEyMzc2WiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjc5ODk4OTUyMDgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBRQ0E4SyBFdGhlcm5ldCBEcml2ZXIgTW9kaWZpY2F0aW9ucyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGltbWVkaWF0ZWx5LCBteSBmb2N1cyBsYW5kcyBvbiBgZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmNgLiBUaGF0J3MgdGhlIGRyaXZlciBmaWxlIGl0c2VsZiwgc28gaXQncyB0aGUgY29yZSBvZiB0aGUgY2hhbmdlcy4gVGhlIGtleSBmdW5jdGlvbnMgdGhhdCBoYXZlIGJlZW4gdG91Y2hlZCBhcmUgYHFjYThrX3JlYWRfZXRoYCwgYHFjYThrX3dyaXRlX2V0aGAsIGFuZCBgcWNhOGtfcGh5X2V0aF9jb21tYW5kYC4gS25vd2luZyB0aGVzZSBhcmUgbW9kaWZpZWQgdGVsbHMgbWUgd2UncmUgbGlrZWx5IGRlYWxpbmcgd2l0aCBzb21lIGZ1bmRhbWVudGFsIEV0aGVybmV0IGNvbW11bmljYXRpb24gb3BlcmF0aW9ucywgcHJvYmFibHkgcmVhZGluZyBhbmQgd3JpdGluZyB0byB0aGUgUEhZLCBwZXJoYXBzIGlzc3VpbmcgY29tbWFuZHMuXG5cbk5vdywgd2hlcmUgYXJlICp0aGVzZSogZnVuY3Rpb25zIGNhbGxlZCBmcm9tPyBBaCwgeWVzLCBgcWNhOGtfYnVsa19yZWFkYCwgYHFjYThrX2J1bGtfZ2F0aGVyX3dyaXRlYCwgYHFjYThrX3BoeV9ldGhfYnVzeV93YWl0YCwgYW5kIHNvIG9uLiBUaGVzZSBhcmUgaGludGluZyBhdCBvcHRpbWl6YXRpb25zIG9yIHBlcmhhcHMgaGFuZGxpbmcgbGFyZ2VyIGRhdGEgdHJhbnNmZXJzIG1vcmUgZWZmaWNpZW50bHkuIEFuZCBJIHJlbWVtYmVyIG5vdyDigJMgdGhlc2UgZnVuY3Rpb25zIGFyZSBhbGwgcGFydCBvZiB0aGUgKnJlZ21hcCogb3BlcmF0aW9ucy4gUmlnaHQsIHRoaXMgaXMgaG93IHdlJ3JlIGFic3RyYWN0aW5nIHJlZ2lzdGVyIGFjY2VzcyB0byB0aGUgaGFyZHdhcmUuIFNwZWNpZmljYWxseSwgdGhlc2UgZnVuY3Rpb25zIGZpdCB3aXRoaW4gdGhlIGBxY2E4a19yZWdtYXBfY29uZmlnYCBjb25maWd1cmF0aW9uLlxuXG5Ob3cgdGhlIHF1ZXN0aW9uIGlzLCBob3cgYW5kIHdoZXJlIGlzIHRoaXMgcmVnbWFwIGluaXRpYWxpemVkPyBJdCdzIGVpdGhlciBpbiBgcWNhOGtfc2V0dXBgIG9yLCBobW0sIG1heWJlIGBxY2E4a19zd19wcm9iZWA/IE15IGluaXRpYWwgaW5zdGluY3QgaXMgdG8gZ28gd2l0aCBgcWNhOGtfc3dfcHJvYmVgLiBMZXQncyBqdXN0IHF1aWNrbHkgY29uZmlybSB0aGF0Li4uIEknbGwgY2hlY2sgYHFjYThrX3N3X3Byb2JlYC5cblxuXG4iLCJJbnB1dFRva2VucyI6MzQ0MDYsIk91dHB1dFRva2VucyI6MjIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNjYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTBUMDc6MTc6NDAuMzQ3MDEwNDA1WiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzg3NDQ0OTU0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInFjYThrX3N3X3Byb2JlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTIwNzI9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjIwNzM6cWNhOGtfc3dfcHJvYmUoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTIwNzQte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9MjIzNT1zdGF0aWMgc3RydWN0IG1kaW9fZHJpdmVyIHFjYThrbWRpb19kcml2ZXIgPSB7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MjIzNjpcXHQucHJvYmUgID0gcWNhOGtfc3dfcHJvYmUsXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMjIzNy1cXHQucmVtb3ZlID0gcWNhOGtfc3dfcmVtb3ZlLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMFQwNzoxNzo0MS43MzQ0NjAwMDlaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzA2NjIyNzk1MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNRElPIERyaXZlciBJbnN0YW50aWF0aW9uOiBBIFN5emthbGxlciBDaGFsbGVuZ2UqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIE1ESU8gZHJpdmVyIGFuZCB3b25kZXJpbmcgaG93IEkgY2FuIHBva2UgYXQgaXQgd2l0aCBzeXprYWxsZXIuIFRoZSBpbW1lZGlhdGUgcHJvYmxlbSBpcyB0aGF0IHN5emthbGxlciBkb2Vzbid0IHNlZW0gdG8gaGF2ZSBhICpnZW5lcmljKiBtZXRob2QgZm9yIGluc3RhbnRpYXRpbmcgTURJTyBkZXZpY2VzLiBVbmxlc3MgdGhlcmUncyBzb21lIHNwZWNpYWwgcHNldWRvLXN5c2NhbGwgb3IgbmV0bGluayBpbnRlcmZhY2UsIEknbSBraW5kIG9mIHN0dWNrLiBJJ20gYXdhcmUgb2YgdGhlIGV4aXN0aW5nIHRvb2xzIGxpa2UgYHN5el9nZW5ldGxpbmtfZ2V0X2ZhbWlseWAgYW5kIGBzeXpfb3Blbl9kZXZgLCBidXQgdGhleSBkb24ndCBqdW1wIG91dCBhcyBhIGRpcmVjdCBzb2x1dGlvbiBoZXJlLlxuXG5UaGUgb2J2aW91cyB3YXkgTURJTyBkZXZpY2VzIGFyZSAqdXN1YWxseSogYnJvdWdodCB0byBsaWZlIGlzIHRocm91Z2ggdGhlIGRldmljZSB0cmVlLCBhbmQgdW5mb3J0dW5hdGVseSwgSSBjYW4ndCBpbmplY3QgZGV2aWNlIHRyZWUgb3ZlcmxheXMgdXNpbmcgc3l6a2FsbGVyLiBUaGF0J3MgYSBkZWFkIGVuZC5cblxuT2theSwgc3lzZnMgdGhlbj8gQ2FuIEkgbGV2ZXJhZ2Ugc3lzZnMgdG8gaW5zdGFudGlhdGUgdGhlc2UgZGV2aWNlcz8gTGV0IG1lIHRoaW5rLi4uIENvdWxkIEkgZG8gc29tZXRoaW5nIGxpa2UgYGVjaG8gXCJxY2E4a1wiIFx1MDAzZSAvc3lzL2J1cy9tZGlvX2J1cy9kZXZpY2VzLy4uLmA/IE5vLCB3YWl0IGEgbWludXRlLCB0aGUgTURJTyBidXMgZG9lc24ndCBzZWVtIHRvIGhhdmUgdGhhdCBjb252ZW5pZW50IGBuZXdfZGV2aWNlYCBzeXNmcyBhdHRyaWJ1dGUgbGlrZSBJMkMgb3IgU1BJLiBUaGF0J3MgZnJ1c3RyYXRpbmcuXG5cbkxldCdzIHN0ZXAgYmFjaywgYW5kIHJlLXRoaW5rIHRoaXMuIFN5emthbGxlciBoYXMgdGhlc2UgdmVyeSBzcGVjaWZpYyBzeXNjYWxscyBmb3Igb3RoZXIgc3Vic3lzdGVtcywgdGhpbmdzIGxpa2UgYHN5el91c2JfY29ubmVjdGAgZm9yIFVTQiBhbmQgYHN5el84MDIxMV9pbmplY3RfZnJhbWVgIGZvciBtYWM4MDIxMS4gRG9lcyBpdCBoYXZlIGFueXRoaW5nICphdCBhbGwqIHNwZWNpZmljIHRvIE1ESU8/IEkgbmVlZCB0byBjaGVjay4gVGhpcyBmZWVscyBsaWtlIGl0IG1pZ2h0IGJlIHRoZSBvbmx5IHJvdXRlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNTE3NSwiT3V0cHV0VG9rZW5zIjoyNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI0MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xMFQwNzoxNzo0OC44MDA2OTEzMDJaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY0NTkxMzc1LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzeXpfXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcInN5cy9saW51eC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTEwVDA3OjE3OjQ4Ljg2NTI5MTU2N1oiLCJTZXEiOjE5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMTYxNjU2MzcxOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFNjb3BlIG9mIE15IEludmVzdGlnYXRpb24qKlxuXG5Pa2F5LCBzbyB0aGUgaW5zdHJ1Y3Rpb25zIGFyZSBwcmV0dHkgY2xlYXI6IHRoaXMgdG9vbCAqY2Fubm90KiBoYW5kbGUgc2VhcmNoaW5nIHdpdGhpbiBzeXprYWxsZXIncyBgc3lzLypgIGRlc2NyaXB0aW9ucyBvciBleHByZXNzaW9ucyB1c2luZyBgc3l6X2AsIHdoaWNoIG1ha2VzIHNlbnNlIGJlY2F1c2UgdGhvc2UgYXJlIHBzZXVkby1zeXNjYWxscyBhbmQgYXJlbid0IGRpcmVjdGx5IHByZXNlbnQgaW4gdGhlIExpbnV4IGtlcm5lbC4gVGhleSBleHBsaWNpdGx5IHRlbGwgbWUgdG8gdXNlIGByZWFkLXN5ei1zcGVjYCBhbmQgYHN5ei1ncmVwcGVyYCBmb3IgdGhhdCwgYnV0IGhvbGQgb24uLi4gSSBkb24ndCBzZWUgdGhvc2UgdG9vbHMgbGlzdGVkLiBNeSBvcHRpb25zIGhlcmUgYXJlIGxpbWl0ZWQgdG8gYGdyZXBwZXJgLCBgY29kZXNlYXJjaC1kaXItaW5kZXhgLCBgcmVhZC1maWxlYCwgYW5kIGBzZXQtcmVzdWx0c2AuIFNvLCBJJ20gZWZmZWN0aXZlbHkgYmxvY2tlZCBmcm9tIGxvb2tpbmcgYXQgdGhvc2Ugc3l6a2FsbGVyIGNvbnN0cnVjdHMgZGlyZWN0bHkuXG5cbkJ1dCwgdGhhdCdzIGFscmlnaHQsIEkgY2FuIHdvcmsgYXJvdW5kIHRoaXMgYmFzZWQgb24gbXkga25vd2xlZGdlLiBNRElPIGRldmljZXMsIGluIGdlbmVyYWwsIGFyZW4ndCBzb21ldGhpbmcgeW91IGluc3RhbnRpYXRlIGZyb20gdXNlci1zcGFjZSBpbiBhIHN0cmFpZ2h0Zm9yd2FyZCBtYW5uZXIuIFRoZXJlJ3Mgbm8gc3RhbmRhcmQgYHN5el9tZGlvX2Nvbm5lY3RgIGVxdWl2YWxlbnQgb3IgYW55dGhpbmcgbGlrZSB0aGF0IHRoYXQgSSdtIGF3YXJlIG9mLiBBbmQsIGxvb2tpbmcgYXQgdGhlIGNvbnRleHQsIHRoaXMgaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBzd2l0Y2ggZHJpdmVyIOKAkyBhIFF1YWxjb21tIEF0aGVyb3MgUUNBOEssIHNwZWNpZmljYWxseS5cblxuVHlwaWNhbGx5LCBoYXJkd2FyZS1zcGVjaWZpYyBuZXR3b3JrIHN3aXRjaCBkcml2ZXJzLCBlc3BlY2lhbGx5IERTQSBkcml2ZXJzLCBhcmUgY29tcGxldGVseSB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIHVubGVzcyB5b3UndmUgZ290ICp2ZXJ5KiBzcGVjaWZpYyBoYXJkd2FyZSBlbXVsYXRpb24gZ29pbmcgb24uIEFuZCBRRU1VIGNlcnRhaW5seSBkb2Vzbid0IGVtdWxhdGUgUUNBOEsgc3dpdGNoZXMuIFRoZXJlZm9yZSwgY29uc2lkZXJpbmcgdGhlIGxpbWl0YXRpb25zIG9mIHdoYXQgSSAqY2FuKiB1c2UsIHRoZSBjaGFuY2VzIG9mIHJlYWNoaW5nIHRoZXNlIGNvZGUgcGF0aHMgaW4gZW52aXJvbm1lbnRzIGxpa2UgR29vZ2xlIENvbXB1dGUgRW5naW5lIG9yIFFFTVUgYXJlIHNsaW0gdG8gbm9uZS4gSXQncyBlc3NlbnRpYWxseSBpbXBvc3NpYmxlLCBhcyB0aGUgY29kZSByZWxpZXMgb24gaW50ZXJhY3Rpbmcgd2l0aCB0aGUgcGh5c2ljYWwgaGFyZHdhcmUuXG5cbkp1c3QgdG8gYmUgdGhvcm91Z2gsIEkgc2hvdWxkIGRvdWJsZSBjaGVjayB0byBzZWUgaWYgdGhlcmUncyBzb21lIGtpbmQgb2YgZHVtbXkgTURJTyBidXMgb3Igc29tZXRoaW5nIHNpbWlsYXIgd2hpY2ggbWF5IHByb2JlIHRoaXMuIEhvd2V2ZXIsIGV2ZW4gaWYgdGhlcmUgaXMsIHRoZSBkcml2ZXIncyBgcWNhOGtfc3dfcHJvYmVgIGZ1bmN0aW9uIHJlYWRzIGhhcmR3YXJlIHJlZ2lzdGVycyB0byBpZGVudGlmeSB0aGUgY2hpcCwgYW5kIHRoYXQgd2lsbCBiZSBpbXBvc3NpYmxlIHRvIGRvIHdpdGggYSBkdW1teSBpbXBsZW1lbnRhdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MzU4MDYsIk91dHB1dFRva2VucyI6MjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMjksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTBUMDc6MTg6MDAuNDgxODU3NzM2WiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDMwNTU3ODExLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInFjYThrX3JlYWRcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jPTIwNzQ9c3RhdGljIGludCBxY2E4a19yZWdtYXBfcmVhZCh2b2lkICpjb250ZXh0LCB1bnNpZ25lZCBpbnQgcmVnYWRkciwgdW5zaWduZWQgaW50ICp2YWwpXFxuLS1cXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjA4NS1cXHRpZiAocmV0IFxcdTAwM2MgMClcXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmM6MjA4NjpcXHRcXHRnb3RvIHFjYThrX3JlYWRfZXhpdDtcXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjA4Ny1cXG4tLVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMDg5LVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMDkwOnFjYThrX3JlYWRfZXhpdDpcXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjA5MS1cXHRtdXRleF91bmxvY2soXFx1MDAyNmJ1cy1cXHUwMDNlbWRpb19sb2NrKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTMwNz1zdGF0aWMgdm9pZCBxY2E4a19tZGlvX2hlYWRlcl9maWxsX3NlcV9udW0oc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyIHNlcV9udW0pXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0zMTYtXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MzE3OnN0YXRpYyBpbnQgcWNhOGtfcmVhZF9ldGgoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIHUzMiByZWcsIHUzMiAqdmFsLCBpbnQgbGVuKVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTMxOC17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz00MjQ9cWNhOGtfcmVnbWFwX3VwZGF0ZV9iaXRzX2V0aChzdHJ1Y3QgcWNhOGtfcHJpdiAqcHJpdiwgdTMyIHJlZywgdTMyIG1hc2ssIHUzMiB3cml0ZV92YWwpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy00MjgtXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NDI5OlxcdHJldCA9IHFjYThrX3JlYWRfZXRoKHByaXYsIHJlZywgXFx1MDAyNnZhbCwgc2l6ZW9mKHZhbCkpO1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTQzMC1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9NDM5PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo0NDA6cWNhOGtfcmVhZF9taWkoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIHVpbnQzMl90IHJlZywgdWludDMyX3QgKnZhbClcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy00NDEte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9NTE1PXFjYThrX2J1bGtfcmVhZCh2b2lkICpjdHgsIGNvbnN0IHZvaWQgKnJlZ19idWYsIHNpemVfdCByZWdfbGVuLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNTIyLVxcdGlmIChwcml2LVxcdTAwM2VtZ210X2NvbmR1aXQgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo1MjM6XFx0ICAgICFxY2E4a19yZWFkX2V0aChwcml2LCByZWcsIHZhbF9idWYsIHZhbF9sZW4pKVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTUyNC1cXHRcXHRyZXR1cm4gMDtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTUyNy1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgY291bnQ7IGkrKywgcmVnICs9IHNpemVvZih1MzIpKSB7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6NTI4OlxcdFxcdHJldCA9IHFjYThrX3JlYWRfbWlpKHByaXYsIHJlZywgdmFsX2J1ZiArIGkpO1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTUyOS1cXHRcXHRpZiAocmV0IFxcdTAwM2MgMClcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTU3OT1zdGF0aWMgY29uc3Qgc3RydWN0IHJlZ21hcF9jb25maWcgcWNhOGtfcmVnbWFwX2NvbmZpZyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTU4Ni1cXHQucmVnX3VwZGF0ZV9iaXRzID0gcWNhOGtfcmVnbWFwX3VwZGF0ZV9iaXRzLFxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjU4NzpcXHQucmRfdGFibGUgPSBcXHUwMDI2cWNhOGtfcmVhZGFibGVfdGFibGUsXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtNTg4LVxcdC5kaXNhYmxlX2xvY2tpbmcgPSB0cnVlLCAvKiBMb2NraW5nIGlzIGhhbmRsZWQgYnkgcWNhOGsgcmVhZC93cml0ZSAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9ODA4PXFjYThrX21kaW9fYnVzeV93YWl0KHN0cnVjdCBtaWlfYnVzICpidXMsIHUzMiByZWcsIHUzMiBtYXNrKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtODE5LVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjgyMDpcXHQvKiBDaGVjayBpZiBxY2E4a19yZWFkIGhhcyBmYWlsZWQgZm9yIGEgZGlmZmVyZW50IHJlYXNvblxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTgyMS1cXHQgKiBiZWZvcmUgcmV0dXJudGluZyAtRVRJTUVET1VUXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz0xNTA4PXN0YXRpYyB2b2lkIHFjYThrX3Bjc19nZXRfc3RhdGUoc3RydWN0IHBoeWxpbmtfcGNzICpwY3MsIHVuc2lnbmVkIGludCBuZWdfbW9kZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTE1MTUtXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MTUxNjpcXHRyZXQgPSBxY2E4a19yZWFkKHByaXYsIFFDQThLX1JFR19QT1JUX1NUQVRVUyhwb3J0KSwgXFx1MDAyNnJlZyk7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMTUxNy1cXHRpZiAocmV0IFxcdTAwM2MgMCkge1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM9MTU0OD1zdGF0aWMgaW50IHFjYThrX3Bjc19jb25maWcoc3RydWN0IHBoeWxpbmtfcGNzICpwY3MsIHVuc2lnbmVkIGludCBuZWdfbW9kZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTE1ODItXFx0LyogQ29uZmlndXJlIHRoZSBTR01JSSBwYXJhbWV0ZXJzICovXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MTU4MzpcXHRyZXQgPSBxY2E4a19yZWFkKHByaXYsIFFDQThLX1JFR19TR01JSV9DVFJMLCBcXHUwMDI2dmFsKTtcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy0xNTg0LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz0yMDczPXFjYThrX3N3X3Byb2JlKHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2RldilcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTIxMTItXFx0LyogQ2hlY2sgdGhlIGRldGVjdGVkIHN3aXRjaCBpZCAqL1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjIxMTM6XFx0cmV0ID0gcWNhOGtfcmVhZF9zd2l0Y2hfaWQocHJpdik7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMjExNC1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYz0yMj1jb25zdCBzdHJ1Y3QgcWNhOGtfbWliX2Rlc2MgYXI4MzI3X21pYltdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYy02NS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jOjY2OmludCBxY2E4a19yZWFkKHN0cnVjdCBxY2E4a19wcml2ICpwcml2LCB1MzIgcmVnLCB1MzIgKnZhbClcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jLTY3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmM9NzY9aW50IHFjYThrX3JtdyhzdHJ1Y3QgcWNhOGtfcHJpdiAqcHJpdiwgdTMyIHJlZywgdTMyIG1hc2ssIHUzMiB3cml0ZV92YWwpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jLTgwLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmM6ODE6c3RhdGljIGNvbnN0IHN0cnVjdCByZWdtYXBfcmFuZ2UgcWNhOGtfcmVhZGFibGVfcmFuZ2VzW10gPSB7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYy04Mi1cXHRyZWdtYXBfcmVnX3JhbmdlKDB4MDAwMCwgMHgwMGU0KSwgLyogR2xvYmFsIGNvbnRyb2wgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmMtOTgtXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYzo5OTpjb25zdCBzdHJ1Y3QgcmVnbWFwX2FjY2Vzc190YWJsZSBxY2E4a19yZWFkYWJsZV90YWJsZSA9IHtcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jOjEwMDpcXHQueWVzX3JhbmdlcyA9IHFjYThrX3JlYWRhYmxlX3JhbmdlcyxcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jOjEwMTpcXHQubl95ZXNfcmFuZ2VzID0gQVJSQVlfU0laRShxY2E4a19yZWFkYWJsZV9yYW5nZXMpLFxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmMtMTAyLX07XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jPTE2ND1zdGF0aWMgaW50IHFjYThrX2ZkYl9hY2Nlc3Moc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIGVudW0gcWNhOGtfZmRiX2NtZCBjbWQsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jLTE4OS1cXHRpZiAoY21kID09IFFDQThLX0ZEQl9MT0FEKSB7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYzoxOTA6XFx0XFx0cmV0ID0gcWNhOGtfcmVhZChwcml2LCBRQ0E4S19SRUdfQVRVX0ZVTkMsIFxcdTAwMjZyZWcpO1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmMtMTkxLVxcdFxcdGlmIChyZXQgXFx1MDAzYyAwKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYz0zMjU9c3RhdGljIGludCBxY2E4a192bGFuX2FjY2VzcyhzdHJ1Y3QgcWNhOGtfcHJpdiAqcHJpdixcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmMtMzQ3LVxcdGlmIChjbWQgPT0gUUNBOEtfVkxBTl9MT0FEKSB7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYzozNDg6XFx0XFx0cmV0ID0gcWNhOGtfcmVhZChwcml2LCBRQ0E4S19SRUdfVlRVX0ZVTkMxLCBcXHUwMDI2cmVnKTtcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jLTM0OS1cXHRcXHRpZiAocmV0IFxcdTAwM2MgMClcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmM9MzU4PXN0YXRpYyBpbnQgcWNhOGtfdmxhbl9hZGQoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIHU4IHBvcnQsIHUxNiB2aWQsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jLTM3NC1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jOjM3NTpcXHRyZXQgPSBxY2E4a19yZWFkKHByaXYsIFFDQThLX1JFR19WVFVfRlVOQzAsIFxcdTAwMjZyZWcpO1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmMtMzc2LVxcdGlmIChyZXQgXFx1MDAzYyAwKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYz0zOTY9c3RhdGljIGludCBxY2E4a192bGFuX2RlbChzdHJ1Y3QgcWNhOGtfcHJpdiAqcHJpdiwgdTggcG9ydCwgdTE2IHZpZClcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmMtNDA2LVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmM6NDA3OlxcdHJldCA9IHFjYThrX3JlYWQocHJpdiwgUUNBOEtfUkVHX1ZUVV9GVU5DMCwgXFx1MDAyNnJlZyk7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYy00MDgtXFx0aWYgKHJldCBcXHUwMDNjIDApXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jPTQ5Mz12b2lkIHFjYThrX2dldF9ldGh0b29sX3N0YXRzKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jLTUwOS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jOjUxMDpcXHRcXHRyZXQgPSBxY2E4a19yZWFkKHByaXYsIHJlZywgXFx1MDAyNnZhbCk7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYy01MTEtXFx0XFx0aWYgKHJldCBcXHUwMDNjIDApXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jLTUxNC1cXHRcXHRpZiAobWliLVxcdTAwM2VzaXplID09IDIpIHtcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jOjUxNTpcXHRcXHRcXHRyZXQgPSBxY2E4a19yZWFkKHByaXYsIHJlZyArIDQsIFxcdTAwMjZoaSk7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYy01MTYtXFx0XFx0XFx0aWYgKHJldCBcXHUwMDNjIDApXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jPTUzNj1pbnQgcWNhOGtfc2V0X21hY19lZWUoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmMtNTQ0LVxcdG11dGV4X2xvY2soXFx1MDAyNnByaXYtXFx1MDAzZXJlZ19tdXRleCk7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYzo1NDU6XFx0cmV0ID0gcWNhOGtfcmVhZChwcml2LCBRQ0E4S19SRUdfRUVFX0NUUkwsIFxcdTAwMjZyZWcpO1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmMtNTQ2LVxcdGlmIChyZXQgXFx1MDAzYyAwKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYz0xMjI0PWludCBxY2E4a19wb3J0X2xhZ19sZWF2ZShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYy0xMjI5LVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmM6MTIzMDppbnQgcWNhOGtfcmVhZF9zd2l0Y2hfaWQoc3RydWN0IHFjYThrX3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay1jb21tb24uYy0xMjMxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstY29tbW9uLmMtMTIzOC1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jOjEyMzk6XFx0cmV0ID0gcWNhOGtfcmVhZChwcml2LCBRQ0E4S19SRUdfTUFTS19DVFJMLCBcXHUwMDI2dmFsKTtcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLWNvbW1vbi5jLTEyNDAtXFx0aWYgKHJldCBcXHUwMDNjIDApXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLmg9NTAyPWV4dGVybiBjb25zdCBzdHJ1Y3QgcWNhOGtfbWliX2Rlc2MgYXI4MzI3X21pYltdO1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGsuaDo1MDM6ZXh0ZXJuIGNvbnN0IHN0cnVjdCByZWdtYXBfYWNjZXNzX3RhYmxlIHFjYThrX3JlYWRhYmxlX3RhYmxlO1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGsuaC01MDQtaW50IHFjYThrX21pYl9pbml0KHN0cnVjdCBxY2E4a19wcml2ICpwcml2KTtcXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLmg9NTA1PXZvaWQgcWNhOGtfcG9ydF9zZXRfc3RhdHVzKHN0cnVjdCBxY2E4a19wcml2ICpwcml2LCBpbnQgcG9ydCwgaW50IGVuYWJsZSk7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay5oOjUwNjppbnQgcWNhOGtfcmVhZF9zd2l0Y2hfaWQoc3RydWN0IHFjYThrX3ByaXYgKnByaXYpO1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGsuaC01MDctXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay5oLTUwOC0vKiBDb21tb24gcmVhZC93cml0ZS9ybXcgZnVuY3Rpb24gKi9cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLmg6NTA5OmludCBxY2E4a19yZWFkKHN0cnVjdCBxY2E4a19wcml2ICpwcml2LCB1MzIgcmVnLCB1MzIgKnZhbCk7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay5oLTUxMC1pbnQgcWNhOGtfd3JpdGUoc3RydWN0IHFjYThrX3ByaXYgKnByaXYsIHUzMiByZWcsIHUzMiB2YWwpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMFQwNzoxODowMS45MTI0MTk4MTdaIiwiU2VxIjoyMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6OTg2NDQ5ODI0MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIEZ1enphYmlsaXR5IG9mIHRoZSBRQ0E4SyBEU0EgU3dpdGNoIERyaXZlcioqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW5pdGlhbCBhc3Nlc3NtZW50IGlzIHRoYXQgdGhpcyBRQ0E4SyBzd2l0Y2ggZHJpdmVyLCBzcGVjaWZpY2FsbHkgdGhlIGBxY2E4a19zd19wcm9iZWAgZnVuY3Rpb24sIHByZXNlbnRzIGEgc2lnbmlmaWNhbnQgaHVyZGxlIGZvciBmdXp6aW5nLiBUaGUgZnVuY3Rpb24gYHFjYThrX3JlYWRfc3dpdGNoX2lkKHByaXYpYCBpcyBjYWxsZWQgd2l0aGluIGBxY2E4a19zd19wcm9iZWAsIGFuZCBjcnVjaWFsbHksIHRoaXMgcmVsaWVzIG9uIHRoZSBwaHlzaWNhbCBwcmVzZW5jZSBvZiB0aGUgaGFyZHdhcmUuIEdpdmVuIHRoYXQgc3RhbmRhcmQgUUVNVSBkb2Vzbid0IGVtdWxhdGUgdGhlc2UgUUNBOEsgc3dpdGNoZXMsIHRoZSBwcm9iZSB3aWxsIGluZXZpdGFibHkgZmFpbCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LiBDb25zZXF1ZW50bHksIHRoZSBjb2RlIHBhdGhzIHRvdWNoZWQgYnkgdGhpcyBwYXRjaCwgaW52b2x2aW5nIGNoZWNrcyBmb3IgYHFjYThrX21nbXRfZXRoX2Rpc2FibGVkYCBpbiBgcWNhOGtfcmVhZF9ldGhgLCBgcWNhOGtfd3JpdGVfZXRoYCwgYW5kIGBxY2E4a19waHlfZXRoX2NvbW1hbmRgLCBhcmUgY29tcGxldGVseSB1bnJlYWNoYWJsZSB3aXRoaW4gZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yLCBjcml0aWNhbGx5LCBTeXprYWxsZXIncyBRRU1VLiBUaGVzZSBmdW5jdGlvbnMgYXJlIG9ubHkgY2FsbGVkIGFmdGVyIGEgc3VjY2Vzc2Z1bCBwcm9iZSBhbmQgc3dpdGNoIGluaXRpYWxpemF0aW9uLlxuXG5UbyBiZSBhYnNvbHV0ZWx5IHN1cmUsIEkndmUgY29uc2lkZXJlZCBwb3RlbnRpYWwgd29ya2Fyb3VuZHMuIElzIHRoZXJlIGEgZHVtbXkgZHJpdmVyIG91dCB0aGVyZSB0aGF0IG1pZ2h0IGluc3RhbnRpYXRlIHRoaXMsIHNvbWVob3cgbWFraW5nIGl0IGFjY2Vzc2libGU/IE5vLCBpdCdzIG5vdC4gVGhlIGRyaXZlciByZWxpZXMgb24gc3BlY2lmaWMgTURJTyBjb21wYXRpYmxlIHN0cmluZ3MsIGxpa2UgXCJxY2EscWNhODMyNyxcIiBtYXRjaGVkIHRocm91Z2ggdGhlIGRldmljZSB0cmVlIChPRikuIFN5emthbGxlciBkb2Vzbid0IGR5bmFtaWNhbGx5IGluamVjdCBPRiBub2RlcyBmb3IgTURJTyBkZXZpY2VzLCB3aGljaCB3b3VsZCBiZSBuZWVkZWQgaGVyZS4gRXZlbiBpZiBzdWNoIGEgdGhpbmcgd2VyZSBwb3NzaWJsZSwgdGhlIHByb2JlIGZ1bmN0aW9uIGl0c2VsZiByZWFkcyBhIHN3aXRjaCBJRCBmcm9tIGEgc3BlY2lmaWMgcmVnaXN0ZXIuIFRoYXQgcmVhZCB3b3VsZCBmYWlsIHdpdGhvdXQgYW4gYXBwcm9wcmlhdGUgZW11bGF0b3IsIGFuZCB0aGF0J3Mgbm90IHNvbWV0aGluZyB3ZSBoYXZlIGF2YWlsYWJsZS5cblxuVGhlcmVmb3JlLCBhZnRlciBhIHRob3JvdWdoIHJldmlldywgSSdtIGNvbmZpZGVudCBpbiBjb25jbHVkaW5nIHRoYXQgdGhpcyBpcyBub3Qgd29ydGggZnV6emluZywgYW5kIEkgc2hvdWxkIHNldCBgV29ydGhGdXp6aW5nPWZhbHNlYC4gVGhlIHJlYXNvbmluZyB3aWxsIGJlIHN0cmFpZ2h0Zm9yd2FyZDogdGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIERTQSBzd2l0Y2ggZHJpdmVyIGZvciBRQ0E4SyBjaGlwcyB0aGF0IHJlcXVpcmVzIHBoeXNpY2FsIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0MDY4NCwiT3V0cHV0VG9rZW5zIjoxMjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNTgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTBUMDc6MTg6MTEuNzc2OTIwMzk3WiIsIlNlcSI6MjIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTk2NTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHFjYThrIERTQSBzd2l0Y2ggZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlciBmb3IgUXVhbGNvbW0gQXRoZXJvcyBRQ0E4SyBFdGhlcm5ldCBzd2l0Y2ggY2hpcHMuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIHBoeXNpY2FsIGhhcmR3YXJlIGNvbm5lY3RlZCB2aWEgTURJTyB0byBwcm9iZSBzdWNjZXNzZnVsbHkgKGl0IHJlYWRzIHRoZSBzd2l0Y2ggSUQgZnJvbSBhIGhhcmR3YXJlIHJlZ2lzdGVyIGR1cmluZyBwcm9iZSkuIFNpbmNlIHRoaXMgaGFyZHdhcmUgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUvR0NFIGVudmlyb25tZW50cyB1c2VkIGJ5IHN5emthbGxlciwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggYW5kIGZ1enouXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgcWNhOGsgRFNBIHN3aXRjaCBkcml2ZXIsIHdoaWNoIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVyIGZvciBRdWFsY29tbSBBdGhlcm9zIFFDQThLIEV0aGVybmV0IHN3aXRjaCBjaGlwcy4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgcGh5c2ljYWwgaGFyZHdhcmUgY29ubmVjdGVkIHZpYSBNRElPIHRvIHByb2JlIHN1Y2Nlc3NmdWxseSAoaXQgcmVhZHMgdGhlIHN3aXRjaCBJRCBmcm9tIGEgaGFyZHdhcmUgcmVnaXN0ZXIgZHVyaW5nIHByb2JlKS4gU2luY2UgdGhpcyBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS9HQ0UgZW52aXJvbm1lbnRzIHVzZWQgYnkgc3l6a2FsbGVyLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBhbmQgZnV6ei5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTEwVDA3OjE4OjExLjc3Njk0MzE4N1oiLCJTZXEiOjIzLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQ2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowtrx4q[1] Phase: Running StartedAt: 2026-08-10 07:18:23 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtrx4q[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-10 07:18:23 +0000 UTC FinishedAt: 2026-08-10 07:18:27 +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,}