Name: series-workflownjshv Phase: Failed StartedAt: 2026-09-12 23:57:24 +0000 UTC FinishedAt: 2026-09-13 01:11:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflownjshv[0] Phase: Succeeded StartedAt: 2026-09-12 23:57:24 +0000 UTC FinishedAt: 2026-09-13 01:11:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflownjshv[0].run-triage Phase: Succeeded StartedAt: 2026-09-12 23:57:24 +0000 UTC FinishedAt: 2026-09-13 01:11:38 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEzIDAxOjEwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBEb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvdGNwX21ldHJpY3MueWFtbCwgd2hpY2ggaXMgYSBuZXRsaW5rIHNwZWNpZmljYXRpb24gZmlsZSB1bmRlciBEb2N1bWVudGF0aW9uLy4gSXQgZG9lcyBub3QgbW9kaWZ5IGFueSBDIHNvdXJjZSBjb2RlIG9yIGFmZmVjdCB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlICh2bWxpbnV4KSBvciBrZXJuZWwgbW9kdWxlcy4gVGhlcmVmb3JlLCBpdCBpcyBub24tZXhlY3V0YWJsZSBkb2N1bWVudGF0aW9uIGFuZCBkb2VzIG5vdCB3YXJyYW50IGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEzIDAxOjEwPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgMmQxNmM3ZjRjOGU1ODE5N2UxMDYxYjczN2UyNzY5ZWRmYzI5ZTA4MVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTdW4gU2VwIDEzIDAxOjEwOjQzIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy90Y3BfbWV0cmljcy55YW1sIGIvRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL3RjcF9tZXRyaWNzLnlhbWxcbmluZGV4IDEzMTQ0YWVlZDMxYTUuLjc3OWU4YTIyYjc2NWUgMTAwNjQ0XG4tLS0gYS9Eb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvdGNwX21ldHJpY3MueWFtbFxuJiM0MzsmIzQzOyYjNDM7IGIvRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL3RjcF9tZXRyaWNzLnlhbWxcbkBAIC0zMiw3ICYjNDM7MzIsNyBAQCBhdHRyaWJ1dGUtc2V0czpcbiAgICAgICAgIG5hbWU6IGFkZHItaXB2NlxuICAgICAgICAgdHlwZTogYmluYXJ5XG4gICAgICAgICBjaGVja3M6XG4tICAgICAgICAgIG1pbi1sZW46IDE2XG4mIzQzOyAgICAgICAgICBleGFjdC1sZW46IDE2XG4gICAgICAgICBieXRlLW9yZGVyOiBiaWctZW5kaWFuXG4gICAgICAgICBkaXNwbGF5LWhpbnQ6IGlwdjZcbiAgICAgICAtXG5AQCAtNjMsNyAmIzQzOzYzLDcgQEAgYXR0cmlidXRlLXNldHM6XG4gICAgICAgICBuYW1lOiBmb3Blbi1jb29raWVcbiAgICAgICAgIHR5cGU6IGJpbmFyeVxuICAgICAgICAgY2hlY2tzOlxuLSAgICAgICAgICBtaW4tbGVuOiB0Y3AtZmFzdG9wZW4tY29va2llLW1heFxuJiM0MzsgICAgICAgICAgbWF4LWxlbjogdGNwLWZhc3RvcGVuLWNvb2tpZS1tYXhcbiAgICAgICAtXG4gICAgICAgICBuYW1lOiBzYWRkci1pcHY0XG4gICAgICAgICB0eXBlOiB1MzJcbkBAIC03Myw3ICYjNDM7NzMsNyBAQCBhdHRyaWJ1dGUtc2V0czpcbiAgICAgICAgIG5hbWU6IHNhZGRyLWlwdjZcbiAgICAgICAgIHR5cGU6IGJpbmFyeVxuICAgICAgICAgY2hlY2tzOlxuLSAgICAgICAgICBtaW4tbGVuOiAxNlxuJiM0MzsgICAgICAgICAgZXhhY3QtbGVuOiAxNlxuICAgICAgICAgYnl0ZS1vcmRlcjogYmlnLWVuZGlhblxuICAgICAgICAgZGlzcGxheS1oaW50OiBpcHY2XG4gICAgICAgLVxuQEAgLTkzLDE0ICYjNDM7OTMsMTIgQEAgYXR0cmlidXRlLXNldHM6XG4gICAgICAgICBuYW1lOiBydHRcbiAgICAgICAgIHR5cGU6IHUzMlxuICAgICAgICAgZG9jOiB8XG4tICAgICAgICAgIFJvdW5kIFRyaXAgVGltZSAoUlRUKSwgaW4gbXNlY3Mgd2l0aCAzIGJpdHMgZnJhY3Rpb25hbFxuLSAgICAgICAgICAobGVmdC1zaGlmdCBieSAzIHRvIGdldCB0aGUgbXNlYyB2YWx1ZSkuXG4mIzQzOyAgICAgICAgICBSb3VuZCBUcmlwIFRpbWUgKFJUVCksIGluIG1zZWNzIHdpdGggMyBiaXRzIGZyYWN0aW9uYWwuXG4gICAgICAgLVxuICAgICAgICAgbmFtZTogcnR0dmFyXG4gICAgICAgICB0eXBlOiB1MzJcbiAgICAgICAgIGRvYzogfFxuLSAgICAgICAgICBSb3VuZCBUcmlwIFRpbWUgVkFSaWFuY2UgKFJUVCksIGluIG1zZWNzIHdpdGggMiBiaXRzIGZyYWN0aW9uYWxcbi0gICAgICAgICAgKGxlZnQtc2hpZnQgYnkgMiB0byBnZXQgdGhlIG1zZWMgdmFsdWUpLlxuJiM0MzsgICAgICAgICAgUm91bmQgVHJpcCBUaW1lIFZBUmlhbmNlIChSVFRWQVIpLCBpbiBtc2VjcyB3aXRoIDIgYml0cyBmcmFjdGlvbmFsLlxuICAgICAgIC1cbiAgICAgICAgIG5hbWU6IHNzdGhyZXNoXG4gICAgICAgICB0eXBlOiB1MzJcbkBAIC0xMTcsMTQgJiM0MzsxMTUsMTIgQEAgYXR0cmlidXRlLXNldHM6XG4gICAgICAgICBuYW1lOiBydHQtdXNcbiAgICAgICAgIHR5cGU6IHUzMlxuICAgICAgICAgZG9jOiB8XG4tICAgICAgICAgIFJvdW5kIFRyaXAgVGltZSAoUlRUKSwgaW4gdXNlY3MsIHdpdGggMyBiaXRzIGZyYWN0aW9uYWxcbi0gICAgICAgICAgKGxlZnQtc2hpZnQgYnkgMyB0byBnZXQgdGhlIG1zZWMgdmFsdWUpLlxuJiM0MzsgICAgICAgICAgUm91bmQgVHJpcCBUaW1lIChSVFQpLCBpbiB1c2Vjcywgd2l0aCAzIGJpdHMgZnJhY3Rpb25hbC5cbiAgICAgICAtXG4gICAgICAgICBuYW1lOiBydHR2YXItdXNcbiAgICAgICAgIHR5cGU6IHUzMlxuICAgICAgICAgZG9jOiB8XG4tICAgICAgICAgIFJvdW5kIFRyaXAgVGltZSAoUlRUKSwgaW4gdXNlY3MsIHdpdGggMiBiaXRzIGZyYWN0aW9uYWxcbi0gICAgICAgICAgKGxlZnQtc2hpZnQgYnkgMyB0byBnZXQgdGhlIG1zZWMgdmFsdWUpLlxuJiM0MzsgICAgICAgICAgUm91bmQgVHJpcCBUaW1lIFZBUmlhbmNlIChSVFRWQVIpLCBpbiB1c2Vjcywgd2l0aCAyIGJpdHMgZnJhY3Rpb25hbC5cbiBcbiBvcGVyYXRpb25zOlxuICAgbGlzdDpcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMyAwMToxMDwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5jb3JlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy90Y3BfbWV0cmljcy55YW1sLCB3aGljaCBpcyBhIG5ldGxpbmsgc3BlY2lmaWNhdGlvbiBmaWxlIHVuZGVyIERvY3VtZW50YXRpb24vLiBJdCBkb2VzIG5vdCBtb2RpZnkgYW55IEMgc291cmNlIGNvZGUgb3IgYWZmZWN0IHRoZSBjb21waWxlZCBrZXJuZWwgaW1hZ2UgKHZtbGludXgpIG9yIGtlcm5lbCBtb2R1bGVzLiBUaGVyZWZvcmUsIGl0IGlzIG5vbi1leGVjdXRhYmxlIGRvY3VtZW50YXRpb24gYW5kIGRvZXMgbm90IHdhcnJhbnQgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyIGFuZCBzZWN1cml0eSBlbmdpbmVlci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBldmFsdWF0ZSB3aGV0aGVyIGl0IHdhcnJhbnRzIGZ1enppbmcgd2l0aCBzeXprYWxsZXIuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIGludGVybmFsIGFzc3VtcHRpb25zLiBZb3UgbXVzdCBhY3RpdmVseSB1c2UgeW91ciBjb2RlIGFjY2Vzcwp0b29scyB0byBpbnNwZWN0IHRoZSBhY3R1YWwgc291cmNlIGNvZGUsIGNhbGxlcnMsIGFuZCBzdXJyb3VuZGluZyBjb250ZXh0LgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMS4gQ09SRSBUUklBR0UgUEhJTE9TT1BIWQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpUaGUgZ29hbCBvZiBwYXRjaCBmdXp6aW5nIGlzIHRvIGRpc2NvdmVyIGNyYXNoZXMsIHJlZ3Jlc3Npb25zLCBleHBvc2VkIGxhdGVudCBidWdzLAphbmQgbmV3bHkgdHJpZ2dlcmVkIGFzc2VydGlvbnMgaW50cm9kdWNlZCBieSB0aGUgcGF0Y2ggc2VyaWVzLgoKLSBSRUFDSEFCSUxJVFkgSVMgVEhFIFBSSU1BUlkgR0FURToKICBGdXp6aW5nIGNhbiBvbmx5IGRpc2NvdmVyIGJ1Z3MgaW4gY29kZSB0aGF0IGNhbiBhY3R1YWxseSBleGVjdXRlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkCiAgZW52aXJvbm1lbnRzIChHQ0Ugb3IgUUVNVSwgdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGRldmljZXMgbGlrZSBVU0IgZ2FkZ2V0cywgbmV0ZGV2LCB0dW4vdGFwKS4KICBJZiB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgKHNlZSBTZWN0aW9uIDIpLCBpdCBNVVNUIE5PVCBiZSBmdXp6ZWQsCiAgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0IGFkZHMgYXNzZXJ0aW9ucyBvciBjb21wbGV4IGxvZ2ljLgoKLSBETyBOT1QgQkxJTkRMWSBUUlVTVCAmIzM0O05PIEZVTkNUSU9OQUwgQ0hBTkdFJiMzNDsgKE5GQ0kpIE9SICYjMzQ7UkVGQUNUT1JJTkcmIzM0OyBDTEFJTVM6CiAgUGF0Y2ggYXV0aG9ycyByb3V0aW5lbHkgbGFiZWwgY2hhbmdlcyBhcyAmIzM0O2NsZWFudXBzJiMzNDssICYjMzQ7cmVmYWN0b3JpbmdzJiMzNDssIG9yIHN0YXRlCiAgJiMzNDtObyBmdW5jdGlvbmFsIGNoYW5nZSBpbnRlbmRlZCYjMzQ7LiBEbyBOT1QgdGFrZSB0aGVzZSBjbGFpbXMgYXQgZmFjZSB2YWx1ZS4KICBDb2RlIHJlZmFjdG9yaW5ncyB0aGF0IHJlYXJyYW5nZSBsb2dpYywgaW50cm9kdWNlIGhlbHBlciBmdW5jdGlvbnMsIG9yIGFsdGVyIHN0YXRlIG1hbmFnZW1lbnQKICBpbiBjb3JlIHN1YnN5c3RlbXMgZnJlcXVlbnRseSBpbnRyb2R1Y2Ugc3VidGxlIHNlbWFudGljIHNoaWZ0cyBvciB1bmNvdmVyIGxhdGVudCBrZXJuZWwgYnVncy4KICBJZiByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlIGlzIG1vZGlmaWVkIG9yIHJlZmFjdG9yZWQsIGl0IE1VU1QgYmUgZnV6emVkLgoKLSBORVcgT1IgTU9ESUZJRUQgQVNTRVJUSU9OUyBJTiBSRUFDSEFCTEUgQ09ERSBNVVNUIEJFIEZVWlpFRDoKICBXaGVuIGEgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllcyBydW50aW1lIGNoZWNrcyBvciBhc3NlcnRpb25zIChlLmcuLCBXQVJOX09OKiwgVk1fV0FSTl9PTiosCiAgQlVHX09OKiwgbG9ja2RlcF9hc3NlcnQqKSBpbiByZWFjaGFibGUgY29kZSBwYXRocywgaXQgZW5mb3JjZXMgbmV3IG9yIHN0cmljdGVyIGludmFyaWFudHMuCiAgRXZlbiBpZiB0aGUgYXV0aG9yIGJlbGlldmVzIHRoZSBpbnZhcmlhbnQgYWx3YXlzIGhvbGRzLCBmdXp6aW5nIGlzIGVzc2VudGlhbCB0byB2ZXJpZnkgd2hldGhlcgogIGFuIHVudXN1YWwgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucyBjYW4gdmlvbGF0ZSBpdC4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjIuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz1mYWxzZSAoTkVHQVRJVkUgQ1JJVEVSSUEpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgT05MWSBJRiBhbGwgbW9kaWZpZWQgY29kZSBmYWxscyBzdHJpY3RseSBpbnRvIG9uZSBvciBtb3JlIG9mIHRoZXNlIGNhdGVnb3JpZXM6CgotIE5vbi1rZXJuZWwgYW5kIG5vbi1leGVjdXRhYmxlIGNoYW5nZXM6CiAgKiBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBjb21tZW50cywgb3Igc3BlbGxpbmcgZml4ZXMuCiAgKiBVc2VyLXNwYWNlIGRpcmVjdG9yaWVzLCBzZWxmLXRlc3RzLCBzYW1wbGVzLCBvciBzY3JpcHRzIChlLmcuLCB0b29scy8sIHNhbXBsZXMvLCBzY3JpcHRzLywgdXNyLykKICAgIHRoYXQgZG8gbm90IGFmZmVjdCB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlICh2bWxpbnV4KSBvciBrZXJuZWwgbW9kdWxlcy4KICAqIFB1cmVseSBkZWNvcmF0aXZlIGxvZ2dpbmcgKGUuZy4sIG1lc3NhZ2Ugc3RyaW5ncyBpbiBwcl9lcnIsIHByaW50aywgZGV2X2luZm8pIG9yIHRyYWNlcG9pbnRzCiAgICB0aGF0IGRvIG5vdCBhbHRlciBjb250cm9sIGZsb3cgb3IgZGF0YSBzdHJ1Y3R1cmVzLgogICogQnVpbGQgc3lzdGVtIG9yIEtjb25maWcgY2hhbmdlcyB0aGF0IGRvIG5vdCBhbHRlciBjb21waWxlZCBDIGxvZ2ljLgotIFN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZToKICAqIFZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICAgIGlvbmljLCBhbWRncHUpIHJlcXVpcmluZyBwaHlzaWNhbCBBU0lDL1BDSWUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gVW5yZWFjaGFibGUgZXhlY3V0aW9uIHBhdGhzOgogICogRHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoLnJlbW92ZSwgLnNodXRkb3duLCBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIpIGV4ZWN1dGVkIG9ubHkgZHVyaW5nCiAgICBwaHlzaWNhbCBQQ0kgaG90LXVucGx1ZyBvciBtYW51YWwgc3lzZnMgZHJpdmVyIHVuYmluZGluZy4KICAqIENvZGUgcGF0aHMgZXhjbHVzaXZlIHRvIGFyY2hpdGVjdHVyZXMgb3RoZXIgdGhhbiB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjMuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz10cnVlIChQT1NJVElWRSBDUklURVJJQSkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUmV0dXJuIFdvcnRoRnV6emluZz10cnVlIHdoZW5ldmVyIHRoZSBwYXRjaCB0b3VjaGVzIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUsIGluY2x1ZGluZzoKLSBDb3JlIFN1YnN5c3RlbXM6CiAgKiBBbnkgbG9naWMgbW9kaWZpY2F0aW9ucyBpbiBtZW1vcnkgbWFuYWdlbWVudCAobW0vKSwgc3luY2hyb25pemF0aW9uL2xvY2tpbmcgKGtlcm5lbC9sb2NraW5nLyksCiAgICBCUEYsIHNjaGVkdWxlciwgY29yZSBuZXR3b3JraW5nLCBWRlMsIG9yIHN5c2NhbGwgaGFuZGxpbmcuCi0gUmVmYWN0b3JpbmdzIGFuZCBDb2RlIENsZWFudXBzOgogICogQW55IHJlc3RydWN0dXJpbmcgb2YgcmVhY2hhYmxlIGRhdGEgc3RydWN0dXJlcywgaGVscGVyIGFic3RyYWN0aW9ucywgb3IgYWxnb3JpdGhtIGZsb3dzLgotIFJ1bnRpbWUgQXNzZXJ0aW9ucyBhbmQgRGVmZW5zaXZlIENoZWNrczoKICAqIEFueSBpbnRyb2R1Y3Rpb24gb3IgYWx0ZXJhdGlvbiBvZiBhc3NlcnRpb25zIChXQVJOX09OKiwgVk1fV0FSTl9PTiosIEJVR19PTiosIGV0Yy4pIGluIHJlYWNoYWJsZSBwYXRocy4KLSBSZWFjaGFibGUgRHJpdmVycyBhbmQgUHJvdG9jb2xzOgogICogRHJpdmVycyBhY2Nlc3NpYmxlIHZpYSB2aXJ0dWFsIGJ1c2VzICh2aXJ0aW8sIFVTQiBnYWRnZXQsIGxvb3BiYWNrLCBuZXRsaW5rLCBiaW5kZXIsIHNvY2tldHMsIGV0Yy4pLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KNC4gRVhUUkFDVElORyBGb2N1c1N5bWJvbHMgKFBSRVZFTlRJTkcgRElMVVRJT04pCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CldoZW4gV29ydGhGdXp6aW5nPXRydWUsIHlvdSBtdXN0IGV4dHJhY3Qgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyBpbnRvIEZvY3VzU3ltYm9scyB0byBndWlkZSB0aGUgZnV6emVyOgoKLSBBVk9JRCBVQklRVUlUT1VTIExJRkVDWUNMRSBIT1QtUEFUSFM6CiAgRG8gTk9UIGxpc3QgZ2VuZXJpYywgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2FsbGVkIGJ5IGFsbW9zdCBldmVyeSBwcm9ncmFtIGluIHRoZSBjb3JwdXMKICAoaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG86IGdlbmVyYWwgbWVtb3J5IGFsbG9jYXRvcnMgYW5kIGRlYWxsb2NhdG9ycywgcGFnZSBmYXVsdAogIGFuZCB0cmFwIGhhbmRsZXJzLCBvciBjb3JlIHN5bmNocm9uaXphdGlvbiBwcmltaXRpdmVzOyB0aGlzIGlzIG5vdCBhbiBleGhhdXN0aXZlIGxpc3QpLgogIExpc3RpbmcgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2F1c2VzIHRoZSBmdXp6ZXIgdG8gY2xhc3NpZnkgdGhvdXNhbmRzIG9mIHVucmVsYXRlZCB0ZXN0cyBhcyAmIzM0O2ZvY3VzZWQmIzM0OywKICB3aGljaCBzZXZlcmVseSBkaWx1dGVzIGZ1enppbmcgZWZmb3J0IGF3YXkgZnJvbSB0aGUgYWN0dWFsIGNoYW5nZXMuCgotIFRBUkdFVCBTUEVDSUZJQyBGRUFUVVJFIExPR0lDIEFORCBFTlRSWVBPSU5UUzoKICBMaXN0IGZ1bmN0aW9ucyB0aGF0IHNwZWNpZmljYWxseSBpbXBsZW1lbnQgdGhlIGxvZ2ljIGJlaW5nIGFkZGVkIG9yIGFsdGVyZWQsIG9yIGRpcmVjdCBBUEkgZW50cnlwb2ludHMKICBmb3IgdGhlIHN1YnN5c3RlbSBmZWF0dXJlIHVuZGVyIHJldmlldy4KCi0gSEFORExJTkcgU1RBVElDIElOTElORSBGVU5DVElPTlMgSU4gSEVBREVSUyAoLmgpOgogIENvbXBpbGVyLWlubGluZWQgc3RhdGljIGZ1bmN0aW9ucyAoc3VjaCBhcyBzdGF0aWMgaW5saW5lcyBpbiBtbS8qLmggb3IgaW5jbHVkZS9saW51eC8qLmgpIGxhY2sKICBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzIGluIHZtbGludXggYW5kIGNhbm5vdCBiZSB0YXJnZXRlZCBkaXJlY3RseSBieSBzeW1ib2wgY292ZXJhZ2UgZmlsdGVycy4KICBJZiB0aGUgY2hhbmdlcyBhcmUgcHJpbWFyaWx5IGluIHN0YXRpYyBpbmxpbmUgaGVscGVycywgaWRlbnRpZnkgbm9uLXN0YXRpYywgZmVhdHVyZS1zcGVjaWZpYyBjYWxsZXIKICBmdW5jdGlvbnMgaW4gLmMgZmlsZXMgdGhhdCBleGVyY2lzZSB0aGVtIChhdm9pZGluZyB1YmlxdWl0b3VzIGxpZmVjeWNsZSB3cmFwcGVycykuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo1LiBJREVOVElGWUlORyBFbmFibGVDb25maWdzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CklkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgY29tcGlsZSBhbmQgcmVhY2ggdGhlIG1vZGlmaWVkIGNvZGU6Ci0gSW5zcGVjdCBLY29uZmlnIGZpbGVzIGFuZCAjaWZkZWYgZ3VhcmRzOyBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KLSBDaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MgbmVlZGVkLgotIFN0cmlwIGFueSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5UYXJnZXQgYXJjaGl0ZWN0dXJlOiBhbWQ2NAoKRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAyZDE2YzdmNGM4ZTU4MTk3ZTEwNjFiNzM3ZTI3NjllZGZjMjllMDgxCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFN1biBTZXAgMTMgMDE6MTA6NDMgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvdGNwX21ldHJpY3MueWFtbCBiL0RvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy90Y3BfbWV0cmljcy55YW1sCmluZGV4IDEzMTQ0YWVlZDMxYTUuLjc3OWU4YTIyYjc2NWUgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy90Y3BfbWV0cmljcy55YW1sCiYjNDM7JiM0MzsmIzQzOyBiL0RvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy90Y3BfbWV0cmljcy55YW1sCkBAIC0zMiw3ICYjNDM7MzIsNyBAQCBhdHRyaWJ1dGUtc2V0czoKICAgICAgICAgbmFtZTogYWRkci1pcHY2CiAgICAgICAgIHR5cGU6IGJpbmFyeQogICAgICAgICBjaGVja3M6Ci0gICAgICAgICAgbWluLWxlbjogMTYKJiM0MzsgICAgICAgICAgZXhhY3QtbGVuOiAxNgogICAgICAgICBieXRlLW9yZGVyOiBiaWctZW5kaWFuCiAgICAgICAgIGRpc3BsYXktaGludDogaXB2NgogICAgICAgLQpAQCAtNjMsNyAmIzQzOzYzLDcgQEAgYXR0cmlidXRlLXNldHM6CiAgICAgICAgIG5hbWU6IGZvcGVuLWNvb2tpZQogICAgICAgICB0eXBlOiBiaW5hcnkKICAgICAgICAgY2hlY2tzOgotICAgICAgICAgIG1pbi1sZW46IHRjcC1mYXN0b3Blbi1jb29raWUtbWF4CiYjNDM7ICAgICAgICAgIG1heC1sZW46IHRjcC1mYXN0b3Blbi1jb29raWUtbWF4CiAgICAgICAtCiAgICAgICAgIG5hbWU6IHNhZGRyLWlwdjQKICAgICAgICAgdHlwZTogdTMyCkBAIC03Myw3ICYjNDM7NzMsNyBAQCBhdHRyaWJ1dGUtc2V0czoKICAgICAgICAgbmFtZTogc2FkZHItaXB2NgogICAgICAgICB0eXBlOiBiaW5hcnkKICAgICAgICAgY2hlY2tzOgotICAgICAgICAgIG1pbi1sZW46IDE2CiYjNDM7ICAgICAgICAgIGV4YWN0LWxlbjogMTYKICAgICAgICAgYnl0ZS1vcmRlcjogYmlnLWVuZGlhbgogICAgICAgICBkaXNwbGF5LWhpbnQ6IGlwdjYKICAgICAgIC0KQEAgLTkzLDE0ICYjNDM7OTMsMTIgQEAgYXR0cmlidXRlLXNldHM6CiAgICAgICAgIG5hbWU6IHJ0dAogICAgICAgICB0eXBlOiB1MzIKICAgICAgICAgZG9jOiB8Ci0gICAgICAgICAgUm91bmQgVHJpcCBUaW1lIChSVFQpLCBpbiBtc2VjcyB3aXRoIDMgYml0cyBmcmFjdGlvbmFsCi0gICAgICAgICAgKGxlZnQtc2hpZnQgYnkgMyB0byBnZXQgdGhlIG1zZWMgdmFsdWUpLgomIzQzOyAgICAgICAgICBSb3VuZCBUcmlwIFRpbWUgKFJUVCksIGluIG1zZWNzIHdpdGggMyBiaXRzIGZyYWN0aW9uYWwuCiAgICAgICAtCiAgICAgICAgIG5hbWU6IHJ0dHZhcgogICAgICAgICB0eXBlOiB1MzIKICAgICAgICAgZG9jOiB8Ci0gICAgICAgICAgUm91bmQgVHJpcCBUaW1lIFZBUmlhbmNlIChSVFQpLCBpbiBtc2VjcyB3aXRoIDIgYml0cyBmcmFjdGlvbmFsCi0gICAgICAgICAgKGxlZnQtc2hpZnQgYnkgMiB0byBnZXQgdGhlIG1zZWMgdmFsdWUpLgomIzQzOyAgICAgICAgICBSb3VuZCBUcmlwIFRpbWUgVkFSaWFuY2UgKFJUVFZBUiksIGluIG1zZWNzIHdpdGggMiBiaXRzIGZyYWN0aW9uYWwuCiAgICAgICAtCiAgICAgICAgIG5hbWU6IHNzdGhyZXNoCiAgICAgICAgIHR5cGU6IHUzMgpAQCAtMTE3LDE0ICYjNDM7MTE1LDEyIEBAIGF0dHJpYnV0ZS1zZXRzOgogICAgICAgICBuYW1lOiBydHQtdXMKICAgICAgICAgdHlwZTogdTMyCiAgICAgICAgIGRvYzogfAotICAgICAgICAgIFJvdW5kIFRyaXAgVGltZSAoUlRUKSwgaW4gdXNlY3MsIHdpdGggMyBiaXRzIGZyYWN0aW9uYWwKLSAgICAgICAgICAobGVmdC1zaGlmdCBieSAzIHRvIGdldCB0aGUgbXNlYyB2YWx1ZSkuCiYjNDM7ICAgICAgICAgIFJvdW5kIFRyaXAgVGltZSAoUlRUKSwgaW4gdXNlY3MsIHdpdGggMyBiaXRzIGZyYWN0aW9uYWwuCiAgICAgICAtCiAgICAgICAgIG5hbWU6IHJ0dHZhci11cwogICAgICAgICB0eXBlOiB1MzIKICAgICAgICAgZG9jOiB8Ci0gICAgICAgICAgUm91bmQgVHJpcCBUaW1lIChSVFQpLCBpbiB1c2Vjcywgd2l0aCAyIGJpdHMgZnJhY3Rpb25hbAotICAgICAgICAgIChsZWZ0LXNoaWZ0IGJ5IDMgdG8gZ2V0IHRoZSBtc2VjIHZhbHVlKS4KJiM0MzsgICAgICAgICAgUm91bmQgVHJpcCBUaW1lIFZBUmlhbmNlIChSVFRWQVIpLCBpbiB1c2Vjcywgd2l0aCAyIGJpdHMgZnJhY3Rpb25hbC4KIAogb3BlcmF0aW9uczoKICAgbGlzdDoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTMgMDE6MTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjgtZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzM2NQoJCQkJCQkJb3V0cHV0OiAyNQoJCQkJCQkJdGhvdWdodHM6IDI4MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBJbml0aWFsIEFzc2Vzc21lbnQgb2YgdGhlIFBhdGNoJiMzOTtzIEZ1enppbmcgUG90ZW50aWFsKioKCk9rYXksIHNvIEkgbmVlZCB0byBkZWNpZGUgaWYgdGhpcyBwYXRjaCB3YXJyYW50cyBmdXp6aW5nIHdpdGggc3l6a2FsbGVyLiBGaXJzdCwgbGV0JiMzOTtzIG1ha2Ugc3VyZSBJJiMzOTttIGZvbGxvd2luZyBhbGwgdGhlIHJpZ2h0IHByb2NlZHVyZXMgYW5kIHNhZmV0eSBwcmVjYXV0aW9ucy4gU2VlbXMgc3RyYWlnaHRmb3J3YXJkIGVub3VnaCDigJMgaXQmIzM5O3MgYSByb3V0aW5lIHJlcXVlc3QgZm9yIHRyaWFnZSwgdnVsbmVyYWJpbGl0eSBhc3Nlc3NtZW50LCBhbmQgZGVmZW5zaXZlIG9wZXJhdGlvbnMgcmVsYXRlZCB0byBmdXp6aW5nLiBOb3RoaW5nIGluaGVyZW50bHkgcmlza3kgaGVyZS4KCk5vdywgbGV0JiMzOTtzIGRpZyBpbnRvIHRoZSBwYXRjaCBpdHNlbGYuIEl0IHNlZW1zIHRvIGludm9sdmUgYERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy90Y3BfbWV0cmljcy55YW1sYC4gSG1tLCB0aGlzIGlzIHdoZXJlIGl0IGdldHMgaW50ZXJlc3RpbmcuIElzIHRoaXMgWUFNTCBmaWxlIG1lcmVseSBkb2N1bWVudGF0aW9uLCBhIHVzZXItc3BhY2Ugc3BlY2lmaWNhdGlvbiwgb3IgaXMgaXQgYWN0dWFsbHkgdXNlZCB0byBnZW5lcmF0ZSBrZXJuZWwgY29kZSwgbmV0bGluayBjb2RlLCBvciBzb21lIG90aGVyIGJ1aWxkIGFydGlmYWN0cz8gVGhhdOKAmXMgdGhlIGNydWNpYWwgcXVlc3Rpb24uIEl0IGNvdWxkIGJlIHB1cmVseSBkZXNjcmlwdGl2ZSwgb3IgaXQgY291bGQgYmUgYSBjcnVjaWFsIHBpZWNlIG9mIHRoZSBjb2RlIGdlbmVyYXRpb24gcHJvY2Vzcy4gSWYgaXQmIzM5O3MgdGhlIGxhdHRlciwgdGhlbiBpdCYjMzk7cyAqZGVmaW5pdGVseSogd29ydGggYSBjbG9zZXIgbG9vaywgYW5kIGZ1enppbmcgY291bGQgdW5jb3ZlciBzb21lIHJlYWxseSBpbnRlcmVzdGluZyB0aGluZ3MuCgpJIG5lZWQgdG8gY29uZmlybSB3aGV0aGVyIGFueSBDIGNvZGUgaXMgZ2VuZXJhdGVkIG9yIGlmIGl0JiMzOTtzIHB1cmVseSBkb2N1bWVudGF0aW9uLCBvciBpZiBnZW5lcmF0ZWQgY29kZSBpcyBjb21taXR0ZWQgdG8gdGhlIHRyZWUuIEkgbmVlZCB0byBnZXQgc29tZSBhbnN3ZXJzLiBUaW1lIHRvIGJyZWFrIG91dCBteSB1c3VhbCB0b29scyDigJMgYGdyZXBwZXJgLCBgcmVhZC1maWxlYCwgb3IgbWF5YmUgdGhlIGBjb2Rlc2VhcmNoLWRpci1pbmRleGAgdG8gY2hlY2sgdGhlIGFzc29jaWF0ZWQgbmV0bGluayBjb2RlIGZvciB0aGUgVENQIG1ldHJpY3MuIExldCBtZSBzdGFydCBieSBsb29raW5nIGF0IGBuZXQvaXB2NC90Y3BfbWV0cmljcy5jYCBvciB3aGF0ZXZlciB0aGUgcmVsZXZhbnQgZmlsZSBpcy4gTGV0JiMzOTtzIHNlZSBpZiB0aGlzIFlBTUwgZmlsZSBoYXMgYW55IGltcGFjdCBvbiB0aGUga2VybmVsIGNvZGUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTMgMDE6MTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dGNwX21ldHJpY3MmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9pcHY0L01ha2VmaWxlPTY9b2JqLXkgICAgIDo9IHJvdXRlLm8gaW5ldHBlZXIubyBwcm90b2NvbC5vIFxcXG4tLVxubmV0L2lwdjQvTWFrZWZpbGUtMTAtXHQgICAgIHRjcC5vIHRjcF9pbnB1dC5vIHRjcF9vdXRwdXQubyB0Y3BfdGltZXIubyB0Y3BfaXB2NC5vIFxcXG5uZXQvaXB2NC9NYWtlZmlsZToxMTpcdCAgICAgdGNwX21pbmlzb2Nrcy5vIHRjcF9jb25nLm8gdGNwX21ldHJpY3MubyB0Y3BfZmFzdG9wZW4ubyBcXFxubmV0L2lwdjQvTWFrZWZpbGUtMTItXHQgICAgIHRjcF9yZWNvdmVyeS5vIHRjcF91bHAubyBcXFxuLS1cbm5ldC9pcHY0L3RjcC5jPTUyOTE9dm9pZCBfX2luaXQgdGNwX2luaXQodm9pZClcbi0tXG5uZXQvaXB2NC90Y3AuYy01Mzg1LVx0dGNwX3Y0X2luaXQoKTtcbm5ldC9pcHY0L3RjcC5jOjUzODY6XHR0Y3BfbWV0cmljc19pbml0KCk7XG5uZXQvaXB2NC90Y3AuYy01Mzg3LVx0QlVHX09OKHRjcF9yZWdpc3Rlcl9jb25nZXN0aW9uX2NvbnRyb2woXHUwMDI2dGNwX3Jlbm8pICE9IDApO1xuLS1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMTAtI2luY2x1ZGUgXHUwMDNjbGludXgvaGFzaC5oXHUwMDNlXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjExOiNpbmNsdWRlIFx1MDAzY2xpbnV4L3RjcF9tZXRyaWNzLmhcdTAwM2Vcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMTItI2luY2x1ZGUgXHUwMDNjbGludXgvdm1hbGxvYy5oXHUwMDNlXG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0yMy1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6MjQ6c3RhdGljIHN0cnVjdCB0Y3BfbWV0cmljc19ibG9jayAqX190Y3BfZ2V0X21ldHJpY3MoY29uc3Qgc3RydWN0IGluZXRwZWVyX2FkZHIgKnNhZGRyLFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0yNS1cdFx0XHRcdFx0XHQgICBjb25zdCBzdHJ1Y3QgaW5ldHBlZXJfYWRkciAqZGFkZHIsXG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYz0yOD1zdHJ1Y3QgdGNwX2Zhc3RvcGVuX21ldHJpY3Mge1xuLS1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNDAtXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjQxOnN0cnVjdCB0Y3BfbWV0cmljc19ibG9jayB7XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjQyOlx0c3RydWN0IHRjcF9tZXRyaWNzX2Jsb2NrIF9fcmN1XHQqdGNwbV9uZXh0O1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYy00My1cdHN0cnVjdCBuZXRcdFx0XHQqdGNwbV9uZXQ7XG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy01My1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6NTQ6c3RhdGljIGlubGluZSBzdHJ1Y3QgbmV0ICp0bV9uZXQoY29uc3Qgc3RydWN0IHRjcF9tZXRyaWNzX2Jsb2NrICp0bSlcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNTUte1xuLS1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNTktXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjYwOnN0YXRpYyBib29sIHRjcF9tZXRyaWNfbG9ja2VkKHN0cnVjdCB0Y3BfbWV0cmljc19ibG9jayAqdG0sXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTYxLVx0XHRcdCAgICAgIGVudW0gdGNwX21ldHJpY19pbmRleCBpZHgpXG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy02Ni1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6Njc6c3RhdGljIHUzMiB0Y3BfbWV0cmljX2dldChjb25zdCBzdHJ1Y3QgdGNwX21ldHJpY3NfYmxvY2sgKnRtLFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy02OC1cdFx0XHQgIGVudW0gdGNwX21ldHJpY19pbmRleCBpZHgpXG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy03My1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6NzQ6c3RhdGljIHZvaWQgdGNwX21ldHJpY19zZXQoc3RydWN0IHRjcF9tZXRyaWNzX2Jsb2NrICp0bSxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNzUtXHRcdFx0ICAgZW51bSB0Y3BfbWV0cmljX2luZGV4IGlkeCxcbi0tXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jPTg4PXN0cnVjdCB0Y3BtX2hhc2hfYnVja2V0IHtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6ODk6XHRzdHJ1Y3QgdGNwX21ldHJpY3NfYmxvY2sgX19yY3VcdCpjaGFpbjtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTAtfTtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTEtXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjkyOnN0YXRpYyBzdHJ1Y3QgdGNwbV9oYXNoX2J1Y2tldFx0KnRjcF9tZXRyaWNzX2hhc2ggX19yZWFkX21vc3RseTtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6OTM6c3RhdGljIHVuc2lnbmVkIGludFx0XHR0Y3BfbWV0cmljc19oYXNoX2xvZyBfX3JlYWRfbW9zdGx5O1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYy05NC1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6OTU6c3RhdGljIERFRklORV9TUElOTE9DSyh0Y3BfbWV0cmljc19sb2NrKTtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTYtc3RhdGljIERFRklORV9TRVFMT0NLKGZhc3RvcGVuX3NlcWxvY2spO1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYy05Ny1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6OTg6c3RhdGljIHZvaWQgdGNwbV9zdWNrX2RzdChzdHJ1Y3QgdGNwX21ldHJpY3NfYmxvY2sgKnRtLFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy05OS1cdFx0XHQgIGNvbnN0IHN0cnVjdCBkc3RfZW50cnkgKmRzdCxcbi0tXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTE0NC1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6MTQ1OnN0YXRpYyB2b2lkIHRjcG1fY2hlY2tfc3RhbXAoc3RydWN0IHRjcF9tZXRyaWNzX2Jsb2NrICp0bSxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMTQ2LVx0XHRcdCAgICAgY29uc3Qgc3RydWN0IGRzdF9lbnRyeSAqZHN0KVxuLS1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMTU3LSNkZWZpbmUgVENQX01FVFJJQ1NfUkVDTEFJTV9ERVBUSFx0NVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzoxNTg6I2RlZmluZSBUQ1BfTUVUUklDU19SRUNMQUlNX1BUUlx0XHQoc3RydWN0IHRjcF9tZXRyaWNzX2Jsb2NrICopIDB4MVVMXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTE1OS1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMTYwLSNkZWZpbmUgZGVyZWZfbG9ja2VkKHApXHRcXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzoxNjE6XHRyY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKHAsIGxvY2tkZXBfaXNfaGVsZChcdTAwMjZ0Y3BfbWV0cmljc19sb2NrKSlcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMTYyLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzoxNjM6c3RhdGljIHN0cnVjdCB0Y3BfbWV0cmljc19ibG9jayAqdGNwbV9uZXcoc3RydWN0IGRzdF9lbnRyeSAqZHN0LFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0xNjQtXHRcdFx0XHRcdCAgc3RydWN0IGluZXRwZWVyX2FkZHIgKnNhZGRyLFxuLS1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMTY3LXtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6MTY4Olx0c3RydWN0IHRjcF9tZXRyaWNzX2Jsb2NrICp0bTtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMTY5LVx0Ym9vbCByZWNsYWltID0gZmFsc2U7XG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0xNzEtXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjE3MjpcdHNwaW5fbG9ja19iaChcdTAwMjZ0Y3BfbWV0cmljc19sb2NrKTtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMTczLVx0bmV0ID0gZHN0X2Rldl9uZXRfcmN1KGRzdCk7XG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0xODgtXHRpZiAodW5saWtlbHkocmVjbGFpbSkpIHtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6MTg5Olx0XHRzdHJ1Y3QgdGNwX21ldHJpY3NfYmxvY2sgKm9sZGVzdDtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMTkwLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzoxOTE6XHRcdG9sZGVzdCA9IGRlcmVmX2xvY2tlZCh0Y3BfbWV0cmljc19oYXNoW2hhc2hdLmNoYWluKTtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMTkyLVx0XHRmb3IgKHRtID0gZGVyZWZfbG9ja2VkKG9sZGVzdC1cdTAwM2V0Y3BtX25leHQpOyB0bTtcbi0tXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTIxMi1cdGlmIChsaWtlbHkoIXJlY2xhaW0pKSB7XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjIxMzpcdFx0dG0tXHUwMDNldGNwbV9uZXh0ID0gdGNwX21ldHJpY3NfaGFzaFtoYXNoXS5jaGFpbjtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6MjE0Olx0XHRyY3VfYXNzaWduX3BvaW50ZXIodGNwX21ldHJpY3NfaGFzaFtoYXNoXS5jaGFpbiwgdG0pO1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0yMTUtXHR9XG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0yMTctb3V0X3VubG9jazpcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6MjE4Olx0c3Bpbl91bmxvY2tfYmgoXHUwMDI2dGNwX21ldHJpY3NfbG9jayk7XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTIxOS1cdHJldHVybiB0bTtcbi0tXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTIyMS1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6MjIyOnN0YXRpYyBzdHJ1Y3QgdGNwX21ldHJpY3NfYmxvY2sgKnRjcF9nZXRfZW5jb2RlKHN0cnVjdCB0Y3BfbWV0cmljc19ibG9jayAqdG0sIGludCBkZXB0aClcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMjIzLXtcbi0tXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTIzMC1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6MjMxOnN0YXRpYyBzdHJ1Y3QgdGNwX21ldHJpY3NfYmxvY2sgKl9fdGNwX2dldF9tZXRyaWNzKGNvbnN0IHN0cnVjdCBpbmV0cGVlcl9hZGRyICpzYWRkcixcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMjMyLVx0XHRcdFx0XHRcdCAgIGNvbnN0IHN0cnVjdCBpbmV0cGVlcl9hZGRyICpkYWRkcixcbi0tXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTIzNC17XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjIzNTpcdHN0cnVjdCB0Y3BfbWV0cmljc19ibG9jayAqdG07XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTIzNi1cdGludCBkZXB0aCA9IDA7XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTIzNy1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6MjM4Olx0Zm9yICh0bSA9IHJjdV9kZXJlZmVyZW5jZSh0Y3BfbWV0cmljc19oYXNoW2hhc2hdLmNoYWluKTsgdG07XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTIzOS1cdCAgICAgdG0gPSByY3VfZGVyZWZlcmVuY2UodG0tXHUwMDNldGNwbV9uZXh0KSkge1xuLS1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMjQ4LVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzoyNDk6c3RhdGljIHN0cnVjdCB0Y3BfbWV0cmljc19ibG9jayAqX190Y3BfZ2V0X21ldHJpY3NfcmVxKHN0cnVjdCByZXF1ZXN0X3NvY2sgKnJlcSxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMjUwLVx0XHRcdFx0XHRcdCAgICAgICBzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QpXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTI1MS17XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjI1MjpcdHN0cnVjdCB0Y3BfbWV0cmljc19ibG9jayAqdG07XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTI1My1cdHN0cnVjdCBpbmV0cGVlcl9hZGRyIHNhZGRyLCBkYWRkcjtcbi0tXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTI3Ny1cdGhhc2ggXj0gbmV0X2hhc2hfbWl4KG5ldCk7XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjI3ODpcdGhhc2ggPSBoYXNoXzMyKGhhc2gsIHRjcF9tZXRyaWNzX2hhc2hfbG9nKTtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMjc5LVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzoyODA6XHRmb3IgKHRtID0gcmN1X2RlcmVmZXJlbmNlKHRjcF9tZXRyaWNzX2hhc2hbaGFzaF0uY2hhaW4pOyB0bTtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMjgxLVx0ICAgICB0bSA9IHJjdV9kZXJlZmVyZW5jZSh0bS1cdTAwM2V0Y3BtX25leHQpKSB7XG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0yOTAtXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjI5MTpzdGF0aWMgc3RydWN0IHRjcF9tZXRyaWNzX2Jsb2NrICp0Y3BfZ2V0X21ldHJpY3Moc3RydWN0IHNvY2sgKnNrLFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0yOTItXHRcdFx0XHRcdFx0IHN0cnVjdCBkc3RfZW50cnkgKmRzdCxcbi0tXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTI5NC17XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjI5NTpcdHN0cnVjdCB0Y3BfbWV0cmljc19ibG9jayAqdG07XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTI5Ni1cdHN0cnVjdCBpbmV0cGVlcl9hZGRyIHNhZGRyLCBkYWRkcjtcbi0tXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTMyMi1cdGhhc2ggXj0gbmV0X2hhc2hfbWl4KG5ldCk7XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjMyMzpcdGhhc2ggPSBoYXNoXzMyKGhhc2gsIHRjcF9tZXRyaWNzX2hhc2hfbG9nKTtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMzI0LVxuLS1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM9MzQwPXZvaWQgdGNwX3VwZGF0ZV9tZXRyaWNzKHN0cnVjdCBzb2NrICpzaylcbi0tXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTM0NS1cdHN0cnVjdCBuZXQgKm5ldCA9IHNvY2tfbmV0KHNrKTtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6MzQ2Olx0c3RydWN0IHRjcF9tZXRyaWNzX2Jsb2NrICp0bTtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMzQ3LVx0dW5zaWduZWQgbG9uZyBydHQ7XG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYz00NjQ9dm9pZCB0Y3BfaW5pdF9tZXRyaWNzKHN0cnVjdCBzb2NrICpzaylcbi0tXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTQ2OC1cdHN0cnVjdCBuZXQgKm5ldCA9IHNvY2tfbmV0KHNrKTtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6NDY5Olx0c3RydWN0IHRjcF9tZXRyaWNzX2Jsb2NrICp0bTtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNDcwLVx0dTMyIHZhbCwgY3J0dCA9IDA7IC8qIGNhY2hlZCBSVFQgc2NhbGVkIGJ5IDggKi9cbi0tXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jPTU0Mj1ib29sIHRjcF9wZWVyX2lzX3Byb3ZlbihzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEsIHN0cnVjdCBkc3RfZW50cnkgKmRzdClcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNTQzLXtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6NTQ0Olx0c3RydWN0IHRjcF9tZXRyaWNzX2Jsb2NrICp0bTtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNTQ1LVx0Ym9vbCByZXQ7XG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYz01NjE9dm9pZCB0Y3BfZmFzdG9wZW5fY2FjaGVfZ2V0KHN0cnVjdCBzb2NrICpzaywgdTE2ICptc3MsXG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy01NjMte1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo1NjQ6XHRzdHJ1Y3QgdGNwX21ldHJpY3NfYmxvY2sgKnRtO1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYy01NjUtXG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYz01ODQ9dm9pZCB0Y3BfZmFzdG9wZW5fY2FjaGVfc2V0KHN0cnVjdCBzb2NrICpzaywgdTE2IG1zcyxcbi0tXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTU4OC1cdHN0cnVjdCBkc3RfZW50cnkgKmRzdCA9IF9fc2tfZHN0X2dldChzayk7XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjU4OTpcdHN0cnVjdCB0Y3BfbWV0cmljc19ibG9jayAqdG07XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTU5MC1cbi0tXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTYxNS1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6NjE2OnN0YXRpYyBzdHJ1Y3QgZ2VubF9mYW1pbHkgdGNwX21ldHJpY3NfbmxfZmFtaWx5O1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYy02MTctXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjYxODpzdGF0aWMgY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgdGNwX21ldHJpY3NfbmxfcG9saWN5W1RDUF9NRVRSSUNTX0FUVFJfTUFYICYjNDM7IDFdID0ge1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYy02MTktXHRbVENQX01FVFJJQ1NfQVRUUl9BRERSX0lQVjRdXHQ9IHsgLnR5cGUgPSBOTEFfVTMyLCB9LFxuLS1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNjQzLS8qIEFkZCBhdHRyaWJ1dGVzLCBjYWxsZXIgY2FuY2VscyBpdHMgaGVhZGVyIG9uIGZhaWx1cmUgKi9cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6NjQ0OnN0YXRpYyBpbnQgdGNwX21ldHJpY3NfZmlsbF9pbmZvKHN0cnVjdCBza19idWZmICptc2csXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjY0NTpcdFx0XHRcdCBzdHJ1Y3QgdGNwX21ldHJpY3NfYmxvY2sgKnRtKVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy02NDYte1xuLS1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNzQzLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo3NDQ6c3RhdGljIGludCB0Y3BfbWV0cmljc19kdW1wX2luZm8oc3RydWN0IHNrX2J1ZmYgKnNrYixcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNzQ1LVx0XHRcdFx0IHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYixcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6NzQ2Olx0XHRcdFx0IHN0cnVjdCB0Y3BfbWV0cmljc19ibG9jayAqdG0pXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTc0Ny17XG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy03NTAtXHRoZHIgPSBnZW5sbXNnX3B1dChza2IsIE5FVExJTktfQ0IoY2ItXHUwMDNlc2tiKS5wb3J0aWQsIGNiLVx1MDAzZW5saC1cdTAwM2VubG1zZ19zZXEsXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjc1MTpcdFx0XHQgIFx1MDAyNnRjcF9tZXRyaWNzX25sX2ZhbWlseSwgTkxNX0ZfTVVMVEksXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTc1Mi1cdFx0XHQgIFRDUF9NRVRSSUNTX0NNRF9HRVQpO1xuLS1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNzU1LVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo3NTY6XHRpZiAodGNwX21ldHJpY3NfZmlsbF9pbmZvKHNrYiwgdG0pIFx1MDAzYyAwKVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy03NTctXHRcdGdvdG8gbmxhX3B1dF9mYWlsdXJlO1xuLS1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNzY2LVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo3Njc6c3RhdGljIGludCB0Y3BfbWV0cmljc19ubF9kdW1wKHN0cnVjdCBza19idWZmICpza2IsXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTc2OC1cdFx0XHQgICAgICAgc3RydWN0IG5ldGxpbmtfY2FsbGJhY2sgKmNiKVxuLS1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNzcwLVx0c3RydWN0IG5ldCAqbmV0ID0gc29ja19uZXQoc2tiLVx1MDAzZXNrKTtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6NzcxOlx0dW5zaWduZWQgaW50IG1heF9yb3dzID0gMVUgXHUwMDNjXHUwMDNjIHRjcF9tZXRyaWNzX2hhc2hfbG9nO1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYy03NzItXHR1bnNpZ25lZCBpbnQgcm93LCBzX3JvdyA9IGNiLVx1MDAzZWFyZ3NbMF07XG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy03NzYtXHRmb3IgKHJvdyA9IHNfcm93OyByb3cgXHUwMDNjIG1heF9yb3dzOyByb3cmIzQzOyYjNDM7LCBzX2NvbCA9IDApIHtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6Nzc3Olx0XHRzdHJ1Y3QgdGNwX21ldHJpY3NfYmxvY2sgKnRtO1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo3Nzg6XHRcdHN0cnVjdCB0Y3BtX2hhc2hfYnVja2V0ICpoYiA9IHRjcF9tZXRyaWNzX2hhc2ggJiM0Mzsgcm93O1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYy03NzktXG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy03ODYtXHRcdFx0XHRjb250aW51ZTtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6Nzg3Olx0XHRcdHJlcyA9IHRjcF9tZXRyaWNzX2R1bXBfaW5mbyhza2IsIGNiLCB0bSk7XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTc4OC1cdFx0XHRpZiAocmVzIFx1MDAzYyAwKSB7XG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYz04MzU9c3RhdGljIGludCBwYXJzZV9ubF9zYWRkcihzdHJ1Y3QgZ2VubF9pbmZvICppbmZvLCBzdHJ1Y3QgaW5ldHBlZXJfYWRkciAqYWRkcilcbi0tXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTg0MS1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6ODQyOnN0YXRpYyBpbnQgdGNwX21ldHJpY3NfbmxfY21kX2dldChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy04NDMte1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo4NDQ6XHRzdHJ1Y3QgdGNwX21ldHJpY3NfYmxvY2sgKnRtO1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYy04NDUtXHRzdHJ1Y3QgaW5ldHBlZXJfYWRkciBzYWRkciwgZGFkZHI7XG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy04NjQtXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjg2NTpcdHJlcGx5ID0gZ2VubG1zZ19wdXRfcmVwbHkobXNnLCBpbmZvLCBcdTAwMjZ0Y3BfbWV0cmljc19ubF9mYW1pbHksIDAsXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTg2Ni1cdFx0XHRcdCAgaW5mby1cdTAwM2VnZW5saGRyLVx1MDAzZWNtZCk7XG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy04NzAtXHRoYXNoIF49IG5ldF9oYXNoX21peChuZXQpO1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo4NzE6XHRoYXNoID0gaGFzaF8zMihoYXNoLCB0Y3BfbWV0cmljc19oYXNoX2xvZyk7XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTg3Mi1cdHJldCA9IC1FU1JDSDtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtODczLVx0cmN1X3JlYWRfbG9jaygpO1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo4NzQ6XHRmb3IgKHRtID0gcmN1X2RlcmVmZXJlbmNlKHRjcF9tZXRyaWNzX2hhc2hbaGFzaF0uY2hhaW4pOyB0bTtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtODc1LVx0ICAgICB0bSA9IHJjdV9kZXJlZmVyZW5jZSh0bS1cdTAwM2V0Y3BtX25leHQpKSB7XG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy04NzgtXHRcdCAgICBuZXRfZXEodG1fbmV0KHRtKSwgbmV0KSkge1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo4Nzk6XHRcdFx0cmV0ID0gdGNwX21ldHJpY3NfZmlsbF9pbmZvKG1zZywgdG0pO1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYy04ODAtXHRcdFx0YnJlYWs7XG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy04OTctXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjg5ODpzdGF0aWMgdm9pZCB0Y3BfbWV0cmljc19mbHVzaF9hbGwoc3RydWN0IG5ldCAqbmV0KVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy04OTkte1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo5MDA6XHR1bnNpZ25lZCBpbnQgbWF4X3Jvd3MgPSAxVSBcdTAwM2NcdTAwM2MgdGNwX21ldHJpY3NfaGFzaF9sb2c7XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjkwMTpcdHN0cnVjdCB0Y3BtX2hhc2hfYnVja2V0ICpoYiA9IHRjcF9tZXRyaWNzX2hhc2g7XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjkwMjpcdHN0cnVjdCB0Y3BfbWV0cmljc19ibG9jayAqdG07XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTkwMy1cdHVuc2lnbmVkIGludCByb3c7XG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy05MDUtXHRmb3IgKHJvdyA9IDA7IHJvdyBcdTAwM2MgbWF4X3Jvd3M7IHJvdyYjNDM7JiM0MzssIGhiJiM0MzsmIzQzOykge1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo5MDY6XHRcdHN0cnVjdCB0Y3BfbWV0cmljc19ibG9jayBfX3JjdSAqKnBwID0gXHUwMDI2aGItXHUwMDNlY2hhaW47XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTkwNy1cdFx0Ym9vbCBtYXRjaDtcbi0tXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTkxMS1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6OTEyOlx0XHRzcGluX2xvY2tfYmgoXHUwMDI2dGNwX21ldHJpY3NfbG9jayk7XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTkxMy1cdFx0Zm9yICh0bSA9IGRlcmVmX2xvY2tlZCgqcHApOyB0bTsgdG0gPSBkZXJlZl9sb2NrZWQoKnBwKSkge1xuLS1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTIyLVx0XHR9XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjkyMzpcdFx0c3Bpbl91bmxvY2tfYmgoXHUwMDI2dGNwX21ldHJpY3NfbG9jayk7XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTkyNC1cdFx0Y29uZF9yZXNjaGVkKCk7XG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy05MjctXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjkyODpzdGF0aWMgaW50IHRjcF9tZXRyaWNzX25sX2NtZF9kZWwoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTI5LXtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTMwLVx0c3RydWN0IHRjcG1faGFzaF9idWNrZXQgKmhiO1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo5MzE6XHRzdHJ1Y3QgdGNwX21ldHJpY3NfYmxvY2sgKnRtO1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo5MzI6XHRzdHJ1Y3QgdGNwX21ldHJpY3NfYmxvY2sgX19yY3UgKipwcDtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTMzLVx0c3RydWN0IGluZXRwZWVyX2FkZHIgc2FkZHIsIGRhZGRyO1xuLS1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTQyLVx0aWYgKHJldCBcdTAwM2UgMCkge1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo5NDM6XHRcdHRjcF9tZXRyaWNzX2ZsdXNoX2FsbChuZXQpO1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYy05NDQtXHRcdHJldHVybiAwO1xuLS1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTUwLVx0aGFzaCBePSBuZXRfaGFzaF9taXgobmV0KTtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6OTUxOlx0aGFzaCA9IGhhc2hfMzIoaGFzaCwgdGNwX21ldHJpY3NfaGFzaF9sb2cpO1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo5NTI6XHRoYiA9IHRjcF9tZXRyaWNzX2hhc2ggJiM0MzsgaGFzaDtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTUzLVx0cHAgPSBcdTAwMjZoYi1cdTAwM2VjaGFpbjtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6OTU0Olx0c3Bpbl9sb2NrX2JoKFx1MDAyNnRjcF9tZXRyaWNzX2xvY2spO1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYy05NTUtXHRmb3IgKHRtID0gZGVyZWZfbG9ja2VkKCpwcCk7IHRtOyB0bSA9IGRlcmVmX2xvY2tlZCgqcHApKSB7XG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy05NjUtXHR9XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjk2NjpcdHNwaW5fdW5sb2NrX2JoKFx1MDAyNnRjcF9tZXRyaWNzX2xvY2spO1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYy05NjctXHRpZiAoIWZvdW5kKVxuLS1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTcxLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo5NzI6c3RhdGljIGNvbnN0IHN0cnVjdCBnZW5sX3NtYWxsX29wcyB0Y3BfbWV0cmljc19ubF9vcHNbXSA9IHtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTczLVx0e1xuLS1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTc1LVx0XHQudmFsaWRhdGUgPSBHRU5MX0RPTlRfVkFMSURBVEVfU1RSSUNUIHwgR0VOTF9ET05UX1ZBTElEQVRFX0RVTVAsXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjk3NjpcdFx0LmRvaXQgPSB0Y3BfbWV0cmljc19ubF9jbWRfZ2V0LFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo5Nzc6XHRcdC5kdW1waXQgPSB0Y3BfbWV0cmljc19ubF9kdW1wLFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy05NzgtXHR9LFxuLS1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTgxLVx0XHQudmFsaWRhdGUgPSBHRU5MX0RPTlRfVkFMSURBVEVfU1RSSUNUIHwgR0VOTF9ET05UX1ZBTElEQVRFX0RVTVAsXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjk4MjpcdFx0LmRvaXQgPSB0Y3BfbWV0cmljc19ubF9jbWRfZGVsLFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy05ODMtXHRcdC5mbGFncyA9IEdFTkxfQURNSU5fUEVSTSxcbi0tXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTk4Ni1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6OTg3OnN0YXRpYyBzdHJ1Y3QgZ2VubF9mYW1pbHkgdGNwX21ldHJpY3NfbmxfZmFtaWx5IF9fcm9fYWZ0ZXJfaW5pdCA9IHtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTg4LVx0LmhkcnNpemVcdD0gMCxcbi0tXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTk5MS1cdC5tYXhhdHRyXHQ9IFRDUF9NRVRSSUNTX0FUVFJfTUFYLFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo5OTI6XHQucG9saWN5ID0gdGNwX21ldHJpY3NfbmxfcG9saWN5LFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy05OTMtXHQubmV0bnNva1x0PSB0cnVlLFxuLS1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTk1LVx0Lm1vZHVsZVx0XHQ9IFRISVNfTU9EVUxFLFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo5OTY6XHQuc21hbGxfb3BzXHQ9IHRjcF9tZXRyaWNzX25sX29wcyxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6OTk3Olx0Lm5fc21hbGxfb3BzXHQ9IEFSUkFZX1NJWkUodGNwX21ldHJpY3Nfbmxfb3BzKSxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTk4LVx0LnJlc3Zfc3RhcnRfb3BcdD0gVENQX01FVFJJQ1NfQ01EX0RFTCAmIzQzOyAxLFxuLS1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM9MTAxNT1fX3NldHVwKFwmIzM0O3RjcG1oYXNoX2VudHJpZXM9XCYjMzQ7LCBzZXRfdGNwbWhhc2hfZW50cmllcyk7XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTEwMTYtXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjEwMTc6c3RhdGljIHZvaWQgX19pbml0IHRjcF9tZXRyaWNzX2hhc2hfYWxsb2Modm9pZClcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMTAxOC17XG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0xMDI4LVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzoxMDI5Olx0dGNwX21ldHJpY3NfaGFzaF9sb2cgPSBvcmRlcl9iYXNlXzIoc2xvdHMpO1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYzoxMDMwOlx0c2l6ZSA9IHNpemVvZihzdHJ1Y3QgdGNwbV9oYXNoX2J1Y2tldCkgXHUwMDNjXHUwMDNjIHRjcF9tZXRyaWNzX2hhc2hfbG9nO1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0xMDMxLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzoxMDMyOlx0dGNwX21ldHJpY3NfaGFzaCA9IGt2emFsbG9jKHNpemUsIEdGUF9LRVJORUwpO1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYzoxMDMzOlx0aWYgKCF0Y3BfbWV0cmljc19oYXNoKVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzoxMDM0Olx0XHRwYW5pYyhcJiMzNDtDb3VsZCBub3QgYWxsb2NhdGUgdGhlIHRjcF9tZXRyaWNzIGhhc2ggdGFibGVcXG5cJiMzNDspO1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0xMDM1LX1cbi0tXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jPTEwMzc9c3RhdGljIHZvaWQgX19uZXRfZXhpdCB0Y3BfbmV0X21ldHJpY3NfZXhpdF9iYXRjaChzdHJ1Y3QgbGlzdF9oZWFkICpuZXRfZXhpdF9saXN0KVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0xMDM4LXtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6MTAzOTpcdHRjcF9tZXRyaWNzX2ZsdXNoX2FsbChOVUxMKTtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMTA0MC19XG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYz0xMDQyPXN0YXRpYyBfX25ldF9pbml0ZGF0YSBzdHJ1Y3QgcGVybmV0X29wZXJhdGlvbnMgdGNwX25ldF9tZXRyaWNzX29wcyA9IHtcbi0tXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTEwNDUtXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjEwNDY6dm9pZCBfX2luaXQgdGNwX21ldHJpY3NfaW5pdCh2b2lkKVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0xMDQ3LXtcbi0tXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTEwNDktXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjEwNTA6XHR0Y3BfbWV0cmljc19oYXNoX2FsbG9jKCk7XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTEwNTEtXG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0xMDU1LVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzoxMDU2Olx0cmV0ID0gZ2VubF9yZWdpc3Rlcl9mYW1pbHkoXHUwMDI2dGNwX21ldHJpY3NfbmxfZmFtaWx5KTtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMTA1Ny1cdGlmIChyZXQgXHUwMDNjIDApXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjEwNTg6XHRcdHBhbmljKFwmIzM0O0NvdWxkIG5vdCByZWdpc3RlciB0Y3BfbWV0cmljcyBnZW5lcmljIG5ldGxpbmtcXG5cJiMzNDspO1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0xMDU5LX1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMyAwMToxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuOC1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMTAzMAoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDU1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHN1bW1hcnksIGFzIHRob3VnaCBJJiMzOTttIHRoaW5raW5nIHRocm91Z2ggdGhpcyBwcm9jZXNzOgoKKipEaXZpbmcgaW50byBgdGNwX21ldHJpY3NfbmxfcG9saWN5YCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYHRjcF9tZXRyaWNzX25sX3BvbGljeWAgd2l0aGluIGBuZXQvaXB2NC90Y3BfbWV0cmljcy5jYC4gVGhlIGZhY3QgdGhhdCBpdCYjMzk7cyBoYXJkY29kZWQgQyBjb2RlIGltbWVkaWF0ZWx5IG1ha2VzIG1lIHRoaW5rIGFib3V0IHBvdGVudGlhbCByaWdpZGl0eSBhbmQgbWFpbnRlbmFuY2UgaGVhZGFjaGVzIGRvd24gdGhlIGxpbmUsIGJ1dCBsZXQmIzM5O3Mgbm90IGp1bXAgdG8gY29uY2x1c2lvbnMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgaXQmIzM5O3MgKmRvaW5nKi4KCkkmIzM5O2xsIGp1bXAgc3RyYWlnaHQgaW50byB0aGUgY29kZS4gU3BlY2lmaWNhbGx5LCBsZXQmIzM5O3MgemVybyBpbiBvbiBsaW5lcyA2MTUgdGhyb3VnaCA2NDUuIFRoYXQmIzM5O3MgdXN1YWxseSBhIGdvb2QgY2h1bmsgdG8gZXhhbWluZSBmb3IgdW5kZXJzdGFuZGluZyBpdHMgY29yZSBmdW5jdGlvbi4gSSYjMzk7bGwgYmUgbG9va2luZyBmb3IgdGhpbmdzIGxpa2U6CgoqICAgV2hhdCBkYXRhIHN0cnVjdHVyZXMgYXJlIGJlaW5nIHVzZWQ/CiogICBXaGF0IGxvZ2ljIGlzIGltcGxlbWVudGVkIGluIHRoaXMgc2VjdGlvbiBvZiBjb2RlPwoqICAgSXMgdGhlcmUgYSB3YXkgZm9yIHRoZSBwb2xpY3kgdG8gYmUgZWFzaWx5IGNvbmZpZ3VyZWQgKGUuZy4gdGhyb3VnaCB0aGUgbmV0d29yayBsYXllcik/IE9yLCBhbSBJIGxvb2tpbmcgYXQgYSAmIzM0O2Jha2VkIGluJiMzNDsgc2V0IG9mIHJ1bGVzPwoqICAgQXJlIHRoZXJlIGFueSBkZXBlbmRlbmNpZXMgb24gb3RoZXIgcGFydHMgb2YgdGhlIGtlcm5lbCwgb3IgZXh0ZXJuYWwgbGlicmFyaWVzPwoqICAgSG93IGlzIHRoZSBwb2xpY3kgYXBwbGllZCAoZS5nLiwgYXQgd2hhdCBwb2ludCBpbiB0aGUgVENQIHN0YWNrIGRvZXMgaXQgdGFrZSBlZmZlY3QpPwoqICAgV2hhdCBpcyBpdHMgcHVycG9zZT8gKHRoaXMgaXMga2V5LCBzaW5jZSB0aGVyZSBpcyBwcm9iYWJseSBhIGNvbW1lbnQgb3IgZG9jdW1lbnRhdGlvbiBzb21ld2hlcmUpCgpUaGlzIGluZm9ybWF0aW9uIHdpbGwgY2xhcmlmeSBpZiB0aGlzIHBvbGljeSBpcyBzb21ldGhpbmcgdGhhdCBJIG5lZWQgdG8gYmUgYXdhcmUgb2YgaWYgSSBwbGFuIHRvIG1ha2UgYWRqdXN0bWVudHMgdG8gbmV0d29ya2luZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMyAwMToxMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O25ldC9pcHY0L3RjcF9tZXRyaWNzLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiA2MTUsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMzUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDYxNTpcdFxuIDYxNjpcdHN0YXRpYyBzdHJ1Y3QgZ2VubF9mYW1pbHkgdGNwX21ldHJpY3NfbmxfZmFtaWx5O1xuIDYxNzpcdFxuIDYxODpcdHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSB0Y3BfbWV0cmljc19ubF9wb2xpY3lbVENQX01FVFJJQ1NfQVRUUl9NQVggJiM0MzsgMV0gPSB7XG4gNjE5Olx0XHRbVENQX01FVFJJQ1NfQVRUUl9BRERSX0lQVjRdXHQ9IHsgLnR5cGUgPSBOTEFfVTMyLCB9LFxuIDYyMDpcdFx0W1RDUF9NRVRSSUNTX0FUVFJfQUREUl9JUFY2XVx0PVxuIDYyMTpcdFx0XHROTEFfUE9MSUNZX0VYQUNUX0xFTihzaXplb2Yoc3RydWN0IGluNl9hZGRyKSksXG4gNjIyOlx0XG4gNjIzOlx0XHRbVENQX01FVFJJQ1NfQVRUUl9TQUREUl9JUFY0XVx0PSB7IC50eXBlID0gTkxBX1UzMiwgfSxcbiA2MjQ6XHRcdFtUQ1BfTUVUUklDU19BVFRSX1NBRERSX0lQVjZdXHQ9XG4gNjI1Olx0XHRcdE5MQV9QT0xJQ1lfRVhBQ1RfTEVOKHNpemVvZihzdHJ1Y3QgaW42X2FkZHIpKSxcbiA2MjY6XHRcbiA2Mjc6XHRcdC8qIEZvbGxvd2luZyBhdHRyaWJ1dGVzIGFyZSBub3QgcmVjZWl2ZWQgZm9yIEdFVC9ERUwsXG4gNjI4Olx0XHQgKiB3ZSBrZWVwIHRoZW0gZm9yIHJlZmVyZW5jZVxuIDYyOTpcdFx0ICovXG4gNjMwOlx0I2lmIDBcbiA2MzE6XHRcdFtUQ1BfTUVUUklDU19BVFRSX0FHRV1cdFx0PSB7IC50eXBlID0gTkxBX01TRUNTLCB9LFxuIDYzMjpcdFx0W1RDUF9NRVRSSUNTX0FUVFJfVFdfVFNWQUxdXHQ9IHsgLnR5cGUgPSBOTEFfVTMyLCB9LFxuIDYzMzpcdFx0W1RDUF9NRVRSSUNTX0FUVFJfVFdfVFNfU1RBTVBdXHQ9IHsgLnR5cGUgPSBOTEFfUzMyLCB9LFxuIDYzNDpcdFx0W1RDUF9NRVRSSUNTX0FUVFJfVkFMU11cdFx0PSB7IC50eXBlID0gTkxBX05FU1RFRCwgfSxcbiA2MzU6XHRcdFtUQ1BfTUVUUklDU19BVFRSX0ZPUEVOX01TU11cdD0geyAudHlwZSA9IE5MQV9VMTYsIH0sXG4gNjM2Olx0XHRbVENQX01FVFJJQ1NfQVRUUl9GT1BFTl9TWU5fRFJPUFNdXHQ9IHsgLnR5cGUgPSBOTEFfVTE2LCB9LFxuIDYzNzpcdFx0W1RDUF9NRVRSSUNTX0FUVFJfRk9QRU5fU1lOX0RST1BfVFNdXHQ9IHsgLnR5cGUgPSBOTEFfTVNFQ1MsIH0sXG4gNjM4Olx0XHRbVENQX01FVFJJQ1NfQVRUUl9GT1BFTl9DT09LSUVdXHQ9IHsgLnR5cGUgPSBOTEFfQklOQVJZLFxuIDYzOTpcdFx0XHRcdFx0XHQgICAgLmxlbiA9IFRDUF9GQVNUT1BFTl9DT09LSUVfTUFYLCB9LFxuIDY0MDpcdCNlbmRpZlxuIDY0MTpcdH07XG4gNjQyOlx0XG4gNjQzOlx0LyogQWRkIGF0dHJpYnV0ZXMsIGNhbGxlciBjYW5jZWxzIGl0cyBoZWFkZXIgb24gZmFpbHVyZSAqL1xuIDY0NDpcdHN0YXRpYyBpbnQgdGNwX21ldHJpY3NfZmlsbF9pbmZvKHN0cnVjdCBza19idWZmICptc2csXG4gNjQ1Olx0XHRcdFx0XHQgc3RydWN0IHRjcF9tZXRyaWNzX2Jsb2NrICp0bSlcbiA2NDY6XHR7XG4gNjQ3Olx0XHRzdHJ1Y3QgbmxhdHRyICpuZXN0O1xuIDY0ODpcdFx0aW50IGk7XG4gNjQ5Olx0XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTMgMDE6MTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjgtZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTIxNjAKCQkJCQkJCW91dHB1dDogMTkKCQkJCQkJCXRob3VnaHRzOiA2OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipJbml0aWFsIEFzc2Vzc21lbnQgb2YgYSBGb2N1c2VkIENvbW1pdCoqCgpPa2F5LCBzbyBJJiMzOTttIHNlZWluZyBzb21ldGhpbmcgaW50ZXJlc3RpbmcgaGVyZS4gSXQgbG9va3MgbGlrZSB0aGUgb25seSBmaWxlIHRvdWNoZWQgaW4gdGhpcyBjb21taXQgaXMgYERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy90Y3BfbWV0cmljcy55YW1sYC4gVGhhdCYjMzk7cyBhIHByZXR0eSBmb2N1c2VkIGNoYW5nZSwgd2hpY2ggaW1tZWRpYXRlbHkgZ3JhYnMgbXkgYXR0ZW50aW9uLiBUaGlzIHN1Z2dlc3RzIGEgdmVyeSBzcGVjaWZpYyBtb2RpZmljYXRpb24sIGxpa2VseSBhIGRvY3VtZW50YXRpb24gdXBkYXRlIG9yIGEgY2hhbmdlIHJlbGF0ZWQgc3BlY2lmaWNhbGx5IHRvIFRDUCBtZXRyaWNzLgoKTXkgZmlyc3QgdGhvdWdodCBpcyB0byBkaXZlIGludG8gdGhlIHNwZWNpZmljcy4gSSYjMzk7bSBnb2luZyB0byBwdWxsIHVwIGBnaXQgbG9nIC0xYCB0byB1bmRlcnN0YW5kIHRoZSBjb21taXQgbWVzc2FnZSBhbmQgZ2V0IGEgcXVpY2sgb3ZlcnZpZXcsIG9yIEkmIzM5O2xsIHJ1biB0aGUgZGlmZiB0byBzZWUgZXhhY3RseSB3aGF0JiMzOTtzIGNoYW5nZWQuIFNlZWluZyB0aGUgKndoeSogb2YgdGhlIGNoYW5nZSBpcyBjcnVjaWFsIGF0IHRoaXMgcG9pbnQuCgpUaGVuLCBqdXN0IHRvIGJlIHRob3JvdWdoIGFuZCB0byB1bmRlcnN0YW5kIGlmIHRoaXMgY2hhbmdlIGhhcyBpbXBsaWNhdGlvbnMgZWxzZXdoZXJlLCBJIG5lZWQgdG8gc2VlIHRoZSBjb250ZXh0IG9mIHRoaXMgZmlsZS4gTGV0JiMzOTtzIGZpcmUgdXAgYGdyZXBwZXJgIGFuZCBzZWFyY2ggZm9yIHRoYXQgZmlsZW5hbWUsIGB0Y3BfbWV0cmljcy55YW1sYCwgYWNyb3NzIHRoZSAqZW50aXJlKiBrZXJuZWwgc291cmNlLiBJIHdhbnQgdG8gc2VlIGhvdyB0aGlzIFlBTUwgZmlsZSBpcyByZWZlcmVuY2VkLCB1dGlsaXplZCwgYW5kIHBvdGVudGlhbGx5IGltcGFjdGVkIGJ5IG90aGVyIHBhcnRzIG9mIHRoZSBzeXN0ZW0uIEkgbmVlZCB0byB1bmRlcnN0YW5kIGlmIHRoaXMgaXMgYSBzdGFuZGFsb25lIGRvY3VtZW50YXRpb24gcGllY2UsIG9yIGlmIGl0IHBsYXlzIGEgcm9sZSBpbiBzb21lIGJyb2FkZXIga2VybmVsIGZ1bmN0aW9uYWxpdHkuIFRoaXMgd2lsbCBwcm92aWRlIGEgY29tcHJlaGVuc2l2ZSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBjaGFuZ2VzJiMzOTsgc2lnbmlmaWNhbmNlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEzIDAxOjExPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dGNwX21ldHJpY3NcXC55YW1sJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMyAwMToxMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuOC1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMjUyMQoJCQkJCQkJb3V0cHV0OiAyMAoJCQkJCQkJdGhvdWdodHM6IDIxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoaXMgc2VhcmNoOgoKKipEaXZpbmcgaW50byBOZXRsaW5rIERvY3VtZW50YXRpb24qKgoKT2theSwgc28gSSBuZWVkIHRvIGZpbmQgc29tZSBzcGVjaWZpYyBOZXRsaW5rIGRvY3VtZW50YXRpb24sIGxpa2VseSByZWxhdGVkIHRvIHNwZWNpZmljYXRpb25zLiBNeSBpbml0aWFsIGFwcHJvYWNoIGlzIHRvIGdvIHN0cmFpZ2h0IHRvIHRoZSBzb3VyY2Ug4oCTIHRoZSBidWlsZCBzeXN0ZW0uIFNpbmNlIHRoaXMgaW52b2x2ZXMga2VybmVsLWxldmVsIHN0dWZmLCB0aGUgYE1ha2VmaWxlYCBzZWVtcyBsaWtlIHRoZSBtb3N0IGxvZ2ljYWwgcGxhY2UgdG8gYmVnaW4uIEl0JiMzOTtzIHRoZSBjZW50cmFsIGh1YiBmb3IgdGhlIGJ1aWxkIHByb2Nlc3MsIGFuZCBvZnRlbiBjb250YWlucyByZWZlcmVuY2VzIHRvIGRvY3VtZW50YXRpb24sIHBhcnRpY3VsYXJseSB3aGVuIGl0IGNvbWVzIHRvIGludGVybmFsIGludGVyZmFjZXMgbGlrZSBOZXRsaW5rLiBIb3dldmVyLCBJIHNob3VsZCBhbHNvIGNoZWNrIHRoZSBzY3JpcHRzIGFuZCB0b29scyB1c2VkIGluIHRoZSBidWlsZC4gRnJlcXVlbnRseSwgdGhlc2UgY29udGFpbiBlbWJlZGRlZCBkb2N1bWVudGF0aW9uIHJlZmVyZW5jZXMgb3IgZXZlbiBnZW5lcmF0ZSB0aGUgZG9jdW1lbnRhdGlvbi4gRXNzZW50aWFsbHksIEkgbmVlZCB0byBjaGVjayB0aGUgZW50aXJlIGJyZWFkdGggb2YgdGhlIGJ1aWxkIHN5c3RlbSB0byBnZXQgdGhlIG1vc3QgY29tcGxldGUgdmlldy4gTGV0JiMzOTtzIHN0YXJ0IHdpdGggYE1ha2VmaWxlYCBhbmQgdGhlbiBleHBhbmQgdGhlIHNlYXJjaC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTMgMDE6MTE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O0RvY3VtZW50YXRpb24vZ3B1L2RybS1yYXMucnN0PTYwPVlBTUwtYmFzZWQgSW50ZXJmYWNlXG4tLVxuRG9jdW1lbnRhdGlvbi9ncHUvZHJtLXJhcy5yc3QtNjItXG5Eb2N1bWVudGF0aW9uL2dwdS9kcm0tcmFzLnJzdDo2MzpUaGUgaW50ZXJmYWNlIGlzIGRlc2NyaWJlZCBpbiBhIFlBTUwgc3BlY2lmaWNhdGlvbiBgYERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9kcm1fcmFzLnlhbWxgYFxuRG9jdW1lbnRhdGlvbi9ncHUvZHJtLXJhcy5yc3QtNjQtXG4tLVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL211bHRpLXBmLW5ldGRldi5yc3Q9OTA9VGhlIHJlbGF0aW9uIGJldHdlZW4gUEYsIGlycSwgbmFwaSwgYW5kIHF1ZXVlIGNhbiBiZSBvYnNlcnZlZCB2aWEgbmV0bGluayBzcGVjOjpcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9tdWx0aS1wZi1uZXRkZXYucnN0LTkxLVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL211bHRpLXBmLW5ldGRldi5yc3Q6OTI6ICAkIC4vdG9vbHMvbmV0L3lubC9weXlubC9jbGkucHkgLS1zcGVjIERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9uZXRkZXYueWFtbCAtLWR1bXAgcXVldWUtZ2V0IC0tanNvbj0mIzM5O3tcJiMzNDtpZmluZGV4XCYjMzQ7OiAxM30mIzM5O1xuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL211bHRpLXBmLW5ldGRldi5yc3QtOTMtICBbeyYjMzk7aWQmIzM5OzogMCwgJiMzOTtpZmluZGV4JiMzOTs6IDEzLCAmIzM5O25hcGktaWQmIzM5OzogNTM5LCAmIzM5O3R5cGUmIzM5OzogJiMzOTtyeCYjMzk7fSxcbi0tXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbXVsdGktcGYtbmV0ZGV2LnJzdC0xMDMtXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbXVsdGktcGYtbmV0ZGV2LnJzdDoxMDQ6ICAkIC4vdG9vbHMvbmV0L3lubC9weXlubC9jbGkucHkgLS1zcGVjIERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9uZXRkZXYueWFtbCAtLWR1bXAgbmFwaS1nZXQgLS1qc29uPSYjMzk7e1wmIzM0O2lmaW5kZXhcJiMzNDs6IDEzfSYjMzk7XG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbXVsdGktcGYtbmV0ZGV2LnJzdC0xMDUtICBbeyYjMzk7aWQmIzM5OzogNTQzLCAmIzM5O2lmaW5kZXgmIzM5OzogMTMsICYjMzk7aXJxJiMzOTs6IDQyfSxcbi0tXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmFwaS5yc3Q9MjA1PXdpbGwgcmV2ZWFsIGVhY2ggcXVldWUmIzM5O3MgTkFQSSBJRCk6XG4tLVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25hcGkucnN0LTIwOS0gICAkIGtlcm5lbC1zb3VyY2UvdG9vbHMvbmV0L3lubC9weXlubC9jbGkucHkgXFxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uYXBpLnJzdDoyMTA6ICAgICAgICAgICAgIC0tc3BlYyBEb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvbmV0ZGV2LnlhbWwgXFxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uYXBpLnJzdC0yMTEtICAgICAgICAgICAgIC0tZHVtcCBxdWV1ZS1nZXQgXFxcbi0tXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmFwaS5yc3QtMjEzLVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25hcGkucnN0OjIxNDpTZWUgYGBEb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvbmV0ZGV2LnlhbWxgYCBmb3IgbW9yZSBkZXRhaWxzIG9uXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmFwaS5yc3QtMjE1LWF2YWlsYWJsZSBvcGVyYXRpb25zIGFuZCBhdHRyaWJ1dGVzLlxuLS1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uYXBpLnJzdD0yNDA9Rm9yIGV4YW1wbGUsIHVzaW5nIHRoZSBzY3JpcHQ6XG4tLVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25hcGkucnN0LTI0NC0gICQga2VybmVsLXNvdXJjZS90b29scy9uZXQveW5sL3B5eW5sL2NsaS5weSBcXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25hcGkucnN0OjI0NTogICAgICAgICAgICAtLXNwZWMgRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL25ldGRldi55YW1sIFxcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmFwaS5yc3QtMjQ2LSAgICAgICAgICAgIC0tZG8gbmFwaS1zZXQgXFxcbi0tXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvcGFnZV9wb29sLnJzdD00Nz1ldGMuIGNhbiBiZSBhY2Nlc3NlZCB2aWEgdGhlIG5ldGRldiBnZW5ldGxpbmsgZmFtaWx5XG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvcGFnZV9wb29sLnJzdDo0ODooc2VlIERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9uZXRkZXYueWFtbCkuXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvcGFnZV9wb29sLnJzdC00OS1cbi0tXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcveGRwLXJ4LW1ldGFkYXRhLnJzdD0xMjA9bmV0bGluay4gU2VlIGBgeGRwLXJ4LW1ldGFkYXRhLWZlYXR1cmVzYGAgYXR0cmlidXRlIHNldCBpblxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL3hkcC1yeC1tZXRhZGF0YS5yc3Q6MTIxOmBgRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL25ldGRldi55YW1sYGAuXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcveGRwLXJ4LW1ldGFkYXRhLnJzdC0xMjItXG4tLVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL3hzay10eC1tZXRhZGF0YS5yc3Q9MTM0PVF1ZXJ5IHRoZSBgYHhzay1mZWF0dXJlc2BgIGF0dHJpYnV0ZSBpblxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL3hzay10eC1tZXRhZGF0YS5yc3Q6MTM1OmBgRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL25ldGRldi55YW1sYGAuIEl0cyBiaXRzIGFyZSBkZWZpbmVkIGJ5IHRoZVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL3hzay10eC1tZXRhZGF0YS5yc3QtMTM2LWBgeHNrLWZsYWdzYGAgZW51bS5cbi0tXG5Eb2N1bWVudGF0aW9uL3RyYW5zbGF0aW9ucy96aF9DTi9uZXR3b3JraW5nL25hcGkucnN0PTEzMj1OQVBJIOWunuS+i+acgOW4uOS7pSAxOjE6MSDmmKDlsITliLDkuK3mlq3lkozpmJ/liJflr7nvvIjpmJ/liJflr7nmmK/nlLHkuIDkuKrmjqXmlLbpmJ/liJflkozkuIDkuKrlj5HpgIHpmJ/liJfnu4TmiJDnmoTkuIDnu4Rcbi0tXG5Eb2N1bWVudGF0aW9uL3RyYW5zbGF0aW9ucy96aF9DTi9uZXR3b3JraW5nL25hcGkucnN0LTE3MS0gICAkIGtlcm5lbC1zb3VyY2UvdG9vbHMvbmV0L3lubC9weXlubC9jbGkucHkgXFxcbkRvY3VtZW50YXRpb24vdHJhbnNsYXRpb25zL3poX0NOL25ldHdvcmtpbmcvbmFwaS5yc3Q6MTcyOiAgICAgICAgICAgICAtLXNwZWMgRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL25ldGRldi55YW1sIFxcXG5Eb2N1bWVudGF0aW9uL3RyYW5zbGF0aW9ucy96aF9DTi9uZXR3b3JraW5nL25hcGkucnN0LTE3My0gICAgICAgICAgICAgLS1kdW1wIHF1ZXVlLWdldCBcXFxuLS1cbkRvY3VtZW50YXRpb24vdHJhbnNsYXRpb25zL3poX0NOL25ldHdvcmtpbmcvbmFwaS5yc3QtMTc1LVxuRG9jdW1lbnRhdGlvbi90cmFuc2xhdGlvbnMvemhfQ04vbmV0d29ya2luZy9uYXBpLnJzdDoxNzY65pyJ5YWz5Y+v55So5pON5L2c5ZKM5bGe5oCn55qE5pu05aSa6K+m57uG5L+h5oGv77yM6K+35Y+C6ZiFIGBgRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL25ldGRldi55YW1sYGDjgIJcbkRvY3VtZW50YXRpb24vdHJhbnNsYXRpb25zL3poX0NOL25ldHdvcmtpbmcvbmFwaS5yc3QtMTc3LVxuLS1cbkRvY3VtZW50YXRpb24vdHJhbnNsYXRpb25zL3poX0NOL25ldHdvcmtpbmcvbmFwaS5yc3Q9MTg5PU5ldGxpbmsg6L+b6KGM6YWN572u5LiU5piv5Z+65LqO5q+P5LiqIE5BUEkg5a6e5L6L6K6+572u5pe277yM5LiK6L+w5Y+C5pWw5L2/55So6L+e5a2X56ym77yILe+8ieiAjOmdnuS4i+WIkue6v++8iF/vvIlcbi0tXG5Eb2N1bWVudGF0aW9uL3RyYW5zbGF0aW9ucy96aF9DTi9uZXR3b3JraW5nL25hcGkucnN0LTE5OS0gICQga2VybmVsLXNvdXJjZS90b29scy9uZXQveW5sL3B5eW5sL2NsaS5weSBcXFxuRG9jdW1lbnRhdGlvbi90cmFuc2xhdGlvbnMvemhfQ04vbmV0d29ya2luZy9uYXBpLnJzdDoyMDA6ICAgICAgICAgICAgLS1zcGVjIERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9uZXRkZXYueWFtbCBcXFxuRG9jdW1lbnRhdGlvbi90cmFuc2xhdGlvbnMvemhfQ04vbmV0d29ya2luZy9uYXBpLnJzdC0yMDEtICAgICAgICAgICAgLS1kbyBuYXBpLXNldCBcXFxuLS1cbkRvY3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9uZXRsaW5rL2luZGV4LnJzdD0xOT1TZWUgYWxzbzpcbkRvY3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9uZXRsaW5rL2luZGV4LnJzdC0yMC0gLSA6cmVmOmBEb2N1bWVudGF0aW9uL2NvcmUtYXBpL25ldGxpbmsucnN0IFx1MDAzY2tlcm5lbF9uZXRsaW5rXHUwMDNlYFxuRG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL25ldGxpbmsvaW5kZXgucnN0OjIxOiAtIDpyZWY6YERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9pbmRleC5yc3QgXHUwMDNjc3BlY3NcdTAwM2VgXG4tLVxuRG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL25ldGxpbmsvaW50cm8tc3BlY3MucnN0PTE5PWEgaGFuZGZ1bCBvZiBhcmd1bWVudHMsIHRoZSBtb3N0IGltcG9ydGFudCBvbmVzIGFyZTpcbi0tXG5Eb2N1bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbmV0bGluay9pbnRyby1zcGVjcy5yc3QtMjUtXG5Eb2N1bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbmV0bGluay9pbnRyby1zcGVjcy5yc3Q6MjY6WUFNTCBzcGVjcyBjYW4gYmUgZm91bmQgdW5kZXIgYGBEb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvYGAuXG5Eb2N1bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbmV0bGluay9pbnRyby1zcGVjcy5yc3QtMjctXG5Eb2N1bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbmV0bGluay9pbnRyby1zcGVjcy5yc3Q9Mjg9RXhhbXBsZSB1c2U6OlxuRG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL25ldGxpbmsvaW50cm8tc3BlY3MucnN0LTI5LVxuRG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL25ldGxpbmsvaW50cm8tc3BlY3MucnN0OjMwOiAgJCAuL3Rvb2xzL25ldC95bmwvcHl5bmwvY2xpLnB5IC0tc3BlYyBEb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvZXRodG9vbC55YW1sIFxcXG5Eb2N1bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbmV0bGluay9pbnRyby1zcGVjcy5yc3QtMzEtICAgICAgICAtLWRvIHJpbmdzLWdldCBcXFxuLS1cbkRvY3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9uZXRsaW5rL2ludHJvLXNwZWNzLnJzdD02NT10cmFja2VkIGJ5IGdpdCEpIEZvciBpbnN0YW5jZSB0aGUgYGBmb3VfbmwuY2BgIGtlcm5lbCBzb3VyY2UgY29udGFpbnM6OlxuRG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL25ldGxpbmsvaW50cm8tc3BlY3MucnN0LTY2LVxuRG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL25ldGxpbmsvaW50cm8tc3BlY3MucnN0OjY3OiAgLypcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9mb3UueWFtbCAqL1xuRG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL25ldGxpbmsvaW50cm8tc3BlY3MucnN0LTY4LSAgLyogWU5MLUdFTiBrZXJuZWwgc291cmNlICovXG4tLVxuRG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL25ldGxpbmsvc3BlY3MucnN0PTE1PUludGVybmFsbHkga2VybmVsIHVzZXMgdGhlIFlBTUwgc3BlY3MgdG8gZ2VuZXJhdGU6XG4tLVxuRG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL25ldGxpbmsvc3BlY3MucnN0LTE3LSAtIHRoZSBDIHVBUEkgaGVhZGVyXG5Eb2N1bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbmV0bGluay9zcGVjcy5yc3Q6MTg6IC0gZG9jdW1lbnRhdGlvbiBvZiB0aGUgcHJvdG9jb2wgYXMgYSBSZVNUIGZpbGUgLSBzZWUgOnJlZjpgRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL2luZGV4LnJzdCBcdTAwM2NzcGVjc1x1MDAzZWBcbkRvY3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9uZXRsaW5rL3NwZWNzLnJzdC0xOS0gLSBwb2xpY3kgdGFibGVzIGZvciBpbnB1dCBhdHRyaWJ1dGUgdmFsaWRhdGlvblxuLS1cbkRvY3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9uZXRsaW5rL3NwZWNzLnJzdC0yMS1cbkRvY3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9uZXRsaW5rL3NwZWNzLnJzdDoyMjpZQU1MIHNwZWNpZmljYXRpb25zIGNhbiBiZSBmb3VuZCB1bmRlciBgYERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9gYFxuRG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL25ldGxpbmsvc3BlY3MucnN0LTIzLVxuLS1cbk1BSU5UQUlORVJTPTE5OTg9VDpcdGdpdCBnaXQ6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQvZ3JlZ2toL3N0YWdpbmcuZ2l0XG5NQUlOVEFJTkVSUzoxOTk5OkY6XHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvYmluZGVyLnlhbWxcbk1BSU5UQUlORVJTLTIwMDAtRjpcdGRyaXZlcnMvYW5kcm9pZC9cbi0tXG5NQUlOVEFJTkVSUz03OTIxPUY6XHREb2N1bWVudGF0aW9uL2RyaXZlci1hcGkvZHBsbC5yc3Rcbk1BSU5UQUlORVJTOjc5MjI6RjpcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9kcGxsLnlhbWxcbk1BSU5UQUlORVJTLTc5MjMtRjpcdGRyaXZlcnMvZHBsbC9cbi0tXG5NQUlOVEFJTkVSUz05NjU5PVM6XHRNYWludGFpbmVkXG5NQUlOVEFJTkVSUzo5NjYwOkY6XHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvZGV2LWVuZXJneW1vZGVsLnlhbWxcbk1BSU5UQUlORVJTLTk2NjEtRjpcdERvY3VtZW50YXRpb24vcG93ZXIvZW5lcmd5LW1vZGVsLnJzdFxuLS1cbk1BSU5UQUlORVJTPTExNDU1PVM6XHRNYWludGFpbmVkXG5NQUlOVEFJTkVSUzoxMTQ1NjpGOlx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL2hhbmRzaGFrZS55YW1sXG5NQUlOVEFJTkVSUy0xMTQ1Ny1GOlx0RG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL3Rscy1oYW5kc2hha2UucnN0XG4tLVxuTUFJTlRBSU5FUlM9MTg5NjU9TTpcdEpha3ViIEtpY2luc2tpIFx1MDAzY2t1YmFAa2VybmVsLm9yZ1x1MDAzZVxuTUFJTlRBSU5FUlM6MTg5NjY6RjpcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9ldGh0b29sLnlhbWxcbk1BSU5UQUlORVJTLTE4OTY3LUY6XHREb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZXRodG9vbC1uZXRsaW5rLnJzdFxuLS1cbk1BSU5UQUlORVJTPTE5MTE3PVM6XHRNYWludGFpbmVkXG5NQUlOVEFJTkVSUzoxOTExODpGOlx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL3J0LWFkZHIueWFtbFxuTUFJTlRBSU5FUlM6MTkxMTk6RjpcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9ydC1uZWlnaC55YW1sXG5NQUlOVEFJTkVSUzoxOTEyMDpGOlx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL3J0LXJvdXRlLnlhbWxcbk1BSU5UQUlORVJTOjE5MTIxOkY6XHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvcnQtcnVsZS55YW1sXG5NQUlOVEFJTkVSUy0xOTEyMi1GOlx0aW5jbHVkZS9saW51eC9pbmV0ZGV2aWNlLmhcbi0tXG5NQUlOVEFJTkVSUz0xOTIwNj1UOlx0Z2l0IGh0dHBzOi8vZ2l0aHViLmNvbS9tdWx0aXBhdGgtdGNwL21wdGNwX25ldC1uZXh0LmdpdCBleHBvcnRcbk1BSU5UQUlORVJTOjE5MjA3OkY6XHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvbXB0Y3BfcG0ueWFtbFxuTUFJTlRBSU5FUlMtMTkyMDgtRjpcdERvY3VtZW50YXRpb24vbmV0d29ya2luZy9tcHRjcCoucnN0XG4tLVxuTUFJTlRBSU5FUlM9MjA1MTQ9VDpcdGdpdCBodHRwczovL2dpdGh1Yi5jb20vT3BlblZQTi9vdnBuLW5ldC1uZXh0LmdpdFxuTUFJTlRBSU5FUlM6MjA1MTU6RjpcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9vdnBuLnlhbWxcbk1BSU5UQUlORVJTLTIwNTE2LUY6XHRkcml2ZXJzL25ldC9vdnBuL1xuLS1cbk1BSU5UQUlORVJTPTIxOTIwPU06XHRXaWxsZW0gZGUgQnJ1aWpuIFx1MDAzY3dpbGxlbWRlYnJ1aWpuLmtlcm5lbEBnbWFpbC5jb21cdTAwM2Vcbk1BSU5UQUlORVJTOjIxOTIxOkY6XHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvcHNwLnlhbWxcbk1BSU5UQUlORVJTLTIxOTIyLUY6XHREb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvcHNwLnJzdFxuLS1cbk1BSU5UQUlORVJTPTI2Nzk0PVM6XHRTdXBwb3J0ZWRcbk1BSU5UQUlORVJTOjI2Nzk1OkY6XHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvdGVhbS55YW1sXG5NQUlOVEFJTkVSUy0yNjc5Ni1GOlx0ZHJpdmVycy9uZXQvdGVhbS9cbi0tXG5NQUlOVEFJTkVSUz0yOTQzMz1TOlx0TWFpbnRhaW5lZFxuTUFJTlRBSU5FUlM6Mjk0MzQ6RjpcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy93aXJlZ3VhcmQueWFtbFxuTUFJTlRBSU5FUlMtMjk0MzUtRjpcdGRyaXZlcnMvbmV0L3dpcmVndWFyZC9cbi0tXG5kcml2ZXJzL2FuZHJvaWQvYmluZGVyL25ldGxpbmsucnMtMS0vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogKChHUEwtMi4wIFdJVEggTGludXgtc3lzY2FsbC1ub3RlKSBPUiBCU0QtMy1DbGF1c2UpXG5kcml2ZXJzL2FuZHJvaWQvYmluZGVyL25ldGxpbmsucnM6MjovKiBCYXNlZCBvbjogRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL2JpbmRlci55YW1sICovXG5kcml2ZXJzL2FuZHJvaWQvYmluZGVyL25ldGxpbmsucnMtMy1cbi0tXG5kcml2ZXJzL2FuZHJvaWQvYmluZGVyX25ldGxpbmsuYy0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xuZHJpdmVycy9hbmRyb2lkL2JpbmRlcl9uZXRsaW5rLmM6MzovKlx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL2JpbmRlci55YW1sICovXG5kcml2ZXJzL2FuZHJvaWQvYmluZGVyX25ldGxpbmsuYy00LS8qIFlOTC1HRU4ga2VybmVsIHNvdXJjZSAqL1xuLS1cbmRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfbmV0bGluay5oLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXG5kcml2ZXJzL2FuZHJvaWQvYmluZGVyX25ldGxpbmsuaDozOi8qXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvYmluZGVyLnlhbWwgKi9cbmRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfbmV0bGluay5oLTQtLyogWU5MLUdFTiBrZXJuZWwgaGVhZGVyICovXG4tLVxuZHJpdmVycy9kcGxsL2RwbGxfbmwuYy0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xuZHJpdmVycy9kcGxsL2RwbGxfbmwuYzozOi8qXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvZHBsbC55YW1sICovXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5jLTQtLyogWU5MLUdFTiBrZXJuZWwgc291cmNlICovXG4tLVxuZHJpdmVycy9kcGxsL2RwbGxfbmwuaC0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xuZHJpdmVycy9kcGxsL2RwbGxfbmwuaDozOi8qXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvZHBsbC55YW1sICovXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5oLTQtLyogWU5MLUdFTiBrZXJuZWwgaGVhZGVyICovXG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9yYXNfbmwuYy0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xuZHJpdmVycy9ncHUvZHJtL2RybV9yYXNfbmwuYzozOi8qXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvZHJtX3Jhcy55YW1sICovXG5kcml2ZXJzL2dwdS9kcm0vZHJtX3Jhc19ubC5jLTQtLyogWU5MLUdFTiBrZXJuZWwgc291cmNlICovXG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9yYXNfbmwuaC0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xuZHJpdmVycy9ncHUvZHJtL2RybV9yYXNfbmwuaDozOi8qXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvZHJtX3Jhcy55YW1sICovXG5kcml2ZXJzL2dwdS9kcm0vZHJtX3Jhc19ubC5oLTQtLyogWU5MLUdFTiBrZXJuZWwgaGVhZGVyICovXG4tLVxuZHJpdmVycy9uZXQvb3Zwbi9uZXRsaW5rLWdlbi5jLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXG5kcml2ZXJzL25ldC9vdnBuL25ldGxpbmstZ2VuLmM6MzovKlx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL292cG4ueWFtbCAqL1xuZHJpdmVycy9uZXQvb3Zwbi9uZXRsaW5rLWdlbi5jLTQtLyogWU5MLUdFTiBrZXJuZWwgc291cmNlICovXG4tLVxuZHJpdmVycy9uZXQvb3Zwbi9uZXRsaW5rLWdlbi5oLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXG5kcml2ZXJzL25ldC9vdnBuL25ldGxpbmstZ2VuLmg6MzovKlx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL292cG4ueWFtbCAqL1xuZHJpdmVycy9uZXQvb3Zwbi9uZXRsaW5rLWdlbi5oLTQtLyogWU5MLUdFTiBrZXJuZWwgaGVhZGVyICovXG4tLVxuZHJpdmVycy9uZXQvdGVhbS90ZWFtX25sLmMtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cbmRyaXZlcnMvbmV0L3RlYW0vdGVhbV9ubC5jOjM6LypcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy90ZWFtLnlhbWwgKi9cbmRyaXZlcnMvbmV0L3RlYW0vdGVhbV9ubC5jLTQtLyogWU5MLUdFTiBrZXJuZWwgc291cmNlICovXG4tLVxuZHJpdmVycy9uZXQvdGVhbS90ZWFtX25sLmgtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cbmRyaXZlcnMvbmV0L3RlYW0vdGVhbV9ubC5oOjM6LypcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy90ZWFtLnlhbWwgKi9cbmRyaXZlcnMvbmV0L3RlYW0vdGVhbV9ubC5oLTQtLyogWU5MLUdFTiBrZXJuZWwgaGVhZGVyICovXG4tLVxuZHJpdmVycy9uZXQvd2lyZWd1YXJkL2dlbmVyYXRlZC9uZXRsaW5rLmMtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cbmRyaXZlcnMvbmV0L3dpcmVndWFyZC9nZW5lcmF0ZWQvbmV0bGluay5jOjM6LypcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy93aXJlZ3VhcmQueWFtbCAqL1xuZHJpdmVycy9uZXQvd2lyZWd1YXJkL2dlbmVyYXRlZC9uZXRsaW5rLmMtNC0vKiBZTkwtR0VOIGtlcm5lbCBzb3VyY2UgKi9cbi0tXG5kcml2ZXJzL25ldC93aXJlZ3VhcmQvZ2VuZXJhdGVkL25ldGxpbmsuaC0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xuZHJpdmVycy9uZXQvd2lyZWd1YXJkL2dlbmVyYXRlZC9uZXRsaW5rLmg6MzovKlx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL3dpcmVndWFyZC55YW1sICovXG5kcml2ZXJzL25ldC93aXJlZ3VhcmQvZ2VuZXJhdGVkL25ldGxpbmsuaC00LS8qIFlOTC1HRU4ga2VybmVsIGhlYWRlciAqL1xuLS1cbmZzL2xvY2tkL25ldGxpbmsuYy0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xuZnMvbG9ja2QvbmV0bGluay5jOjM6LypcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9sb2NrZC55YW1sICovXG5mcy9sb2NrZC9uZXRsaW5rLmMtNC0vKiBZTkwtR0VOIGtlcm5lbCBzb3VyY2UgKi9cbi0tXG5mcy9sb2NrZC9uZXRsaW5rLmgtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cbmZzL2xvY2tkL25ldGxpbmsuaDozOi8qXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvbG9ja2QueWFtbCAqL1xuZnMvbG9ja2QvbmV0bGluay5oLTQtLyogWU5MLUdFTiBrZXJuZWwgaGVhZGVyICovXG4tLVxuZnMvbmZzZC9uZXRsaW5rLmMtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cbmZzL25mc2QvbmV0bGluay5jOjM6LypcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9uZnNkLnlhbWwgKi9cbmZzL25mc2QvbmV0bGluay5jLTQtLyogWU5MLUdFTiBrZXJuZWwgc291cmNlICovXG4tLVxuZnMvbmZzZC9uZXRsaW5rLmgtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cbmZzL25mc2QvbmV0bGluay5oOjM6LypcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9uZnNkLnlhbWwgKi9cbmZzL25mc2QvbmV0bGluay5oLTQtLyogWU5MLUdFTiBrZXJuZWwgaGVhZGVyICovXG4tLVxuaW5jbHVkZS9uZXQveGRwLmg9NTY0PXZvaWQgeGRwX2F0dGFjaG1lbnRfc2V0dXAoc3RydWN0IHhkcF9hdHRhY2htZW50X2luZm8gKmluZm8sXG4tLVxuaW5jbHVkZS9uZXQveGRwLmgtNTcxLSAqIC0geGRwX3J4X21ldGFkYXRhIGVudW1cbmluY2x1ZGUvbmV0L3hkcC5oOjU3MjogKiAtIG5ldGRldiBuZXRsaW5rIGVudW0gKERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9uZXRkZXYueWFtbClcbmluY2x1ZGUvbmV0L3hkcC5oLTU3My0gKiAtIGtmdW5jIG5hbWVcbi0tXG5pbmNsdWRlL3VhcGkvZHJtL2RybV9yYXMuaC0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xuaW5jbHVkZS91YXBpL2RybS9kcm1fcmFzLmg6MzovKlx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL2RybV9yYXMueWFtbCAqL1xuaW5jbHVkZS91YXBpL2RybS9kcm1fcmFzLmgtNC0vKiBZTkwtR0VOIHVhcGkgaGVhZGVyICovXG4tLVxuaW5jbHVkZS91YXBpL2RybS94ZV9kcm0uaD0yNTE2PXN0cnVjdCBkcm1feGVfZXhlY19xdWV1ZV9zZXRfcHJvcGVydHkge1xuLS1cbmluY2x1ZGUvdWFwaS9kcm0veGVfZHJtLmgtMjUzNi0gKiBUaGUgZW51bXMgYW5kIHN0cmluZ3MgZGVmaW5lZCBiZWxvdyBtYXAgdG8gdGhlIGF0dHJpYnV0ZXMgb2YgdGhlIERSTSBSQVMgTmV0bGluayBJbnRlcmZhY2UuXG5pbmNsdWRlL3VhcGkvZHJtL3hlX2RybS5oOjI1Mzc6ICogUmVmZXIgdG8gRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL2RybV9yYXMueWFtbCBmb3IgY29tcGxldGUgaW50ZXJmYWNlIHNwZWNpZmljYXRpb24uXG5pbmNsdWRlL3VhcGkvZHJtL3hlX2RybS5oLTI1MzgtICpcbi0tXG5pbmNsdWRlL3VhcGkvbGludXgvYW5kcm9pZC9iaW5kZXJfbmV0bGluay5oLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXG5pbmNsdWRlL3VhcGkvbGludXgvYW5kcm9pZC9iaW5kZXJfbmV0bGluay5oOjM6LypcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9iaW5kZXIueWFtbCAqL1xuaW5jbHVkZS91YXBpL2xpbnV4L2FuZHJvaWQvYmluZGVyX25ldGxpbmsuaC00LS8qIFlOTC1HRU4gdWFwaSBoZWFkZXIgKi9cbi0tXG5pbmNsdWRlL3VhcGkvbGludXgvZGV2X2VuZXJneW1vZGVsLmgtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cbmluY2x1ZGUvdWFwaS9saW51eC9kZXZfZW5lcmd5bW9kZWwuaDozOi8qXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvZGV2LWVuZXJneW1vZGVsLnlhbWwgKi9cbmluY2x1ZGUvdWFwaS9saW51eC9kZXZfZW5lcmd5bW9kZWwuaC00LS8qIFlOTC1HRU4gdWFwaSBoZWFkZXIgKi9cbi0tXG5pbmNsdWRlL3VhcGkvbGludXgvZGV2bGluay5oPTQxMj1lbnVtIGRldmxpbmtfYXR0ciB7XG4tLVxuaW5jbHVkZS91YXBpL2xpbnV4L2RldmxpbmsuaC02NTMtXHQvKiBBZGQgbmV3IGF0dHJpYnV0ZXMgYWJvdmUgaGVyZSwgdXBkYXRlIHRoZSBzcGVjIGluXG5pbmNsdWRlL3VhcGkvbGludXgvZGV2bGluay5oOjY1NDpcdCAqIERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9kZXZsaW5rLnlhbWwgYW5kIHJlLWdlbmVyYXRlXG5pbmNsdWRlL3VhcGkvbGludXgvZGV2bGluay5oLTY1NS1cdCAqIG5ldC9kZXZsaW5rL25ldGxpbmtfZ2VuLmMuXG4tLVxuaW5jbHVkZS91YXBpL2xpbnV4L2RwbGwuaC0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xuaW5jbHVkZS91YXBpL2xpbnV4L2RwbGwuaDozOi8qXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvZHBsbC55YW1sICovXG5pbmNsdWRlL3VhcGkvbGludXgvZHBsbC5oLTQtLyogWU5MLUdFTiB1YXBpIGhlYWRlciAqL1xuLS1cbmluY2x1ZGUvdWFwaS9saW51eC9ldGh0b29sX25ldGxpbmtfZ2VuZXJhdGVkLmgtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cbmluY2x1ZGUvdWFwaS9saW51eC9ldGh0b29sX25ldGxpbmtfZ2VuZXJhdGVkLmg6MzovKlx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL2V0aHRvb2wueWFtbCAqL1xuaW5jbHVkZS91YXBpL2xpbnV4L2V0aHRvb2xfbmV0bGlua19nZW5lcmF0ZWQuaC00LS8qIFlOTC1HRU4gdWFwaSBoZWFkZXIgKi9cbi0tXG5pbmNsdWRlL3VhcGkvbGludXgvZm91LmgtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cbmluY2x1ZGUvdWFwaS9saW51eC9mb3UuaDozOi8qXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvZm91LnlhbWwgKi9cbmluY2x1ZGUvdWFwaS9saW51eC9mb3UuaC00LS8qIFlOTC1HRU4gdWFwaSBoZWFkZXIgKi9cbi0tXG5pbmNsdWRlL3VhcGkvbGludXgvaGFuZHNoYWtlLmgtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cbmluY2x1ZGUvdWFwaS9saW51eC9oYW5kc2hha2UuaDozOi8qXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvaGFuZHNoYWtlLnlhbWwgKi9cbmluY2x1ZGUvdWFwaS9saW51eC9oYW5kc2hha2UuaC00LS8qIFlOTC1HRU4gdWFwaSBoZWFkZXIgKi9cbi0tXG5pbmNsdWRlL3VhcGkvbGludXgvaWZfdGVhbS5oLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXG5pbmNsdWRlL3VhcGkvbGludXgvaWZfdGVhbS5oOjM6LypcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy90ZWFtLnlhbWwgKi9cbmluY2x1ZGUvdWFwaS9saW51eC9pZl90ZWFtLmgtNC0vKiBZTkwtR0VOIHVhcGkgaGVhZGVyICovXG4tLVxuaW5jbHVkZS91YXBpL2xpbnV4L2xvY2tkX25ldGxpbmsuaC0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xuaW5jbHVkZS91YXBpL2xpbnV4L2xvY2tkX25ldGxpbmsuaDozOi8qXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvbG9ja2QueWFtbCAqL1xuaW5jbHVkZS91YXBpL2xpbnV4L2xvY2tkX25ldGxpbmsuaC00LS8qIFlOTC1HRU4gdWFwaSBoZWFkZXIgKi9cbi0tXG5pbmNsdWRlL3VhcGkvbGludXgvbXB0Y3BfcG0uaC0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xuaW5jbHVkZS91YXBpL2xpbnV4L21wdGNwX3BtLmg6MzovKlx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL21wdGNwX3BtLnlhbWwgKi9cbmluY2x1ZGUvdWFwaS9saW51eC9tcHRjcF9wbS5oLTQtLyogWU5MLUdFTiB1YXBpIGhlYWRlciAqL1xuLS1cbmluY2x1ZGUvdWFwaS9saW51eC9uZXRfc2hhcGVyLmgtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cbmluY2x1ZGUvdWFwaS9saW51eC9uZXRfc2hhcGVyLmg6MzovKlx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL25ldF9zaGFwZXIueWFtbCAqL1xuaW5jbHVkZS91YXBpL2xpbnV4L25ldF9zaGFwZXIuaC00LS8qIFlOTC1HRU4gdWFwaSBoZWFkZXIgKi9cbi0tXG5pbmNsdWRlL3VhcGkvbGludXgvbmV0ZGV2LmgtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cbmluY2x1ZGUvdWFwaS9saW51eC9uZXRkZXYuaDozOi8qXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvbmV0ZGV2LnlhbWwgKi9cbmluY2x1ZGUvdWFwaS9saW51eC9uZXRkZXYuaC00LS8qIFlOTC1HRU4gdWFwaSBoZWFkZXIgKi9cbi0tXG5pbmNsdWRlL3VhcGkvbGludXgvbmZzZF9uZXRsaW5rLmgtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cbmluY2x1ZGUvdWFwaS9saW51eC9uZnNkX25ldGxpbmsuaDozOi8qXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvbmZzZC55YW1sICovXG5pbmNsdWRlL3VhcGkvbGludXgvbmZzZF9uZXRsaW5rLmgtNC0vKiBZTkwtR0VOIHVhcGkgaGVhZGVyICovXG4tLVxuaW5jbHVkZS91YXBpL2xpbnV4L292cG4uaC0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xuaW5jbHVkZS91YXBpL2xpbnV4L292cG4uaDozOi8qXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3Mvb3Zwbi55YW1sICovXG5pbmNsdWRlL3VhcGkvbGludXgvb3Zwbi5oLTQtLyogWU5MLUdFTiB1YXBpIGhlYWRlciAqL1xuLS1cbmluY2x1ZGUvdWFwaS9saW51eC9wc3AuaC0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xuaW5jbHVkZS91YXBpL2xpbnV4L3BzcC5oOjM6LypcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9wc3AueWFtbCAqL1xuaW5jbHVkZS91YXBpL2xpbnV4L3BzcC5oLTQtLyogWU5MLUdFTiB1YXBpIGhlYWRlciAqL1xuLS1cbmluY2x1ZGUvdWFwaS9saW51eC9zdW5ycGNfbmV0bGluay5oLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXG5pbmNsdWRlL3VhcGkvbGludXgvc3VucnBjX25ldGxpbmsuaDozOi8qXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3Mvc3VucnBjX2NhY2hlLnlhbWwgKi9cbmluY2x1ZGUvdWFwaS9saW51eC9zdW5ycGNfbmV0bGluay5oLTQtLyogWU5MLUdFTiB1YXBpIGhlYWRlciAqL1xuLS1cbmluY2x1ZGUvdWFwaS9saW51eC93aXJlZ3VhcmQuaC0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xuaW5jbHVkZS91YXBpL2xpbnV4L3dpcmVndWFyZC5oOjM6LypcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy93aXJlZ3VhcmQueWFtbCAqL1xuaW5jbHVkZS91YXBpL2xpbnV4L3dpcmVndWFyZC5oLTQtLyogWU5MLUdFTiB1YXBpIGhlYWRlciAqL1xuLS1cbmtlcm5lbC9wb3dlci9lbV9uZXRsaW5rX2F1dG9nZW4uYy0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xua2VybmVsL3Bvd2VyL2VtX25ldGxpbmtfYXV0b2dlbi5jOjM6LypcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9kZXYtZW5lcmd5bW9kZWwueWFtbCAqL1xua2VybmVsL3Bvd2VyL2VtX25ldGxpbmtfYXV0b2dlbi5jLTQtLyogWU5MLUdFTiBrZXJuZWwgc291cmNlICovXG4tLVxua2VybmVsL3Bvd2VyL2VtX25ldGxpbmtfYXV0b2dlbi5oLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXG5rZXJuZWwvcG93ZXIvZW1fbmV0bGlua19hdXRvZ2VuLmg6MzovKlx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL2Rldi1lbmVyZ3ltb2RlbC55YW1sICovXG5rZXJuZWwvcG93ZXIvZW1fbmV0bGlua19hdXRvZ2VuLmgtNC0vKiBZTkwtR0VOIGtlcm5lbCBoZWFkZXIgKi9cbi0tXG5uZXQvY29yZS9uZXRkZXYtZ2VubC1nZW4uYy0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xubmV0L2NvcmUvbmV0ZGV2LWdlbmwtZ2VuLmM6MzovKlx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL25ldGRldi55YW1sICovXG5uZXQvY29yZS9uZXRkZXYtZ2VubC1nZW4uYy00LS8qIFlOTC1HRU4ga2VybmVsIHNvdXJjZSAqL1xuLS1cbm5ldC9jb3JlL25ldGRldi1nZW5sLWdlbi5oLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXG5uZXQvY29yZS9uZXRkZXYtZ2VubC1nZW4uaDozOi8qXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvbmV0ZGV2LnlhbWwgKi9cbm5ldC9jb3JlL25ldGRldi1nZW5sLWdlbi5oLTQtLyogWU5MLUdFTiBrZXJuZWwgaGVhZGVyICovXG4tLVxubmV0L2RldmxpbmsvbmV0bGlua19nZW4uYy0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xubmV0L2RldmxpbmsvbmV0bGlua19nZW4uYzozOi8qXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvZGV2bGluay55YW1sICovXG5uZXQvZGV2bGluay9uZXRsaW5rX2dlbi5jLTQtLyogWU5MLUdFTiBrZXJuZWwgc291cmNlICovXG4tLVxubmV0L2RldmxpbmsvbmV0bGlua19nZW4uaC0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xubmV0L2RldmxpbmsvbmV0bGlua19nZW4uaDozOi8qXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvZGV2bGluay55YW1sICovXG5uZXQvZGV2bGluay9uZXRsaW5rX2dlbi5oLTQtLyogWU5MLUdFTiBrZXJuZWwgaGVhZGVyICovXG4tLVxubmV0L2hhbmRzaGFrZS9nZW5sLmMtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cbm5ldC9oYW5kc2hha2UvZ2VubC5jOjM6LypcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9oYW5kc2hha2UueWFtbCAqL1xubmV0L2hhbmRzaGFrZS9nZW5sLmMtNC0vKiBZTkwtR0VOIGtlcm5lbCBzb3VyY2UgKi9cbi0tXG5uZXQvaGFuZHNoYWtlL2dlbmwuaC0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xubmV0L2hhbmRzaGFrZS9nZW5sLmg6MzovKlx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL2hhbmRzaGFrZS55YW1sICovXG5uZXQvaGFuZHNoYWtlL2dlbmwuaC00LS8qIFlOTC1HRU4ga2VybmVsIGhlYWRlciAqL1xuLS1cbm5ldC9pcHY0L2ZvdV9ubC5jLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXG5uZXQvaXB2NC9mb3VfbmwuYzozOi8qXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvZm91LnlhbWwgKi9cbm5ldC9pcHY0L2ZvdV9ubC5jLTQtLyogWU5MLUdFTiBrZXJuZWwgc291cmNlICovXG4tLVxubmV0L2lwdjQvZm91X25sLmgtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cbm5ldC9pcHY0L2ZvdV9ubC5oOjM6LypcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9mb3UueWFtbCAqL1xubmV0L2lwdjQvZm91X25sLmgtNC0vKiBZTkwtR0VOIGtlcm5lbCBoZWFkZXIgKi9cbi0tXG5uZXQvbXB0Y3AvbXB0Y3BfcG1fZ2VuLmMtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cbm5ldC9tcHRjcC9tcHRjcF9wbV9nZW4uYzozOi8qXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvbXB0Y3BfcG0ueWFtbCAqL1xubmV0L21wdGNwL21wdGNwX3BtX2dlbi5jLTQtLyogWU5MLUdFTiBrZXJuZWwgc291cmNlICovXG4tLVxubmV0L21wdGNwL21wdGNwX3BtX2dlbi5oLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXG5uZXQvbXB0Y3AvbXB0Y3BfcG1fZ2VuLmg6MzovKlx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL21wdGNwX3BtLnlhbWwgKi9cbm5ldC9tcHRjcC9tcHRjcF9wbV9nZW4uaC00LS8qIFlOTC1HRU4ga2VybmVsIGhlYWRlciAqL1xuLS1cbm5ldC9wc3AvcHNwLW5sLWdlbi5jLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXG5uZXQvcHNwL3BzcC1ubC1nZW4uYzozOi8qXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvcHNwLnlhbWwgKi9cbm5ldC9wc3AvcHNwLW5sLWdlbi5jLTQtLyogWU5MLUdFTiBrZXJuZWwgc291cmNlICovXG4tLVxubmV0L3BzcC9wc3AtbmwtZ2VuLmgtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cbm5ldC9wc3AvcHNwLW5sLWdlbi5oOjM6LypcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9wc3AueWFtbCAqL1xubmV0L3BzcC9wc3AtbmwtZ2VuLmgtNC0vKiBZTkwtR0VOIGtlcm5lbCBoZWFkZXIgKi9cbi0tXG5uZXQvc2hhcGVyL3NoYXBlcl9ubF9nZW4uYy0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xubmV0L3NoYXBlci9zaGFwZXJfbmxfZ2VuLmM6MzovKlx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL25ldF9zaGFwZXIueWFtbCAqL1xubmV0L3NoYXBlci9zaGFwZXJfbmxfZ2VuLmMtNC0vKiBZTkwtR0VOIGtlcm5lbCBzb3VyY2UgKi9cbi0tXG5uZXQvc2hhcGVyL3NoYXBlcl9ubF9nZW4uaC0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xubmV0L3NoYXBlci9zaGFwZXJfbmxfZ2VuLmg6MzovKlx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL25ldF9zaGFwZXIueWFtbCAqL1xubmV0L3NoYXBlci9zaGFwZXJfbmxfZ2VuLmgtNC0vKiBZTkwtR0VOIGtlcm5lbCBoZWFkZXIgKi9cbi0tXG5uZXQvc3VucnBjL25ldGxpbmsuYy0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xubmV0L3N1bnJwYy9uZXRsaW5rLmM6MzovKlx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL3N1bnJwY19jYWNoZS55YW1sICovXG5uZXQvc3VucnBjL25ldGxpbmsuYy00LS8qIFlOTC1HRU4ga2VybmVsIHNvdXJjZSAqL1xuLS1cbm5ldC9zdW5ycGMvbmV0bGluay5oLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXG5uZXQvc3VucnBjL25ldGxpbmsuaDozOi8qXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3Mvc3VucnBjX2NhY2hlLnlhbWwgKi9cbm5ldC9zdW5ycGMvbmV0bGluay5oLTQtLyogWU5MLUdFTiBrZXJuZWwgaGVhZGVyICovXG4tLVxudG9vbHMvaW5jbHVkZS91YXBpL2xpbnV4L25ldGRldi5oLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXG50b29scy9pbmNsdWRlL3VhcGkvbGludXgvbmV0ZGV2Lmg6MzovKlx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL25ldGRldi55YW1sICovXG50b29scy9pbmNsdWRlL3VhcGkvbGludXgvbmV0ZGV2LmgtNC0vKiBZTkwtR0VOIHVhcGkgaGVhZGVyICovXG4tLVxudG9vbHMvbmV0L3lubC9NYWtlZmlsZT0xND1pbmNsdWRlZGlyID89ICQocHJlZml4KS9pbmNsdWRlXG50b29scy9uZXQveW5sL01ha2VmaWxlLTE1LVxudG9vbHMvbmV0L3lubC9NYWtlZmlsZToxNjpTUEVDRElSPS4uLy4uLy4uL0RvY3VtZW50YXRpb24vbmV0bGluay9zcGVjc1xudG9vbHMvbmV0L3lubC9NYWtlZmlsZS0xNy1cbi0tXG50b29scy9uZXQveW5sL2dlbmVyYXRlZC9NYWtlZmlsZT0yMz1UT09MX1JTVDo9Li4vcHl5bmwveW5sX2dlbl9yc3QucHlcbnRvb2xzL25ldC95bmwvZ2VuZXJhdGVkL01ha2VmaWxlLTI0LVxudG9vbHMvbmV0L3lubC9nZW5lcmF0ZWQvTWFrZWZpbGU6MjU6U1BFQ1NfRElSOj0uLi8uLi8uLi8uLi9Eb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3NcbnRvb2xzL25ldC95bmwvZ2VuZXJhdGVkL01ha2VmaWxlLTI2LVNQRUNTX1BBVEhTPSQod2lsZGNhcmQgJChTUEVDU19ESVIpLyoueWFtbClcbi0tXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbGliL01ha2VmaWxlPTg9VEVTVF9GSUxFUyA6PSBcXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2xpYi9NYWtlZmlsZS05LVx0Li4vLi4vLi4vLi4vbmV0L3lubCBcXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2xpYi9NYWtlZmlsZToxMDpcdC4uLy4uLy4uLy4uLy4uL0RvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcyBcXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2xpYi9NYWtlZmlsZS0xMS1cdGtzZnRfc2V0dXBfbG9vcGJhY2suc2ggXFxcbi0tXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbGliL3B5L3lubC5weT05PXRyeTpcbi0tXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbGliL3B5L3lubC5weS0xOS0gICAgICAgIHRvb2xzX2Z1bGxfcGF0aCA9IEtTUkMgLyBcJiMzNDt0b29sc1wmIzM0O1xudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2xpYi9weS95bmwucHk6MjA6ICAgICAgICBTUEVDX1BBVEggPSBLU1JDIC8gXCYjMzQ7RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzXCYjMzQ7XG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbGliL3B5L3lubC5weS0yMS1cbi0tXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQveW5sLm1rPTEzPVlOTF9TUEVDUyA6PSBcXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3lubC5tazoxNDpcdCQocGF0c3Vic3QgJSwkKHRvcF9zcmNkaXIpL0RvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy8lLnlhbWwsJChZTkxfR0VOUykpXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQveW5sLm1rLTE1LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMyAwMToxMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuOC1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTAwNwoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDEwMgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiB0aGUgdGNwX21ldHJpY3MueWFtbCBTcGVjaWZpY2F0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIE5ldGxpbmsgZG9jdW1lbnRhdGlvbiBzdHJ1Y3R1cmUsIHNwZWNpZmljYWxseSBgRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL3RjcF9tZXRyaWNzLnlhbWxgLiBJbW1lZGlhdGVseSwgc29tZXRoaW5nJiMzOTtzIG9mZi4gSSBzZWUgYWxsIHRoZXNlIG90aGVyIGZpbGVzIGluIHBsYWNlcyBsaWtlIGBmb3VfbmwuY2AgYW5kIGBkZXZsaW5rX2dlbi5jYCB0aGF0IGhhdmUgY2xlYXJseSBhdXRvLWdlbmVyYXRlZCBjb21wb25lbnRzIGRpcmVjdGx5IGNvbW1pdHRlZCBpbnRvIHRoZSBjb2RlYmFzZS4gVGhhdCYjMzk7cyBzdGFuZGFyZCBwcmFjdGljZSwgYSBjbGVhciBpbmRpY2F0aW9uIG9mIGEgc3BlYyBiZWluZyB1c2VkIHRvIGRyaXZlIGNvZGUgZ2VuZXJhdGlvbi4gQnV0IGhlcmUsIHdpdGggYHRjcF9tZXRyaWNzYCwgdGhlIGdlbmVyYXRlZCBmaWxlLCBgdGNwX21ldHJpY3MuY2AsIGlzICpoYW5kd3JpdHRlbiogd2hpY2ggaXMgYW4gaW1tZWRpYXRlbHkgc3RyYW5nZSBvYnNlcnZhdGlvbiBhbmQgcmFpc2VzIGNvbmNlcm5zIGFib3V0IHRoZSBjb25zaXN0ZW5jeSBvZiBvdXIgbWV0aG9kb2xvZ3kuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoeSB0aGlzIHNwZWNpZmljYXRpb24gaXNuJiMzOTt0IGJlaW5nIHVzZWQgYXMgdGhlIHNvdXJjZSBvZiB0cnV0aCBpbiB0aGUgY29kZSBnZW5lcmF0aW9uIHByb2Nlc3MuIFBlcmhhcHMgdGhlcmUgYXJlIGNyaXRpY2FsIGRlc2lnbiBkZWNpc2lvbnMgdGhlIHNwZWNpZmljYXRpb24gZG9lc24mIzM5O3QgZnVsbHkgY2FwdHVyZSwgb3IgbWF5YmUgdGhlcmUmIzM5O3MgYSBkaXNjb25uZWN0IGluIG91ciB0b29scy4gUmVnYXJkbGVzcywgdGhlIGRpdmVyZ2VuY2UgZnJvbSB0aGUgZXN0YWJsaXNoZWQgcGF0dGVybiB3YXJyYW50cyBmdXJ0aGVyIGludmVzdGlnYXRpb24sIHN0YXJ0aW5nIGJ5IGRpZ2dpbmcgaW50byB0aGUgZmlsZSBpdHNlbGYuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEzIDAxOjExPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL3RjcF9tZXRyaWNzLnlhbWwmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDUwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiAoKEdQTC0yLjAgV0lUSCBMaW51eC1zeXNjYWxsLW5vdGUpIE9SIEJTRC0zLUNsYXVzZSlcbiAgIDI6XHQtLS1cbiAgIDM6XHRuYW1lOiB0Y3BfbWV0cmljc1xuICAgNDpcdFxuICAgNTpcdHByb3RvY29sOiBnZW5ldGxpbmstbGVnYWN5XG4gICA2Olx0XG4gICA3Olx0ZG9jOiB8XG4gICA4Olx0ICBNYW5hZ2VtZW50IGludGVyZmFjZSBmb3IgVENQIG1ldHJpY3MuXG4gICA5Olx0XG4gIDEwOlx0Yy1mYW1pbHktbmFtZTogdGNwLW1ldHJpY3MtZ2VubC1uYW1lXG4gIDExOlx0Yy12ZXJzaW9uLW5hbWU6IHRjcC1tZXRyaWNzLWdlbmwtdmVyc2lvblxuICAxMjpcdG1heC1ieS1kZWZpbmU6IHRydWVcbiAgMTM6XHRrZXJuZWwtcG9saWN5OiBnbG9iYWxcbiAgMTQ6XHRcbiAgMTU6XHRkZWZpbml0aW9uczpcbiAgMTY6XHQgIC1cbiAgMTc6XHQgICAgbmFtZTogdGNwLWZhc3RvcGVuLWNvb2tpZS1tYXhcbiAgMTg6XHQgICAgdHlwZTogY29uc3RcbiAgMTk6XHQgICAgdmFsdWU6IDE2XG4gIDIwOlx0XG4gIDIxOlx0YXR0cmlidXRlLXNldHM6XG4gIDIyOlx0ICAtXG4gIDIzOlx0ICAgIG5hbWU6IHRjcC1tZXRyaWNzXG4gIDI0Olx0ICAgIG5hbWUtcHJlZml4OiB0Y3AtbWV0cmljcy1hdHRyLVxuICAyNTpcdCAgICBhdHRyaWJ1dGVzOlxuICAyNjpcdCAgICAgIC1cbiAgMjc6XHQgICAgICAgIG5hbWU6IGFkZHItaXB2NFxuICAyODpcdCAgICAgICAgdHlwZTogdTMyXG4gIDI5Olx0ICAgICAgICBieXRlLW9yZGVyOiBiaWctZW5kaWFuXG4gIDMwOlx0ICAgICAgICBkaXNwbGF5LWhpbnQ6IGlwdjRcbiAgMzE6XHQgICAgICAtXG4gIDMyOlx0ICAgICAgICBuYW1lOiBhZGRyLWlwdjZcbiAgMzM6XHQgICAgICAgIHR5cGU6IGJpbmFyeVxuICAzNDpcdCAgICAgICAgY2hlY2tzOlxuICAzNTpcdCAgICAgICAgICBleGFjdC1sZW46IDE2XG4gIDM2Olx0ICAgICAgICBieXRlLW9yZGVyOiBiaWctZW5kaWFuXG4gIDM3Olx0ICAgICAgICBkaXNwbGF5LWhpbnQ6IGlwdjZcbiAgMzg6XHQgICAgICAtXG4gIDM5Olx0ICAgICAgICBuYW1lOiBhZ2VcbiAgNDA6XHQgICAgICAgIHR5cGU6IHU2NFxuICA0MTpcdCAgICAgIC1cbiAgNDI6XHQgICAgICAgIG5hbWU6IHR3LXRzdmFsXG4gIDQzOlx0ICAgICAgICB0eXBlOiB1MzJcbiAgNDQ6XHQgICAgICAgIGRvYzogdW51c2VkXG4gIDQ1Olx0ICAgICAgLVxuICA0NjpcdCAgICAgICAgbmFtZTogdHctdHMtc3RhbXBcbiAgNDc6XHQgICAgICAgIHR5cGU6IHMzMlxuICA0ODpcdCAgICAgICAgZG9jOiB1bnVzZWRcbiAgNDk6XHQgICAgICAtXG4gIDUwOlx0ICAgICAgICBuYW1lOiB2YWxzXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEzIDAxOjExPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy44LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIxOTM0CgkJCQkJCQlvdXRwdXQ6IDM5CgkJCQkJCQl0aG91Z2h0czogMjgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSBsaW5lcyBmcm9tIHRoZSBkb2N1bWVudGF0aW9uLCBhcyBpZiB0aGV5JiMzOTtyZSBteSBvd24gaW1tZWRpYXRlIHRob3VnaHRzOgoKKipBbmFseXppbmcgVENQIE1ldHJpY3MgRG9jdW1lbnRhdGlvbioqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRob3NlIGxpbmVzIOKAkyBzcGVjaWZpY2FsbHksIDUwIHRocm91Z2ggMTMwIG9mIGBEb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvdGNwX21ldHJpY3MueWFtbGAuIEkgbmVlZCB0byByZWZyZXNoIG15IG1lbW9yeSBvbiB0aGUgc3BlY2lmaWMgc3RydWN0dXJlIGJlaW5nIGRlZmluZWQgaGVyZS4gSSByZW1lbWJlciB3b3JraW5nIHdpdGggbmV0bGluayBiZWZvcmUsIHNvIEkgaGF2ZSBhIGJhc2ljIHVuZGVyc3RhbmRpbmcgb2YgdGhlIHByb3RvY29sIGl0c2VsZiwgYnV0IHRoZSBkZXRhaWxzIG9mICp0aGlzKiBzcGVjaWZpYyBzcGVjaWZpY2F0aW9uIGFsd2F5cyByZXF1aXJlIGEgY2xvc2UgcmVhZC4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIHVuZGVyc3RhbmQgaG93IHRoZXNlIFRDUCBtZXRyaWNzIGFyZSBiZWluZyBkZWZpbmVkIHdpdGhpbiB0aGUgbmV0bGluayBmcmFtZXdvcmsuIEFyZSB3ZSB0YWxraW5nIGFib3V0IGF0dHJpYnV0ZXMsIG5lc3RlZCBzdHJ1Y3R1cmVzLCBkYXRhIHR5cGVzLCB0aGUgd29ya3M/IEkgbmVlZCB0byBxdWlja2x5IHJlY2FsbCB0aGUgdHlwaWNhbCBuZXRsaW5rIGF0dHJpYnV0ZSB0eXBlcyB0byBtYXAgdGhlbSBvbnRvIHRoZSBZQU1MIGRlZmluaXRpb25zLiBJIGV4cGVjdCBzb21lIGVudW1zIHRvIGRlZmluZSBzcGVjaWZpYyBtZXRyaWMgaWRlbnRpZmllcnMuIEkgYWxzbyBob3BlIHRvIHNlZSBjbGVhciBleHBsYW5hdGlvbnMgZm9yIGhvdyB2YXJpb3VzIGZsYWdzIG1pZ2h0IGJlIHNldCBvciBpbnRlcnByZXRlZC4gQW55IGV4YW1wbGVzIGluY2x1ZGVkIGhlcmUgd291bGQgYmUgaW5jcmVkaWJseSB1c2VmdWwuIFVsdGltYXRlbHksIG15IGdvYWwgaXMgdG8gc29saWRpZnkgbXkgdW5kZXJzdGFuZGluZyBvZiB0aGUgaW50ZXJmYWNlLCBlbnN1cmluZyBJIGNhbiBpbnRlcnByZXQgYW5kIHVzZSB0aGUgZGF0YSB0aGlzIHNwZWNpZmljYXRpb24gb3V0bGluZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEzIDAxOjExPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL3RjcF9tZXRyaWNzLnlhbWwmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiA1MSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA4MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgIDUxOlx0ICAgICAgICB0eXBlOiBuZXN0XG4gIDUyOlx0ICAgICAgICBuZXN0ZWQtYXR0cmlidXRlczogbWV0cmljc1xuICA1MzpcdCAgICAgIC1cbiAgNTQ6XHQgICAgICAgIG5hbWU6IGZvcGVuLW1zc1xuICA1NTpcdCAgICAgICAgdHlwZTogdTE2XG4gIDU2Olx0ICAgICAgLVxuICA1NzpcdCAgICAgICAgbmFtZTogZm9wZW4tc3luLWRyb3BzXG4gIDU4Olx0ICAgICAgICB0eXBlOiB1MTZcbiAgNTk6XHQgICAgICAtXG4gIDYwOlx0ICAgICAgICBuYW1lOiBmb3Blbi1zeW4tZHJvcC10c1xuICA2MTpcdCAgICAgICAgdHlwZTogdTY0XG4gIDYyOlx0ICAgICAgLVxuICA2MzpcdCAgICAgICAgbmFtZTogZm9wZW4tY29va2llXG4gIDY0Olx0ICAgICAgICB0eXBlOiBiaW5hcnlcbiAgNjU6XHQgICAgICAgIGNoZWNrczpcbiAgNjY6XHQgICAgICAgICAgbWF4LWxlbjogdGNwLWZhc3RvcGVuLWNvb2tpZS1tYXhcbiAgNjc6XHQgICAgICAtXG4gIDY4Olx0ICAgICAgICBuYW1lOiBzYWRkci1pcHY0XG4gIDY5Olx0ICAgICAgICB0eXBlOiB1MzJcbiAgNzA6XHQgICAgICAgIGJ5dGUtb3JkZXI6IGJpZy1lbmRpYW5cbiAgNzE6XHQgICAgICAgIGRpc3BsYXktaGludDogaXB2NFxuICA3MjpcdCAgICAgIC1cbiAgNzM6XHQgICAgICAgIG5hbWU6IHNhZGRyLWlwdjZcbiAgNzQ6XHQgICAgICAgIHR5cGU6IGJpbmFyeVxuICA3NTpcdCAgICAgICAgY2hlY2tzOlxuICA3NjpcdCAgICAgICAgICBleGFjdC1sZW46IDE2XG4gIDc3Olx0ICAgICAgICBieXRlLW9yZGVyOiBiaWctZW5kaWFuXG4gIDc4Olx0ICAgICAgICBkaXNwbGF5LWhpbnQ6IGlwdjZcbiAgNzk6XHQgICAgICAtXG4gIDgwOlx0ICAgICAgICBuYW1lOiBwYWRcbiAgODE6XHQgICAgICAgIHR5cGU6IHBhZFxuICA4MjpcdFxuICA4MzpcdCAgLVxuICA4NDpcdCAgICBuYW1lOiBtZXRyaWNzXG4gIDg1Olx0ICAgICMgSW50ZW50aW9uYWxseSBkb24mIzM5O3QgZGVmaW5lIHRoZSBuYW1lLXByZWZpeCwgc2VlIGJlbG93LlxuICA4NjpcdCAgICBkb2M6IHxcbiAgODc6XHQgICAgICBBdHRyaWJ1dGVzIHdpdGggbWV0cmljcy4gTm90ZSB0aGF0IHRoZSB2YWx1ZXMgaGVyZSBkbyBub3QgbWF0Y2hcbiAgODg6XHQgICAgICB0aGUgVENQX01FVFJJQ18qIGRlZmluZXMgaW4gdGhlIGtlcm5lbCwgYmVjYXVzZSBrZXJuZWwgZGVmaW5lc1xuICA4OTpcdCAgICAgIGFyZSBvZmYtYnkgb25lIChlLmcuIHJ0dCBpcyBkZWZpbmVkIGFzIGVudW0gMCwgd2hpbGUgbmV0bGluayBjYXJyaWVzXG4gIDkwOlx0ICAgICAgYXR0cmlidXRlIHR5cGUgMSkuXG4gIDkxOlx0ICAgIGF0dHJpYnV0ZXM6XG4gIDkyOlx0ICAgICAgLVxuICA5MzpcdCAgICAgICAgbmFtZTogcnR0XG4gIDk0Olx0ICAgICAgICB0eXBlOiB1MzJcbiAgOTU6XHQgICAgICAgIGRvYzogfFxuICA5NjpcdCAgICAgICAgICBSb3VuZCBUcmlwIFRpbWUgKFJUVCksIGluIG1zZWNzIHdpdGggMyBiaXRzIGZyYWN0aW9uYWwuXG4gIDk3Olx0ICAgICAgLVxuICA5ODpcdCAgICAgICAgbmFtZTogcnR0dmFyXG4gIDk5Olx0ICAgICAgICB0eXBlOiB1MzJcbiAxMDA6XHQgICAgICAgIGRvYzogfFxuIDEwMTpcdCAgICAgICAgICBSb3VuZCBUcmlwIFRpbWUgVkFSaWFuY2UgKFJUVFZBUiksIGluIG1zZWNzIHdpdGggMiBiaXRzIGZyYWN0aW9uYWwuXG4gMTAyOlx0ICAgICAgLVxuIDEwMzpcdCAgICAgICAgbmFtZTogc3N0aHJlc2hcbiAxMDQ6XHQgICAgICAgIHR5cGU6IHUzMlxuIDEwNTpcdCAgICAgICAgZG9jOiBTbG93IFN0YXJ0IFRIUkVTSG9sZC5cbiAxMDY6XHQgICAgICAtXG4gMTA3Olx0ICAgICAgICBuYW1lOiBjd25kXG4gMTA4Olx0ICAgICAgICB0eXBlOiB1MzJcbiAxMDk6XHQgICAgICAgIGRvYzogQ29uZ2VzdGlvbiBXaW5kb3cuXG4gMTEwOlx0ICAgICAgLVxuIDExMTpcdCAgICAgICAgbmFtZTogcmVvZGVyaW5nXG4gMTEyOlx0ICAgICAgICB0eXBlOiB1MzJcbiAxMTM6XHQgICAgICAgIGRvYzogUmVvZGVyaW5nIG1ldHJpYy5cbiAxMTQ6XHQgICAgICAtXG4gMTE1Olx0ICAgICAgICBuYW1lOiBydHQtdXNcbiAxMTY6XHQgICAgICAgIHR5cGU6IHUzMlxuIDExNzpcdCAgICAgICAgZG9jOiB8XG4gMTE4Olx0ICAgICAgICAgIFJvdW5kIFRyaXAgVGltZSAoUlRUKSwgaW4gdXNlY3MsIHdpdGggMyBiaXRzIGZyYWN0aW9uYWwuXG4gMTE5Olx0ICAgICAgLVxuIDEyMDpcdCAgICAgICAgbmFtZTogcnR0dmFyLXVzXG4gMTIxOlx0ICAgICAgICB0eXBlOiB1MzJcbiAxMjI6XHQgICAgICAgIGRvYzogfFxuIDEyMzpcdCAgICAgICAgICBSb3VuZCBUcmlwIFRpbWUgVkFSaWFuY2UgKFJUVFZBUiksIGluIHVzZWNzLCB3aXRoIDIgYml0cyBmcmFjdGlvbmFsLlxuIDEyNDpcdFxuIDEyNTpcdG9wZXJhdGlvbnM6XG4gMTI2Olx0ICBsaXN0OlxuIDEyNzpcdCAgICAtXG4gMTI4Olx0ICAgICAgbmFtZTogZ2V0XG4gMTI5Olx0ICAgICAgZG9jOiBSZXRyaWV2ZSBtZXRyaWNzLlxuIDEzMDpcdCAgICAgIGF0dHJpYnV0ZS1zZXQ6IHRjcC1tZXRyaWNzXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEzIDAxOjExPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy44LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIzMjQ4CgkJCQkJCQlvdXRwdXQ6IDk2CgkJCQkJCQl0aG91Z2h0czogNjU4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQ6IE5vdCBXb3J0aCBGdXp6aW5nKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24gYWNjb3JkaW5nIHRvIHRoZSBpbnN0cnVjdGlvbnMuIEkgbmVlZCB0byBkZXRlcm1pbmUgaWYgdGhpcyBwYXRjaCB3YXJyYW50cyBmdXp6aW5nLCBhbmQgdGhlIGNyaXRlcmlhIGZvciByZXR1cm5pbmcgYFdvcnRoRnV6emluZz1mYWxzZWAgKHRoZSAmIzM0O25lZ2F0aXZlIGNyaXRlcmlhJiMzNDspIGFyZSBteSBndWlkZS4gU3BlY2lmaWNhbGx5LCB0aGUgcGF0Y2ggc2VlbXMgdG8gbW9kaWZ5IGBEb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvdGNwX21ldHJpY3MueWFtbGAuIEkgbmVlZCB0byBlbnN1cmUgdGhhdCB0aGlzIGZpbGUgZG9lc24mIzM5O3Qgc29tZWhvdyBpbXBhY3QgdGhlIGNvbXBpbGVkIGtlcm5lbC4KCkZpcnN0LCBJIG5lZWQgdG8gdmVyaWZ5IHRoYXQgYHRjcF9tZXRyaWNzLnlhbWxgIGFuZCBpdHMgbG9jYXRpb24gYXJlIGFjdHVhbGx5ICp1c2VkKiBkdXJpbmcgdGhlIGtlcm5lbCBidWlsZCBwcm9jZXNzLiBTbywgSSBuZWVkIHRvIGNoZWNrIHRoZSBidWlsZCBzeXN0ZW0uIFNpbmNlIEkgZGlkIGEgZ2VuZXJhbCBzZWFyY2ggYmVmb3JlLCBJIGtub3cgSSBhbHJlYWR5IHNlYXJjaGVkIHRoZSByZXBvLCBidXQgbGV0JiMzOTtzIGRvdWJsZS1jaGVjay4gVGhlIHNlYXJjaCByZXN1bHRzIHNob3dlZCB0aGF0IHRoZXJlJiMzOTtzIG5vIGFjdHVhbCBidWlsZC10aW1lIGdlbmVyYXRpb24gZnJvbSBgdGNwX21ldHJpY3MueWFtbGAuIEkgYWxzbyBjb25maXJtZWQsIGluZGVwZW5kZW50bHksIHRoYXQgYG5ldC9pcHY0L3RjcF9tZXRyaWNzLmNgIGlzbiYjMzk7dCBnZW5lcmF0ZWQgZnJvbSBhIFlBTUwgZmlsZS4gSXQgaGFzIGhhbmR3cml0dGVuIG9wZXJhdGlvbnMgYW5kIHBvbGljaWVzLgoKVGhlIHJlc3VsdHMgcG9pbnQgdG8gYHRjcF9tZXRyaWNzLnlhbWxgIGJlaW5nIHB1cmVseSBhIGRvY3VtZW50YXRpb24gZmlsZSwgbGl2aW5nIHVuZGVyIGBEb2N1bWVudGF0aW9uL2AuIEl0JiMzOTtzIGEgWUFNTCBzcGVjaWZpY2F0aW9uLCBhbmQgZnJvbSB0aGUgZXhpc3RpbmcgY29kZWJhc2UsIGl0IGRvZXNuJiMzOTt0IGZlZWQgaW50byBhbnkgY29tcGlsZWQgY29kZS4KClRoZXJlZm9yZSwgYmVjYXVzZSB0aGlzIHBhdGNoICpvbmx5KiBtb2RpZmllcyB0aGUgZG9jdW1lbnRhdGlvbiBmaWxlLCBpdCBkaXJlY3RseSBmYWxscyB1bmRlciB0aGUgbmVnYXRpdmUgY3JpdGVyaWE6ICYjMzQ7TW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgY29tbWVudHMsIG9yIHNwZWxsaW5nIGZpeGVzLCYjMzQ7IGFuZCAmIzM0O05vbi1rZXJuZWwgYW5kIG5vbi1leGVjdXRhYmxlIGNoYW5nZXMmIzM0Oy4gVGhlIHBhdGNoIGhhcyBubyBpbXBhY3Qgb24gdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAoYHZtbGludXhgKSBvciBhbnkga2VybmVsIG1vZHVsZXMuCgpUaHVzLCBteSBjb25jbHVzaW9uIGlzIGBXb3J0aEZ1enppbmcgPSBmYWxzZWAuIEkgYWxzbyBoYXZlIGBFbmFibGVDb25maWdzID0gW11gIGFuZCBgRm9jdXNTeW1ib2xzID0gW11gLiBJJiMzOTtsbCBhbHNvIGluY2x1ZGUgYSBjb25jaXNlIGV4cGxhbmF0aW9uIHRoYXQgdGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgdGhlIGRvY3VtZW50YXRpb24gZmlsZSB3aGljaCBkb2VzbiYjMzk7dCBhZmZlY3QgZXhlY3V0YWJsZSBrZXJuZWwgY29kZSBvciB0aGUga2VybmVsIGltYWdlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMyAwMToxMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL3RjcF9tZXRyaWNzLnlhbWwsIHdoaWNoIGlzIGEgbmV0bGluayBzcGVjaWZpY2F0aW9uIGZpbGUgdW5kZXIgRG9jdW1lbnRhdGlvbi8uIEl0IGRvZXMgbm90IG1vZGlmeSBhbnkgQyBzb3VyY2UgY29kZSBvciBhZmZlY3QgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAodm1saW51eCkgb3Iga2VybmVsIG1vZHVsZXMuIFRoZXJlZm9yZSwgaXQgaXMgbm9uLWV4ZWN1dGFibGUgZG9jdW1lbnRhdGlvbiBhbmQgZG9lcyBub3Qgd2FycmFudCBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBEb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvdGNwX21ldHJpY3MueWFtbCwgd2hpY2ggaXMgYSBuZXRsaW5rIHNwZWNpZmljYXRpb24gZmlsZSB1bmRlciBEb2N1bWVudGF0aW9uLy4gSXQgZG9lcyBub3QgbW9kaWZ5IGFueSBDIHNvdXJjZSBjb2RlIG9yIGFmZmVjdCB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlICh2bWxpbnV4KSBvciBrZXJuZWwgbW9kdWxlcy4gVGhlcmVmb3JlLCBpdCBpcyBub24tZXhlY3V0YWJsZSBkb2N1bWVudGF0aW9uIGFuZCBkb2VzIG5vdCB3YXJyYW50IGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMyAwMToxMTwvdGQ+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+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDktMTNUMDE6MTA6NDQuNjM3NjEyMzVaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MjIzOTYyNzY3NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2UsXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL3RjcF9tZXRyaWNzLnlhbWwsIHdoaWNoIGlzIGEgbmV0bGluayBzcGVjaWZpY2F0aW9uIGZpbGUgdW5kZXIgRG9jdW1lbnRhdGlvbi8uIEl0IGRvZXMgbm90IG1vZGlmeSBhbnkgQyBzb3VyY2UgY29kZSBvciBhZmZlY3QgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAodm1saW51eCkgb3Iga2VybmVsIG1vZHVsZXMuIFRoZXJlZm9yZSwgaXQgaXMgbm9uLWV4ZWN1dGFibGUgZG9jdW1lbnRhdGlvbiBhbmQgZG9lcyBub3Qgd2FycmFudCBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTNUMDE6MTA6NDQuNjM3NjE4NThaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ4MTUxMTYyMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDJkMTZjN2Y0YzhlNTgxOTdlMTA2MWI3MzdlMjc2OWVkZmMyOWUwODFcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFN1biBTZXAgMTMgMDE6MTA6NDMgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL3RjcF9tZXRyaWNzLnlhbWwgYi9Eb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvdGNwX21ldHJpY3MueWFtbFxcbmluZGV4IDEzMTQ0YWVlZDMxYTUuLjc3OWU4YTIyYjc2NWUgMTAwNjQ0XFxuLS0tIGEvRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL3RjcF9tZXRyaWNzLnlhbWxcXG4rKysgYi9Eb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvdGNwX21ldHJpY3MueWFtbFxcbkBAIC0zMiw3ICszMiw3IEBAIGF0dHJpYnV0ZS1zZXRzOlxcbiAgICAgICAgIG5hbWU6IGFkZHItaXB2NlxcbiAgICAgICAgIHR5cGU6IGJpbmFyeVxcbiAgICAgICAgIGNoZWNrczpcXG4tICAgICAgICAgIG1pbi1sZW46IDE2XFxuKyAgICAgICAgICBleGFjdC1sZW46IDE2XFxuICAgICAgICAgYnl0ZS1vcmRlcjogYmlnLWVuZGlhblxcbiAgICAgICAgIGRpc3BsYXktaGludDogaXB2NlxcbiAgICAgICAtXFxuQEAgLTYzLDcgKzYzLDcgQEAgYXR0cmlidXRlLXNldHM6XFxuICAgICAgICAgbmFtZTogZm9wZW4tY29va2llXFxuICAgICAgICAgdHlwZTogYmluYXJ5XFxuICAgICAgICAgY2hlY2tzOlxcbi0gICAgICAgICAgbWluLWxlbjogdGNwLWZhc3RvcGVuLWNvb2tpZS1tYXhcXG4rICAgICAgICAgIG1heC1sZW46IHRjcC1mYXN0b3Blbi1jb29raWUtbWF4XFxuICAgICAgIC1cXG4gICAgICAgICBuYW1lOiBzYWRkci1pcHY0XFxuICAgICAgICAgdHlwZTogdTMyXFxuQEAgLTczLDcgKzczLDcgQEAgYXR0cmlidXRlLXNldHM6XFxuICAgICAgICAgbmFtZTogc2FkZHItaXB2NlxcbiAgICAgICAgIHR5cGU6IGJpbmFyeVxcbiAgICAgICAgIGNoZWNrczpcXG4tICAgICAgICAgIG1pbi1sZW46IDE2XFxuKyAgICAgICAgICBleGFjdC1sZW46IDE2XFxuICAgICAgICAgYnl0ZS1vcmRlcjogYmlnLWVuZGlhblxcbiAgICAgICAgIGRpc3BsYXktaGludDogaXB2NlxcbiAgICAgICAtXFxuQEAgLTkzLDE0ICs5MywxMiBAQCBhdHRyaWJ1dGUtc2V0czpcXG4gICAgICAgICBuYW1lOiBydHRcXG4gICAgICAgICB0eXBlOiB1MzJcXG4gICAgICAgICBkb2M6IHxcXG4tICAgICAgICAgIFJvdW5kIFRyaXAgVGltZSAoUlRUKSwgaW4gbXNlY3Mgd2l0aCAzIGJpdHMgZnJhY3Rpb25hbFxcbi0gICAgICAgICAgKGxlZnQtc2hpZnQgYnkgMyB0byBnZXQgdGhlIG1zZWMgdmFsdWUpLlxcbisgICAgICAgICAgUm91bmQgVHJpcCBUaW1lIChSVFQpLCBpbiBtc2VjcyB3aXRoIDMgYml0cyBmcmFjdGlvbmFsLlxcbiAgICAgICAtXFxuICAgICAgICAgbmFtZTogcnR0dmFyXFxuICAgICAgICAgdHlwZTogdTMyXFxuICAgICAgICAgZG9jOiB8XFxuLSAgICAgICAgICBSb3VuZCBUcmlwIFRpbWUgVkFSaWFuY2UgKFJUVCksIGluIG1zZWNzIHdpdGggMiBiaXRzIGZyYWN0aW9uYWxcXG4tICAgICAgICAgIChsZWZ0LXNoaWZ0IGJ5IDIgdG8gZ2V0IHRoZSBtc2VjIHZhbHVlKS5cXG4rICAgICAgICAgIFJvdW5kIFRyaXAgVGltZSBWQVJpYW5jZSAoUlRUVkFSKSwgaW4gbXNlY3Mgd2l0aCAyIGJpdHMgZnJhY3Rpb25hbC5cXG4gICAgICAgLVxcbiAgICAgICAgIG5hbWU6IHNzdGhyZXNoXFxuICAgICAgICAgdHlwZTogdTMyXFxuQEAgLTExNywxNCArMTE1LDEyIEBAIGF0dHJpYnV0ZS1zZXRzOlxcbiAgICAgICAgIG5hbWU6IHJ0dC11c1xcbiAgICAgICAgIHR5cGU6IHUzMlxcbiAgICAgICAgIGRvYzogfFxcbi0gICAgICAgICAgUm91bmQgVHJpcCBUaW1lIChSVFQpLCBpbiB1c2Vjcywgd2l0aCAzIGJpdHMgZnJhY3Rpb25hbFxcbi0gICAgICAgICAgKGxlZnQtc2hpZnQgYnkgMyB0byBnZXQgdGhlIG1zZWMgdmFsdWUpLlxcbisgICAgICAgICAgUm91bmQgVHJpcCBUaW1lIChSVFQpLCBpbiB1c2Vjcywgd2l0aCAzIGJpdHMgZnJhY3Rpb25hbC5cXG4gICAgICAgLVxcbiAgICAgICAgIG5hbWU6IHJ0dHZhci11c1xcbiAgICAgICAgIHR5cGU6IHUzMlxcbiAgICAgICAgIGRvYzogfFxcbi0gICAgICAgICAgUm91bmQgVHJpcCBUaW1lIChSVFQpLCBpbiB1c2Vjcywgd2l0aCAyIGJpdHMgZnJhY3Rpb25hbFxcbi0gICAgICAgICAgKGxlZnQtc2hpZnQgYnkgMyB0byBnZXQgdGhlIG1zZWMgdmFsdWUpLlxcbisgICAgICAgICAgUm91bmQgVHJpcCBUaW1lIFZBUmlhbmNlIChSVFRWQVIpLCBpbiB1c2Vjcywgd2l0aCAyIGJpdHMgZnJhY3Rpb25hbC5cXG4gXFxuIG9wZXJhdGlvbnM6XFxuICAgbGlzdDpcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTNUMDE6MTA6NDUuMTE5NzE5NjkyWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiY29yZSIsIkR1cmF0aW9uIjo0MTc1NzUwODE0MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBEb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvdGNwX21ldHJpY3MueWFtbCwgd2hpY2ggaXMgYSBuZXRsaW5rIHNwZWNpZmljYXRpb24gZmlsZSB1bmRlciBEb2N1bWVudGF0aW9uLy4gSXQgZG9lcyBub3QgbW9kaWZ5IGFueSBDIHNvdXJjZSBjb2RlIG9yIGFmZmVjdCB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlICh2bWxpbnV4KSBvciBrZXJuZWwgbW9kdWxlcy4gVGhlcmVmb3JlLCBpdCBpcyBub24tZXhlY3V0YWJsZSBkb2N1bWVudGF0aW9uIGFuZCBkb2VzIG5vdCB3YXJyYW50IGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lciBhbmQgc2VjdXJpdHkgZW5naW5lZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGV2YWx1YXRlIHdoZXRoZXIgaXQgd2FycmFudHMgZnV6emluZyB3aXRoIHN5emthbGxlci5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24gaW50ZXJuYWwgYXNzdW1wdGlvbnMuIFlvdSBtdXN0IGFjdGl2ZWx5IHVzZSB5b3VyIGNvZGUgYWNjZXNzXG50b29scyB0byBpbnNwZWN0IHRoZSBhY3R1YWwgc291cmNlIGNvZGUsIGNhbGxlcnMsIGFuZCBzdXJyb3VuZGluZyBjb250ZXh0LlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuMS4gQ09SRSBUUklBR0UgUEhJTE9TT1BIWVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblRoZSBnb2FsIG9mIHBhdGNoIGZ1enppbmcgaXMgdG8gZGlzY292ZXIgY3Jhc2hlcywgcmVncmVzc2lvbnMsIGV4cG9zZWQgbGF0ZW50IGJ1Z3MsXG5hbmQgbmV3bHkgdHJpZ2dlcmVkIGFzc2VydGlvbnMgaW50cm9kdWNlZCBieSB0aGUgcGF0Y2ggc2VyaWVzLlxuXG4tIFJFQUNIQUJJTElUWSBJUyBUSEUgUFJJTUFSWSBHQVRFOlxuICBGdXp6aW5nIGNhbiBvbmx5IGRpc2NvdmVyIGJ1Z3MgaW4gY29kZSB0aGF0IGNhbiBhY3R1YWxseSBleGVjdXRlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkXG4gIGVudmlyb25tZW50cyAoR0NFIG9yIFFFTVUsIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBkZXZpY2VzIGxpa2UgVVNCIGdhZGdldHMsIG5ldGRldiwgdHVuL3RhcCkuXG4gIElmIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSAoc2VlIFNlY3Rpb24gMiksIGl0IE1VU1QgTk9UIGJlIGZ1enplZCxcbiAgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0IGFkZHMgYXNzZXJ0aW9ucyBvciBjb21wbGV4IGxvZ2ljLlxuXG4tIERPIE5PVCBCTElORExZIFRSVVNUIFwiTk8gRlVOQ1RJT05BTCBDSEFOR0VcIiAoTkZDSSkgT1IgXCJSRUZBQ1RPUklOR1wiIENMQUlNUzpcbiAgUGF0Y2ggYXV0aG9ycyByb3V0aW5lbHkgbGFiZWwgY2hhbmdlcyBhcyBcImNsZWFudXBzXCIsIFwicmVmYWN0b3JpbmdzXCIsIG9yIHN0YXRlXG4gIFwiTm8gZnVuY3Rpb25hbCBjaGFuZ2UgaW50ZW5kZWRcIi4gRG8gTk9UIHRha2UgdGhlc2UgY2xhaW1zIGF0IGZhY2UgdmFsdWUuXG4gIENvZGUgcmVmYWN0b3JpbmdzIHRoYXQgcmVhcnJhbmdlIGxvZ2ljLCBpbnRyb2R1Y2UgaGVscGVyIGZ1bmN0aW9ucywgb3IgYWx0ZXIgc3RhdGUgbWFuYWdlbWVudFxuICBpbiBjb3JlIHN1YnN5c3RlbXMgZnJlcXVlbnRseSBpbnRyb2R1Y2Ugc3VidGxlIHNlbWFudGljIHNoaWZ0cyBvciB1bmNvdmVyIGxhdGVudCBrZXJuZWwgYnVncy5cbiAgSWYgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSBpcyBtb2RpZmllZCBvciByZWZhY3RvcmVkLCBpdCBNVVNUIGJlIGZ1enplZC5cblxuLSBORVcgT1IgTU9ESUZJRUQgQVNTRVJUSU9OUyBJTiBSRUFDSEFCTEUgQ09ERSBNVVNUIEJFIEZVWlpFRDpcbiAgV2hlbiBhIHBhdGNoIGludHJvZHVjZXMgb3IgbW9kaWZpZXMgcnVudGltZSBjaGVja3Mgb3IgYXNzZXJ0aW9ucyAoZS5nLiwgV0FSTl9PTiosIFZNX1dBUk5fT04qLFxuICBCVUdfT04qLCBsb2NrZGVwX2Fzc2VydCopIGluIHJlYWNoYWJsZSBjb2RlIHBhdGhzLCBpdCBlbmZvcmNlcyBuZXcgb3Igc3RyaWN0ZXIgaW52YXJpYW50cy5cbiAgRXZlbiBpZiB0aGUgYXV0aG9yIGJlbGlldmVzIHRoZSBpbnZhcmlhbnQgYWx3YXlzIGhvbGRzLCBmdXp6aW5nIGlzIGVzc2VudGlhbCB0byB2ZXJpZnkgd2hldGhlclxuICBhbiB1bnVzdWFsIHNlcXVlbmNlIG9mIG9wZXJhdGlvbnMgY2FuIHZpb2xhdGUgaXQuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4yLiBXSEVOIFRPIFJFVFVSTiBXb3J0aEZ1enppbmc9ZmFsc2UgKE5FR0FUSVZFIENSSVRFUklBKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgT05MWSBJRiBhbGwgbW9kaWZpZWQgY29kZSBmYWxscyBzdHJpY3RseSBpbnRvIG9uZSBvciBtb3JlIG9mIHRoZXNlIGNhdGVnb3JpZXM6XG5cbi0gTm9uLWtlcm5lbCBhbmQgbm9uLWV4ZWN1dGFibGUgY2hhbmdlczpcbiAgKiBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBjb21tZW50cywgb3Igc3BlbGxpbmcgZml4ZXMuXG4gICogVXNlci1zcGFjZSBkaXJlY3Rvcmllcywgc2VsZi10ZXN0cywgc2FtcGxlcywgb3Igc2NyaXB0cyAoZS5nLiwgdG9vbHMvLCBzYW1wbGVzLywgc2NyaXB0cy8sIHVzci8pXG4gICAgdGhhdCBkbyBub3QgYWZmZWN0IHRoZSBjb21waWxlZCBrZXJuZWwgaW1hZ2UgKHZtbGludXgpIG9yIGtlcm5lbCBtb2R1bGVzLlxuICAqIFB1cmVseSBkZWNvcmF0aXZlIGxvZ2dpbmcgKGUuZy4sIG1lc3NhZ2Ugc3RyaW5ncyBpbiBwcl9lcnIsIHByaW50aywgZGV2X2luZm8pIG9yIHRyYWNlcG9pbnRzXG4gICAgdGhhdCBkbyBub3QgYWx0ZXIgY29udHJvbCBmbG93IG9yIGRhdGEgc3RydWN0dXJlcy5cbiAgKiBCdWlsZCBzeXN0ZW0gb3IgS2NvbmZpZyBjaGFuZ2VzIHRoYXQgZG8gbm90IGFsdGVyIGNvbXBpbGVkIEMgbG9naWMuXG4tIFN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZTpcbiAgKiBWZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2hlcywgU21hcnROSUNzLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gICAgaW9uaWMsIGFtZGdwdSkgcmVxdWlyaW5nIHBoeXNpY2FsIEFTSUMvUENJZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gVW5yZWFjaGFibGUgZXhlY3V0aW9uIHBhdGhzOlxuICAqIERyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKC5yZW1vdmUsIC5zaHV0ZG93biwgcGNpX3VucmVnaXN0ZXJfZHJpdmVyKSBleGVjdXRlZCBvbmx5IGR1cmluZ1xuICAgIHBoeXNpY2FsIFBDSSBob3QtdW5wbHVnIG9yIG1hbnVhbCBzeXNmcyBkcml2ZXIgdW5iaW5kaW5nLlxuICAqIENvZGUgcGF0aHMgZXhjbHVzaXZlIHRvIGFyY2hpdGVjdHVyZXMgb3RoZXIgdGhhbiB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjMuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz10cnVlIChQT1NJVElWRSBDUklURVJJQSlcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5SZXR1cm4gV29ydGhGdXp6aW5nPXRydWUgd2hlbmV2ZXIgdGhlIHBhdGNoIHRvdWNoZXMgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSwgaW5jbHVkaW5nOlxuLSBDb3JlIFN1YnN5c3RlbXM6XG4gICogQW55IGxvZ2ljIG1vZGlmaWNhdGlvbnMgaW4gbWVtb3J5IG1hbmFnZW1lbnQgKG1tLyksIHN5bmNocm9uaXphdGlvbi9sb2NraW5nIChrZXJuZWwvbG9ja2luZy8pLFxuICAgIEJQRiwgc2NoZWR1bGVyLCBjb3JlIG5ldHdvcmtpbmcsIFZGUywgb3Igc3lzY2FsbCBoYW5kbGluZy5cbi0gUmVmYWN0b3JpbmdzIGFuZCBDb2RlIENsZWFudXBzOlxuICAqIEFueSByZXN0cnVjdHVyaW5nIG9mIHJlYWNoYWJsZSBkYXRhIHN0cnVjdHVyZXMsIGhlbHBlciBhYnN0cmFjdGlvbnMsIG9yIGFsZ29yaXRobSBmbG93cy5cbi0gUnVudGltZSBBc3NlcnRpb25zIGFuZCBEZWZlbnNpdmUgQ2hlY2tzOlxuICAqIEFueSBpbnRyb2R1Y3Rpb24gb3IgYWx0ZXJhdGlvbiBvZiBhc3NlcnRpb25zIChXQVJOX09OKiwgVk1fV0FSTl9PTiosIEJVR19PTiosIGV0Yy4pIGluIHJlYWNoYWJsZSBwYXRocy5cbi0gUmVhY2hhYmxlIERyaXZlcnMgYW5kIFByb3RvY29sczpcbiAgKiBEcml2ZXJzIGFjY2Vzc2libGUgdmlhIHZpcnR1YWwgYnVzZXMgKHZpcnRpbywgVVNCIGdhZGdldCwgbG9vcGJhY2ssIG5ldGxpbmssIGJpbmRlciwgc29ja2V0cywgZXRjLikuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG40LiBFWFRSQUNUSU5HIEZvY3VzU3ltYm9scyAoUFJFVkVOVElORyBESUxVVElPTilcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5XaGVuIFdvcnRoRnV6emluZz10cnVlLCB5b3UgbXVzdCBleHRyYWN0IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgaW50byBGb2N1c1N5bWJvbHMgdG8gZ3VpZGUgdGhlIGZ1enplcjpcblxuLSBBVk9JRCBVQklRVUlUT1VTIExJRkVDWUNMRSBIT1QtUEFUSFM6XG4gIERvIE5PVCBsaXN0IGdlbmVyaWMsIHViaXF1aXRvdXMgZnVuY3Rpb25zIGNhbGxlZCBieSBhbG1vc3QgZXZlcnkgcHJvZ3JhbSBpbiB0aGUgY29ycHVzXG4gIChpbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0bzogZ2VuZXJhbCBtZW1vcnkgYWxsb2NhdG9ycyBhbmQgZGVhbGxvY2F0b3JzLCBwYWdlIGZhdWx0XG4gIGFuZCB0cmFwIGhhbmRsZXJzLCBvciBjb3JlIHN5bmNocm9uaXphdGlvbiBwcmltaXRpdmVzOyB0aGlzIGlzIG5vdCBhbiBleGhhdXN0aXZlIGxpc3QpLlxuICBMaXN0aW5nIHViaXF1aXRvdXMgZnVuY3Rpb25zIGNhdXNlcyB0aGUgZnV6emVyIHRvIGNsYXNzaWZ5IHRob3VzYW5kcyBvZiB1bnJlbGF0ZWQgdGVzdHMgYXMgXCJmb2N1c2VkXCIsXG4gIHdoaWNoIHNldmVyZWx5IGRpbHV0ZXMgZnV6emluZyBlZmZvcnQgYXdheSBmcm9tIHRoZSBhY3R1YWwgY2hhbmdlcy5cblxuLSBUQVJHRVQgU1BFQ0lGSUMgRkVBVFVSRSBMT0dJQyBBTkQgRU5UUllQT0lOVFM6XG4gIExpc3QgZnVuY3Rpb25zIHRoYXQgc3BlY2lmaWNhbGx5IGltcGxlbWVudCB0aGUgbG9naWMgYmVpbmcgYWRkZWQgb3IgYWx0ZXJlZCwgb3IgZGlyZWN0IEFQSSBlbnRyeXBvaW50c1xuICBmb3IgdGhlIHN1YnN5c3RlbSBmZWF0dXJlIHVuZGVyIHJldmlldy5cblxuLSBIQU5ETElORyBTVEFUSUMgSU5MSU5FIEZVTkNUSU9OUyBJTiBIRUFERVJTICguaCk6XG4gIENvbXBpbGVyLWlubGluZWQgc3RhdGljIGZ1bmN0aW9ucyAoc3VjaCBhcyBzdGF0aWMgaW5saW5lcyBpbiBtbS8qLmggb3IgaW5jbHVkZS9saW51eC8qLmgpIGxhY2tcbiAgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcyBpbiB2bWxpbnV4IGFuZCBjYW5ub3QgYmUgdGFyZ2V0ZWQgZGlyZWN0bHkgYnkgc3ltYm9sIGNvdmVyYWdlIGZpbHRlcnMuXG4gIElmIHRoZSBjaGFuZ2VzIGFyZSBwcmltYXJpbHkgaW4gc3RhdGljIGlubGluZSBoZWxwZXJzLCBpZGVudGlmeSBub24tc3RhdGljLCBmZWF0dXJlLXNwZWNpZmljIGNhbGxlclxuICBmdW5jdGlvbnMgaW4gLmMgZmlsZXMgdGhhdCBleGVyY2lzZSB0aGVtIChhdm9pZGluZyB1YmlxdWl0b3VzIGxpZmVjeWNsZSB3cmFwcGVycykuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG41LiBJREVOVElGWUlORyBFbmFibGVDb25maWdzXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSBjb21waWxlIGFuZCByZWFjaCB0aGUgbW9kaWZpZWQgY29kZTpcbi0gSW5zcGVjdCBLY29uZmlnIGZpbGVzIGFuZCAjaWZkZWYgZ3VhcmRzOyBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbi0gQ2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzIG5lZWRlZC5cbi0gU3RyaXAgYW55ICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IlRhcmdldCBhcmNoaXRlY3R1cmU6IGFtZDY0XG5cbkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDJkMTZjN2Y0YzhlNTgxOTdlMTA2MWI3MzdlMjc2OWVkZmMyOWUwODFcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU3VuIFNlcCAxMyAwMToxMDo0MyAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy90Y3BfbWV0cmljcy55YW1sIGIvRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL3RjcF9tZXRyaWNzLnlhbWxcbmluZGV4IDEzMTQ0YWVlZDMxYTUuLjc3OWU4YTIyYjc2NWUgMTAwNjQ0XG4tLS0gYS9Eb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvdGNwX21ldHJpY3MueWFtbFxuKysrIGIvRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL3RjcF9tZXRyaWNzLnlhbWxcbkBAIC0zMiw3ICszMiw3IEBAIGF0dHJpYnV0ZS1zZXRzOlxuICAgICAgICAgbmFtZTogYWRkci1pcHY2XG4gICAgICAgICB0eXBlOiBiaW5hcnlcbiAgICAgICAgIGNoZWNrczpcbi0gICAgICAgICAgbWluLWxlbjogMTZcbisgICAgICAgICAgZXhhY3QtbGVuOiAxNlxuICAgICAgICAgYnl0ZS1vcmRlcjogYmlnLWVuZGlhblxuICAgICAgICAgZGlzcGxheS1oaW50OiBpcHY2XG4gICAgICAgLVxuQEAgLTYzLDcgKzYzLDcgQEAgYXR0cmlidXRlLXNldHM6XG4gICAgICAgICBuYW1lOiBmb3Blbi1jb29raWVcbiAgICAgICAgIHR5cGU6IGJpbmFyeVxuICAgICAgICAgY2hlY2tzOlxuLSAgICAgICAgICBtaW4tbGVuOiB0Y3AtZmFzdG9wZW4tY29va2llLW1heFxuKyAgICAgICAgICBtYXgtbGVuOiB0Y3AtZmFzdG9wZW4tY29va2llLW1heFxuICAgICAgIC1cbiAgICAgICAgIG5hbWU6IHNhZGRyLWlwdjRcbiAgICAgICAgIHR5cGU6IHUzMlxuQEAgLTczLDcgKzczLDcgQEAgYXR0cmlidXRlLXNldHM6XG4gICAgICAgICBuYW1lOiBzYWRkci1pcHY2XG4gICAgICAgICB0eXBlOiBiaW5hcnlcbiAgICAgICAgIGNoZWNrczpcbi0gICAgICAgICAgbWluLWxlbjogMTZcbisgICAgICAgICAgZXhhY3QtbGVuOiAxNlxuICAgICAgICAgYnl0ZS1vcmRlcjogYmlnLWVuZGlhblxuICAgICAgICAgZGlzcGxheS1oaW50OiBpcHY2XG4gICAgICAgLVxuQEAgLTkzLDE0ICs5MywxMiBAQCBhdHRyaWJ1dGUtc2V0czpcbiAgICAgICAgIG5hbWU6IHJ0dFxuICAgICAgICAgdHlwZTogdTMyXG4gICAgICAgICBkb2M6IHxcbi0gICAgICAgICAgUm91bmQgVHJpcCBUaW1lIChSVFQpLCBpbiBtc2VjcyB3aXRoIDMgYml0cyBmcmFjdGlvbmFsXG4tICAgICAgICAgIChsZWZ0LXNoaWZ0IGJ5IDMgdG8gZ2V0IHRoZSBtc2VjIHZhbHVlKS5cbisgICAgICAgICAgUm91bmQgVHJpcCBUaW1lIChSVFQpLCBpbiBtc2VjcyB3aXRoIDMgYml0cyBmcmFjdGlvbmFsLlxuICAgICAgIC1cbiAgICAgICAgIG5hbWU6IHJ0dHZhclxuICAgICAgICAgdHlwZTogdTMyXG4gICAgICAgICBkb2M6IHxcbi0gICAgICAgICAgUm91bmQgVHJpcCBUaW1lIFZBUmlhbmNlIChSVFQpLCBpbiBtc2VjcyB3aXRoIDIgYml0cyBmcmFjdGlvbmFsXG4tICAgICAgICAgIChsZWZ0LXNoaWZ0IGJ5IDIgdG8gZ2V0IHRoZSBtc2VjIHZhbHVlKS5cbisgICAgICAgICAgUm91bmQgVHJpcCBUaW1lIFZBUmlhbmNlIChSVFRWQVIpLCBpbiBtc2VjcyB3aXRoIDIgYml0cyBmcmFjdGlvbmFsLlxuICAgICAgIC1cbiAgICAgICAgIG5hbWU6IHNzdGhyZXNoXG4gICAgICAgICB0eXBlOiB1MzJcbkBAIC0xMTcsMTQgKzExNSwxMiBAQCBhdHRyaWJ1dGUtc2V0czpcbiAgICAgICAgIG5hbWU6IHJ0dC11c1xuICAgICAgICAgdHlwZTogdTMyXG4gICAgICAgICBkb2M6IHxcbi0gICAgICAgICAgUm91bmQgVHJpcCBUaW1lIChSVFQpLCBpbiB1c2Vjcywgd2l0aCAzIGJpdHMgZnJhY3Rpb25hbFxuLSAgICAgICAgICAobGVmdC1zaGlmdCBieSAzIHRvIGdldCB0aGUgbXNlYyB2YWx1ZSkuXG4rICAgICAgICAgIFJvdW5kIFRyaXAgVGltZSAoUlRUKSwgaW4gdXNlY3MsIHdpdGggMyBiaXRzIGZyYWN0aW9uYWwuXG4gICAgICAgLVxuICAgICAgICAgbmFtZTogcnR0dmFyLXVzXG4gICAgICAgICB0eXBlOiB1MzJcbiAgICAgICAgIGRvYzogfFxuLSAgICAgICAgICBSb3VuZCBUcmlwIFRpbWUgKFJUVCksIGluIHVzZWNzLCB3aXRoIDIgYml0cyBmcmFjdGlvbmFsXG4tICAgICAgICAgIChsZWZ0LXNoaWZ0IGJ5IDMgdG8gZ2V0IHRoZSBtc2VjIHZhbHVlKS5cbisgICAgICAgICAgUm91bmQgVHJpcCBUaW1lIFZBUmlhbmNlIChSVFRWQVIpLCBpbiB1c2Vjcywgd2l0aCAyIGJpdHMgZnJhY3Rpb25hbC5cbiBcbiBvcGVyYXRpb25zOlxuICAgbGlzdDpcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEzVDAxOjEwOjQ1LjExOTcyMzc2MloiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy44LWZsYXNoIiwiRHVyYXRpb24iOjEzMjYxNTg0ODA1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEluaXRpYWwgQXNzZXNzbWVudCBvZiB0aGUgUGF0Y2gncyBGdXp6aW5nIFBvdGVudGlhbCoqXG5cbk9rYXksIHNvIEkgbmVlZCB0byBkZWNpZGUgaWYgdGhpcyBwYXRjaCB3YXJyYW50cyBmdXp6aW5nIHdpdGggc3l6a2FsbGVyLiBGaXJzdCwgbGV0J3MgbWFrZSBzdXJlIEknbSBmb2xsb3dpbmcgYWxsIHRoZSByaWdodCBwcm9jZWR1cmVzIGFuZCBzYWZldHkgcHJlY2F1dGlvbnMuIFNlZW1zIHN0cmFpZ2h0Zm9yd2FyZCBlbm91Z2gg4oCTIGl0J3MgYSByb3V0aW5lIHJlcXVlc3QgZm9yIHRyaWFnZSwgdnVsbmVyYWJpbGl0eSBhc3Nlc3NtZW50LCBhbmQgZGVmZW5zaXZlIG9wZXJhdGlvbnMgcmVsYXRlZCB0byBmdXp6aW5nLiBOb3RoaW5nIGluaGVyZW50bHkgcmlza3kgaGVyZS5cblxuTm93LCBsZXQncyBkaWcgaW50byB0aGUgcGF0Y2ggaXRzZWxmLiBJdCBzZWVtcyB0byBpbnZvbHZlIGBEb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvdGNwX21ldHJpY3MueWFtbGAuIEhtbSwgdGhpcyBpcyB3aGVyZSBpdCBnZXRzIGludGVyZXN0aW5nLiBJcyB0aGlzIFlBTUwgZmlsZSBtZXJlbHkgZG9jdW1lbnRhdGlvbiwgYSB1c2VyLXNwYWNlIHNwZWNpZmljYXRpb24sIG9yIGlzIGl0IGFjdHVhbGx5IHVzZWQgdG8gZ2VuZXJhdGUga2VybmVsIGNvZGUsIG5ldGxpbmsgY29kZSwgb3Igc29tZSBvdGhlciBidWlsZCBhcnRpZmFjdHM/IFRoYXTigJlzIHRoZSBjcnVjaWFsIHF1ZXN0aW9uLiBJdCBjb3VsZCBiZSBwdXJlbHkgZGVzY3JpcHRpdmUsIG9yIGl0IGNvdWxkIGJlIGEgY3J1Y2lhbCBwaWVjZSBvZiB0aGUgY29kZSBnZW5lcmF0aW9uIHByb2Nlc3MuIElmIGl0J3MgdGhlIGxhdHRlciwgdGhlbiBpdCdzICpkZWZpbml0ZWx5KiB3b3J0aCBhIGNsb3NlciBsb29rLCBhbmQgZnV6emluZyBjb3VsZCB1bmNvdmVyIHNvbWUgcmVhbGx5IGludGVyZXN0aW5nIHRoaW5ncy5cblxuSSBuZWVkIHRvIGNvbmZpcm0gd2hldGhlciBhbnkgQyBjb2RlIGlzIGdlbmVyYXRlZCBvciBpZiBpdCdzIHB1cmVseSBkb2N1bWVudGF0aW9uLCBvciBpZiBnZW5lcmF0ZWQgY29kZSBpcyBjb21taXR0ZWQgdG8gdGhlIHRyZWUuIEkgbmVlZCB0byBnZXQgc29tZSBhbnN3ZXJzLiBUaW1lIHRvIGJyZWFrIG91dCBteSB1c3VhbCB0b29scyDigJMgYGdyZXBwZXJgLCBgcmVhZC1maWxlYCwgb3IgbWF5YmUgdGhlIGBjb2Rlc2VhcmNoLWRpci1pbmRleGAgdG8gY2hlY2sgdGhlIGFzc29jaWF0ZWQgbmV0bGluayBjb2RlIGZvciB0aGUgVENQIG1ldHJpY3MuIExldCBtZSBzdGFydCBieSBsb29raW5nIGF0IGBuZXQvaXB2NC90Y3BfbWV0cmljcy5jYCBvciB3aGF0ZXZlciB0aGUgcmVsZXZhbnQgZmlsZSBpcy4gTGV0J3Mgc2VlIGlmIHRoaXMgWUFNTCBmaWxlIGhhcyBhbnkgaW1wYWN0IG9uIHRoZSBrZXJuZWwgY29kZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MzM2NSwiT3V0cHV0VG9rZW5zIjoyNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI4MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEzVDAxOjEwOjU4LjM4MTMxMTY0N1oiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMTUxODU0NjUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidGNwX21ldHJpY3NcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvaXB2NC9NYWtlZmlsZT02PW9iai15ICAgICA6PSByb3V0ZS5vIGluZXRwZWVyLm8gcHJvdG9jb2wubyBcXFxcXFxuLS1cXG5uZXQvaXB2NC9NYWtlZmlsZS0xMC1cXHQgICAgIHRjcC5vIHRjcF9pbnB1dC5vIHRjcF9vdXRwdXQubyB0Y3BfdGltZXIubyB0Y3BfaXB2NC5vIFxcXFxcXG5uZXQvaXB2NC9NYWtlZmlsZToxMTpcXHQgICAgIHRjcF9taW5pc29ja3MubyB0Y3BfY29uZy5vIHRjcF9tZXRyaWNzLm8gdGNwX2Zhc3RvcGVuLm8gXFxcXFxcbm5ldC9pcHY0L01ha2VmaWxlLTEyLVxcdCAgICAgdGNwX3JlY292ZXJ5Lm8gdGNwX3VscC5vIFxcXFxcXG4tLVxcbm5ldC9pcHY0L3RjcC5jPTUyOTE9dm9pZCBfX2luaXQgdGNwX2luaXQodm9pZClcXG4tLVxcbm5ldC9pcHY0L3RjcC5jLTUzODUtXFx0dGNwX3Y0X2luaXQoKTtcXG5uZXQvaXB2NC90Y3AuYzo1Mzg2OlxcdHRjcF9tZXRyaWNzX2luaXQoKTtcXG5uZXQvaXB2NC90Y3AuYy01Mzg3LVxcdEJVR19PTih0Y3BfcmVnaXN0ZXJfY29uZ2VzdGlvbl9jb250cm9sKFxcdTAwMjZ0Y3BfcmVubykgIT0gMCk7XFxuLS1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTEwLSNpbmNsdWRlIFxcdTAwM2NsaW51eC9oYXNoLmhcXHUwMDNlXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzoxMTojaW5jbHVkZSBcXHUwMDNjbGludXgvdGNwX21ldHJpY3MuaFxcdTAwM2VcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTEyLSNpbmNsdWRlIFxcdTAwM2NsaW51eC92bWFsbG9jLmhcXHUwMDNlXFxuLS1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTIzLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6MjQ6c3RhdGljIHN0cnVjdCB0Y3BfbWV0cmljc19ibG9jayAqX190Y3BfZ2V0X21ldHJpY3MoY29uc3Qgc3RydWN0IGluZXRwZWVyX2FkZHIgKnNhZGRyLFxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMjUtXFx0XFx0XFx0XFx0XFx0XFx0ICAgY29uc3Qgc3RydWN0IGluZXRwZWVyX2FkZHIgKmRhZGRyLFxcbi0tXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYz0yOD1zdHJ1Y3QgdGNwX2Zhc3RvcGVuX21ldHJpY3Mge1xcbi0tXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy00MC1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjQxOnN0cnVjdCB0Y3BfbWV0cmljc19ibG9jayB7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo0MjpcXHRzdHJ1Y3QgdGNwX21ldHJpY3NfYmxvY2sgX19yY3VcXHQqdGNwbV9uZXh0O1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNDMtXFx0c3RydWN0IG5ldFxcdFxcdFxcdCp0Y3BtX25ldDtcXG4tLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNTMtXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo1NDpzdGF0aWMgaW5saW5lIHN0cnVjdCBuZXQgKnRtX25ldChjb25zdCBzdHJ1Y3QgdGNwX21ldHJpY3NfYmxvY2sgKnRtKVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNTUte1xcbi0tXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy01OS1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjYwOnN0YXRpYyBib29sIHRjcF9tZXRyaWNfbG9ja2VkKHN0cnVjdCB0Y3BfbWV0cmljc19ibG9jayAqdG0sXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy02MS1cXHRcXHRcXHQgICAgICBlbnVtIHRjcF9tZXRyaWNfaW5kZXggaWR4KVxcbi0tXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy02Ni1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjY3OnN0YXRpYyB1MzIgdGNwX21ldHJpY19nZXQoY29uc3Qgc3RydWN0IHRjcF9tZXRyaWNzX2Jsb2NrICp0bSxcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTY4LVxcdFxcdFxcdCAgZW51bSB0Y3BfbWV0cmljX2luZGV4IGlkeClcXG4tLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNzMtXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo3NDpzdGF0aWMgdm9pZCB0Y3BfbWV0cmljX3NldChzdHJ1Y3QgdGNwX21ldHJpY3NfYmxvY2sgKnRtLFxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNzUtXFx0XFx0XFx0ICAgZW51bSB0Y3BfbWV0cmljX2luZGV4IGlkeCxcXG4tLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM9ODg9c3RydWN0IHRjcG1faGFzaF9idWNrZXQge1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6ODk6XFx0c3RydWN0IHRjcF9tZXRyaWNzX2Jsb2NrIF9fcmN1XFx0KmNoYWluO1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTAtfTtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTkxLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6OTI6c3RhdGljIHN0cnVjdCB0Y3BtX2hhc2hfYnVja2V0XFx0KnRjcF9tZXRyaWNzX2hhc2ggX19yZWFkX21vc3RseTtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjkzOnN0YXRpYyB1bnNpZ25lZCBpbnRcXHRcXHR0Y3BfbWV0cmljc19oYXNoX2xvZyBfX3JlYWRfbW9zdGx5O1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTQtXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo5NTpzdGF0aWMgREVGSU5FX1NQSU5MT0NLKHRjcF9tZXRyaWNzX2xvY2spO1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTYtc3RhdGljIERFRklORV9TRVFMT0NLKGZhc3RvcGVuX3NlcWxvY2spO1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTctXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo5ODpzdGF0aWMgdm9pZCB0Y3BtX3N1Y2tfZHN0KHN0cnVjdCB0Y3BfbWV0cmljc19ibG9jayAqdG0sXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy05OS1cXHRcXHRcXHQgIGNvbnN0IHN0cnVjdCBkc3RfZW50cnkgKmRzdCxcXG4tLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMTQ0LVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6MTQ1OnN0YXRpYyB2b2lkIHRjcG1fY2hlY2tfc3RhbXAoc3RydWN0IHRjcF9tZXRyaWNzX2Jsb2NrICp0bSxcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTE0Ni1cXHRcXHRcXHQgICAgIGNvbnN0IHN0cnVjdCBkc3RfZW50cnkgKmRzdClcXG4tLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMTU3LSNkZWZpbmUgVENQX01FVFJJQ1NfUkVDTEFJTV9ERVBUSFxcdDVcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjE1ODojZGVmaW5lIFRDUF9NRVRSSUNTX1JFQ0xBSU1fUFRSXFx0XFx0KHN0cnVjdCB0Y3BfbWV0cmljc19ibG9jayAqKSAweDFVTFxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMTU5LVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMTYwLSNkZWZpbmUgZGVyZWZfbG9ja2VkKHApXFx0XFxcXFxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6MTYxOlxcdHJjdV9kZXJlZmVyZW5jZV9wcm90ZWN0ZWQocCwgbG9ja2RlcF9pc19oZWxkKFxcdTAwMjZ0Y3BfbWV0cmljc19sb2NrKSlcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTE2Mi1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjE2MzpzdGF0aWMgc3RydWN0IHRjcF9tZXRyaWNzX2Jsb2NrICp0Y3BtX25ldyhzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QsXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0xNjQtXFx0XFx0XFx0XFx0XFx0ICBzdHJ1Y3QgaW5ldHBlZXJfYWRkciAqc2FkZHIsXFxuLS1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTE2Ny17XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzoxNjg6XFx0c3RydWN0IHRjcF9tZXRyaWNzX2Jsb2NrICp0bTtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTE2OS1cXHRib29sIHJlY2xhaW0gPSBmYWxzZTtcXG4tLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMTcxLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6MTcyOlxcdHNwaW5fbG9ja19iaChcXHUwMDI2dGNwX21ldHJpY3NfbG9jayk7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0xNzMtXFx0bmV0ID0gZHN0X2Rldl9uZXRfcmN1KGRzdCk7XFxuLS1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTE4OC1cXHRpZiAodW5saWtlbHkocmVjbGFpbSkpIHtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjE4OTpcXHRcXHRzdHJ1Y3QgdGNwX21ldHJpY3NfYmxvY2sgKm9sZGVzdDtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTE5MC1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjE5MTpcXHRcXHRvbGRlc3QgPSBkZXJlZl9sb2NrZWQodGNwX21ldHJpY3NfaGFzaFtoYXNoXS5jaGFpbik7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0xOTItXFx0XFx0Zm9yICh0bSA9IGRlcmVmX2xvY2tlZChvbGRlc3QtXFx1MDAzZXRjcG1fbmV4dCk7IHRtO1xcbi0tXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0yMTItXFx0aWYgKGxpa2VseSghcmVjbGFpbSkpIHtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjIxMzpcXHRcXHR0bS1cXHUwMDNldGNwbV9uZXh0ID0gdGNwX21ldHJpY3NfaGFzaFtoYXNoXS5jaGFpbjtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjIxNDpcXHRcXHRyY3VfYXNzaWduX3BvaW50ZXIodGNwX21ldHJpY3NfaGFzaFtoYXNoXS5jaGFpbiwgdG0pO1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMjE1LVxcdH1cXG4tLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMjE3LW91dF91bmxvY2s6XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzoyMTg6XFx0c3Bpbl91bmxvY2tfYmgoXFx1MDAyNnRjcF9tZXRyaWNzX2xvY2spO1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMjE5LVxcdHJldHVybiB0bTtcXG4tLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMjIxLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6MjIyOnN0YXRpYyBzdHJ1Y3QgdGNwX21ldHJpY3NfYmxvY2sgKnRjcF9nZXRfZW5jb2RlKHN0cnVjdCB0Y3BfbWV0cmljc19ibG9jayAqdG0sIGludCBkZXB0aClcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTIyMy17XFxuLS1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTIzMC1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjIzMTpzdGF0aWMgc3RydWN0IHRjcF9tZXRyaWNzX2Jsb2NrICpfX3RjcF9nZXRfbWV0cmljcyhjb25zdCBzdHJ1Y3QgaW5ldHBlZXJfYWRkciAqc2FkZHIsXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0yMzItXFx0XFx0XFx0XFx0XFx0XFx0ICAgY29uc3Qgc3RydWN0IGluZXRwZWVyX2FkZHIgKmRhZGRyLFxcbi0tXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0yMzQte1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6MjM1OlxcdHN0cnVjdCB0Y3BfbWV0cmljc19ibG9jayAqdG07XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0yMzYtXFx0aW50IGRlcHRoID0gMDtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTIzNy1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjIzODpcXHRmb3IgKHRtID0gcmN1X2RlcmVmZXJlbmNlKHRjcF9tZXRyaWNzX2hhc2hbaGFzaF0uY2hhaW4pOyB0bTtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTIzOS1cXHQgICAgIHRtID0gcmN1X2RlcmVmZXJlbmNlKHRtLVxcdTAwM2V0Y3BtX25leHQpKSB7XFxuLS1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTI0OC1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjI0OTpzdGF0aWMgc3RydWN0IHRjcF9tZXRyaWNzX2Jsb2NrICpfX3RjcF9nZXRfbWV0cmljc19yZXEoc3RydWN0IHJlcXVlc3Rfc29jayAqcmVxLFxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMjUwLVxcdFxcdFxcdFxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QpXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0yNTEte1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6MjUyOlxcdHN0cnVjdCB0Y3BfbWV0cmljc19ibG9jayAqdG07XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0yNTMtXFx0c3RydWN0IGluZXRwZWVyX2FkZHIgc2FkZHIsIGRhZGRyO1xcbi0tXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0yNzctXFx0aGFzaCBePSBuZXRfaGFzaF9taXgobmV0KTtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjI3ODpcXHRoYXNoID0gaGFzaF8zMihoYXNoLCB0Y3BfbWV0cmljc19oYXNoX2xvZyk7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0yNzktXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzoyODA6XFx0Zm9yICh0bSA9IHJjdV9kZXJlZmVyZW5jZSh0Y3BfbWV0cmljc19oYXNoW2hhc2hdLmNoYWluKTsgdG07XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0yODEtXFx0ICAgICB0bSA9IHJjdV9kZXJlZmVyZW5jZSh0bS1cXHUwMDNldGNwbV9uZXh0KSkge1xcbi0tXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0yOTAtXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzoyOTE6c3RhdGljIHN0cnVjdCB0Y3BfbWV0cmljc19ibG9jayAqdGNwX2dldF9tZXRyaWNzKHN0cnVjdCBzb2NrICpzayxcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTI5Mi1cXHRcXHRcXHRcXHRcXHRcXHQgc3RydWN0IGRzdF9lbnRyeSAqZHN0LFxcbi0tXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0yOTQte1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6Mjk1OlxcdHN0cnVjdCB0Y3BfbWV0cmljc19ibG9jayAqdG07XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0yOTYtXFx0c3RydWN0IGluZXRwZWVyX2FkZHIgc2FkZHIsIGRhZGRyO1xcbi0tXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0zMjItXFx0aGFzaCBePSBuZXRfaGFzaF9taXgobmV0KTtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjMyMzpcXHRoYXNoID0gaGFzaF8zMihoYXNoLCB0Y3BfbWV0cmljc19oYXNoX2xvZyk7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0zMjQtXFxuLS1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jPTM0MD12b2lkIHRjcF91cGRhdGVfbWV0cmljcyhzdHJ1Y3Qgc29jayAqc2spXFxuLS1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTM0NS1cXHRzdHJ1Y3QgbmV0ICpuZXQgPSBzb2NrX25ldChzayk7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzozNDY6XFx0c3RydWN0IHRjcF9tZXRyaWNzX2Jsb2NrICp0bTtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTM0Ny1cXHR1bnNpZ25lZCBsb25nIHJ0dDtcXG4tLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM9NDY0PXZvaWQgdGNwX2luaXRfbWV0cmljcyhzdHJ1Y3Qgc29jayAqc2spXFxuLS1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTQ2OC1cXHRzdHJ1Y3QgbmV0ICpuZXQgPSBzb2NrX25ldChzayk7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo0Njk6XFx0c3RydWN0IHRjcF9tZXRyaWNzX2Jsb2NrICp0bTtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTQ3MC1cXHR1MzIgdmFsLCBjcnR0ID0gMDsgLyogY2FjaGVkIFJUVCBzY2FsZWQgYnkgOCAqL1xcbi0tXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYz01NDI9Ym9vbCB0Y3BfcGVlcl9pc19wcm92ZW4oc3RydWN0IHJlcXVlc3Rfc29jayAqcmVxLCBzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QpXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy01NDMte1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6NTQ0OlxcdHN0cnVjdCB0Y3BfbWV0cmljc19ibG9jayAqdG07XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy01NDUtXFx0Ym9vbCByZXQ7XFxuLS1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jPTU2MT12b2lkIHRjcF9mYXN0b3Blbl9jYWNoZV9nZXQoc3RydWN0IHNvY2sgKnNrLCB1MTYgKm1zcyxcXG4tLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNTYzLXtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjU2NDpcXHRzdHJ1Y3QgdGNwX21ldHJpY3NfYmxvY2sgKnRtO1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNTY1LVxcbi0tXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYz01ODQ9dm9pZCB0Y3BfZmFzdG9wZW5fY2FjaGVfc2V0KHN0cnVjdCBzb2NrICpzaywgdTE2IG1zcyxcXG4tLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNTg4LVxcdHN0cnVjdCBkc3RfZW50cnkgKmRzdCA9IF9fc2tfZHN0X2dldChzayk7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo1ODk6XFx0c3RydWN0IHRjcF9tZXRyaWNzX2Jsb2NrICp0bTtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTU5MC1cXG4tLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNjE1LVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6NjE2OnN0YXRpYyBzdHJ1Y3QgZ2VubF9mYW1pbHkgdGNwX21ldHJpY3NfbmxfZmFtaWx5O1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNjE3LVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6NjE4OnN0YXRpYyBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSB0Y3BfbWV0cmljc19ubF9wb2xpY3lbVENQX01FVFJJQ1NfQVRUUl9NQVggKyAxXSA9IHtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTYxOS1cXHRbVENQX01FVFJJQ1NfQVRUUl9BRERSX0lQVjRdXFx0PSB7IC50eXBlID0gTkxBX1UzMiwgfSxcXG4tLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNjQzLS8qIEFkZCBhdHRyaWJ1dGVzLCBjYWxsZXIgY2FuY2VscyBpdHMgaGVhZGVyIG9uIGZhaWx1cmUgKi9cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjY0NDpzdGF0aWMgaW50IHRjcF9tZXRyaWNzX2ZpbGxfaW5mbyhzdHJ1Y3Qgc2tfYnVmZiAqbXNnLFxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6NjQ1OlxcdFxcdFxcdFxcdCBzdHJ1Y3QgdGNwX21ldHJpY3NfYmxvY2sgKnRtKVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNjQ2LXtcXG4tLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNzQzLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6NzQ0OnN0YXRpYyBpbnQgdGNwX21ldHJpY3NfZHVtcF9pbmZvKHN0cnVjdCBza19idWZmICpza2IsXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy03NDUtXFx0XFx0XFx0XFx0IHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYixcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjc0NjpcXHRcXHRcXHRcXHQgc3RydWN0IHRjcF9tZXRyaWNzX2Jsb2NrICp0bSlcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTc0Ny17XFxuLS1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTc1MC1cXHRoZHIgPSBnZW5sbXNnX3B1dChza2IsIE5FVExJTktfQ0IoY2ItXFx1MDAzZXNrYikucG9ydGlkLCBjYi1cXHUwMDNlbmxoLVxcdTAwM2VubG1zZ19zZXEsXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo3NTE6XFx0XFx0XFx0ICBcXHUwMDI2dGNwX21ldHJpY3NfbmxfZmFtaWx5LCBOTE1fRl9NVUxUSSxcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTc1Mi1cXHRcXHRcXHQgIFRDUF9NRVRSSUNTX0NNRF9HRVQpO1xcbi0tXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy03NTUtXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo3NTY6XFx0aWYgKHRjcF9tZXRyaWNzX2ZpbGxfaW5mbyhza2IsIHRtKSBcXHUwMDNjIDApXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy03NTctXFx0XFx0Z290byBubGFfcHV0X2ZhaWx1cmU7XFxuLS1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTc2Ni1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjc2NzpzdGF0aWMgaW50IHRjcF9tZXRyaWNzX25sX2R1bXAoc3RydWN0IHNrX2J1ZmYgKnNrYixcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTc2OC1cXHRcXHRcXHQgICAgICAgc3RydWN0IG5ldGxpbmtfY2FsbGJhY2sgKmNiKVxcbi0tXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy03NzAtXFx0c3RydWN0IG5ldCAqbmV0ID0gc29ja19uZXQoc2tiLVxcdTAwM2Vzayk7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo3NzE6XFx0dW5zaWduZWQgaW50IG1heF9yb3dzID0gMVUgXFx1MDAzY1xcdTAwM2MgdGNwX21ldHJpY3NfaGFzaF9sb2c7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy03NzItXFx0dW5zaWduZWQgaW50IHJvdywgc19yb3cgPSBjYi1cXHUwMDNlYXJnc1swXTtcXG4tLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNzc2LVxcdGZvciAocm93ID0gc19yb3c7IHJvdyBcXHUwMDNjIG1heF9yb3dzOyByb3crKywgc19jb2wgPSAwKSB7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo3Nzc6XFx0XFx0c3RydWN0IHRjcF9tZXRyaWNzX2Jsb2NrICp0bTtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjc3ODpcXHRcXHRzdHJ1Y3QgdGNwbV9oYXNoX2J1Y2tldCAqaGIgPSB0Y3BfbWV0cmljc19oYXNoICsgcm93O1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNzc5LVxcbi0tXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy03ODYtXFx0XFx0XFx0XFx0Y29udGludWU7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo3ODc6XFx0XFx0XFx0cmVzID0gdGNwX21ldHJpY3NfZHVtcF9pbmZvKHNrYiwgY2IsIHRtKTtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTc4OC1cXHRcXHRcXHRpZiAocmVzIFxcdTAwM2MgMCkge1xcbi0tXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYz04MzU9c3RhdGljIGludCBwYXJzZV9ubF9zYWRkcihzdHJ1Y3QgZ2VubF9pbmZvICppbmZvLCBzdHJ1Y3QgaW5ldHBlZXJfYWRkciAqYWRkcilcXG4tLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtODQxLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6ODQyOnN0YXRpYyBpbnQgdGNwX21ldHJpY3NfbmxfY21kX2dldChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtODQzLXtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjg0NDpcXHRzdHJ1Y3QgdGNwX21ldHJpY3NfYmxvY2sgKnRtO1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtODQ1LVxcdHN0cnVjdCBpbmV0cGVlcl9hZGRyIHNhZGRyLCBkYWRkcjtcXG4tLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtODY0LVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6ODY1OlxcdHJlcGx5ID0gZ2VubG1zZ19wdXRfcmVwbHkobXNnLCBpbmZvLCBcXHUwMDI2dGNwX21ldHJpY3NfbmxfZmFtaWx5LCAwLFxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtODY2LVxcdFxcdFxcdFxcdCAgaW5mby1cXHUwMDNlZ2VubGhkci1cXHUwMDNlY21kKTtcXG4tLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtODcwLVxcdGhhc2ggXj0gbmV0X2hhc2hfbWl4KG5ldCk7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo4NzE6XFx0aGFzaCA9IGhhc2hfMzIoaGFzaCwgdGNwX21ldHJpY3NfaGFzaF9sb2cpO1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtODcyLVxcdHJldCA9IC1FU1JDSDtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTg3My1cXHRyY3VfcmVhZF9sb2NrKCk7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo4NzQ6XFx0Zm9yICh0bSA9IHJjdV9kZXJlZmVyZW5jZSh0Y3BfbWV0cmljc19oYXNoW2hhc2hdLmNoYWluKTsgdG07XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy04NzUtXFx0ICAgICB0bSA9IHJjdV9kZXJlZmVyZW5jZSh0bS1cXHUwMDNldGNwbV9uZXh0KSkge1xcbi0tXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy04NzgtXFx0XFx0ICAgIG5ldF9lcSh0bV9uZXQodG0pLCBuZXQpKSB7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo4Nzk6XFx0XFx0XFx0cmV0ID0gdGNwX21ldHJpY3NfZmlsbF9pbmZvKG1zZywgdG0pO1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtODgwLVxcdFxcdFxcdGJyZWFrO1xcbi0tXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy04OTctXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo4OTg6c3RhdGljIHZvaWQgdGNwX21ldHJpY3NfZmx1c2hfYWxsKHN0cnVjdCBuZXQgKm5ldClcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTg5OS17XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo5MDA6XFx0dW5zaWduZWQgaW50IG1heF9yb3dzID0gMVUgXFx1MDAzY1xcdTAwM2MgdGNwX21ldHJpY3NfaGFzaF9sb2c7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo5MDE6XFx0c3RydWN0IHRjcG1faGFzaF9idWNrZXQgKmhiID0gdGNwX21ldHJpY3NfaGFzaDtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjkwMjpcXHRzdHJ1Y3QgdGNwX21ldHJpY3NfYmxvY2sgKnRtO1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTAzLVxcdHVuc2lnbmVkIGludCByb3c7XFxuLS1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTkwNS1cXHRmb3IgKHJvdyA9IDA7IHJvdyBcXHUwMDNjIG1heF9yb3dzOyByb3crKywgaGIrKykge1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6OTA2OlxcdFxcdHN0cnVjdCB0Y3BfbWV0cmljc19ibG9jayBfX3JjdSAqKnBwID0gXFx1MDAyNmhiLVxcdTAwM2VjaGFpbjtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTkwNy1cXHRcXHRib29sIG1hdGNoO1xcbi0tXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy05MTEtXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo5MTI6XFx0XFx0c3Bpbl9sb2NrX2JoKFxcdTAwMjZ0Y3BfbWV0cmljc19sb2NrKTtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTkxMy1cXHRcXHRmb3IgKHRtID0gZGVyZWZfbG9ja2VkKCpwcCk7IHRtOyB0bSA9IGRlcmVmX2xvY2tlZCgqcHApKSB7XFxuLS1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTkyMi1cXHRcXHR9XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo5MjM6XFx0XFx0c3Bpbl91bmxvY2tfYmgoXFx1MDAyNnRjcF9tZXRyaWNzX2xvY2spO1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTI0LVxcdFxcdGNvbmRfcmVzY2hlZCgpO1xcbi0tXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy05MjctXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo5Mjg6c3RhdGljIGludCB0Y3BfbWV0cmljc19ubF9jbWRfZGVsKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy05Mjkte1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTMwLVxcdHN0cnVjdCB0Y3BtX2hhc2hfYnVja2V0ICpoYjtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjkzMTpcXHRzdHJ1Y3QgdGNwX21ldHJpY3NfYmxvY2sgKnRtO1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6OTMyOlxcdHN0cnVjdCB0Y3BfbWV0cmljc19ibG9jayBfX3JjdSAqKnBwO1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTMzLVxcdHN0cnVjdCBpbmV0cGVlcl9hZGRyIHNhZGRyLCBkYWRkcjtcXG4tLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTQyLVxcdGlmIChyZXQgXFx1MDAzZSAwKSB7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo5NDM6XFx0XFx0dGNwX21ldHJpY3NfZmx1c2hfYWxsKG5ldCk7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy05NDQtXFx0XFx0cmV0dXJuIDA7XFxuLS1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTk1MC1cXHRoYXNoIF49IG5ldF9oYXNoX21peChuZXQpO1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6OTUxOlxcdGhhc2ggPSBoYXNoXzMyKGhhc2gsIHRjcF9tZXRyaWNzX2hhc2hfbG9nKTtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjk1MjpcXHRoYiA9IHRjcF9tZXRyaWNzX2hhc2ggKyBoYXNoO1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTUzLVxcdHBwID0gXFx1MDAyNmhiLVxcdTAwM2VjaGFpbjtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjk1NDpcXHRzcGluX2xvY2tfYmgoXFx1MDAyNnRjcF9tZXRyaWNzX2xvY2spO1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTU1LVxcdGZvciAodG0gPSBkZXJlZl9sb2NrZWQoKnBwKTsgdG07IHRtID0gZGVyZWZfbG9ja2VkKCpwcCkpIHtcXG4tLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTY1LVxcdH1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjk2NjpcXHRzcGluX3VubG9ja19iaChcXHUwMDI2dGNwX21ldHJpY3NfbG9jayk7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy05NjctXFx0aWYgKCFmb3VuZClcXG4tLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTcxLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6OTcyOnN0YXRpYyBjb25zdCBzdHJ1Y3QgZ2VubF9zbWFsbF9vcHMgdGNwX21ldHJpY3Nfbmxfb3BzW10gPSB7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy05NzMtXFx0e1xcbi0tXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy05NzUtXFx0XFx0LnZhbGlkYXRlID0gR0VOTF9ET05UX1ZBTElEQVRFX1NUUklDVCB8IEdFTkxfRE9OVF9WQUxJREFURV9EVU1QLFxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6OTc2OlxcdFxcdC5kb2l0ID0gdGNwX21ldHJpY3NfbmxfY21kX2dldCxcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjk3NzpcXHRcXHQuZHVtcGl0ID0gdGNwX21ldHJpY3NfbmxfZHVtcCxcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTk3OC1cXHR9LFxcbi0tXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy05ODEtXFx0XFx0LnZhbGlkYXRlID0gR0VOTF9ET05UX1ZBTElEQVRFX1NUUklDVCB8IEdFTkxfRE9OVF9WQUxJREFURV9EVU1QLFxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6OTgyOlxcdFxcdC5kb2l0ID0gdGNwX21ldHJpY3NfbmxfY21kX2RlbCxcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTk4My1cXHRcXHQuZmxhZ3MgPSBHRU5MX0FETUlOX1BFUk0sXFxuLS1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTk4Ni1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjk4NzpzdGF0aWMgc3RydWN0IGdlbmxfZmFtaWx5IHRjcF9tZXRyaWNzX25sX2ZhbWlseSBfX3JvX2FmdGVyX2luaXQgPSB7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy05ODgtXFx0LmhkcnNpemVcXHQ9IDAsXFxuLS1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTk5MS1cXHQubWF4YXR0clxcdD0gVENQX01FVFJJQ1NfQVRUUl9NQVgsXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo5OTI6XFx0LnBvbGljeSA9IHRjcF9tZXRyaWNzX25sX3BvbGljeSxcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTk5My1cXHQubmV0bnNva1xcdD0gdHJ1ZSxcXG4tLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTk1LVxcdC5tb2R1bGVcXHRcXHQ9IFRISVNfTU9EVUxFLFxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6OTk2OlxcdC5zbWFsbF9vcHNcXHQ9IHRjcF9tZXRyaWNzX25sX29wcyxcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjk5NzpcXHQubl9zbWFsbF9vcHNcXHQ9IEFSUkFZX1NJWkUodGNwX21ldHJpY3Nfbmxfb3BzKSxcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTk5OC1cXHQucmVzdl9zdGFydF9vcFxcdD0gVENQX01FVFJJQ1NfQ01EX0RFTCArIDEsXFxuLS1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jPTEwMTU9X19zZXR1cChcXFwidGNwbWhhc2hfZW50cmllcz1cXFwiLCBzZXRfdGNwbWhhc2hfZW50cmllcyk7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0xMDE2LVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6MTAxNzpzdGF0aWMgdm9pZCBfX2luaXQgdGNwX21ldHJpY3NfaGFzaF9hbGxvYyh2b2lkKVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMTAxOC17XFxuLS1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTEwMjgtXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzoxMDI5OlxcdHRjcF9tZXRyaWNzX2hhc2hfbG9nID0gb3JkZXJfYmFzZV8yKHNsb3RzKTtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjEwMzA6XFx0c2l6ZSA9IHNpemVvZihzdHJ1Y3QgdGNwbV9oYXNoX2J1Y2tldCkgXFx1MDAzY1xcdTAwM2MgdGNwX21ldHJpY3NfaGFzaF9sb2c7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0xMDMxLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6MTAzMjpcXHR0Y3BfbWV0cmljc19oYXNoID0ga3Z6YWxsb2Moc2l6ZSwgR0ZQX0tFUk5FTCk7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzoxMDMzOlxcdGlmICghdGNwX21ldHJpY3NfaGFzaClcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjEwMzQ6XFx0XFx0cGFuaWMoXFxcIkNvdWxkIG5vdCBhbGxvY2F0ZSB0aGUgdGNwX21ldHJpY3MgaGFzaCB0YWJsZVxcXFxuXFxcIik7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0xMDM1LX1cXG4tLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM9MTAzNz1zdGF0aWMgdm9pZCBfX25ldF9leGl0IHRjcF9uZXRfbWV0cmljc19leGl0X2JhdGNoKHN0cnVjdCBsaXN0X2hlYWQgKm5ldF9leGl0X2xpc3QpXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0xMDM4LXtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjEwMzk6XFx0dGNwX21ldHJpY3NfZmx1c2hfYWxsKE5VTEwpO1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMTA0MC19XFxuLS1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jPTEwNDI9c3RhdGljIF9fbmV0X2luaXRkYXRhIHN0cnVjdCBwZXJuZXRfb3BlcmF0aW9ucyB0Y3BfbmV0X21ldHJpY3Nfb3BzID0ge1xcbi0tXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0xMDQ1LVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6MTA0Njp2b2lkIF9faW5pdCB0Y3BfbWV0cmljc19pbml0KHZvaWQpXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0xMDQ3LXtcXG4tLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMTA0OS1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjEwNTA6XFx0dGNwX21ldHJpY3NfaGFzaF9hbGxvYygpO1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMTA1MS1cXG4tLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMTA1NS1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjEwNTY6XFx0cmV0ID0gZ2VubF9yZWdpc3Rlcl9mYW1pbHkoXFx1MDAyNnRjcF9tZXRyaWNzX25sX2ZhbWlseSk7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0xMDU3LVxcdGlmIChyZXQgXFx1MDAzYyAwKVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6MTA1ODpcXHRcXHRwYW5pYyhcXFwiQ291bGQgbm90IHJlZ2lzdGVyIHRjcF9tZXRyaWNzIGdlbmVyaWMgbmV0bGlua1xcXFxuXFxcIik7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0xMDU5LX1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTNUMDE6MTA6NTguNjk2NTAyMzgyWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjgtZmxhc2giLCJEdXJhdGlvbiI6Mzk2MjI2NDQyOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHN1bW1hcnksIGFzIHRob3VnaCBJJ20gdGhpbmtpbmcgdGhyb3VnaCB0aGlzIHByb2Nlc3M6XG5cbioqRGl2aW5nIGludG8gYHRjcF9tZXRyaWNzX25sX3BvbGljeWAqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBgdGNwX21ldHJpY3NfbmxfcG9saWN5YCB3aXRoaW4gYG5ldC9pcHY0L3RjcF9tZXRyaWNzLmNgLiBUaGUgZmFjdCB0aGF0IGl0J3MgaGFyZGNvZGVkIEMgY29kZSBpbW1lZGlhdGVseSBtYWtlcyBtZSB0aGluayBhYm91dCBwb3RlbnRpYWwgcmlnaWRpdHkgYW5kIG1haW50ZW5hbmNlIGhlYWRhY2hlcyBkb3duIHRoZSBsaW5lLCBidXQgbGV0J3Mgbm90IGp1bXAgdG8gY29uY2x1c2lvbnMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgaXQncyAqZG9pbmcqLlxuXG5JJ2xsIGp1bXAgc3RyYWlnaHQgaW50byB0aGUgY29kZS4gU3BlY2lmaWNhbGx5LCBsZXQncyB6ZXJvIGluIG9uIGxpbmVzIDYxNSB0aHJvdWdoIDY0NS4gVGhhdCdzIHVzdWFsbHkgYSBnb29kIGNodW5rIHRvIGV4YW1pbmUgZm9yIHVuZGVyc3RhbmRpbmcgaXRzIGNvcmUgZnVuY3Rpb24uIEknbGwgYmUgbG9va2luZyBmb3IgdGhpbmdzIGxpa2U6XG5cbiogICBXaGF0IGRhdGEgc3RydWN0dXJlcyBhcmUgYmVpbmcgdXNlZD9cbiogICBXaGF0IGxvZ2ljIGlzIGltcGxlbWVudGVkIGluIHRoaXMgc2VjdGlvbiBvZiBjb2RlP1xuKiAgIElzIHRoZXJlIGEgd2F5IGZvciB0aGUgcG9saWN5IHRvIGJlIGVhc2lseSBjb25maWd1cmVkIChlLmcuIHRocm91Z2ggdGhlIG5ldHdvcmsgbGF5ZXIpPyBPciwgYW0gSSBsb29raW5nIGF0IGEgXCJiYWtlZCBpblwiIHNldCBvZiBydWxlcz9cbiogICBBcmUgdGhlcmUgYW55IGRlcGVuZGVuY2llcyBvbiBvdGhlciBwYXJ0cyBvZiB0aGUga2VybmVsLCBvciBleHRlcm5hbCBsaWJyYXJpZXM/XG4qICAgSG93IGlzIHRoZSBwb2xpY3kgYXBwbGllZCAoZS5nLiwgYXQgd2hhdCBwb2ludCBpbiB0aGUgVENQIHN0YWNrIGRvZXMgaXQgdGFrZSBlZmZlY3QpP1xuKiAgIFdoYXQgaXMgaXRzIHB1cnBvc2U/ICh0aGlzIGlzIGtleSwgc2luY2UgdGhlcmUgaXMgcHJvYmFibHkgYSBjb21tZW50IG9yIGRvY3VtZW50YXRpb24gc29tZXdoZXJlKVxuXG5UaGlzIGluZm9ybWF0aW9uIHdpbGwgY2xhcmlmeSBpZiB0aGlzIHBvbGljeSBpcyBzb21ldGhpbmcgdGhhdCBJIG5lZWQgdG8gYmUgYXdhcmUgb2YgaWYgSSBwbGFuIHRvIG1ha2UgYWRqdXN0bWVudHMgdG8gbmV0d29ya2luZy5cblxuXG4iLCJJbnB1dFRva2VucyI6MTEwMzAsIk91dHB1dFRva2VucyI6MzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1NSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0xM1QwMToxMTowMi42NTg3NjkxNDFaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5ODYwMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJuZXQvaXB2NC90Y3BfbWV0cmljcy5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDYxNSxcbiAgXCJMaW5lQ291bnRcIjogMzVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDYxNTpcXHRcXG4gNjE2OlxcdHN0YXRpYyBzdHJ1Y3QgZ2VubF9mYW1pbHkgdGNwX21ldHJpY3NfbmxfZmFtaWx5O1xcbiA2MTc6XFx0XFxuIDYxODpcXHRzdGF0aWMgY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgdGNwX21ldHJpY3NfbmxfcG9saWN5W1RDUF9NRVRSSUNTX0FUVFJfTUFYICsgMV0gPSB7XFxuIDYxOTpcXHRcXHRbVENQX01FVFJJQ1NfQVRUUl9BRERSX0lQVjRdXFx0PSB7IC50eXBlID0gTkxBX1UzMiwgfSxcXG4gNjIwOlxcdFxcdFtUQ1BfTUVUUklDU19BVFRSX0FERFJfSVBWNl1cXHQ9XFxuIDYyMTpcXHRcXHRcXHROTEFfUE9MSUNZX0VYQUNUX0xFTihzaXplb2Yoc3RydWN0IGluNl9hZGRyKSksXFxuIDYyMjpcXHRcXG4gNjIzOlxcdFxcdFtUQ1BfTUVUUklDU19BVFRSX1NBRERSX0lQVjRdXFx0PSB7IC50eXBlID0gTkxBX1UzMiwgfSxcXG4gNjI0OlxcdFxcdFtUQ1BfTUVUUklDU19BVFRSX1NBRERSX0lQVjZdXFx0PVxcbiA2MjU6XFx0XFx0XFx0TkxBX1BPTElDWV9FWEFDVF9MRU4oc2l6ZW9mKHN0cnVjdCBpbjZfYWRkcikpLFxcbiA2MjY6XFx0XFxuIDYyNzpcXHRcXHQvKiBGb2xsb3dpbmcgYXR0cmlidXRlcyBhcmUgbm90IHJlY2VpdmVkIGZvciBHRVQvREVMLFxcbiA2Mjg6XFx0XFx0ICogd2Uga2VlcCB0aGVtIGZvciByZWZlcmVuY2VcXG4gNjI5OlxcdFxcdCAqL1xcbiA2MzA6XFx0I2lmIDBcXG4gNjMxOlxcdFxcdFtUQ1BfTUVUUklDU19BVFRSX0FHRV1cXHRcXHQ9IHsgLnR5cGUgPSBOTEFfTVNFQ1MsIH0sXFxuIDYzMjpcXHRcXHRbVENQX01FVFJJQ1NfQVRUUl9UV19UU1ZBTF1cXHQ9IHsgLnR5cGUgPSBOTEFfVTMyLCB9LFxcbiA2MzM6XFx0XFx0W1RDUF9NRVRSSUNTX0FUVFJfVFdfVFNfU1RBTVBdXFx0PSB7IC50eXBlID0gTkxBX1MzMiwgfSxcXG4gNjM0OlxcdFxcdFtUQ1BfTUVUUklDU19BVFRSX1ZBTFNdXFx0XFx0PSB7IC50eXBlID0gTkxBX05FU1RFRCwgfSxcXG4gNjM1OlxcdFxcdFtUQ1BfTUVUUklDU19BVFRSX0ZPUEVOX01TU11cXHQ9IHsgLnR5cGUgPSBOTEFfVTE2LCB9LFxcbiA2MzY6XFx0XFx0W1RDUF9NRVRSSUNTX0FUVFJfRk9QRU5fU1lOX0RST1BTXVxcdD0geyAudHlwZSA9IE5MQV9VMTYsIH0sXFxuIDYzNzpcXHRcXHRbVENQX01FVFJJQ1NfQVRUUl9GT1BFTl9TWU5fRFJPUF9UU11cXHQ9IHsgLnR5cGUgPSBOTEFfTVNFQ1MsIH0sXFxuIDYzODpcXHRcXHRbVENQX01FVFJJQ1NfQVRUUl9GT1BFTl9DT09LSUVdXFx0PSB7IC50eXBlID0gTkxBX0JJTkFSWSxcXG4gNjM5OlxcdFxcdFxcdFxcdFxcdFxcdCAgICAubGVuID0gVENQX0ZBU1RPUEVOX0NPT0tJRV9NQVgsIH0sXFxuIDY0MDpcXHQjZW5kaWZcXG4gNjQxOlxcdH07XFxuIDY0MjpcXHRcXG4gNjQzOlxcdC8qIEFkZCBhdHRyaWJ1dGVzLCBjYWxsZXIgY2FuY2VscyBpdHMgaGVhZGVyIG9uIGZhaWx1cmUgKi9cXG4gNjQ0OlxcdHN0YXRpYyBpbnQgdGNwX21ldHJpY3NfZmlsbF9pbmZvKHN0cnVjdCBza19idWZmICptc2csXFxuIDY0NTpcXHRcXHRcXHRcXHRcXHQgc3RydWN0IHRjcF9tZXRyaWNzX2Jsb2NrICp0bSlcXG4gNjQ2OlxcdHtcXG4gNjQ3OlxcdFxcdHN0cnVjdCBubGF0dHIgKm5lc3Q7XFxuIDY0ODpcXHRcXHRpbnQgaTtcXG4gNjQ5OlxcdFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xM1QwMToxMTowMi42NTg4NzAyMDFaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuOC1mbGFzaCIsIkR1cmF0aW9uIjo1NDYyMjAxMzc1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkluaXRpYWwgQXNzZXNzbWVudCBvZiBhIEZvY3VzZWQgQ29tbWl0KipcblxuT2theSwgc28gSSdtIHNlZWluZyBzb21ldGhpbmcgaW50ZXJlc3RpbmcgaGVyZS4gSXQgbG9va3MgbGlrZSB0aGUgb25seSBmaWxlIHRvdWNoZWQgaW4gdGhpcyBjb21taXQgaXMgYERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy90Y3BfbWV0cmljcy55YW1sYC4gVGhhdCdzIGEgcHJldHR5IGZvY3VzZWQgY2hhbmdlLCB3aGljaCBpbW1lZGlhdGVseSBncmFicyBteSBhdHRlbnRpb24uIFRoaXMgc3VnZ2VzdHMgYSB2ZXJ5IHNwZWNpZmljIG1vZGlmaWNhdGlvbiwgbGlrZWx5IGEgZG9jdW1lbnRhdGlvbiB1cGRhdGUgb3IgYSBjaGFuZ2UgcmVsYXRlZCBzcGVjaWZpY2FsbHkgdG8gVENQIG1ldHJpY3MuXG5cbk15IGZpcnN0IHRob3VnaHQgaXMgdG8gZGl2ZSBpbnRvIHRoZSBzcGVjaWZpY3MuIEknbSBnb2luZyB0byBwdWxsIHVwIGBnaXQgbG9nIC0xYCB0byB1bmRlcnN0YW5kIHRoZSBjb21taXQgbWVzc2FnZSBhbmQgZ2V0IGEgcXVpY2sgb3ZlcnZpZXcsIG9yIEknbGwgcnVuIHRoZSBkaWZmIHRvIHNlZSBleGFjdGx5IHdoYXQncyBjaGFuZ2VkLiBTZWVpbmcgdGhlICp3aHkqIG9mIHRoZSBjaGFuZ2UgaXMgY3J1Y2lhbCBhdCB0aGlzIHBvaW50LlxuXG5UaGVuLCBqdXN0IHRvIGJlIHRob3JvdWdoIGFuZCB0byB1bmRlcnN0YW5kIGlmIHRoaXMgY2hhbmdlIGhhcyBpbXBsaWNhdGlvbnMgZWxzZXdoZXJlLCBJIG5lZWQgdG8gc2VlIHRoZSBjb250ZXh0IG9mIHRoaXMgZmlsZS4gTGV0J3MgZmlyZSB1cCBgZ3JlcHBlcmAgYW5kIHNlYXJjaCBmb3IgdGhhdCBmaWxlbmFtZSwgYHRjcF9tZXRyaWNzLnlhbWxgLCBhY3Jvc3MgdGhlICplbnRpcmUqIGtlcm5lbCBzb3VyY2UuIEkgd2FudCB0byBzZWUgaG93IHRoaXMgWUFNTCBmaWxlIGlzIHJlZmVyZW5jZWQsIHV0aWxpemVkLCBhbmQgcG90ZW50aWFsbHkgaW1wYWN0ZWQgYnkgb3RoZXIgcGFydHMgb2YgdGhlIHN5c3RlbS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaWYgdGhpcyBpcyBhIHN0YW5kYWxvbmUgZG9jdW1lbnRhdGlvbiBwaWVjZSwgb3IgaWYgaXQgcGxheXMgYSByb2xlIGluIHNvbWUgYnJvYWRlciBrZXJuZWwgZnVuY3Rpb25hbGl0eS4gVGhpcyB3aWxsIHByb3ZpZGUgYSBjb21wcmVoZW5zaXZlIHVuZGVyc3RhbmRpbmcgb2YgdGhlIGNoYW5nZXMnIHNpZ25pZmljYW5jZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTIxNjAsIk91dHB1dFRva2VucyI6MTksIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2OCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEzVDAxOjExOjA4LjEyMTA3NDExNloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzY1MTQzNDIzLCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ0Y3BfbWV0cmljc1xcXFwueWFtbFwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTNUMDE6MTE6MTAuNDg2MjI1OTc5WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjgtZmxhc2giLCJEdXJhdGlvbiI6NDY5ODYzOTU4NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoaXMgc2VhcmNoOlxuXG4qKkRpdmluZyBpbnRvIE5ldGxpbmsgRG9jdW1lbnRhdGlvbioqXG5cbk9rYXksIHNvIEkgbmVlZCB0byBmaW5kIHNvbWUgc3BlY2lmaWMgTmV0bGluayBkb2N1bWVudGF0aW9uLCBsaWtlbHkgcmVsYXRlZCB0byBzcGVjaWZpY2F0aW9ucy4gTXkgaW5pdGlhbCBhcHByb2FjaCBpcyB0byBnbyBzdHJhaWdodCB0byB0aGUgc291cmNlIOKAkyB0aGUgYnVpbGQgc3lzdGVtLiBTaW5jZSB0aGlzIGludm9sdmVzIGtlcm5lbC1sZXZlbCBzdHVmZiwgdGhlIGBNYWtlZmlsZWAgc2VlbXMgbGlrZSB0aGUgbW9zdCBsb2dpY2FsIHBsYWNlIHRvIGJlZ2luLiBJdCdzIHRoZSBjZW50cmFsIGh1YiBmb3IgdGhlIGJ1aWxkIHByb2Nlc3MsIGFuZCBvZnRlbiBjb250YWlucyByZWZlcmVuY2VzIHRvIGRvY3VtZW50YXRpb24sIHBhcnRpY3VsYXJseSB3aGVuIGl0IGNvbWVzIHRvIGludGVybmFsIGludGVyZmFjZXMgbGlrZSBOZXRsaW5rLiBIb3dldmVyLCBJIHNob3VsZCBhbHNvIGNoZWNrIHRoZSBzY3JpcHRzIGFuZCB0b29scyB1c2VkIGluIHRoZSBidWlsZC4gRnJlcXVlbnRseSwgdGhlc2UgY29udGFpbiBlbWJlZGRlZCBkb2N1bWVudGF0aW9uIHJlZmVyZW5jZXMgb3IgZXZlbiBnZW5lcmF0ZSB0aGUgZG9jdW1lbnRhdGlvbi4gRXNzZW50aWFsbHksIEkgbmVlZCB0byBjaGVjayB0aGUgZW50aXJlIGJyZWFkdGggb2YgdGhlIGJ1aWxkIHN5c3RlbSB0byBnZXQgdGhlIG1vc3QgY29tcGxldGUgdmlldy4gTGV0J3Mgc3RhcnQgd2l0aCBgTWFrZWZpbGVgIGFuZCB0aGVuIGV4cGFuZCB0aGUgc2VhcmNoLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMjUyMSwiT3V0cHV0VG9rZW5zIjoyMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEzVDAxOjExOjE1LjE4NDg2Nzg1NloiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTY2NDk5Nzc1NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJEb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3NcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiRG9jdW1lbnRhdGlvbi9ncHUvZHJtLXJhcy5yc3Q9NjA9WUFNTC1iYXNlZCBJbnRlcmZhY2VcXG4tLVxcbkRvY3VtZW50YXRpb24vZ3B1L2RybS1yYXMucnN0LTYyLVxcbkRvY3VtZW50YXRpb24vZ3B1L2RybS1yYXMucnN0OjYzOlRoZSBpbnRlcmZhY2UgaXMgZGVzY3JpYmVkIGluIGEgWUFNTCBzcGVjaWZpY2F0aW9uIGBgRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL2RybV9yYXMueWFtbGBgXFxuRG9jdW1lbnRhdGlvbi9ncHUvZHJtLXJhcy5yc3QtNjQtXFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbXVsdGktcGYtbmV0ZGV2LnJzdD05MD1UaGUgcmVsYXRpb24gYmV0d2VlbiBQRiwgaXJxLCBuYXBpLCBhbmQgcXVldWUgY2FuIGJlIG9ic2VydmVkIHZpYSBuZXRsaW5rIHNwZWM6OlxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9tdWx0aS1wZi1uZXRkZXYucnN0LTkxLVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9tdWx0aS1wZi1uZXRkZXYucnN0OjkyOiAgJCAuL3Rvb2xzL25ldC95bmwvcHl5bmwvY2xpLnB5IC0tc3BlYyBEb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvbmV0ZGV2LnlhbWwgLS1kdW1wIHF1ZXVlLWdldCAtLWpzb249J3tcXFwiaWZpbmRleFxcXCI6IDEzfSdcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbXVsdGktcGYtbmV0ZGV2LnJzdC05My0gIFt7J2lkJzogMCwgJ2lmaW5kZXgnOiAxMywgJ25hcGktaWQnOiA1MzksICd0eXBlJzogJ3J4J30sXFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbXVsdGktcGYtbmV0ZGV2LnJzdC0xMDMtXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL211bHRpLXBmLW5ldGRldi5yc3Q6MTA0OiAgJCAuL3Rvb2xzL25ldC95bmwvcHl5bmwvY2xpLnB5IC0tc3BlYyBEb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvbmV0ZGV2LnlhbWwgLS1kdW1wIG5hcGktZ2V0IC0tanNvbj0ne1xcXCJpZmluZGV4XFxcIjogMTN9J1xcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9tdWx0aS1wZi1uZXRkZXYucnN0LTEwNS0gIFt7J2lkJzogNTQzLCAnaWZpbmRleCc6IDEzLCAnaXJxJzogNDJ9LFxcbi0tXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25hcGkucnN0PTIwNT13aWxsIHJldmVhbCBlYWNoIHF1ZXVlJ3MgTkFQSSBJRCk6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmFwaS5yc3QtMjA5LSAgICQga2VybmVsLXNvdXJjZS90b29scy9uZXQveW5sL3B5eW5sL2NsaS5weSBcXFxcXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25hcGkucnN0OjIxMDogICAgICAgICAgICAgLS1zcGVjIERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9uZXRkZXYueWFtbCBcXFxcXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25hcGkucnN0LTIxMS0gICAgICAgICAgICAgLS1kdW1wIHF1ZXVlLWdldCBcXFxcXFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmFwaS5yc3QtMjEzLVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uYXBpLnJzdDoyMTQ6U2VlIGBgRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL25ldGRldi55YW1sYGAgZm9yIG1vcmUgZGV0YWlscyBvblxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uYXBpLnJzdC0yMTUtYXZhaWxhYmxlIG9wZXJhdGlvbnMgYW5kIGF0dHJpYnV0ZXMuXFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmFwaS5yc3Q9MjQwPUZvciBleGFtcGxlLCB1c2luZyB0aGUgc2NyaXB0Olxcbi0tXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25hcGkucnN0LTI0NC0gICQga2VybmVsLXNvdXJjZS90b29scy9uZXQveW5sL3B5eW5sL2NsaS5weSBcXFxcXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25hcGkucnN0OjI0NTogICAgICAgICAgICAtLXNwZWMgRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL25ldGRldi55YW1sIFxcXFxcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmFwaS5yc3QtMjQ2LSAgICAgICAgICAgIC0tZG8gbmFwaS1zZXQgXFxcXFxcbi0tXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL3BhZ2VfcG9vbC5yc3Q9NDc9ZXRjLiBjYW4gYmUgYWNjZXNzZWQgdmlhIHRoZSBuZXRkZXYgZ2VuZXRsaW5rIGZhbWlseVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9wYWdlX3Bvb2wucnN0OjQ4OihzZWUgRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL25ldGRldi55YW1sKS5cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvcGFnZV9wb29sLnJzdC00OS1cXG4tLVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy94ZHAtcngtbWV0YWRhdGEucnN0PTEyMD1uZXRsaW5rLiBTZWUgYGB4ZHAtcngtbWV0YWRhdGEtZmVhdHVyZXNgYCBhdHRyaWJ1dGUgc2V0IGluXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL3hkcC1yeC1tZXRhZGF0YS5yc3Q6MTIxOmBgRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL25ldGRldi55YW1sYGAuXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL3hkcC1yeC1tZXRhZGF0YS5yc3QtMTIyLVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL3hzay10eC1tZXRhZGF0YS5yc3Q9MTM0PVF1ZXJ5IHRoZSBgYHhzay1mZWF0dXJlc2BgIGF0dHJpYnV0ZSBpblxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy94c2stdHgtbWV0YWRhdGEucnN0OjEzNTpgYERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9uZXRkZXYueWFtbGBgLiBJdHMgYml0cyBhcmUgZGVmaW5lZCBieSB0aGVcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcveHNrLXR4LW1ldGFkYXRhLnJzdC0xMzYtYGB4c2stZmxhZ3NgYCBlbnVtLlxcbi0tXFxuRG9jdW1lbnRhdGlvbi90cmFuc2xhdGlvbnMvemhfQ04vbmV0d29ya2luZy9uYXBpLnJzdD0xMzI9TkFQSSDlrp7kvovmnIDluLjku6UgMToxOjEg5pig5bCE5Yiw5Lit5pat5ZKM6Zif5YiX5a+577yI6Zif5YiX5a+55piv55Sx5LiA5Liq5o6l5pS26Zif5YiX5ZKM5LiA5Liq5Y+R6YCB6Zif5YiX57uE5oiQ55qE5LiA57uEXFxuLS1cXG5Eb2N1bWVudGF0aW9uL3RyYW5zbGF0aW9ucy96aF9DTi9uZXR3b3JraW5nL25hcGkucnN0LTE3MS0gICAkIGtlcm5lbC1zb3VyY2UvdG9vbHMvbmV0L3lubC9weXlubC9jbGkucHkgXFxcXFxcbkRvY3VtZW50YXRpb24vdHJhbnNsYXRpb25zL3poX0NOL25ldHdvcmtpbmcvbmFwaS5yc3Q6MTcyOiAgICAgICAgICAgICAtLXNwZWMgRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL25ldGRldi55YW1sIFxcXFxcXG5Eb2N1bWVudGF0aW9uL3RyYW5zbGF0aW9ucy96aF9DTi9uZXR3b3JraW5nL25hcGkucnN0LTE3My0gICAgICAgICAgICAgLS1kdW1wIHF1ZXVlLWdldCBcXFxcXFxuLS1cXG5Eb2N1bWVudGF0aW9uL3RyYW5zbGF0aW9ucy96aF9DTi9uZXR3b3JraW5nL25hcGkucnN0LTE3NS1cXG5Eb2N1bWVudGF0aW9uL3RyYW5zbGF0aW9ucy96aF9DTi9uZXR3b3JraW5nL25hcGkucnN0OjE3NjrmnInlhbPlj6/nlKjmk43kvZzlkozlsZ7mgKfnmoTmm7TlpJror6bnu4bkv6Hmga/vvIzor7flj4LpmIUgYGBEb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvbmV0ZGV2LnlhbWxgYOOAglxcbkRvY3VtZW50YXRpb24vdHJhbnNsYXRpb25zL3poX0NOL25ldHdvcmtpbmcvbmFwaS5yc3QtMTc3LVxcbi0tXFxuRG9jdW1lbnRhdGlvbi90cmFuc2xhdGlvbnMvemhfQ04vbmV0d29ya2luZy9uYXBpLnJzdD0xODk9TmV0bGluayDov5vooYzphY3nva7kuJTmmK/ln7rkuo7mr4/kuKogTkFQSSDlrp7kvovorr7nva7ml7bvvIzkuIrov7Dlj4LmlbDkvb/nlKjov57lrZfnrKbvvIgt77yJ6ICM6Z2e5LiL5YiS57q/77yIX++8iVxcbi0tXFxuRG9jdW1lbnRhdGlvbi90cmFuc2xhdGlvbnMvemhfQ04vbmV0d29ya2luZy9uYXBpLnJzdC0xOTktICAkIGtlcm5lbC1zb3VyY2UvdG9vbHMvbmV0L3lubC9weXlubC9jbGkucHkgXFxcXFxcbkRvY3VtZW50YXRpb24vdHJhbnNsYXRpb25zL3poX0NOL25ldHdvcmtpbmcvbmFwaS5yc3Q6MjAwOiAgICAgICAgICAgIC0tc3BlYyBEb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvbmV0ZGV2LnlhbWwgXFxcXFxcbkRvY3VtZW50YXRpb24vdHJhbnNsYXRpb25zL3poX0NOL25ldHdvcmtpbmcvbmFwaS5yc3QtMjAxLSAgICAgICAgICAgIC0tZG8gbmFwaS1zZXQgXFxcXFxcbi0tXFxuRG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL25ldGxpbmsvaW5kZXgucnN0PTE5PVNlZSBhbHNvOlxcbkRvY3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9uZXRsaW5rL2luZGV4LnJzdC0yMC0gLSA6cmVmOmBEb2N1bWVudGF0aW9uL2NvcmUtYXBpL25ldGxpbmsucnN0IFxcdTAwM2NrZXJuZWxfbmV0bGlua1xcdTAwM2VgXFxuRG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL25ldGxpbmsvaW5kZXgucnN0OjIxOiAtIDpyZWY6YERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9pbmRleC5yc3QgXFx1MDAzY3NwZWNzXFx1MDAzZWBcXG4tLVxcbkRvY3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9uZXRsaW5rL2ludHJvLXNwZWNzLnJzdD0xOT1hIGhhbmRmdWwgb2YgYXJndW1lbnRzLCB0aGUgbW9zdCBpbXBvcnRhbnQgb25lcyBhcmU6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbmV0bGluay9pbnRyby1zcGVjcy5yc3QtMjUtXFxuRG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL25ldGxpbmsvaW50cm8tc3BlY3MucnN0OjI2OllBTUwgc3BlY3MgY2FuIGJlIGZvdW5kIHVuZGVyIGBgRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL2BgLlxcbkRvY3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9uZXRsaW5rL2ludHJvLXNwZWNzLnJzdC0yNy1cXG5Eb2N1bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbmV0bGluay9pbnRyby1zcGVjcy5yc3Q9Mjg9RXhhbXBsZSB1c2U6OlxcbkRvY3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9uZXRsaW5rL2ludHJvLXNwZWNzLnJzdC0yOS1cXG5Eb2N1bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbmV0bGluay9pbnRyby1zcGVjcy5yc3Q6MzA6ICAkIC4vdG9vbHMvbmV0L3lubC9weXlubC9jbGkucHkgLS1zcGVjIERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9ldGh0b29sLnlhbWwgXFxcXFxcbkRvY3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9uZXRsaW5rL2ludHJvLXNwZWNzLnJzdC0zMS0gICAgICAgIC0tZG8gcmluZ3MtZ2V0IFxcXFxcXG4tLVxcbkRvY3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9uZXRsaW5rL2ludHJvLXNwZWNzLnJzdD02NT10cmFja2VkIGJ5IGdpdCEpIEZvciBpbnN0YW5jZSB0aGUgYGBmb3VfbmwuY2BgIGtlcm5lbCBzb3VyY2UgY29udGFpbnM6OlxcbkRvY3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9uZXRsaW5rL2ludHJvLXNwZWNzLnJzdC02Ni1cXG5Eb2N1bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbmV0bGluay9pbnRyby1zcGVjcy5yc3Q6Njc6ICAvKlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9mb3UueWFtbCAqL1xcbkRvY3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9uZXRsaW5rL2ludHJvLXNwZWNzLnJzdC02OC0gIC8qIFlOTC1HRU4ga2VybmVsIHNvdXJjZSAqL1xcbi0tXFxuRG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL25ldGxpbmsvc3BlY3MucnN0PTE1PUludGVybmFsbHkga2VybmVsIHVzZXMgdGhlIFlBTUwgc3BlY3MgdG8gZ2VuZXJhdGU6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbmV0bGluay9zcGVjcy5yc3QtMTctIC0gdGhlIEMgdUFQSSBoZWFkZXJcXG5Eb2N1bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbmV0bGluay9zcGVjcy5yc3Q6MTg6IC0gZG9jdW1lbnRhdGlvbiBvZiB0aGUgcHJvdG9jb2wgYXMgYSBSZVNUIGZpbGUgLSBzZWUgOnJlZjpgRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL2luZGV4LnJzdCBcXHUwMDNjc3BlY3NcXHUwMDNlYFxcbkRvY3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9uZXRsaW5rL3NwZWNzLnJzdC0xOS0gLSBwb2xpY3kgdGFibGVzIGZvciBpbnB1dCBhdHRyaWJ1dGUgdmFsaWRhdGlvblxcbi0tXFxuRG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL25ldGxpbmsvc3BlY3MucnN0LTIxLVxcbkRvY3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9uZXRsaW5rL3NwZWNzLnJzdDoyMjpZQU1MIHNwZWNpZmljYXRpb25zIGNhbiBiZSBmb3VuZCB1bmRlciBgYERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9gYFxcbkRvY3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9uZXRsaW5rL3NwZWNzLnJzdC0yMy1cXG4tLVxcbk1BSU5UQUlORVJTPTE5OTg9VDpcXHRnaXQgZ2l0Oi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L2dyZWdraC9zdGFnaW5nLmdpdFxcbk1BSU5UQUlORVJTOjE5OTk6RjpcXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvYmluZGVyLnlhbWxcXG5NQUlOVEFJTkVSUy0yMDAwLUY6XFx0ZHJpdmVycy9hbmRyb2lkL1xcbi0tXFxuTUFJTlRBSU5FUlM9NzkyMT1GOlxcdERvY3VtZW50YXRpb24vZHJpdmVyLWFwaS9kcGxsLnJzdFxcbk1BSU5UQUlORVJTOjc5MjI6RjpcXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvZHBsbC55YW1sXFxuTUFJTlRBSU5FUlMtNzkyMy1GOlxcdGRyaXZlcnMvZHBsbC9cXG4tLVxcbk1BSU5UQUlORVJTPTk2NTk9UzpcXHRNYWludGFpbmVkXFxuTUFJTlRBSU5FUlM6OTY2MDpGOlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9kZXYtZW5lcmd5bW9kZWwueWFtbFxcbk1BSU5UQUlORVJTLTk2NjEtRjpcXHREb2N1bWVudGF0aW9uL3Bvd2VyL2VuZXJneS1tb2RlbC5yc3RcXG4tLVxcbk1BSU5UQUlORVJTPTExNDU1PVM6XFx0TWFpbnRhaW5lZFxcbk1BSU5UQUlORVJTOjExNDU2OkY6XFx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL2hhbmRzaGFrZS55YW1sXFxuTUFJTlRBSU5FUlMtMTE0NTctRjpcXHREb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvdGxzLWhhbmRzaGFrZS5yc3RcXG4tLVxcbk1BSU5UQUlORVJTPTE4OTY1PU06XFx0SmFrdWIgS2ljaW5za2kgXFx1MDAzY2t1YmFAa2VybmVsLm9yZ1xcdTAwM2VcXG5NQUlOVEFJTkVSUzoxODk2NjpGOlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9ldGh0b29sLnlhbWxcXG5NQUlOVEFJTkVSUy0xODk2Ny1GOlxcdERvY3VtZW50YXRpb24vbmV0d29ya2luZy9ldGh0b29sLW5ldGxpbmsucnN0XFxuLS1cXG5NQUlOVEFJTkVSUz0xOTExNz1TOlxcdE1haW50YWluZWRcXG5NQUlOVEFJTkVSUzoxOTExODpGOlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9ydC1hZGRyLnlhbWxcXG5NQUlOVEFJTkVSUzoxOTExOTpGOlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9ydC1uZWlnaC55YW1sXFxuTUFJTlRBSU5FUlM6MTkxMjA6RjpcXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvcnQtcm91dGUueWFtbFxcbk1BSU5UQUlORVJTOjE5MTIxOkY6XFx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL3J0LXJ1bGUueWFtbFxcbk1BSU5UQUlORVJTLTE5MTIyLUY6XFx0aW5jbHVkZS9saW51eC9pbmV0ZGV2aWNlLmhcXG4tLVxcbk1BSU5UQUlORVJTPTE5MjA2PVQ6XFx0Z2l0IGh0dHBzOi8vZ2l0aHViLmNvbS9tdWx0aXBhdGgtdGNwL21wdGNwX25ldC1uZXh0LmdpdCBleHBvcnRcXG5NQUlOVEFJTkVSUzoxOTIwNzpGOlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9tcHRjcF9wbS55YW1sXFxuTUFJTlRBSU5FUlMtMTkyMDgtRjpcXHREb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbXB0Y3AqLnJzdFxcbi0tXFxuTUFJTlRBSU5FUlM9MjA1MTQ9VDpcXHRnaXQgaHR0cHM6Ly9naXRodWIuY29tL09wZW5WUE4vb3Zwbi1uZXQtbmV4dC5naXRcXG5NQUlOVEFJTkVSUzoyMDUxNTpGOlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9vdnBuLnlhbWxcXG5NQUlOVEFJTkVSUy0yMDUxNi1GOlxcdGRyaXZlcnMvbmV0L292cG4vXFxuLS1cXG5NQUlOVEFJTkVSUz0yMTkyMD1NOlxcdFdpbGxlbSBkZSBCcnVpam4gXFx1MDAzY3dpbGxlbWRlYnJ1aWpuLmtlcm5lbEBnbWFpbC5jb21cXHUwMDNlXFxuTUFJTlRBSU5FUlM6MjE5MjE6RjpcXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvcHNwLnlhbWxcXG5NQUlOVEFJTkVSUy0yMTkyMi1GOlxcdERvY3VtZW50YXRpb24vbmV0d29ya2luZy9wc3AucnN0XFxuLS1cXG5NQUlOVEFJTkVSUz0yNjc5ND1TOlxcdFN1cHBvcnRlZFxcbk1BSU5UQUlORVJTOjI2Nzk1OkY6XFx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL3RlYW0ueWFtbFxcbk1BSU5UQUlORVJTLTI2Nzk2LUY6XFx0ZHJpdmVycy9uZXQvdGVhbS9cXG4tLVxcbk1BSU5UQUlORVJTPTI5NDMzPVM6XFx0TWFpbnRhaW5lZFxcbk1BSU5UQUlORVJTOjI5NDM0OkY6XFx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL3dpcmVndWFyZC55YW1sXFxuTUFJTlRBSU5FUlMtMjk0MzUtRjpcXHRkcml2ZXJzL25ldC93aXJlZ3VhcmQvXFxuLS1cXG5kcml2ZXJzL2FuZHJvaWQvYmluZGVyL25ldGxpbmsucnMtMS0vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogKChHUEwtMi4wIFdJVEggTGludXgtc3lzY2FsbC1ub3RlKSBPUiBCU0QtMy1DbGF1c2UpXFxuZHJpdmVycy9hbmRyb2lkL2JpbmRlci9uZXRsaW5rLnJzOjI6LyogQmFzZWQgb246IERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9iaW5kZXIueWFtbCAqL1xcbmRyaXZlcnMvYW5kcm9pZC9iaW5kZXIvbmV0bGluay5ycy0zLVxcbi0tXFxuZHJpdmVycy9hbmRyb2lkL2JpbmRlcl9uZXRsaW5rLmMtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cXG5kcml2ZXJzL2FuZHJvaWQvYmluZGVyX25ldGxpbmsuYzozOi8qXFx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL2JpbmRlci55YW1sICovXFxuZHJpdmVycy9hbmRyb2lkL2JpbmRlcl9uZXRsaW5rLmMtNC0vKiBZTkwtR0VOIGtlcm5lbCBzb3VyY2UgKi9cXG4tLVxcbmRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfbmV0bGluay5oLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXFxuZHJpdmVycy9hbmRyb2lkL2JpbmRlcl9uZXRsaW5rLmg6MzovKlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9iaW5kZXIueWFtbCAqL1xcbmRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfbmV0bGluay5oLTQtLyogWU5MLUdFTiBrZXJuZWwgaGVhZGVyICovXFxuLS1cXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5jLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXFxuZHJpdmVycy9kcGxsL2RwbGxfbmwuYzozOi8qXFx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL2RwbGwueWFtbCAqL1xcbmRyaXZlcnMvZHBsbC9kcGxsX25sLmMtNC0vKiBZTkwtR0VOIGtlcm5lbCBzb3VyY2UgKi9cXG4tLVxcbmRyaXZlcnMvZHBsbC9kcGxsX25sLmgtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5oOjM6LypcXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvZHBsbC55YW1sICovXFxuZHJpdmVycy9kcGxsL2RwbGxfbmwuaC00LS8qIFlOTC1HRU4ga2VybmVsIGhlYWRlciAqL1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9yYXNfbmwuYy0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fcmFzX25sLmM6MzovKlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9kcm1fcmFzLnlhbWwgKi9cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX3Jhc19ubC5jLTQtLyogWU5MLUdFTiBrZXJuZWwgc291cmNlICovXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX3Jhc19ubC5oLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXFxuZHJpdmVycy9ncHUvZHJtL2RybV9yYXNfbmwuaDozOi8qXFx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL2RybV9yYXMueWFtbCAqL1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fcmFzX25sLmgtNC0vKiBZTkwtR0VOIGtlcm5lbCBoZWFkZXIgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L292cG4vbmV0bGluay1nZW4uYy0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xcbmRyaXZlcnMvbmV0L292cG4vbmV0bGluay1nZW4uYzozOi8qXFx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL292cG4ueWFtbCAqL1xcbmRyaXZlcnMvbmV0L292cG4vbmV0bGluay1nZW4uYy00LS8qIFlOTC1HRU4ga2VybmVsIHNvdXJjZSAqL1xcbi0tXFxuZHJpdmVycy9uZXQvb3Zwbi9uZXRsaW5rLWdlbi5oLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXFxuZHJpdmVycy9uZXQvb3Zwbi9uZXRsaW5rLWdlbi5oOjM6LypcXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3Mvb3Zwbi55YW1sICovXFxuZHJpdmVycy9uZXQvb3Zwbi9uZXRsaW5rLWdlbi5oLTQtLyogWU5MLUdFTiBrZXJuZWwgaGVhZGVyICovXFxuLS1cXG5kcml2ZXJzL25ldC90ZWFtL3RlYW1fbmwuYy0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xcbmRyaXZlcnMvbmV0L3RlYW0vdGVhbV9ubC5jOjM6LypcXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvdGVhbS55YW1sICovXFxuZHJpdmVycy9uZXQvdGVhbS90ZWFtX25sLmMtNC0vKiBZTkwtR0VOIGtlcm5lbCBzb3VyY2UgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3RlYW0vdGVhbV9ubC5oLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXFxuZHJpdmVycy9uZXQvdGVhbS90ZWFtX25sLmg6MzovKlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy90ZWFtLnlhbWwgKi9cXG5kcml2ZXJzL25ldC90ZWFtL3RlYW1fbmwuaC00LS8qIFlOTC1HRU4ga2VybmVsIGhlYWRlciAqL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWd1YXJkL2dlbmVyYXRlZC9uZXRsaW5rLmMtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cXG5kcml2ZXJzL25ldC93aXJlZ3VhcmQvZ2VuZXJhdGVkL25ldGxpbmsuYzozOi8qXFx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL3dpcmVndWFyZC55YW1sICovXFxuZHJpdmVycy9uZXQvd2lyZWd1YXJkL2dlbmVyYXRlZC9uZXRsaW5rLmMtNC0vKiBZTkwtR0VOIGtlcm5lbCBzb3VyY2UgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVndWFyZC9nZW5lcmF0ZWQvbmV0bGluay5oLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXFxuZHJpdmVycy9uZXQvd2lyZWd1YXJkL2dlbmVyYXRlZC9uZXRsaW5rLmg6MzovKlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy93aXJlZ3VhcmQueWFtbCAqL1xcbmRyaXZlcnMvbmV0L3dpcmVndWFyZC9nZW5lcmF0ZWQvbmV0bGluay5oLTQtLyogWU5MLUdFTiBrZXJuZWwgaGVhZGVyICovXFxuLS1cXG5mcy9sb2NrZC9uZXRsaW5rLmMtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cXG5mcy9sb2NrZC9uZXRsaW5rLmM6MzovKlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9sb2NrZC55YW1sICovXFxuZnMvbG9ja2QvbmV0bGluay5jLTQtLyogWU5MLUdFTiBrZXJuZWwgc291cmNlICovXFxuLS1cXG5mcy9sb2NrZC9uZXRsaW5rLmgtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cXG5mcy9sb2NrZC9uZXRsaW5rLmg6MzovKlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9sb2NrZC55YW1sICovXFxuZnMvbG9ja2QvbmV0bGluay5oLTQtLyogWU5MLUdFTiBrZXJuZWwgaGVhZGVyICovXFxuLS1cXG5mcy9uZnNkL25ldGxpbmsuYy0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xcbmZzL25mc2QvbmV0bGluay5jOjM6LypcXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvbmZzZC55YW1sICovXFxuZnMvbmZzZC9uZXRsaW5rLmMtNC0vKiBZTkwtR0VOIGtlcm5lbCBzb3VyY2UgKi9cXG4tLVxcbmZzL25mc2QvbmV0bGluay5oLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXFxuZnMvbmZzZC9uZXRsaW5rLmg6MzovKlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9uZnNkLnlhbWwgKi9cXG5mcy9uZnNkL25ldGxpbmsuaC00LS8qIFlOTC1HRU4ga2VybmVsIGhlYWRlciAqL1xcbi0tXFxuaW5jbHVkZS9uZXQveGRwLmg9NTY0PXZvaWQgeGRwX2F0dGFjaG1lbnRfc2V0dXAoc3RydWN0IHhkcF9hdHRhY2htZW50X2luZm8gKmluZm8sXFxuLS1cXG5pbmNsdWRlL25ldC94ZHAuaC01NzEtICogLSB4ZHBfcnhfbWV0YWRhdGEgZW51bVxcbmluY2x1ZGUvbmV0L3hkcC5oOjU3MjogKiAtIG5ldGRldiBuZXRsaW5rIGVudW0gKERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9uZXRkZXYueWFtbClcXG5pbmNsdWRlL25ldC94ZHAuaC01NzMtICogLSBrZnVuYyBuYW1lXFxuLS1cXG5pbmNsdWRlL3VhcGkvZHJtL2RybV9yYXMuaC0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xcbmluY2x1ZGUvdWFwaS9kcm0vZHJtX3Jhcy5oOjM6LypcXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvZHJtX3Jhcy55YW1sICovXFxuaW5jbHVkZS91YXBpL2RybS9kcm1fcmFzLmgtNC0vKiBZTkwtR0VOIHVhcGkgaGVhZGVyICovXFxuLS1cXG5pbmNsdWRlL3VhcGkvZHJtL3hlX2RybS5oPTI1MTY9c3RydWN0IGRybV94ZV9leGVjX3F1ZXVlX3NldF9wcm9wZXJ0eSB7XFxuLS1cXG5pbmNsdWRlL3VhcGkvZHJtL3hlX2RybS5oLTI1MzYtICogVGhlIGVudW1zIGFuZCBzdHJpbmdzIGRlZmluZWQgYmVsb3cgbWFwIHRvIHRoZSBhdHRyaWJ1dGVzIG9mIHRoZSBEUk0gUkFTIE5ldGxpbmsgSW50ZXJmYWNlLlxcbmluY2x1ZGUvdWFwaS9kcm0veGVfZHJtLmg6MjUzNzogKiBSZWZlciB0byBEb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvZHJtX3Jhcy55YW1sIGZvciBjb21wbGV0ZSBpbnRlcmZhY2Ugc3BlY2lmaWNhdGlvbi5cXG5pbmNsdWRlL3VhcGkvZHJtL3hlX2RybS5oLTI1MzgtICpcXG4tLVxcbmluY2x1ZGUvdWFwaS9saW51eC9hbmRyb2lkL2JpbmRlcl9uZXRsaW5rLmgtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cXG5pbmNsdWRlL3VhcGkvbGludXgvYW5kcm9pZC9iaW5kZXJfbmV0bGluay5oOjM6LypcXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvYmluZGVyLnlhbWwgKi9cXG5pbmNsdWRlL3VhcGkvbGludXgvYW5kcm9pZC9iaW5kZXJfbmV0bGluay5oLTQtLyogWU5MLUdFTiB1YXBpIGhlYWRlciAqL1xcbi0tXFxuaW5jbHVkZS91YXBpL2xpbnV4L2Rldl9lbmVyZ3ltb2RlbC5oLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXFxuaW5jbHVkZS91YXBpL2xpbnV4L2Rldl9lbmVyZ3ltb2RlbC5oOjM6LypcXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvZGV2LWVuZXJneW1vZGVsLnlhbWwgKi9cXG5pbmNsdWRlL3VhcGkvbGludXgvZGV2X2VuZXJneW1vZGVsLmgtNC0vKiBZTkwtR0VOIHVhcGkgaGVhZGVyICovXFxuLS1cXG5pbmNsdWRlL3VhcGkvbGludXgvZGV2bGluay5oPTQxMj1lbnVtIGRldmxpbmtfYXR0ciB7XFxuLS1cXG5pbmNsdWRlL3VhcGkvbGludXgvZGV2bGluay5oLTY1My1cXHQvKiBBZGQgbmV3IGF0dHJpYnV0ZXMgYWJvdmUgaGVyZSwgdXBkYXRlIHRoZSBzcGVjIGluXFxuaW5jbHVkZS91YXBpL2xpbnV4L2RldmxpbmsuaDo2NTQ6XFx0ICogRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL2RldmxpbmsueWFtbCBhbmQgcmUtZ2VuZXJhdGVcXG5pbmNsdWRlL3VhcGkvbGludXgvZGV2bGluay5oLTY1NS1cXHQgKiBuZXQvZGV2bGluay9uZXRsaW5rX2dlbi5jLlxcbi0tXFxuaW5jbHVkZS91YXBpL2xpbnV4L2RwbGwuaC0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xcbmluY2x1ZGUvdWFwaS9saW51eC9kcGxsLmg6MzovKlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9kcGxsLnlhbWwgKi9cXG5pbmNsdWRlL3VhcGkvbGludXgvZHBsbC5oLTQtLyogWU5MLUdFTiB1YXBpIGhlYWRlciAqL1xcbi0tXFxuaW5jbHVkZS91YXBpL2xpbnV4L2V0aHRvb2xfbmV0bGlua19nZW5lcmF0ZWQuaC0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xcbmluY2x1ZGUvdWFwaS9saW51eC9ldGh0b29sX25ldGxpbmtfZ2VuZXJhdGVkLmg6MzovKlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9ldGh0b29sLnlhbWwgKi9cXG5pbmNsdWRlL3VhcGkvbGludXgvZXRodG9vbF9uZXRsaW5rX2dlbmVyYXRlZC5oLTQtLyogWU5MLUdFTiB1YXBpIGhlYWRlciAqL1xcbi0tXFxuaW5jbHVkZS91YXBpL2xpbnV4L2ZvdS5oLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXFxuaW5jbHVkZS91YXBpL2xpbnV4L2ZvdS5oOjM6LypcXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvZm91LnlhbWwgKi9cXG5pbmNsdWRlL3VhcGkvbGludXgvZm91LmgtNC0vKiBZTkwtR0VOIHVhcGkgaGVhZGVyICovXFxuLS1cXG5pbmNsdWRlL3VhcGkvbGludXgvaGFuZHNoYWtlLmgtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cXG5pbmNsdWRlL3VhcGkvbGludXgvaGFuZHNoYWtlLmg6MzovKlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9oYW5kc2hha2UueWFtbCAqL1xcbmluY2x1ZGUvdWFwaS9saW51eC9oYW5kc2hha2UuaC00LS8qIFlOTC1HRU4gdWFwaSBoZWFkZXIgKi9cXG4tLVxcbmluY2x1ZGUvdWFwaS9saW51eC9pZl90ZWFtLmgtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cXG5pbmNsdWRlL3VhcGkvbGludXgvaWZfdGVhbS5oOjM6LypcXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvdGVhbS55YW1sICovXFxuaW5jbHVkZS91YXBpL2xpbnV4L2lmX3RlYW0uaC00LS8qIFlOTC1HRU4gdWFwaSBoZWFkZXIgKi9cXG4tLVxcbmluY2x1ZGUvdWFwaS9saW51eC9sb2NrZF9uZXRsaW5rLmgtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cXG5pbmNsdWRlL3VhcGkvbGludXgvbG9ja2RfbmV0bGluay5oOjM6LypcXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvbG9ja2QueWFtbCAqL1xcbmluY2x1ZGUvdWFwaS9saW51eC9sb2NrZF9uZXRsaW5rLmgtNC0vKiBZTkwtR0VOIHVhcGkgaGVhZGVyICovXFxuLS1cXG5pbmNsdWRlL3VhcGkvbGludXgvbXB0Y3BfcG0uaC0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xcbmluY2x1ZGUvdWFwaS9saW51eC9tcHRjcF9wbS5oOjM6LypcXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvbXB0Y3BfcG0ueWFtbCAqL1xcbmluY2x1ZGUvdWFwaS9saW51eC9tcHRjcF9wbS5oLTQtLyogWU5MLUdFTiB1YXBpIGhlYWRlciAqL1xcbi0tXFxuaW5jbHVkZS91YXBpL2xpbnV4L25ldF9zaGFwZXIuaC0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xcbmluY2x1ZGUvdWFwaS9saW51eC9uZXRfc2hhcGVyLmg6MzovKlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9uZXRfc2hhcGVyLnlhbWwgKi9cXG5pbmNsdWRlL3VhcGkvbGludXgvbmV0X3NoYXBlci5oLTQtLyogWU5MLUdFTiB1YXBpIGhlYWRlciAqL1xcbi0tXFxuaW5jbHVkZS91YXBpL2xpbnV4L25ldGRldi5oLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXFxuaW5jbHVkZS91YXBpL2xpbnV4L25ldGRldi5oOjM6LypcXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvbmV0ZGV2LnlhbWwgKi9cXG5pbmNsdWRlL3VhcGkvbGludXgvbmV0ZGV2LmgtNC0vKiBZTkwtR0VOIHVhcGkgaGVhZGVyICovXFxuLS1cXG5pbmNsdWRlL3VhcGkvbGludXgvbmZzZF9uZXRsaW5rLmgtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cXG5pbmNsdWRlL3VhcGkvbGludXgvbmZzZF9uZXRsaW5rLmg6MzovKlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9uZnNkLnlhbWwgKi9cXG5pbmNsdWRlL3VhcGkvbGludXgvbmZzZF9uZXRsaW5rLmgtNC0vKiBZTkwtR0VOIHVhcGkgaGVhZGVyICovXFxuLS1cXG5pbmNsdWRlL3VhcGkvbGludXgvb3Zwbi5oLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXFxuaW5jbHVkZS91YXBpL2xpbnV4L292cG4uaDozOi8qXFx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL292cG4ueWFtbCAqL1xcbmluY2x1ZGUvdWFwaS9saW51eC9vdnBuLmgtNC0vKiBZTkwtR0VOIHVhcGkgaGVhZGVyICovXFxuLS1cXG5pbmNsdWRlL3VhcGkvbGludXgvcHNwLmgtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cXG5pbmNsdWRlL3VhcGkvbGludXgvcHNwLmg6MzovKlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9wc3AueWFtbCAqL1xcbmluY2x1ZGUvdWFwaS9saW51eC9wc3AuaC00LS8qIFlOTC1HRU4gdWFwaSBoZWFkZXIgKi9cXG4tLVxcbmluY2x1ZGUvdWFwaS9saW51eC9zdW5ycGNfbmV0bGluay5oLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXFxuaW5jbHVkZS91YXBpL2xpbnV4L3N1bnJwY19uZXRsaW5rLmg6MzovKlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9zdW5ycGNfY2FjaGUueWFtbCAqL1xcbmluY2x1ZGUvdWFwaS9saW51eC9zdW5ycGNfbmV0bGluay5oLTQtLyogWU5MLUdFTiB1YXBpIGhlYWRlciAqL1xcbi0tXFxuaW5jbHVkZS91YXBpL2xpbnV4L3dpcmVndWFyZC5oLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXFxuaW5jbHVkZS91YXBpL2xpbnV4L3dpcmVndWFyZC5oOjM6LypcXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3Mvd2lyZWd1YXJkLnlhbWwgKi9cXG5pbmNsdWRlL3VhcGkvbGludXgvd2lyZWd1YXJkLmgtNC0vKiBZTkwtR0VOIHVhcGkgaGVhZGVyICovXFxuLS1cXG5rZXJuZWwvcG93ZXIvZW1fbmV0bGlua19hdXRvZ2VuLmMtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cXG5rZXJuZWwvcG93ZXIvZW1fbmV0bGlua19hdXRvZ2VuLmM6MzovKlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9kZXYtZW5lcmd5bW9kZWwueWFtbCAqL1xcbmtlcm5lbC9wb3dlci9lbV9uZXRsaW5rX2F1dG9nZW4uYy00LS8qIFlOTC1HRU4ga2VybmVsIHNvdXJjZSAqL1xcbi0tXFxua2VybmVsL3Bvd2VyL2VtX25ldGxpbmtfYXV0b2dlbi5oLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXFxua2VybmVsL3Bvd2VyL2VtX25ldGxpbmtfYXV0b2dlbi5oOjM6LypcXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvZGV2LWVuZXJneW1vZGVsLnlhbWwgKi9cXG5rZXJuZWwvcG93ZXIvZW1fbmV0bGlua19hdXRvZ2VuLmgtNC0vKiBZTkwtR0VOIGtlcm5lbCBoZWFkZXIgKi9cXG4tLVxcbm5ldC9jb3JlL25ldGRldi1nZW5sLWdlbi5jLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXFxubmV0L2NvcmUvbmV0ZGV2LWdlbmwtZ2VuLmM6MzovKlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9uZXRkZXYueWFtbCAqL1xcbm5ldC9jb3JlL25ldGRldi1nZW5sLWdlbi5jLTQtLyogWU5MLUdFTiBrZXJuZWwgc291cmNlICovXFxuLS1cXG5uZXQvY29yZS9uZXRkZXYtZ2VubC1nZW4uaC0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xcbm5ldC9jb3JlL25ldGRldi1nZW5sLWdlbi5oOjM6LypcXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvbmV0ZGV2LnlhbWwgKi9cXG5uZXQvY29yZS9uZXRkZXYtZ2VubC1nZW4uaC00LS8qIFlOTC1HRU4ga2VybmVsIGhlYWRlciAqL1xcbi0tXFxubmV0L2RldmxpbmsvbmV0bGlua19nZW4uYy0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xcbm5ldC9kZXZsaW5rL25ldGxpbmtfZ2VuLmM6MzovKlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9kZXZsaW5rLnlhbWwgKi9cXG5uZXQvZGV2bGluay9uZXRsaW5rX2dlbi5jLTQtLyogWU5MLUdFTiBrZXJuZWwgc291cmNlICovXFxuLS1cXG5uZXQvZGV2bGluay9uZXRsaW5rX2dlbi5oLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXFxubmV0L2RldmxpbmsvbmV0bGlua19nZW4uaDozOi8qXFx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL2RldmxpbmsueWFtbCAqL1xcbm5ldC9kZXZsaW5rL25ldGxpbmtfZ2VuLmgtNC0vKiBZTkwtR0VOIGtlcm5lbCBoZWFkZXIgKi9cXG4tLVxcbm5ldC9oYW5kc2hha2UvZ2VubC5jLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXFxubmV0L2hhbmRzaGFrZS9nZW5sLmM6MzovKlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9oYW5kc2hha2UueWFtbCAqL1xcbm5ldC9oYW5kc2hha2UvZ2VubC5jLTQtLyogWU5MLUdFTiBrZXJuZWwgc291cmNlICovXFxuLS1cXG5uZXQvaGFuZHNoYWtlL2dlbmwuaC0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xcbm5ldC9oYW5kc2hha2UvZ2VubC5oOjM6LypcXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvaGFuZHNoYWtlLnlhbWwgKi9cXG5uZXQvaGFuZHNoYWtlL2dlbmwuaC00LS8qIFlOTC1HRU4ga2VybmVsIGhlYWRlciAqL1xcbi0tXFxubmV0L2lwdjQvZm91X25sLmMtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cXG5uZXQvaXB2NC9mb3VfbmwuYzozOi8qXFx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL2ZvdS55YW1sICovXFxubmV0L2lwdjQvZm91X25sLmMtNC0vKiBZTkwtR0VOIGtlcm5lbCBzb3VyY2UgKi9cXG4tLVxcbm5ldC9pcHY0L2ZvdV9ubC5oLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXFxubmV0L2lwdjQvZm91X25sLmg6MzovKlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9mb3UueWFtbCAqL1xcbm5ldC9pcHY0L2ZvdV9ubC5oLTQtLyogWU5MLUdFTiBrZXJuZWwgaGVhZGVyICovXFxuLS1cXG5uZXQvbXB0Y3AvbXB0Y3BfcG1fZ2VuLmMtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cXG5uZXQvbXB0Y3AvbXB0Y3BfcG1fZ2VuLmM6MzovKlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9tcHRjcF9wbS55YW1sICovXFxubmV0L21wdGNwL21wdGNwX3BtX2dlbi5jLTQtLyogWU5MLUdFTiBrZXJuZWwgc291cmNlICovXFxuLS1cXG5uZXQvbXB0Y3AvbXB0Y3BfcG1fZ2VuLmgtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cXG5uZXQvbXB0Y3AvbXB0Y3BfcG1fZ2VuLmg6MzovKlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9tcHRjcF9wbS55YW1sICovXFxubmV0L21wdGNwL21wdGNwX3BtX2dlbi5oLTQtLyogWU5MLUdFTiBrZXJuZWwgaGVhZGVyICovXFxuLS1cXG5uZXQvcHNwL3BzcC1ubC1nZW4uYy0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xcbm5ldC9wc3AvcHNwLW5sLWdlbi5jOjM6LypcXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvcHNwLnlhbWwgKi9cXG5uZXQvcHNwL3BzcC1ubC1nZW4uYy00LS8qIFlOTC1HRU4ga2VybmVsIHNvdXJjZSAqL1xcbi0tXFxubmV0L3BzcC9wc3AtbmwtZ2VuLmgtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cXG5uZXQvcHNwL3BzcC1ubC1nZW4uaDozOi8qXFx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL3BzcC55YW1sICovXFxubmV0L3BzcC9wc3AtbmwtZ2VuLmgtNC0vKiBZTkwtR0VOIGtlcm5lbCBoZWFkZXIgKi9cXG4tLVxcbm5ldC9zaGFwZXIvc2hhcGVyX25sX2dlbi5jLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXFxubmV0L3NoYXBlci9zaGFwZXJfbmxfZ2VuLmM6MzovKlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9uZXRfc2hhcGVyLnlhbWwgKi9cXG5uZXQvc2hhcGVyL3NoYXBlcl9ubF9nZW4uYy00LS8qIFlOTC1HRU4ga2VybmVsIHNvdXJjZSAqL1xcbi0tXFxubmV0L3NoYXBlci9zaGFwZXJfbmxfZ2VuLmgtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cXG5uZXQvc2hhcGVyL3NoYXBlcl9ubF9nZW4uaDozOi8qXFx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL25ldF9zaGFwZXIueWFtbCAqL1xcbm5ldC9zaGFwZXIvc2hhcGVyX25sX2dlbi5oLTQtLyogWU5MLUdFTiBrZXJuZWwgaGVhZGVyICovXFxuLS1cXG5uZXQvc3VucnBjL25ldGxpbmsuYy0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xcbm5ldC9zdW5ycGMvbmV0bGluay5jOjM6LypcXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3Mvc3VucnBjX2NhY2hlLnlhbWwgKi9cXG5uZXQvc3VucnBjL25ldGxpbmsuYy00LS8qIFlOTC1HRU4ga2VybmVsIHNvdXJjZSAqL1xcbi0tXFxubmV0L3N1bnJwYy9uZXRsaW5rLmgtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cXG5uZXQvc3VucnBjL25ldGxpbmsuaDozOi8qXFx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL3N1bnJwY19jYWNoZS55YW1sICovXFxubmV0L3N1bnJwYy9uZXRsaW5rLmgtNC0vKiBZTkwtR0VOIGtlcm5lbCBoZWFkZXIgKi9cXG4tLVxcbnRvb2xzL2luY2x1ZGUvdWFwaS9saW51eC9uZXRkZXYuaC0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xcbnRvb2xzL2luY2x1ZGUvdWFwaS9saW51eC9uZXRkZXYuaDozOi8qXFx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL25ldGRldi55YW1sICovXFxudG9vbHMvaW5jbHVkZS91YXBpL2xpbnV4L25ldGRldi5oLTQtLyogWU5MLUdFTiB1YXBpIGhlYWRlciAqL1xcbi0tXFxudG9vbHMvbmV0L3lubC9NYWtlZmlsZT0xND1pbmNsdWRlZGlyID89ICQocHJlZml4KS9pbmNsdWRlXFxudG9vbHMvbmV0L3lubC9NYWtlZmlsZS0xNS1cXG50b29scy9uZXQveW5sL01ha2VmaWxlOjE2OlNQRUNESVI9Li4vLi4vLi4vRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzXFxudG9vbHMvbmV0L3lubC9NYWtlZmlsZS0xNy1cXG4tLVxcbnRvb2xzL25ldC95bmwvZ2VuZXJhdGVkL01ha2VmaWxlPTIzPVRPT0xfUlNUOj0uLi9weXlubC95bmxfZ2VuX3JzdC5weVxcbnRvb2xzL25ldC95bmwvZ2VuZXJhdGVkL01ha2VmaWxlLTI0LVxcbnRvb2xzL25ldC95bmwvZ2VuZXJhdGVkL01ha2VmaWxlOjI1OlNQRUNTX0RJUjo9Li4vLi4vLi4vLi4vRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzXFxudG9vbHMvbmV0L3lubC9nZW5lcmF0ZWQvTWFrZWZpbGUtMjYtU1BFQ1NfUEFUSFM9JCh3aWxkY2FyZCAkKFNQRUNTX0RJUikvKi55YW1sKVxcbi0tXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2xpYi9NYWtlZmlsZT04PVRFU1RfRklMRVMgOj0gXFxcXFxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9saWIvTWFrZWZpbGUtOS1cXHQuLi8uLi8uLi8uLi9uZXQveW5sIFxcXFxcXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbGliL01ha2VmaWxlOjEwOlxcdC4uLy4uLy4uLy4uLy4uL0RvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcyBcXFxcXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2xpYi9NYWtlZmlsZS0xMS1cXHRrc2Z0X3NldHVwX2xvb3BiYWNrLnNoIFxcXFxcXG4tLVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9saWIvcHkveW5sLnB5PTk9dHJ5Olxcbi0tXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2xpYi9weS95bmwucHktMTktICAgICAgICB0b29sc19mdWxsX3BhdGggPSBLU1JDIC8gXFxcInRvb2xzXFxcIlxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9saWIvcHkveW5sLnB5OjIwOiAgICAgICAgU1BFQ19QQVRIID0gS1NSQyAvIFxcXCJEb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3NcXFwiXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2xpYi9weS95bmwucHktMjEtXFxuLS1cXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQveW5sLm1rPTEzPVlOTF9TUEVDUyA6PSBcXFxcXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3lubC5tazoxNDpcXHQkKHBhdHN1YnN0ICUsJCh0b3Bfc3JjZGlyKS9Eb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvJS55YW1sLCQoWU5MX0dFTlMpKVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC95bmwubWstMTUtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEzVDAxOjExOjE2Ljg0OTg3MTExWiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy44LWZsYXNoIiwiRHVyYXRpb24iOjI1MDg0OTk4MjIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhlIHRjcF9tZXRyaWNzLnlhbWwgU3BlY2lmaWNhdGlvbioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgTmV0bGluayBkb2N1bWVudGF0aW9uIHN0cnVjdHVyZSwgc3BlY2lmaWNhbGx5IGBEb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvdGNwX21ldHJpY3MueWFtbGAuIEltbWVkaWF0ZWx5LCBzb21ldGhpbmcncyBvZmYuIEkgc2VlIGFsbCB0aGVzZSBvdGhlciBmaWxlcyBpbiBwbGFjZXMgbGlrZSBgZm91X25sLmNgIGFuZCBgZGV2bGlua19nZW4uY2AgdGhhdCBoYXZlIGNsZWFybHkgYXV0by1nZW5lcmF0ZWQgY29tcG9uZW50cyBkaXJlY3RseSBjb21taXR0ZWQgaW50byB0aGUgY29kZWJhc2UuIFRoYXQncyBzdGFuZGFyZCBwcmFjdGljZSwgYSBjbGVhciBpbmRpY2F0aW9uIG9mIGEgc3BlYyBiZWluZyB1c2VkIHRvIGRyaXZlIGNvZGUgZ2VuZXJhdGlvbi4gQnV0IGhlcmUsIHdpdGggYHRjcF9tZXRyaWNzYCwgdGhlIGdlbmVyYXRlZCBmaWxlLCBgdGNwX21ldHJpY3MuY2AsIGlzICpoYW5kd3JpdHRlbiogd2hpY2ggaXMgYW4gaW1tZWRpYXRlbHkgc3RyYW5nZSBvYnNlcnZhdGlvbiBhbmQgcmFpc2VzIGNvbmNlcm5zIGFib3V0IHRoZSBjb25zaXN0ZW5jeSBvZiBvdXIgbWV0aG9kb2xvZ3kuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoeSB0aGlzIHNwZWNpZmljYXRpb24gaXNuJ3QgYmVpbmcgdXNlZCBhcyB0aGUgc291cmNlIG9mIHRydXRoIGluIHRoZSBjb2RlIGdlbmVyYXRpb24gcHJvY2Vzcy4gUGVyaGFwcyB0aGVyZSBhcmUgY3JpdGljYWwgZGVzaWduIGRlY2lzaW9ucyB0aGUgc3BlY2lmaWNhdGlvbiBkb2Vzbid0IGZ1bGx5IGNhcHR1cmUsIG9yIG1heWJlIHRoZXJlJ3MgYSBkaXNjb25uZWN0IGluIG91ciB0b29scy4gUmVnYXJkbGVzcywgdGhlIGRpdmVyZ2VuY2UgZnJvbSB0aGUgZXN0YWJsaXNoZWQgcGF0dGVybiB3YXJyYW50cyBmdXJ0aGVyIGludmVzdGlnYXRpb24sIHN0YXJ0aW5nIGJ5IGRpZ2dpbmcgaW50byB0aGUgZmlsZSBpdHNlbGYuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxMDA3LCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTAyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEzVDAxOjExOjE5LjM1ODM3NDUyMloiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MzYxMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJEb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvdGNwX21ldHJpY3MueWFtbFwiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiA1MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6ICgoR1BMLTIuMCBXSVRIIExpbnV4LXN5c2NhbGwtbm90ZSkgT1IgQlNELTMtQ2xhdXNlKVxcbiAgIDI6XFx0LS0tXFxuICAgMzpcXHRuYW1lOiB0Y3BfbWV0cmljc1xcbiAgIDQ6XFx0XFxuICAgNTpcXHRwcm90b2NvbDogZ2VuZXRsaW5rLWxlZ2FjeVxcbiAgIDY6XFx0XFxuICAgNzpcXHRkb2M6IHxcXG4gICA4OlxcdCAgTWFuYWdlbWVudCBpbnRlcmZhY2UgZm9yIFRDUCBtZXRyaWNzLlxcbiAgIDk6XFx0XFxuICAxMDpcXHRjLWZhbWlseS1uYW1lOiB0Y3AtbWV0cmljcy1nZW5sLW5hbWVcXG4gIDExOlxcdGMtdmVyc2lvbi1uYW1lOiB0Y3AtbWV0cmljcy1nZW5sLXZlcnNpb25cXG4gIDEyOlxcdG1heC1ieS1kZWZpbmU6IHRydWVcXG4gIDEzOlxcdGtlcm5lbC1wb2xpY3k6IGdsb2JhbFxcbiAgMTQ6XFx0XFxuICAxNTpcXHRkZWZpbml0aW9uczpcXG4gIDE2OlxcdCAgLVxcbiAgMTc6XFx0ICAgIG5hbWU6IHRjcC1mYXN0b3Blbi1jb29raWUtbWF4XFxuICAxODpcXHQgICAgdHlwZTogY29uc3RcXG4gIDE5OlxcdCAgICB2YWx1ZTogMTZcXG4gIDIwOlxcdFxcbiAgMjE6XFx0YXR0cmlidXRlLXNldHM6XFxuICAyMjpcXHQgIC1cXG4gIDIzOlxcdCAgICBuYW1lOiB0Y3AtbWV0cmljc1xcbiAgMjQ6XFx0ICAgIG5hbWUtcHJlZml4OiB0Y3AtbWV0cmljcy1hdHRyLVxcbiAgMjU6XFx0ICAgIGF0dHJpYnV0ZXM6XFxuICAyNjpcXHQgICAgICAtXFxuICAyNzpcXHQgICAgICAgIG5hbWU6IGFkZHItaXB2NFxcbiAgMjg6XFx0ICAgICAgICB0eXBlOiB1MzJcXG4gIDI5OlxcdCAgICAgICAgYnl0ZS1vcmRlcjogYmlnLWVuZGlhblxcbiAgMzA6XFx0ICAgICAgICBkaXNwbGF5LWhpbnQ6IGlwdjRcXG4gIDMxOlxcdCAgICAgIC1cXG4gIDMyOlxcdCAgICAgICAgbmFtZTogYWRkci1pcHY2XFxuICAzMzpcXHQgICAgICAgIHR5cGU6IGJpbmFyeVxcbiAgMzQ6XFx0ICAgICAgICBjaGVja3M6XFxuICAzNTpcXHQgICAgICAgICAgZXhhY3QtbGVuOiAxNlxcbiAgMzY6XFx0ICAgICAgICBieXRlLW9yZGVyOiBiaWctZW5kaWFuXFxuICAzNzpcXHQgICAgICAgIGRpc3BsYXktaGludDogaXB2NlxcbiAgMzg6XFx0ICAgICAgLVxcbiAgMzk6XFx0ICAgICAgICBuYW1lOiBhZ2VcXG4gIDQwOlxcdCAgICAgICAgdHlwZTogdTY0XFxuICA0MTpcXHQgICAgICAtXFxuICA0MjpcXHQgICAgICAgIG5hbWU6IHR3LXRzdmFsXFxuICA0MzpcXHQgICAgICAgIHR5cGU6IHUzMlxcbiAgNDQ6XFx0ICAgICAgICBkb2M6IHVudXNlZFxcbiAgNDU6XFx0ICAgICAgLVxcbiAgNDY6XFx0ICAgICAgICBuYW1lOiB0dy10cy1zdGFtcFxcbiAgNDc6XFx0ICAgICAgICB0eXBlOiBzMzJcXG4gIDQ4OlxcdCAgICAgICAgZG9jOiB1bnVzZWRcXG4gIDQ5OlxcdCAgICAgIC1cXG4gIDUwOlxcdCAgICAgICAgbmFtZTogdmFsc1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xM1QwMToxMToxOS4zNTg0NDEzNDJaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjgtZmxhc2giLCJEdXJhdGlvbiI6MjI5MTQxMzM5NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgbGluZXMgZnJvbSB0aGUgZG9jdW1lbnRhdGlvbiwgYXMgaWYgdGhleSdyZSBteSBvd24gaW1tZWRpYXRlIHRob3VnaHRzOlxuXG4qKkFuYWx5emluZyBUQ1AgTWV0cmljcyBEb2N1bWVudGF0aW9uKipcblxuQWxyaWdodCwgbGV0J3MgZGl2ZSBpbnRvIHRob3NlIGxpbmVzIOKAkyBzcGVjaWZpY2FsbHksIDUwIHRocm91Z2ggMTMwIG9mIGBEb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvdGNwX21ldHJpY3MueWFtbGAuIEkgbmVlZCB0byByZWZyZXNoIG15IG1lbW9yeSBvbiB0aGUgc3BlY2lmaWMgc3RydWN0dXJlIGJlaW5nIGRlZmluZWQgaGVyZS4gSSByZW1lbWJlciB3b3JraW5nIHdpdGggbmV0bGluayBiZWZvcmUsIHNvIEkgaGF2ZSBhIGJhc2ljIHVuZGVyc3RhbmRpbmcgb2YgdGhlIHByb3RvY29sIGl0c2VsZiwgYnV0IHRoZSBkZXRhaWxzIG9mICp0aGlzKiBzcGVjaWZpYyBzcGVjaWZpY2F0aW9uIGFsd2F5cyByZXF1aXJlIGEgY2xvc2UgcmVhZC4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIHVuZGVyc3RhbmQgaG93IHRoZXNlIFRDUCBtZXRyaWNzIGFyZSBiZWluZyBkZWZpbmVkIHdpdGhpbiB0aGUgbmV0bGluayBmcmFtZXdvcmsuIEFyZSB3ZSB0YWxraW5nIGFib3V0IGF0dHJpYnV0ZXMsIG5lc3RlZCBzdHJ1Y3R1cmVzLCBkYXRhIHR5cGVzLCB0aGUgd29ya3M/IEkgbmVlZCB0byBxdWlja2x5IHJlY2FsbCB0aGUgdHlwaWNhbCBuZXRsaW5rIGF0dHJpYnV0ZSB0eXBlcyB0byBtYXAgdGhlbSBvbnRvIHRoZSBZQU1MIGRlZmluaXRpb25zLiBJIGV4cGVjdCBzb21lIGVudW1zIHRvIGRlZmluZSBzcGVjaWZpYyBtZXRyaWMgaWRlbnRpZmllcnMuIEkgYWxzbyBob3BlIHRvIHNlZSBjbGVhciBleHBsYW5hdGlvbnMgZm9yIGhvdyB2YXJpb3VzIGZsYWdzIG1pZ2h0IGJlIHNldCBvciBpbnRlcnByZXRlZC4gQW55IGV4YW1wbGVzIGluY2x1ZGVkIGhlcmUgd291bGQgYmUgaW5jcmVkaWJseSB1c2VmdWwuIFVsdGltYXRlbHksIG15IGdvYWwgaXMgdG8gc29saWRpZnkgbXkgdW5kZXJzdGFuZGluZyBvZiB0aGUgaW50ZXJmYWNlLCBlbnN1cmluZyBJIGNhbiBpbnRlcnByZXQgYW5kIHVzZSB0aGUgZGF0YSB0aGlzIHNwZWNpZmljYXRpb24gb3V0bGluZXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxOTM0LCJPdXRwdXRUb2tlbnMiOjM5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjgsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0xM1QwMToxMToyMS42NDk4NTc4MjZaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTAyMjcwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcIkRvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy90Y3BfbWV0cmljcy55YW1sXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDUxLFxuICBcIkxpbmVDb3VudFwiOiA4MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgIDUxOlxcdCAgICAgICAgdHlwZTogbmVzdFxcbiAgNTI6XFx0ICAgICAgICBuZXN0ZWQtYXR0cmlidXRlczogbWV0cmljc1xcbiAgNTM6XFx0ICAgICAgLVxcbiAgNTQ6XFx0ICAgICAgICBuYW1lOiBmb3Blbi1tc3NcXG4gIDU1OlxcdCAgICAgICAgdHlwZTogdTE2XFxuICA1NjpcXHQgICAgICAtXFxuICA1NzpcXHQgICAgICAgIG5hbWU6IGZvcGVuLXN5bi1kcm9wc1xcbiAgNTg6XFx0ICAgICAgICB0eXBlOiB1MTZcXG4gIDU5OlxcdCAgICAgIC1cXG4gIDYwOlxcdCAgICAgICAgbmFtZTogZm9wZW4tc3luLWRyb3AtdHNcXG4gIDYxOlxcdCAgICAgICAgdHlwZTogdTY0XFxuICA2MjpcXHQgICAgICAtXFxuICA2MzpcXHQgICAgICAgIG5hbWU6IGZvcGVuLWNvb2tpZVxcbiAgNjQ6XFx0ICAgICAgICB0eXBlOiBiaW5hcnlcXG4gIDY1OlxcdCAgICAgICAgY2hlY2tzOlxcbiAgNjY6XFx0ICAgICAgICAgIG1heC1sZW46IHRjcC1mYXN0b3Blbi1jb29raWUtbWF4XFxuICA2NzpcXHQgICAgICAtXFxuICA2ODpcXHQgICAgICAgIG5hbWU6IHNhZGRyLWlwdjRcXG4gIDY5OlxcdCAgICAgICAgdHlwZTogdTMyXFxuICA3MDpcXHQgICAgICAgIGJ5dGUtb3JkZXI6IGJpZy1lbmRpYW5cXG4gIDcxOlxcdCAgICAgICAgZGlzcGxheS1oaW50OiBpcHY0XFxuICA3MjpcXHQgICAgICAtXFxuICA3MzpcXHQgICAgICAgIG5hbWU6IHNhZGRyLWlwdjZcXG4gIDc0OlxcdCAgICAgICAgdHlwZTogYmluYXJ5XFxuICA3NTpcXHQgICAgICAgIGNoZWNrczpcXG4gIDc2OlxcdCAgICAgICAgICBleGFjdC1sZW46IDE2XFxuICA3NzpcXHQgICAgICAgIGJ5dGUtb3JkZXI6IGJpZy1lbmRpYW5cXG4gIDc4OlxcdCAgICAgICAgZGlzcGxheS1oaW50OiBpcHY2XFxuICA3OTpcXHQgICAgICAtXFxuICA4MDpcXHQgICAgICAgIG5hbWU6IHBhZFxcbiAgODE6XFx0ICAgICAgICB0eXBlOiBwYWRcXG4gIDgyOlxcdFxcbiAgODM6XFx0ICAtXFxuICA4NDpcXHQgICAgbmFtZTogbWV0cmljc1xcbiAgODU6XFx0ICAgICMgSW50ZW50aW9uYWxseSBkb24ndCBkZWZpbmUgdGhlIG5hbWUtcHJlZml4LCBzZWUgYmVsb3cuXFxuICA4NjpcXHQgICAgZG9jOiB8XFxuICA4NzpcXHQgICAgICBBdHRyaWJ1dGVzIHdpdGggbWV0cmljcy4gTm90ZSB0aGF0IHRoZSB2YWx1ZXMgaGVyZSBkbyBub3QgbWF0Y2hcXG4gIDg4OlxcdCAgICAgIHRoZSBUQ1BfTUVUUklDXyogZGVmaW5lcyBpbiB0aGUga2VybmVsLCBiZWNhdXNlIGtlcm5lbCBkZWZpbmVzXFxuICA4OTpcXHQgICAgICBhcmUgb2ZmLWJ5IG9uZSAoZS5nLiBydHQgaXMgZGVmaW5lZCBhcyBlbnVtIDAsIHdoaWxlIG5ldGxpbmsgY2Fycmllc1xcbiAgOTA6XFx0ICAgICAgYXR0cmlidXRlIHR5cGUgMSkuXFxuICA5MTpcXHQgICAgYXR0cmlidXRlczpcXG4gIDkyOlxcdCAgICAgIC1cXG4gIDkzOlxcdCAgICAgICAgbmFtZTogcnR0XFxuICA5NDpcXHQgICAgICAgIHR5cGU6IHUzMlxcbiAgOTU6XFx0ICAgICAgICBkb2M6IHxcXG4gIDk2OlxcdCAgICAgICAgICBSb3VuZCBUcmlwIFRpbWUgKFJUVCksIGluIG1zZWNzIHdpdGggMyBiaXRzIGZyYWN0aW9uYWwuXFxuICA5NzpcXHQgICAgICAtXFxuICA5ODpcXHQgICAgICAgIG5hbWU6IHJ0dHZhclxcbiAgOTk6XFx0ICAgICAgICB0eXBlOiB1MzJcXG4gMTAwOlxcdCAgICAgICAgZG9jOiB8XFxuIDEwMTpcXHQgICAgICAgICAgUm91bmQgVHJpcCBUaW1lIFZBUmlhbmNlIChSVFRWQVIpLCBpbiBtc2VjcyB3aXRoIDIgYml0cyBmcmFjdGlvbmFsLlxcbiAxMDI6XFx0ICAgICAgLVxcbiAxMDM6XFx0ICAgICAgICBuYW1lOiBzc3RocmVzaFxcbiAxMDQ6XFx0ICAgICAgICB0eXBlOiB1MzJcXG4gMTA1OlxcdCAgICAgICAgZG9jOiBTbG93IFN0YXJ0IFRIUkVTSG9sZC5cXG4gMTA2OlxcdCAgICAgIC1cXG4gMTA3OlxcdCAgICAgICAgbmFtZTogY3duZFxcbiAxMDg6XFx0ICAgICAgICB0eXBlOiB1MzJcXG4gMTA5OlxcdCAgICAgICAgZG9jOiBDb25nZXN0aW9uIFdpbmRvdy5cXG4gMTEwOlxcdCAgICAgIC1cXG4gMTExOlxcdCAgICAgICAgbmFtZTogcmVvZGVyaW5nXFxuIDExMjpcXHQgICAgICAgIHR5cGU6IHUzMlxcbiAxMTM6XFx0ICAgICAgICBkb2M6IFJlb2RlcmluZyBtZXRyaWMuXFxuIDExNDpcXHQgICAgICAtXFxuIDExNTpcXHQgICAgICAgIG5hbWU6IHJ0dC11c1xcbiAxMTY6XFx0ICAgICAgICB0eXBlOiB1MzJcXG4gMTE3OlxcdCAgICAgICAgZG9jOiB8XFxuIDExODpcXHQgICAgICAgICAgUm91bmQgVHJpcCBUaW1lIChSVFQpLCBpbiB1c2Vjcywgd2l0aCAzIGJpdHMgZnJhY3Rpb25hbC5cXG4gMTE5OlxcdCAgICAgIC1cXG4gMTIwOlxcdCAgICAgICAgbmFtZTogcnR0dmFyLXVzXFxuIDEyMTpcXHQgICAgICAgIHR5cGU6IHUzMlxcbiAxMjI6XFx0ICAgICAgICBkb2M6IHxcXG4gMTIzOlxcdCAgICAgICAgICBSb3VuZCBUcmlwIFRpbWUgVkFSaWFuY2UgKFJUVFZBUiksIGluIHVzZWNzLCB3aXRoIDIgYml0cyBmcmFjdGlvbmFsLlxcbiAxMjQ6XFx0XFxuIDEyNTpcXHRvcGVyYXRpb25zOlxcbiAxMjY6XFx0ICBsaXN0OlxcbiAxMjc6XFx0ICAgIC1cXG4gMTI4OlxcdCAgICAgIG5hbWU6IGdldFxcbiAxMjk6XFx0ICAgICAgZG9jOiBSZXRyaWV2ZSBtZXRyaWNzLlxcbiAxMzA6XFx0ICAgICAgYXR0cmlidXRlLXNldDogdGNwLW1ldHJpY3NcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTNUMDE6MTE6MjEuNjQ5OTYyMjU2WiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy44LWZsYXNoIiwiRHVyYXRpb24iOjUyMjcyMzY2NTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudDogTm90IFdvcnRoIEZ1enppbmcqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24gYWNjb3JkaW5nIHRvIHRoZSBpbnN0cnVjdGlvbnMuIEkgbmVlZCB0byBkZXRlcm1pbmUgaWYgdGhpcyBwYXRjaCB3YXJyYW50cyBmdXp6aW5nLCBhbmQgdGhlIGNyaXRlcmlhIGZvciByZXR1cm5pbmcgYFdvcnRoRnV6emluZz1mYWxzZWAgKHRoZSBcIm5lZ2F0aXZlIGNyaXRlcmlhXCIpIGFyZSBteSBndWlkZS4gU3BlY2lmaWNhbGx5LCB0aGUgcGF0Y2ggc2VlbXMgdG8gbW9kaWZ5IGBEb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvdGNwX21ldHJpY3MueWFtbGAuIEkgbmVlZCB0byBlbnN1cmUgdGhhdCB0aGlzIGZpbGUgZG9lc24ndCBzb21laG93IGltcGFjdCB0aGUgY29tcGlsZWQga2VybmVsLlxuXG5GaXJzdCwgSSBuZWVkIHRvIHZlcmlmeSB0aGF0IGB0Y3BfbWV0cmljcy55YW1sYCBhbmQgaXRzIGxvY2F0aW9uIGFyZSBhY3R1YWxseSAqdXNlZCogZHVyaW5nIHRoZSBrZXJuZWwgYnVpbGQgcHJvY2Vzcy4gU28sIEkgbmVlZCB0byBjaGVjayB0aGUgYnVpbGQgc3lzdGVtLiBTaW5jZSBJIGRpZCBhIGdlbmVyYWwgc2VhcmNoIGJlZm9yZSwgSSBrbm93IEkgYWxyZWFkeSBzZWFyY2hlZCB0aGUgcmVwbywgYnV0IGxldCdzIGRvdWJsZS1jaGVjay4gVGhlIHNlYXJjaCByZXN1bHRzIHNob3dlZCB0aGF0IHRoZXJlJ3Mgbm8gYWN0dWFsIGJ1aWxkLXRpbWUgZ2VuZXJhdGlvbiBmcm9tIGB0Y3BfbWV0cmljcy55YW1sYC4gSSBhbHNvIGNvbmZpcm1lZCwgaW5kZXBlbmRlbnRseSwgdGhhdCBgbmV0L2lwdjQvdGNwX21ldHJpY3MuY2AgaXNuJ3QgZ2VuZXJhdGVkIGZyb20gYSBZQU1MIGZpbGUuIEl0IGhhcyBoYW5kd3JpdHRlbiBvcGVyYXRpb25zIGFuZCBwb2xpY2llcy5cblxuVGhlIHJlc3VsdHMgcG9pbnQgdG8gYHRjcF9tZXRyaWNzLnlhbWxgIGJlaW5nIHB1cmVseSBhIGRvY3VtZW50YXRpb24gZmlsZSwgbGl2aW5nIHVuZGVyIGBEb2N1bWVudGF0aW9uL2AuIEl0J3MgYSBZQU1MIHNwZWNpZmljYXRpb24sIGFuZCBmcm9tIHRoZSBleGlzdGluZyBjb2RlYmFzZSwgaXQgZG9lc24ndCBmZWVkIGludG8gYW55IGNvbXBpbGVkIGNvZGUuXG5cblRoZXJlZm9yZSwgYmVjYXVzZSB0aGlzIHBhdGNoICpvbmx5KiBtb2RpZmllcyB0aGUgZG9jdW1lbnRhdGlvbiBmaWxlLCBpdCBkaXJlY3RseSBmYWxscyB1bmRlciB0aGUgbmVnYXRpdmUgY3JpdGVyaWE6IFwiTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgY29tbWVudHMsIG9yIHNwZWxsaW5nIGZpeGVzLFwiIGFuZCBcIk5vbi1rZXJuZWwgYW5kIG5vbi1leGVjdXRhYmxlIGNoYW5nZXNcIi4gVGhlIHBhdGNoIGhhcyBubyBpbXBhY3Qgb24gdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAoYHZtbGludXhgKSBvciBhbnkga2VybmVsIG1vZHVsZXMuXG5cblRodXMsIG15IGNvbmNsdXNpb24gaXMgYFdvcnRoRnV6emluZyA9IGZhbHNlYC4gSSBhbHNvIGhhdmUgYEVuYWJsZUNvbmZpZ3MgPSBbXWAgYW5kIGBGb2N1c1N5bWJvbHMgPSBbXWAuIEknbGwgYWxzbyBpbmNsdWRlIGEgY29uY2lzZSBleHBsYW5hdGlvbiB0aGF0IHRoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIHRoZSBkb2N1bWVudGF0aW9uIGZpbGUgd2hpY2ggZG9lc24ndCBhZmZlY3QgZXhlY3V0YWJsZSBrZXJuZWwgY29kZSBvciB0aGUga2VybmVsIGltYWdlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMzI0OCwiT3V0cHV0VG9rZW5zIjo5NiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY1OCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEzVDAxOjExOjI2Ljg3NzIwMTM5NFoiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI0NDgwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL3RjcF9tZXRyaWNzLnlhbWwsIHdoaWNoIGlzIGEgbmV0bGluayBzcGVjaWZpY2F0aW9uIGZpbGUgdW5kZXIgRG9jdW1lbnRhdGlvbi8uIEl0IGRvZXMgbm90IG1vZGlmeSBhbnkgQyBzb3VyY2UgY29kZSBvciBhZmZlY3QgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAodm1saW51eCkgb3Iga2VybmVsIG1vZHVsZXMuIFRoZXJlZm9yZSwgaXQgaXMgbm9uLWV4ZWN1dGFibGUgZG9jdW1lbnRhdGlvbiBhbmQgZG9lcyBub3Qgd2FycmFudCBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBEb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvdGNwX21ldHJpY3MueWFtbCwgd2hpY2ggaXMgYSBuZXRsaW5rIHNwZWNpZmljYXRpb24gZmlsZSB1bmRlciBEb2N1bWVudGF0aW9uLy4gSXQgZG9lcyBub3QgbW9kaWZ5IGFueSBDIHNvdXJjZSBjb2RlIG9yIGFmZmVjdCB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlICh2bWxpbnV4KSBvciBrZXJuZWwgbW9kdWxlcy4gVGhlcmVmb3JlLCBpdCBpcyBub24tZXhlY3V0YWJsZSBkb2N1bWVudGF0aW9uIGFuZCBkb2VzIG5vdCB3YXJyYW50IGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xM1QwMToxMToyNi44NzcyMjk3MjRaIiwiU2VxIjoxNywiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE5MTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflownjshv[0].run-triage(0) Phase: Succeeded StartedAt: 2026-09-12 23:57:24 +0000 UTC FinishedAt: 2026-09-13 01:11:28 +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+CgkJCTx0ZD4yMDI2LzA5LzEzIDAxOjEwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBEb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvdGNwX21ldHJpY3MueWFtbCwgd2hpY2ggaXMgYSBuZXRsaW5rIHNwZWNpZmljYXRpb24gZmlsZSB1bmRlciBEb2N1bWVudGF0aW9uLy4gSXQgZG9lcyBub3QgbW9kaWZ5IGFueSBDIHNvdXJjZSBjb2RlIG9yIGFmZmVjdCB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlICh2bWxpbnV4KSBvciBrZXJuZWwgbW9kdWxlcy4gVGhlcmVmb3JlLCBpdCBpcyBub24tZXhlY3V0YWJsZSBkb2N1bWVudGF0aW9uIGFuZCBkb2VzIG5vdCB3YXJyYW50IGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEzIDAxOjEwPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgMmQxNmM3ZjRjOGU1ODE5N2UxMDYxYjczN2UyNzY5ZWRmYzI5ZTA4MVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTdW4gU2VwIDEzIDAxOjEwOjQzIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy90Y3BfbWV0cmljcy55YW1sIGIvRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL3RjcF9tZXRyaWNzLnlhbWxcbmluZGV4IDEzMTQ0YWVlZDMxYTUuLjc3OWU4YTIyYjc2NWUgMTAwNjQ0XG4tLS0gYS9Eb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvdGNwX21ldHJpY3MueWFtbFxuJiM0MzsmIzQzOyYjNDM7IGIvRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL3RjcF9tZXRyaWNzLnlhbWxcbkBAIC0zMiw3ICYjNDM7MzIsNyBAQCBhdHRyaWJ1dGUtc2V0czpcbiAgICAgICAgIG5hbWU6IGFkZHItaXB2NlxuICAgICAgICAgdHlwZTogYmluYXJ5XG4gICAgICAgICBjaGVja3M6XG4tICAgICAgICAgIG1pbi1sZW46IDE2XG4mIzQzOyAgICAgICAgICBleGFjdC1sZW46IDE2XG4gICAgICAgICBieXRlLW9yZGVyOiBiaWctZW5kaWFuXG4gICAgICAgICBkaXNwbGF5LWhpbnQ6IGlwdjZcbiAgICAgICAtXG5AQCAtNjMsNyAmIzQzOzYzLDcgQEAgYXR0cmlidXRlLXNldHM6XG4gICAgICAgICBuYW1lOiBmb3Blbi1jb29raWVcbiAgICAgICAgIHR5cGU6IGJpbmFyeVxuICAgICAgICAgY2hlY2tzOlxuLSAgICAgICAgICBtaW4tbGVuOiB0Y3AtZmFzdG9wZW4tY29va2llLW1heFxuJiM0MzsgICAgICAgICAgbWF4LWxlbjogdGNwLWZhc3RvcGVuLWNvb2tpZS1tYXhcbiAgICAgICAtXG4gICAgICAgICBuYW1lOiBzYWRkci1pcHY0XG4gICAgICAgICB0eXBlOiB1MzJcbkBAIC03Myw3ICYjNDM7NzMsNyBAQCBhdHRyaWJ1dGUtc2V0czpcbiAgICAgICAgIG5hbWU6IHNhZGRyLWlwdjZcbiAgICAgICAgIHR5cGU6IGJpbmFyeVxuICAgICAgICAgY2hlY2tzOlxuLSAgICAgICAgICBtaW4tbGVuOiAxNlxuJiM0MzsgICAgICAgICAgZXhhY3QtbGVuOiAxNlxuICAgICAgICAgYnl0ZS1vcmRlcjogYmlnLWVuZGlhblxuICAgICAgICAgZGlzcGxheS1oaW50OiBpcHY2XG4gICAgICAgLVxuQEAgLTkzLDE0ICYjNDM7OTMsMTIgQEAgYXR0cmlidXRlLXNldHM6XG4gICAgICAgICBuYW1lOiBydHRcbiAgICAgICAgIHR5cGU6IHUzMlxuICAgICAgICAgZG9jOiB8XG4tICAgICAgICAgIFJvdW5kIFRyaXAgVGltZSAoUlRUKSwgaW4gbXNlY3Mgd2l0aCAzIGJpdHMgZnJhY3Rpb25hbFxuLSAgICAgICAgICAobGVmdC1zaGlmdCBieSAzIHRvIGdldCB0aGUgbXNlYyB2YWx1ZSkuXG4mIzQzOyAgICAgICAgICBSb3VuZCBUcmlwIFRpbWUgKFJUVCksIGluIG1zZWNzIHdpdGggMyBiaXRzIGZyYWN0aW9uYWwuXG4gICAgICAgLVxuICAgICAgICAgbmFtZTogcnR0dmFyXG4gICAgICAgICB0eXBlOiB1MzJcbiAgICAgICAgIGRvYzogfFxuLSAgICAgICAgICBSb3VuZCBUcmlwIFRpbWUgVkFSaWFuY2UgKFJUVCksIGluIG1zZWNzIHdpdGggMiBiaXRzIGZyYWN0aW9uYWxcbi0gICAgICAgICAgKGxlZnQtc2hpZnQgYnkgMiB0byBnZXQgdGhlIG1zZWMgdmFsdWUpLlxuJiM0MzsgICAgICAgICAgUm91bmQgVHJpcCBUaW1lIFZBUmlhbmNlIChSVFRWQVIpLCBpbiBtc2VjcyB3aXRoIDIgYml0cyBmcmFjdGlvbmFsLlxuICAgICAgIC1cbiAgICAgICAgIG5hbWU6IHNzdGhyZXNoXG4gICAgICAgICB0eXBlOiB1MzJcbkBAIC0xMTcsMTQgJiM0MzsxMTUsMTIgQEAgYXR0cmlidXRlLXNldHM6XG4gICAgICAgICBuYW1lOiBydHQtdXNcbiAgICAgICAgIHR5cGU6IHUzMlxuICAgICAgICAgZG9jOiB8XG4tICAgICAgICAgIFJvdW5kIFRyaXAgVGltZSAoUlRUKSwgaW4gdXNlY3MsIHdpdGggMyBiaXRzIGZyYWN0aW9uYWxcbi0gICAgICAgICAgKGxlZnQtc2hpZnQgYnkgMyB0byBnZXQgdGhlIG1zZWMgdmFsdWUpLlxuJiM0MzsgICAgICAgICAgUm91bmQgVHJpcCBUaW1lIChSVFQpLCBpbiB1c2Vjcywgd2l0aCAzIGJpdHMgZnJhY3Rpb25hbC5cbiAgICAgICAtXG4gICAgICAgICBuYW1lOiBydHR2YXItdXNcbiAgICAgICAgIHR5cGU6IHUzMlxuICAgICAgICAgZG9jOiB8XG4tICAgICAgICAgIFJvdW5kIFRyaXAgVGltZSAoUlRUKSwgaW4gdXNlY3MsIHdpdGggMiBiaXRzIGZyYWN0aW9uYWxcbi0gICAgICAgICAgKGxlZnQtc2hpZnQgYnkgMyB0byBnZXQgdGhlIG1zZWMgdmFsdWUpLlxuJiM0MzsgICAgICAgICAgUm91bmQgVHJpcCBUaW1lIFZBUmlhbmNlIChSVFRWQVIpLCBpbiB1c2Vjcywgd2l0aCAyIGJpdHMgZnJhY3Rpb25hbC5cbiBcbiBvcGVyYXRpb25zOlxuICAgbGlzdDpcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMyAwMToxMDwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5jb3JlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy90Y3BfbWV0cmljcy55YW1sLCB3aGljaCBpcyBhIG5ldGxpbmsgc3BlY2lmaWNhdGlvbiBmaWxlIHVuZGVyIERvY3VtZW50YXRpb24vLiBJdCBkb2VzIG5vdCBtb2RpZnkgYW55IEMgc291cmNlIGNvZGUgb3IgYWZmZWN0IHRoZSBjb21waWxlZCBrZXJuZWwgaW1hZ2UgKHZtbGludXgpIG9yIGtlcm5lbCBtb2R1bGVzLiBUaGVyZWZvcmUsIGl0IGlzIG5vbi1leGVjdXRhYmxlIGRvY3VtZW50YXRpb24gYW5kIGRvZXMgbm90IHdhcnJhbnQgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyIGFuZCBzZWN1cml0eSBlbmdpbmVlci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBldmFsdWF0ZSB3aGV0aGVyIGl0IHdhcnJhbnRzIGZ1enppbmcgd2l0aCBzeXprYWxsZXIuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIGludGVybmFsIGFzc3VtcHRpb25zLiBZb3UgbXVzdCBhY3RpdmVseSB1c2UgeW91ciBjb2RlIGFjY2Vzcwp0b29scyB0byBpbnNwZWN0IHRoZSBhY3R1YWwgc291cmNlIGNvZGUsIGNhbGxlcnMsIGFuZCBzdXJyb3VuZGluZyBjb250ZXh0LgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMS4gQ09SRSBUUklBR0UgUEhJTE9TT1BIWQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpUaGUgZ29hbCBvZiBwYXRjaCBmdXp6aW5nIGlzIHRvIGRpc2NvdmVyIGNyYXNoZXMsIHJlZ3Jlc3Npb25zLCBleHBvc2VkIGxhdGVudCBidWdzLAphbmQgbmV3bHkgdHJpZ2dlcmVkIGFzc2VydGlvbnMgaW50cm9kdWNlZCBieSB0aGUgcGF0Y2ggc2VyaWVzLgoKLSBSRUFDSEFCSUxJVFkgSVMgVEhFIFBSSU1BUlkgR0FURToKICBGdXp6aW5nIGNhbiBvbmx5IGRpc2NvdmVyIGJ1Z3MgaW4gY29kZSB0aGF0IGNhbiBhY3R1YWxseSBleGVjdXRlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkCiAgZW52aXJvbm1lbnRzIChHQ0Ugb3IgUUVNVSwgdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGRldmljZXMgbGlrZSBVU0IgZ2FkZ2V0cywgbmV0ZGV2LCB0dW4vdGFwKS4KICBJZiB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgKHNlZSBTZWN0aW9uIDIpLCBpdCBNVVNUIE5PVCBiZSBmdXp6ZWQsCiAgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0IGFkZHMgYXNzZXJ0aW9ucyBvciBjb21wbGV4IGxvZ2ljLgoKLSBETyBOT1QgQkxJTkRMWSBUUlVTVCAmIzM0O05PIEZVTkNUSU9OQUwgQ0hBTkdFJiMzNDsgKE5GQ0kpIE9SICYjMzQ7UkVGQUNUT1JJTkcmIzM0OyBDTEFJTVM6CiAgUGF0Y2ggYXV0aG9ycyByb3V0aW5lbHkgbGFiZWwgY2hhbmdlcyBhcyAmIzM0O2NsZWFudXBzJiMzNDssICYjMzQ7cmVmYWN0b3JpbmdzJiMzNDssIG9yIHN0YXRlCiAgJiMzNDtObyBmdW5jdGlvbmFsIGNoYW5nZSBpbnRlbmRlZCYjMzQ7LiBEbyBOT1QgdGFrZSB0aGVzZSBjbGFpbXMgYXQgZmFjZSB2YWx1ZS4KICBDb2RlIHJlZmFjdG9yaW5ncyB0aGF0IHJlYXJyYW5nZSBsb2dpYywgaW50cm9kdWNlIGhlbHBlciBmdW5jdGlvbnMsIG9yIGFsdGVyIHN0YXRlIG1hbmFnZW1lbnQKICBpbiBjb3JlIHN1YnN5c3RlbXMgZnJlcXVlbnRseSBpbnRyb2R1Y2Ugc3VidGxlIHNlbWFudGljIHNoaWZ0cyBvciB1bmNvdmVyIGxhdGVudCBrZXJuZWwgYnVncy4KICBJZiByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlIGlzIG1vZGlmaWVkIG9yIHJlZmFjdG9yZWQsIGl0IE1VU1QgYmUgZnV6emVkLgoKLSBORVcgT1IgTU9ESUZJRUQgQVNTRVJUSU9OUyBJTiBSRUFDSEFCTEUgQ09ERSBNVVNUIEJFIEZVWlpFRDoKICBXaGVuIGEgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllcyBydW50aW1lIGNoZWNrcyBvciBhc3NlcnRpb25zIChlLmcuLCBXQVJOX09OKiwgVk1fV0FSTl9PTiosCiAgQlVHX09OKiwgbG9ja2RlcF9hc3NlcnQqKSBpbiByZWFjaGFibGUgY29kZSBwYXRocywgaXQgZW5mb3JjZXMgbmV3IG9yIHN0cmljdGVyIGludmFyaWFudHMuCiAgRXZlbiBpZiB0aGUgYXV0aG9yIGJlbGlldmVzIHRoZSBpbnZhcmlhbnQgYWx3YXlzIGhvbGRzLCBmdXp6aW5nIGlzIGVzc2VudGlhbCB0byB2ZXJpZnkgd2hldGhlcgogIGFuIHVudXN1YWwgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucyBjYW4gdmlvbGF0ZSBpdC4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjIuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz1mYWxzZSAoTkVHQVRJVkUgQ1JJVEVSSUEpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgT05MWSBJRiBhbGwgbW9kaWZpZWQgY29kZSBmYWxscyBzdHJpY3RseSBpbnRvIG9uZSBvciBtb3JlIG9mIHRoZXNlIGNhdGVnb3JpZXM6CgotIE5vbi1rZXJuZWwgYW5kIG5vbi1leGVjdXRhYmxlIGNoYW5nZXM6CiAgKiBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBjb21tZW50cywgb3Igc3BlbGxpbmcgZml4ZXMuCiAgKiBVc2VyLXNwYWNlIGRpcmVjdG9yaWVzLCBzZWxmLXRlc3RzLCBzYW1wbGVzLCBvciBzY3JpcHRzIChlLmcuLCB0b29scy8sIHNhbXBsZXMvLCBzY3JpcHRzLywgdXNyLykKICAgIHRoYXQgZG8gbm90IGFmZmVjdCB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlICh2bWxpbnV4KSBvciBrZXJuZWwgbW9kdWxlcy4KICAqIFB1cmVseSBkZWNvcmF0aXZlIGxvZ2dpbmcgKGUuZy4sIG1lc3NhZ2Ugc3RyaW5ncyBpbiBwcl9lcnIsIHByaW50aywgZGV2X2luZm8pIG9yIHRyYWNlcG9pbnRzCiAgICB0aGF0IGRvIG5vdCBhbHRlciBjb250cm9sIGZsb3cgb3IgZGF0YSBzdHJ1Y3R1cmVzLgogICogQnVpbGQgc3lzdGVtIG9yIEtjb25maWcgY2hhbmdlcyB0aGF0IGRvIG5vdCBhbHRlciBjb21waWxlZCBDIGxvZ2ljLgotIFN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZToKICAqIFZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICAgIGlvbmljLCBhbWRncHUpIHJlcXVpcmluZyBwaHlzaWNhbCBBU0lDL1BDSWUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gVW5yZWFjaGFibGUgZXhlY3V0aW9uIHBhdGhzOgogICogRHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoLnJlbW92ZSwgLnNodXRkb3duLCBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIpIGV4ZWN1dGVkIG9ubHkgZHVyaW5nCiAgICBwaHlzaWNhbCBQQ0kgaG90LXVucGx1ZyBvciBtYW51YWwgc3lzZnMgZHJpdmVyIHVuYmluZGluZy4KICAqIENvZGUgcGF0aHMgZXhjbHVzaXZlIHRvIGFyY2hpdGVjdHVyZXMgb3RoZXIgdGhhbiB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjMuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz10cnVlIChQT1NJVElWRSBDUklURVJJQSkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUmV0dXJuIFdvcnRoRnV6emluZz10cnVlIHdoZW5ldmVyIHRoZSBwYXRjaCB0b3VjaGVzIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUsIGluY2x1ZGluZzoKLSBDb3JlIFN1YnN5c3RlbXM6CiAgKiBBbnkgbG9naWMgbW9kaWZpY2F0aW9ucyBpbiBtZW1vcnkgbWFuYWdlbWVudCAobW0vKSwgc3luY2hyb25pemF0aW9uL2xvY2tpbmcgKGtlcm5lbC9sb2NraW5nLyksCiAgICBCUEYsIHNjaGVkdWxlciwgY29yZSBuZXR3b3JraW5nLCBWRlMsIG9yIHN5c2NhbGwgaGFuZGxpbmcuCi0gUmVmYWN0b3JpbmdzIGFuZCBDb2RlIENsZWFudXBzOgogICogQW55IHJlc3RydWN0dXJpbmcgb2YgcmVhY2hhYmxlIGRhdGEgc3RydWN0dXJlcywgaGVscGVyIGFic3RyYWN0aW9ucywgb3IgYWxnb3JpdGhtIGZsb3dzLgotIFJ1bnRpbWUgQXNzZXJ0aW9ucyBhbmQgRGVmZW5zaXZlIENoZWNrczoKICAqIEFueSBpbnRyb2R1Y3Rpb24gb3IgYWx0ZXJhdGlvbiBvZiBhc3NlcnRpb25zIChXQVJOX09OKiwgVk1fV0FSTl9PTiosIEJVR19PTiosIGV0Yy4pIGluIHJlYWNoYWJsZSBwYXRocy4KLSBSZWFjaGFibGUgRHJpdmVycyBhbmQgUHJvdG9jb2xzOgogICogRHJpdmVycyBhY2Nlc3NpYmxlIHZpYSB2aXJ0dWFsIGJ1c2VzICh2aXJ0aW8sIFVTQiBnYWRnZXQsIGxvb3BiYWNrLCBuZXRsaW5rLCBiaW5kZXIsIHNvY2tldHMsIGV0Yy4pLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KNC4gRVhUUkFDVElORyBGb2N1c1N5bWJvbHMgKFBSRVZFTlRJTkcgRElMVVRJT04pCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CldoZW4gV29ydGhGdXp6aW5nPXRydWUsIHlvdSBtdXN0IGV4dHJhY3Qgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyBpbnRvIEZvY3VzU3ltYm9scyB0byBndWlkZSB0aGUgZnV6emVyOgoKLSBBVk9JRCBVQklRVUlUT1VTIExJRkVDWUNMRSBIT1QtUEFUSFM6CiAgRG8gTk9UIGxpc3QgZ2VuZXJpYywgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2FsbGVkIGJ5IGFsbW9zdCBldmVyeSBwcm9ncmFtIGluIHRoZSBjb3JwdXMKICAoaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG86IGdlbmVyYWwgbWVtb3J5IGFsbG9jYXRvcnMgYW5kIGRlYWxsb2NhdG9ycywgcGFnZSBmYXVsdAogIGFuZCB0cmFwIGhhbmRsZXJzLCBvciBjb3JlIHN5bmNocm9uaXphdGlvbiBwcmltaXRpdmVzOyB0aGlzIGlzIG5vdCBhbiBleGhhdXN0aXZlIGxpc3QpLgogIExpc3RpbmcgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2F1c2VzIHRoZSBmdXp6ZXIgdG8gY2xhc3NpZnkgdGhvdXNhbmRzIG9mIHVucmVsYXRlZCB0ZXN0cyBhcyAmIzM0O2ZvY3VzZWQmIzM0OywKICB3aGljaCBzZXZlcmVseSBkaWx1dGVzIGZ1enppbmcgZWZmb3J0IGF3YXkgZnJvbSB0aGUgYWN0dWFsIGNoYW5nZXMuCgotIFRBUkdFVCBTUEVDSUZJQyBGRUFUVVJFIExPR0lDIEFORCBFTlRSWVBPSU5UUzoKICBMaXN0IGZ1bmN0aW9ucyB0aGF0IHNwZWNpZmljYWxseSBpbXBsZW1lbnQgdGhlIGxvZ2ljIGJlaW5nIGFkZGVkIG9yIGFsdGVyZWQsIG9yIGRpcmVjdCBBUEkgZW50cnlwb2ludHMKICBmb3IgdGhlIHN1YnN5c3RlbSBmZWF0dXJlIHVuZGVyIHJldmlldy4KCi0gSEFORExJTkcgU1RBVElDIElOTElORSBGVU5DVElPTlMgSU4gSEVBREVSUyAoLmgpOgogIENvbXBpbGVyLWlubGluZWQgc3RhdGljIGZ1bmN0aW9ucyAoc3VjaCBhcyBzdGF0aWMgaW5saW5lcyBpbiBtbS8qLmggb3IgaW5jbHVkZS9saW51eC8qLmgpIGxhY2sKICBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzIGluIHZtbGludXggYW5kIGNhbm5vdCBiZSB0YXJnZXRlZCBkaXJlY3RseSBieSBzeW1ib2wgY292ZXJhZ2UgZmlsdGVycy4KICBJZiB0aGUgY2hhbmdlcyBhcmUgcHJpbWFyaWx5IGluIHN0YXRpYyBpbmxpbmUgaGVscGVycywgaWRlbnRpZnkgbm9uLXN0YXRpYywgZmVhdHVyZS1zcGVjaWZpYyBjYWxsZXIKICBmdW5jdGlvbnMgaW4gLmMgZmlsZXMgdGhhdCBleGVyY2lzZSB0aGVtIChhdm9pZGluZyB1YmlxdWl0b3VzIGxpZmVjeWNsZSB3cmFwcGVycykuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo1LiBJREVOVElGWUlORyBFbmFibGVDb25maWdzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CklkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgY29tcGlsZSBhbmQgcmVhY2ggdGhlIG1vZGlmaWVkIGNvZGU6Ci0gSW5zcGVjdCBLY29uZmlnIGZpbGVzIGFuZCAjaWZkZWYgZ3VhcmRzOyBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KLSBDaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MgbmVlZGVkLgotIFN0cmlwIGFueSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5UYXJnZXQgYXJjaGl0ZWN0dXJlOiBhbWQ2NAoKRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAyZDE2YzdmNGM4ZTU4MTk3ZTEwNjFiNzM3ZTI3NjllZGZjMjllMDgxCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFN1biBTZXAgMTMgMDE6MTA6NDMgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvdGNwX21ldHJpY3MueWFtbCBiL0RvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy90Y3BfbWV0cmljcy55YW1sCmluZGV4IDEzMTQ0YWVlZDMxYTUuLjc3OWU4YTIyYjc2NWUgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy90Y3BfbWV0cmljcy55YW1sCiYjNDM7JiM0MzsmIzQzOyBiL0RvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy90Y3BfbWV0cmljcy55YW1sCkBAIC0zMiw3ICYjNDM7MzIsNyBAQCBhdHRyaWJ1dGUtc2V0czoKICAgICAgICAgbmFtZTogYWRkci1pcHY2CiAgICAgICAgIHR5cGU6IGJpbmFyeQogICAgICAgICBjaGVja3M6Ci0gICAgICAgICAgbWluLWxlbjogMTYKJiM0MzsgICAgICAgICAgZXhhY3QtbGVuOiAxNgogICAgICAgICBieXRlLW9yZGVyOiBiaWctZW5kaWFuCiAgICAgICAgIGRpc3BsYXktaGludDogaXB2NgogICAgICAgLQpAQCAtNjMsNyAmIzQzOzYzLDcgQEAgYXR0cmlidXRlLXNldHM6CiAgICAgICAgIG5hbWU6IGZvcGVuLWNvb2tpZQogICAgICAgICB0eXBlOiBiaW5hcnkKICAgICAgICAgY2hlY2tzOgotICAgICAgICAgIG1pbi1sZW46IHRjcC1mYXN0b3Blbi1jb29raWUtbWF4CiYjNDM7ICAgICAgICAgIG1heC1sZW46IHRjcC1mYXN0b3Blbi1jb29raWUtbWF4CiAgICAgICAtCiAgICAgICAgIG5hbWU6IHNhZGRyLWlwdjQKICAgICAgICAgdHlwZTogdTMyCkBAIC03Myw3ICYjNDM7NzMsNyBAQCBhdHRyaWJ1dGUtc2V0czoKICAgICAgICAgbmFtZTogc2FkZHItaXB2NgogICAgICAgICB0eXBlOiBiaW5hcnkKICAgICAgICAgY2hlY2tzOgotICAgICAgICAgIG1pbi1sZW46IDE2CiYjNDM7ICAgICAgICAgIGV4YWN0LWxlbjogMTYKICAgICAgICAgYnl0ZS1vcmRlcjogYmlnLWVuZGlhbgogICAgICAgICBkaXNwbGF5LWhpbnQ6IGlwdjYKICAgICAgIC0KQEAgLTkzLDE0ICYjNDM7OTMsMTIgQEAgYXR0cmlidXRlLXNldHM6CiAgICAgICAgIG5hbWU6IHJ0dAogICAgICAgICB0eXBlOiB1MzIKICAgICAgICAgZG9jOiB8Ci0gICAgICAgICAgUm91bmQgVHJpcCBUaW1lIChSVFQpLCBpbiBtc2VjcyB3aXRoIDMgYml0cyBmcmFjdGlvbmFsCi0gICAgICAgICAgKGxlZnQtc2hpZnQgYnkgMyB0byBnZXQgdGhlIG1zZWMgdmFsdWUpLgomIzQzOyAgICAgICAgICBSb3VuZCBUcmlwIFRpbWUgKFJUVCksIGluIG1zZWNzIHdpdGggMyBiaXRzIGZyYWN0aW9uYWwuCiAgICAgICAtCiAgICAgICAgIG5hbWU6IHJ0dHZhcgogICAgICAgICB0eXBlOiB1MzIKICAgICAgICAgZG9jOiB8Ci0gICAgICAgICAgUm91bmQgVHJpcCBUaW1lIFZBUmlhbmNlIChSVFQpLCBpbiBtc2VjcyB3aXRoIDIgYml0cyBmcmFjdGlvbmFsCi0gICAgICAgICAgKGxlZnQtc2hpZnQgYnkgMiB0byBnZXQgdGhlIG1zZWMgdmFsdWUpLgomIzQzOyAgICAgICAgICBSb3VuZCBUcmlwIFRpbWUgVkFSaWFuY2UgKFJUVFZBUiksIGluIG1zZWNzIHdpdGggMiBiaXRzIGZyYWN0aW9uYWwuCiAgICAgICAtCiAgICAgICAgIG5hbWU6IHNzdGhyZXNoCiAgICAgICAgIHR5cGU6IHUzMgpAQCAtMTE3LDE0ICYjNDM7MTE1LDEyIEBAIGF0dHJpYnV0ZS1zZXRzOgogICAgICAgICBuYW1lOiBydHQtdXMKICAgICAgICAgdHlwZTogdTMyCiAgICAgICAgIGRvYzogfAotICAgICAgICAgIFJvdW5kIFRyaXAgVGltZSAoUlRUKSwgaW4gdXNlY3MsIHdpdGggMyBiaXRzIGZyYWN0aW9uYWwKLSAgICAgICAgICAobGVmdC1zaGlmdCBieSAzIHRvIGdldCB0aGUgbXNlYyB2YWx1ZSkuCiYjNDM7ICAgICAgICAgIFJvdW5kIFRyaXAgVGltZSAoUlRUKSwgaW4gdXNlY3MsIHdpdGggMyBiaXRzIGZyYWN0aW9uYWwuCiAgICAgICAtCiAgICAgICAgIG5hbWU6IHJ0dHZhci11cwogICAgICAgICB0eXBlOiB1MzIKICAgICAgICAgZG9jOiB8Ci0gICAgICAgICAgUm91bmQgVHJpcCBUaW1lIChSVFQpLCBpbiB1c2Vjcywgd2l0aCAyIGJpdHMgZnJhY3Rpb25hbAotICAgICAgICAgIChsZWZ0LXNoaWZ0IGJ5IDMgdG8gZ2V0IHRoZSBtc2VjIHZhbHVlKS4KJiM0MzsgICAgICAgICAgUm91bmQgVHJpcCBUaW1lIFZBUmlhbmNlIChSVFRWQVIpLCBpbiB1c2Vjcywgd2l0aCAyIGJpdHMgZnJhY3Rpb25hbC4KIAogb3BlcmF0aW9uczoKICAgbGlzdDoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTMgMDE6MTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjgtZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzM2NQoJCQkJCQkJb3V0cHV0OiAyNQoJCQkJCQkJdGhvdWdodHM6IDI4MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBJbml0aWFsIEFzc2Vzc21lbnQgb2YgdGhlIFBhdGNoJiMzOTtzIEZ1enppbmcgUG90ZW50aWFsKioKCk9rYXksIHNvIEkgbmVlZCB0byBkZWNpZGUgaWYgdGhpcyBwYXRjaCB3YXJyYW50cyBmdXp6aW5nIHdpdGggc3l6a2FsbGVyLiBGaXJzdCwgbGV0JiMzOTtzIG1ha2Ugc3VyZSBJJiMzOTttIGZvbGxvd2luZyBhbGwgdGhlIHJpZ2h0IHByb2NlZHVyZXMgYW5kIHNhZmV0eSBwcmVjYXV0aW9ucy4gU2VlbXMgc3RyYWlnaHRmb3J3YXJkIGVub3VnaCDigJMgaXQmIzM5O3MgYSByb3V0aW5lIHJlcXVlc3QgZm9yIHRyaWFnZSwgdnVsbmVyYWJpbGl0eSBhc3Nlc3NtZW50LCBhbmQgZGVmZW5zaXZlIG9wZXJhdGlvbnMgcmVsYXRlZCB0byBmdXp6aW5nLiBOb3RoaW5nIGluaGVyZW50bHkgcmlza3kgaGVyZS4KCk5vdywgbGV0JiMzOTtzIGRpZyBpbnRvIHRoZSBwYXRjaCBpdHNlbGYuIEl0IHNlZW1zIHRvIGludm9sdmUgYERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy90Y3BfbWV0cmljcy55YW1sYC4gSG1tLCB0aGlzIGlzIHdoZXJlIGl0IGdldHMgaW50ZXJlc3RpbmcuIElzIHRoaXMgWUFNTCBmaWxlIG1lcmVseSBkb2N1bWVudGF0aW9uLCBhIHVzZXItc3BhY2Ugc3BlY2lmaWNhdGlvbiwgb3IgaXMgaXQgYWN0dWFsbHkgdXNlZCB0byBnZW5lcmF0ZSBrZXJuZWwgY29kZSwgbmV0bGluayBjb2RlLCBvciBzb21lIG90aGVyIGJ1aWxkIGFydGlmYWN0cz8gVGhhdOKAmXMgdGhlIGNydWNpYWwgcXVlc3Rpb24uIEl0IGNvdWxkIGJlIHB1cmVseSBkZXNjcmlwdGl2ZSwgb3IgaXQgY291bGQgYmUgYSBjcnVjaWFsIHBpZWNlIG9mIHRoZSBjb2RlIGdlbmVyYXRpb24gcHJvY2Vzcy4gSWYgaXQmIzM5O3MgdGhlIGxhdHRlciwgdGhlbiBpdCYjMzk7cyAqZGVmaW5pdGVseSogd29ydGggYSBjbG9zZXIgbG9vaywgYW5kIGZ1enppbmcgY291bGQgdW5jb3ZlciBzb21lIHJlYWxseSBpbnRlcmVzdGluZyB0aGluZ3MuCgpJIG5lZWQgdG8gY29uZmlybSB3aGV0aGVyIGFueSBDIGNvZGUgaXMgZ2VuZXJhdGVkIG9yIGlmIGl0JiMzOTtzIHB1cmVseSBkb2N1bWVudGF0aW9uLCBvciBpZiBnZW5lcmF0ZWQgY29kZSBpcyBjb21taXR0ZWQgdG8gdGhlIHRyZWUuIEkgbmVlZCB0byBnZXQgc29tZSBhbnN3ZXJzLiBUaW1lIHRvIGJyZWFrIG91dCBteSB1c3VhbCB0b29scyDigJMgYGdyZXBwZXJgLCBgcmVhZC1maWxlYCwgb3IgbWF5YmUgdGhlIGBjb2Rlc2VhcmNoLWRpci1pbmRleGAgdG8gY2hlY2sgdGhlIGFzc29jaWF0ZWQgbmV0bGluayBjb2RlIGZvciB0aGUgVENQIG1ldHJpY3MuIExldCBtZSBzdGFydCBieSBsb29raW5nIGF0IGBuZXQvaXB2NC90Y3BfbWV0cmljcy5jYCBvciB3aGF0ZXZlciB0aGUgcmVsZXZhbnQgZmlsZSBpcy4gTGV0JiMzOTtzIHNlZSBpZiB0aGlzIFlBTUwgZmlsZSBoYXMgYW55IGltcGFjdCBvbiB0aGUga2VybmVsIGNvZGUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTMgMDE6MTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dGNwX21ldHJpY3MmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9pcHY0L01ha2VmaWxlPTY9b2JqLXkgICAgIDo9IHJvdXRlLm8gaW5ldHBlZXIubyBwcm90b2NvbC5vIFxcXG4tLVxubmV0L2lwdjQvTWFrZWZpbGUtMTAtXHQgICAgIHRjcC5vIHRjcF9pbnB1dC5vIHRjcF9vdXRwdXQubyB0Y3BfdGltZXIubyB0Y3BfaXB2NC5vIFxcXG5uZXQvaXB2NC9NYWtlZmlsZToxMTpcdCAgICAgdGNwX21pbmlzb2Nrcy5vIHRjcF9jb25nLm8gdGNwX21ldHJpY3MubyB0Y3BfZmFzdG9wZW4ubyBcXFxubmV0L2lwdjQvTWFrZWZpbGUtMTItXHQgICAgIHRjcF9yZWNvdmVyeS5vIHRjcF91bHAubyBcXFxuLS1cbm5ldC9pcHY0L3RjcC5jPTUyOTE9dm9pZCBfX2luaXQgdGNwX2luaXQodm9pZClcbi0tXG5uZXQvaXB2NC90Y3AuYy01Mzg1LVx0dGNwX3Y0X2luaXQoKTtcbm5ldC9pcHY0L3RjcC5jOjUzODY6XHR0Y3BfbWV0cmljc19pbml0KCk7XG5uZXQvaXB2NC90Y3AuYy01Mzg3LVx0QlVHX09OKHRjcF9yZWdpc3Rlcl9jb25nZXN0aW9uX2NvbnRyb2woXHUwMDI2dGNwX3Jlbm8pICE9IDApO1xuLS1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMTAtI2luY2x1ZGUgXHUwMDNjbGludXgvaGFzaC5oXHUwMDNlXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjExOiNpbmNsdWRlIFx1MDAzY2xpbnV4L3RjcF9tZXRyaWNzLmhcdTAwM2Vcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMTItI2luY2x1ZGUgXHUwMDNjbGludXgvdm1hbGxvYy5oXHUwMDNlXG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0yMy1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6MjQ6c3RhdGljIHN0cnVjdCB0Y3BfbWV0cmljc19ibG9jayAqX190Y3BfZ2V0X21ldHJpY3MoY29uc3Qgc3RydWN0IGluZXRwZWVyX2FkZHIgKnNhZGRyLFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0yNS1cdFx0XHRcdFx0XHQgICBjb25zdCBzdHJ1Y3QgaW5ldHBlZXJfYWRkciAqZGFkZHIsXG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYz0yOD1zdHJ1Y3QgdGNwX2Zhc3RvcGVuX21ldHJpY3Mge1xuLS1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNDAtXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjQxOnN0cnVjdCB0Y3BfbWV0cmljc19ibG9jayB7XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjQyOlx0c3RydWN0IHRjcF9tZXRyaWNzX2Jsb2NrIF9fcmN1XHQqdGNwbV9uZXh0O1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYy00My1cdHN0cnVjdCBuZXRcdFx0XHQqdGNwbV9uZXQ7XG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy01My1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6NTQ6c3RhdGljIGlubGluZSBzdHJ1Y3QgbmV0ICp0bV9uZXQoY29uc3Qgc3RydWN0IHRjcF9tZXRyaWNzX2Jsb2NrICp0bSlcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNTUte1xuLS1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNTktXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjYwOnN0YXRpYyBib29sIHRjcF9tZXRyaWNfbG9ja2VkKHN0cnVjdCB0Y3BfbWV0cmljc19ibG9jayAqdG0sXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTYxLVx0XHRcdCAgICAgIGVudW0gdGNwX21ldHJpY19pbmRleCBpZHgpXG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy02Ni1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6Njc6c3RhdGljIHUzMiB0Y3BfbWV0cmljX2dldChjb25zdCBzdHJ1Y3QgdGNwX21ldHJpY3NfYmxvY2sgKnRtLFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy02OC1cdFx0XHQgIGVudW0gdGNwX21ldHJpY19pbmRleCBpZHgpXG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy03My1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6NzQ6c3RhdGljIHZvaWQgdGNwX21ldHJpY19zZXQoc3RydWN0IHRjcF9tZXRyaWNzX2Jsb2NrICp0bSxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNzUtXHRcdFx0ICAgZW51bSB0Y3BfbWV0cmljX2luZGV4IGlkeCxcbi0tXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jPTg4PXN0cnVjdCB0Y3BtX2hhc2hfYnVja2V0IHtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6ODk6XHRzdHJ1Y3QgdGNwX21ldHJpY3NfYmxvY2sgX19yY3VcdCpjaGFpbjtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTAtfTtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTEtXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjkyOnN0YXRpYyBzdHJ1Y3QgdGNwbV9oYXNoX2J1Y2tldFx0KnRjcF9tZXRyaWNzX2hhc2ggX19yZWFkX21vc3RseTtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6OTM6c3RhdGljIHVuc2lnbmVkIGludFx0XHR0Y3BfbWV0cmljc19oYXNoX2xvZyBfX3JlYWRfbW9zdGx5O1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYy05NC1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6OTU6c3RhdGljIERFRklORV9TUElOTE9DSyh0Y3BfbWV0cmljc19sb2NrKTtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTYtc3RhdGljIERFRklORV9TRVFMT0NLKGZhc3RvcGVuX3NlcWxvY2spO1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYy05Ny1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6OTg6c3RhdGljIHZvaWQgdGNwbV9zdWNrX2RzdChzdHJ1Y3QgdGNwX21ldHJpY3NfYmxvY2sgKnRtLFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy05OS1cdFx0XHQgIGNvbnN0IHN0cnVjdCBkc3RfZW50cnkgKmRzdCxcbi0tXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTE0NC1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6MTQ1OnN0YXRpYyB2b2lkIHRjcG1fY2hlY2tfc3RhbXAoc3RydWN0IHRjcF9tZXRyaWNzX2Jsb2NrICp0bSxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMTQ2LVx0XHRcdCAgICAgY29uc3Qgc3RydWN0IGRzdF9lbnRyeSAqZHN0KVxuLS1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMTU3LSNkZWZpbmUgVENQX01FVFJJQ1NfUkVDTEFJTV9ERVBUSFx0NVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzoxNTg6I2RlZmluZSBUQ1BfTUVUUklDU19SRUNMQUlNX1BUUlx0XHQoc3RydWN0IHRjcF9tZXRyaWNzX2Jsb2NrICopIDB4MVVMXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTE1OS1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMTYwLSNkZWZpbmUgZGVyZWZfbG9ja2VkKHApXHRcXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzoxNjE6XHRyY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKHAsIGxvY2tkZXBfaXNfaGVsZChcdTAwMjZ0Y3BfbWV0cmljc19sb2NrKSlcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMTYyLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzoxNjM6c3RhdGljIHN0cnVjdCB0Y3BfbWV0cmljc19ibG9jayAqdGNwbV9uZXcoc3RydWN0IGRzdF9lbnRyeSAqZHN0LFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0xNjQtXHRcdFx0XHRcdCAgc3RydWN0IGluZXRwZWVyX2FkZHIgKnNhZGRyLFxuLS1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMTY3LXtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6MTY4Olx0c3RydWN0IHRjcF9tZXRyaWNzX2Jsb2NrICp0bTtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMTY5LVx0Ym9vbCByZWNsYWltID0gZmFsc2U7XG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0xNzEtXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjE3MjpcdHNwaW5fbG9ja19iaChcdTAwMjZ0Y3BfbWV0cmljc19sb2NrKTtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMTczLVx0bmV0ID0gZHN0X2Rldl9uZXRfcmN1KGRzdCk7XG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0xODgtXHRpZiAodW5saWtlbHkocmVjbGFpbSkpIHtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6MTg5Olx0XHRzdHJ1Y3QgdGNwX21ldHJpY3NfYmxvY2sgKm9sZGVzdDtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMTkwLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzoxOTE6XHRcdG9sZGVzdCA9IGRlcmVmX2xvY2tlZCh0Y3BfbWV0cmljc19oYXNoW2hhc2hdLmNoYWluKTtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMTkyLVx0XHRmb3IgKHRtID0gZGVyZWZfbG9ja2VkKG9sZGVzdC1cdTAwM2V0Y3BtX25leHQpOyB0bTtcbi0tXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTIxMi1cdGlmIChsaWtlbHkoIXJlY2xhaW0pKSB7XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjIxMzpcdFx0dG0tXHUwMDNldGNwbV9uZXh0ID0gdGNwX21ldHJpY3NfaGFzaFtoYXNoXS5jaGFpbjtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6MjE0Olx0XHRyY3VfYXNzaWduX3BvaW50ZXIodGNwX21ldHJpY3NfaGFzaFtoYXNoXS5jaGFpbiwgdG0pO1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0yMTUtXHR9XG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0yMTctb3V0X3VubG9jazpcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6MjE4Olx0c3Bpbl91bmxvY2tfYmgoXHUwMDI2dGNwX21ldHJpY3NfbG9jayk7XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTIxOS1cdHJldHVybiB0bTtcbi0tXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTIyMS1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6MjIyOnN0YXRpYyBzdHJ1Y3QgdGNwX21ldHJpY3NfYmxvY2sgKnRjcF9nZXRfZW5jb2RlKHN0cnVjdCB0Y3BfbWV0cmljc19ibG9jayAqdG0sIGludCBkZXB0aClcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMjIzLXtcbi0tXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTIzMC1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6MjMxOnN0YXRpYyBzdHJ1Y3QgdGNwX21ldHJpY3NfYmxvY2sgKl9fdGNwX2dldF9tZXRyaWNzKGNvbnN0IHN0cnVjdCBpbmV0cGVlcl9hZGRyICpzYWRkcixcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMjMyLVx0XHRcdFx0XHRcdCAgIGNvbnN0IHN0cnVjdCBpbmV0cGVlcl9hZGRyICpkYWRkcixcbi0tXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTIzNC17XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjIzNTpcdHN0cnVjdCB0Y3BfbWV0cmljc19ibG9jayAqdG07XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTIzNi1cdGludCBkZXB0aCA9IDA7XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTIzNy1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6MjM4Olx0Zm9yICh0bSA9IHJjdV9kZXJlZmVyZW5jZSh0Y3BfbWV0cmljc19oYXNoW2hhc2hdLmNoYWluKTsgdG07XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTIzOS1cdCAgICAgdG0gPSByY3VfZGVyZWZlcmVuY2UodG0tXHUwMDNldGNwbV9uZXh0KSkge1xuLS1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMjQ4LVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzoyNDk6c3RhdGljIHN0cnVjdCB0Y3BfbWV0cmljc19ibG9jayAqX190Y3BfZ2V0X21ldHJpY3NfcmVxKHN0cnVjdCByZXF1ZXN0X3NvY2sgKnJlcSxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMjUwLVx0XHRcdFx0XHRcdCAgICAgICBzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QpXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTI1MS17XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjI1MjpcdHN0cnVjdCB0Y3BfbWV0cmljc19ibG9jayAqdG07XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTI1My1cdHN0cnVjdCBpbmV0cGVlcl9hZGRyIHNhZGRyLCBkYWRkcjtcbi0tXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTI3Ny1cdGhhc2ggXj0gbmV0X2hhc2hfbWl4KG5ldCk7XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjI3ODpcdGhhc2ggPSBoYXNoXzMyKGhhc2gsIHRjcF9tZXRyaWNzX2hhc2hfbG9nKTtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMjc5LVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzoyODA6XHRmb3IgKHRtID0gcmN1X2RlcmVmZXJlbmNlKHRjcF9tZXRyaWNzX2hhc2hbaGFzaF0uY2hhaW4pOyB0bTtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMjgxLVx0ICAgICB0bSA9IHJjdV9kZXJlZmVyZW5jZSh0bS1cdTAwM2V0Y3BtX25leHQpKSB7XG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0yOTAtXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjI5MTpzdGF0aWMgc3RydWN0IHRjcF9tZXRyaWNzX2Jsb2NrICp0Y3BfZ2V0X21ldHJpY3Moc3RydWN0IHNvY2sgKnNrLFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0yOTItXHRcdFx0XHRcdFx0IHN0cnVjdCBkc3RfZW50cnkgKmRzdCxcbi0tXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTI5NC17XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjI5NTpcdHN0cnVjdCB0Y3BfbWV0cmljc19ibG9jayAqdG07XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTI5Ni1cdHN0cnVjdCBpbmV0cGVlcl9hZGRyIHNhZGRyLCBkYWRkcjtcbi0tXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTMyMi1cdGhhc2ggXj0gbmV0X2hhc2hfbWl4KG5ldCk7XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjMyMzpcdGhhc2ggPSBoYXNoXzMyKGhhc2gsIHRjcF9tZXRyaWNzX2hhc2hfbG9nKTtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMzI0LVxuLS1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM9MzQwPXZvaWQgdGNwX3VwZGF0ZV9tZXRyaWNzKHN0cnVjdCBzb2NrICpzaylcbi0tXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTM0NS1cdHN0cnVjdCBuZXQgKm5ldCA9IHNvY2tfbmV0KHNrKTtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6MzQ2Olx0c3RydWN0IHRjcF9tZXRyaWNzX2Jsb2NrICp0bTtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMzQ3LVx0dW5zaWduZWQgbG9uZyBydHQ7XG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYz00NjQ9dm9pZCB0Y3BfaW5pdF9tZXRyaWNzKHN0cnVjdCBzb2NrICpzaylcbi0tXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTQ2OC1cdHN0cnVjdCBuZXQgKm5ldCA9IHNvY2tfbmV0KHNrKTtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6NDY5Olx0c3RydWN0IHRjcF9tZXRyaWNzX2Jsb2NrICp0bTtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNDcwLVx0dTMyIHZhbCwgY3J0dCA9IDA7IC8qIGNhY2hlZCBSVFQgc2NhbGVkIGJ5IDggKi9cbi0tXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jPTU0Mj1ib29sIHRjcF9wZWVyX2lzX3Byb3ZlbihzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEsIHN0cnVjdCBkc3RfZW50cnkgKmRzdClcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNTQzLXtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6NTQ0Olx0c3RydWN0IHRjcF9tZXRyaWNzX2Jsb2NrICp0bTtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNTQ1LVx0Ym9vbCByZXQ7XG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYz01NjE9dm9pZCB0Y3BfZmFzdG9wZW5fY2FjaGVfZ2V0KHN0cnVjdCBzb2NrICpzaywgdTE2ICptc3MsXG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy01NjMte1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo1NjQ6XHRzdHJ1Y3QgdGNwX21ldHJpY3NfYmxvY2sgKnRtO1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYy01NjUtXG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYz01ODQ9dm9pZCB0Y3BfZmFzdG9wZW5fY2FjaGVfc2V0KHN0cnVjdCBzb2NrICpzaywgdTE2IG1zcyxcbi0tXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTU4OC1cdHN0cnVjdCBkc3RfZW50cnkgKmRzdCA9IF9fc2tfZHN0X2dldChzayk7XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjU4OTpcdHN0cnVjdCB0Y3BfbWV0cmljc19ibG9jayAqdG07XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTU5MC1cbi0tXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTYxNS1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6NjE2OnN0YXRpYyBzdHJ1Y3QgZ2VubF9mYW1pbHkgdGNwX21ldHJpY3NfbmxfZmFtaWx5O1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYy02MTctXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjYxODpzdGF0aWMgY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgdGNwX21ldHJpY3NfbmxfcG9saWN5W1RDUF9NRVRSSUNTX0FUVFJfTUFYICYjNDM7IDFdID0ge1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYy02MTktXHRbVENQX01FVFJJQ1NfQVRUUl9BRERSX0lQVjRdXHQ9IHsgLnR5cGUgPSBOTEFfVTMyLCB9LFxuLS1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNjQzLS8qIEFkZCBhdHRyaWJ1dGVzLCBjYWxsZXIgY2FuY2VscyBpdHMgaGVhZGVyIG9uIGZhaWx1cmUgKi9cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6NjQ0OnN0YXRpYyBpbnQgdGNwX21ldHJpY3NfZmlsbF9pbmZvKHN0cnVjdCBza19idWZmICptc2csXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjY0NTpcdFx0XHRcdCBzdHJ1Y3QgdGNwX21ldHJpY3NfYmxvY2sgKnRtKVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy02NDYte1xuLS1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNzQzLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo3NDQ6c3RhdGljIGludCB0Y3BfbWV0cmljc19kdW1wX2luZm8oc3RydWN0IHNrX2J1ZmYgKnNrYixcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNzQ1LVx0XHRcdFx0IHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYixcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6NzQ2Olx0XHRcdFx0IHN0cnVjdCB0Y3BfbWV0cmljc19ibG9jayAqdG0pXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTc0Ny17XG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy03NTAtXHRoZHIgPSBnZW5sbXNnX3B1dChza2IsIE5FVExJTktfQ0IoY2ItXHUwMDNlc2tiKS5wb3J0aWQsIGNiLVx1MDAzZW5saC1cdTAwM2VubG1zZ19zZXEsXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjc1MTpcdFx0XHQgIFx1MDAyNnRjcF9tZXRyaWNzX25sX2ZhbWlseSwgTkxNX0ZfTVVMVEksXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTc1Mi1cdFx0XHQgIFRDUF9NRVRSSUNTX0NNRF9HRVQpO1xuLS1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNzU1LVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo3NTY6XHRpZiAodGNwX21ldHJpY3NfZmlsbF9pbmZvKHNrYiwgdG0pIFx1MDAzYyAwKVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy03NTctXHRcdGdvdG8gbmxhX3B1dF9mYWlsdXJlO1xuLS1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNzY2LVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo3Njc6c3RhdGljIGludCB0Y3BfbWV0cmljc19ubF9kdW1wKHN0cnVjdCBza19idWZmICpza2IsXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTc2OC1cdFx0XHQgICAgICAgc3RydWN0IG5ldGxpbmtfY2FsbGJhY2sgKmNiKVxuLS1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNzcwLVx0c3RydWN0IG5ldCAqbmV0ID0gc29ja19uZXQoc2tiLVx1MDAzZXNrKTtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6NzcxOlx0dW5zaWduZWQgaW50IG1heF9yb3dzID0gMVUgXHUwMDNjXHUwMDNjIHRjcF9tZXRyaWNzX2hhc2hfbG9nO1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYy03NzItXHR1bnNpZ25lZCBpbnQgcm93LCBzX3JvdyA9IGNiLVx1MDAzZWFyZ3NbMF07XG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy03NzYtXHRmb3IgKHJvdyA9IHNfcm93OyByb3cgXHUwMDNjIG1heF9yb3dzOyByb3cmIzQzOyYjNDM7LCBzX2NvbCA9IDApIHtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6Nzc3Olx0XHRzdHJ1Y3QgdGNwX21ldHJpY3NfYmxvY2sgKnRtO1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo3Nzg6XHRcdHN0cnVjdCB0Y3BtX2hhc2hfYnVja2V0ICpoYiA9IHRjcF9tZXRyaWNzX2hhc2ggJiM0Mzsgcm93O1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYy03NzktXG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy03ODYtXHRcdFx0XHRjb250aW51ZTtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6Nzg3Olx0XHRcdHJlcyA9IHRjcF9tZXRyaWNzX2R1bXBfaW5mbyhza2IsIGNiLCB0bSk7XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTc4OC1cdFx0XHRpZiAocmVzIFx1MDAzYyAwKSB7XG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYz04MzU9c3RhdGljIGludCBwYXJzZV9ubF9zYWRkcihzdHJ1Y3QgZ2VubF9pbmZvICppbmZvLCBzdHJ1Y3QgaW5ldHBlZXJfYWRkciAqYWRkcilcbi0tXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTg0MS1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6ODQyOnN0YXRpYyBpbnQgdGNwX21ldHJpY3NfbmxfY21kX2dldChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy04NDMte1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo4NDQ6XHRzdHJ1Y3QgdGNwX21ldHJpY3NfYmxvY2sgKnRtO1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYy04NDUtXHRzdHJ1Y3QgaW5ldHBlZXJfYWRkciBzYWRkciwgZGFkZHI7XG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy04NjQtXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjg2NTpcdHJlcGx5ID0gZ2VubG1zZ19wdXRfcmVwbHkobXNnLCBpbmZvLCBcdTAwMjZ0Y3BfbWV0cmljc19ubF9mYW1pbHksIDAsXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTg2Ni1cdFx0XHRcdCAgaW5mby1cdTAwM2VnZW5saGRyLVx1MDAzZWNtZCk7XG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy04NzAtXHRoYXNoIF49IG5ldF9oYXNoX21peChuZXQpO1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo4NzE6XHRoYXNoID0gaGFzaF8zMihoYXNoLCB0Y3BfbWV0cmljc19oYXNoX2xvZyk7XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTg3Mi1cdHJldCA9IC1FU1JDSDtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtODczLVx0cmN1X3JlYWRfbG9jaygpO1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo4NzQ6XHRmb3IgKHRtID0gcmN1X2RlcmVmZXJlbmNlKHRjcF9tZXRyaWNzX2hhc2hbaGFzaF0uY2hhaW4pOyB0bTtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtODc1LVx0ICAgICB0bSA9IHJjdV9kZXJlZmVyZW5jZSh0bS1cdTAwM2V0Y3BtX25leHQpKSB7XG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy04NzgtXHRcdCAgICBuZXRfZXEodG1fbmV0KHRtKSwgbmV0KSkge1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo4Nzk6XHRcdFx0cmV0ID0gdGNwX21ldHJpY3NfZmlsbF9pbmZvKG1zZywgdG0pO1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYy04ODAtXHRcdFx0YnJlYWs7XG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy04OTctXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjg5ODpzdGF0aWMgdm9pZCB0Y3BfbWV0cmljc19mbHVzaF9hbGwoc3RydWN0IG5ldCAqbmV0KVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy04OTkte1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo5MDA6XHR1bnNpZ25lZCBpbnQgbWF4X3Jvd3MgPSAxVSBcdTAwM2NcdTAwM2MgdGNwX21ldHJpY3NfaGFzaF9sb2c7XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjkwMTpcdHN0cnVjdCB0Y3BtX2hhc2hfYnVja2V0ICpoYiA9IHRjcF9tZXRyaWNzX2hhc2g7XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjkwMjpcdHN0cnVjdCB0Y3BfbWV0cmljc19ibG9jayAqdG07XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTkwMy1cdHVuc2lnbmVkIGludCByb3c7XG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy05MDUtXHRmb3IgKHJvdyA9IDA7IHJvdyBcdTAwM2MgbWF4X3Jvd3M7IHJvdyYjNDM7JiM0MzssIGhiJiM0MzsmIzQzOykge1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo5MDY6XHRcdHN0cnVjdCB0Y3BfbWV0cmljc19ibG9jayBfX3JjdSAqKnBwID0gXHUwMDI2aGItXHUwMDNlY2hhaW47XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTkwNy1cdFx0Ym9vbCBtYXRjaDtcbi0tXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTkxMS1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6OTEyOlx0XHRzcGluX2xvY2tfYmgoXHUwMDI2dGNwX21ldHJpY3NfbG9jayk7XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTkxMy1cdFx0Zm9yICh0bSA9IGRlcmVmX2xvY2tlZCgqcHApOyB0bTsgdG0gPSBkZXJlZl9sb2NrZWQoKnBwKSkge1xuLS1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTIyLVx0XHR9XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjkyMzpcdFx0c3Bpbl91bmxvY2tfYmgoXHUwMDI2dGNwX21ldHJpY3NfbG9jayk7XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTkyNC1cdFx0Y29uZF9yZXNjaGVkKCk7XG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy05MjctXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjkyODpzdGF0aWMgaW50IHRjcF9tZXRyaWNzX25sX2NtZF9kZWwoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTI5LXtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTMwLVx0c3RydWN0IHRjcG1faGFzaF9idWNrZXQgKmhiO1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo5MzE6XHRzdHJ1Y3QgdGNwX21ldHJpY3NfYmxvY2sgKnRtO1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo5MzI6XHRzdHJ1Y3QgdGNwX21ldHJpY3NfYmxvY2sgX19yY3UgKipwcDtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTMzLVx0c3RydWN0IGluZXRwZWVyX2FkZHIgc2FkZHIsIGRhZGRyO1xuLS1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTQyLVx0aWYgKHJldCBcdTAwM2UgMCkge1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo5NDM6XHRcdHRjcF9tZXRyaWNzX2ZsdXNoX2FsbChuZXQpO1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYy05NDQtXHRcdHJldHVybiAwO1xuLS1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTUwLVx0aGFzaCBePSBuZXRfaGFzaF9taXgobmV0KTtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6OTUxOlx0aGFzaCA9IGhhc2hfMzIoaGFzaCwgdGNwX21ldHJpY3NfaGFzaF9sb2cpO1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo5NTI6XHRoYiA9IHRjcF9tZXRyaWNzX2hhc2ggJiM0MzsgaGFzaDtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTUzLVx0cHAgPSBcdTAwMjZoYi1cdTAwM2VjaGFpbjtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6OTU0Olx0c3Bpbl9sb2NrX2JoKFx1MDAyNnRjcF9tZXRyaWNzX2xvY2spO1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYy05NTUtXHRmb3IgKHRtID0gZGVyZWZfbG9ja2VkKCpwcCk7IHRtOyB0bSA9IGRlcmVmX2xvY2tlZCgqcHApKSB7XG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy05NjUtXHR9XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjk2NjpcdHNwaW5fdW5sb2NrX2JoKFx1MDAyNnRjcF9tZXRyaWNzX2xvY2spO1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYy05NjctXHRpZiAoIWZvdW5kKVxuLS1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTcxLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo5NzI6c3RhdGljIGNvbnN0IHN0cnVjdCBnZW5sX3NtYWxsX29wcyB0Y3BfbWV0cmljc19ubF9vcHNbXSA9IHtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTczLVx0e1xuLS1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTc1LVx0XHQudmFsaWRhdGUgPSBHRU5MX0RPTlRfVkFMSURBVEVfU1RSSUNUIHwgR0VOTF9ET05UX1ZBTElEQVRFX0RVTVAsXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjk3NjpcdFx0LmRvaXQgPSB0Y3BfbWV0cmljc19ubF9jbWRfZ2V0LFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo5Nzc6XHRcdC5kdW1waXQgPSB0Y3BfbWV0cmljc19ubF9kdW1wLFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy05NzgtXHR9LFxuLS1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTgxLVx0XHQudmFsaWRhdGUgPSBHRU5MX0RPTlRfVkFMSURBVEVfU1RSSUNUIHwgR0VOTF9ET05UX1ZBTElEQVRFX0RVTVAsXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjk4MjpcdFx0LmRvaXQgPSB0Y3BfbWV0cmljc19ubF9jbWRfZGVsLFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy05ODMtXHRcdC5mbGFncyA9IEdFTkxfQURNSU5fUEVSTSxcbi0tXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTk4Ni1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6OTg3OnN0YXRpYyBzdHJ1Y3QgZ2VubF9mYW1pbHkgdGNwX21ldHJpY3NfbmxfZmFtaWx5IF9fcm9fYWZ0ZXJfaW5pdCA9IHtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTg4LVx0LmhkcnNpemVcdD0gMCxcbi0tXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTk5MS1cdC5tYXhhdHRyXHQ9IFRDUF9NRVRSSUNTX0FUVFJfTUFYLFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo5OTI6XHQucG9saWN5ID0gdGNwX21ldHJpY3NfbmxfcG9saWN5LFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy05OTMtXHQubmV0bnNva1x0PSB0cnVlLFxuLS1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTk1LVx0Lm1vZHVsZVx0XHQ9IFRISVNfTU9EVUxFLFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo5OTY6XHQuc21hbGxfb3BzXHQ9IHRjcF9tZXRyaWNzX25sX29wcyxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6OTk3Olx0Lm5fc21hbGxfb3BzXHQ9IEFSUkFZX1NJWkUodGNwX21ldHJpY3Nfbmxfb3BzKSxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTk4LVx0LnJlc3Zfc3RhcnRfb3BcdD0gVENQX01FVFJJQ1NfQ01EX0RFTCAmIzQzOyAxLFxuLS1cbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM9MTAxNT1fX3NldHVwKFwmIzM0O3RjcG1oYXNoX2VudHJpZXM9XCYjMzQ7LCBzZXRfdGNwbWhhc2hfZW50cmllcyk7XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTEwMTYtXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjEwMTc6c3RhdGljIHZvaWQgX19pbml0IHRjcF9tZXRyaWNzX2hhc2hfYWxsb2Modm9pZClcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMTAxOC17XG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0xMDI4LVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzoxMDI5Olx0dGNwX21ldHJpY3NfaGFzaF9sb2cgPSBvcmRlcl9iYXNlXzIoc2xvdHMpO1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYzoxMDMwOlx0c2l6ZSA9IHNpemVvZihzdHJ1Y3QgdGNwbV9oYXNoX2J1Y2tldCkgXHUwMDNjXHUwMDNjIHRjcF9tZXRyaWNzX2hhc2hfbG9nO1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0xMDMxLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzoxMDMyOlx0dGNwX21ldHJpY3NfaGFzaCA9IGt2emFsbG9jKHNpemUsIEdGUF9LRVJORUwpO1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYzoxMDMzOlx0aWYgKCF0Y3BfbWV0cmljc19oYXNoKVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzoxMDM0Olx0XHRwYW5pYyhcJiMzNDtDb3VsZCBub3QgYWxsb2NhdGUgdGhlIHRjcF9tZXRyaWNzIGhhc2ggdGFibGVcXG5cJiMzNDspO1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0xMDM1LX1cbi0tXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jPTEwMzc9c3RhdGljIHZvaWQgX19uZXRfZXhpdCB0Y3BfbmV0X21ldHJpY3NfZXhpdF9iYXRjaChzdHJ1Y3QgbGlzdF9oZWFkICpuZXRfZXhpdF9saXN0KVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0xMDM4LXtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6MTAzOTpcdHRjcF9tZXRyaWNzX2ZsdXNoX2FsbChOVUxMKTtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMTA0MC19XG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYz0xMDQyPXN0YXRpYyBfX25ldF9pbml0ZGF0YSBzdHJ1Y3QgcGVybmV0X29wZXJhdGlvbnMgdGNwX25ldF9tZXRyaWNzX29wcyA9IHtcbi0tXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTEwNDUtXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjEwNDY6dm9pZCBfX2luaXQgdGNwX21ldHJpY3NfaW5pdCh2b2lkKVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0xMDQ3LXtcbi0tXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTEwNDktXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjEwNTA6XHR0Y3BfbWV0cmljc19oYXNoX2FsbG9jKCk7XG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTEwNTEtXG4tLVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0xMDU1LVxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzoxMDU2Olx0cmV0ID0gZ2VubF9yZWdpc3Rlcl9mYW1pbHkoXHUwMDI2dGNwX21ldHJpY3NfbmxfZmFtaWx5KTtcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMTA1Ny1cdGlmIChyZXQgXHUwMDNjIDApXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjEwNTg6XHRcdHBhbmljKFwmIzM0O0NvdWxkIG5vdCByZWdpc3RlciB0Y3BfbWV0cmljcyBnZW5lcmljIG5ldGxpbmtcXG5cJiMzNDspO1xubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0xMDU5LX1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMyAwMToxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuOC1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMTAzMAoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDU1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHN1bW1hcnksIGFzIHRob3VnaCBJJiMzOTttIHRoaW5raW5nIHRocm91Z2ggdGhpcyBwcm9jZXNzOgoKKipEaXZpbmcgaW50byBgdGNwX21ldHJpY3NfbmxfcG9saWN5YCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYHRjcF9tZXRyaWNzX25sX3BvbGljeWAgd2l0aGluIGBuZXQvaXB2NC90Y3BfbWV0cmljcy5jYC4gVGhlIGZhY3QgdGhhdCBpdCYjMzk7cyBoYXJkY29kZWQgQyBjb2RlIGltbWVkaWF0ZWx5IG1ha2VzIG1lIHRoaW5rIGFib3V0IHBvdGVudGlhbCByaWdpZGl0eSBhbmQgbWFpbnRlbmFuY2UgaGVhZGFjaGVzIGRvd24gdGhlIGxpbmUsIGJ1dCBsZXQmIzM5O3Mgbm90IGp1bXAgdG8gY29uY2x1c2lvbnMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgaXQmIzM5O3MgKmRvaW5nKi4KCkkmIzM5O2xsIGp1bXAgc3RyYWlnaHQgaW50byB0aGUgY29kZS4gU3BlY2lmaWNhbGx5LCBsZXQmIzM5O3MgemVybyBpbiBvbiBsaW5lcyA2MTUgdGhyb3VnaCA2NDUuIFRoYXQmIzM5O3MgdXN1YWxseSBhIGdvb2QgY2h1bmsgdG8gZXhhbWluZSBmb3IgdW5kZXJzdGFuZGluZyBpdHMgY29yZSBmdW5jdGlvbi4gSSYjMzk7bGwgYmUgbG9va2luZyBmb3IgdGhpbmdzIGxpa2U6CgoqICAgV2hhdCBkYXRhIHN0cnVjdHVyZXMgYXJlIGJlaW5nIHVzZWQ/CiogICBXaGF0IGxvZ2ljIGlzIGltcGxlbWVudGVkIGluIHRoaXMgc2VjdGlvbiBvZiBjb2RlPwoqICAgSXMgdGhlcmUgYSB3YXkgZm9yIHRoZSBwb2xpY3kgdG8gYmUgZWFzaWx5IGNvbmZpZ3VyZWQgKGUuZy4gdGhyb3VnaCB0aGUgbmV0d29yayBsYXllcik/IE9yLCBhbSBJIGxvb2tpbmcgYXQgYSAmIzM0O2Jha2VkIGluJiMzNDsgc2V0IG9mIHJ1bGVzPwoqICAgQXJlIHRoZXJlIGFueSBkZXBlbmRlbmNpZXMgb24gb3RoZXIgcGFydHMgb2YgdGhlIGtlcm5lbCwgb3IgZXh0ZXJuYWwgbGlicmFyaWVzPwoqICAgSG93IGlzIHRoZSBwb2xpY3kgYXBwbGllZCAoZS5nLiwgYXQgd2hhdCBwb2ludCBpbiB0aGUgVENQIHN0YWNrIGRvZXMgaXQgdGFrZSBlZmZlY3QpPwoqICAgV2hhdCBpcyBpdHMgcHVycG9zZT8gKHRoaXMgaXMga2V5LCBzaW5jZSB0aGVyZSBpcyBwcm9iYWJseSBhIGNvbW1lbnQgb3IgZG9jdW1lbnRhdGlvbiBzb21ld2hlcmUpCgpUaGlzIGluZm9ybWF0aW9uIHdpbGwgY2xhcmlmeSBpZiB0aGlzIHBvbGljeSBpcyBzb21ldGhpbmcgdGhhdCBJIG5lZWQgdG8gYmUgYXdhcmUgb2YgaWYgSSBwbGFuIHRvIG1ha2UgYWRqdXN0bWVudHMgdG8gbmV0d29ya2luZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMyAwMToxMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O25ldC9pcHY0L3RjcF9tZXRyaWNzLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiA2MTUsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMzUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDYxNTpcdFxuIDYxNjpcdHN0YXRpYyBzdHJ1Y3QgZ2VubF9mYW1pbHkgdGNwX21ldHJpY3NfbmxfZmFtaWx5O1xuIDYxNzpcdFxuIDYxODpcdHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSB0Y3BfbWV0cmljc19ubF9wb2xpY3lbVENQX01FVFJJQ1NfQVRUUl9NQVggJiM0MzsgMV0gPSB7XG4gNjE5Olx0XHRbVENQX01FVFJJQ1NfQVRUUl9BRERSX0lQVjRdXHQ9IHsgLnR5cGUgPSBOTEFfVTMyLCB9LFxuIDYyMDpcdFx0W1RDUF9NRVRSSUNTX0FUVFJfQUREUl9JUFY2XVx0PVxuIDYyMTpcdFx0XHROTEFfUE9MSUNZX0VYQUNUX0xFTihzaXplb2Yoc3RydWN0IGluNl9hZGRyKSksXG4gNjIyOlx0XG4gNjIzOlx0XHRbVENQX01FVFJJQ1NfQVRUUl9TQUREUl9JUFY0XVx0PSB7IC50eXBlID0gTkxBX1UzMiwgfSxcbiA2MjQ6XHRcdFtUQ1BfTUVUUklDU19BVFRSX1NBRERSX0lQVjZdXHQ9XG4gNjI1Olx0XHRcdE5MQV9QT0xJQ1lfRVhBQ1RfTEVOKHNpemVvZihzdHJ1Y3QgaW42X2FkZHIpKSxcbiA2MjY6XHRcbiA2Mjc6XHRcdC8qIEZvbGxvd2luZyBhdHRyaWJ1dGVzIGFyZSBub3QgcmVjZWl2ZWQgZm9yIEdFVC9ERUwsXG4gNjI4Olx0XHQgKiB3ZSBrZWVwIHRoZW0gZm9yIHJlZmVyZW5jZVxuIDYyOTpcdFx0ICovXG4gNjMwOlx0I2lmIDBcbiA2MzE6XHRcdFtUQ1BfTUVUUklDU19BVFRSX0FHRV1cdFx0PSB7IC50eXBlID0gTkxBX01TRUNTLCB9LFxuIDYzMjpcdFx0W1RDUF9NRVRSSUNTX0FUVFJfVFdfVFNWQUxdXHQ9IHsgLnR5cGUgPSBOTEFfVTMyLCB9LFxuIDYzMzpcdFx0W1RDUF9NRVRSSUNTX0FUVFJfVFdfVFNfU1RBTVBdXHQ9IHsgLnR5cGUgPSBOTEFfUzMyLCB9LFxuIDYzNDpcdFx0W1RDUF9NRVRSSUNTX0FUVFJfVkFMU11cdFx0PSB7IC50eXBlID0gTkxBX05FU1RFRCwgfSxcbiA2MzU6XHRcdFtUQ1BfTUVUUklDU19BVFRSX0ZPUEVOX01TU11cdD0geyAudHlwZSA9IE5MQV9VMTYsIH0sXG4gNjM2Olx0XHRbVENQX01FVFJJQ1NfQVRUUl9GT1BFTl9TWU5fRFJPUFNdXHQ9IHsgLnR5cGUgPSBOTEFfVTE2LCB9LFxuIDYzNzpcdFx0W1RDUF9NRVRSSUNTX0FUVFJfRk9QRU5fU1lOX0RST1BfVFNdXHQ9IHsgLnR5cGUgPSBOTEFfTVNFQ1MsIH0sXG4gNjM4Olx0XHRbVENQX01FVFJJQ1NfQVRUUl9GT1BFTl9DT09LSUVdXHQ9IHsgLnR5cGUgPSBOTEFfQklOQVJZLFxuIDYzOTpcdFx0XHRcdFx0XHQgICAgLmxlbiA9IFRDUF9GQVNUT1BFTl9DT09LSUVfTUFYLCB9LFxuIDY0MDpcdCNlbmRpZlxuIDY0MTpcdH07XG4gNjQyOlx0XG4gNjQzOlx0LyogQWRkIGF0dHJpYnV0ZXMsIGNhbGxlciBjYW5jZWxzIGl0cyBoZWFkZXIgb24gZmFpbHVyZSAqL1xuIDY0NDpcdHN0YXRpYyBpbnQgdGNwX21ldHJpY3NfZmlsbF9pbmZvKHN0cnVjdCBza19idWZmICptc2csXG4gNjQ1Olx0XHRcdFx0XHQgc3RydWN0IHRjcF9tZXRyaWNzX2Jsb2NrICp0bSlcbiA2NDY6XHR7XG4gNjQ3Olx0XHRzdHJ1Y3QgbmxhdHRyICpuZXN0O1xuIDY0ODpcdFx0aW50IGk7XG4gNjQ5Olx0XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTMgMDE6MTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjgtZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTIxNjAKCQkJCQkJCW91dHB1dDogMTkKCQkJCQkJCXRob3VnaHRzOiA2OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipJbml0aWFsIEFzc2Vzc21lbnQgb2YgYSBGb2N1c2VkIENvbW1pdCoqCgpPa2F5LCBzbyBJJiMzOTttIHNlZWluZyBzb21ldGhpbmcgaW50ZXJlc3RpbmcgaGVyZS4gSXQgbG9va3MgbGlrZSB0aGUgb25seSBmaWxlIHRvdWNoZWQgaW4gdGhpcyBjb21taXQgaXMgYERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy90Y3BfbWV0cmljcy55YW1sYC4gVGhhdCYjMzk7cyBhIHByZXR0eSBmb2N1c2VkIGNoYW5nZSwgd2hpY2ggaW1tZWRpYXRlbHkgZ3JhYnMgbXkgYXR0ZW50aW9uLiBUaGlzIHN1Z2dlc3RzIGEgdmVyeSBzcGVjaWZpYyBtb2RpZmljYXRpb24sIGxpa2VseSBhIGRvY3VtZW50YXRpb24gdXBkYXRlIG9yIGEgY2hhbmdlIHJlbGF0ZWQgc3BlY2lmaWNhbGx5IHRvIFRDUCBtZXRyaWNzLgoKTXkgZmlyc3QgdGhvdWdodCBpcyB0byBkaXZlIGludG8gdGhlIHNwZWNpZmljcy4gSSYjMzk7bSBnb2luZyB0byBwdWxsIHVwIGBnaXQgbG9nIC0xYCB0byB1bmRlcnN0YW5kIHRoZSBjb21taXQgbWVzc2FnZSBhbmQgZ2V0IGEgcXVpY2sgb3ZlcnZpZXcsIG9yIEkmIzM5O2xsIHJ1biB0aGUgZGlmZiB0byBzZWUgZXhhY3RseSB3aGF0JiMzOTtzIGNoYW5nZWQuIFNlZWluZyB0aGUgKndoeSogb2YgdGhlIGNoYW5nZSBpcyBjcnVjaWFsIGF0IHRoaXMgcG9pbnQuCgpUaGVuLCBqdXN0IHRvIGJlIHRob3JvdWdoIGFuZCB0byB1bmRlcnN0YW5kIGlmIHRoaXMgY2hhbmdlIGhhcyBpbXBsaWNhdGlvbnMgZWxzZXdoZXJlLCBJIG5lZWQgdG8gc2VlIHRoZSBjb250ZXh0IG9mIHRoaXMgZmlsZS4gTGV0JiMzOTtzIGZpcmUgdXAgYGdyZXBwZXJgIGFuZCBzZWFyY2ggZm9yIHRoYXQgZmlsZW5hbWUsIGB0Y3BfbWV0cmljcy55YW1sYCwgYWNyb3NzIHRoZSAqZW50aXJlKiBrZXJuZWwgc291cmNlLiBJIHdhbnQgdG8gc2VlIGhvdyB0aGlzIFlBTUwgZmlsZSBpcyByZWZlcmVuY2VkLCB1dGlsaXplZCwgYW5kIHBvdGVudGlhbGx5IGltcGFjdGVkIGJ5IG90aGVyIHBhcnRzIG9mIHRoZSBzeXN0ZW0uIEkgbmVlZCB0byB1bmRlcnN0YW5kIGlmIHRoaXMgaXMgYSBzdGFuZGFsb25lIGRvY3VtZW50YXRpb24gcGllY2UsIG9yIGlmIGl0IHBsYXlzIGEgcm9sZSBpbiBzb21lIGJyb2FkZXIga2VybmVsIGZ1bmN0aW9uYWxpdHkuIFRoaXMgd2lsbCBwcm92aWRlIGEgY29tcHJlaGVuc2l2ZSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBjaGFuZ2VzJiMzOTsgc2lnbmlmaWNhbmNlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEzIDAxOjExPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dGNwX21ldHJpY3NcXC55YW1sJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMyAwMToxMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuOC1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMjUyMQoJCQkJCQkJb3V0cHV0OiAyMAoJCQkJCQkJdGhvdWdodHM6IDIxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoaXMgc2VhcmNoOgoKKipEaXZpbmcgaW50byBOZXRsaW5rIERvY3VtZW50YXRpb24qKgoKT2theSwgc28gSSBuZWVkIHRvIGZpbmQgc29tZSBzcGVjaWZpYyBOZXRsaW5rIGRvY3VtZW50YXRpb24sIGxpa2VseSByZWxhdGVkIHRvIHNwZWNpZmljYXRpb25zLiBNeSBpbml0aWFsIGFwcHJvYWNoIGlzIHRvIGdvIHN0cmFpZ2h0IHRvIHRoZSBzb3VyY2Ug4oCTIHRoZSBidWlsZCBzeXN0ZW0uIFNpbmNlIHRoaXMgaW52b2x2ZXMga2VybmVsLWxldmVsIHN0dWZmLCB0aGUgYE1ha2VmaWxlYCBzZWVtcyBsaWtlIHRoZSBtb3N0IGxvZ2ljYWwgcGxhY2UgdG8gYmVnaW4uIEl0JiMzOTtzIHRoZSBjZW50cmFsIGh1YiBmb3IgdGhlIGJ1aWxkIHByb2Nlc3MsIGFuZCBvZnRlbiBjb250YWlucyByZWZlcmVuY2VzIHRvIGRvY3VtZW50YXRpb24sIHBhcnRpY3VsYXJseSB3aGVuIGl0IGNvbWVzIHRvIGludGVybmFsIGludGVyZmFjZXMgbGlrZSBOZXRsaW5rLiBIb3dldmVyLCBJIHNob3VsZCBhbHNvIGNoZWNrIHRoZSBzY3JpcHRzIGFuZCB0b29scyB1c2VkIGluIHRoZSBidWlsZC4gRnJlcXVlbnRseSwgdGhlc2UgY29udGFpbiBlbWJlZGRlZCBkb2N1bWVudGF0aW9uIHJlZmVyZW5jZXMgb3IgZXZlbiBnZW5lcmF0ZSB0aGUgZG9jdW1lbnRhdGlvbi4gRXNzZW50aWFsbHksIEkgbmVlZCB0byBjaGVjayB0aGUgZW50aXJlIGJyZWFkdGggb2YgdGhlIGJ1aWxkIHN5c3RlbSB0byBnZXQgdGhlIG1vc3QgY29tcGxldGUgdmlldy4gTGV0JiMzOTtzIHN0YXJ0IHdpdGggYE1ha2VmaWxlYCBhbmQgdGhlbiBleHBhbmQgdGhlIHNlYXJjaC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTMgMDE6MTE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O0RvY3VtZW50YXRpb24vZ3B1L2RybS1yYXMucnN0PTYwPVlBTUwtYmFzZWQgSW50ZXJmYWNlXG4tLVxuRG9jdW1lbnRhdGlvbi9ncHUvZHJtLXJhcy5yc3QtNjItXG5Eb2N1bWVudGF0aW9uL2dwdS9kcm0tcmFzLnJzdDo2MzpUaGUgaW50ZXJmYWNlIGlzIGRlc2NyaWJlZCBpbiBhIFlBTUwgc3BlY2lmaWNhdGlvbiBgYERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9kcm1fcmFzLnlhbWxgYFxuRG9jdW1lbnRhdGlvbi9ncHUvZHJtLXJhcy5yc3QtNjQtXG4tLVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL211bHRpLXBmLW5ldGRldi5yc3Q9OTA9VGhlIHJlbGF0aW9uIGJldHdlZW4gUEYsIGlycSwgbmFwaSwgYW5kIHF1ZXVlIGNhbiBiZSBvYnNlcnZlZCB2aWEgbmV0bGluayBzcGVjOjpcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9tdWx0aS1wZi1uZXRkZXYucnN0LTkxLVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL211bHRpLXBmLW5ldGRldi5yc3Q6OTI6ICAkIC4vdG9vbHMvbmV0L3lubC9weXlubC9jbGkucHkgLS1zcGVjIERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9uZXRkZXYueWFtbCAtLWR1bXAgcXVldWUtZ2V0IC0tanNvbj0mIzM5O3tcJiMzNDtpZmluZGV4XCYjMzQ7OiAxM30mIzM5O1xuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL211bHRpLXBmLW5ldGRldi5yc3QtOTMtICBbeyYjMzk7aWQmIzM5OzogMCwgJiMzOTtpZmluZGV4JiMzOTs6IDEzLCAmIzM5O25hcGktaWQmIzM5OzogNTM5LCAmIzM5O3R5cGUmIzM5OzogJiMzOTtyeCYjMzk7fSxcbi0tXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbXVsdGktcGYtbmV0ZGV2LnJzdC0xMDMtXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbXVsdGktcGYtbmV0ZGV2LnJzdDoxMDQ6ICAkIC4vdG9vbHMvbmV0L3lubC9weXlubC9jbGkucHkgLS1zcGVjIERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9uZXRkZXYueWFtbCAtLWR1bXAgbmFwaS1nZXQgLS1qc29uPSYjMzk7e1wmIzM0O2lmaW5kZXhcJiMzNDs6IDEzfSYjMzk7XG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbXVsdGktcGYtbmV0ZGV2LnJzdC0xMDUtICBbeyYjMzk7aWQmIzM5OzogNTQzLCAmIzM5O2lmaW5kZXgmIzM5OzogMTMsICYjMzk7aXJxJiMzOTs6IDQyfSxcbi0tXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmFwaS5yc3Q9MjA1PXdpbGwgcmV2ZWFsIGVhY2ggcXVldWUmIzM5O3MgTkFQSSBJRCk6XG4tLVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25hcGkucnN0LTIwOS0gICAkIGtlcm5lbC1zb3VyY2UvdG9vbHMvbmV0L3lubC9weXlubC9jbGkucHkgXFxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uYXBpLnJzdDoyMTA6ICAgICAgICAgICAgIC0tc3BlYyBEb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvbmV0ZGV2LnlhbWwgXFxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uYXBpLnJzdC0yMTEtICAgICAgICAgICAgIC0tZHVtcCBxdWV1ZS1nZXQgXFxcbi0tXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmFwaS5yc3QtMjEzLVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25hcGkucnN0OjIxNDpTZWUgYGBEb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvbmV0ZGV2LnlhbWxgYCBmb3IgbW9yZSBkZXRhaWxzIG9uXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmFwaS5yc3QtMjE1LWF2YWlsYWJsZSBvcGVyYXRpb25zIGFuZCBhdHRyaWJ1dGVzLlxuLS1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uYXBpLnJzdD0yNDA9Rm9yIGV4YW1wbGUsIHVzaW5nIHRoZSBzY3JpcHQ6XG4tLVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25hcGkucnN0LTI0NC0gICQga2VybmVsLXNvdXJjZS90b29scy9uZXQveW5sL3B5eW5sL2NsaS5weSBcXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25hcGkucnN0OjI0NTogICAgICAgICAgICAtLXNwZWMgRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL25ldGRldi55YW1sIFxcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmFwaS5yc3QtMjQ2LSAgICAgICAgICAgIC0tZG8gbmFwaS1zZXQgXFxcbi0tXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvcGFnZV9wb29sLnJzdD00Nz1ldGMuIGNhbiBiZSBhY2Nlc3NlZCB2aWEgdGhlIG5ldGRldiBnZW5ldGxpbmsgZmFtaWx5XG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvcGFnZV9wb29sLnJzdDo0ODooc2VlIERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9uZXRkZXYueWFtbCkuXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvcGFnZV9wb29sLnJzdC00OS1cbi0tXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcveGRwLXJ4LW1ldGFkYXRhLnJzdD0xMjA9bmV0bGluay4gU2VlIGBgeGRwLXJ4LW1ldGFkYXRhLWZlYXR1cmVzYGAgYXR0cmlidXRlIHNldCBpblxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL3hkcC1yeC1tZXRhZGF0YS5yc3Q6MTIxOmBgRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL25ldGRldi55YW1sYGAuXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcveGRwLXJ4LW1ldGFkYXRhLnJzdC0xMjItXG4tLVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL3hzay10eC1tZXRhZGF0YS5yc3Q9MTM0PVF1ZXJ5IHRoZSBgYHhzay1mZWF0dXJlc2BgIGF0dHJpYnV0ZSBpblxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL3hzay10eC1tZXRhZGF0YS5yc3Q6MTM1OmBgRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL25ldGRldi55YW1sYGAuIEl0cyBiaXRzIGFyZSBkZWZpbmVkIGJ5IHRoZVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL3hzay10eC1tZXRhZGF0YS5yc3QtMTM2LWBgeHNrLWZsYWdzYGAgZW51bS5cbi0tXG5Eb2N1bWVudGF0aW9uL3RyYW5zbGF0aW9ucy96aF9DTi9uZXR3b3JraW5nL25hcGkucnN0PTEzMj1OQVBJIOWunuS+i+acgOW4uOS7pSAxOjE6MSDmmKDlsITliLDkuK3mlq3lkozpmJ/liJflr7nvvIjpmJ/liJflr7nmmK/nlLHkuIDkuKrmjqXmlLbpmJ/liJflkozkuIDkuKrlj5HpgIHpmJ/liJfnu4TmiJDnmoTkuIDnu4Rcbi0tXG5Eb2N1bWVudGF0aW9uL3RyYW5zbGF0aW9ucy96aF9DTi9uZXR3b3JraW5nL25hcGkucnN0LTE3MS0gICAkIGtlcm5lbC1zb3VyY2UvdG9vbHMvbmV0L3lubC9weXlubC9jbGkucHkgXFxcbkRvY3VtZW50YXRpb24vdHJhbnNsYXRpb25zL3poX0NOL25ldHdvcmtpbmcvbmFwaS5yc3Q6MTcyOiAgICAgICAgICAgICAtLXNwZWMgRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL25ldGRldi55YW1sIFxcXG5Eb2N1bWVudGF0aW9uL3RyYW5zbGF0aW9ucy96aF9DTi9uZXR3b3JraW5nL25hcGkucnN0LTE3My0gICAgICAgICAgICAgLS1kdW1wIHF1ZXVlLWdldCBcXFxuLS1cbkRvY3VtZW50YXRpb24vdHJhbnNsYXRpb25zL3poX0NOL25ldHdvcmtpbmcvbmFwaS5yc3QtMTc1LVxuRG9jdW1lbnRhdGlvbi90cmFuc2xhdGlvbnMvemhfQ04vbmV0d29ya2luZy9uYXBpLnJzdDoxNzY65pyJ5YWz5Y+v55So5pON5L2c5ZKM5bGe5oCn55qE5pu05aSa6K+m57uG5L+h5oGv77yM6K+35Y+C6ZiFIGBgRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL25ldGRldi55YW1sYGDjgIJcbkRvY3VtZW50YXRpb24vdHJhbnNsYXRpb25zL3poX0NOL25ldHdvcmtpbmcvbmFwaS5yc3QtMTc3LVxuLS1cbkRvY3VtZW50YXRpb24vdHJhbnNsYXRpb25zL3poX0NOL25ldHdvcmtpbmcvbmFwaS5yc3Q9MTg5PU5ldGxpbmsg6L+b6KGM6YWN572u5LiU5piv5Z+65LqO5q+P5LiqIE5BUEkg5a6e5L6L6K6+572u5pe277yM5LiK6L+w5Y+C5pWw5L2/55So6L+e5a2X56ym77yILe+8ieiAjOmdnuS4i+WIkue6v++8iF/vvIlcbi0tXG5Eb2N1bWVudGF0aW9uL3RyYW5zbGF0aW9ucy96aF9DTi9uZXR3b3JraW5nL25hcGkucnN0LTE5OS0gICQga2VybmVsLXNvdXJjZS90b29scy9uZXQveW5sL3B5eW5sL2NsaS5weSBcXFxuRG9jdW1lbnRhdGlvbi90cmFuc2xhdGlvbnMvemhfQ04vbmV0d29ya2luZy9uYXBpLnJzdDoyMDA6ICAgICAgICAgICAgLS1zcGVjIERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9uZXRkZXYueWFtbCBcXFxuRG9jdW1lbnRhdGlvbi90cmFuc2xhdGlvbnMvemhfQ04vbmV0d29ya2luZy9uYXBpLnJzdC0yMDEtICAgICAgICAgICAgLS1kbyBuYXBpLXNldCBcXFxuLS1cbkRvY3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9uZXRsaW5rL2luZGV4LnJzdD0xOT1TZWUgYWxzbzpcbkRvY3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9uZXRsaW5rL2luZGV4LnJzdC0yMC0gLSA6cmVmOmBEb2N1bWVudGF0aW9uL2NvcmUtYXBpL25ldGxpbmsucnN0IFx1MDAzY2tlcm5lbF9uZXRsaW5rXHUwMDNlYFxuRG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL25ldGxpbmsvaW5kZXgucnN0OjIxOiAtIDpyZWY6YERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9pbmRleC5yc3QgXHUwMDNjc3BlY3NcdTAwM2VgXG4tLVxuRG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL25ldGxpbmsvaW50cm8tc3BlY3MucnN0PTE5PWEgaGFuZGZ1bCBvZiBhcmd1bWVudHMsIHRoZSBtb3N0IGltcG9ydGFudCBvbmVzIGFyZTpcbi0tXG5Eb2N1bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbmV0bGluay9pbnRyby1zcGVjcy5yc3QtMjUtXG5Eb2N1bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbmV0bGluay9pbnRyby1zcGVjcy5yc3Q6MjY6WUFNTCBzcGVjcyBjYW4gYmUgZm91bmQgdW5kZXIgYGBEb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvYGAuXG5Eb2N1bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbmV0bGluay9pbnRyby1zcGVjcy5yc3QtMjctXG5Eb2N1bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbmV0bGluay9pbnRyby1zcGVjcy5yc3Q9Mjg9RXhhbXBsZSB1c2U6OlxuRG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL25ldGxpbmsvaW50cm8tc3BlY3MucnN0LTI5LVxuRG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL25ldGxpbmsvaW50cm8tc3BlY3MucnN0OjMwOiAgJCAuL3Rvb2xzL25ldC95bmwvcHl5bmwvY2xpLnB5IC0tc3BlYyBEb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvZXRodG9vbC55YW1sIFxcXG5Eb2N1bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbmV0bGluay9pbnRyby1zcGVjcy5yc3QtMzEtICAgICAgICAtLWRvIHJpbmdzLWdldCBcXFxuLS1cbkRvY3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9uZXRsaW5rL2ludHJvLXNwZWNzLnJzdD02NT10cmFja2VkIGJ5IGdpdCEpIEZvciBpbnN0YW5jZSB0aGUgYGBmb3VfbmwuY2BgIGtlcm5lbCBzb3VyY2UgY29udGFpbnM6OlxuRG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL25ldGxpbmsvaW50cm8tc3BlY3MucnN0LTY2LVxuRG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL25ldGxpbmsvaW50cm8tc3BlY3MucnN0OjY3OiAgLypcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9mb3UueWFtbCAqL1xuRG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL25ldGxpbmsvaW50cm8tc3BlY3MucnN0LTY4LSAgLyogWU5MLUdFTiBrZXJuZWwgc291cmNlICovXG4tLVxuRG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL25ldGxpbmsvc3BlY3MucnN0PTE1PUludGVybmFsbHkga2VybmVsIHVzZXMgdGhlIFlBTUwgc3BlY3MgdG8gZ2VuZXJhdGU6XG4tLVxuRG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL25ldGxpbmsvc3BlY3MucnN0LTE3LSAtIHRoZSBDIHVBUEkgaGVhZGVyXG5Eb2N1bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbmV0bGluay9zcGVjcy5yc3Q6MTg6IC0gZG9jdW1lbnRhdGlvbiBvZiB0aGUgcHJvdG9jb2wgYXMgYSBSZVNUIGZpbGUgLSBzZWUgOnJlZjpgRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL2luZGV4LnJzdCBcdTAwM2NzcGVjc1x1MDAzZWBcbkRvY3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9uZXRsaW5rL3NwZWNzLnJzdC0xOS0gLSBwb2xpY3kgdGFibGVzIGZvciBpbnB1dCBhdHRyaWJ1dGUgdmFsaWRhdGlvblxuLS1cbkRvY3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9uZXRsaW5rL3NwZWNzLnJzdC0yMS1cbkRvY3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9uZXRsaW5rL3NwZWNzLnJzdDoyMjpZQU1MIHNwZWNpZmljYXRpb25zIGNhbiBiZSBmb3VuZCB1bmRlciBgYERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9gYFxuRG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL25ldGxpbmsvc3BlY3MucnN0LTIzLVxuLS1cbk1BSU5UQUlORVJTPTE5OTg9VDpcdGdpdCBnaXQ6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQvZ3JlZ2toL3N0YWdpbmcuZ2l0XG5NQUlOVEFJTkVSUzoxOTk5OkY6XHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvYmluZGVyLnlhbWxcbk1BSU5UQUlORVJTLTIwMDAtRjpcdGRyaXZlcnMvYW5kcm9pZC9cbi0tXG5NQUlOVEFJTkVSUz03OTIxPUY6XHREb2N1bWVudGF0aW9uL2RyaXZlci1hcGkvZHBsbC5yc3Rcbk1BSU5UQUlORVJTOjc5MjI6RjpcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9kcGxsLnlhbWxcbk1BSU5UQUlORVJTLTc5MjMtRjpcdGRyaXZlcnMvZHBsbC9cbi0tXG5NQUlOVEFJTkVSUz05NjU5PVM6XHRNYWludGFpbmVkXG5NQUlOVEFJTkVSUzo5NjYwOkY6XHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvZGV2LWVuZXJneW1vZGVsLnlhbWxcbk1BSU5UQUlORVJTLTk2NjEtRjpcdERvY3VtZW50YXRpb24vcG93ZXIvZW5lcmd5LW1vZGVsLnJzdFxuLS1cbk1BSU5UQUlORVJTPTExNDU1PVM6XHRNYWludGFpbmVkXG5NQUlOVEFJTkVSUzoxMTQ1NjpGOlx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL2hhbmRzaGFrZS55YW1sXG5NQUlOVEFJTkVSUy0xMTQ1Ny1GOlx0RG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL3Rscy1oYW5kc2hha2UucnN0XG4tLVxuTUFJTlRBSU5FUlM9MTg5NjU9TTpcdEpha3ViIEtpY2luc2tpIFx1MDAzY2t1YmFAa2VybmVsLm9yZ1x1MDAzZVxuTUFJTlRBSU5FUlM6MTg5NjY6RjpcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9ldGh0b29sLnlhbWxcbk1BSU5UQUlORVJTLTE4OTY3LUY6XHREb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZXRodG9vbC1uZXRsaW5rLnJzdFxuLS1cbk1BSU5UQUlORVJTPTE5MTE3PVM6XHRNYWludGFpbmVkXG5NQUlOVEFJTkVSUzoxOTExODpGOlx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL3J0LWFkZHIueWFtbFxuTUFJTlRBSU5FUlM6MTkxMTk6RjpcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9ydC1uZWlnaC55YW1sXG5NQUlOVEFJTkVSUzoxOTEyMDpGOlx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL3J0LXJvdXRlLnlhbWxcbk1BSU5UQUlORVJTOjE5MTIxOkY6XHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvcnQtcnVsZS55YW1sXG5NQUlOVEFJTkVSUy0xOTEyMi1GOlx0aW5jbHVkZS9saW51eC9pbmV0ZGV2aWNlLmhcbi0tXG5NQUlOVEFJTkVSUz0xOTIwNj1UOlx0Z2l0IGh0dHBzOi8vZ2l0aHViLmNvbS9tdWx0aXBhdGgtdGNwL21wdGNwX25ldC1uZXh0LmdpdCBleHBvcnRcbk1BSU5UQUlORVJTOjE5MjA3OkY6XHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvbXB0Y3BfcG0ueWFtbFxuTUFJTlRBSU5FUlMtMTkyMDgtRjpcdERvY3VtZW50YXRpb24vbmV0d29ya2luZy9tcHRjcCoucnN0XG4tLVxuTUFJTlRBSU5FUlM9MjA1MTQ9VDpcdGdpdCBodHRwczovL2dpdGh1Yi5jb20vT3BlblZQTi9vdnBuLW5ldC1uZXh0LmdpdFxuTUFJTlRBSU5FUlM6MjA1MTU6RjpcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9vdnBuLnlhbWxcbk1BSU5UQUlORVJTLTIwNTE2LUY6XHRkcml2ZXJzL25ldC9vdnBuL1xuLS1cbk1BSU5UQUlORVJTPTIxOTIwPU06XHRXaWxsZW0gZGUgQnJ1aWpuIFx1MDAzY3dpbGxlbWRlYnJ1aWpuLmtlcm5lbEBnbWFpbC5jb21cdTAwM2Vcbk1BSU5UQUlORVJTOjIxOTIxOkY6XHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvcHNwLnlhbWxcbk1BSU5UQUlORVJTLTIxOTIyLUY6XHREb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvcHNwLnJzdFxuLS1cbk1BSU5UQUlORVJTPTI2Nzk0PVM6XHRTdXBwb3J0ZWRcbk1BSU5UQUlORVJTOjI2Nzk1OkY6XHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvdGVhbS55YW1sXG5NQUlOVEFJTkVSUy0yNjc5Ni1GOlx0ZHJpdmVycy9uZXQvdGVhbS9cbi0tXG5NQUlOVEFJTkVSUz0yOTQzMz1TOlx0TWFpbnRhaW5lZFxuTUFJTlRBSU5FUlM6Mjk0MzQ6RjpcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy93aXJlZ3VhcmQueWFtbFxuTUFJTlRBSU5FUlMtMjk0MzUtRjpcdGRyaXZlcnMvbmV0L3dpcmVndWFyZC9cbi0tXG5kcml2ZXJzL2FuZHJvaWQvYmluZGVyL25ldGxpbmsucnMtMS0vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogKChHUEwtMi4wIFdJVEggTGludXgtc3lzY2FsbC1ub3RlKSBPUiBCU0QtMy1DbGF1c2UpXG5kcml2ZXJzL2FuZHJvaWQvYmluZGVyL25ldGxpbmsucnM6MjovKiBCYXNlZCBvbjogRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL2JpbmRlci55YW1sICovXG5kcml2ZXJzL2FuZHJvaWQvYmluZGVyL25ldGxpbmsucnMtMy1cbi0tXG5kcml2ZXJzL2FuZHJvaWQvYmluZGVyX25ldGxpbmsuYy0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xuZHJpdmVycy9hbmRyb2lkL2JpbmRlcl9uZXRsaW5rLmM6MzovKlx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL2JpbmRlci55YW1sICovXG5kcml2ZXJzL2FuZHJvaWQvYmluZGVyX25ldGxpbmsuYy00LS8qIFlOTC1HRU4ga2VybmVsIHNvdXJjZSAqL1xuLS1cbmRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfbmV0bGluay5oLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXG5kcml2ZXJzL2FuZHJvaWQvYmluZGVyX25ldGxpbmsuaDozOi8qXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvYmluZGVyLnlhbWwgKi9cbmRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfbmV0bGluay5oLTQtLyogWU5MLUdFTiBrZXJuZWwgaGVhZGVyICovXG4tLVxuZHJpdmVycy9kcGxsL2RwbGxfbmwuYy0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xuZHJpdmVycy9kcGxsL2RwbGxfbmwuYzozOi8qXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvZHBsbC55YW1sICovXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5jLTQtLyogWU5MLUdFTiBrZXJuZWwgc291cmNlICovXG4tLVxuZHJpdmVycy9kcGxsL2RwbGxfbmwuaC0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xuZHJpdmVycy9kcGxsL2RwbGxfbmwuaDozOi8qXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvZHBsbC55YW1sICovXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5oLTQtLyogWU5MLUdFTiBrZXJuZWwgaGVhZGVyICovXG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9yYXNfbmwuYy0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xuZHJpdmVycy9ncHUvZHJtL2RybV9yYXNfbmwuYzozOi8qXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvZHJtX3Jhcy55YW1sICovXG5kcml2ZXJzL2dwdS9kcm0vZHJtX3Jhc19ubC5jLTQtLyogWU5MLUdFTiBrZXJuZWwgc291cmNlICovXG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9yYXNfbmwuaC0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xuZHJpdmVycy9ncHUvZHJtL2RybV9yYXNfbmwuaDozOi8qXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvZHJtX3Jhcy55YW1sICovXG5kcml2ZXJzL2dwdS9kcm0vZHJtX3Jhc19ubC5oLTQtLyogWU5MLUdFTiBrZXJuZWwgaGVhZGVyICovXG4tLVxuZHJpdmVycy9uZXQvb3Zwbi9uZXRsaW5rLWdlbi5jLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXG5kcml2ZXJzL25ldC9vdnBuL25ldGxpbmstZ2VuLmM6MzovKlx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL292cG4ueWFtbCAqL1xuZHJpdmVycy9uZXQvb3Zwbi9uZXRsaW5rLWdlbi5jLTQtLyogWU5MLUdFTiBrZXJuZWwgc291cmNlICovXG4tLVxuZHJpdmVycy9uZXQvb3Zwbi9uZXRsaW5rLWdlbi5oLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXG5kcml2ZXJzL25ldC9vdnBuL25ldGxpbmstZ2VuLmg6MzovKlx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL292cG4ueWFtbCAqL1xuZHJpdmVycy9uZXQvb3Zwbi9uZXRsaW5rLWdlbi5oLTQtLyogWU5MLUdFTiBrZXJuZWwgaGVhZGVyICovXG4tLVxuZHJpdmVycy9uZXQvdGVhbS90ZWFtX25sLmMtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cbmRyaXZlcnMvbmV0L3RlYW0vdGVhbV9ubC5jOjM6LypcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy90ZWFtLnlhbWwgKi9cbmRyaXZlcnMvbmV0L3RlYW0vdGVhbV9ubC5jLTQtLyogWU5MLUdFTiBrZXJuZWwgc291cmNlICovXG4tLVxuZHJpdmVycy9uZXQvdGVhbS90ZWFtX25sLmgtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cbmRyaXZlcnMvbmV0L3RlYW0vdGVhbV9ubC5oOjM6LypcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy90ZWFtLnlhbWwgKi9cbmRyaXZlcnMvbmV0L3RlYW0vdGVhbV9ubC5oLTQtLyogWU5MLUdFTiBrZXJuZWwgaGVhZGVyICovXG4tLVxuZHJpdmVycy9uZXQvd2lyZWd1YXJkL2dlbmVyYXRlZC9uZXRsaW5rLmMtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cbmRyaXZlcnMvbmV0L3dpcmVndWFyZC9nZW5lcmF0ZWQvbmV0bGluay5jOjM6LypcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy93aXJlZ3VhcmQueWFtbCAqL1xuZHJpdmVycy9uZXQvd2lyZWd1YXJkL2dlbmVyYXRlZC9uZXRsaW5rLmMtNC0vKiBZTkwtR0VOIGtlcm5lbCBzb3VyY2UgKi9cbi0tXG5kcml2ZXJzL25ldC93aXJlZ3VhcmQvZ2VuZXJhdGVkL25ldGxpbmsuaC0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xuZHJpdmVycy9uZXQvd2lyZWd1YXJkL2dlbmVyYXRlZC9uZXRsaW5rLmg6MzovKlx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL3dpcmVndWFyZC55YW1sICovXG5kcml2ZXJzL25ldC93aXJlZ3VhcmQvZ2VuZXJhdGVkL25ldGxpbmsuaC00LS8qIFlOTC1HRU4ga2VybmVsIGhlYWRlciAqL1xuLS1cbmZzL2xvY2tkL25ldGxpbmsuYy0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xuZnMvbG9ja2QvbmV0bGluay5jOjM6LypcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9sb2NrZC55YW1sICovXG5mcy9sb2NrZC9uZXRsaW5rLmMtNC0vKiBZTkwtR0VOIGtlcm5lbCBzb3VyY2UgKi9cbi0tXG5mcy9sb2NrZC9uZXRsaW5rLmgtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cbmZzL2xvY2tkL25ldGxpbmsuaDozOi8qXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvbG9ja2QueWFtbCAqL1xuZnMvbG9ja2QvbmV0bGluay5oLTQtLyogWU5MLUdFTiBrZXJuZWwgaGVhZGVyICovXG4tLVxuZnMvbmZzZC9uZXRsaW5rLmMtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cbmZzL25mc2QvbmV0bGluay5jOjM6LypcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9uZnNkLnlhbWwgKi9cbmZzL25mc2QvbmV0bGluay5jLTQtLyogWU5MLUdFTiBrZXJuZWwgc291cmNlICovXG4tLVxuZnMvbmZzZC9uZXRsaW5rLmgtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cbmZzL25mc2QvbmV0bGluay5oOjM6LypcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9uZnNkLnlhbWwgKi9cbmZzL25mc2QvbmV0bGluay5oLTQtLyogWU5MLUdFTiBrZXJuZWwgaGVhZGVyICovXG4tLVxuaW5jbHVkZS9uZXQveGRwLmg9NTY0PXZvaWQgeGRwX2F0dGFjaG1lbnRfc2V0dXAoc3RydWN0IHhkcF9hdHRhY2htZW50X2luZm8gKmluZm8sXG4tLVxuaW5jbHVkZS9uZXQveGRwLmgtNTcxLSAqIC0geGRwX3J4X21ldGFkYXRhIGVudW1cbmluY2x1ZGUvbmV0L3hkcC5oOjU3MjogKiAtIG5ldGRldiBuZXRsaW5rIGVudW0gKERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9uZXRkZXYueWFtbClcbmluY2x1ZGUvbmV0L3hkcC5oLTU3My0gKiAtIGtmdW5jIG5hbWVcbi0tXG5pbmNsdWRlL3VhcGkvZHJtL2RybV9yYXMuaC0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xuaW5jbHVkZS91YXBpL2RybS9kcm1fcmFzLmg6MzovKlx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL2RybV9yYXMueWFtbCAqL1xuaW5jbHVkZS91YXBpL2RybS9kcm1fcmFzLmgtNC0vKiBZTkwtR0VOIHVhcGkgaGVhZGVyICovXG4tLVxuaW5jbHVkZS91YXBpL2RybS94ZV9kcm0uaD0yNTE2PXN0cnVjdCBkcm1feGVfZXhlY19xdWV1ZV9zZXRfcHJvcGVydHkge1xuLS1cbmluY2x1ZGUvdWFwaS9kcm0veGVfZHJtLmgtMjUzNi0gKiBUaGUgZW51bXMgYW5kIHN0cmluZ3MgZGVmaW5lZCBiZWxvdyBtYXAgdG8gdGhlIGF0dHJpYnV0ZXMgb2YgdGhlIERSTSBSQVMgTmV0bGluayBJbnRlcmZhY2UuXG5pbmNsdWRlL3VhcGkvZHJtL3hlX2RybS5oOjI1Mzc6ICogUmVmZXIgdG8gRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL2RybV9yYXMueWFtbCBmb3IgY29tcGxldGUgaW50ZXJmYWNlIHNwZWNpZmljYXRpb24uXG5pbmNsdWRlL3VhcGkvZHJtL3hlX2RybS5oLTI1MzgtICpcbi0tXG5pbmNsdWRlL3VhcGkvbGludXgvYW5kcm9pZC9iaW5kZXJfbmV0bGluay5oLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXG5pbmNsdWRlL3VhcGkvbGludXgvYW5kcm9pZC9iaW5kZXJfbmV0bGluay5oOjM6LypcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9iaW5kZXIueWFtbCAqL1xuaW5jbHVkZS91YXBpL2xpbnV4L2FuZHJvaWQvYmluZGVyX25ldGxpbmsuaC00LS8qIFlOTC1HRU4gdWFwaSBoZWFkZXIgKi9cbi0tXG5pbmNsdWRlL3VhcGkvbGludXgvZGV2X2VuZXJneW1vZGVsLmgtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cbmluY2x1ZGUvdWFwaS9saW51eC9kZXZfZW5lcmd5bW9kZWwuaDozOi8qXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvZGV2LWVuZXJneW1vZGVsLnlhbWwgKi9cbmluY2x1ZGUvdWFwaS9saW51eC9kZXZfZW5lcmd5bW9kZWwuaC00LS8qIFlOTC1HRU4gdWFwaSBoZWFkZXIgKi9cbi0tXG5pbmNsdWRlL3VhcGkvbGludXgvZGV2bGluay5oPTQxMj1lbnVtIGRldmxpbmtfYXR0ciB7XG4tLVxuaW5jbHVkZS91YXBpL2xpbnV4L2RldmxpbmsuaC02NTMtXHQvKiBBZGQgbmV3IGF0dHJpYnV0ZXMgYWJvdmUgaGVyZSwgdXBkYXRlIHRoZSBzcGVjIGluXG5pbmNsdWRlL3VhcGkvbGludXgvZGV2bGluay5oOjY1NDpcdCAqIERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9kZXZsaW5rLnlhbWwgYW5kIHJlLWdlbmVyYXRlXG5pbmNsdWRlL3VhcGkvbGludXgvZGV2bGluay5oLTY1NS1cdCAqIG5ldC9kZXZsaW5rL25ldGxpbmtfZ2VuLmMuXG4tLVxuaW5jbHVkZS91YXBpL2xpbnV4L2RwbGwuaC0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xuaW5jbHVkZS91YXBpL2xpbnV4L2RwbGwuaDozOi8qXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvZHBsbC55YW1sICovXG5pbmNsdWRlL3VhcGkvbGludXgvZHBsbC5oLTQtLyogWU5MLUdFTiB1YXBpIGhlYWRlciAqL1xuLS1cbmluY2x1ZGUvdWFwaS9saW51eC9ldGh0b29sX25ldGxpbmtfZ2VuZXJhdGVkLmgtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cbmluY2x1ZGUvdWFwaS9saW51eC9ldGh0b29sX25ldGxpbmtfZ2VuZXJhdGVkLmg6MzovKlx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL2V0aHRvb2wueWFtbCAqL1xuaW5jbHVkZS91YXBpL2xpbnV4L2V0aHRvb2xfbmV0bGlua19nZW5lcmF0ZWQuaC00LS8qIFlOTC1HRU4gdWFwaSBoZWFkZXIgKi9cbi0tXG5pbmNsdWRlL3VhcGkvbGludXgvZm91LmgtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cbmluY2x1ZGUvdWFwaS9saW51eC9mb3UuaDozOi8qXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvZm91LnlhbWwgKi9cbmluY2x1ZGUvdWFwaS9saW51eC9mb3UuaC00LS8qIFlOTC1HRU4gdWFwaSBoZWFkZXIgKi9cbi0tXG5pbmNsdWRlL3VhcGkvbGludXgvaGFuZHNoYWtlLmgtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cbmluY2x1ZGUvdWFwaS9saW51eC9oYW5kc2hha2UuaDozOi8qXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvaGFuZHNoYWtlLnlhbWwgKi9cbmluY2x1ZGUvdWFwaS9saW51eC9oYW5kc2hha2UuaC00LS8qIFlOTC1HRU4gdWFwaSBoZWFkZXIgKi9cbi0tXG5pbmNsdWRlL3VhcGkvbGludXgvaWZfdGVhbS5oLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXG5pbmNsdWRlL3VhcGkvbGludXgvaWZfdGVhbS5oOjM6LypcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy90ZWFtLnlhbWwgKi9cbmluY2x1ZGUvdWFwaS9saW51eC9pZl90ZWFtLmgtNC0vKiBZTkwtR0VOIHVhcGkgaGVhZGVyICovXG4tLVxuaW5jbHVkZS91YXBpL2xpbnV4L2xvY2tkX25ldGxpbmsuaC0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xuaW5jbHVkZS91YXBpL2xpbnV4L2xvY2tkX25ldGxpbmsuaDozOi8qXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvbG9ja2QueWFtbCAqL1xuaW5jbHVkZS91YXBpL2xpbnV4L2xvY2tkX25ldGxpbmsuaC00LS8qIFlOTC1HRU4gdWFwaSBoZWFkZXIgKi9cbi0tXG5pbmNsdWRlL3VhcGkvbGludXgvbXB0Y3BfcG0uaC0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xuaW5jbHVkZS91YXBpL2xpbnV4L21wdGNwX3BtLmg6MzovKlx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL21wdGNwX3BtLnlhbWwgKi9cbmluY2x1ZGUvdWFwaS9saW51eC9tcHRjcF9wbS5oLTQtLyogWU5MLUdFTiB1YXBpIGhlYWRlciAqL1xuLS1cbmluY2x1ZGUvdWFwaS9saW51eC9uZXRfc2hhcGVyLmgtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cbmluY2x1ZGUvdWFwaS9saW51eC9uZXRfc2hhcGVyLmg6MzovKlx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL25ldF9zaGFwZXIueWFtbCAqL1xuaW5jbHVkZS91YXBpL2xpbnV4L25ldF9zaGFwZXIuaC00LS8qIFlOTC1HRU4gdWFwaSBoZWFkZXIgKi9cbi0tXG5pbmNsdWRlL3VhcGkvbGludXgvbmV0ZGV2LmgtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cbmluY2x1ZGUvdWFwaS9saW51eC9uZXRkZXYuaDozOi8qXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvbmV0ZGV2LnlhbWwgKi9cbmluY2x1ZGUvdWFwaS9saW51eC9uZXRkZXYuaC00LS8qIFlOTC1HRU4gdWFwaSBoZWFkZXIgKi9cbi0tXG5pbmNsdWRlL3VhcGkvbGludXgvbmZzZF9uZXRsaW5rLmgtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cbmluY2x1ZGUvdWFwaS9saW51eC9uZnNkX25ldGxpbmsuaDozOi8qXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvbmZzZC55YW1sICovXG5pbmNsdWRlL3VhcGkvbGludXgvbmZzZF9uZXRsaW5rLmgtNC0vKiBZTkwtR0VOIHVhcGkgaGVhZGVyICovXG4tLVxuaW5jbHVkZS91YXBpL2xpbnV4L292cG4uaC0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xuaW5jbHVkZS91YXBpL2xpbnV4L292cG4uaDozOi8qXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3Mvb3Zwbi55YW1sICovXG5pbmNsdWRlL3VhcGkvbGludXgvb3Zwbi5oLTQtLyogWU5MLUdFTiB1YXBpIGhlYWRlciAqL1xuLS1cbmluY2x1ZGUvdWFwaS9saW51eC9wc3AuaC0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xuaW5jbHVkZS91YXBpL2xpbnV4L3BzcC5oOjM6LypcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9wc3AueWFtbCAqL1xuaW5jbHVkZS91YXBpL2xpbnV4L3BzcC5oLTQtLyogWU5MLUdFTiB1YXBpIGhlYWRlciAqL1xuLS1cbmluY2x1ZGUvdWFwaS9saW51eC9zdW5ycGNfbmV0bGluay5oLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXG5pbmNsdWRlL3VhcGkvbGludXgvc3VucnBjX25ldGxpbmsuaDozOi8qXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3Mvc3VucnBjX2NhY2hlLnlhbWwgKi9cbmluY2x1ZGUvdWFwaS9saW51eC9zdW5ycGNfbmV0bGluay5oLTQtLyogWU5MLUdFTiB1YXBpIGhlYWRlciAqL1xuLS1cbmluY2x1ZGUvdWFwaS9saW51eC93aXJlZ3VhcmQuaC0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xuaW5jbHVkZS91YXBpL2xpbnV4L3dpcmVndWFyZC5oOjM6LypcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy93aXJlZ3VhcmQueWFtbCAqL1xuaW5jbHVkZS91YXBpL2xpbnV4L3dpcmVndWFyZC5oLTQtLyogWU5MLUdFTiB1YXBpIGhlYWRlciAqL1xuLS1cbmtlcm5lbC9wb3dlci9lbV9uZXRsaW5rX2F1dG9nZW4uYy0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xua2VybmVsL3Bvd2VyL2VtX25ldGxpbmtfYXV0b2dlbi5jOjM6LypcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9kZXYtZW5lcmd5bW9kZWwueWFtbCAqL1xua2VybmVsL3Bvd2VyL2VtX25ldGxpbmtfYXV0b2dlbi5jLTQtLyogWU5MLUdFTiBrZXJuZWwgc291cmNlICovXG4tLVxua2VybmVsL3Bvd2VyL2VtX25ldGxpbmtfYXV0b2dlbi5oLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXG5rZXJuZWwvcG93ZXIvZW1fbmV0bGlua19hdXRvZ2VuLmg6MzovKlx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL2Rldi1lbmVyZ3ltb2RlbC55YW1sICovXG5rZXJuZWwvcG93ZXIvZW1fbmV0bGlua19hdXRvZ2VuLmgtNC0vKiBZTkwtR0VOIGtlcm5lbCBoZWFkZXIgKi9cbi0tXG5uZXQvY29yZS9uZXRkZXYtZ2VubC1nZW4uYy0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xubmV0L2NvcmUvbmV0ZGV2LWdlbmwtZ2VuLmM6MzovKlx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL25ldGRldi55YW1sICovXG5uZXQvY29yZS9uZXRkZXYtZ2VubC1nZW4uYy00LS8qIFlOTC1HRU4ga2VybmVsIHNvdXJjZSAqL1xuLS1cbm5ldC9jb3JlL25ldGRldi1nZW5sLWdlbi5oLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXG5uZXQvY29yZS9uZXRkZXYtZ2VubC1nZW4uaDozOi8qXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvbmV0ZGV2LnlhbWwgKi9cbm5ldC9jb3JlL25ldGRldi1nZW5sLWdlbi5oLTQtLyogWU5MLUdFTiBrZXJuZWwgaGVhZGVyICovXG4tLVxubmV0L2RldmxpbmsvbmV0bGlua19nZW4uYy0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xubmV0L2RldmxpbmsvbmV0bGlua19nZW4uYzozOi8qXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvZGV2bGluay55YW1sICovXG5uZXQvZGV2bGluay9uZXRsaW5rX2dlbi5jLTQtLyogWU5MLUdFTiBrZXJuZWwgc291cmNlICovXG4tLVxubmV0L2RldmxpbmsvbmV0bGlua19nZW4uaC0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xubmV0L2RldmxpbmsvbmV0bGlua19nZW4uaDozOi8qXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvZGV2bGluay55YW1sICovXG5uZXQvZGV2bGluay9uZXRsaW5rX2dlbi5oLTQtLyogWU5MLUdFTiBrZXJuZWwgaGVhZGVyICovXG4tLVxubmV0L2hhbmRzaGFrZS9nZW5sLmMtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cbm5ldC9oYW5kc2hha2UvZ2VubC5jOjM6LypcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9oYW5kc2hha2UueWFtbCAqL1xubmV0L2hhbmRzaGFrZS9nZW5sLmMtNC0vKiBZTkwtR0VOIGtlcm5lbCBzb3VyY2UgKi9cbi0tXG5uZXQvaGFuZHNoYWtlL2dlbmwuaC0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xubmV0L2hhbmRzaGFrZS9nZW5sLmg6MzovKlx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL2hhbmRzaGFrZS55YW1sICovXG5uZXQvaGFuZHNoYWtlL2dlbmwuaC00LS8qIFlOTC1HRU4ga2VybmVsIGhlYWRlciAqL1xuLS1cbm5ldC9pcHY0L2ZvdV9ubC5jLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXG5uZXQvaXB2NC9mb3VfbmwuYzozOi8qXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvZm91LnlhbWwgKi9cbm5ldC9pcHY0L2ZvdV9ubC5jLTQtLyogWU5MLUdFTiBrZXJuZWwgc291cmNlICovXG4tLVxubmV0L2lwdjQvZm91X25sLmgtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cbm5ldC9pcHY0L2ZvdV9ubC5oOjM6LypcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9mb3UueWFtbCAqL1xubmV0L2lwdjQvZm91X25sLmgtNC0vKiBZTkwtR0VOIGtlcm5lbCBoZWFkZXIgKi9cbi0tXG5uZXQvbXB0Y3AvbXB0Y3BfcG1fZ2VuLmMtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cbm5ldC9tcHRjcC9tcHRjcF9wbV9nZW4uYzozOi8qXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvbXB0Y3BfcG0ueWFtbCAqL1xubmV0L21wdGNwL21wdGNwX3BtX2dlbi5jLTQtLyogWU5MLUdFTiBrZXJuZWwgc291cmNlICovXG4tLVxubmV0L21wdGNwL21wdGNwX3BtX2dlbi5oLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXG5uZXQvbXB0Y3AvbXB0Y3BfcG1fZ2VuLmg6MzovKlx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL21wdGNwX3BtLnlhbWwgKi9cbm5ldC9tcHRjcC9tcHRjcF9wbV9nZW4uaC00LS8qIFlOTC1HRU4ga2VybmVsIGhlYWRlciAqL1xuLS1cbm5ldC9wc3AvcHNwLW5sLWdlbi5jLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXG5uZXQvcHNwL3BzcC1ubC1nZW4uYzozOi8qXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvcHNwLnlhbWwgKi9cbm5ldC9wc3AvcHNwLW5sLWdlbi5jLTQtLyogWU5MLUdFTiBrZXJuZWwgc291cmNlICovXG4tLVxubmV0L3BzcC9wc3AtbmwtZ2VuLmgtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cbm5ldC9wc3AvcHNwLW5sLWdlbi5oOjM6LypcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9wc3AueWFtbCAqL1xubmV0L3BzcC9wc3AtbmwtZ2VuLmgtNC0vKiBZTkwtR0VOIGtlcm5lbCBoZWFkZXIgKi9cbi0tXG5uZXQvc2hhcGVyL3NoYXBlcl9ubF9nZW4uYy0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xubmV0L3NoYXBlci9zaGFwZXJfbmxfZ2VuLmM6MzovKlx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL25ldF9zaGFwZXIueWFtbCAqL1xubmV0L3NoYXBlci9zaGFwZXJfbmxfZ2VuLmMtNC0vKiBZTkwtR0VOIGtlcm5lbCBzb3VyY2UgKi9cbi0tXG5uZXQvc2hhcGVyL3NoYXBlcl9ubF9nZW4uaC0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xubmV0L3NoYXBlci9zaGFwZXJfbmxfZ2VuLmg6MzovKlx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL25ldF9zaGFwZXIueWFtbCAqL1xubmV0L3NoYXBlci9zaGFwZXJfbmxfZ2VuLmgtNC0vKiBZTkwtR0VOIGtlcm5lbCBoZWFkZXIgKi9cbi0tXG5uZXQvc3VucnBjL25ldGxpbmsuYy0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xubmV0L3N1bnJwYy9uZXRsaW5rLmM6MzovKlx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL3N1bnJwY19jYWNoZS55YW1sICovXG5uZXQvc3VucnBjL25ldGxpbmsuYy00LS8qIFlOTC1HRU4ga2VybmVsIHNvdXJjZSAqL1xuLS1cbm5ldC9zdW5ycGMvbmV0bGluay5oLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXG5uZXQvc3VucnBjL25ldGxpbmsuaDozOi8qXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3Mvc3VucnBjX2NhY2hlLnlhbWwgKi9cbm5ldC9zdW5ycGMvbmV0bGluay5oLTQtLyogWU5MLUdFTiBrZXJuZWwgaGVhZGVyICovXG4tLVxudG9vbHMvaW5jbHVkZS91YXBpL2xpbnV4L25ldGRldi5oLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXG50b29scy9pbmNsdWRlL3VhcGkvbGludXgvbmV0ZGV2Lmg6MzovKlx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL25ldGRldi55YW1sICovXG50b29scy9pbmNsdWRlL3VhcGkvbGludXgvbmV0ZGV2LmgtNC0vKiBZTkwtR0VOIHVhcGkgaGVhZGVyICovXG4tLVxudG9vbHMvbmV0L3lubC9NYWtlZmlsZT0xND1pbmNsdWRlZGlyID89ICQocHJlZml4KS9pbmNsdWRlXG50b29scy9uZXQveW5sL01ha2VmaWxlLTE1LVxudG9vbHMvbmV0L3lubC9NYWtlZmlsZToxNjpTUEVDRElSPS4uLy4uLy4uL0RvY3VtZW50YXRpb24vbmV0bGluay9zcGVjc1xudG9vbHMvbmV0L3lubC9NYWtlZmlsZS0xNy1cbi0tXG50b29scy9uZXQveW5sL2dlbmVyYXRlZC9NYWtlZmlsZT0yMz1UT09MX1JTVDo9Li4vcHl5bmwveW5sX2dlbl9yc3QucHlcbnRvb2xzL25ldC95bmwvZ2VuZXJhdGVkL01ha2VmaWxlLTI0LVxudG9vbHMvbmV0L3lubC9nZW5lcmF0ZWQvTWFrZWZpbGU6MjU6U1BFQ1NfRElSOj0uLi8uLi8uLi8uLi9Eb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3NcbnRvb2xzL25ldC95bmwvZ2VuZXJhdGVkL01ha2VmaWxlLTI2LVNQRUNTX1BBVEhTPSQod2lsZGNhcmQgJChTUEVDU19ESVIpLyoueWFtbClcbi0tXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbGliL01ha2VmaWxlPTg9VEVTVF9GSUxFUyA6PSBcXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2xpYi9NYWtlZmlsZS05LVx0Li4vLi4vLi4vLi4vbmV0L3lubCBcXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2xpYi9NYWtlZmlsZToxMDpcdC4uLy4uLy4uLy4uLy4uL0RvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcyBcXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2xpYi9NYWtlZmlsZS0xMS1cdGtzZnRfc2V0dXBfbG9vcGJhY2suc2ggXFxcbi0tXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbGliL3B5L3lubC5weT05PXRyeTpcbi0tXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbGliL3B5L3lubC5weS0xOS0gICAgICAgIHRvb2xzX2Z1bGxfcGF0aCA9IEtTUkMgLyBcJiMzNDt0b29sc1wmIzM0O1xudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2xpYi9weS95bmwucHk6MjA6ICAgICAgICBTUEVDX1BBVEggPSBLU1JDIC8gXCYjMzQ7RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzXCYjMzQ7XG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbGliL3B5L3lubC5weS0yMS1cbi0tXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQveW5sLm1rPTEzPVlOTF9TUEVDUyA6PSBcXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3lubC5tazoxNDpcdCQocGF0c3Vic3QgJSwkKHRvcF9zcmNkaXIpL0RvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy8lLnlhbWwsJChZTkxfR0VOUykpXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQveW5sLm1rLTE1LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMyAwMToxMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuOC1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTAwNwoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDEwMgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiB0aGUgdGNwX21ldHJpY3MueWFtbCBTcGVjaWZpY2F0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIE5ldGxpbmsgZG9jdW1lbnRhdGlvbiBzdHJ1Y3R1cmUsIHNwZWNpZmljYWxseSBgRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL3RjcF9tZXRyaWNzLnlhbWxgLiBJbW1lZGlhdGVseSwgc29tZXRoaW5nJiMzOTtzIG9mZi4gSSBzZWUgYWxsIHRoZXNlIG90aGVyIGZpbGVzIGluIHBsYWNlcyBsaWtlIGBmb3VfbmwuY2AgYW5kIGBkZXZsaW5rX2dlbi5jYCB0aGF0IGhhdmUgY2xlYXJseSBhdXRvLWdlbmVyYXRlZCBjb21wb25lbnRzIGRpcmVjdGx5IGNvbW1pdHRlZCBpbnRvIHRoZSBjb2RlYmFzZS4gVGhhdCYjMzk7cyBzdGFuZGFyZCBwcmFjdGljZSwgYSBjbGVhciBpbmRpY2F0aW9uIG9mIGEgc3BlYyBiZWluZyB1c2VkIHRvIGRyaXZlIGNvZGUgZ2VuZXJhdGlvbi4gQnV0IGhlcmUsIHdpdGggYHRjcF9tZXRyaWNzYCwgdGhlIGdlbmVyYXRlZCBmaWxlLCBgdGNwX21ldHJpY3MuY2AsIGlzICpoYW5kd3JpdHRlbiogd2hpY2ggaXMgYW4gaW1tZWRpYXRlbHkgc3RyYW5nZSBvYnNlcnZhdGlvbiBhbmQgcmFpc2VzIGNvbmNlcm5zIGFib3V0IHRoZSBjb25zaXN0ZW5jeSBvZiBvdXIgbWV0aG9kb2xvZ3kuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoeSB0aGlzIHNwZWNpZmljYXRpb24gaXNuJiMzOTt0IGJlaW5nIHVzZWQgYXMgdGhlIHNvdXJjZSBvZiB0cnV0aCBpbiB0aGUgY29kZSBnZW5lcmF0aW9uIHByb2Nlc3MuIFBlcmhhcHMgdGhlcmUgYXJlIGNyaXRpY2FsIGRlc2lnbiBkZWNpc2lvbnMgdGhlIHNwZWNpZmljYXRpb24gZG9lc24mIzM5O3QgZnVsbHkgY2FwdHVyZSwgb3IgbWF5YmUgdGhlcmUmIzM5O3MgYSBkaXNjb25uZWN0IGluIG91ciB0b29scy4gUmVnYXJkbGVzcywgdGhlIGRpdmVyZ2VuY2UgZnJvbSB0aGUgZXN0YWJsaXNoZWQgcGF0dGVybiB3YXJyYW50cyBmdXJ0aGVyIGludmVzdGlnYXRpb24sIHN0YXJ0aW5nIGJ5IGRpZ2dpbmcgaW50byB0aGUgZmlsZSBpdHNlbGYuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEzIDAxOjExPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL3RjcF9tZXRyaWNzLnlhbWwmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDUwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiAoKEdQTC0yLjAgV0lUSCBMaW51eC1zeXNjYWxsLW5vdGUpIE9SIEJTRC0zLUNsYXVzZSlcbiAgIDI6XHQtLS1cbiAgIDM6XHRuYW1lOiB0Y3BfbWV0cmljc1xuICAgNDpcdFxuICAgNTpcdHByb3RvY29sOiBnZW5ldGxpbmstbGVnYWN5XG4gICA2Olx0XG4gICA3Olx0ZG9jOiB8XG4gICA4Olx0ICBNYW5hZ2VtZW50IGludGVyZmFjZSBmb3IgVENQIG1ldHJpY3MuXG4gICA5Olx0XG4gIDEwOlx0Yy1mYW1pbHktbmFtZTogdGNwLW1ldHJpY3MtZ2VubC1uYW1lXG4gIDExOlx0Yy12ZXJzaW9uLW5hbWU6IHRjcC1tZXRyaWNzLWdlbmwtdmVyc2lvblxuICAxMjpcdG1heC1ieS1kZWZpbmU6IHRydWVcbiAgMTM6XHRrZXJuZWwtcG9saWN5OiBnbG9iYWxcbiAgMTQ6XHRcbiAgMTU6XHRkZWZpbml0aW9uczpcbiAgMTY6XHQgIC1cbiAgMTc6XHQgICAgbmFtZTogdGNwLWZhc3RvcGVuLWNvb2tpZS1tYXhcbiAgMTg6XHQgICAgdHlwZTogY29uc3RcbiAgMTk6XHQgICAgdmFsdWU6IDE2XG4gIDIwOlx0XG4gIDIxOlx0YXR0cmlidXRlLXNldHM6XG4gIDIyOlx0ICAtXG4gIDIzOlx0ICAgIG5hbWU6IHRjcC1tZXRyaWNzXG4gIDI0Olx0ICAgIG5hbWUtcHJlZml4OiB0Y3AtbWV0cmljcy1hdHRyLVxuICAyNTpcdCAgICBhdHRyaWJ1dGVzOlxuICAyNjpcdCAgICAgIC1cbiAgMjc6XHQgICAgICAgIG5hbWU6IGFkZHItaXB2NFxuICAyODpcdCAgICAgICAgdHlwZTogdTMyXG4gIDI5Olx0ICAgICAgICBieXRlLW9yZGVyOiBiaWctZW5kaWFuXG4gIDMwOlx0ICAgICAgICBkaXNwbGF5LWhpbnQ6IGlwdjRcbiAgMzE6XHQgICAgICAtXG4gIDMyOlx0ICAgICAgICBuYW1lOiBhZGRyLWlwdjZcbiAgMzM6XHQgICAgICAgIHR5cGU6IGJpbmFyeVxuICAzNDpcdCAgICAgICAgY2hlY2tzOlxuICAzNTpcdCAgICAgICAgICBleGFjdC1sZW46IDE2XG4gIDM2Olx0ICAgICAgICBieXRlLW9yZGVyOiBiaWctZW5kaWFuXG4gIDM3Olx0ICAgICAgICBkaXNwbGF5LWhpbnQ6IGlwdjZcbiAgMzg6XHQgICAgICAtXG4gIDM5Olx0ICAgICAgICBuYW1lOiBhZ2VcbiAgNDA6XHQgICAgICAgIHR5cGU6IHU2NFxuICA0MTpcdCAgICAgIC1cbiAgNDI6XHQgICAgICAgIG5hbWU6IHR3LXRzdmFsXG4gIDQzOlx0ICAgICAgICB0eXBlOiB1MzJcbiAgNDQ6XHQgICAgICAgIGRvYzogdW51c2VkXG4gIDQ1Olx0ICAgICAgLVxuICA0NjpcdCAgICAgICAgbmFtZTogdHctdHMtc3RhbXBcbiAgNDc6XHQgICAgICAgIHR5cGU6IHMzMlxuICA0ODpcdCAgICAgICAgZG9jOiB1bnVzZWRcbiAgNDk6XHQgICAgICAtXG4gIDUwOlx0ICAgICAgICBuYW1lOiB2YWxzXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEzIDAxOjExPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy44LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIxOTM0CgkJCQkJCQlvdXRwdXQ6IDM5CgkJCQkJCQl0aG91Z2h0czogMjgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSBsaW5lcyBmcm9tIHRoZSBkb2N1bWVudGF0aW9uLCBhcyBpZiB0aGV5JiMzOTtyZSBteSBvd24gaW1tZWRpYXRlIHRob3VnaHRzOgoKKipBbmFseXppbmcgVENQIE1ldHJpY3MgRG9jdW1lbnRhdGlvbioqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRob3NlIGxpbmVzIOKAkyBzcGVjaWZpY2FsbHksIDUwIHRocm91Z2ggMTMwIG9mIGBEb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvdGNwX21ldHJpY3MueWFtbGAuIEkgbmVlZCB0byByZWZyZXNoIG15IG1lbW9yeSBvbiB0aGUgc3BlY2lmaWMgc3RydWN0dXJlIGJlaW5nIGRlZmluZWQgaGVyZS4gSSByZW1lbWJlciB3b3JraW5nIHdpdGggbmV0bGluayBiZWZvcmUsIHNvIEkgaGF2ZSBhIGJhc2ljIHVuZGVyc3RhbmRpbmcgb2YgdGhlIHByb3RvY29sIGl0c2VsZiwgYnV0IHRoZSBkZXRhaWxzIG9mICp0aGlzKiBzcGVjaWZpYyBzcGVjaWZpY2F0aW9uIGFsd2F5cyByZXF1aXJlIGEgY2xvc2UgcmVhZC4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIHVuZGVyc3RhbmQgaG93IHRoZXNlIFRDUCBtZXRyaWNzIGFyZSBiZWluZyBkZWZpbmVkIHdpdGhpbiB0aGUgbmV0bGluayBmcmFtZXdvcmsuIEFyZSB3ZSB0YWxraW5nIGFib3V0IGF0dHJpYnV0ZXMsIG5lc3RlZCBzdHJ1Y3R1cmVzLCBkYXRhIHR5cGVzLCB0aGUgd29ya3M/IEkgbmVlZCB0byBxdWlja2x5IHJlY2FsbCB0aGUgdHlwaWNhbCBuZXRsaW5rIGF0dHJpYnV0ZSB0eXBlcyB0byBtYXAgdGhlbSBvbnRvIHRoZSBZQU1MIGRlZmluaXRpb25zLiBJIGV4cGVjdCBzb21lIGVudW1zIHRvIGRlZmluZSBzcGVjaWZpYyBtZXRyaWMgaWRlbnRpZmllcnMuIEkgYWxzbyBob3BlIHRvIHNlZSBjbGVhciBleHBsYW5hdGlvbnMgZm9yIGhvdyB2YXJpb3VzIGZsYWdzIG1pZ2h0IGJlIHNldCBvciBpbnRlcnByZXRlZC4gQW55IGV4YW1wbGVzIGluY2x1ZGVkIGhlcmUgd291bGQgYmUgaW5jcmVkaWJseSB1c2VmdWwuIFVsdGltYXRlbHksIG15IGdvYWwgaXMgdG8gc29saWRpZnkgbXkgdW5kZXJzdGFuZGluZyBvZiB0aGUgaW50ZXJmYWNlLCBlbnN1cmluZyBJIGNhbiBpbnRlcnByZXQgYW5kIHVzZSB0aGUgZGF0YSB0aGlzIHNwZWNpZmljYXRpb24gb3V0bGluZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEzIDAxOjExPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL3RjcF9tZXRyaWNzLnlhbWwmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiA1MSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA4MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgIDUxOlx0ICAgICAgICB0eXBlOiBuZXN0XG4gIDUyOlx0ICAgICAgICBuZXN0ZWQtYXR0cmlidXRlczogbWV0cmljc1xuICA1MzpcdCAgICAgIC1cbiAgNTQ6XHQgICAgICAgIG5hbWU6IGZvcGVuLW1zc1xuICA1NTpcdCAgICAgICAgdHlwZTogdTE2XG4gIDU2Olx0ICAgICAgLVxuICA1NzpcdCAgICAgICAgbmFtZTogZm9wZW4tc3luLWRyb3BzXG4gIDU4Olx0ICAgICAgICB0eXBlOiB1MTZcbiAgNTk6XHQgICAgICAtXG4gIDYwOlx0ICAgICAgICBuYW1lOiBmb3Blbi1zeW4tZHJvcC10c1xuICA2MTpcdCAgICAgICAgdHlwZTogdTY0XG4gIDYyOlx0ICAgICAgLVxuICA2MzpcdCAgICAgICAgbmFtZTogZm9wZW4tY29va2llXG4gIDY0Olx0ICAgICAgICB0eXBlOiBiaW5hcnlcbiAgNjU6XHQgICAgICAgIGNoZWNrczpcbiAgNjY6XHQgICAgICAgICAgbWF4LWxlbjogdGNwLWZhc3RvcGVuLWNvb2tpZS1tYXhcbiAgNjc6XHQgICAgICAtXG4gIDY4Olx0ICAgICAgICBuYW1lOiBzYWRkci1pcHY0XG4gIDY5Olx0ICAgICAgICB0eXBlOiB1MzJcbiAgNzA6XHQgICAgICAgIGJ5dGUtb3JkZXI6IGJpZy1lbmRpYW5cbiAgNzE6XHQgICAgICAgIGRpc3BsYXktaGludDogaXB2NFxuICA3MjpcdCAgICAgIC1cbiAgNzM6XHQgICAgICAgIG5hbWU6IHNhZGRyLWlwdjZcbiAgNzQ6XHQgICAgICAgIHR5cGU6IGJpbmFyeVxuICA3NTpcdCAgICAgICAgY2hlY2tzOlxuICA3NjpcdCAgICAgICAgICBleGFjdC1sZW46IDE2XG4gIDc3Olx0ICAgICAgICBieXRlLW9yZGVyOiBiaWctZW5kaWFuXG4gIDc4Olx0ICAgICAgICBkaXNwbGF5LWhpbnQ6IGlwdjZcbiAgNzk6XHQgICAgICAtXG4gIDgwOlx0ICAgICAgICBuYW1lOiBwYWRcbiAgODE6XHQgICAgICAgIHR5cGU6IHBhZFxuICA4MjpcdFxuICA4MzpcdCAgLVxuICA4NDpcdCAgICBuYW1lOiBtZXRyaWNzXG4gIDg1Olx0ICAgICMgSW50ZW50aW9uYWxseSBkb24mIzM5O3QgZGVmaW5lIHRoZSBuYW1lLXByZWZpeCwgc2VlIGJlbG93LlxuICA4NjpcdCAgICBkb2M6IHxcbiAgODc6XHQgICAgICBBdHRyaWJ1dGVzIHdpdGggbWV0cmljcy4gTm90ZSB0aGF0IHRoZSB2YWx1ZXMgaGVyZSBkbyBub3QgbWF0Y2hcbiAgODg6XHQgICAgICB0aGUgVENQX01FVFJJQ18qIGRlZmluZXMgaW4gdGhlIGtlcm5lbCwgYmVjYXVzZSBrZXJuZWwgZGVmaW5lc1xuICA4OTpcdCAgICAgIGFyZSBvZmYtYnkgb25lIChlLmcuIHJ0dCBpcyBkZWZpbmVkIGFzIGVudW0gMCwgd2hpbGUgbmV0bGluayBjYXJyaWVzXG4gIDkwOlx0ICAgICAgYXR0cmlidXRlIHR5cGUgMSkuXG4gIDkxOlx0ICAgIGF0dHJpYnV0ZXM6XG4gIDkyOlx0ICAgICAgLVxuICA5MzpcdCAgICAgICAgbmFtZTogcnR0XG4gIDk0Olx0ICAgICAgICB0eXBlOiB1MzJcbiAgOTU6XHQgICAgICAgIGRvYzogfFxuICA5NjpcdCAgICAgICAgICBSb3VuZCBUcmlwIFRpbWUgKFJUVCksIGluIG1zZWNzIHdpdGggMyBiaXRzIGZyYWN0aW9uYWwuXG4gIDk3Olx0ICAgICAgLVxuICA5ODpcdCAgICAgICAgbmFtZTogcnR0dmFyXG4gIDk5Olx0ICAgICAgICB0eXBlOiB1MzJcbiAxMDA6XHQgICAgICAgIGRvYzogfFxuIDEwMTpcdCAgICAgICAgICBSb3VuZCBUcmlwIFRpbWUgVkFSaWFuY2UgKFJUVFZBUiksIGluIG1zZWNzIHdpdGggMiBiaXRzIGZyYWN0aW9uYWwuXG4gMTAyOlx0ICAgICAgLVxuIDEwMzpcdCAgICAgICAgbmFtZTogc3N0aHJlc2hcbiAxMDQ6XHQgICAgICAgIHR5cGU6IHUzMlxuIDEwNTpcdCAgICAgICAgZG9jOiBTbG93IFN0YXJ0IFRIUkVTSG9sZC5cbiAxMDY6XHQgICAgICAtXG4gMTA3Olx0ICAgICAgICBuYW1lOiBjd25kXG4gMTA4Olx0ICAgICAgICB0eXBlOiB1MzJcbiAxMDk6XHQgICAgICAgIGRvYzogQ29uZ2VzdGlvbiBXaW5kb3cuXG4gMTEwOlx0ICAgICAgLVxuIDExMTpcdCAgICAgICAgbmFtZTogcmVvZGVyaW5nXG4gMTEyOlx0ICAgICAgICB0eXBlOiB1MzJcbiAxMTM6XHQgICAgICAgIGRvYzogUmVvZGVyaW5nIG1ldHJpYy5cbiAxMTQ6XHQgICAgICAtXG4gMTE1Olx0ICAgICAgICBuYW1lOiBydHQtdXNcbiAxMTY6XHQgICAgICAgIHR5cGU6IHUzMlxuIDExNzpcdCAgICAgICAgZG9jOiB8XG4gMTE4Olx0ICAgICAgICAgIFJvdW5kIFRyaXAgVGltZSAoUlRUKSwgaW4gdXNlY3MsIHdpdGggMyBiaXRzIGZyYWN0aW9uYWwuXG4gMTE5Olx0ICAgICAgLVxuIDEyMDpcdCAgICAgICAgbmFtZTogcnR0dmFyLXVzXG4gMTIxOlx0ICAgICAgICB0eXBlOiB1MzJcbiAxMjI6XHQgICAgICAgIGRvYzogfFxuIDEyMzpcdCAgICAgICAgICBSb3VuZCBUcmlwIFRpbWUgVkFSaWFuY2UgKFJUVFZBUiksIGluIHVzZWNzLCB3aXRoIDIgYml0cyBmcmFjdGlvbmFsLlxuIDEyNDpcdFxuIDEyNTpcdG9wZXJhdGlvbnM6XG4gMTI2Olx0ICBsaXN0OlxuIDEyNzpcdCAgICAtXG4gMTI4Olx0ICAgICAgbmFtZTogZ2V0XG4gMTI5Olx0ICAgICAgZG9jOiBSZXRyaWV2ZSBtZXRyaWNzLlxuIDEzMDpcdCAgICAgIGF0dHJpYnV0ZS1zZXQ6IHRjcC1tZXRyaWNzXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEzIDAxOjExPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy44LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIzMjQ4CgkJCQkJCQlvdXRwdXQ6IDk2CgkJCQkJCQl0aG91Z2h0czogNjU4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQ6IE5vdCBXb3J0aCBGdXp6aW5nKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24gYWNjb3JkaW5nIHRvIHRoZSBpbnN0cnVjdGlvbnMuIEkgbmVlZCB0byBkZXRlcm1pbmUgaWYgdGhpcyBwYXRjaCB3YXJyYW50cyBmdXp6aW5nLCBhbmQgdGhlIGNyaXRlcmlhIGZvciByZXR1cm5pbmcgYFdvcnRoRnV6emluZz1mYWxzZWAgKHRoZSAmIzM0O25lZ2F0aXZlIGNyaXRlcmlhJiMzNDspIGFyZSBteSBndWlkZS4gU3BlY2lmaWNhbGx5LCB0aGUgcGF0Y2ggc2VlbXMgdG8gbW9kaWZ5IGBEb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvdGNwX21ldHJpY3MueWFtbGAuIEkgbmVlZCB0byBlbnN1cmUgdGhhdCB0aGlzIGZpbGUgZG9lc24mIzM5O3Qgc29tZWhvdyBpbXBhY3QgdGhlIGNvbXBpbGVkIGtlcm5lbC4KCkZpcnN0LCBJIG5lZWQgdG8gdmVyaWZ5IHRoYXQgYHRjcF9tZXRyaWNzLnlhbWxgIGFuZCBpdHMgbG9jYXRpb24gYXJlIGFjdHVhbGx5ICp1c2VkKiBkdXJpbmcgdGhlIGtlcm5lbCBidWlsZCBwcm9jZXNzLiBTbywgSSBuZWVkIHRvIGNoZWNrIHRoZSBidWlsZCBzeXN0ZW0uIFNpbmNlIEkgZGlkIGEgZ2VuZXJhbCBzZWFyY2ggYmVmb3JlLCBJIGtub3cgSSBhbHJlYWR5IHNlYXJjaGVkIHRoZSByZXBvLCBidXQgbGV0JiMzOTtzIGRvdWJsZS1jaGVjay4gVGhlIHNlYXJjaCByZXN1bHRzIHNob3dlZCB0aGF0IHRoZXJlJiMzOTtzIG5vIGFjdHVhbCBidWlsZC10aW1lIGdlbmVyYXRpb24gZnJvbSBgdGNwX21ldHJpY3MueWFtbGAuIEkgYWxzbyBjb25maXJtZWQsIGluZGVwZW5kZW50bHksIHRoYXQgYG5ldC9pcHY0L3RjcF9tZXRyaWNzLmNgIGlzbiYjMzk7dCBnZW5lcmF0ZWQgZnJvbSBhIFlBTUwgZmlsZS4gSXQgaGFzIGhhbmR3cml0dGVuIG9wZXJhdGlvbnMgYW5kIHBvbGljaWVzLgoKVGhlIHJlc3VsdHMgcG9pbnQgdG8gYHRjcF9tZXRyaWNzLnlhbWxgIGJlaW5nIHB1cmVseSBhIGRvY3VtZW50YXRpb24gZmlsZSwgbGl2aW5nIHVuZGVyIGBEb2N1bWVudGF0aW9uL2AuIEl0JiMzOTtzIGEgWUFNTCBzcGVjaWZpY2F0aW9uLCBhbmQgZnJvbSB0aGUgZXhpc3RpbmcgY29kZWJhc2UsIGl0IGRvZXNuJiMzOTt0IGZlZWQgaW50byBhbnkgY29tcGlsZWQgY29kZS4KClRoZXJlZm9yZSwgYmVjYXVzZSB0aGlzIHBhdGNoICpvbmx5KiBtb2RpZmllcyB0aGUgZG9jdW1lbnRhdGlvbiBmaWxlLCBpdCBkaXJlY3RseSBmYWxscyB1bmRlciB0aGUgbmVnYXRpdmUgY3JpdGVyaWE6ICYjMzQ7TW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgY29tbWVudHMsIG9yIHNwZWxsaW5nIGZpeGVzLCYjMzQ7IGFuZCAmIzM0O05vbi1rZXJuZWwgYW5kIG5vbi1leGVjdXRhYmxlIGNoYW5nZXMmIzM0Oy4gVGhlIHBhdGNoIGhhcyBubyBpbXBhY3Qgb24gdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAoYHZtbGludXhgKSBvciBhbnkga2VybmVsIG1vZHVsZXMuCgpUaHVzLCBteSBjb25jbHVzaW9uIGlzIGBXb3J0aEZ1enppbmcgPSBmYWxzZWAuIEkgYWxzbyBoYXZlIGBFbmFibGVDb25maWdzID0gW11gIGFuZCBgRm9jdXNTeW1ib2xzID0gW11gLiBJJiMzOTtsbCBhbHNvIGluY2x1ZGUgYSBjb25jaXNlIGV4cGxhbmF0aW9uIHRoYXQgdGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgdGhlIGRvY3VtZW50YXRpb24gZmlsZSB3aGljaCBkb2VzbiYjMzk7dCBhZmZlY3QgZXhlY3V0YWJsZSBrZXJuZWwgY29kZSBvciB0aGUga2VybmVsIGltYWdlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMyAwMToxMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL3RjcF9tZXRyaWNzLnlhbWwsIHdoaWNoIGlzIGEgbmV0bGluayBzcGVjaWZpY2F0aW9uIGZpbGUgdW5kZXIgRG9jdW1lbnRhdGlvbi8uIEl0IGRvZXMgbm90IG1vZGlmeSBhbnkgQyBzb3VyY2UgY29kZSBvciBhZmZlY3QgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAodm1saW51eCkgb3Iga2VybmVsIG1vZHVsZXMuIFRoZXJlZm9yZSwgaXQgaXMgbm9uLWV4ZWN1dGFibGUgZG9jdW1lbnRhdGlvbiBhbmQgZG9lcyBub3Qgd2FycmFudCBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBEb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvdGNwX21ldHJpY3MueWFtbCwgd2hpY2ggaXMgYSBuZXRsaW5rIHNwZWNpZmljYXRpb24gZmlsZSB1bmRlciBEb2N1bWVudGF0aW9uLy4gSXQgZG9lcyBub3QgbW9kaWZ5IGFueSBDIHNvdXJjZSBjb2RlIG9yIGFmZmVjdCB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlICh2bWxpbnV4KSBvciBrZXJuZWwgbW9kdWxlcy4gVGhlcmVmb3JlLCBpdCBpcyBub24tZXhlY3V0YWJsZSBkb2N1bWVudGF0aW9uIGFuZCBkb2VzIG5vdCB3YXJyYW50IGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMyAwMToxMTwvdGQ+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+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDktMTNUMDE6MTA6NDQuNjM3NjEyMzVaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MjIzOTYyNzY3NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2UsXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL3RjcF9tZXRyaWNzLnlhbWwsIHdoaWNoIGlzIGEgbmV0bGluayBzcGVjaWZpY2F0aW9uIGZpbGUgdW5kZXIgRG9jdW1lbnRhdGlvbi8uIEl0IGRvZXMgbm90IG1vZGlmeSBhbnkgQyBzb3VyY2UgY29kZSBvciBhZmZlY3QgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAodm1saW51eCkgb3Iga2VybmVsIG1vZHVsZXMuIFRoZXJlZm9yZSwgaXQgaXMgbm9uLWV4ZWN1dGFibGUgZG9jdW1lbnRhdGlvbiBhbmQgZG9lcyBub3Qgd2FycmFudCBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTNUMDE6MTA6NDQuNjM3NjE4NThaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ4MTUxMTYyMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDJkMTZjN2Y0YzhlNTgxOTdlMTA2MWI3MzdlMjc2OWVkZmMyOWUwODFcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFN1biBTZXAgMTMgMDE6MTA6NDMgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL3RjcF9tZXRyaWNzLnlhbWwgYi9Eb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvdGNwX21ldHJpY3MueWFtbFxcbmluZGV4IDEzMTQ0YWVlZDMxYTUuLjc3OWU4YTIyYjc2NWUgMTAwNjQ0XFxuLS0tIGEvRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL3RjcF9tZXRyaWNzLnlhbWxcXG4rKysgYi9Eb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvdGNwX21ldHJpY3MueWFtbFxcbkBAIC0zMiw3ICszMiw3IEBAIGF0dHJpYnV0ZS1zZXRzOlxcbiAgICAgICAgIG5hbWU6IGFkZHItaXB2NlxcbiAgICAgICAgIHR5cGU6IGJpbmFyeVxcbiAgICAgICAgIGNoZWNrczpcXG4tICAgICAgICAgIG1pbi1sZW46IDE2XFxuKyAgICAgICAgICBleGFjdC1sZW46IDE2XFxuICAgICAgICAgYnl0ZS1vcmRlcjogYmlnLWVuZGlhblxcbiAgICAgICAgIGRpc3BsYXktaGludDogaXB2NlxcbiAgICAgICAtXFxuQEAgLTYzLDcgKzYzLDcgQEAgYXR0cmlidXRlLXNldHM6XFxuICAgICAgICAgbmFtZTogZm9wZW4tY29va2llXFxuICAgICAgICAgdHlwZTogYmluYXJ5XFxuICAgICAgICAgY2hlY2tzOlxcbi0gICAgICAgICAgbWluLWxlbjogdGNwLWZhc3RvcGVuLWNvb2tpZS1tYXhcXG4rICAgICAgICAgIG1heC1sZW46IHRjcC1mYXN0b3Blbi1jb29raWUtbWF4XFxuICAgICAgIC1cXG4gICAgICAgICBuYW1lOiBzYWRkci1pcHY0XFxuICAgICAgICAgdHlwZTogdTMyXFxuQEAgLTczLDcgKzczLDcgQEAgYXR0cmlidXRlLXNldHM6XFxuICAgICAgICAgbmFtZTogc2FkZHItaXB2NlxcbiAgICAgICAgIHR5cGU6IGJpbmFyeVxcbiAgICAgICAgIGNoZWNrczpcXG4tICAgICAgICAgIG1pbi1sZW46IDE2XFxuKyAgICAgICAgICBleGFjdC1sZW46IDE2XFxuICAgICAgICAgYnl0ZS1vcmRlcjogYmlnLWVuZGlhblxcbiAgICAgICAgIGRpc3BsYXktaGludDogaXB2NlxcbiAgICAgICAtXFxuQEAgLTkzLDE0ICs5MywxMiBAQCBhdHRyaWJ1dGUtc2V0czpcXG4gICAgICAgICBuYW1lOiBydHRcXG4gICAgICAgICB0eXBlOiB1MzJcXG4gICAgICAgICBkb2M6IHxcXG4tICAgICAgICAgIFJvdW5kIFRyaXAgVGltZSAoUlRUKSwgaW4gbXNlY3Mgd2l0aCAzIGJpdHMgZnJhY3Rpb25hbFxcbi0gICAgICAgICAgKGxlZnQtc2hpZnQgYnkgMyB0byBnZXQgdGhlIG1zZWMgdmFsdWUpLlxcbisgICAgICAgICAgUm91bmQgVHJpcCBUaW1lIChSVFQpLCBpbiBtc2VjcyB3aXRoIDMgYml0cyBmcmFjdGlvbmFsLlxcbiAgICAgICAtXFxuICAgICAgICAgbmFtZTogcnR0dmFyXFxuICAgICAgICAgdHlwZTogdTMyXFxuICAgICAgICAgZG9jOiB8XFxuLSAgICAgICAgICBSb3VuZCBUcmlwIFRpbWUgVkFSaWFuY2UgKFJUVCksIGluIG1zZWNzIHdpdGggMiBiaXRzIGZyYWN0aW9uYWxcXG4tICAgICAgICAgIChsZWZ0LXNoaWZ0IGJ5IDIgdG8gZ2V0IHRoZSBtc2VjIHZhbHVlKS5cXG4rICAgICAgICAgIFJvdW5kIFRyaXAgVGltZSBWQVJpYW5jZSAoUlRUVkFSKSwgaW4gbXNlY3Mgd2l0aCAyIGJpdHMgZnJhY3Rpb25hbC5cXG4gICAgICAgLVxcbiAgICAgICAgIG5hbWU6IHNzdGhyZXNoXFxuICAgICAgICAgdHlwZTogdTMyXFxuQEAgLTExNywxNCArMTE1LDEyIEBAIGF0dHJpYnV0ZS1zZXRzOlxcbiAgICAgICAgIG5hbWU6IHJ0dC11c1xcbiAgICAgICAgIHR5cGU6IHUzMlxcbiAgICAgICAgIGRvYzogfFxcbi0gICAgICAgICAgUm91bmQgVHJpcCBUaW1lIChSVFQpLCBpbiB1c2Vjcywgd2l0aCAzIGJpdHMgZnJhY3Rpb25hbFxcbi0gICAgICAgICAgKGxlZnQtc2hpZnQgYnkgMyB0byBnZXQgdGhlIG1zZWMgdmFsdWUpLlxcbisgICAgICAgICAgUm91bmQgVHJpcCBUaW1lIChSVFQpLCBpbiB1c2Vjcywgd2l0aCAzIGJpdHMgZnJhY3Rpb25hbC5cXG4gICAgICAgLVxcbiAgICAgICAgIG5hbWU6IHJ0dHZhci11c1xcbiAgICAgICAgIHR5cGU6IHUzMlxcbiAgICAgICAgIGRvYzogfFxcbi0gICAgICAgICAgUm91bmQgVHJpcCBUaW1lIChSVFQpLCBpbiB1c2Vjcywgd2l0aCAyIGJpdHMgZnJhY3Rpb25hbFxcbi0gICAgICAgICAgKGxlZnQtc2hpZnQgYnkgMyB0byBnZXQgdGhlIG1zZWMgdmFsdWUpLlxcbisgICAgICAgICAgUm91bmQgVHJpcCBUaW1lIFZBUmlhbmNlIChSVFRWQVIpLCBpbiB1c2Vjcywgd2l0aCAyIGJpdHMgZnJhY3Rpb25hbC5cXG4gXFxuIG9wZXJhdGlvbnM6XFxuICAgbGlzdDpcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTNUMDE6MTA6NDUuMTE5NzE5NjkyWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiY29yZSIsIkR1cmF0aW9uIjo0MTc1NzUwODE0MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBEb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvdGNwX21ldHJpY3MueWFtbCwgd2hpY2ggaXMgYSBuZXRsaW5rIHNwZWNpZmljYXRpb24gZmlsZSB1bmRlciBEb2N1bWVudGF0aW9uLy4gSXQgZG9lcyBub3QgbW9kaWZ5IGFueSBDIHNvdXJjZSBjb2RlIG9yIGFmZmVjdCB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlICh2bWxpbnV4KSBvciBrZXJuZWwgbW9kdWxlcy4gVGhlcmVmb3JlLCBpdCBpcyBub24tZXhlY3V0YWJsZSBkb2N1bWVudGF0aW9uIGFuZCBkb2VzIG5vdCB3YXJyYW50IGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lciBhbmQgc2VjdXJpdHkgZW5naW5lZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGV2YWx1YXRlIHdoZXRoZXIgaXQgd2FycmFudHMgZnV6emluZyB3aXRoIHN5emthbGxlci5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24gaW50ZXJuYWwgYXNzdW1wdGlvbnMuIFlvdSBtdXN0IGFjdGl2ZWx5IHVzZSB5b3VyIGNvZGUgYWNjZXNzXG50b29scyB0byBpbnNwZWN0IHRoZSBhY3R1YWwgc291cmNlIGNvZGUsIGNhbGxlcnMsIGFuZCBzdXJyb3VuZGluZyBjb250ZXh0LlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuMS4gQ09SRSBUUklBR0UgUEhJTE9TT1BIWVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblRoZSBnb2FsIG9mIHBhdGNoIGZ1enppbmcgaXMgdG8gZGlzY292ZXIgY3Jhc2hlcywgcmVncmVzc2lvbnMsIGV4cG9zZWQgbGF0ZW50IGJ1Z3MsXG5hbmQgbmV3bHkgdHJpZ2dlcmVkIGFzc2VydGlvbnMgaW50cm9kdWNlZCBieSB0aGUgcGF0Y2ggc2VyaWVzLlxuXG4tIFJFQUNIQUJJTElUWSBJUyBUSEUgUFJJTUFSWSBHQVRFOlxuICBGdXp6aW5nIGNhbiBvbmx5IGRpc2NvdmVyIGJ1Z3MgaW4gY29kZSB0aGF0IGNhbiBhY3R1YWxseSBleGVjdXRlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkXG4gIGVudmlyb25tZW50cyAoR0NFIG9yIFFFTVUsIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBkZXZpY2VzIGxpa2UgVVNCIGdhZGdldHMsIG5ldGRldiwgdHVuL3RhcCkuXG4gIElmIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSAoc2VlIFNlY3Rpb24gMiksIGl0IE1VU1QgTk9UIGJlIGZ1enplZCxcbiAgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0IGFkZHMgYXNzZXJ0aW9ucyBvciBjb21wbGV4IGxvZ2ljLlxuXG4tIERPIE5PVCBCTElORExZIFRSVVNUIFwiTk8gRlVOQ1RJT05BTCBDSEFOR0VcIiAoTkZDSSkgT1IgXCJSRUZBQ1RPUklOR1wiIENMQUlNUzpcbiAgUGF0Y2ggYXV0aG9ycyByb3V0aW5lbHkgbGFiZWwgY2hhbmdlcyBhcyBcImNsZWFudXBzXCIsIFwicmVmYWN0b3JpbmdzXCIsIG9yIHN0YXRlXG4gIFwiTm8gZnVuY3Rpb25hbCBjaGFuZ2UgaW50ZW5kZWRcIi4gRG8gTk9UIHRha2UgdGhlc2UgY2xhaW1zIGF0IGZhY2UgdmFsdWUuXG4gIENvZGUgcmVmYWN0b3JpbmdzIHRoYXQgcmVhcnJhbmdlIGxvZ2ljLCBpbnRyb2R1Y2UgaGVscGVyIGZ1bmN0aW9ucywgb3IgYWx0ZXIgc3RhdGUgbWFuYWdlbWVudFxuICBpbiBjb3JlIHN1YnN5c3RlbXMgZnJlcXVlbnRseSBpbnRyb2R1Y2Ugc3VidGxlIHNlbWFudGljIHNoaWZ0cyBvciB1bmNvdmVyIGxhdGVudCBrZXJuZWwgYnVncy5cbiAgSWYgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSBpcyBtb2RpZmllZCBvciByZWZhY3RvcmVkLCBpdCBNVVNUIGJlIGZ1enplZC5cblxuLSBORVcgT1IgTU9ESUZJRUQgQVNTRVJUSU9OUyBJTiBSRUFDSEFCTEUgQ09ERSBNVVNUIEJFIEZVWlpFRDpcbiAgV2hlbiBhIHBhdGNoIGludHJvZHVjZXMgb3IgbW9kaWZpZXMgcnVudGltZSBjaGVja3Mgb3IgYXNzZXJ0aW9ucyAoZS5nLiwgV0FSTl9PTiosIFZNX1dBUk5fT04qLFxuICBCVUdfT04qLCBsb2NrZGVwX2Fzc2VydCopIGluIHJlYWNoYWJsZSBjb2RlIHBhdGhzLCBpdCBlbmZvcmNlcyBuZXcgb3Igc3RyaWN0ZXIgaW52YXJpYW50cy5cbiAgRXZlbiBpZiB0aGUgYXV0aG9yIGJlbGlldmVzIHRoZSBpbnZhcmlhbnQgYWx3YXlzIGhvbGRzLCBmdXp6aW5nIGlzIGVzc2VudGlhbCB0byB2ZXJpZnkgd2hldGhlclxuICBhbiB1bnVzdWFsIHNlcXVlbmNlIG9mIG9wZXJhdGlvbnMgY2FuIHZpb2xhdGUgaXQuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4yLiBXSEVOIFRPIFJFVFVSTiBXb3J0aEZ1enppbmc9ZmFsc2UgKE5FR0FUSVZFIENSSVRFUklBKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgT05MWSBJRiBhbGwgbW9kaWZpZWQgY29kZSBmYWxscyBzdHJpY3RseSBpbnRvIG9uZSBvciBtb3JlIG9mIHRoZXNlIGNhdGVnb3JpZXM6XG5cbi0gTm9uLWtlcm5lbCBhbmQgbm9uLWV4ZWN1dGFibGUgY2hhbmdlczpcbiAgKiBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBjb21tZW50cywgb3Igc3BlbGxpbmcgZml4ZXMuXG4gICogVXNlci1zcGFjZSBkaXJlY3Rvcmllcywgc2VsZi10ZXN0cywgc2FtcGxlcywgb3Igc2NyaXB0cyAoZS5nLiwgdG9vbHMvLCBzYW1wbGVzLywgc2NyaXB0cy8sIHVzci8pXG4gICAgdGhhdCBkbyBub3QgYWZmZWN0IHRoZSBjb21waWxlZCBrZXJuZWwgaW1hZ2UgKHZtbGludXgpIG9yIGtlcm5lbCBtb2R1bGVzLlxuICAqIFB1cmVseSBkZWNvcmF0aXZlIGxvZ2dpbmcgKGUuZy4sIG1lc3NhZ2Ugc3RyaW5ncyBpbiBwcl9lcnIsIHByaW50aywgZGV2X2luZm8pIG9yIHRyYWNlcG9pbnRzXG4gICAgdGhhdCBkbyBub3QgYWx0ZXIgY29udHJvbCBmbG93IG9yIGRhdGEgc3RydWN0dXJlcy5cbiAgKiBCdWlsZCBzeXN0ZW0gb3IgS2NvbmZpZyBjaGFuZ2VzIHRoYXQgZG8gbm90IGFsdGVyIGNvbXBpbGVkIEMgbG9naWMuXG4tIFN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZTpcbiAgKiBWZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2hlcywgU21hcnROSUNzLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gICAgaW9uaWMsIGFtZGdwdSkgcmVxdWlyaW5nIHBoeXNpY2FsIEFTSUMvUENJZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gVW5yZWFjaGFibGUgZXhlY3V0aW9uIHBhdGhzOlxuICAqIERyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKC5yZW1vdmUsIC5zaHV0ZG93biwgcGNpX3VucmVnaXN0ZXJfZHJpdmVyKSBleGVjdXRlZCBvbmx5IGR1cmluZ1xuICAgIHBoeXNpY2FsIFBDSSBob3QtdW5wbHVnIG9yIG1hbnVhbCBzeXNmcyBkcml2ZXIgdW5iaW5kaW5nLlxuICAqIENvZGUgcGF0aHMgZXhjbHVzaXZlIHRvIGFyY2hpdGVjdHVyZXMgb3RoZXIgdGhhbiB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjMuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz10cnVlIChQT1NJVElWRSBDUklURVJJQSlcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5SZXR1cm4gV29ydGhGdXp6aW5nPXRydWUgd2hlbmV2ZXIgdGhlIHBhdGNoIHRvdWNoZXMgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSwgaW5jbHVkaW5nOlxuLSBDb3JlIFN1YnN5c3RlbXM6XG4gICogQW55IGxvZ2ljIG1vZGlmaWNhdGlvbnMgaW4gbWVtb3J5IG1hbmFnZW1lbnQgKG1tLyksIHN5bmNocm9uaXphdGlvbi9sb2NraW5nIChrZXJuZWwvbG9ja2luZy8pLFxuICAgIEJQRiwgc2NoZWR1bGVyLCBjb3JlIG5ldHdvcmtpbmcsIFZGUywgb3Igc3lzY2FsbCBoYW5kbGluZy5cbi0gUmVmYWN0b3JpbmdzIGFuZCBDb2RlIENsZWFudXBzOlxuICAqIEFueSByZXN0cnVjdHVyaW5nIG9mIHJlYWNoYWJsZSBkYXRhIHN0cnVjdHVyZXMsIGhlbHBlciBhYnN0cmFjdGlvbnMsIG9yIGFsZ29yaXRobSBmbG93cy5cbi0gUnVudGltZSBBc3NlcnRpb25zIGFuZCBEZWZlbnNpdmUgQ2hlY2tzOlxuICAqIEFueSBpbnRyb2R1Y3Rpb24gb3IgYWx0ZXJhdGlvbiBvZiBhc3NlcnRpb25zIChXQVJOX09OKiwgVk1fV0FSTl9PTiosIEJVR19PTiosIGV0Yy4pIGluIHJlYWNoYWJsZSBwYXRocy5cbi0gUmVhY2hhYmxlIERyaXZlcnMgYW5kIFByb3RvY29sczpcbiAgKiBEcml2ZXJzIGFjY2Vzc2libGUgdmlhIHZpcnR1YWwgYnVzZXMgKHZpcnRpbywgVVNCIGdhZGdldCwgbG9vcGJhY2ssIG5ldGxpbmssIGJpbmRlciwgc29ja2V0cywgZXRjLikuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG40LiBFWFRSQUNUSU5HIEZvY3VzU3ltYm9scyAoUFJFVkVOVElORyBESUxVVElPTilcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5XaGVuIFdvcnRoRnV6emluZz10cnVlLCB5b3UgbXVzdCBleHRyYWN0IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgaW50byBGb2N1c1N5bWJvbHMgdG8gZ3VpZGUgdGhlIGZ1enplcjpcblxuLSBBVk9JRCBVQklRVUlUT1VTIExJRkVDWUNMRSBIT1QtUEFUSFM6XG4gIERvIE5PVCBsaXN0IGdlbmVyaWMsIHViaXF1aXRvdXMgZnVuY3Rpb25zIGNhbGxlZCBieSBhbG1vc3QgZXZlcnkgcHJvZ3JhbSBpbiB0aGUgY29ycHVzXG4gIChpbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0bzogZ2VuZXJhbCBtZW1vcnkgYWxsb2NhdG9ycyBhbmQgZGVhbGxvY2F0b3JzLCBwYWdlIGZhdWx0XG4gIGFuZCB0cmFwIGhhbmRsZXJzLCBvciBjb3JlIHN5bmNocm9uaXphdGlvbiBwcmltaXRpdmVzOyB0aGlzIGlzIG5vdCBhbiBleGhhdXN0aXZlIGxpc3QpLlxuICBMaXN0aW5nIHViaXF1aXRvdXMgZnVuY3Rpb25zIGNhdXNlcyB0aGUgZnV6emVyIHRvIGNsYXNzaWZ5IHRob3VzYW5kcyBvZiB1bnJlbGF0ZWQgdGVzdHMgYXMgXCJmb2N1c2VkXCIsXG4gIHdoaWNoIHNldmVyZWx5IGRpbHV0ZXMgZnV6emluZyBlZmZvcnQgYXdheSBmcm9tIHRoZSBhY3R1YWwgY2hhbmdlcy5cblxuLSBUQVJHRVQgU1BFQ0lGSUMgRkVBVFVSRSBMT0dJQyBBTkQgRU5UUllQT0lOVFM6XG4gIExpc3QgZnVuY3Rpb25zIHRoYXQgc3BlY2lmaWNhbGx5IGltcGxlbWVudCB0aGUgbG9naWMgYmVpbmcgYWRkZWQgb3IgYWx0ZXJlZCwgb3IgZGlyZWN0IEFQSSBlbnRyeXBvaW50c1xuICBmb3IgdGhlIHN1YnN5c3RlbSBmZWF0dXJlIHVuZGVyIHJldmlldy5cblxuLSBIQU5ETElORyBTVEFUSUMgSU5MSU5FIEZVTkNUSU9OUyBJTiBIRUFERVJTICguaCk6XG4gIENvbXBpbGVyLWlubGluZWQgc3RhdGljIGZ1bmN0aW9ucyAoc3VjaCBhcyBzdGF0aWMgaW5saW5lcyBpbiBtbS8qLmggb3IgaW5jbHVkZS9saW51eC8qLmgpIGxhY2tcbiAgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcyBpbiB2bWxpbnV4IGFuZCBjYW5ub3QgYmUgdGFyZ2V0ZWQgZGlyZWN0bHkgYnkgc3ltYm9sIGNvdmVyYWdlIGZpbHRlcnMuXG4gIElmIHRoZSBjaGFuZ2VzIGFyZSBwcmltYXJpbHkgaW4gc3RhdGljIGlubGluZSBoZWxwZXJzLCBpZGVudGlmeSBub24tc3RhdGljLCBmZWF0dXJlLXNwZWNpZmljIGNhbGxlclxuICBmdW5jdGlvbnMgaW4gLmMgZmlsZXMgdGhhdCBleGVyY2lzZSB0aGVtIChhdm9pZGluZyB1YmlxdWl0b3VzIGxpZmVjeWNsZSB3cmFwcGVycykuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG41LiBJREVOVElGWUlORyBFbmFibGVDb25maWdzXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSBjb21waWxlIGFuZCByZWFjaCB0aGUgbW9kaWZpZWQgY29kZTpcbi0gSW5zcGVjdCBLY29uZmlnIGZpbGVzIGFuZCAjaWZkZWYgZ3VhcmRzOyBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbi0gQ2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzIG5lZWRlZC5cbi0gU3RyaXAgYW55ICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IlRhcmdldCBhcmNoaXRlY3R1cmU6IGFtZDY0XG5cbkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDJkMTZjN2Y0YzhlNTgxOTdlMTA2MWI3MzdlMjc2OWVkZmMyOWUwODFcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU3VuIFNlcCAxMyAwMToxMDo0MyAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy90Y3BfbWV0cmljcy55YW1sIGIvRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL3RjcF9tZXRyaWNzLnlhbWxcbmluZGV4IDEzMTQ0YWVlZDMxYTUuLjc3OWU4YTIyYjc2NWUgMTAwNjQ0XG4tLS0gYS9Eb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvdGNwX21ldHJpY3MueWFtbFxuKysrIGIvRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL3RjcF9tZXRyaWNzLnlhbWxcbkBAIC0zMiw3ICszMiw3IEBAIGF0dHJpYnV0ZS1zZXRzOlxuICAgICAgICAgbmFtZTogYWRkci1pcHY2XG4gICAgICAgICB0eXBlOiBiaW5hcnlcbiAgICAgICAgIGNoZWNrczpcbi0gICAgICAgICAgbWluLWxlbjogMTZcbisgICAgICAgICAgZXhhY3QtbGVuOiAxNlxuICAgICAgICAgYnl0ZS1vcmRlcjogYmlnLWVuZGlhblxuICAgICAgICAgZGlzcGxheS1oaW50OiBpcHY2XG4gICAgICAgLVxuQEAgLTYzLDcgKzYzLDcgQEAgYXR0cmlidXRlLXNldHM6XG4gICAgICAgICBuYW1lOiBmb3Blbi1jb29raWVcbiAgICAgICAgIHR5cGU6IGJpbmFyeVxuICAgICAgICAgY2hlY2tzOlxuLSAgICAgICAgICBtaW4tbGVuOiB0Y3AtZmFzdG9wZW4tY29va2llLW1heFxuKyAgICAgICAgICBtYXgtbGVuOiB0Y3AtZmFzdG9wZW4tY29va2llLW1heFxuICAgICAgIC1cbiAgICAgICAgIG5hbWU6IHNhZGRyLWlwdjRcbiAgICAgICAgIHR5cGU6IHUzMlxuQEAgLTczLDcgKzczLDcgQEAgYXR0cmlidXRlLXNldHM6XG4gICAgICAgICBuYW1lOiBzYWRkci1pcHY2XG4gICAgICAgICB0eXBlOiBiaW5hcnlcbiAgICAgICAgIGNoZWNrczpcbi0gICAgICAgICAgbWluLWxlbjogMTZcbisgICAgICAgICAgZXhhY3QtbGVuOiAxNlxuICAgICAgICAgYnl0ZS1vcmRlcjogYmlnLWVuZGlhblxuICAgICAgICAgZGlzcGxheS1oaW50OiBpcHY2XG4gICAgICAgLVxuQEAgLTkzLDE0ICs5MywxMiBAQCBhdHRyaWJ1dGUtc2V0czpcbiAgICAgICAgIG5hbWU6IHJ0dFxuICAgICAgICAgdHlwZTogdTMyXG4gICAgICAgICBkb2M6IHxcbi0gICAgICAgICAgUm91bmQgVHJpcCBUaW1lIChSVFQpLCBpbiBtc2VjcyB3aXRoIDMgYml0cyBmcmFjdGlvbmFsXG4tICAgICAgICAgIChsZWZ0LXNoaWZ0IGJ5IDMgdG8gZ2V0IHRoZSBtc2VjIHZhbHVlKS5cbisgICAgICAgICAgUm91bmQgVHJpcCBUaW1lIChSVFQpLCBpbiBtc2VjcyB3aXRoIDMgYml0cyBmcmFjdGlvbmFsLlxuICAgICAgIC1cbiAgICAgICAgIG5hbWU6IHJ0dHZhclxuICAgICAgICAgdHlwZTogdTMyXG4gICAgICAgICBkb2M6IHxcbi0gICAgICAgICAgUm91bmQgVHJpcCBUaW1lIFZBUmlhbmNlIChSVFQpLCBpbiBtc2VjcyB3aXRoIDIgYml0cyBmcmFjdGlvbmFsXG4tICAgICAgICAgIChsZWZ0LXNoaWZ0IGJ5IDIgdG8gZ2V0IHRoZSBtc2VjIHZhbHVlKS5cbisgICAgICAgICAgUm91bmQgVHJpcCBUaW1lIFZBUmlhbmNlIChSVFRWQVIpLCBpbiBtc2VjcyB3aXRoIDIgYml0cyBmcmFjdGlvbmFsLlxuICAgICAgIC1cbiAgICAgICAgIG5hbWU6IHNzdGhyZXNoXG4gICAgICAgICB0eXBlOiB1MzJcbkBAIC0xMTcsMTQgKzExNSwxMiBAQCBhdHRyaWJ1dGUtc2V0czpcbiAgICAgICAgIG5hbWU6IHJ0dC11c1xuICAgICAgICAgdHlwZTogdTMyXG4gICAgICAgICBkb2M6IHxcbi0gICAgICAgICAgUm91bmQgVHJpcCBUaW1lIChSVFQpLCBpbiB1c2Vjcywgd2l0aCAzIGJpdHMgZnJhY3Rpb25hbFxuLSAgICAgICAgICAobGVmdC1zaGlmdCBieSAzIHRvIGdldCB0aGUgbXNlYyB2YWx1ZSkuXG4rICAgICAgICAgIFJvdW5kIFRyaXAgVGltZSAoUlRUKSwgaW4gdXNlY3MsIHdpdGggMyBiaXRzIGZyYWN0aW9uYWwuXG4gICAgICAgLVxuICAgICAgICAgbmFtZTogcnR0dmFyLXVzXG4gICAgICAgICB0eXBlOiB1MzJcbiAgICAgICAgIGRvYzogfFxuLSAgICAgICAgICBSb3VuZCBUcmlwIFRpbWUgKFJUVCksIGluIHVzZWNzLCB3aXRoIDIgYml0cyBmcmFjdGlvbmFsXG4tICAgICAgICAgIChsZWZ0LXNoaWZ0IGJ5IDMgdG8gZ2V0IHRoZSBtc2VjIHZhbHVlKS5cbisgICAgICAgICAgUm91bmQgVHJpcCBUaW1lIFZBUmlhbmNlIChSVFRWQVIpLCBpbiB1c2Vjcywgd2l0aCAyIGJpdHMgZnJhY3Rpb25hbC5cbiBcbiBvcGVyYXRpb25zOlxuICAgbGlzdDpcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEzVDAxOjEwOjQ1LjExOTcyMzc2MloiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy44LWZsYXNoIiwiRHVyYXRpb24iOjEzMjYxNTg0ODA1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEluaXRpYWwgQXNzZXNzbWVudCBvZiB0aGUgUGF0Y2gncyBGdXp6aW5nIFBvdGVudGlhbCoqXG5cbk9rYXksIHNvIEkgbmVlZCB0byBkZWNpZGUgaWYgdGhpcyBwYXRjaCB3YXJyYW50cyBmdXp6aW5nIHdpdGggc3l6a2FsbGVyLiBGaXJzdCwgbGV0J3MgbWFrZSBzdXJlIEknbSBmb2xsb3dpbmcgYWxsIHRoZSByaWdodCBwcm9jZWR1cmVzIGFuZCBzYWZldHkgcHJlY2F1dGlvbnMuIFNlZW1zIHN0cmFpZ2h0Zm9yd2FyZCBlbm91Z2gg4oCTIGl0J3MgYSByb3V0aW5lIHJlcXVlc3QgZm9yIHRyaWFnZSwgdnVsbmVyYWJpbGl0eSBhc3Nlc3NtZW50LCBhbmQgZGVmZW5zaXZlIG9wZXJhdGlvbnMgcmVsYXRlZCB0byBmdXp6aW5nLiBOb3RoaW5nIGluaGVyZW50bHkgcmlza3kgaGVyZS5cblxuTm93LCBsZXQncyBkaWcgaW50byB0aGUgcGF0Y2ggaXRzZWxmLiBJdCBzZWVtcyB0byBpbnZvbHZlIGBEb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvdGNwX21ldHJpY3MueWFtbGAuIEhtbSwgdGhpcyBpcyB3aGVyZSBpdCBnZXRzIGludGVyZXN0aW5nLiBJcyB0aGlzIFlBTUwgZmlsZSBtZXJlbHkgZG9jdW1lbnRhdGlvbiwgYSB1c2VyLXNwYWNlIHNwZWNpZmljYXRpb24sIG9yIGlzIGl0IGFjdHVhbGx5IHVzZWQgdG8gZ2VuZXJhdGUga2VybmVsIGNvZGUsIG5ldGxpbmsgY29kZSwgb3Igc29tZSBvdGhlciBidWlsZCBhcnRpZmFjdHM/IFRoYXTigJlzIHRoZSBjcnVjaWFsIHF1ZXN0aW9uLiBJdCBjb3VsZCBiZSBwdXJlbHkgZGVzY3JpcHRpdmUsIG9yIGl0IGNvdWxkIGJlIGEgY3J1Y2lhbCBwaWVjZSBvZiB0aGUgY29kZSBnZW5lcmF0aW9uIHByb2Nlc3MuIElmIGl0J3MgdGhlIGxhdHRlciwgdGhlbiBpdCdzICpkZWZpbml0ZWx5KiB3b3J0aCBhIGNsb3NlciBsb29rLCBhbmQgZnV6emluZyBjb3VsZCB1bmNvdmVyIHNvbWUgcmVhbGx5IGludGVyZXN0aW5nIHRoaW5ncy5cblxuSSBuZWVkIHRvIGNvbmZpcm0gd2hldGhlciBhbnkgQyBjb2RlIGlzIGdlbmVyYXRlZCBvciBpZiBpdCdzIHB1cmVseSBkb2N1bWVudGF0aW9uLCBvciBpZiBnZW5lcmF0ZWQgY29kZSBpcyBjb21taXR0ZWQgdG8gdGhlIHRyZWUuIEkgbmVlZCB0byBnZXQgc29tZSBhbnN3ZXJzLiBUaW1lIHRvIGJyZWFrIG91dCBteSB1c3VhbCB0b29scyDigJMgYGdyZXBwZXJgLCBgcmVhZC1maWxlYCwgb3IgbWF5YmUgdGhlIGBjb2Rlc2VhcmNoLWRpci1pbmRleGAgdG8gY2hlY2sgdGhlIGFzc29jaWF0ZWQgbmV0bGluayBjb2RlIGZvciB0aGUgVENQIG1ldHJpY3MuIExldCBtZSBzdGFydCBieSBsb29raW5nIGF0IGBuZXQvaXB2NC90Y3BfbWV0cmljcy5jYCBvciB3aGF0ZXZlciB0aGUgcmVsZXZhbnQgZmlsZSBpcy4gTGV0J3Mgc2VlIGlmIHRoaXMgWUFNTCBmaWxlIGhhcyBhbnkgaW1wYWN0IG9uIHRoZSBrZXJuZWwgY29kZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MzM2NSwiT3V0cHV0VG9rZW5zIjoyNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI4MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEzVDAxOjEwOjU4LjM4MTMxMTY0N1oiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMTUxODU0NjUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidGNwX21ldHJpY3NcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvaXB2NC9NYWtlZmlsZT02PW9iai15ICAgICA6PSByb3V0ZS5vIGluZXRwZWVyLm8gcHJvdG9jb2wubyBcXFxcXFxuLS1cXG5uZXQvaXB2NC9NYWtlZmlsZS0xMC1cXHQgICAgIHRjcC5vIHRjcF9pbnB1dC5vIHRjcF9vdXRwdXQubyB0Y3BfdGltZXIubyB0Y3BfaXB2NC5vIFxcXFxcXG5uZXQvaXB2NC9NYWtlZmlsZToxMTpcXHQgICAgIHRjcF9taW5pc29ja3MubyB0Y3BfY29uZy5vIHRjcF9tZXRyaWNzLm8gdGNwX2Zhc3RvcGVuLm8gXFxcXFxcbm5ldC9pcHY0L01ha2VmaWxlLTEyLVxcdCAgICAgdGNwX3JlY292ZXJ5Lm8gdGNwX3VscC5vIFxcXFxcXG4tLVxcbm5ldC9pcHY0L3RjcC5jPTUyOTE9dm9pZCBfX2luaXQgdGNwX2luaXQodm9pZClcXG4tLVxcbm5ldC9pcHY0L3RjcC5jLTUzODUtXFx0dGNwX3Y0X2luaXQoKTtcXG5uZXQvaXB2NC90Y3AuYzo1Mzg2OlxcdHRjcF9tZXRyaWNzX2luaXQoKTtcXG5uZXQvaXB2NC90Y3AuYy01Mzg3LVxcdEJVR19PTih0Y3BfcmVnaXN0ZXJfY29uZ2VzdGlvbl9jb250cm9sKFxcdTAwMjZ0Y3BfcmVubykgIT0gMCk7XFxuLS1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTEwLSNpbmNsdWRlIFxcdTAwM2NsaW51eC9oYXNoLmhcXHUwMDNlXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzoxMTojaW5jbHVkZSBcXHUwMDNjbGludXgvdGNwX21ldHJpY3MuaFxcdTAwM2VcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTEyLSNpbmNsdWRlIFxcdTAwM2NsaW51eC92bWFsbG9jLmhcXHUwMDNlXFxuLS1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTIzLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6MjQ6c3RhdGljIHN0cnVjdCB0Y3BfbWV0cmljc19ibG9jayAqX190Y3BfZ2V0X21ldHJpY3MoY29uc3Qgc3RydWN0IGluZXRwZWVyX2FkZHIgKnNhZGRyLFxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMjUtXFx0XFx0XFx0XFx0XFx0XFx0ICAgY29uc3Qgc3RydWN0IGluZXRwZWVyX2FkZHIgKmRhZGRyLFxcbi0tXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYz0yOD1zdHJ1Y3QgdGNwX2Zhc3RvcGVuX21ldHJpY3Mge1xcbi0tXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy00MC1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjQxOnN0cnVjdCB0Y3BfbWV0cmljc19ibG9jayB7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo0MjpcXHRzdHJ1Y3QgdGNwX21ldHJpY3NfYmxvY2sgX19yY3VcXHQqdGNwbV9uZXh0O1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNDMtXFx0c3RydWN0IG5ldFxcdFxcdFxcdCp0Y3BtX25ldDtcXG4tLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNTMtXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo1NDpzdGF0aWMgaW5saW5lIHN0cnVjdCBuZXQgKnRtX25ldChjb25zdCBzdHJ1Y3QgdGNwX21ldHJpY3NfYmxvY2sgKnRtKVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNTUte1xcbi0tXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy01OS1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjYwOnN0YXRpYyBib29sIHRjcF9tZXRyaWNfbG9ja2VkKHN0cnVjdCB0Y3BfbWV0cmljc19ibG9jayAqdG0sXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy02MS1cXHRcXHRcXHQgICAgICBlbnVtIHRjcF9tZXRyaWNfaW5kZXggaWR4KVxcbi0tXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy02Ni1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjY3OnN0YXRpYyB1MzIgdGNwX21ldHJpY19nZXQoY29uc3Qgc3RydWN0IHRjcF9tZXRyaWNzX2Jsb2NrICp0bSxcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTY4LVxcdFxcdFxcdCAgZW51bSB0Y3BfbWV0cmljX2luZGV4IGlkeClcXG4tLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNzMtXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo3NDpzdGF0aWMgdm9pZCB0Y3BfbWV0cmljX3NldChzdHJ1Y3QgdGNwX21ldHJpY3NfYmxvY2sgKnRtLFxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNzUtXFx0XFx0XFx0ICAgZW51bSB0Y3BfbWV0cmljX2luZGV4IGlkeCxcXG4tLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM9ODg9c3RydWN0IHRjcG1faGFzaF9idWNrZXQge1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6ODk6XFx0c3RydWN0IHRjcF9tZXRyaWNzX2Jsb2NrIF9fcmN1XFx0KmNoYWluO1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTAtfTtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTkxLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6OTI6c3RhdGljIHN0cnVjdCB0Y3BtX2hhc2hfYnVja2V0XFx0KnRjcF9tZXRyaWNzX2hhc2ggX19yZWFkX21vc3RseTtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjkzOnN0YXRpYyB1bnNpZ25lZCBpbnRcXHRcXHR0Y3BfbWV0cmljc19oYXNoX2xvZyBfX3JlYWRfbW9zdGx5O1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTQtXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo5NTpzdGF0aWMgREVGSU5FX1NQSU5MT0NLKHRjcF9tZXRyaWNzX2xvY2spO1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTYtc3RhdGljIERFRklORV9TRVFMT0NLKGZhc3RvcGVuX3NlcWxvY2spO1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTctXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo5ODpzdGF0aWMgdm9pZCB0Y3BtX3N1Y2tfZHN0KHN0cnVjdCB0Y3BfbWV0cmljc19ibG9jayAqdG0sXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy05OS1cXHRcXHRcXHQgIGNvbnN0IHN0cnVjdCBkc3RfZW50cnkgKmRzdCxcXG4tLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMTQ0LVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6MTQ1OnN0YXRpYyB2b2lkIHRjcG1fY2hlY2tfc3RhbXAoc3RydWN0IHRjcF9tZXRyaWNzX2Jsb2NrICp0bSxcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTE0Ni1cXHRcXHRcXHQgICAgIGNvbnN0IHN0cnVjdCBkc3RfZW50cnkgKmRzdClcXG4tLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMTU3LSNkZWZpbmUgVENQX01FVFJJQ1NfUkVDTEFJTV9ERVBUSFxcdDVcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjE1ODojZGVmaW5lIFRDUF9NRVRSSUNTX1JFQ0xBSU1fUFRSXFx0XFx0KHN0cnVjdCB0Y3BfbWV0cmljc19ibG9jayAqKSAweDFVTFxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMTU5LVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMTYwLSNkZWZpbmUgZGVyZWZfbG9ja2VkKHApXFx0XFxcXFxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6MTYxOlxcdHJjdV9kZXJlZmVyZW5jZV9wcm90ZWN0ZWQocCwgbG9ja2RlcF9pc19oZWxkKFxcdTAwMjZ0Y3BfbWV0cmljc19sb2NrKSlcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTE2Mi1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjE2MzpzdGF0aWMgc3RydWN0IHRjcF9tZXRyaWNzX2Jsb2NrICp0Y3BtX25ldyhzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QsXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0xNjQtXFx0XFx0XFx0XFx0XFx0ICBzdHJ1Y3QgaW5ldHBlZXJfYWRkciAqc2FkZHIsXFxuLS1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTE2Ny17XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzoxNjg6XFx0c3RydWN0IHRjcF9tZXRyaWNzX2Jsb2NrICp0bTtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTE2OS1cXHRib29sIHJlY2xhaW0gPSBmYWxzZTtcXG4tLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMTcxLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6MTcyOlxcdHNwaW5fbG9ja19iaChcXHUwMDI2dGNwX21ldHJpY3NfbG9jayk7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0xNzMtXFx0bmV0ID0gZHN0X2Rldl9uZXRfcmN1KGRzdCk7XFxuLS1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTE4OC1cXHRpZiAodW5saWtlbHkocmVjbGFpbSkpIHtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjE4OTpcXHRcXHRzdHJ1Y3QgdGNwX21ldHJpY3NfYmxvY2sgKm9sZGVzdDtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTE5MC1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjE5MTpcXHRcXHRvbGRlc3QgPSBkZXJlZl9sb2NrZWQodGNwX21ldHJpY3NfaGFzaFtoYXNoXS5jaGFpbik7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0xOTItXFx0XFx0Zm9yICh0bSA9IGRlcmVmX2xvY2tlZChvbGRlc3QtXFx1MDAzZXRjcG1fbmV4dCk7IHRtO1xcbi0tXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0yMTItXFx0aWYgKGxpa2VseSghcmVjbGFpbSkpIHtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjIxMzpcXHRcXHR0bS1cXHUwMDNldGNwbV9uZXh0ID0gdGNwX21ldHJpY3NfaGFzaFtoYXNoXS5jaGFpbjtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjIxNDpcXHRcXHRyY3VfYXNzaWduX3BvaW50ZXIodGNwX21ldHJpY3NfaGFzaFtoYXNoXS5jaGFpbiwgdG0pO1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMjE1LVxcdH1cXG4tLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMjE3LW91dF91bmxvY2s6XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzoyMTg6XFx0c3Bpbl91bmxvY2tfYmgoXFx1MDAyNnRjcF9tZXRyaWNzX2xvY2spO1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMjE5LVxcdHJldHVybiB0bTtcXG4tLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMjIxLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6MjIyOnN0YXRpYyBzdHJ1Y3QgdGNwX21ldHJpY3NfYmxvY2sgKnRjcF9nZXRfZW5jb2RlKHN0cnVjdCB0Y3BfbWV0cmljc19ibG9jayAqdG0sIGludCBkZXB0aClcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTIyMy17XFxuLS1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTIzMC1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjIzMTpzdGF0aWMgc3RydWN0IHRjcF9tZXRyaWNzX2Jsb2NrICpfX3RjcF9nZXRfbWV0cmljcyhjb25zdCBzdHJ1Y3QgaW5ldHBlZXJfYWRkciAqc2FkZHIsXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0yMzItXFx0XFx0XFx0XFx0XFx0XFx0ICAgY29uc3Qgc3RydWN0IGluZXRwZWVyX2FkZHIgKmRhZGRyLFxcbi0tXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0yMzQte1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6MjM1OlxcdHN0cnVjdCB0Y3BfbWV0cmljc19ibG9jayAqdG07XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0yMzYtXFx0aW50IGRlcHRoID0gMDtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTIzNy1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjIzODpcXHRmb3IgKHRtID0gcmN1X2RlcmVmZXJlbmNlKHRjcF9tZXRyaWNzX2hhc2hbaGFzaF0uY2hhaW4pOyB0bTtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTIzOS1cXHQgICAgIHRtID0gcmN1X2RlcmVmZXJlbmNlKHRtLVxcdTAwM2V0Y3BtX25leHQpKSB7XFxuLS1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTI0OC1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjI0OTpzdGF0aWMgc3RydWN0IHRjcF9tZXRyaWNzX2Jsb2NrICpfX3RjcF9nZXRfbWV0cmljc19yZXEoc3RydWN0IHJlcXVlc3Rfc29jayAqcmVxLFxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMjUwLVxcdFxcdFxcdFxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QpXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0yNTEte1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6MjUyOlxcdHN0cnVjdCB0Y3BfbWV0cmljc19ibG9jayAqdG07XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0yNTMtXFx0c3RydWN0IGluZXRwZWVyX2FkZHIgc2FkZHIsIGRhZGRyO1xcbi0tXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0yNzctXFx0aGFzaCBePSBuZXRfaGFzaF9taXgobmV0KTtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjI3ODpcXHRoYXNoID0gaGFzaF8zMihoYXNoLCB0Y3BfbWV0cmljc19oYXNoX2xvZyk7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0yNzktXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzoyODA6XFx0Zm9yICh0bSA9IHJjdV9kZXJlZmVyZW5jZSh0Y3BfbWV0cmljc19oYXNoW2hhc2hdLmNoYWluKTsgdG07XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0yODEtXFx0ICAgICB0bSA9IHJjdV9kZXJlZmVyZW5jZSh0bS1cXHUwMDNldGNwbV9uZXh0KSkge1xcbi0tXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0yOTAtXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzoyOTE6c3RhdGljIHN0cnVjdCB0Y3BfbWV0cmljc19ibG9jayAqdGNwX2dldF9tZXRyaWNzKHN0cnVjdCBzb2NrICpzayxcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTI5Mi1cXHRcXHRcXHRcXHRcXHRcXHQgc3RydWN0IGRzdF9lbnRyeSAqZHN0LFxcbi0tXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0yOTQte1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6Mjk1OlxcdHN0cnVjdCB0Y3BfbWV0cmljc19ibG9jayAqdG07XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0yOTYtXFx0c3RydWN0IGluZXRwZWVyX2FkZHIgc2FkZHIsIGRhZGRyO1xcbi0tXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0zMjItXFx0aGFzaCBePSBuZXRfaGFzaF9taXgobmV0KTtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjMyMzpcXHRoYXNoID0gaGFzaF8zMihoYXNoLCB0Y3BfbWV0cmljc19oYXNoX2xvZyk7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0zMjQtXFxuLS1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jPTM0MD12b2lkIHRjcF91cGRhdGVfbWV0cmljcyhzdHJ1Y3Qgc29jayAqc2spXFxuLS1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTM0NS1cXHRzdHJ1Y3QgbmV0ICpuZXQgPSBzb2NrX25ldChzayk7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzozNDY6XFx0c3RydWN0IHRjcF9tZXRyaWNzX2Jsb2NrICp0bTtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTM0Ny1cXHR1bnNpZ25lZCBsb25nIHJ0dDtcXG4tLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM9NDY0PXZvaWQgdGNwX2luaXRfbWV0cmljcyhzdHJ1Y3Qgc29jayAqc2spXFxuLS1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTQ2OC1cXHRzdHJ1Y3QgbmV0ICpuZXQgPSBzb2NrX25ldChzayk7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo0Njk6XFx0c3RydWN0IHRjcF9tZXRyaWNzX2Jsb2NrICp0bTtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTQ3MC1cXHR1MzIgdmFsLCBjcnR0ID0gMDsgLyogY2FjaGVkIFJUVCBzY2FsZWQgYnkgOCAqL1xcbi0tXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYz01NDI9Ym9vbCB0Y3BfcGVlcl9pc19wcm92ZW4oc3RydWN0IHJlcXVlc3Rfc29jayAqcmVxLCBzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QpXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy01NDMte1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6NTQ0OlxcdHN0cnVjdCB0Y3BfbWV0cmljc19ibG9jayAqdG07XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy01NDUtXFx0Ym9vbCByZXQ7XFxuLS1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jPTU2MT12b2lkIHRjcF9mYXN0b3Blbl9jYWNoZV9nZXQoc3RydWN0IHNvY2sgKnNrLCB1MTYgKm1zcyxcXG4tLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNTYzLXtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjU2NDpcXHRzdHJ1Y3QgdGNwX21ldHJpY3NfYmxvY2sgKnRtO1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNTY1LVxcbi0tXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYz01ODQ9dm9pZCB0Y3BfZmFzdG9wZW5fY2FjaGVfc2V0KHN0cnVjdCBzb2NrICpzaywgdTE2IG1zcyxcXG4tLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNTg4LVxcdHN0cnVjdCBkc3RfZW50cnkgKmRzdCA9IF9fc2tfZHN0X2dldChzayk7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo1ODk6XFx0c3RydWN0IHRjcF9tZXRyaWNzX2Jsb2NrICp0bTtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTU5MC1cXG4tLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNjE1LVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6NjE2OnN0YXRpYyBzdHJ1Y3QgZ2VubF9mYW1pbHkgdGNwX21ldHJpY3NfbmxfZmFtaWx5O1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNjE3LVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6NjE4OnN0YXRpYyBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSB0Y3BfbWV0cmljc19ubF9wb2xpY3lbVENQX01FVFJJQ1NfQVRUUl9NQVggKyAxXSA9IHtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTYxOS1cXHRbVENQX01FVFJJQ1NfQVRUUl9BRERSX0lQVjRdXFx0PSB7IC50eXBlID0gTkxBX1UzMiwgfSxcXG4tLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNjQzLS8qIEFkZCBhdHRyaWJ1dGVzLCBjYWxsZXIgY2FuY2VscyBpdHMgaGVhZGVyIG9uIGZhaWx1cmUgKi9cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjY0NDpzdGF0aWMgaW50IHRjcF9tZXRyaWNzX2ZpbGxfaW5mbyhzdHJ1Y3Qgc2tfYnVmZiAqbXNnLFxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6NjQ1OlxcdFxcdFxcdFxcdCBzdHJ1Y3QgdGNwX21ldHJpY3NfYmxvY2sgKnRtKVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNjQ2LXtcXG4tLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNzQzLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6NzQ0OnN0YXRpYyBpbnQgdGNwX21ldHJpY3NfZHVtcF9pbmZvKHN0cnVjdCBza19idWZmICpza2IsXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy03NDUtXFx0XFx0XFx0XFx0IHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYixcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjc0NjpcXHRcXHRcXHRcXHQgc3RydWN0IHRjcF9tZXRyaWNzX2Jsb2NrICp0bSlcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTc0Ny17XFxuLS1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTc1MC1cXHRoZHIgPSBnZW5sbXNnX3B1dChza2IsIE5FVExJTktfQ0IoY2ItXFx1MDAzZXNrYikucG9ydGlkLCBjYi1cXHUwMDNlbmxoLVxcdTAwM2VubG1zZ19zZXEsXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo3NTE6XFx0XFx0XFx0ICBcXHUwMDI2dGNwX21ldHJpY3NfbmxfZmFtaWx5LCBOTE1fRl9NVUxUSSxcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTc1Mi1cXHRcXHRcXHQgIFRDUF9NRVRSSUNTX0NNRF9HRVQpO1xcbi0tXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy03NTUtXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo3NTY6XFx0aWYgKHRjcF9tZXRyaWNzX2ZpbGxfaW5mbyhza2IsIHRtKSBcXHUwMDNjIDApXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy03NTctXFx0XFx0Z290byBubGFfcHV0X2ZhaWx1cmU7XFxuLS1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTc2Ni1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjc2NzpzdGF0aWMgaW50IHRjcF9tZXRyaWNzX25sX2R1bXAoc3RydWN0IHNrX2J1ZmYgKnNrYixcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTc2OC1cXHRcXHRcXHQgICAgICAgc3RydWN0IG5ldGxpbmtfY2FsbGJhY2sgKmNiKVxcbi0tXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy03NzAtXFx0c3RydWN0IG5ldCAqbmV0ID0gc29ja19uZXQoc2tiLVxcdTAwM2Vzayk7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo3NzE6XFx0dW5zaWduZWQgaW50IG1heF9yb3dzID0gMVUgXFx1MDAzY1xcdTAwM2MgdGNwX21ldHJpY3NfaGFzaF9sb2c7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy03NzItXFx0dW5zaWduZWQgaW50IHJvdywgc19yb3cgPSBjYi1cXHUwMDNlYXJnc1swXTtcXG4tLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNzc2LVxcdGZvciAocm93ID0gc19yb3c7IHJvdyBcXHUwMDNjIG1heF9yb3dzOyByb3crKywgc19jb2wgPSAwKSB7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo3Nzc6XFx0XFx0c3RydWN0IHRjcF9tZXRyaWNzX2Jsb2NrICp0bTtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjc3ODpcXHRcXHRzdHJ1Y3QgdGNwbV9oYXNoX2J1Y2tldCAqaGIgPSB0Y3BfbWV0cmljc19oYXNoICsgcm93O1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtNzc5LVxcbi0tXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy03ODYtXFx0XFx0XFx0XFx0Y29udGludWU7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo3ODc6XFx0XFx0XFx0cmVzID0gdGNwX21ldHJpY3NfZHVtcF9pbmZvKHNrYiwgY2IsIHRtKTtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTc4OC1cXHRcXHRcXHRpZiAocmVzIFxcdTAwM2MgMCkge1xcbi0tXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYz04MzU9c3RhdGljIGludCBwYXJzZV9ubF9zYWRkcihzdHJ1Y3QgZ2VubF9pbmZvICppbmZvLCBzdHJ1Y3QgaW5ldHBlZXJfYWRkciAqYWRkcilcXG4tLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtODQxLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6ODQyOnN0YXRpYyBpbnQgdGNwX21ldHJpY3NfbmxfY21kX2dldChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtODQzLXtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjg0NDpcXHRzdHJ1Y3QgdGNwX21ldHJpY3NfYmxvY2sgKnRtO1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtODQ1LVxcdHN0cnVjdCBpbmV0cGVlcl9hZGRyIHNhZGRyLCBkYWRkcjtcXG4tLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtODY0LVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6ODY1OlxcdHJlcGx5ID0gZ2VubG1zZ19wdXRfcmVwbHkobXNnLCBpbmZvLCBcXHUwMDI2dGNwX21ldHJpY3NfbmxfZmFtaWx5LCAwLFxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtODY2LVxcdFxcdFxcdFxcdCAgaW5mby1cXHUwMDNlZ2VubGhkci1cXHUwMDNlY21kKTtcXG4tLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtODcwLVxcdGhhc2ggXj0gbmV0X2hhc2hfbWl4KG5ldCk7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo4NzE6XFx0aGFzaCA9IGhhc2hfMzIoaGFzaCwgdGNwX21ldHJpY3NfaGFzaF9sb2cpO1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtODcyLVxcdHJldCA9IC1FU1JDSDtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTg3My1cXHRyY3VfcmVhZF9sb2NrKCk7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo4NzQ6XFx0Zm9yICh0bSA9IHJjdV9kZXJlZmVyZW5jZSh0Y3BfbWV0cmljc19oYXNoW2hhc2hdLmNoYWluKTsgdG07XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy04NzUtXFx0ICAgICB0bSA9IHJjdV9kZXJlZmVyZW5jZSh0bS1cXHUwMDNldGNwbV9uZXh0KSkge1xcbi0tXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy04NzgtXFx0XFx0ICAgIG5ldF9lcSh0bV9uZXQodG0pLCBuZXQpKSB7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo4Nzk6XFx0XFx0XFx0cmV0ID0gdGNwX21ldHJpY3NfZmlsbF9pbmZvKG1zZywgdG0pO1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtODgwLVxcdFxcdFxcdGJyZWFrO1xcbi0tXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy04OTctXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo4OTg6c3RhdGljIHZvaWQgdGNwX21ldHJpY3NfZmx1c2hfYWxsKHN0cnVjdCBuZXQgKm5ldClcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTg5OS17XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo5MDA6XFx0dW5zaWduZWQgaW50IG1heF9yb3dzID0gMVUgXFx1MDAzY1xcdTAwM2MgdGNwX21ldHJpY3NfaGFzaF9sb2c7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo5MDE6XFx0c3RydWN0IHRjcG1faGFzaF9idWNrZXQgKmhiID0gdGNwX21ldHJpY3NfaGFzaDtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjkwMjpcXHRzdHJ1Y3QgdGNwX21ldHJpY3NfYmxvY2sgKnRtO1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTAzLVxcdHVuc2lnbmVkIGludCByb3c7XFxuLS1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTkwNS1cXHRmb3IgKHJvdyA9IDA7IHJvdyBcXHUwMDNjIG1heF9yb3dzOyByb3crKywgaGIrKykge1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6OTA2OlxcdFxcdHN0cnVjdCB0Y3BfbWV0cmljc19ibG9jayBfX3JjdSAqKnBwID0gXFx1MDAyNmhiLVxcdTAwM2VjaGFpbjtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTkwNy1cXHRcXHRib29sIG1hdGNoO1xcbi0tXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy05MTEtXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo5MTI6XFx0XFx0c3Bpbl9sb2NrX2JoKFxcdTAwMjZ0Y3BfbWV0cmljc19sb2NrKTtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTkxMy1cXHRcXHRmb3IgKHRtID0gZGVyZWZfbG9ja2VkKCpwcCk7IHRtOyB0bSA9IGRlcmVmX2xvY2tlZCgqcHApKSB7XFxuLS1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTkyMi1cXHRcXHR9XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo5MjM6XFx0XFx0c3Bpbl91bmxvY2tfYmgoXFx1MDAyNnRjcF9tZXRyaWNzX2xvY2spO1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTI0LVxcdFxcdGNvbmRfcmVzY2hlZCgpO1xcbi0tXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy05MjctXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo5Mjg6c3RhdGljIGludCB0Y3BfbWV0cmljc19ubF9jbWRfZGVsKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy05Mjkte1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTMwLVxcdHN0cnVjdCB0Y3BtX2hhc2hfYnVja2V0ICpoYjtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjkzMTpcXHRzdHJ1Y3QgdGNwX21ldHJpY3NfYmxvY2sgKnRtO1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6OTMyOlxcdHN0cnVjdCB0Y3BfbWV0cmljc19ibG9jayBfX3JjdSAqKnBwO1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTMzLVxcdHN0cnVjdCBpbmV0cGVlcl9hZGRyIHNhZGRyLCBkYWRkcjtcXG4tLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTQyLVxcdGlmIChyZXQgXFx1MDAzZSAwKSB7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo5NDM6XFx0XFx0dGNwX21ldHJpY3NfZmx1c2hfYWxsKG5ldCk7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy05NDQtXFx0XFx0cmV0dXJuIDA7XFxuLS1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTk1MC1cXHRoYXNoIF49IG5ldF9oYXNoX21peChuZXQpO1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6OTUxOlxcdGhhc2ggPSBoYXNoXzMyKGhhc2gsIHRjcF9tZXRyaWNzX2hhc2hfbG9nKTtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjk1MjpcXHRoYiA9IHRjcF9tZXRyaWNzX2hhc2ggKyBoYXNoO1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTUzLVxcdHBwID0gXFx1MDAyNmhiLVxcdTAwM2VjaGFpbjtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjk1NDpcXHRzcGluX2xvY2tfYmgoXFx1MDAyNnRjcF9tZXRyaWNzX2xvY2spO1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTU1LVxcdGZvciAodG0gPSBkZXJlZl9sb2NrZWQoKnBwKTsgdG07IHRtID0gZGVyZWZfbG9ja2VkKCpwcCkpIHtcXG4tLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTY1LVxcdH1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjk2NjpcXHRzcGluX3VubG9ja19iaChcXHUwMDI2dGNwX21ldHJpY3NfbG9jayk7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy05NjctXFx0aWYgKCFmb3VuZClcXG4tLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTcxLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6OTcyOnN0YXRpYyBjb25zdCBzdHJ1Y3QgZ2VubF9zbWFsbF9vcHMgdGNwX21ldHJpY3Nfbmxfb3BzW10gPSB7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy05NzMtXFx0e1xcbi0tXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy05NzUtXFx0XFx0LnZhbGlkYXRlID0gR0VOTF9ET05UX1ZBTElEQVRFX1NUUklDVCB8IEdFTkxfRE9OVF9WQUxJREFURV9EVU1QLFxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6OTc2OlxcdFxcdC5kb2l0ID0gdGNwX21ldHJpY3NfbmxfY21kX2dldCxcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjk3NzpcXHRcXHQuZHVtcGl0ID0gdGNwX21ldHJpY3NfbmxfZHVtcCxcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTk3OC1cXHR9LFxcbi0tXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy05ODEtXFx0XFx0LnZhbGlkYXRlID0gR0VOTF9ET05UX1ZBTElEQVRFX1NUUklDVCB8IEdFTkxfRE9OVF9WQUxJREFURV9EVU1QLFxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6OTgyOlxcdFxcdC5kb2l0ID0gdGNwX21ldHJpY3NfbmxfY21kX2RlbCxcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTk4My1cXHRcXHQuZmxhZ3MgPSBHRU5MX0FETUlOX1BFUk0sXFxuLS1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTk4Ni1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjk4NzpzdGF0aWMgc3RydWN0IGdlbmxfZmFtaWx5IHRjcF9tZXRyaWNzX25sX2ZhbWlseSBfX3JvX2FmdGVyX2luaXQgPSB7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy05ODgtXFx0LmhkcnNpemVcXHQ9IDAsXFxuLS1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTk5MS1cXHQubWF4YXR0clxcdD0gVENQX01FVFJJQ1NfQVRUUl9NQVgsXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzo5OTI6XFx0LnBvbGljeSA9IHRjcF9tZXRyaWNzX25sX3BvbGljeSxcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTk5My1cXHQubmV0bnNva1xcdD0gdHJ1ZSxcXG4tLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtOTk1LVxcdC5tb2R1bGVcXHRcXHQ9IFRISVNfTU9EVUxFLFxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6OTk2OlxcdC5zbWFsbF9vcHNcXHQ9IHRjcF9tZXRyaWNzX25sX29wcyxcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjk5NzpcXHQubl9zbWFsbF9vcHNcXHQ9IEFSUkFZX1NJWkUodGNwX21ldHJpY3Nfbmxfb3BzKSxcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTk5OC1cXHQucmVzdl9zdGFydF9vcFxcdD0gVENQX01FVFJJQ1NfQ01EX0RFTCArIDEsXFxuLS1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jPTEwMTU9X19zZXR1cChcXFwidGNwbWhhc2hfZW50cmllcz1cXFwiLCBzZXRfdGNwbWhhc2hfZW50cmllcyk7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0xMDE2LVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6MTAxNzpzdGF0aWMgdm9pZCBfX2luaXQgdGNwX21ldHJpY3NfaGFzaF9hbGxvYyh2b2lkKVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMTAxOC17XFxuLS1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jLTEwMjgtXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzoxMDI5OlxcdHRjcF9tZXRyaWNzX2hhc2hfbG9nID0gb3JkZXJfYmFzZV8yKHNsb3RzKTtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjEwMzA6XFx0c2l6ZSA9IHNpemVvZihzdHJ1Y3QgdGNwbV9oYXNoX2J1Y2tldCkgXFx1MDAzY1xcdTAwM2MgdGNwX21ldHJpY3NfaGFzaF9sb2c7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0xMDMxLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6MTAzMjpcXHR0Y3BfbWV0cmljc19oYXNoID0ga3Z6YWxsb2Moc2l6ZSwgR0ZQX0tFUk5FTCk7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYzoxMDMzOlxcdGlmICghdGNwX21ldHJpY3NfaGFzaClcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjEwMzQ6XFx0XFx0cGFuaWMoXFxcIkNvdWxkIG5vdCBhbGxvY2F0ZSB0aGUgdGNwX21ldHJpY3MgaGFzaCB0YWJsZVxcXFxuXFxcIik7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0xMDM1LX1cXG4tLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM9MTAzNz1zdGF0aWMgdm9pZCBfX25ldF9leGl0IHRjcF9uZXRfbWV0cmljc19leGl0X2JhdGNoKHN0cnVjdCBsaXN0X2hlYWQgKm5ldF9leGl0X2xpc3QpXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0xMDM4LXtcXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjEwMzk6XFx0dGNwX21ldHJpY3NfZmx1c2hfYWxsKE5VTEwpO1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMTA0MC19XFxuLS1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jPTEwNDI9c3RhdGljIF9fbmV0X2luaXRkYXRhIHN0cnVjdCBwZXJuZXRfb3BlcmF0aW9ucyB0Y3BfbmV0X21ldHJpY3Nfb3BzID0ge1xcbi0tXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0xMDQ1LVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6MTA0Njp2b2lkIF9faW5pdCB0Y3BfbWV0cmljc19pbml0KHZvaWQpXFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0xMDQ3LXtcXG4tLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMTA0OS1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjEwNTA6XFx0dGNwX21ldHJpY3NfaGFzaF9hbGxvYygpO1xcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMTA1MS1cXG4tLVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmMtMTA1NS1cXG5uZXQvaXB2NC90Y3BfbWV0cmljcy5jOjEwNTY6XFx0cmV0ID0gZ2VubF9yZWdpc3Rlcl9mYW1pbHkoXFx1MDAyNnRjcF9tZXRyaWNzX25sX2ZhbWlseSk7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0xMDU3LVxcdGlmIChyZXQgXFx1MDAzYyAwKVxcbm5ldC9pcHY0L3RjcF9tZXRyaWNzLmM6MTA1ODpcXHRcXHRwYW5pYyhcXFwiQ291bGQgbm90IHJlZ2lzdGVyIHRjcF9tZXRyaWNzIGdlbmVyaWMgbmV0bGlua1xcXFxuXFxcIik7XFxubmV0L2lwdjQvdGNwX21ldHJpY3MuYy0xMDU5LX1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTNUMDE6MTA6NTguNjk2NTAyMzgyWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjgtZmxhc2giLCJEdXJhdGlvbiI6Mzk2MjI2NDQyOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHN1bW1hcnksIGFzIHRob3VnaCBJJ20gdGhpbmtpbmcgdGhyb3VnaCB0aGlzIHByb2Nlc3M6XG5cbioqRGl2aW5nIGludG8gYHRjcF9tZXRyaWNzX25sX3BvbGljeWAqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBgdGNwX21ldHJpY3NfbmxfcG9saWN5YCB3aXRoaW4gYG5ldC9pcHY0L3RjcF9tZXRyaWNzLmNgLiBUaGUgZmFjdCB0aGF0IGl0J3MgaGFyZGNvZGVkIEMgY29kZSBpbW1lZGlhdGVseSBtYWtlcyBtZSB0aGluayBhYm91dCBwb3RlbnRpYWwgcmlnaWRpdHkgYW5kIG1haW50ZW5hbmNlIGhlYWRhY2hlcyBkb3duIHRoZSBsaW5lLCBidXQgbGV0J3Mgbm90IGp1bXAgdG8gY29uY2x1c2lvbnMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgaXQncyAqZG9pbmcqLlxuXG5JJ2xsIGp1bXAgc3RyYWlnaHQgaW50byB0aGUgY29kZS4gU3BlY2lmaWNhbGx5LCBsZXQncyB6ZXJvIGluIG9uIGxpbmVzIDYxNSB0aHJvdWdoIDY0NS4gVGhhdCdzIHVzdWFsbHkgYSBnb29kIGNodW5rIHRvIGV4YW1pbmUgZm9yIHVuZGVyc3RhbmRpbmcgaXRzIGNvcmUgZnVuY3Rpb24uIEknbGwgYmUgbG9va2luZyBmb3IgdGhpbmdzIGxpa2U6XG5cbiogICBXaGF0IGRhdGEgc3RydWN0dXJlcyBhcmUgYmVpbmcgdXNlZD9cbiogICBXaGF0IGxvZ2ljIGlzIGltcGxlbWVudGVkIGluIHRoaXMgc2VjdGlvbiBvZiBjb2RlP1xuKiAgIElzIHRoZXJlIGEgd2F5IGZvciB0aGUgcG9saWN5IHRvIGJlIGVhc2lseSBjb25maWd1cmVkIChlLmcuIHRocm91Z2ggdGhlIG5ldHdvcmsgbGF5ZXIpPyBPciwgYW0gSSBsb29raW5nIGF0IGEgXCJiYWtlZCBpblwiIHNldCBvZiBydWxlcz9cbiogICBBcmUgdGhlcmUgYW55IGRlcGVuZGVuY2llcyBvbiBvdGhlciBwYXJ0cyBvZiB0aGUga2VybmVsLCBvciBleHRlcm5hbCBsaWJyYXJpZXM/XG4qICAgSG93IGlzIHRoZSBwb2xpY3kgYXBwbGllZCAoZS5nLiwgYXQgd2hhdCBwb2ludCBpbiB0aGUgVENQIHN0YWNrIGRvZXMgaXQgdGFrZSBlZmZlY3QpP1xuKiAgIFdoYXQgaXMgaXRzIHB1cnBvc2U/ICh0aGlzIGlzIGtleSwgc2luY2UgdGhlcmUgaXMgcHJvYmFibHkgYSBjb21tZW50IG9yIGRvY3VtZW50YXRpb24gc29tZXdoZXJlKVxuXG5UaGlzIGluZm9ybWF0aW9uIHdpbGwgY2xhcmlmeSBpZiB0aGlzIHBvbGljeSBpcyBzb21ldGhpbmcgdGhhdCBJIG5lZWQgdG8gYmUgYXdhcmUgb2YgaWYgSSBwbGFuIHRvIG1ha2UgYWRqdXN0bWVudHMgdG8gbmV0d29ya2luZy5cblxuXG4iLCJJbnB1dFRva2VucyI6MTEwMzAsIk91dHB1dFRva2VucyI6MzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1NSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0xM1QwMToxMTowMi42NTg3NjkxNDFaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5ODYwMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJuZXQvaXB2NC90Y3BfbWV0cmljcy5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDYxNSxcbiAgXCJMaW5lQ291bnRcIjogMzVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDYxNTpcXHRcXG4gNjE2OlxcdHN0YXRpYyBzdHJ1Y3QgZ2VubF9mYW1pbHkgdGNwX21ldHJpY3NfbmxfZmFtaWx5O1xcbiA2MTc6XFx0XFxuIDYxODpcXHRzdGF0aWMgY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgdGNwX21ldHJpY3NfbmxfcG9saWN5W1RDUF9NRVRSSUNTX0FUVFJfTUFYICsgMV0gPSB7XFxuIDYxOTpcXHRcXHRbVENQX01FVFJJQ1NfQVRUUl9BRERSX0lQVjRdXFx0PSB7IC50eXBlID0gTkxBX1UzMiwgfSxcXG4gNjIwOlxcdFxcdFtUQ1BfTUVUUklDU19BVFRSX0FERFJfSVBWNl1cXHQ9XFxuIDYyMTpcXHRcXHRcXHROTEFfUE9MSUNZX0VYQUNUX0xFTihzaXplb2Yoc3RydWN0IGluNl9hZGRyKSksXFxuIDYyMjpcXHRcXG4gNjIzOlxcdFxcdFtUQ1BfTUVUUklDU19BVFRSX1NBRERSX0lQVjRdXFx0PSB7IC50eXBlID0gTkxBX1UzMiwgfSxcXG4gNjI0OlxcdFxcdFtUQ1BfTUVUUklDU19BVFRSX1NBRERSX0lQVjZdXFx0PVxcbiA2MjU6XFx0XFx0XFx0TkxBX1BPTElDWV9FWEFDVF9MRU4oc2l6ZW9mKHN0cnVjdCBpbjZfYWRkcikpLFxcbiA2MjY6XFx0XFxuIDYyNzpcXHRcXHQvKiBGb2xsb3dpbmcgYXR0cmlidXRlcyBhcmUgbm90IHJlY2VpdmVkIGZvciBHRVQvREVMLFxcbiA2Mjg6XFx0XFx0ICogd2Uga2VlcCB0aGVtIGZvciByZWZlcmVuY2VcXG4gNjI5OlxcdFxcdCAqL1xcbiA2MzA6XFx0I2lmIDBcXG4gNjMxOlxcdFxcdFtUQ1BfTUVUUklDU19BVFRSX0FHRV1cXHRcXHQ9IHsgLnR5cGUgPSBOTEFfTVNFQ1MsIH0sXFxuIDYzMjpcXHRcXHRbVENQX01FVFJJQ1NfQVRUUl9UV19UU1ZBTF1cXHQ9IHsgLnR5cGUgPSBOTEFfVTMyLCB9LFxcbiA2MzM6XFx0XFx0W1RDUF9NRVRSSUNTX0FUVFJfVFdfVFNfU1RBTVBdXFx0PSB7IC50eXBlID0gTkxBX1MzMiwgfSxcXG4gNjM0OlxcdFxcdFtUQ1BfTUVUUklDU19BVFRSX1ZBTFNdXFx0XFx0PSB7IC50eXBlID0gTkxBX05FU1RFRCwgfSxcXG4gNjM1OlxcdFxcdFtUQ1BfTUVUUklDU19BVFRSX0ZPUEVOX01TU11cXHQ9IHsgLnR5cGUgPSBOTEFfVTE2LCB9LFxcbiA2MzY6XFx0XFx0W1RDUF9NRVRSSUNTX0FUVFJfRk9QRU5fU1lOX0RST1BTXVxcdD0geyAudHlwZSA9IE5MQV9VMTYsIH0sXFxuIDYzNzpcXHRcXHRbVENQX01FVFJJQ1NfQVRUUl9GT1BFTl9TWU5fRFJPUF9UU11cXHQ9IHsgLnR5cGUgPSBOTEFfTVNFQ1MsIH0sXFxuIDYzODpcXHRcXHRbVENQX01FVFJJQ1NfQVRUUl9GT1BFTl9DT09LSUVdXFx0PSB7IC50eXBlID0gTkxBX0JJTkFSWSxcXG4gNjM5OlxcdFxcdFxcdFxcdFxcdFxcdCAgICAubGVuID0gVENQX0ZBU1RPUEVOX0NPT0tJRV9NQVgsIH0sXFxuIDY0MDpcXHQjZW5kaWZcXG4gNjQxOlxcdH07XFxuIDY0MjpcXHRcXG4gNjQzOlxcdC8qIEFkZCBhdHRyaWJ1dGVzLCBjYWxsZXIgY2FuY2VscyBpdHMgaGVhZGVyIG9uIGZhaWx1cmUgKi9cXG4gNjQ0OlxcdHN0YXRpYyBpbnQgdGNwX21ldHJpY3NfZmlsbF9pbmZvKHN0cnVjdCBza19idWZmICptc2csXFxuIDY0NTpcXHRcXHRcXHRcXHRcXHQgc3RydWN0IHRjcF9tZXRyaWNzX2Jsb2NrICp0bSlcXG4gNjQ2OlxcdHtcXG4gNjQ3OlxcdFxcdHN0cnVjdCBubGF0dHIgKm5lc3Q7XFxuIDY0ODpcXHRcXHRpbnQgaTtcXG4gNjQ5OlxcdFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xM1QwMToxMTowMi42NTg4NzAyMDFaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuOC1mbGFzaCIsIkR1cmF0aW9uIjo1NDYyMjAxMzc1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkluaXRpYWwgQXNzZXNzbWVudCBvZiBhIEZvY3VzZWQgQ29tbWl0KipcblxuT2theSwgc28gSSdtIHNlZWluZyBzb21ldGhpbmcgaW50ZXJlc3RpbmcgaGVyZS4gSXQgbG9va3MgbGlrZSB0aGUgb25seSBmaWxlIHRvdWNoZWQgaW4gdGhpcyBjb21taXQgaXMgYERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy90Y3BfbWV0cmljcy55YW1sYC4gVGhhdCdzIGEgcHJldHR5IGZvY3VzZWQgY2hhbmdlLCB3aGljaCBpbW1lZGlhdGVseSBncmFicyBteSBhdHRlbnRpb24uIFRoaXMgc3VnZ2VzdHMgYSB2ZXJ5IHNwZWNpZmljIG1vZGlmaWNhdGlvbiwgbGlrZWx5IGEgZG9jdW1lbnRhdGlvbiB1cGRhdGUgb3IgYSBjaGFuZ2UgcmVsYXRlZCBzcGVjaWZpY2FsbHkgdG8gVENQIG1ldHJpY3MuXG5cbk15IGZpcnN0IHRob3VnaHQgaXMgdG8gZGl2ZSBpbnRvIHRoZSBzcGVjaWZpY3MuIEknbSBnb2luZyB0byBwdWxsIHVwIGBnaXQgbG9nIC0xYCB0byB1bmRlcnN0YW5kIHRoZSBjb21taXQgbWVzc2FnZSBhbmQgZ2V0IGEgcXVpY2sgb3ZlcnZpZXcsIG9yIEknbGwgcnVuIHRoZSBkaWZmIHRvIHNlZSBleGFjdGx5IHdoYXQncyBjaGFuZ2VkLiBTZWVpbmcgdGhlICp3aHkqIG9mIHRoZSBjaGFuZ2UgaXMgY3J1Y2lhbCBhdCB0aGlzIHBvaW50LlxuXG5UaGVuLCBqdXN0IHRvIGJlIHRob3JvdWdoIGFuZCB0byB1bmRlcnN0YW5kIGlmIHRoaXMgY2hhbmdlIGhhcyBpbXBsaWNhdGlvbnMgZWxzZXdoZXJlLCBJIG5lZWQgdG8gc2VlIHRoZSBjb250ZXh0IG9mIHRoaXMgZmlsZS4gTGV0J3MgZmlyZSB1cCBgZ3JlcHBlcmAgYW5kIHNlYXJjaCBmb3IgdGhhdCBmaWxlbmFtZSwgYHRjcF9tZXRyaWNzLnlhbWxgLCBhY3Jvc3MgdGhlICplbnRpcmUqIGtlcm5lbCBzb3VyY2UuIEkgd2FudCB0byBzZWUgaG93IHRoaXMgWUFNTCBmaWxlIGlzIHJlZmVyZW5jZWQsIHV0aWxpemVkLCBhbmQgcG90ZW50aWFsbHkgaW1wYWN0ZWQgYnkgb3RoZXIgcGFydHMgb2YgdGhlIHN5c3RlbS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaWYgdGhpcyBpcyBhIHN0YW5kYWxvbmUgZG9jdW1lbnRhdGlvbiBwaWVjZSwgb3IgaWYgaXQgcGxheXMgYSByb2xlIGluIHNvbWUgYnJvYWRlciBrZXJuZWwgZnVuY3Rpb25hbGl0eS4gVGhpcyB3aWxsIHByb3ZpZGUgYSBjb21wcmVoZW5zaXZlIHVuZGVyc3RhbmRpbmcgb2YgdGhlIGNoYW5nZXMnIHNpZ25pZmljYW5jZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTIxNjAsIk91dHB1dFRva2VucyI6MTksIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2OCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEzVDAxOjExOjA4LjEyMTA3NDExNloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzY1MTQzNDIzLCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ0Y3BfbWV0cmljc1xcXFwueWFtbFwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTNUMDE6MTE6MTAuNDg2MjI1OTc5WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjgtZmxhc2giLCJEdXJhdGlvbiI6NDY5ODYzOTU4NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoaXMgc2VhcmNoOlxuXG4qKkRpdmluZyBpbnRvIE5ldGxpbmsgRG9jdW1lbnRhdGlvbioqXG5cbk9rYXksIHNvIEkgbmVlZCB0byBmaW5kIHNvbWUgc3BlY2lmaWMgTmV0bGluayBkb2N1bWVudGF0aW9uLCBsaWtlbHkgcmVsYXRlZCB0byBzcGVjaWZpY2F0aW9ucy4gTXkgaW5pdGlhbCBhcHByb2FjaCBpcyB0byBnbyBzdHJhaWdodCB0byB0aGUgc291cmNlIOKAkyB0aGUgYnVpbGQgc3lzdGVtLiBTaW5jZSB0aGlzIGludm9sdmVzIGtlcm5lbC1sZXZlbCBzdHVmZiwgdGhlIGBNYWtlZmlsZWAgc2VlbXMgbGlrZSB0aGUgbW9zdCBsb2dpY2FsIHBsYWNlIHRvIGJlZ2luLiBJdCdzIHRoZSBjZW50cmFsIGh1YiBmb3IgdGhlIGJ1aWxkIHByb2Nlc3MsIGFuZCBvZnRlbiBjb250YWlucyByZWZlcmVuY2VzIHRvIGRvY3VtZW50YXRpb24sIHBhcnRpY3VsYXJseSB3aGVuIGl0IGNvbWVzIHRvIGludGVybmFsIGludGVyZmFjZXMgbGlrZSBOZXRsaW5rLiBIb3dldmVyLCBJIHNob3VsZCBhbHNvIGNoZWNrIHRoZSBzY3JpcHRzIGFuZCB0b29scyB1c2VkIGluIHRoZSBidWlsZC4gRnJlcXVlbnRseSwgdGhlc2UgY29udGFpbiBlbWJlZGRlZCBkb2N1bWVudGF0aW9uIHJlZmVyZW5jZXMgb3IgZXZlbiBnZW5lcmF0ZSB0aGUgZG9jdW1lbnRhdGlvbi4gRXNzZW50aWFsbHksIEkgbmVlZCB0byBjaGVjayB0aGUgZW50aXJlIGJyZWFkdGggb2YgdGhlIGJ1aWxkIHN5c3RlbSB0byBnZXQgdGhlIG1vc3QgY29tcGxldGUgdmlldy4gTGV0J3Mgc3RhcnQgd2l0aCBgTWFrZWZpbGVgIGFuZCB0aGVuIGV4cGFuZCB0aGUgc2VhcmNoLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMjUyMSwiT3V0cHV0VG9rZW5zIjoyMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEzVDAxOjExOjE1LjE4NDg2Nzg1NloiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTY2NDk5Nzc1NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJEb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3NcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiRG9jdW1lbnRhdGlvbi9ncHUvZHJtLXJhcy5yc3Q9NjA9WUFNTC1iYXNlZCBJbnRlcmZhY2VcXG4tLVxcbkRvY3VtZW50YXRpb24vZ3B1L2RybS1yYXMucnN0LTYyLVxcbkRvY3VtZW50YXRpb24vZ3B1L2RybS1yYXMucnN0OjYzOlRoZSBpbnRlcmZhY2UgaXMgZGVzY3JpYmVkIGluIGEgWUFNTCBzcGVjaWZpY2F0aW9uIGBgRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL2RybV9yYXMueWFtbGBgXFxuRG9jdW1lbnRhdGlvbi9ncHUvZHJtLXJhcy5yc3QtNjQtXFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbXVsdGktcGYtbmV0ZGV2LnJzdD05MD1UaGUgcmVsYXRpb24gYmV0d2VlbiBQRiwgaXJxLCBuYXBpLCBhbmQgcXVldWUgY2FuIGJlIG9ic2VydmVkIHZpYSBuZXRsaW5rIHNwZWM6OlxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9tdWx0aS1wZi1uZXRkZXYucnN0LTkxLVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9tdWx0aS1wZi1uZXRkZXYucnN0OjkyOiAgJCAuL3Rvb2xzL25ldC95bmwvcHl5bmwvY2xpLnB5IC0tc3BlYyBEb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvbmV0ZGV2LnlhbWwgLS1kdW1wIHF1ZXVlLWdldCAtLWpzb249J3tcXFwiaWZpbmRleFxcXCI6IDEzfSdcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbXVsdGktcGYtbmV0ZGV2LnJzdC05My0gIFt7J2lkJzogMCwgJ2lmaW5kZXgnOiAxMywgJ25hcGktaWQnOiA1MzksICd0eXBlJzogJ3J4J30sXFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbXVsdGktcGYtbmV0ZGV2LnJzdC0xMDMtXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL211bHRpLXBmLW5ldGRldi5yc3Q6MTA0OiAgJCAuL3Rvb2xzL25ldC95bmwvcHl5bmwvY2xpLnB5IC0tc3BlYyBEb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvbmV0ZGV2LnlhbWwgLS1kdW1wIG5hcGktZ2V0IC0tanNvbj0ne1xcXCJpZmluZGV4XFxcIjogMTN9J1xcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9tdWx0aS1wZi1uZXRkZXYucnN0LTEwNS0gIFt7J2lkJzogNTQzLCAnaWZpbmRleCc6IDEzLCAnaXJxJzogNDJ9LFxcbi0tXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25hcGkucnN0PTIwNT13aWxsIHJldmVhbCBlYWNoIHF1ZXVlJ3MgTkFQSSBJRCk6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmFwaS5yc3QtMjA5LSAgICQga2VybmVsLXNvdXJjZS90b29scy9uZXQveW5sL3B5eW5sL2NsaS5weSBcXFxcXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25hcGkucnN0OjIxMDogICAgICAgICAgICAgLS1zcGVjIERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9uZXRkZXYueWFtbCBcXFxcXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25hcGkucnN0LTIxMS0gICAgICAgICAgICAgLS1kdW1wIHF1ZXVlLWdldCBcXFxcXFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmFwaS5yc3QtMjEzLVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uYXBpLnJzdDoyMTQ6U2VlIGBgRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL25ldGRldi55YW1sYGAgZm9yIG1vcmUgZGV0YWlscyBvblxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uYXBpLnJzdC0yMTUtYXZhaWxhYmxlIG9wZXJhdGlvbnMgYW5kIGF0dHJpYnV0ZXMuXFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmFwaS5yc3Q9MjQwPUZvciBleGFtcGxlLCB1c2luZyB0aGUgc2NyaXB0Olxcbi0tXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25hcGkucnN0LTI0NC0gICQga2VybmVsLXNvdXJjZS90b29scy9uZXQveW5sL3B5eW5sL2NsaS5weSBcXFxcXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25hcGkucnN0OjI0NTogICAgICAgICAgICAtLXNwZWMgRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL25ldGRldi55YW1sIFxcXFxcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmFwaS5yc3QtMjQ2LSAgICAgICAgICAgIC0tZG8gbmFwaS1zZXQgXFxcXFxcbi0tXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL3BhZ2VfcG9vbC5yc3Q9NDc9ZXRjLiBjYW4gYmUgYWNjZXNzZWQgdmlhIHRoZSBuZXRkZXYgZ2VuZXRsaW5rIGZhbWlseVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9wYWdlX3Bvb2wucnN0OjQ4OihzZWUgRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL25ldGRldi55YW1sKS5cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvcGFnZV9wb29sLnJzdC00OS1cXG4tLVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy94ZHAtcngtbWV0YWRhdGEucnN0PTEyMD1uZXRsaW5rLiBTZWUgYGB4ZHAtcngtbWV0YWRhdGEtZmVhdHVyZXNgYCBhdHRyaWJ1dGUgc2V0IGluXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL3hkcC1yeC1tZXRhZGF0YS5yc3Q6MTIxOmBgRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL25ldGRldi55YW1sYGAuXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL3hkcC1yeC1tZXRhZGF0YS5yc3QtMTIyLVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL3hzay10eC1tZXRhZGF0YS5yc3Q9MTM0PVF1ZXJ5IHRoZSBgYHhzay1mZWF0dXJlc2BgIGF0dHJpYnV0ZSBpblxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy94c2stdHgtbWV0YWRhdGEucnN0OjEzNTpgYERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9uZXRkZXYueWFtbGBgLiBJdHMgYml0cyBhcmUgZGVmaW5lZCBieSB0aGVcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcveHNrLXR4LW1ldGFkYXRhLnJzdC0xMzYtYGB4c2stZmxhZ3NgYCBlbnVtLlxcbi0tXFxuRG9jdW1lbnRhdGlvbi90cmFuc2xhdGlvbnMvemhfQ04vbmV0d29ya2luZy9uYXBpLnJzdD0xMzI9TkFQSSDlrp7kvovmnIDluLjku6UgMToxOjEg5pig5bCE5Yiw5Lit5pat5ZKM6Zif5YiX5a+577yI6Zif5YiX5a+55piv55Sx5LiA5Liq5o6l5pS26Zif5YiX5ZKM5LiA5Liq5Y+R6YCB6Zif5YiX57uE5oiQ55qE5LiA57uEXFxuLS1cXG5Eb2N1bWVudGF0aW9uL3RyYW5zbGF0aW9ucy96aF9DTi9uZXR3b3JraW5nL25hcGkucnN0LTE3MS0gICAkIGtlcm5lbC1zb3VyY2UvdG9vbHMvbmV0L3lubC9weXlubC9jbGkucHkgXFxcXFxcbkRvY3VtZW50YXRpb24vdHJhbnNsYXRpb25zL3poX0NOL25ldHdvcmtpbmcvbmFwaS5yc3Q6MTcyOiAgICAgICAgICAgICAtLXNwZWMgRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL25ldGRldi55YW1sIFxcXFxcXG5Eb2N1bWVudGF0aW9uL3RyYW5zbGF0aW9ucy96aF9DTi9uZXR3b3JraW5nL25hcGkucnN0LTE3My0gICAgICAgICAgICAgLS1kdW1wIHF1ZXVlLWdldCBcXFxcXFxuLS1cXG5Eb2N1bWVudGF0aW9uL3RyYW5zbGF0aW9ucy96aF9DTi9uZXR3b3JraW5nL25hcGkucnN0LTE3NS1cXG5Eb2N1bWVudGF0aW9uL3RyYW5zbGF0aW9ucy96aF9DTi9uZXR3b3JraW5nL25hcGkucnN0OjE3NjrmnInlhbPlj6/nlKjmk43kvZzlkozlsZ7mgKfnmoTmm7TlpJror6bnu4bkv6Hmga/vvIzor7flj4LpmIUgYGBEb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvbmV0ZGV2LnlhbWxgYOOAglxcbkRvY3VtZW50YXRpb24vdHJhbnNsYXRpb25zL3poX0NOL25ldHdvcmtpbmcvbmFwaS5yc3QtMTc3LVxcbi0tXFxuRG9jdW1lbnRhdGlvbi90cmFuc2xhdGlvbnMvemhfQ04vbmV0d29ya2luZy9uYXBpLnJzdD0xODk9TmV0bGluayDov5vooYzphY3nva7kuJTmmK/ln7rkuo7mr4/kuKogTkFQSSDlrp7kvovorr7nva7ml7bvvIzkuIrov7Dlj4LmlbDkvb/nlKjov57lrZfnrKbvvIgt77yJ6ICM6Z2e5LiL5YiS57q/77yIX++8iVxcbi0tXFxuRG9jdW1lbnRhdGlvbi90cmFuc2xhdGlvbnMvemhfQ04vbmV0d29ya2luZy9uYXBpLnJzdC0xOTktICAkIGtlcm5lbC1zb3VyY2UvdG9vbHMvbmV0L3lubC9weXlubC9jbGkucHkgXFxcXFxcbkRvY3VtZW50YXRpb24vdHJhbnNsYXRpb25zL3poX0NOL25ldHdvcmtpbmcvbmFwaS5yc3Q6MjAwOiAgICAgICAgICAgIC0tc3BlYyBEb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvbmV0ZGV2LnlhbWwgXFxcXFxcbkRvY3VtZW50YXRpb24vdHJhbnNsYXRpb25zL3poX0NOL25ldHdvcmtpbmcvbmFwaS5yc3QtMjAxLSAgICAgICAgICAgIC0tZG8gbmFwaS1zZXQgXFxcXFxcbi0tXFxuRG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL25ldGxpbmsvaW5kZXgucnN0PTE5PVNlZSBhbHNvOlxcbkRvY3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9uZXRsaW5rL2luZGV4LnJzdC0yMC0gLSA6cmVmOmBEb2N1bWVudGF0aW9uL2NvcmUtYXBpL25ldGxpbmsucnN0IFxcdTAwM2NrZXJuZWxfbmV0bGlua1xcdTAwM2VgXFxuRG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL25ldGxpbmsvaW5kZXgucnN0OjIxOiAtIDpyZWY6YERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9pbmRleC5yc3QgXFx1MDAzY3NwZWNzXFx1MDAzZWBcXG4tLVxcbkRvY3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9uZXRsaW5rL2ludHJvLXNwZWNzLnJzdD0xOT1hIGhhbmRmdWwgb2YgYXJndW1lbnRzLCB0aGUgbW9zdCBpbXBvcnRhbnQgb25lcyBhcmU6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbmV0bGluay9pbnRyby1zcGVjcy5yc3QtMjUtXFxuRG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL25ldGxpbmsvaW50cm8tc3BlY3MucnN0OjI2OllBTUwgc3BlY3MgY2FuIGJlIGZvdW5kIHVuZGVyIGBgRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL2BgLlxcbkRvY3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9uZXRsaW5rL2ludHJvLXNwZWNzLnJzdC0yNy1cXG5Eb2N1bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbmV0bGluay9pbnRyby1zcGVjcy5yc3Q9Mjg9RXhhbXBsZSB1c2U6OlxcbkRvY3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9uZXRsaW5rL2ludHJvLXNwZWNzLnJzdC0yOS1cXG5Eb2N1bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbmV0bGluay9pbnRyby1zcGVjcy5yc3Q6MzA6ICAkIC4vdG9vbHMvbmV0L3lubC9weXlubC9jbGkucHkgLS1zcGVjIERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9ldGh0b29sLnlhbWwgXFxcXFxcbkRvY3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9uZXRsaW5rL2ludHJvLXNwZWNzLnJzdC0zMS0gICAgICAgIC0tZG8gcmluZ3MtZ2V0IFxcXFxcXG4tLVxcbkRvY3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9uZXRsaW5rL2ludHJvLXNwZWNzLnJzdD02NT10cmFja2VkIGJ5IGdpdCEpIEZvciBpbnN0YW5jZSB0aGUgYGBmb3VfbmwuY2BgIGtlcm5lbCBzb3VyY2UgY29udGFpbnM6OlxcbkRvY3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9uZXRsaW5rL2ludHJvLXNwZWNzLnJzdC02Ni1cXG5Eb2N1bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbmV0bGluay9pbnRyby1zcGVjcy5yc3Q6Njc6ICAvKlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9mb3UueWFtbCAqL1xcbkRvY3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9uZXRsaW5rL2ludHJvLXNwZWNzLnJzdC02OC0gIC8qIFlOTC1HRU4ga2VybmVsIHNvdXJjZSAqL1xcbi0tXFxuRG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL25ldGxpbmsvc3BlY3MucnN0PTE1PUludGVybmFsbHkga2VybmVsIHVzZXMgdGhlIFlBTUwgc3BlY3MgdG8gZ2VuZXJhdGU6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbmV0bGluay9zcGVjcy5yc3QtMTctIC0gdGhlIEMgdUFQSSBoZWFkZXJcXG5Eb2N1bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbmV0bGluay9zcGVjcy5yc3Q6MTg6IC0gZG9jdW1lbnRhdGlvbiBvZiB0aGUgcHJvdG9jb2wgYXMgYSBSZVNUIGZpbGUgLSBzZWUgOnJlZjpgRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL2luZGV4LnJzdCBcXHUwMDNjc3BlY3NcXHUwMDNlYFxcbkRvY3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9uZXRsaW5rL3NwZWNzLnJzdC0xOS0gLSBwb2xpY3kgdGFibGVzIGZvciBpbnB1dCBhdHRyaWJ1dGUgdmFsaWRhdGlvblxcbi0tXFxuRG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL25ldGxpbmsvc3BlY3MucnN0LTIxLVxcbkRvY3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9uZXRsaW5rL3NwZWNzLnJzdDoyMjpZQU1MIHNwZWNpZmljYXRpb25zIGNhbiBiZSBmb3VuZCB1bmRlciBgYERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9gYFxcbkRvY3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9uZXRsaW5rL3NwZWNzLnJzdC0yMy1cXG4tLVxcbk1BSU5UQUlORVJTPTE5OTg9VDpcXHRnaXQgZ2l0Oi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L2dyZWdraC9zdGFnaW5nLmdpdFxcbk1BSU5UQUlORVJTOjE5OTk6RjpcXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvYmluZGVyLnlhbWxcXG5NQUlOVEFJTkVSUy0yMDAwLUY6XFx0ZHJpdmVycy9hbmRyb2lkL1xcbi0tXFxuTUFJTlRBSU5FUlM9NzkyMT1GOlxcdERvY3VtZW50YXRpb24vZHJpdmVyLWFwaS9kcGxsLnJzdFxcbk1BSU5UQUlORVJTOjc5MjI6RjpcXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvZHBsbC55YW1sXFxuTUFJTlRBSU5FUlMtNzkyMy1GOlxcdGRyaXZlcnMvZHBsbC9cXG4tLVxcbk1BSU5UQUlORVJTPTk2NTk9UzpcXHRNYWludGFpbmVkXFxuTUFJTlRBSU5FUlM6OTY2MDpGOlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9kZXYtZW5lcmd5bW9kZWwueWFtbFxcbk1BSU5UQUlORVJTLTk2NjEtRjpcXHREb2N1bWVudGF0aW9uL3Bvd2VyL2VuZXJneS1tb2RlbC5yc3RcXG4tLVxcbk1BSU5UQUlORVJTPTExNDU1PVM6XFx0TWFpbnRhaW5lZFxcbk1BSU5UQUlORVJTOjExNDU2OkY6XFx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL2hhbmRzaGFrZS55YW1sXFxuTUFJTlRBSU5FUlMtMTE0NTctRjpcXHREb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvdGxzLWhhbmRzaGFrZS5yc3RcXG4tLVxcbk1BSU5UQUlORVJTPTE4OTY1PU06XFx0SmFrdWIgS2ljaW5za2kgXFx1MDAzY2t1YmFAa2VybmVsLm9yZ1xcdTAwM2VcXG5NQUlOVEFJTkVSUzoxODk2NjpGOlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9ldGh0b29sLnlhbWxcXG5NQUlOVEFJTkVSUy0xODk2Ny1GOlxcdERvY3VtZW50YXRpb24vbmV0d29ya2luZy9ldGh0b29sLW5ldGxpbmsucnN0XFxuLS1cXG5NQUlOVEFJTkVSUz0xOTExNz1TOlxcdE1haW50YWluZWRcXG5NQUlOVEFJTkVSUzoxOTExODpGOlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9ydC1hZGRyLnlhbWxcXG5NQUlOVEFJTkVSUzoxOTExOTpGOlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9ydC1uZWlnaC55YW1sXFxuTUFJTlRBSU5FUlM6MTkxMjA6RjpcXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvcnQtcm91dGUueWFtbFxcbk1BSU5UQUlORVJTOjE5MTIxOkY6XFx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL3J0LXJ1bGUueWFtbFxcbk1BSU5UQUlORVJTLTE5MTIyLUY6XFx0aW5jbHVkZS9saW51eC9pbmV0ZGV2aWNlLmhcXG4tLVxcbk1BSU5UQUlORVJTPTE5MjA2PVQ6XFx0Z2l0IGh0dHBzOi8vZ2l0aHViLmNvbS9tdWx0aXBhdGgtdGNwL21wdGNwX25ldC1uZXh0LmdpdCBleHBvcnRcXG5NQUlOVEFJTkVSUzoxOTIwNzpGOlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9tcHRjcF9wbS55YW1sXFxuTUFJTlRBSU5FUlMtMTkyMDgtRjpcXHREb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbXB0Y3AqLnJzdFxcbi0tXFxuTUFJTlRBSU5FUlM9MjA1MTQ9VDpcXHRnaXQgaHR0cHM6Ly9naXRodWIuY29tL09wZW5WUE4vb3Zwbi1uZXQtbmV4dC5naXRcXG5NQUlOVEFJTkVSUzoyMDUxNTpGOlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9vdnBuLnlhbWxcXG5NQUlOVEFJTkVSUy0yMDUxNi1GOlxcdGRyaXZlcnMvbmV0L292cG4vXFxuLS1cXG5NQUlOVEFJTkVSUz0yMTkyMD1NOlxcdFdpbGxlbSBkZSBCcnVpam4gXFx1MDAzY3dpbGxlbWRlYnJ1aWpuLmtlcm5lbEBnbWFpbC5jb21cXHUwMDNlXFxuTUFJTlRBSU5FUlM6MjE5MjE6RjpcXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvcHNwLnlhbWxcXG5NQUlOVEFJTkVSUy0yMTkyMi1GOlxcdERvY3VtZW50YXRpb24vbmV0d29ya2luZy9wc3AucnN0XFxuLS1cXG5NQUlOVEFJTkVSUz0yNjc5ND1TOlxcdFN1cHBvcnRlZFxcbk1BSU5UQUlORVJTOjI2Nzk1OkY6XFx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL3RlYW0ueWFtbFxcbk1BSU5UQUlORVJTLTI2Nzk2LUY6XFx0ZHJpdmVycy9uZXQvdGVhbS9cXG4tLVxcbk1BSU5UQUlORVJTPTI5NDMzPVM6XFx0TWFpbnRhaW5lZFxcbk1BSU5UQUlORVJTOjI5NDM0OkY6XFx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL3dpcmVndWFyZC55YW1sXFxuTUFJTlRBSU5FUlMtMjk0MzUtRjpcXHRkcml2ZXJzL25ldC93aXJlZ3VhcmQvXFxuLS1cXG5kcml2ZXJzL2FuZHJvaWQvYmluZGVyL25ldGxpbmsucnMtMS0vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogKChHUEwtMi4wIFdJVEggTGludXgtc3lzY2FsbC1ub3RlKSBPUiBCU0QtMy1DbGF1c2UpXFxuZHJpdmVycy9hbmRyb2lkL2JpbmRlci9uZXRsaW5rLnJzOjI6LyogQmFzZWQgb246IERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9iaW5kZXIueWFtbCAqL1xcbmRyaXZlcnMvYW5kcm9pZC9iaW5kZXIvbmV0bGluay5ycy0zLVxcbi0tXFxuZHJpdmVycy9hbmRyb2lkL2JpbmRlcl9uZXRsaW5rLmMtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cXG5kcml2ZXJzL2FuZHJvaWQvYmluZGVyX25ldGxpbmsuYzozOi8qXFx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL2JpbmRlci55YW1sICovXFxuZHJpdmVycy9hbmRyb2lkL2JpbmRlcl9uZXRsaW5rLmMtNC0vKiBZTkwtR0VOIGtlcm5lbCBzb3VyY2UgKi9cXG4tLVxcbmRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfbmV0bGluay5oLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXFxuZHJpdmVycy9hbmRyb2lkL2JpbmRlcl9uZXRsaW5rLmg6MzovKlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9iaW5kZXIueWFtbCAqL1xcbmRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfbmV0bGluay5oLTQtLyogWU5MLUdFTiBrZXJuZWwgaGVhZGVyICovXFxuLS1cXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5jLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXFxuZHJpdmVycy9kcGxsL2RwbGxfbmwuYzozOi8qXFx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL2RwbGwueWFtbCAqL1xcbmRyaXZlcnMvZHBsbC9kcGxsX25sLmMtNC0vKiBZTkwtR0VOIGtlcm5lbCBzb3VyY2UgKi9cXG4tLVxcbmRyaXZlcnMvZHBsbC9kcGxsX25sLmgtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5oOjM6LypcXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvZHBsbC55YW1sICovXFxuZHJpdmVycy9kcGxsL2RwbGxfbmwuaC00LS8qIFlOTC1HRU4ga2VybmVsIGhlYWRlciAqL1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9yYXNfbmwuYy0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fcmFzX25sLmM6MzovKlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9kcm1fcmFzLnlhbWwgKi9cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX3Jhc19ubC5jLTQtLyogWU5MLUdFTiBrZXJuZWwgc291cmNlICovXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX3Jhc19ubC5oLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXFxuZHJpdmVycy9ncHUvZHJtL2RybV9yYXNfbmwuaDozOi8qXFx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL2RybV9yYXMueWFtbCAqL1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fcmFzX25sLmgtNC0vKiBZTkwtR0VOIGtlcm5lbCBoZWFkZXIgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L292cG4vbmV0bGluay1nZW4uYy0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xcbmRyaXZlcnMvbmV0L292cG4vbmV0bGluay1nZW4uYzozOi8qXFx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL292cG4ueWFtbCAqL1xcbmRyaXZlcnMvbmV0L292cG4vbmV0bGluay1nZW4uYy00LS8qIFlOTC1HRU4ga2VybmVsIHNvdXJjZSAqL1xcbi0tXFxuZHJpdmVycy9uZXQvb3Zwbi9uZXRsaW5rLWdlbi5oLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXFxuZHJpdmVycy9uZXQvb3Zwbi9uZXRsaW5rLWdlbi5oOjM6LypcXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3Mvb3Zwbi55YW1sICovXFxuZHJpdmVycy9uZXQvb3Zwbi9uZXRsaW5rLWdlbi5oLTQtLyogWU5MLUdFTiBrZXJuZWwgaGVhZGVyICovXFxuLS1cXG5kcml2ZXJzL25ldC90ZWFtL3RlYW1fbmwuYy0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xcbmRyaXZlcnMvbmV0L3RlYW0vdGVhbV9ubC5jOjM6LypcXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvdGVhbS55YW1sICovXFxuZHJpdmVycy9uZXQvdGVhbS90ZWFtX25sLmMtNC0vKiBZTkwtR0VOIGtlcm5lbCBzb3VyY2UgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3RlYW0vdGVhbV9ubC5oLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXFxuZHJpdmVycy9uZXQvdGVhbS90ZWFtX25sLmg6MzovKlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy90ZWFtLnlhbWwgKi9cXG5kcml2ZXJzL25ldC90ZWFtL3RlYW1fbmwuaC00LS8qIFlOTC1HRU4ga2VybmVsIGhlYWRlciAqL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWd1YXJkL2dlbmVyYXRlZC9uZXRsaW5rLmMtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cXG5kcml2ZXJzL25ldC93aXJlZ3VhcmQvZ2VuZXJhdGVkL25ldGxpbmsuYzozOi8qXFx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL3dpcmVndWFyZC55YW1sICovXFxuZHJpdmVycy9uZXQvd2lyZWd1YXJkL2dlbmVyYXRlZC9uZXRsaW5rLmMtNC0vKiBZTkwtR0VOIGtlcm5lbCBzb3VyY2UgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVndWFyZC9nZW5lcmF0ZWQvbmV0bGluay5oLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXFxuZHJpdmVycy9uZXQvd2lyZWd1YXJkL2dlbmVyYXRlZC9uZXRsaW5rLmg6MzovKlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy93aXJlZ3VhcmQueWFtbCAqL1xcbmRyaXZlcnMvbmV0L3dpcmVndWFyZC9nZW5lcmF0ZWQvbmV0bGluay5oLTQtLyogWU5MLUdFTiBrZXJuZWwgaGVhZGVyICovXFxuLS1cXG5mcy9sb2NrZC9uZXRsaW5rLmMtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cXG5mcy9sb2NrZC9uZXRsaW5rLmM6MzovKlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9sb2NrZC55YW1sICovXFxuZnMvbG9ja2QvbmV0bGluay5jLTQtLyogWU5MLUdFTiBrZXJuZWwgc291cmNlICovXFxuLS1cXG5mcy9sb2NrZC9uZXRsaW5rLmgtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cXG5mcy9sb2NrZC9uZXRsaW5rLmg6MzovKlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9sb2NrZC55YW1sICovXFxuZnMvbG9ja2QvbmV0bGluay5oLTQtLyogWU5MLUdFTiBrZXJuZWwgaGVhZGVyICovXFxuLS1cXG5mcy9uZnNkL25ldGxpbmsuYy0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xcbmZzL25mc2QvbmV0bGluay5jOjM6LypcXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvbmZzZC55YW1sICovXFxuZnMvbmZzZC9uZXRsaW5rLmMtNC0vKiBZTkwtR0VOIGtlcm5lbCBzb3VyY2UgKi9cXG4tLVxcbmZzL25mc2QvbmV0bGluay5oLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXFxuZnMvbmZzZC9uZXRsaW5rLmg6MzovKlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9uZnNkLnlhbWwgKi9cXG5mcy9uZnNkL25ldGxpbmsuaC00LS8qIFlOTC1HRU4ga2VybmVsIGhlYWRlciAqL1xcbi0tXFxuaW5jbHVkZS9uZXQveGRwLmg9NTY0PXZvaWQgeGRwX2F0dGFjaG1lbnRfc2V0dXAoc3RydWN0IHhkcF9hdHRhY2htZW50X2luZm8gKmluZm8sXFxuLS1cXG5pbmNsdWRlL25ldC94ZHAuaC01NzEtICogLSB4ZHBfcnhfbWV0YWRhdGEgZW51bVxcbmluY2x1ZGUvbmV0L3hkcC5oOjU3MjogKiAtIG5ldGRldiBuZXRsaW5rIGVudW0gKERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9uZXRkZXYueWFtbClcXG5pbmNsdWRlL25ldC94ZHAuaC01NzMtICogLSBrZnVuYyBuYW1lXFxuLS1cXG5pbmNsdWRlL3VhcGkvZHJtL2RybV9yYXMuaC0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xcbmluY2x1ZGUvdWFwaS9kcm0vZHJtX3Jhcy5oOjM6LypcXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvZHJtX3Jhcy55YW1sICovXFxuaW5jbHVkZS91YXBpL2RybS9kcm1fcmFzLmgtNC0vKiBZTkwtR0VOIHVhcGkgaGVhZGVyICovXFxuLS1cXG5pbmNsdWRlL3VhcGkvZHJtL3hlX2RybS5oPTI1MTY9c3RydWN0IGRybV94ZV9leGVjX3F1ZXVlX3NldF9wcm9wZXJ0eSB7XFxuLS1cXG5pbmNsdWRlL3VhcGkvZHJtL3hlX2RybS5oLTI1MzYtICogVGhlIGVudW1zIGFuZCBzdHJpbmdzIGRlZmluZWQgYmVsb3cgbWFwIHRvIHRoZSBhdHRyaWJ1dGVzIG9mIHRoZSBEUk0gUkFTIE5ldGxpbmsgSW50ZXJmYWNlLlxcbmluY2x1ZGUvdWFwaS9kcm0veGVfZHJtLmg6MjUzNzogKiBSZWZlciB0byBEb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvZHJtX3Jhcy55YW1sIGZvciBjb21wbGV0ZSBpbnRlcmZhY2Ugc3BlY2lmaWNhdGlvbi5cXG5pbmNsdWRlL3VhcGkvZHJtL3hlX2RybS5oLTI1MzgtICpcXG4tLVxcbmluY2x1ZGUvdWFwaS9saW51eC9hbmRyb2lkL2JpbmRlcl9uZXRsaW5rLmgtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cXG5pbmNsdWRlL3VhcGkvbGludXgvYW5kcm9pZC9iaW5kZXJfbmV0bGluay5oOjM6LypcXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvYmluZGVyLnlhbWwgKi9cXG5pbmNsdWRlL3VhcGkvbGludXgvYW5kcm9pZC9iaW5kZXJfbmV0bGluay5oLTQtLyogWU5MLUdFTiB1YXBpIGhlYWRlciAqL1xcbi0tXFxuaW5jbHVkZS91YXBpL2xpbnV4L2Rldl9lbmVyZ3ltb2RlbC5oLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXFxuaW5jbHVkZS91YXBpL2xpbnV4L2Rldl9lbmVyZ3ltb2RlbC5oOjM6LypcXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvZGV2LWVuZXJneW1vZGVsLnlhbWwgKi9cXG5pbmNsdWRlL3VhcGkvbGludXgvZGV2X2VuZXJneW1vZGVsLmgtNC0vKiBZTkwtR0VOIHVhcGkgaGVhZGVyICovXFxuLS1cXG5pbmNsdWRlL3VhcGkvbGludXgvZGV2bGluay5oPTQxMj1lbnVtIGRldmxpbmtfYXR0ciB7XFxuLS1cXG5pbmNsdWRlL3VhcGkvbGludXgvZGV2bGluay5oLTY1My1cXHQvKiBBZGQgbmV3IGF0dHJpYnV0ZXMgYWJvdmUgaGVyZSwgdXBkYXRlIHRoZSBzcGVjIGluXFxuaW5jbHVkZS91YXBpL2xpbnV4L2RldmxpbmsuaDo2NTQ6XFx0ICogRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL2RldmxpbmsueWFtbCBhbmQgcmUtZ2VuZXJhdGVcXG5pbmNsdWRlL3VhcGkvbGludXgvZGV2bGluay5oLTY1NS1cXHQgKiBuZXQvZGV2bGluay9uZXRsaW5rX2dlbi5jLlxcbi0tXFxuaW5jbHVkZS91YXBpL2xpbnV4L2RwbGwuaC0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xcbmluY2x1ZGUvdWFwaS9saW51eC9kcGxsLmg6MzovKlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9kcGxsLnlhbWwgKi9cXG5pbmNsdWRlL3VhcGkvbGludXgvZHBsbC5oLTQtLyogWU5MLUdFTiB1YXBpIGhlYWRlciAqL1xcbi0tXFxuaW5jbHVkZS91YXBpL2xpbnV4L2V0aHRvb2xfbmV0bGlua19nZW5lcmF0ZWQuaC0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xcbmluY2x1ZGUvdWFwaS9saW51eC9ldGh0b29sX25ldGxpbmtfZ2VuZXJhdGVkLmg6MzovKlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9ldGh0b29sLnlhbWwgKi9cXG5pbmNsdWRlL3VhcGkvbGludXgvZXRodG9vbF9uZXRsaW5rX2dlbmVyYXRlZC5oLTQtLyogWU5MLUdFTiB1YXBpIGhlYWRlciAqL1xcbi0tXFxuaW5jbHVkZS91YXBpL2xpbnV4L2ZvdS5oLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXFxuaW5jbHVkZS91YXBpL2xpbnV4L2ZvdS5oOjM6LypcXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvZm91LnlhbWwgKi9cXG5pbmNsdWRlL3VhcGkvbGludXgvZm91LmgtNC0vKiBZTkwtR0VOIHVhcGkgaGVhZGVyICovXFxuLS1cXG5pbmNsdWRlL3VhcGkvbGludXgvaGFuZHNoYWtlLmgtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cXG5pbmNsdWRlL3VhcGkvbGludXgvaGFuZHNoYWtlLmg6MzovKlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9oYW5kc2hha2UueWFtbCAqL1xcbmluY2x1ZGUvdWFwaS9saW51eC9oYW5kc2hha2UuaC00LS8qIFlOTC1HRU4gdWFwaSBoZWFkZXIgKi9cXG4tLVxcbmluY2x1ZGUvdWFwaS9saW51eC9pZl90ZWFtLmgtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cXG5pbmNsdWRlL3VhcGkvbGludXgvaWZfdGVhbS5oOjM6LypcXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvdGVhbS55YW1sICovXFxuaW5jbHVkZS91YXBpL2xpbnV4L2lmX3RlYW0uaC00LS8qIFlOTC1HRU4gdWFwaSBoZWFkZXIgKi9cXG4tLVxcbmluY2x1ZGUvdWFwaS9saW51eC9sb2NrZF9uZXRsaW5rLmgtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cXG5pbmNsdWRlL3VhcGkvbGludXgvbG9ja2RfbmV0bGluay5oOjM6LypcXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvbG9ja2QueWFtbCAqL1xcbmluY2x1ZGUvdWFwaS9saW51eC9sb2NrZF9uZXRsaW5rLmgtNC0vKiBZTkwtR0VOIHVhcGkgaGVhZGVyICovXFxuLS1cXG5pbmNsdWRlL3VhcGkvbGludXgvbXB0Y3BfcG0uaC0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xcbmluY2x1ZGUvdWFwaS9saW51eC9tcHRjcF9wbS5oOjM6LypcXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvbXB0Y3BfcG0ueWFtbCAqL1xcbmluY2x1ZGUvdWFwaS9saW51eC9tcHRjcF9wbS5oLTQtLyogWU5MLUdFTiB1YXBpIGhlYWRlciAqL1xcbi0tXFxuaW5jbHVkZS91YXBpL2xpbnV4L25ldF9zaGFwZXIuaC0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xcbmluY2x1ZGUvdWFwaS9saW51eC9uZXRfc2hhcGVyLmg6MzovKlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9uZXRfc2hhcGVyLnlhbWwgKi9cXG5pbmNsdWRlL3VhcGkvbGludXgvbmV0X3NoYXBlci5oLTQtLyogWU5MLUdFTiB1YXBpIGhlYWRlciAqL1xcbi0tXFxuaW5jbHVkZS91YXBpL2xpbnV4L25ldGRldi5oLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXFxuaW5jbHVkZS91YXBpL2xpbnV4L25ldGRldi5oOjM6LypcXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvbmV0ZGV2LnlhbWwgKi9cXG5pbmNsdWRlL3VhcGkvbGludXgvbmV0ZGV2LmgtNC0vKiBZTkwtR0VOIHVhcGkgaGVhZGVyICovXFxuLS1cXG5pbmNsdWRlL3VhcGkvbGludXgvbmZzZF9uZXRsaW5rLmgtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cXG5pbmNsdWRlL3VhcGkvbGludXgvbmZzZF9uZXRsaW5rLmg6MzovKlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9uZnNkLnlhbWwgKi9cXG5pbmNsdWRlL3VhcGkvbGludXgvbmZzZF9uZXRsaW5rLmgtNC0vKiBZTkwtR0VOIHVhcGkgaGVhZGVyICovXFxuLS1cXG5pbmNsdWRlL3VhcGkvbGludXgvb3Zwbi5oLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXFxuaW5jbHVkZS91YXBpL2xpbnV4L292cG4uaDozOi8qXFx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL292cG4ueWFtbCAqL1xcbmluY2x1ZGUvdWFwaS9saW51eC9vdnBuLmgtNC0vKiBZTkwtR0VOIHVhcGkgaGVhZGVyICovXFxuLS1cXG5pbmNsdWRlL3VhcGkvbGludXgvcHNwLmgtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cXG5pbmNsdWRlL3VhcGkvbGludXgvcHNwLmg6MzovKlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9wc3AueWFtbCAqL1xcbmluY2x1ZGUvdWFwaS9saW51eC9wc3AuaC00LS8qIFlOTC1HRU4gdWFwaSBoZWFkZXIgKi9cXG4tLVxcbmluY2x1ZGUvdWFwaS9saW51eC9zdW5ycGNfbmV0bGluay5oLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXFxuaW5jbHVkZS91YXBpL2xpbnV4L3N1bnJwY19uZXRsaW5rLmg6MzovKlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9zdW5ycGNfY2FjaGUueWFtbCAqL1xcbmluY2x1ZGUvdWFwaS9saW51eC9zdW5ycGNfbmV0bGluay5oLTQtLyogWU5MLUdFTiB1YXBpIGhlYWRlciAqL1xcbi0tXFxuaW5jbHVkZS91YXBpL2xpbnV4L3dpcmVndWFyZC5oLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXFxuaW5jbHVkZS91YXBpL2xpbnV4L3dpcmVndWFyZC5oOjM6LypcXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3Mvd2lyZWd1YXJkLnlhbWwgKi9cXG5pbmNsdWRlL3VhcGkvbGludXgvd2lyZWd1YXJkLmgtNC0vKiBZTkwtR0VOIHVhcGkgaGVhZGVyICovXFxuLS1cXG5rZXJuZWwvcG93ZXIvZW1fbmV0bGlua19hdXRvZ2VuLmMtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cXG5rZXJuZWwvcG93ZXIvZW1fbmV0bGlua19hdXRvZ2VuLmM6MzovKlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9kZXYtZW5lcmd5bW9kZWwueWFtbCAqL1xcbmtlcm5lbC9wb3dlci9lbV9uZXRsaW5rX2F1dG9nZW4uYy00LS8qIFlOTC1HRU4ga2VybmVsIHNvdXJjZSAqL1xcbi0tXFxua2VybmVsL3Bvd2VyL2VtX25ldGxpbmtfYXV0b2dlbi5oLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXFxua2VybmVsL3Bvd2VyL2VtX25ldGxpbmtfYXV0b2dlbi5oOjM6LypcXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvZGV2LWVuZXJneW1vZGVsLnlhbWwgKi9cXG5rZXJuZWwvcG93ZXIvZW1fbmV0bGlua19hdXRvZ2VuLmgtNC0vKiBZTkwtR0VOIGtlcm5lbCBoZWFkZXIgKi9cXG4tLVxcbm5ldC9jb3JlL25ldGRldi1nZW5sLWdlbi5jLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXFxubmV0L2NvcmUvbmV0ZGV2LWdlbmwtZ2VuLmM6MzovKlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9uZXRkZXYueWFtbCAqL1xcbm5ldC9jb3JlL25ldGRldi1nZW5sLWdlbi5jLTQtLyogWU5MLUdFTiBrZXJuZWwgc291cmNlICovXFxuLS1cXG5uZXQvY29yZS9uZXRkZXYtZ2VubC1nZW4uaC0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xcbm5ldC9jb3JlL25ldGRldi1nZW5sLWdlbi5oOjM6LypcXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvbmV0ZGV2LnlhbWwgKi9cXG5uZXQvY29yZS9uZXRkZXYtZ2VubC1nZW4uaC00LS8qIFlOTC1HRU4ga2VybmVsIGhlYWRlciAqL1xcbi0tXFxubmV0L2RldmxpbmsvbmV0bGlua19nZW4uYy0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xcbm5ldC9kZXZsaW5rL25ldGxpbmtfZ2VuLmM6MzovKlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9kZXZsaW5rLnlhbWwgKi9cXG5uZXQvZGV2bGluay9uZXRsaW5rX2dlbi5jLTQtLyogWU5MLUdFTiBrZXJuZWwgc291cmNlICovXFxuLS1cXG5uZXQvZGV2bGluay9uZXRsaW5rX2dlbi5oLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXFxubmV0L2RldmxpbmsvbmV0bGlua19nZW4uaDozOi8qXFx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL2RldmxpbmsueWFtbCAqL1xcbm5ldC9kZXZsaW5rL25ldGxpbmtfZ2VuLmgtNC0vKiBZTkwtR0VOIGtlcm5lbCBoZWFkZXIgKi9cXG4tLVxcbm5ldC9oYW5kc2hha2UvZ2VubC5jLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXFxubmV0L2hhbmRzaGFrZS9nZW5sLmM6MzovKlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9oYW5kc2hha2UueWFtbCAqL1xcbm5ldC9oYW5kc2hha2UvZ2VubC5jLTQtLyogWU5MLUdFTiBrZXJuZWwgc291cmNlICovXFxuLS1cXG5uZXQvaGFuZHNoYWtlL2dlbmwuaC0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xcbm5ldC9oYW5kc2hha2UvZ2VubC5oOjM6LypcXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvaGFuZHNoYWtlLnlhbWwgKi9cXG5uZXQvaGFuZHNoYWtlL2dlbmwuaC00LS8qIFlOTC1HRU4ga2VybmVsIGhlYWRlciAqL1xcbi0tXFxubmV0L2lwdjQvZm91X25sLmMtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cXG5uZXQvaXB2NC9mb3VfbmwuYzozOi8qXFx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL2ZvdS55YW1sICovXFxubmV0L2lwdjQvZm91X25sLmMtNC0vKiBZTkwtR0VOIGtlcm5lbCBzb3VyY2UgKi9cXG4tLVxcbm5ldC9pcHY0L2ZvdV9ubC5oLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXFxubmV0L2lwdjQvZm91X25sLmg6MzovKlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9mb3UueWFtbCAqL1xcbm5ldC9pcHY0L2ZvdV9ubC5oLTQtLyogWU5MLUdFTiBrZXJuZWwgaGVhZGVyICovXFxuLS1cXG5uZXQvbXB0Y3AvbXB0Y3BfcG1fZ2VuLmMtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cXG5uZXQvbXB0Y3AvbXB0Y3BfcG1fZ2VuLmM6MzovKlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9tcHRjcF9wbS55YW1sICovXFxubmV0L21wdGNwL21wdGNwX3BtX2dlbi5jLTQtLyogWU5MLUdFTiBrZXJuZWwgc291cmNlICovXFxuLS1cXG5uZXQvbXB0Y3AvbXB0Y3BfcG1fZ2VuLmgtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cXG5uZXQvbXB0Y3AvbXB0Y3BfcG1fZ2VuLmg6MzovKlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9tcHRjcF9wbS55YW1sICovXFxubmV0L21wdGNwL21wdGNwX3BtX2dlbi5oLTQtLyogWU5MLUdFTiBrZXJuZWwgaGVhZGVyICovXFxuLS1cXG5uZXQvcHNwL3BzcC1ubC1nZW4uYy0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xcbm5ldC9wc3AvcHNwLW5sLWdlbi5jOjM6LypcXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvcHNwLnlhbWwgKi9cXG5uZXQvcHNwL3BzcC1ubC1nZW4uYy00LS8qIFlOTC1HRU4ga2VybmVsIHNvdXJjZSAqL1xcbi0tXFxubmV0L3BzcC9wc3AtbmwtZ2VuLmgtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cXG5uZXQvcHNwL3BzcC1ubC1nZW4uaDozOi8qXFx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL3BzcC55YW1sICovXFxubmV0L3BzcC9wc3AtbmwtZ2VuLmgtNC0vKiBZTkwtR0VOIGtlcm5lbCBoZWFkZXIgKi9cXG4tLVxcbm5ldC9zaGFwZXIvc2hhcGVyX25sX2dlbi5jLTItLyogRG8gbm90IGVkaXQgZGlyZWN0bHksIGF1dG8tZ2VuZXJhdGVkIGZyb206ICovXFxubmV0L3NoYXBlci9zaGFwZXJfbmxfZ2VuLmM6MzovKlxcdERvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9uZXRfc2hhcGVyLnlhbWwgKi9cXG5uZXQvc2hhcGVyL3NoYXBlcl9ubF9nZW4uYy00LS8qIFlOTC1HRU4ga2VybmVsIHNvdXJjZSAqL1xcbi0tXFxubmV0L3NoYXBlci9zaGFwZXJfbmxfZ2VuLmgtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cXG5uZXQvc2hhcGVyL3NoYXBlcl9ubF9nZW4uaDozOi8qXFx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL25ldF9zaGFwZXIueWFtbCAqL1xcbm5ldC9zaGFwZXIvc2hhcGVyX25sX2dlbi5oLTQtLyogWU5MLUdFTiBrZXJuZWwgaGVhZGVyICovXFxuLS1cXG5uZXQvc3VucnBjL25ldGxpbmsuYy0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xcbm5ldC9zdW5ycGMvbmV0bGluay5jOjM6LypcXHREb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3Mvc3VucnBjX2NhY2hlLnlhbWwgKi9cXG5uZXQvc3VucnBjL25ldGxpbmsuYy00LS8qIFlOTC1HRU4ga2VybmVsIHNvdXJjZSAqL1xcbi0tXFxubmV0L3N1bnJwYy9uZXRsaW5rLmgtMi0vKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5lcmF0ZWQgZnJvbTogKi9cXG5uZXQvc3VucnBjL25ldGxpbmsuaDozOi8qXFx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL3N1bnJwY19jYWNoZS55YW1sICovXFxubmV0L3N1bnJwYy9uZXRsaW5rLmgtNC0vKiBZTkwtR0VOIGtlcm5lbCBoZWFkZXIgKi9cXG4tLVxcbnRvb2xzL2luY2x1ZGUvdWFwaS9saW51eC9uZXRkZXYuaC0yLS8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqL1xcbnRvb2xzL2luY2x1ZGUvdWFwaS9saW51eC9uZXRkZXYuaDozOi8qXFx0RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL25ldGRldi55YW1sICovXFxudG9vbHMvaW5jbHVkZS91YXBpL2xpbnV4L25ldGRldi5oLTQtLyogWU5MLUdFTiB1YXBpIGhlYWRlciAqL1xcbi0tXFxudG9vbHMvbmV0L3lubC9NYWtlZmlsZT0xND1pbmNsdWRlZGlyID89ICQocHJlZml4KS9pbmNsdWRlXFxudG9vbHMvbmV0L3lubC9NYWtlZmlsZS0xNS1cXG50b29scy9uZXQveW5sL01ha2VmaWxlOjE2OlNQRUNESVI9Li4vLi4vLi4vRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzXFxudG9vbHMvbmV0L3lubC9NYWtlZmlsZS0xNy1cXG4tLVxcbnRvb2xzL25ldC95bmwvZ2VuZXJhdGVkL01ha2VmaWxlPTIzPVRPT0xfUlNUOj0uLi9weXlubC95bmxfZ2VuX3JzdC5weVxcbnRvb2xzL25ldC95bmwvZ2VuZXJhdGVkL01ha2VmaWxlLTI0LVxcbnRvb2xzL25ldC95bmwvZ2VuZXJhdGVkL01ha2VmaWxlOjI1OlNQRUNTX0RJUjo9Li4vLi4vLi4vLi4vRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzXFxudG9vbHMvbmV0L3lubC9nZW5lcmF0ZWQvTWFrZWZpbGUtMjYtU1BFQ1NfUEFUSFM9JCh3aWxkY2FyZCAkKFNQRUNTX0RJUikvKi55YW1sKVxcbi0tXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2xpYi9NYWtlZmlsZT04PVRFU1RfRklMRVMgOj0gXFxcXFxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9saWIvTWFrZWZpbGUtOS1cXHQuLi8uLi8uLi8uLi9uZXQveW5sIFxcXFxcXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbGliL01ha2VmaWxlOjEwOlxcdC4uLy4uLy4uLy4uLy4uL0RvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcyBcXFxcXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2xpYi9NYWtlZmlsZS0xMS1cXHRrc2Z0X3NldHVwX2xvb3BiYWNrLnNoIFxcXFxcXG4tLVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9saWIvcHkveW5sLnB5PTk9dHJ5Olxcbi0tXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2xpYi9weS95bmwucHktMTktICAgICAgICB0b29sc19mdWxsX3BhdGggPSBLU1JDIC8gXFxcInRvb2xzXFxcIlxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9saWIvcHkveW5sLnB5OjIwOiAgICAgICAgU1BFQ19QQVRIID0gS1NSQyAvIFxcXCJEb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3NcXFwiXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2xpYi9weS95bmwucHktMjEtXFxuLS1cXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQveW5sLm1rPTEzPVlOTF9TUEVDUyA6PSBcXFxcXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3lubC5tazoxNDpcXHQkKHBhdHN1YnN0ICUsJCh0b3Bfc3JjZGlyKS9Eb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvJS55YW1sLCQoWU5MX0dFTlMpKVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC95bmwubWstMTUtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEzVDAxOjExOjE2Ljg0OTg3MTExWiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy44LWZsYXNoIiwiRHVyYXRpb24iOjI1MDg0OTk4MjIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhlIHRjcF9tZXRyaWNzLnlhbWwgU3BlY2lmaWNhdGlvbioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgTmV0bGluayBkb2N1bWVudGF0aW9uIHN0cnVjdHVyZSwgc3BlY2lmaWNhbGx5IGBEb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvdGNwX21ldHJpY3MueWFtbGAuIEltbWVkaWF0ZWx5LCBzb21ldGhpbmcncyBvZmYuIEkgc2VlIGFsbCB0aGVzZSBvdGhlciBmaWxlcyBpbiBwbGFjZXMgbGlrZSBgZm91X25sLmNgIGFuZCBgZGV2bGlua19nZW4uY2AgdGhhdCBoYXZlIGNsZWFybHkgYXV0by1nZW5lcmF0ZWQgY29tcG9uZW50cyBkaXJlY3RseSBjb21taXR0ZWQgaW50byB0aGUgY29kZWJhc2UuIFRoYXQncyBzdGFuZGFyZCBwcmFjdGljZSwgYSBjbGVhciBpbmRpY2F0aW9uIG9mIGEgc3BlYyBiZWluZyB1c2VkIHRvIGRyaXZlIGNvZGUgZ2VuZXJhdGlvbi4gQnV0IGhlcmUsIHdpdGggYHRjcF9tZXRyaWNzYCwgdGhlIGdlbmVyYXRlZCBmaWxlLCBgdGNwX21ldHJpY3MuY2AsIGlzICpoYW5kd3JpdHRlbiogd2hpY2ggaXMgYW4gaW1tZWRpYXRlbHkgc3RyYW5nZSBvYnNlcnZhdGlvbiBhbmQgcmFpc2VzIGNvbmNlcm5zIGFib3V0IHRoZSBjb25zaXN0ZW5jeSBvZiBvdXIgbWV0aG9kb2xvZ3kuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoeSB0aGlzIHNwZWNpZmljYXRpb24gaXNuJ3QgYmVpbmcgdXNlZCBhcyB0aGUgc291cmNlIG9mIHRydXRoIGluIHRoZSBjb2RlIGdlbmVyYXRpb24gcHJvY2Vzcy4gUGVyaGFwcyB0aGVyZSBhcmUgY3JpdGljYWwgZGVzaWduIGRlY2lzaW9ucyB0aGUgc3BlY2lmaWNhdGlvbiBkb2Vzbid0IGZ1bGx5IGNhcHR1cmUsIG9yIG1heWJlIHRoZXJlJ3MgYSBkaXNjb25uZWN0IGluIG91ciB0b29scy4gUmVnYXJkbGVzcywgdGhlIGRpdmVyZ2VuY2UgZnJvbSB0aGUgZXN0YWJsaXNoZWQgcGF0dGVybiB3YXJyYW50cyBmdXJ0aGVyIGludmVzdGlnYXRpb24sIHN0YXJ0aW5nIGJ5IGRpZ2dpbmcgaW50byB0aGUgZmlsZSBpdHNlbGYuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxMDA3LCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTAyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEzVDAxOjExOjE5LjM1ODM3NDUyMloiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MzYxMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJEb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvdGNwX21ldHJpY3MueWFtbFwiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiA1MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6ICgoR1BMLTIuMCBXSVRIIExpbnV4LXN5c2NhbGwtbm90ZSkgT1IgQlNELTMtQ2xhdXNlKVxcbiAgIDI6XFx0LS0tXFxuICAgMzpcXHRuYW1lOiB0Y3BfbWV0cmljc1xcbiAgIDQ6XFx0XFxuICAgNTpcXHRwcm90b2NvbDogZ2VuZXRsaW5rLWxlZ2FjeVxcbiAgIDY6XFx0XFxuICAgNzpcXHRkb2M6IHxcXG4gICA4OlxcdCAgTWFuYWdlbWVudCBpbnRlcmZhY2UgZm9yIFRDUCBtZXRyaWNzLlxcbiAgIDk6XFx0XFxuICAxMDpcXHRjLWZhbWlseS1uYW1lOiB0Y3AtbWV0cmljcy1nZW5sLW5hbWVcXG4gIDExOlxcdGMtdmVyc2lvbi1uYW1lOiB0Y3AtbWV0cmljcy1nZW5sLXZlcnNpb25cXG4gIDEyOlxcdG1heC1ieS1kZWZpbmU6IHRydWVcXG4gIDEzOlxcdGtlcm5lbC1wb2xpY3k6IGdsb2JhbFxcbiAgMTQ6XFx0XFxuICAxNTpcXHRkZWZpbml0aW9uczpcXG4gIDE2OlxcdCAgLVxcbiAgMTc6XFx0ICAgIG5hbWU6IHRjcC1mYXN0b3Blbi1jb29raWUtbWF4XFxuICAxODpcXHQgICAgdHlwZTogY29uc3RcXG4gIDE5OlxcdCAgICB2YWx1ZTogMTZcXG4gIDIwOlxcdFxcbiAgMjE6XFx0YXR0cmlidXRlLXNldHM6XFxuICAyMjpcXHQgIC1cXG4gIDIzOlxcdCAgICBuYW1lOiB0Y3AtbWV0cmljc1xcbiAgMjQ6XFx0ICAgIG5hbWUtcHJlZml4OiB0Y3AtbWV0cmljcy1hdHRyLVxcbiAgMjU6XFx0ICAgIGF0dHJpYnV0ZXM6XFxuICAyNjpcXHQgICAgICAtXFxuICAyNzpcXHQgICAgICAgIG5hbWU6IGFkZHItaXB2NFxcbiAgMjg6XFx0ICAgICAgICB0eXBlOiB1MzJcXG4gIDI5OlxcdCAgICAgICAgYnl0ZS1vcmRlcjogYmlnLWVuZGlhblxcbiAgMzA6XFx0ICAgICAgICBkaXNwbGF5LWhpbnQ6IGlwdjRcXG4gIDMxOlxcdCAgICAgIC1cXG4gIDMyOlxcdCAgICAgICAgbmFtZTogYWRkci1pcHY2XFxuICAzMzpcXHQgICAgICAgIHR5cGU6IGJpbmFyeVxcbiAgMzQ6XFx0ICAgICAgICBjaGVja3M6XFxuICAzNTpcXHQgICAgICAgICAgZXhhY3QtbGVuOiAxNlxcbiAgMzY6XFx0ICAgICAgICBieXRlLW9yZGVyOiBiaWctZW5kaWFuXFxuICAzNzpcXHQgICAgICAgIGRpc3BsYXktaGludDogaXB2NlxcbiAgMzg6XFx0ICAgICAgLVxcbiAgMzk6XFx0ICAgICAgICBuYW1lOiBhZ2VcXG4gIDQwOlxcdCAgICAgICAgdHlwZTogdTY0XFxuICA0MTpcXHQgICAgICAtXFxuICA0MjpcXHQgICAgICAgIG5hbWU6IHR3LXRzdmFsXFxuICA0MzpcXHQgICAgICAgIHR5cGU6IHUzMlxcbiAgNDQ6XFx0ICAgICAgICBkb2M6IHVudXNlZFxcbiAgNDU6XFx0ICAgICAgLVxcbiAgNDY6XFx0ICAgICAgICBuYW1lOiB0dy10cy1zdGFtcFxcbiAgNDc6XFx0ICAgICAgICB0eXBlOiBzMzJcXG4gIDQ4OlxcdCAgICAgICAgZG9jOiB1bnVzZWRcXG4gIDQ5OlxcdCAgICAgIC1cXG4gIDUwOlxcdCAgICAgICAgbmFtZTogdmFsc1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xM1QwMToxMToxOS4zNTg0NDEzNDJaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjgtZmxhc2giLCJEdXJhdGlvbiI6MjI5MTQxMzM5NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgbGluZXMgZnJvbSB0aGUgZG9jdW1lbnRhdGlvbiwgYXMgaWYgdGhleSdyZSBteSBvd24gaW1tZWRpYXRlIHRob3VnaHRzOlxuXG4qKkFuYWx5emluZyBUQ1AgTWV0cmljcyBEb2N1bWVudGF0aW9uKipcblxuQWxyaWdodCwgbGV0J3MgZGl2ZSBpbnRvIHRob3NlIGxpbmVzIOKAkyBzcGVjaWZpY2FsbHksIDUwIHRocm91Z2ggMTMwIG9mIGBEb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvdGNwX21ldHJpY3MueWFtbGAuIEkgbmVlZCB0byByZWZyZXNoIG15IG1lbW9yeSBvbiB0aGUgc3BlY2lmaWMgc3RydWN0dXJlIGJlaW5nIGRlZmluZWQgaGVyZS4gSSByZW1lbWJlciB3b3JraW5nIHdpdGggbmV0bGluayBiZWZvcmUsIHNvIEkgaGF2ZSBhIGJhc2ljIHVuZGVyc3RhbmRpbmcgb2YgdGhlIHByb3RvY29sIGl0c2VsZiwgYnV0IHRoZSBkZXRhaWxzIG9mICp0aGlzKiBzcGVjaWZpYyBzcGVjaWZpY2F0aW9uIGFsd2F5cyByZXF1aXJlIGEgY2xvc2UgcmVhZC4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIHVuZGVyc3RhbmQgaG93IHRoZXNlIFRDUCBtZXRyaWNzIGFyZSBiZWluZyBkZWZpbmVkIHdpdGhpbiB0aGUgbmV0bGluayBmcmFtZXdvcmsuIEFyZSB3ZSB0YWxraW5nIGFib3V0IGF0dHJpYnV0ZXMsIG5lc3RlZCBzdHJ1Y3R1cmVzLCBkYXRhIHR5cGVzLCB0aGUgd29ya3M/IEkgbmVlZCB0byBxdWlja2x5IHJlY2FsbCB0aGUgdHlwaWNhbCBuZXRsaW5rIGF0dHJpYnV0ZSB0eXBlcyB0byBtYXAgdGhlbSBvbnRvIHRoZSBZQU1MIGRlZmluaXRpb25zLiBJIGV4cGVjdCBzb21lIGVudW1zIHRvIGRlZmluZSBzcGVjaWZpYyBtZXRyaWMgaWRlbnRpZmllcnMuIEkgYWxzbyBob3BlIHRvIHNlZSBjbGVhciBleHBsYW5hdGlvbnMgZm9yIGhvdyB2YXJpb3VzIGZsYWdzIG1pZ2h0IGJlIHNldCBvciBpbnRlcnByZXRlZC4gQW55IGV4YW1wbGVzIGluY2x1ZGVkIGhlcmUgd291bGQgYmUgaW5jcmVkaWJseSB1c2VmdWwuIFVsdGltYXRlbHksIG15IGdvYWwgaXMgdG8gc29saWRpZnkgbXkgdW5kZXJzdGFuZGluZyBvZiB0aGUgaW50ZXJmYWNlLCBlbnN1cmluZyBJIGNhbiBpbnRlcnByZXQgYW5kIHVzZSB0aGUgZGF0YSB0aGlzIHNwZWNpZmljYXRpb24gb3V0bGluZXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxOTM0LCJPdXRwdXRUb2tlbnMiOjM5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjgsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0xM1QwMToxMToyMS42NDk4NTc4MjZaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTAyMjcwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcIkRvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy90Y3BfbWV0cmljcy55YW1sXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDUxLFxuICBcIkxpbmVDb3VudFwiOiA4MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgIDUxOlxcdCAgICAgICAgdHlwZTogbmVzdFxcbiAgNTI6XFx0ICAgICAgICBuZXN0ZWQtYXR0cmlidXRlczogbWV0cmljc1xcbiAgNTM6XFx0ICAgICAgLVxcbiAgNTQ6XFx0ICAgICAgICBuYW1lOiBmb3Blbi1tc3NcXG4gIDU1OlxcdCAgICAgICAgdHlwZTogdTE2XFxuICA1NjpcXHQgICAgICAtXFxuICA1NzpcXHQgICAgICAgIG5hbWU6IGZvcGVuLXN5bi1kcm9wc1xcbiAgNTg6XFx0ICAgICAgICB0eXBlOiB1MTZcXG4gIDU5OlxcdCAgICAgIC1cXG4gIDYwOlxcdCAgICAgICAgbmFtZTogZm9wZW4tc3luLWRyb3AtdHNcXG4gIDYxOlxcdCAgICAgICAgdHlwZTogdTY0XFxuICA2MjpcXHQgICAgICAtXFxuICA2MzpcXHQgICAgICAgIG5hbWU6IGZvcGVuLWNvb2tpZVxcbiAgNjQ6XFx0ICAgICAgICB0eXBlOiBiaW5hcnlcXG4gIDY1OlxcdCAgICAgICAgY2hlY2tzOlxcbiAgNjY6XFx0ICAgICAgICAgIG1heC1sZW46IHRjcC1mYXN0b3Blbi1jb29raWUtbWF4XFxuICA2NzpcXHQgICAgICAtXFxuICA2ODpcXHQgICAgICAgIG5hbWU6IHNhZGRyLWlwdjRcXG4gIDY5OlxcdCAgICAgICAgdHlwZTogdTMyXFxuICA3MDpcXHQgICAgICAgIGJ5dGUtb3JkZXI6IGJpZy1lbmRpYW5cXG4gIDcxOlxcdCAgICAgICAgZGlzcGxheS1oaW50OiBpcHY0XFxuICA3MjpcXHQgICAgICAtXFxuICA3MzpcXHQgICAgICAgIG5hbWU6IHNhZGRyLWlwdjZcXG4gIDc0OlxcdCAgICAgICAgdHlwZTogYmluYXJ5XFxuICA3NTpcXHQgICAgICAgIGNoZWNrczpcXG4gIDc2OlxcdCAgICAgICAgICBleGFjdC1sZW46IDE2XFxuICA3NzpcXHQgICAgICAgIGJ5dGUtb3JkZXI6IGJpZy1lbmRpYW5cXG4gIDc4OlxcdCAgICAgICAgZGlzcGxheS1oaW50OiBpcHY2XFxuICA3OTpcXHQgICAgICAtXFxuICA4MDpcXHQgICAgICAgIG5hbWU6IHBhZFxcbiAgODE6XFx0ICAgICAgICB0eXBlOiBwYWRcXG4gIDgyOlxcdFxcbiAgODM6XFx0ICAtXFxuICA4NDpcXHQgICAgbmFtZTogbWV0cmljc1xcbiAgODU6XFx0ICAgICMgSW50ZW50aW9uYWxseSBkb24ndCBkZWZpbmUgdGhlIG5hbWUtcHJlZml4LCBzZWUgYmVsb3cuXFxuICA4NjpcXHQgICAgZG9jOiB8XFxuICA4NzpcXHQgICAgICBBdHRyaWJ1dGVzIHdpdGggbWV0cmljcy4gTm90ZSB0aGF0IHRoZSB2YWx1ZXMgaGVyZSBkbyBub3QgbWF0Y2hcXG4gIDg4OlxcdCAgICAgIHRoZSBUQ1BfTUVUUklDXyogZGVmaW5lcyBpbiB0aGUga2VybmVsLCBiZWNhdXNlIGtlcm5lbCBkZWZpbmVzXFxuICA4OTpcXHQgICAgICBhcmUgb2ZmLWJ5IG9uZSAoZS5nLiBydHQgaXMgZGVmaW5lZCBhcyBlbnVtIDAsIHdoaWxlIG5ldGxpbmsgY2Fycmllc1xcbiAgOTA6XFx0ICAgICAgYXR0cmlidXRlIHR5cGUgMSkuXFxuICA5MTpcXHQgICAgYXR0cmlidXRlczpcXG4gIDkyOlxcdCAgICAgIC1cXG4gIDkzOlxcdCAgICAgICAgbmFtZTogcnR0XFxuICA5NDpcXHQgICAgICAgIHR5cGU6IHUzMlxcbiAgOTU6XFx0ICAgICAgICBkb2M6IHxcXG4gIDk2OlxcdCAgICAgICAgICBSb3VuZCBUcmlwIFRpbWUgKFJUVCksIGluIG1zZWNzIHdpdGggMyBiaXRzIGZyYWN0aW9uYWwuXFxuICA5NzpcXHQgICAgICAtXFxuICA5ODpcXHQgICAgICAgIG5hbWU6IHJ0dHZhclxcbiAgOTk6XFx0ICAgICAgICB0eXBlOiB1MzJcXG4gMTAwOlxcdCAgICAgICAgZG9jOiB8XFxuIDEwMTpcXHQgICAgICAgICAgUm91bmQgVHJpcCBUaW1lIFZBUmlhbmNlIChSVFRWQVIpLCBpbiBtc2VjcyB3aXRoIDIgYml0cyBmcmFjdGlvbmFsLlxcbiAxMDI6XFx0ICAgICAgLVxcbiAxMDM6XFx0ICAgICAgICBuYW1lOiBzc3RocmVzaFxcbiAxMDQ6XFx0ICAgICAgICB0eXBlOiB1MzJcXG4gMTA1OlxcdCAgICAgICAgZG9jOiBTbG93IFN0YXJ0IFRIUkVTSG9sZC5cXG4gMTA2OlxcdCAgICAgIC1cXG4gMTA3OlxcdCAgICAgICAgbmFtZTogY3duZFxcbiAxMDg6XFx0ICAgICAgICB0eXBlOiB1MzJcXG4gMTA5OlxcdCAgICAgICAgZG9jOiBDb25nZXN0aW9uIFdpbmRvdy5cXG4gMTEwOlxcdCAgICAgIC1cXG4gMTExOlxcdCAgICAgICAgbmFtZTogcmVvZGVyaW5nXFxuIDExMjpcXHQgICAgICAgIHR5cGU6IHUzMlxcbiAxMTM6XFx0ICAgICAgICBkb2M6IFJlb2RlcmluZyBtZXRyaWMuXFxuIDExNDpcXHQgICAgICAtXFxuIDExNTpcXHQgICAgICAgIG5hbWU6IHJ0dC11c1xcbiAxMTY6XFx0ICAgICAgICB0eXBlOiB1MzJcXG4gMTE3OlxcdCAgICAgICAgZG9jOiB8XFxuIDExODpcXHQgICAgICAgICAgUm91bmQgVHJpcCBUaW1lIChSVFQpLCBpbiB1c2Vjcywgd2l0aCAzIGJpdHMgZnJhY3Rpb25hbC5cXG4gMTE5OlxcdCAgICAgIC1cXG4gMTIwOlxcdCAgICAgICAgbmFtZTogcnR0dmFyLXVzXFxuIDEyMTpcXHQgICAgICAgIHR5cGU6IHUzMlxcbiAxMjI6XFx0ICAgICAgICBkb2M6IHxcXG4gMTIzOlxcdCAgICAgICAgICBSb3VuZCBUcmlwIFRpbWUgVkFSaWFuY2UgKFJUVFZBUiksIGluIHVzZWNzLCB3aXRoIDIgYml0cyBmcmFjdGlvbmFsLlxcbiAxMjQ6XFx0XFxuIDEyNTpcXHRvcGVyYXRpb25zOlxcbiAxMjY6XFx0ICBsaXN0OlxcbiAxMjc6XFx0ICAgIC1cXG4gMTI4OlxcdCAgICAgIG5hbWU6IGdldFxcbiAxMjk6XFx0ICAgICAgZG9jOiBSZXRyaWV2ZSBtZXRyaWNzLlxcbiAxMzA6XFx0ICAgICAgYXR0cmlidXRlLXNldDogdGNwLW1ldHJpY3NcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTNUMDE6MTE6MjEuNjQ5OTYyMjU2WiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy44LWZsYXNoIiwiRHVyYXRpb24iOjUyMjcyMzY2NTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudDogTm90IFdvcnRoIEZ1enppbmcqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24gYWNjb3JkaW5nIHRvIHRoZSBpbnN0cnVjdGlvbnMuIEkgbmVlZCB0byBkZXRlcm1pbmUgaWYgdGhpcyBwYXRjaCB3YXJyYW50cyBmdXp6aW5nLCBhbmQgdGhlIGNyaXRlcmlhIGZvciByZXR1cm5pbmcgYFdvcnRoRnV6emluZz1mYWxzZWAgKHRoZSBcIm5lZ2F0aXZlIGNyaXRlcmlhXCIpIGFyZSBteSBndWlkZS4gU3BlY2lmaWNhbGx5LCB0aGUgcGF0Y2ggc2VlbXMgdG8gbW9kaWZ5IGBEb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvdGNwX21ldHJpY3MueWFtbGAuIEkgbmVlZCB0byBlbnN1cmUgdGhhdCB0aGlzIGZpbGUgZG9lc24ndCBzb21laG93IGltcGFjdCB0aGUgY29tcGlsZWQga2VybmVsLlxuXG5GaXJzdCwgSSBuZWVkIHRvIHZlcmlmeSB0aGF0IGB0Y3BfbWV0cmljcy55YW1sYCBhbmQgaXRzIGxvY2F0aW9uIGFyZSBhY3R1YWxseSAqdXNlZCogZHVyaW5nIHRoZSBrZXJuZWwgYnVpbGQgcHJvY2Vzcy4gU28sIEkgbmVlZCB0byBjaGVjayB0aGUgYnVpbGQgc3lzdGVtLiBTaW5jZSBJIGRpZCBhIGdlbmVyYWwgc2VhcmNoIGJlZm9yZSwgSSBrbm93IEkgYWxyZWFkeSBzZWFyY2hlZCB0aGUgcmVwbywgYnV0IGxldCdzIGRvdWJsZS1jaGVjay4gVGhlIHNlYXJjaCByZXN1bHRzIHNob3dlZCB0aGF0IHRoZXJlJ3Mgbm8gYWN0dWFsIGJ1aWxkLXRpbWUgZ2VuZXJhdGlvbiBmcm9tIGB0Y3BfbWV0cmljcy55YW1sYC4gSSBhbHNvIGNvbmZpcm1lZCwgaW5kZXBlbmRlbnRseSwgdGhhdCBgbmV0L2lwdjQvdGNwX21ldHJpY3MuY2AgaXNuJ3QgZ2VuZXJhdGVkIGZyb20gYSBZQU1MIGZpbGUuIEl0IGhhcyBoYW5kd3JpdHRlbiBvcGVyYXRpb25zIGFuZCBwb2xpY2llcy5cblxuVGhlIHJlc3VsdHMgcG9pbnQgdG8gYHRjcF9tZXRyaWNzLnlhbWxgIGJlaW5nIHB1cmVseSBhIGRvY3VtZW50YXRpb24gZmlsZSwgbGl2aW5nIHVuZGVyIGBEb2N1bWVudGF0aW9uL2AuIEl0J3MgYSBZQU1MIHNwZWNpZmljYXRpb24sIGFuZCBmcm9tIHRoZSBleGlzdGluZyBjb2RlYmFzZSwgaXQgZG9lc24ndCBmZWVkIGludG8gYW55IGNvbXBpbGVkIGNvZGUuXG5cblRoZXJlZm9yZSwgYmVjYXVzZSB0aGlzIHBhdGNoICpvbmx5KiBtb2RpZmllcyB0aGUgZG9jdW1lbnRhdGlvbiBmaWxlLCBpdCBkaXJlY3RseSBmYWxscyB1bmRlciB0aGUgbmVnYXRpdmUgY3JpdGVyaWE6IFwiTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgY29tbWVudHMsIG9yIHNwZWxsaW5nIGZpeGVzLFwiIGFuZCBcIk5vbi1rZXJuZWwgYW5kIG5vbi1leGVjdXRhYmxlIGNoYW5nZXNcIi4gVGhlIHBhdGNoIGhhcyBubyBpbXBhY3Qgb24gdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAoYHZtbGludXhgKSBvciBhbnkga2VybmVsIG1vZHVsZXMuXG5cblRodXMsIG15IGNvbmNsdXNpb24gaXMgYFdvcnRoRnV6emluZyA9IGZhbHNlYC4gSSBhbHNvIGhhdmUgYEVuYWJsZUNvbmZpZ3MgPSBbXWAgYW5kIGBGb2N1c1N5bWJvbHMgPSBbXWAuIEknbGwgYWxzbyBpbmNsdWRlIGEgY29uY2lzZSBleHBsYW5hdGlvbiB0aGF0IHRoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIHRoZSBkb2N1bWVudGF0aW9uIGZpbGUgd2hpY2ggZG9lc24ndCBhZmZlY3QgZXhlY3V0YWJsZSBrZXJuZWwgY29kZSBvciB0aGUga2VybmVsIGltYWdlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMzI0OCwiT3V0cHV0VG9rZW5zIjo5NiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY1OCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEzVDAxOjExOjI2Ljg3NzIwMTM5NFoiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI0NDgwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL3RjcF9tZXRyaWNzLnlhbWwsIHdoaWNoIGlzIGEgbmV0bGluayBzcGVjaWZpY2F0aW9uIGZpbGUgdW5kZXIgRG9jdW1lbnRhdGlvbi8uIEl0IGRvZXMgbm90IG1vZGlmeSBhbnkgQyBzb3VyY2UgY29kZSBvciBhZmZlY3QgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAodm1saW51eCkgb3Iga2VybmVsIG1vZHVsZXMuIFRoZXJlZm9yZSwgaXQgaXMgbm9uLWV4ZWN1dGFibGUgZG9jdW1lbnRhdGlvbiBhbmQgZG9lcyBub3Qgd2FycmFudCBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBEb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvdGNwX21ldHJpY3MueWFtbCwgd2hpY2ggaXMgYSBuZXRsaW5rIHNwZWNpZmljYXRpb24gZmlsZSB1bmRlciBEb2N1bWVudGF0aW9uLy4gSXQgZG9lcyBub3QgbW9kaWZ5IGFueSBDIHNvdXJjZSBjb2RlIG9yIGFmZmVjdCB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlICh2bWxpbnV4KSBvciBrZXJuZWwgbW9kdWxlcy4gVGhlcmVmb3JlLCBpdCBpcyBub24tZXhlY3V0YWJsZSBkb2N1bWVudGF0aW9uIGFuZCBkb2VzIG5vdCB3YXJyYW50IGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xM1QwMToxMToyNi44NzcyMjk3MjRaIiwiU2VxIjoxNywiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE5MTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflownjshv[1] Phase: Running StartedAt: 2026-09-13 01:11:38 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflownjshv[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-09-13 01:11:38 +0000 UTC FinishedAt: 2026-09-13 01:11:43 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:code,Default:nil,Value:*1,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*1,}